[Messaging] Unable to send APN (Apple Push Notifications) with Firebase Messaging and Cloud Functions.

[READ] Step 1: Are you in the right place?

For issues related to the code in this repository file a Github issue.
If the issue pertains to Cloud Firestore, read the instructions in the "Firestore issue"
template.
For general technical questions, post a question on StackOverflow
with the firebase tag.
For general Firebase discussion, use the firebase-talk
google group.
For help troubleshooting your application that does not fall under one
of the above categories, reach out to the personalized
Firebase support channel.

[REQUIRED] Step 2: Describe your environment

Operating System version: iOS 17.4+
Firebase SDK version: v12.3.0
Firebase Product: Cloud Functions | Firebase Messaging
Node.js version: 20.16.0
NPM version: 10.8.2

[REQUIRED] Step 3: Describe the problem
When trying to send an iOS push notification (APN) through firebase cloud functions using firebase messaging, it fails with an error message (summarized from cloud functions log):
cause: HTTPParserError: Response does not match the HTTP/1.1 protocol (Expected HTTP/)
code: 'HPE_INVALID_CONSTANT',
data: '\x00\x00\x18\x04\x00\x00\x00\x00\x00\x00\x01\x00\x00\x10\x00\x00\x03\x00\x00\x00\x01\x00\x05\...'

Sending an APN request via cURL through the terminal, using http/2 gives a valid response and the notification shows. It also works via Firebase Messaging dashboard when testing a push notification.
All APN certificates (the method I'm using) have been added to Firebase in project settings, and they have all been verified.
Steps to reproduce:

Create a cloud function to send a push notification.
Send the notification to an IOS device.

Relevant Code:
Index.ts file
import {onDocumentUpdated} from "firebase-functions/v2/firestore";
import {initializeApp} from "firebase-admin/app";

initializeApp();

const path = "";
exports.change = onDocumentUpdated(path, async (event) => {

  if (!event.data) {
    error("No data associated with the event");
    return;
  }

  debug("", {
    docRef: event.data.after.ref,
    exists: event.data.after.exists,
    createdTime: event.data.after.createTime,
  });

// Would get data user tokens here from firestore, irrelevant code"

const promises = [];
const promise = await sendiOSNotification(deviceToken, fcmToken, "Title Test", "Body Test");
promises.push(promise);
return await Promise.all(promises)
});

APN notification file.ts
import {getMessaging} from "firebase-admin/messaging";

/**
* A simple function to deliver iOS push notifications
* @param {string} deviceToken the user's device token
* @param {string} fcmToken the user's firebase fcm token
* @param {string} alertTitle the notification title
* @param {string} alertBody the notification body
*/
export async function sendiOSNotification(
  deviceToken: string,
  fcmToken: string,
  alertTitle: string,
  alertBody: string) {
  const payload = {
    token: fcmToken,
    notification: {
      title: alertTitle,
      body: alertBody,
    },
  };
  return await getMessaging().send(payload);
}

Recently tested and verified its working with Insomnia using http/2 and the same certs

Thanks for reporting this. Are you able to reproduce this issue on your local development environment or does this only happen on Cloud Functions?

So I'm using Node.js and tried to replicate the function on a custom node from scratch (making a request to Apple's APN server). Using http2 gave me the same error warning. Perhaps it's JavaScript's http2 library that's causing the issue but I'm not a JS expert so maybe there was something I missed.

The code sample you provided shows that you are using the send() API. Are you sending a single message? If so, any reason you would prefer to use http/2 for that?

I'm sending a single notification, yes. And the reason for http2 is the apple requirement for sending and receiving APNs (as they will only accept requests that way). I noticed Firebase Messaging Nodejs uses http/2 by default and has an option for enabling legacy requests. I tried both, but both failed.

Tested this on the latest build and is now working.


[FR] Light High Contrast on the two sidebar

I think it will be better to have the two sidebar “darker” than the left one.

I do this with a snippet, manually putting the color, so it's not better (the color will be killed if a change my color) than a real implementation. Maybe adding an option?
I love the high contrast option.

I don’t plan to add this capability. For now it is best to achieve this using snippets.


Build(deps-dev): Bump @storybook/addon-essentials from 6.4.13 to 6.4.14 (#2474)

Pull request opened by the merge tool on behalf of #2474

Merged in 47868cf6f03aefdd4d8b80cfb5b9d2cfa4675876


Feature Request/Question: Configure static external ip address for container apps in similar way to container instances?

Is your feature request related to a problem? Please describe.
I have a use case where I need a container app to have a static egress IP-address that is the same every time (for whitelist reasons of a TCP connection). As far as I can tell, the only way to get a static public egress IP-address is to deploy the container environment to a VNET which will then create a resource group containing two public IP-addresses, one for egress and one for ingress, detailed here: https://learn.microsoft.com/en-us/azure/container-apps/networking#managed-resources
The issue with this approach is that I don't have the option to deploy the IP-address since this resource group is managed by the Azure Container Apps platform. So my question is: what is the "correct" way to ensure that the egress IP-address from a container app is always the same? Is it to use a VNET and the public ip that is created by the Azure Container Apps platform?
For container instances it is possible to get this behavior by using a NAT Gateway and a VNET but as far as I can tell this is not possible with container apps, is that correct?
Apologies if this is the wrong place for this question!

Hi @ErikRosengren-work!
Today, a given ACA env has a single outbound static IP that is used by all of the apps from an egress perspective. We are working on support for the scenario you just described supported by ACI where you will be able to use a NAT Gateway.

@kendallroden, what is the appropriate place for us to request NAT gateway support or egress control, and how can us users be kept up to date on the progress of such a feature?


incorrect reference to bnb 4bit param class name (FP4Params vs Params4bit)

System Info
version: Accelerate since April 2023 till now
When debugging 4bit serialization, I noticed that accelerate still uses previous class name for 4bit quantized parameters FP4Params.
Example line: https://github.com/huggingface/accelerate/blob/ad3a5bc92084b9c5c6d5e141eb5ff0029f3fcc78/src/accelerate/utils/modeling.py#L330
In bnb it changed to Params4bit in April 2023 in this PR https://github.com/TimDettmers/bitsandbytes/commit/4ea489d3bfc119ab4ceb50f999ce611690dc21e2#diff-4d235c7e595546c6656c229dfa139298ce6602b356c2d0bafcb2352eb2cfae79R136
It appeared in Accelerate in June 2023, in this PR: https://github.com/huggingface/accelerate/pull/1626, after the class was renamed in bnb.
Not sure if this actually causes any errors, but the HF / BNB maintainers may want to look into this. Maybe it is not an issue and only aimed at users with older bnb versions??
Expected behavior
coordination with bnb classes, incl Params4bit
cc @younesbelkada @SunMarc @Titus-von-Koeller

thanks for the heads-up ! I will investigate what are the potential issues in accelerate ! In transformers, we use a patched version of this function. So this should not impact transformers at least

Thanks for the heads-up @poedator ! I will investigate what are the potential issues in accelerate ! In transformers, we use a patched version of this function. So this should not impact transformers at least

Thank you for the quick feedback. I see that you have a copy of this function in the integrations. Still it it does impact transformers because during dispatch phase it gets called inside accelerate. So it bit me when I tested the 4bit quantization (ref huggingface/accelerate#2254. Perhaps the accelerate function copy could be simplified, with most functionality moved to transformers.

i'm closing this since the PR was merged !


Kestrel startup issue - address already in use

@istvanko filed this here: https://github.com/dotnet/core/issues/1062
We host some microservices in Azure using ASP.Net Core 2.0 framework and as we noticed, after some days, the services are recycled automatically although Always on is turned on, but the restart doesn't work all the time and our services remain stopped.
We enabled the logging in Azure and we found the below log entry:
2017-11-06 23:27:28.337 +00:00 [Critical] Microsoft.AspNetCore.Server.Kestrel: **Unable to start Kestrel.** System.IO.IOException: **Failed to bind to address http://<IP_ADDRESS>:3119: address already in use.** ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.AddressInUseException: Error -4091 EADDRINUSE address already in use ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -4091 EADDRINUSE address already in use    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.ThrowError(Int32 statusCode)    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.tcp_getsockname(UvTcpHandle handle, SockAddr& addr, Int32& namelen)    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvTcpHandle.GetSockIPEndPoint()    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.ListenTcp(Boolean useFileHandle)    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.CreateListenSocket()    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.<>c.<StartAsync>b__8_0(Listener listener)    at 'Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.CallbackAdapter'1.<>c.<.cctor>b__3_1(Object callback, Object state)    at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.DoPostWork() --- End of stack trace from previous location where exception was thrown ---
Detailed stack trace available in the document:
69a2cc3935e9dc939ab7e2d17b47888fef8e50149a09de2203f3b52f2432e924_applicationLog.txt
The issue is quite annoying since it happens in the production system once every week.
We noticed another issue last week, when the dotnet command received invalid arguments which might have connection with this issue.
In general these issues happen in case of Azure infrastructure maintenance or in case of remote file storage unavailability, etc.

@pan-wang @shirhatti

We are experiencing the same problem in our Azure hosted ASP.NET Core apps.

I took a second look at the stack trace in the original report, and saw there was no Program.Main() up the stack or any indication that the binding failure crashed the process.
The ANCM IIS module which hosts ASP.NET Core apps in the Azure App Service environment will start the dotnet process telling it to listen on a randomly specified port. There is no guarantee that the port that ANCM specified isn't already in use.
If the port is in use, ANCM expects the dotnet process to crash/exit so it can restart the dotnet process with a new random port to listen on. If the process doesn't crash, the dotnet process won't be restarted and the app will be unresponsive since there is no communication between ANCM and the app.
I would double check to ensure any exceptions thrown from WebHost.Run() don't get caught but instead crash the process.

This issue happens quite frequently. We don't handle errors in the Program.cs and in the Startup.cs and there is no custom code on the stack when this happens. Please let me know if you found anything in the framework or there is something we could add to our custom code to crash the application. Maybe on the ANCM side it would be a good idea to replace the random algorithm and check the ports used by IIS. @halter73

@halter73 we just hit it as well. We use UseExceptionHandler to log exception and return 500 to the user - does it count as "not-crashing"? If yes, what would be the suggested change
if (exception is System.IO.IOException) throw;

or
if (exception is System.IO.IOException) {await next(); return; }

?

UseExceptionHandler applies to request processing exceptions, not startup exceptions.

@Tratcher Thanks! Original question still stands then - our .net core app deployed to Azure suddenly died and we have to restart it to bring it back :(

@Tratcher, this is actually causing a serious production issue in Azure. It would be great to have a solution soon.

Then you should contact Microsoft Support. Our ability to debug your application over github is extremely limited.

Quick clarification: our callstack is a bit different and it definitely caught by UseExceptionHandler (it is logged by the code which is executed in UseExceptionHandler callback).
I also opened a case with Microsoft support, let's see how it unravels.
Our callstack:
System.IO.IOException: Failed to bind to address http://localhost:1146 on the IPv4 loopback interface: port already in use. ---> System.AggregateException: One or more errors occurred. (Error -4091 EADDRINUSE address already in use) ---> Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -4091 EADDRINUSE address already in use
at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_getsockname(UvTcpHandle handle, SockAddr& addr, Int32& namelen)
at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.GetSockIPEndPoint()
at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener.CreateListenSocket()
at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener.b__8_0(Object state)
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.Wait()
at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelEngine.CreateServer(ServerAddress address)
at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.Start[TContext](IHttpApplication1 application)    --- End of inner exception stack trace ---    at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.Start[TContext](IHttpApplication1 application)

Update: as a workaround, I've enabled "auto-healing" via Kudu console:
https://blogs.msdn.microsoft.com/waws/2015/11/04/auto-heal-your-azure-web-app/
Let's see if it helps.

I'm experiencing this as well. Getting the following exception
System.IO.IOException: Failed to bind to address http://<IP_ADDRESS>:3278: address already in use. ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal.AddressInUseException: Error -4091 EADDRINUSE address already in use ---> Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvException: Error -4091 EADDRINUSE address already in use
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.ThrowError(Int32 statusCode)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.LibuvFunctions.tcp_getsockname(UvTcpHandle handle, SockAddr& addr, Int32& namelen)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking.UvTcpHandle.GetSockIPEndPoint()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.ListenTcp(Boolean useFileHandle)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.CreateListenSocket()
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Listener.<>c.b__8_0(Listener listener)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.CallbackAdapter`1.<>c.<.cctor>b__3_1(Object callback, Object state)
   at Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.LibuvThread.DoPostWork()

Always On is set to On and I don't have any try-catch in Program.cs or Startup.cs.
Reloading the web app through the portal fixes the problem, but I don't want to do this manually.


Add Prerequirements in CONTRIBUTING.md

https://github.com/Monogatari/Monogatari/issues/59

That was fast! XD thanks a lot!


Remove the unix domain socket file before binding

We should remove the unix domain socket file before binding, otherwise
bind(2) will fail.

this is not safe because the domain socket file could be in use by another process. Closing this for now; let me know if you disagree

AFAIK proxy_reuse() does the same thing. I think what you said shoud be avoided by the administrator.

AFAIK proxy_reuse() does the same thing. I think what you said shoud be avoided by the administrator.

AFAIK proxy_reuse() does the same thing. I think what you said shoud be avoided by the administrator.

AFAIK proxy_reuse() does the same thing. I think what you said shoud be avoided by the administrator.

fair point; however stats are only exposed on a "ip:port" as of today and not on unix domain socket

In fact, twemproxy doesn't stop you from specifying a path for the -a option now, nonetheless the help message for -a is "set stats monitoring ip (default: <IP_ADDRESS>)". I think there are people relying on this FEATURE besides me. Do we need to update the help message for -a?


Improved API consistency for response parsing

Change: expose authenticator assertion response parse method to allow direct usage. Also removed unused credential id property.
Thank you for sharing this implementation!
From API design perspective there is a bit of room for improvement. In my specific case I can't comfortable use the Fido2 class since it relies on a Fido2Configuration (which I need to generate per request due to the multi-tenant nature of my app) and it also generates a challenge which we want to handle our self (funny comment in code: // note: I have no idea if this crypto is ok...). For authenticator registration it worked fine to by-pass the Fido2 class but not for authentication due to the internal Parse method modified in this request.
I took the opportunity to remove the confusing CredentialId property. Theoretically that could be a breaking change.

I remember that comment...I think @abergs put that in really early on, I thought we had removed that!

I too remember that comment, it was during day 1 of prototyping 😆


Remove duplicated libraries

absl_base and absl_strings were defined twice. This did not effect users who used Conan
LIBS. However, users of modern CMake can use conan_basic_setup(TARGETS), which breaks when the same
target is defined twice. The tests were changed to use TARGETS instead of LIBS

that's right. if you remove the duplicated name the test package will break during linkage stage. But I didn't try removing the first declaration.
actually if you run abseil example, using it instructions, you will see duplicate names also.
The problem is related to cyclical dependency. Thanks for finding some solution!


Meeting schedule editor floating panel no longer floats

What happened?
The meeting schedule editor's UI includes a footer that holds the tray for unscheduled sessions, session info panel, and a few other UI elements. When the window size is too small to show the entire schedule, this footer is meant to float pinned to the bottom of the viewport so it is accessible as the user scrolls up and down on the schedule.
On the bs5 branch, this footer is rendered at the very bottom of the schedule display. To access it, the user must scroll to the end of the page.
Need to restore the floating behavior.
What browser(s) are you seeing the problem on?
Firefox
Code of Conduct

[X] I agree to follow the IETF's Code of Conduct

I probably didn't move the necessary CSS over from the old ietf.css file.

I think you picked up the relevant CSS. I think the problem here is due to the overflow-hidden class applied to the div#content. This is causing the "sticky" position to glue the div.scheduling-panel to the bottom of the div#content instead of bubbling up to the viewport.
https://developer.mozilla.org/en-US/docs/Web/CSS/position#sticky

Do you recall why the overflow-hidden was added? Looking quickly at the schedule editor page, it seems to render reasonably without it but because it's in the base.html template it'll affect everything if removed.

There were some pages that had issues without it. Take it off and we'll fix those some other way? I agree that it shouldn't be necessary.


Bug Fix for Max Ratio

Validation for max ratio size is backwards (it is checking for less than when it should be greater than)

Thanks again @bluntelk ;)


🐛 Proper automatic handling of custom click events on rad dropdown menu items

Description
This fixes a bug with the RadDropdown.MenuItem subcomponents where passing a custom click handler in would fail to also close the dropdown.
These are the changes included:

🐛 Fixed a bug with rad-dropdown menu item closures

Tests

[ ] I added tests for changes I made
[ ] All tests are definitely passing

Welp tests are broken guess there's more to do


Historical model doesn't include fields inherited from superclass

I ran into this issue trying to add simple_history to a model using django-mptt ( https://github.com/django-mptt/django-mptt/ )
The model in question extends MPTTModel, which adds the fields lft, rght, tree_id and level to the model. However, if I try and save the model, it fails, with the exception:
TypeError: 'rght' is an invalid keyword argument for this function

I did some digging, and when the create_history_model() executes, these fields did not exist. The contents of model._meta.fields at that time was:
[<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: name>, <django.db.models.fields.SlugField: url>, <django.db.models.fields.CharField: code>, <mptt.fields.TreeForeignKey: parent>, <django.db.models.fields.TextField: hidden_js>, <django.db.models.fields.related.ForeignKey: faculty>]

However, if I opened up a django shell, and output the contents of the same variable, I got:
[<django.db.models.fields.AutoField: id>, <django.db.models.fields.CharField: name>, <django.db.models.fields.SlugField: url>, <django.db.models.fields.CharField: code>, <mptt.fields.TreeForeignKey: parent>, <django.db.models.fields.TextField: hidden_js>, <django.db.models.fields.related.ForeignKey: faculty>, <django.db.models.fields.PositiveIntegerField: lft>, <django.db.models.fields.PositiveIntegerField: rght>, <django.db.models.fields.PositiveIntegerField: tree_id>, <django.db.models.fields.PositiveIntegerField: level>]

Which does have the additional fields. My conclusion is that the class has not yet been properly initialized at the time class_prepared is fired.

It's not a third party model but it's inheriting from a third-party model. Instead of adding HistoricalRecords to the model, try adding register(ModelName) outside of the model definition (either in your models.py file or in the ready function of your AppConfig. Let me know if you run into any issues with that. @irrg

@rossmechanic I don't know where my brain went on this one…that's a super easy solution. Seems to be sticking. Will report back if anything wonky happens in relation to django-simple-history. Thanks!

So far so good, except that I'm curious how the Original Poster dealt with needing to register his model with both SimpleHistoryAdmin and DjangoMpttAdmin… Down the rabbit hole.
Either way, the issue with the superclass is resolved with the register workaround.

Four years ago - sorry, I can't even remember what project this was for. I might not even have access to the source code any more, if it was at a previous job.

Here the new link for register documentation.
But there are more information in the source code:
https://github.com/treyhunner/django-simple-history/blob/master/simple_history/__init__.py


README: Document missing dependencies

Signed-off-by: Andrei Gherzan<EMAIL_ADDRESS>

Can one of the admins verify this patch?


Cannot unpack libzstd-jni-1.5.4-2 ?!?!

When the first thing I do with the zstd library (using JDK 21 running on Windows 10) is to create a dictionary I get the following exception:
java.lang.ExceptionInInitializerError:: Cannot unpack libzstd-jni-1.5.4-2: C:\Users\myaccount\AppData\Local\Temp\libzstd-jni-1.5.4-217418534051402262760.dll (The process cannot access the file because it is being used by another process)
any thought on why I get it and/or what I can try to avoid it?

Also using compressBound seem to trigger this for me now.

May be related to timing / parallel threads - when I change the number of threads used in my tests I can make the problem come and go but not in an intuitive way....

Hmm, interesting - all the loading/isLoaded/etc methods are synchronized so there is no way 2 or them to run concurrently. On another side, the loaded flag https://github.com/luben/zstd-jni/blob/master/src/main/java/com/github/luben/zstd/util/Native.java#L50 is not atomic, so may be the next thread does not observe the changed value. Let me make it atomic.

Looking at the error - it tries to unpack the native DLL file onto file that exists and is already used. The question is why File.createTempFile is returning the same filename?

If it makes any difference I should mention I am using virtual Threads
(except for the main program Thread that is a platform thread and that
drive my test)...
On Fri, Dec 22, 2023 at 3:38 PM luben karavelov @.***>
wrote:

Looking at the error - it tries to unpack the native DLL file onto file
that exists and is already used. The question is why File.createTempFile
is returning the same filename?
—
Reply to this email directly, view it on GitHub
https://github.com/luben/zstd-jni/issues/295#issuecomment-1867759892,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXQFZHFLFOUWHCVCAGJLDYKWLOFAVCNFSM6AAAAABA6XJ7J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXG42TSOBZGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

It also varies from run to run - sometimes I can run my test program four
times without a problem but the fifth time it fail.
On Fri, Dec 22, 2023 at 3:54 PM Javafanboy @.***> wrote:

If it makes any difference I should mention I am using virtual Threads
(except for the main program Thread that is a platform thread and that
drive my test)...
On Fri, Dec 22, 2023 at 3:38 PM luben karavelov @.***>
wrote:

Looking at the error - it tries to unpack the native DLL file onto file
that exists and is already used. The question is why File.createTempFile
is returning the same filename?
—
Reply to this email directly, view it on GitHub
https://github.com/luben/zstd-jni/issues/295#issuecomment-1867759892,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXQFZHFLFOUWHCVCAGJLDYKWLOFAVCNFSM6AAAAABA6XJ7J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXG42TSOBZGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

Realized it could be a matter of as specific Open JDK distro perhaps in
combination with a specific OS - on Windows I use Corretto (AWS OpenJDK
distro) as AWS is my ultimate environment for this project even though I
have not tried running it on EC2 yet.
When I tried the same program on Linux (WSL) where I have the "normal open
source JDK 21 distro" I have yet to run into the problem.
/Magnus
On Fri, Dec 22, 2023 at 5:47 PM luben karavelov @.***>
wrote:

Hmm, that's interesting - virtual threads could be the issue here as I
have not tested with them.
—
Reply to this email directly, view it on GitHub
https://github.com/luben/zstd-jni/issues/295#issuecomment-1867887398,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXQFYPQLRFFQ3JWZ6JUV3YKW2RDAVCNFSM6AAAAABA6XJ7J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXHA4DOMZZHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Anyhow I managed to work around the problem by ensuring the first access of
the library was made before may other threads was created and could make
use of it - now my test work both on Windows and Ubuntu Linux and with both
JDK 21 (OpenJDK and Corretto).
Seem to be something amiss with some of Windows, Corretto and Virtual
Threads - maybe somebody else will run into the same problem and can dig up
some more facts...
On Fri, Dec 22, 2023 at 7:36 PM Javafanboy @.***> wrote:

Realized it could be a matter of as specific Open JDK distro perhaps in
combination with a specific OS - on Windows I use Corretto (AWS OpenJDK
distro) as AWS is my ultimate environment for this project even though I
have not tried running it on EC2 yet.
When I tried the same program on Linux (WSL) where I have the "normal open
source JDK 21 distro" I have yet to run into the problem.
/Magnus
On Fri, Dec 22, 2023 at 5:47 PM luben karavelov @.***>
wrote:

Hmm, that's interesting - virtual threads could be the issue here as I
have not tested with them.
—
Reply to this email directly, view it on GitHub
https://github.com/luben/zstd-jni/issues/295#issuecomment-1867887398,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXQFYPQLRFFQ3JWZ6JUV3YKW2RDAVCNFSM6AAAAABA6XJ7J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXHA4DOMZZHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

I tried a bit more and can report that Corretto do work with the library on
Linux but on Windows I still get the problem with the file access during
native loading intermittently with Corretto even when I tried to myself
synchronize access with putting the first access in a synchronized method
:-(
On Fri, Dec 22, 2023 at 9:12 PM Javafanboy @.***> wrote:

Anyhow I managed to work around the problem by ensuring the first access
of the library was made before may other threads was created and could make
use of it - now my test work both on Windows and Ubuntu Linux and with both
JDK 21 (OpenJDK and Corretto).
Seem to be something amiss with some of Windows, Corretto and Virtual
Threads - maybe somebody else will run into the same problem and can dig up
some more facts...
On Fri, Dec 22, 2023 at 7:36 PM Javafanboy @.***> wrote:

Realized it could be a matter of as specific Open JDK distro perhaps in
combination with a specific OS - on Windows I use Corretto (AWS OpenJDK
distro) as AWS is my ultimate environment for this project even though I
have not tried running it on EC2 yet.
When I tried the same program on Linux (WSL) where I have the "normal
open source JDK 21 distro" I have yet to run into the problem.
/Magnus
On Fri, Dec 22, 2023 at 5:47 PM luben karavelov @.***>
wrote:

Hmm, that's interesting - virtual threads could be the issue here as I
have not tested with them.
—
Reply to this email directly, view it on GitHub
https://github.com/luben/zstd-jni/issues/295#issuecomment-1867887398,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADXQFYPQLRFFQ3JWZ6JUV3YKW2RDAVCNFSM6AAAAABA6XJ7J6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNRXHA4DOMZZHA
.
You are receiving this because you authored the thread.Message ID:
@.***>

Hmm, strange bug in Correto/Windows then. I test with Correto but on Linux... I will leave open this issue open and improve the title so if other people come can see it.


Use type imports for imports not used as values

Description 📖
This pull request changes some regular imports to type imports to solve #138.
Background 📜
Refer to #138 for the cause of the issue.
The Fix 🔨
By changing regular imports to type imports we can prevent TS from calling them out as errors and unblock the builds.

Thanks for your contribution @dhruvkb!


please clarify new dependencies

Hi, I see the new release has dropped the shared libraries and much stuff.
While this is nice for Debian packaging, I see however many new external repositories.
github.com/devttys0/sasquatch
github.com/sviehb/jefferson
my.smithmicro.com/downloads/files/stuffit520.611linux-i386.tar.gz
github.com/jrspruitt/ubi_reader
and maybe others...
should I package them all?

Yes, those new extractors, as well as Sleuth Kit have been added as external extractors (though I think Sleuth Kit is already packaged for Debian).
If you want to package them that would be awesome, but there might be some issues with some of them. For instance, sasquatch is just a hacked up version of unsquashfs, and isn't kept up to date with all the latest unsquashfs patches/releases.

ok wonderful.
So I added
 cramfsprogs, cramfsswap, openjdk-9-jdk, sleuthkit, squashfs-tools,
I'll upload shortly in Debian..
Sasquatch is a no-go, I don't like duplicates (maybe consider patching unsquashfs if it doesn't meet your needs!)
thanks!
G.

openjdk-9-jdk shouldn't be required; binwalk previously used some java tools to extract certain files, but 7z is now used instead.

ok thanks!
actually the dependency was
openjdk-7-jdk | openjdk-8-jdk | openjdk-9-jdk
but I dropped all of them according to your previous comment


Enable logging of messages

Short description

In order to make debugging a bit easier, especially for failed test cases where only the logging output is visible and not the actual html response which contains the user message, I tried to extend the current messages framework by a special storage which logs all incoming messages at their corresponding level.
Proposed changes

Add custom storage for messages
Enable logging of all calls to the Django messages framework
Replace gettext() by gettext_lazy() to enable translation of logging entries
Adapt test cases which needed the messages output

Side effects

All imports of gettext() were replaced by gettext_lazy() to enable the translation of the logging messages into English. This theoretically comes at minimal performance overhead, but I did not see a noticeable difference.
Maybe I didn't catch all places where the logging calls are now duplicated. If you see that this causes logging messages to be printed twice,

Pull Request Review Guidelines

Hmm weird, out of the top of my head I don't have an idea what could be the reason for this error :thinking:
In theory, this PR only changes what gets logged, not where... Also the authlog message already exists on the develop branch and was not changed in the PR...
Just to rule out any side-effect-problems: Could you execute ./tools/install.sh --clean and ./tools/prune_database.sh on this branch before restarting the server or running the tests?

Hmm weird, out of the top of my head I don't have an idea what could be the reason for this error 🤔
In theory, this PR only changes what gets logged, not where... Also the authlog message already exists on the develop branch and was not changed in the PR...
Just to rule out any side-effect-problems: Could you execute ./tools/install.sh --clean and ./tools/prune_database.sh on this branch before restarting the server or running the tests?

Ahh! Very nice. This seemed to help. I also didn't execute webpack, before, which might have also had a bad impact here. Thanks for the help 👍🏼


Re-introduce parallelization

This PR re-introduces parallelization for TreeKEM operations.
Fixes #108.

Good point, I can try to get rid of it.


Fix/Edit player form label misaligned

The "Team" field label in the edit player form under the player tab in the league dashboard is aligned center and needs to be aligned left.
This issue also affects the add player form under the players tab as well.
There is a player form template that will have to be changed. Any style added for select inputs should be in the style sheet under "client/src/components/style.js"

Hi @makkoli I want to try this one. This one will be my first contribution . Should I make a PR?

Hey @satyadeeproat, you will want to fork the repo and make your changes. Once you got the issue fixed, do npm run test in the root directory and make sure you're passing all the tests. If you do, make a PR and me or @ahstein3521 will review it. We'll either accept it or give feedback on what to fix before we can accept it.
There is also a contributing.md file in the repo you can read your get more information on contributing.

I have made the pull request. You can check it


Add new school

file.zip
https://landfermann.de

@N6KV1 Your request does not have a file in the request body, just in the comment. I have to reject it because it does not comply with the repository rules.
If you are not familiar with GitHub yet, and wish to add landfermann-gym.eudomain to the trusted list, please send an email to<EMAIL_ADDRESS>mentioning this request by its URL: https://github.com/JetBrains/swot/pull/17501.
Also please provide us with:

the school street address, including city and country
a proof, which shows that the school recognizes the domain you are submitting as an official email domain for the students.


Troubles to send data from an android phone to another

Hi!
I am facing with a problem when i try to send strings from an Android phone to another one (Sender: android 4.2, receiver: android 4.1). The functions  discover, connect, pair, enable, startConnectionManager work fine. The write one also seems to work good, because the Success callback is called after have written. After that, the device on which the writter is connected is never notified by any data received.
Here are more details:

The devices are paired
The devices are connected
The connection manager is started on the two devices.
The write function ens by calling the success callback

I have seen on [Stackoverflow] (http://stackoverflow.com/questions/20713755/send-receive-data-between-android-devices-using-phonegap-bluetooth-plugin-not-wo/21016750#21016750)  that the problem was caused by the fact that i start the connection manager on both devices. Does this still in instance? i have tried to implement the solution given in that post unsuccessfully. Please, how could i turn round this problem?

@Brileantag could you paste the code here or email me?  Thanks

Would this code work to connect android 4.4.2 to windows 8.1 pc or yosemite mac os x?  I haven't looked at what I have to do on desktop yet.

@coderextreme Hi, the plugin should probably be able to connect to various devices with bluetooth capabilities, such as a desktop pc. You would have to handle the incoming connection on the desktop then.

Hi @tanelih, even I am facing the same problem
*The devices are paired
*The devices are connected
*The connection manager is started on the two devices.
*The write function ends by calling the success callback
but not able to send data, as @Brileantag mentioned I did try implementing the AcceptThread, but was unsuccessful, and need little more Idea on this.
Can anyone please guide me on this. Thanks.

@hnthakkar,
This plugin works as a client of sorts, so it needs a server to connect to. The problem with the situation you are describing is that this plugin does not implement a server.
Take a look at this for some guidance on how to implement an AcceptThread, or a server in a sense.


Allow using pathspec in git_commit action.

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context

Description

This removes the verification for files exist so we can call
git_commit action with an array of pathspecs.

I signed it!


tailscale-relay: bumped to v1.46.1

Bump version to the latest docker image version: https://hub.docker.com/r/mvisonneau/tailscale/tags
Related with: https://github.com/mvisonneau/docker-tailscale/pull/23
Tested on a cluster overriding image.tag. Seems to be working as expected
@mvisonneau

@mvisonneau

thanks!

thanks!


Blocks til expiration / expiration height calculations in claim_list_mine

The Issue
Per @kaykurokawa, the blocks til expiration/expiration height that's calculated in claim_list_mine is hard coded in: https://github.com/lbryio/lbryum/blob/master/lbryum/wallet.py#L1034
We should either grab this from lbryumx or handle some other way.
System Configuration

LBRY Daemon version:
LBRY App version:
LBRY Installation ID:
Operating system:

Anything Else

Screenshots

@eukreign How is this being handled in the new wallet?

Figuring out when a claim expires still needs to be done in new wallet.


Update username pattern

I suggest update the username pattern to make it more suitable to reality.

Do not allow special characters.
Allow start with a number. This prohibition is very restrictive.

In a project work, the username is formed only by numbers, the registration code of the employee.

Thank you!

:+1:
@dmeroff It would be nice to centralize these rules that are repeated on multiple files.

@thiagotalma you're right, I've added this to 0.9.5 milestone #302 .


Declare compatibility to Angular 14 in the package.json

Please add Angular 14 to your peer dependencies. Currently, I can only compile by using npm install --force or by declaring overrides in my package.json. The updated version of your package.json will look something like this:
  "peerDependencies": {
    "@angular/common": "^13.0.0 || ^ 14.0.0",
    "@angular/core": "^13.0.0 || ^ 14.0.0",
    "@angular/forms": "^13.0.0 || ^ 14.0.0",
    "angular2-multiselect-dropdown": "^5.0.4",
    "lodash-es": "^4.17.21",
    "ng2-completer": "^9.0.1"
  },

Thanks in advance,
Stephan

Yeah, sometimes npm is a mystery. :) Thanks for looking into it!

Hey, did this get fixed? as I am getting these dependency build errors.

Yes, it works for me. Here's my project - maybe I've configured it differently: https://github.com/stephanrauh/extended-pdf-viewer-showcase/blob/dcd438e8a102e6bebb4a3b84af096943adf786a7/package.json#L36

I'm not sure, I had to manually add these three packages to get the build to succeed:

ng2-completer
angular2-multiselect-dropdown
lodash-es

Maybe an edge case but adding them fixed it for me.


gl.FRAMEBUFFER is missing

Please also add gl.FRAMEBUFFER. Thanks

@githubsheng
Add missing built-in constants, thanks.
release with v2.0.2.


Add support for AWS SQS and SNS

Would be nice to have support for SQS queues and SNS topics with subscriptions.

I would love to take this on.


This mod does not add a /sit command. My Sit mod in particular (https://www.curseforge.com/minecraft/mc-mods/sit-fabric) also has to be installed on the client and the server to work properly.


INT-B-19552

Agility ticket
Summary
Removed full PPM from TOO queue if they are moving from a duty location that provides services counseling
How to test

Access the customer app and make a full ppm
Complete customer and services counselor steps
PPM should not be in TOO queue
make a new ppm from 32228 mayport FL
complete customer and services counselor steps
PPM should be in the TOO queue

Fails

:no_entry_sign:
Yarn Audit Issues Found:
high - PDF.js vulnerable to arbitrary JavaScript execution upon opening a malicious PDF
Package pdfjs-dist
Patched in >=4.2.67
Dependency of @transcom/react-file-viewer
Path @transcom/react-file-viewer > pdfjs-dist
More info https://github.com/advisories/GHSA-wgrm-67xf-hhpq
1 high vulnerabilities and 0 critical vulnerabilities found

  Generated by :no_entry_sign: dangerJS against 953a836cf2da6d27c8f37d3948c005ba0d5026c2

Great job on all those tests.
Update testing instructions, step 5 there are Services Counselor steps to complete


Update example MetricServer constructor arguments

The MetricServer constructor arguments were out of date, actually requires a CollectorRegistry and MetricServerOptions object.

@randomchance Thank you!


Get empty column after export

Versions

PHP version: 7.1.13
Laravel version:  5.6
Package version: "maatwebsite/excel": "~2.1.0"

Description
After i export an excel file, i get an empty column
Picture: https://imgur.com/a/czJk5
My blade: https://pastebin.com/raw/yuyejD2X
My controller:
`
Excel::create("Danh sách vật tư $date", function($excel) use($products,$date) {
            $excel->Sheet('Sheet 1', function($sheet) use($products,$date){
                $sheet->setAutoSize(true);
                $sheet->setAllBorders('thin');
                $sheet->setStyle(array(
                    'font' => array(
                        'name' => 'Times New Roman',
                        'size' => 12,
                        'bold' => false,
                    )
                ));
                $sheet->loadView('products.product_excel')
                      ->with('products',$products)
                      ->with('date',$date);
            });
        })->download('xlsx');`

Trying adding tbody, it might cause problems that you don't have it.
If that doesn't help, try replacing the colspans by empty <td>'s.

if i use empty <td>, how can i merge cell in blade?

i tried use empty <td> but not it's not work

Try doing the colspan/rowspans via code instead of html, see: https://laravel-excel.maatwebsite.nl/docs/2.1/export/merge#docs


Server side authentication

Server side authentication.

This seems to be incomplete. Nothing calls this code.

@electrum , this security module provides some common definitions and utils shared by both client and server side authentication. It  will be used by user-defined authentication filter which in-turn can be injected into http-server through it's filter multi-binder.

It is fine to put it up for now, but we should wait for the code that uses it.

@electrum, thanks for the comments, will update it now!

@martint, many thanks for the detailed code review!

When I look at the "Files Changed" view, I see many comments that say "addressed" but the code is the same. Does this have the latest changes?

@electrum, sorry for the confusion, those fixes are not pushed yet, since I'm waiting for further comments for those pending issues, like environment CCNAME, but seems like It's better to push them first. will do it by tomorrow.

@electrum @martint  @dain, have updated the PR with the following changes:

remove dependence of CCNAME environment variable.
add 2 new command line options --krb5-keytab and --krb5-client-principal to support use cases where presto CLI is embedded within another service.

Superseded by #325


gh-1527 - fixed add elements from hdfs aggregation

Codecov Report

Merging #1529 into develop will increase coverage by 0.08%.
The diff coverage is 80%.

@@             Coverage Diff              @@
##             develop   #1529      +/-   ##
============================================
+ Coverage      66.11%   66.2%   +0.08%
- Complexity      1796    1797       +1
============================================
  Files            741     741
  Lines          24451   24461      +10
  Branches        3148    3151       +3
============================================
+ Hits           16166   16194      +28
+ Misses          7013    7001      -12
+ Partials        1272    1266       -6

Impacted Files
Coverage Δ
Complexity Δ

...peration/hdfs/reducer/AccumuloKeyValueReducer.java
77.08% <80%> (+32.34%)
0 <0> (ø)
:arrow_down:

...onutil/iterable/LimitedInMemorySortedIterable.java
50% <0%> (+2.77%)
16% <0%> (+1%)
:arrow_up:

...on/hdfs/mapper/SampleDataForSplitPointsMapper.java
73.52% <0%> (+5.88%)
0% <0%> (ø)
:arrow_down:

...eration/hdfs/mapper/AddElementsFromHdfsMapper.java
72% <0%> (+8%)
0% <0%> (ø)
:arrow_down:

...eration/hdfs/mapper/AddElementsFromHdfsMapper.java
100% <0%> (+20%)
0% <0%> (ø)
: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 db0f21c...21b8737. Read the comment docs.


Error when retrieving list

Overview
I had uploaded a list and when I went back to my lists , I can no longer access it via clicking on "my lists" and then clicking on the list entry. I get the response, "unable to retrieve list - an error prevented fetching facility list items for 25" - please see screen recording
Expected Behavior
I should have bene able to click on the list and have the entries load.
Actual Behavior
"Unable to retrieve list - an error prevented fetching facility list items for 25"
Steps to Reproduce
Mac, Chrome in incognito

After a csv has been uploaded, leave it for several hours to let it parse
refresh page
click on my lists
Select list from table of my lists
Error message appears

Demo
Please see screen recording sent to @jwalgran  on slack.
Additional context
Optional. Add any other context about the problem here.

To help with troubleshooting can you please attach the list that you uploaded? If you rename the file and add a .txt extension you will be able to attach it to this issue. Thanks.

Yes of course - sorry I didn't think of that. Added it as an excel file - hope that is OK
Esprit_02_2019_converted March 13 2019.xlsx

Cool. I forgot that Github accepts xlsx. That works. Thanks.

The request to https://staging.openapparel.org/api/facility-lists/25/ is returning 504 Gateway Timeout. It is taking too long load the list. The source CSV has 1385 rows.
Options:

Implement server-side paging
Delay loading the details for rows until they are clicked (with the exception of pending matches, which should be expanded by default.


Fix argument forwarding for "receive" with Ruby 3.2.0

It seems there is place where arguments forwarding is not ok.
I continued the work started by @pirj on https://github.com/rspec/rspec-mocks/pull/1497
fixes #1497
fixes #1502
fixes #1495
fixes #1513
fixes #1512
Related:

https://github.com/rspec/rspec-mocks/issues/1513#issuecomment-1368473138
https://github.com/rspec/rspec-mocks/issues/1495

CI failures seems to be unrelated. I will look at them separately on rspec-support.

This branches fixes my test suite on Ruby 3.2. 👍

I dared pushing a commit that makes the kwargs vs positional options hash check more strict.
TODO:

[ ] spec/rspec/mocks/matchers/receive_spec.rb fails for some weird reason similar to the one described above in spec/rspec/mocks/argument_matchers_spec.rb, but I couldn't quickly find a workaround the same way I did for spec/rspec/mocks/argument_matchers_spec.rb
[ ] failure message is suboptimal. We need some refactoring so that for a MethodDouble the Proxy called raise_unexpected_message_args_error instead of raise_unexpected_message_error the same way it does in other cases when there's a message expectation, but arguments don't match

@paddor May I kindly ask you to repeat your test after the last commit?

https://github.com/rspec/rspec-core/pull/2993 is needed to make the CI green(er) for rspec-core sub-build.

@pirj It mostly passes. Some #receive_message_chain-lines with kwargs fail:
#<Double (anonymous)> received unexpected message :store_event with ({:message=>"core.system_events.force_variables", :object=>{:note=>nil, :release_at=>nil, :variable=>{:code=>nil, :desc_i18n=>nil, :label=>nil, :label_i18n=>nil}}, :username=>nil})

Note that the call-site correctly specified these arguments as keywords, not as a Hash.
If I refactor them to use #receive with intermediate spy-objects, the whole testsuite passes.

@pirj I think it would be safer to revert that strict check (i.e., stricter than Ruby itself is), see https://github.com/rspec/rspec-mocks/pull/1514#discussion_r1060563272. Otherwise it sounds like a huge backward-incompatible change for something which doesn't really gain anything.

@eregon The check is certainly stricter now for def foo(options = {}) or def foo(options).
But it's not stricter than Ruby's for def foo(**options) and def foo(bar:).
To make a distinction between those two cases, we would have to make ArgumentListMatcher aware of the method signature.
All those cases are different instance.method(:foo).parameters:
Class.new { def foo(options); end }.new.method(:foo).parameters # => [[:req, :options]]
Class.new { def foo(options = {}); end }.new.method(:foo).parameters # => [[:opt, :options]]
Class.new { def foo(**options); end }.new.method(:foo).parameters # => [[:keyrest, :options]]
Class.new { def foo(bar:); end }.new.method(:foo).parameters # => [[:keyreq, :bar]]

What is making matter worse is that Ruby was doing weird things with extracting some arguments from the options hash, see e.g. https://github.com/rspec/rspec-support/pull/537

Running this branch fixes all of my mocking issues.  Thank you!
This is more of an rspec-rails issue, but I'm noticing a have_enqueued_job matcher is no longer finding the job.
expect {
    get :create, params: {onboarding_signup_id: onboarding_signup_id}
  }.to have_enqueued_job(Sendgrid::ListSignupJob).with(
    email: user.email, list: OnboardingSignupsController::CURRENT_ONBOARDING_LIST_NAME
  )

  expected to enqueue exactly 1 jobs, with<EMAIL_ADDRESS>:list=>"PROD Onboarding v1"}], but enqueued 0
  Queued jobs:
    Sendgrid::ListSignupJob job with<EMAIL_ADDRESS>:list=>"PROD Onboarding v1"}], on queue default

^^^ passes in Ruby 3.1

I've tested this branch but expectations on any keyword argument seem to not work.
require "spec_helper"

class Ex
  def self.foo(a:)
    puts "Called foo(a: #{a.inspect})"
    true
  end
end

RSpec.describe "example" do
  it "finds no call on single call" do
    allow(Ex).to receive(:foo).and_call_original

    Ex.foo(a: 1)

    #  Failure/Error: expect(Ex).to have_received(:foo).with(a: 1)
    #    (Ex (class)).foo({:a=>1})
    #        expected: 1 time with arguments: ({:a=>1})
    #        received: 0 times
    expect(Ex).to have_received(:foo).with(a: 1)
  end

  it "finds other call on two calls, but still fails" do
    allow(Ex).to receive(:foo).and_call_original

    Ex.foo(a: 1)
    Ex.foo(a: 2)

    # #<Ex (class)> received :foo with unexpected arguments
    #   expected: ({:a=>1}) (options hash)
    #        got: ({:a=>2}) (keyword arguments)
    #   Diff:
    #   @@ -1 +1 @@
    #   -[{:a=>1}]
    #   +[{:a=>2}]
    expect(Ex).to have_received(:foo).with(a: 1)
    expect(Ex).to have_received(:foo).with(a: 2)

    # Note that just expecting the second call will still fail, but with an
    # inverted error message; it will show the first call.
  end
end

Output
Randomized with seed 60000

example
Called foo(a: 1)
  finds no call on single call (FAILED - 1)
Called foo(a: 1)
Called foo(a: 2)
  finds other call on two calls, but still fails (FAILED - 2)

Failures:

  1) example finds no call on single call
     Failure/Error: expect(Ex).to have_received(:foo).with(a: 1)

       (Ex (class)).foo({:a=>1})
           expected: 1 time with arguments: ({:a=>1})
           received: 0 times
     # ./spec/broken_spec.rb:20:in `block (2 levels) in <top (required)>'

  2) example finds other call on two calls, but still fails
     Failure/Error: expect(Ex).to have_received(:foo).with(a: 1)

       #<Ex (class)> received :foo with unexpected arguments
         expected: ({:a=>1}) (options hash)
              got: ({:a=>2}) (keyword arguments)
       Diff:
       @@ -1 +1 @@
       -[{:a=>1}]
       +[{:a=>2}]

     # ./spec/broken_spec.rb:36:in `block (2 levels) in <top (required)>'

Finished in 0.01183 seconds (files took 0.26323 seconds to load)
2 examples, 2 failures

Failed examples:

rspec ./spec/broken_spec.rb:11 # example finds no call on single call
rspec ./spec/broken_spec.rb:23 # example finds other call on two calls, but still fails

Gem versions (commits)
GIT
  remote: https://github.com/rspec/rspec-core.git
  revision: 522b7727d02d9648c090b56fa68bbdc18a21c04d
  branch: main
  specs:
    rspec-core (3.13.0.pre)
      rspec-support (= 3.13.0.pre)

GIT
  remote: https://github.com/rspec/rspec-expectations.git
  revision: b1fa2e620b03ed05c737db10b2727a0706eca7d3
  branch: main
  specs:
    rspec-expectations (3.13.0.pre)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (= 3.13.0.pre)

GIT
  remote: https://github.com/rspec/rspec-mocks.git
  revision: d8a213c26c31bc940f5060145b85131cbcf43715
  branch: ruby-3.2
  specs:
    rspec-mocks (3.13.0.pre)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (= 3.13.0.pre)

GIT
  remote: https://github.com/rspec/rspec-rails.git
  revision: c60ff7907559653cd9d1ec1a6113bf86c9359fab
  branch: main
  specs:
    rspec-rails (6.1.0.pre)
      actionpack (>= 6.1)
      activesupport (>= 6.1)
      railties (>= 6.1)
      rspec-core (= 3.13.0.pre)
      rspec-expectations (= 3.13.0.pre)
      rspec-mocks (= 3.13.0.pre)
      rspec-support (= 3.13.0.pre)

Now it works with and without the refactorings in my testsuite. 👍

@paddor Just to make sure, do your receive_message_chain work, too?

@JonRowe I intend to:

merge this
fix the ReentrantMutex issue to fix Ruby 3.2 sub-builds
handle a coordinated update of buildfiles from rspec-dev to add Ruby 3.2 to ci

Thanks for tackling this, would have been nice to wait for my review but as this ended up as a simple one line lib change it's ok, good work on the updated comment too!

Released in 3.12.2

I added the 3.2 builds myself coordinating with 3-12-maintenance, with a temporary suppression of the broken spec, I still think it can be fixed rather than skipped like this.
Also I've now disabled rebase merges on our repos as they've been used accidentally again and it makes cherry picking to maintenance branches a nightmare, we want single commits for PRs (merge or squash only).


Collection: Live Preview Bugs

The purpose of this issue is to collect all bugs regarding the upcoming live preview, so I can prioritize them better.

Hey there, thanks for the awesome theme, I am facing some weird problems with my live preview panels. They are not scrollable first and foremost and then some times they are out of the frame (really low in the bottom of the page).
I hope this is the right place to report this.

Thanks!
I decided to use separate issues instead of one collection issues thread for live preview things. Could you open a new issue and add some screenshots / screen recordings so can get a better grasp?
(Also just so you know, I will probably not tackle Live Preview issues until the public release, since things might change and potentially bugs fixed on Obsidians side. But when Live Preview goes public, I will make it a priority.)

Ah I am such a noob, I meant Page Preview not Live. Ignore the post please I managed to have it working as indented. Thanks again for your work amazing theme!


1st commit of homework_1 branch and homework_1.md

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Adding a custom logical data model based on what we learn during class
What did you learn from the changes you have made?
relationships, primary and foreign keys and data type
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
perhaps choosing other tables it would have been easier
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
diagramming
How were these changes tested?
comparing the information between DB browser for SQ Lite
A reference to a related issue in your repository (if applicable)
n/a
Checklist

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

uoft-dsi-c3-homework_1-20240515
uoft-dsi-c3-sql_homework_1-20240515


Update README.md

Tiny typo

@aleclearmind @l8nite  this PR #2 is a duplicate of #1

Fixed in bbbba16. Thanks!


Ignore D401-type-complaints of flake8

Travis-CI-Build currently fails on the codebase of python-client in general for all PRs (except this one fixing the issue), because D401 of flake8 complains about D401 at certain positions.
This adds D401 to the ignore-list in setup.cfg to avoid this.

Thanks!


Resubmission: App installation causes noticeable connection delay between MBP M1 and Mac Studio Display

What is the issue? (required)
Following app installation, a connection delay (screen and audio) of 10-14 seconds occurs between MacBook Pro M1 and Mac Studio Display.
What exactly did you do to produce the issue? (required)
Steps to reproduce the behavior:

Click battery icon on menu bar
Select "Advanced Settings"
Click "Allow force-discharging"
Click confirm
Open Terminal
type "battery on", press enter.
Unplug external display from laptop
"battery off" then press enter
Play a video on YouTube with audio on
Connect cable to external display (Mac Studio)
Observe 3-4 second delay of external display turning on
Observe another 10 seconds before audio begins playing on external display

Expected behavior (required)
Laptop audio is immediately interrupted after plugging in laptop to external display, then audio plays on external display 1-2 seconds later.
Screenshots (optional)
N/A
Error logs
03/26/23-01:32:24 - Battery at 90% (target 80%)
03/26/23-01:33:24 - Battery at 90% (target 80%)
03/26/23-01:34:24 - Battery at 90% (target 80%)
03/26/23-01:35:24 - Battery at 90% (target 80%)
03/26/23-01:36:24 - Battery at 90% (target 80%)
03/26/23-01:37:24 - Battery at 90% (target 80%)
03/26/23-01:38:24 - Battery at 90% (target 80%)
03/26/23-01:39:24 - Battery at 89% (target 80%)
03/26/23-01:40:24 - Battery at 89% (target 80%)
03/26/23-01:41:24 - Battery at 89% (target 80%)
03/26/23-01:42:24 - Battery at 89% (target 80%)
03/26/23-01:43:24 - Battery at 89% (target 80%)
03/26/23-01:44:24 - Battery at 89% (target 80%)
03/26/23-01:45:24 - Battery at 88% (target 80%)
03/26/23-01:46:24 - Battery at 88% (target 80%)
03/26/23-01:47:25 - Battery at 88% (target 80%)
03/26/23-01:48:25 - Battery at 88% (target 80%)
03/26/23-01:49:25 - Battery at 87% (target 80%)
03/26/23-01:50:25 - Battery at 87% (target 80%)
03/26/23-01:51:25 - Battery at 87% (target 80%)
03/26/23-01:52:25 - Battery at 87% (target 80%)
03/26/23-01:53:25 - Battery at 86% (target 80%)
03/26/23-01:54:25 - Battery at 86% (target 80%)
03/26/23-01:55:25 - Battery at 86% (target 80%)
03/26/23-01:56:25 - Battery at 86% (target 80%)
03/26/23-01:57:25 - Battery at 85% (target 80%)
03/26/23-01:58:25 - Battery at 85% (target 80%)
03/26/23-01:59:25 - Battery at 85% (target 80%)
03/26/23-02:00:25 - Battery at 85% (target 80%)
03/26/23-02:01:25 - Battery at 84% (target 80%)
03/26/23-02:02:25 - Battery at 84% (target 80%)
03/26/23-02:03:25 - Battery at 84% (target 80%)
03/26/23-02:04:25 - Battery at 84% (target 80%)
03/26/23-02:05:25 - Battery at 83% (target 80%)
03/26/23-02:06:25 - Battery at 83% (target 80%)
03/26/23-02:07:25 - Battery at 83% (target 80%)
03/26/23-02:08:26 - Battery at 82% (target 80%)
03/26/23-02:09:26 - Battery at 82% (target 80%)
03/26/23-02:10:26 - Battery at 82% (target 80%)
03/26/23-02:11:26 - Battery at 82% (target 80%)
03/26/23-02:12:26 - Battery at 81% (target 80%)
03/26/23-02:13:26 - Battery at 81% (target 80%)
03/26/23-02:14:26 - Battery at 81% (target 80%)
03/26/23-02:15:26 - Battery at 81% (target 80%)
03/26/23-02:16:26 - 🔼🪫 Disabling battery discharging
03/26/23-02:16:26 - Discharging completed at 80%
03/26/23-02:16:26 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop
03/26/23-02:16:26 - Charging to and maintaining at 80% from 80%
03/26/23-02:16:26 - Charge above 80
03/26/23-02:16:26 - 🔌🪫 Disabling battery charging
03/26/23-03:13:43 - Debug trail. User: lyubomirgizdarski, config folder: /Users/lyubomirgizdarski/.battery, logfile: /Users/lyubomirgizdarski/.battery/battery.log, file called with 1: maintain_synchronous, 2: recover
03/26/23-03:13:44 - Recovering maintenance percentage 80
03/26/23-03:13:44 - Not triggering discharge as it is not requested
03/26/23-03:13:45 - Charging to and maintaining at 80% from 82%
03/26/23-03:13:45 - Charge above 80
03/26/23-03:13:45 - 🔌🪫 Disabling battery charging
03/26/23-03:28:12 - Debug trail. User: lyubomirgizdarski, config folder: /Users/lyubomirgizdarski/.battery, logfile: /Users/lyubomirgizdarski/.battery/battery.log, file called with 1: maintain_synchronous, 2: recover
03/26/23-03:28:12 - No setting to recover, exiting
03/26/23-03:28:12 - Triggering discharge to 80 before enabling charging limiter
03/26/23-03:28:12 - Discharging to 80% from 82%
03/26/23-03:28:12 - 🔽🪫 Enabling battery discharging
03/26/23-03:28:12 - Battery at 82% (target 80%)
03/26/23-03:29:13 - Battery at 82% (target 80%)
03/26/23-03:30:13 - Battery at 82% (target 80%)
03/26/23-03:31:13 - Battery at 81% (target 80%)
03/26/23-03:32:13 - Battery at 81% (target 80%)
03/26/23-03:33:13 - Battery at 81% (target 80%)
03/26/23-03:34:13 - Battery at 81% (target 80%)
03/26/23-03:35:13 - 🔼🪫 Disabling battery discharging
03/26/23-03:35:13 - Discharging completed at 80%
03/26/23-03:35:13 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop
03/26/23-03:35:13 - Charging to and maintaining at 80% from 80%
03/26/23-03:35:13 - Charge above 80
03/26/23-03:35:13 - 🔌🪫 Disabling battery charging
03/26/23-10:34:14 - Triggering discharge to 80 before enabling charging limiter
03/26/23-10:34:14 - Discharging to 80% from 80%
03/26/23-10:34:14 - 🔽🪫 Enabling battery discharging
03/26/23-10:34:14 - 🔼🪫 Disabling battery discharging
03/26/23-10:34:14 - Discharging completed at 80%
03/26/23-10:34:14 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop
03/26/23-10:34:14 - Charging to and maintaining at 80% from 80%
03/26/23-10:34:14 - Charge above 80
03/26/23-10:34:14 - 🔌🪫 Disabling battery charging
03/26/23-10:34:26 - Not triggering discharge as it is not requested
03/26/23-10:34:26 - Charging to and maintaining at 80% from 80%
03/26/23-10:34:26 - Charge above 80
03/26/23-10:34:26 - 🔌🪫 Disabling battery charging
03/26/23-10:34:31 - Triggering discharge to 80 before enabling charging limiter
03/26/23-10:34:31 - Discharging to 80% from 80%
03/26/23-10:34:31 - 🔽🪫 Enabling battery discharging
03/26/23-10:34:31 - 🔼🪫 Disabling battery discharging
03/26/23-10:34:31 - Discharging completed at 80%
03/26/23-10:34:31 - Discharge pre battery-maintenance complete, continuing to battery maintenance loop
03/26/23-10:34:31 - Charging to and maintaining at 80% from 80%
03/26/23-10:34:31 - Charge above 80
03/26/23-10:34:31 - 🔌🪫 Disabling battery charging
03/26/23-12:25:17 - Not triggering discharge as it is not requested
03/26/23-12:25:17 - Charging to and maintaining at 80% from 80%
03/26/23-12:25:17 - Charge above 80
03/26/23-12:25:17 - 🔌🪫 Disabling battery charging
🖥  Battery GUI logs:
Setting interface refresh speed to 10 minutes
Refreshing tray icon...
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status
Limiter status message:
03/26/23-12:25:14 - Battery at 80% (attached; remaining), smc charging disabled
03/26/23-12:25:14 - Your battery is currently being maintained at 80%
Display percentage 80 based on 80
Resetting interface timer speed
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Refreshing interface update timer
Generate app menu percentage: 80 (discharge allowed, limited on)
Force discharge setting: boolean true
Get active logo for 80
Found image: /Applications/battery.app/Contents/Resources/battery-active-80-Template.png
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Setting interface refresh speed to 10 minutes
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Refreshing tray icon...
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status
Get active logo for 80
Display percentage 80 based on 80
Found image: /Applications/battery.app/Contents/Resources/battery-active-80-Template.png
Limiter status message:
03/26/23-12:25:14 - Battery at 80% (attached; remaining), smc charging disabled
03/26/23-12:25:14 - Your battery is currently being maintained at 80%
Resetting interface timer speed
Force discharge setting: boolean true
Refreshing interface update timer
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Generate app menu percentage: 80 (discharge allowed, limited on)
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Setting interface refresh speed to 10 minutes
Setting force discharge to false
Restart limiter
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery maintain stop
Force discharge setting: boolean true
Force discharge setting: boolean true
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Battery status:
{"percentage":"80","remaining":"unknown","charging":true,"discharging":false,"battery_state":"80% (unknown remaining)","daemon_state":"smc charging enabled"}
Force discharge setting: boolean false
Battery status:
{"percentage":"80","remaining":"unknown","charging":true,"discharging":false,"battery_state":"80% (unknown remaining)","daemon_state":"smc charging enabled"}
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery maintain 80
Refreshing tray icon...
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status
Force discharge setting: boolean false
Display percentage 80 based on 80
Limiter status message:
03/26/23-12:25:17 - Battery at 80% (attached; remaining), smc charging disabled
03/26/23-12:25:17 - Your battery is currently being maintained at 80%
Resetting interface timer speed
Found image: /Applications/battery.app/Contents/Resources/battery-active-80-Template.png
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Generate app menu percentage: 80 (discharge disallowed, limited on)
Get active logo for 80
Refreshing interface update timer
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Setting interface refresh speed to 10 minutes
Refresh logo for percentage 80, force active
enable_battery_limiter exec complete
Get active logo for 80
Refreshing tray icon...
Found image: /Applications/battery.app/Contents/Resources/battery-active-80-Template.png
Display percentage 80 based on 80
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status
Generate app menu percentage: 80 (discharge disallowed, limited on)
Get active logo for 80
Executing PATH=/bin:/usr/bin:/usr/local/bin:/usr/sbin:/opt/homebrew battery status_csv
Limiter status message:
03/26/23-12:25:19 - Battery at 80% (attached; remaining), smc charging disabled
03/26/23-12:25:19 - Your battery is currently being maintained at 80%
Display percentage 80 based on 80
Found image: /Applications/battery.app/Contents/Resources/battery-active-80-Template.png
Force discharge setting: boolean false
Resetting interface timer speed
Refreshing interface update timer
Battery status:
{"percentage":"80","remaining":"unknown","charging":false,"discharging":false,"maintain_percentage":"80","battery_state":"80% (unknown remaining)","daemon_state":"smc charging disabled"}
Setting interface refresh speed to 10 minutes
Force discharge setting: boolean false
📁 Config folder details:
total 592
drwxr-xr-x@  6 lyubomirgizdarski  staff   192B Mar 26 12:25 .
drwxr-x---+ 54 lyubomirgizdarski  staff   1.7K Mar 26 00:18 ..
-rwxr-xr-x@  1 lyubomirgizdarski  staff    15K Mar 26 12:29 battery.log
-rw-r--r--@  1 lyubomirgizdarski  staff     6B Mar 26 12:25 battery.pid
-rw-r--r--@  1 lyubomirgizdarski  staff   213K Mar 26 12:25 gui.log
-rw-r--r--@  1 lyubomirgizdarski  staff     3B Mar 26 12:25 maintain.percentage
⚙  Battery data:
03/26/23-12:29:25 - Battery at 80% (attached; remaining), smc charging disabled
03/26/23-12:29:25 - Your battery is currently being maintained at 80%
Battery CLI utility v1.0.10
Lyubomirs-MBP:~ lyubomirgizdarski$
Additional context (optional)
During the connection delay, laptop screen displays first on external display, then audio plays for 3-4 seconds on laptop before it is interrupted and is played on external display 10 seconds later.

Uninstalling the application does not remove the issue.

Thanks for resubmitting @lyubomirg1995.
I'm afraid I have no way to reproduce or test this since I do not have such a display. What I can say is that when battery is uninstalled, it undoes all changes to the system. If you think it did not, you can reset your SMC (which is where the changes are made, and I'm 99% sure also reversed).


Update MySQL/PostgreSQL config params for latest API version and fix MS SQL param names

Fixes #53 and #28
This change should alleviate confusion in configuring DB. I also rearranged the template params for better grouping. You'll see params are ordered as follows:

Switches
Moodle params, controller configs (ssh)
Web VMSS configs
DB configs: MySQL/PostgreSQL first, followed by MS SQL
File server configs
Misc: Elastic search VM SKU, networking, storage account type

Thanks @rgardler for your quick review! Merged/closed.


IPAM-DNS coupling

Problem statement
We need consistency between IP addresses and names:

when adding an IP address, a  (A or AAAA) DNS record must be created.
when deleting and IP address, the corresponding DNS record must be deleted.

Approach
The solution is based on three additional fields associated with the IP Address, "name", "zone" and "dns_record". When we submit the form or post data to the API, both the IP address and the DNS record are created, and the "dns_record" field points to the record. Ditto for deleting the IP Address with a linked DNS record.
Alternatives
As an alternative, I have considered using the "dns_name" field. Using this field entails several problems:

it is only an informative field,
as a character string, there is no possibility to use the Zone object,
there is no way to enforce permissions on DNS objects (Zone, Records),
finally, there is no guarantee of consistency between DNS records and IP addresses.

Hi @jean1, I just release version 0.20.0, which mainly adds your new feature. Thank you very much for this!

Hi @jean1, after another round of commits (this time abandoning the middleware concept altogether) I think the experimental feature should be generally working, even with custom scripts (see issue #105).
I'm planning on some enhancements (making the automatism more general and more comfortable), but for the time being this looks pretty useful to me. Thank you very much again for your help!


Set up network layer with Hilt

What happened 🤔

Add module data to set up all about relate with Service(providers, and response)

Add module domain to set up all about relate with UseCase(entity, dispatcher, repository and useCase)

Create (DispatcherModule, OkHttpClientModule, RepositoryModule and RetrofitModule) for support with Hilt

Insight 👀

For now: To make sure the architecture that we set up for the network layer will be work, We use this domain to sample how to use and how to get the data via useCase by Coroutine pattern.

And one more thin : We use LiveData to sample this PR, You will see some class like Event.kt to handle LiveData event and we will remove It later when we work on the implementation of StateFlow/SharedFlow.

Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

All in all looks good to me except for some naming issues.
Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

@Wadeewee The separation of modules app, domain, and data is fine, but the dependency is not. domain should not depend on data as defined here. Rather, data should depend on domain.

All in all looks good to me except for some naming issues.
Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

@Wadeewee The separation of modules app, domain, and data is fine, but the dependency is not. domain should not depend on data as defined here. Rather, data should depend on domain.

@AVI5HEK We keep the UserResponse in module data that why we need to include :data in :domain Please have a look at UserEntity.kt or Do you have any suggestion what should we improve this 🙏 🙇♀

All in all looks good to me except for some naming issues.
Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

@Wadeewee The separation of modules app, domain, and data is fine, but the dependency is not. domain should not depend on data as defined here. Rather, data should depend on domain.

@AVI5HEK We keep the UserResponse in module data that why we need to include :data in :domain Please have a look at UserEntity.kt or Do you have any suggestion what should we improve this 🙏 🙇♀

@Wadeewee yes, I saw it and that's not what the domain-driven design should be like. We should have the repository interfaces in the domain module and their implementations in the data module, and map the data models such as UserEntity to another domain model. Similarly, the app module should get the domain models as the output of the UseCases and map them to app models (a.k.a UI models). We can have a  chapter discussion on Slack regarding this if you like.

All in all looks good to me except for some naming issues.
Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

@Wadeewee The separation of modules app, domain, and data is fine, but the dependency is not. domain should not depend on data as defined here. Rather, data should depend on domain.

@AVI5HEK We keep the UserResponse in module data that why we need to include :data in :domain Please have a look at UserEntity.kt or Do you have any suggestion what should we improve this 🙏 🙇♀

@Wadeewee yes, I saw it and that's not what the domain-driven design should be like. We should have the repository interfaces in the domain module and their implementations in the data module, and map the data models such as UserEntity to another domain model. Similarly, the app module should get the domain models as the output of the UseCases and map them to app models (a.k.a UI models). We can have a chapter discussion on Slack regarding this if you like.

@AVI5HEK Could you please give me an example code how to implement like your suggestion to improve this case 🙏

All in all looks good to me except for some naming issues.
Note that, we're violating a fundamental principle of clean architecture by having our domain module dependent on data.
Ideally, domain should be independent, and both app and data are supposed to depend on domain. As a downside, this would require us to have separate model classes in each module, but that's, in fact, recommended in the clean architecture. Other than that, the configuration should take very minimal effort. What does everyone think? cc: @nimblehq/android-chapter

@AVI5HEK I'm not sure if I understand much so Did you mean for the the module domain we no need to separate them to module or not 🙏

@Wadeewee The separation of modules app, domain, and data is fine, but the dependency is not. domain should not depend on data as defined here. Rather, data should depend on domain.

@AVI5HEK We keep the UserResponse in module data that why we need to include :data in :domain Please have a look at UserEntity.kt or Do you have any suggestion what should we improve this 🙏 🙇♀

@Wadeewee yes, I saw it and that's not what the domain-driven design should be like. We should have the repository interfaces in the domain module and their implementations in the data module, and map the data models such as UserEntity to another domain model. Similarly, the app module should get the domain models as the output of the UseCases and map them to app models (a.k.a UI models). We can have a chapter discussion on Slack regarding this if you like.

@AVI5HEK Could you please give me an example code how to implement like your suggestion to improve this case 🙏

@Wadeewee Will share the example as soon as I get back from the vacation. 🏖  🙇🏼

LGTM.
Next time, please push new commits for code resolving, each commit should do 1 task only instead of applying all the changes in just 1 big commit @Wadeewee. Also, after some approvals, if we need to resolve more reviews, adding new commits will help the reviewer so much to verify the new code changes. 🙏

Yep, Will do @luongvo 🙏

@AVI5HEK 👋  Could you please approve this PR, I think we can refactor about Repository in new PR because we need to update them for RxJavaTemplate also 🙏


add badge for latest published version

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Issue with function getEvents

events = getEvents(close,tEvents,ptsl,target,minRet,cpus,t1=t1) takes an infinite time to process on a windows 10 machine. Need help !!!!
My machine specs !!
CPython 3.5.5
IPython 6.4.0
compiler   : MSC v.1900 64 bit (AMD64)
system     : Windows
release    : 10
machine    : AMD64
processor  : Intel64 Family 6 Model 94 Stepping 3, GenuineIntel
CPU cores  : 8
interpreter: 64bit
pandas 0.22.0
pandas_datareader 0.6.0
dask 0.18.1
numpy 1.14.5
sklearn 0.19.1
statsmodels 0.9.0
scipy 1.1.0
ffn (0, 3, 4)
matplotlib 2.2.2
seaborn 0.8.1

sorry I don't use Windows because of issues like you're experiencing in addition to other headaches I have experienced in the past. I recommend learning how to use Ubuntu. It is much easier to diagnose and fix issues in my opinion.

This issue refers the cell is at 2.2.3 (c) Apply triple-barrier method.
I found the fix and the reason that running this cell hangs on my windows set-up which is similar to the specs listed above.

First, the simple fix: At line cpus = cpu_count() - 1, change to cpus=1.

This will invoke single-thread execution for debugging [20.8] at def processJobs_(jobs)
On my laptop this cell runs in a second or two in single-thread execution
No hang. Problems solved.

Reasons for the hang and broader fix are at a couple of levels (based on my setup)
a) cpus = cpu_count() - 1 doesn't return a value. A ggl search will show that the behaviour of multiprocessing.cpu_count() is not reliable.
b) getEvents calls up mpPandasObj for multi-processing and in mpPandasObj, the default value (if it gets called) for numThreads=24, which exceeds the specs above (CPU cores: 8).

In this Notebook, at def mpPandasObj, numThreads could be changed to = 1.
You will see in def mpPandasObj that "if numThreads==1:out=processJobs_(jobs)", it calls up processJobs_ in the following cell 20.8 for single-thread processing.

c) When I set cpus = 4, the cell also hangs.

This would indicate to me that the multiprocessing code from ch 20 that is included in this Notebook cannot be presumed to be matched to computer specs such as the above.
This seems to be confirmed in at 20.5, page 309 of the book where it states "In this section, we will study one such engine, and once you understand the logic, you will be ready to develop your own, including all sorts of customized
properties."
In the meantime, for me, rather than stumble around with the code in ch 20, I will just set the code to run in single-thread mode.

Debugging
a) I was able to detect this issue without too much trouble by debugging the getEvents()by running the def code one line at a time with the variable values in the state they have reached at 2.2.3(c).
b) I used the set-up that I have described in the Suggestions to my other issue post at "Bars notebook - possible corrections", particularly the QtConsole and the Variable Inspector, and saving data variables to CSV files for inspection as to what is going on.

I trust that this may assist BlackArbsCEO and others who what to run the code in the Labelling Notebook.
And to BlackArbsCEO, I again Thank you greatly for the sharing your implementations in the 2 notebooks. It has assisted greatly in understanding and contributes towards the possibility of applying the work from the book.

I looked into this further after continuing to get  Errors with cpu = a value other other than 1
ERROR Traceback:
Process SpawnPoolWorker-3:
. . .
AttributeError: Can't get attribute 'expandCall' on <module 'main' (built-in)>
The posts below indicate that it arises because the Jupyter in Windows is in interactive mode and python multiprocessing does not work in windows in interactive mode.
One solution posed is to execute the multiprocessing by putting it into a script.py and calling the script up from the Notebook cell. I haven't implemented this "solution" / workaround. I have - as I wrote above - simply set "cpu = 1" which invokes single thread processing, which executes quite quickly enough with the dataset used in this exercise.
References:
https://github.com/ipython/ipython/issues/10894
https://stackoverflow.com/questions/48593694/python-multiprocessing-returning-attributeerror-when-following-documentation-cod
https://stackoverflow.com/questions/45719956/python-multiprocessing-attributeerror-cant-get-attribute-abc
Testing environment for multiprocessing
There are scripts at the post below which can be run in your environment to test that multiprocessing is working.
I simply saved the script in the answer post as py file, opened it in VS Code, and F5 Run in Debug mode, though I changed the range(300) to 30 so shorten the exercise.
https://stackoverflow.com/questions/48660656/multiprocessing-python-3-6-on-windows-10-not-working

@gahobbsau, the issues I have reported above, actually appears in scripts (.py files) with all code after imports put inside the 'main' block and the multi processing code put in a separate .py file. Putting the executing code in the 'main' block is needed to make the multi processing run in a script on a Windows box. I assume that is related to the workaround you mention above for notebooks.
Hence, for me, there is still something more subtle to understand when it comes to the multi processing library that can be put together by the snippets from chapter 20.


Simplify the gathering of host information.

I proposed a simplified version of the host info gathering. With this, we'll have less code to maintain and it'll be easier to understand for futur contributors.
There is also no need for the dictionary used to gather infos to be exposed at the top level, since it's undocumented, I removed it.

Coverage decreased (-0.03%) to 85.294% when pulling 979075e8a79b502a20f4bef41b696575b7263fa9 on gabrieldemarmiesse:simplify_info_gathering into a181df59dd9b3c9c8e875d94bcdf229e7227e165 on IDSIA:master.

Hmm, not sure about this. The idea behind the current implementation was to make it easy to customize host-info from the user-level. I.e. if you want some custom information captured, just decorate a function with @host_info_getter(name='custom') and its results will be added to host_info.
On the other hand I can see the advantages of reducing complexity, and your code is clearly much simpler and more maintainability.
@JarnoRFB: Opinions?

I wouldn't necessarily break the user facing API for an internal simplification. The functionality also seems to be documented here https://sacred.readthedocs.io/en/latest/collected_information.html#host-info. Unless we can find a way to simplify and keep the feature, I would leave it.

I didn't see it was a user facing API. My bad.


style: Adjust EthHashInfo name font weight

Goal
In order to conform with the redesign of Tx Modals the name in EthHashInfo should be bold.
Screenshot

We might want to use a prop for this in case the name should not be bold in some places.


Opsmgr UI bug impacting PKS installation and upgrade

Ops Manager 2.1.x and 2.2.1 support Xenial stem cells. However, the Ops Manager UI returns and error when you attempt to import a Xenial stemcell. As a workaround, you can upload the stem cell and assign it to a product using the Ops Manager API. Opsmgr 2.2.2 and upwards don't have this issue. We need to add this as a known issue in PKS docs.

Thanks @outofmem0ry. Hey @pspinrad and @ljarzynski are you aware of this issue with OM v2.1.x and v2.2.1?

@Paul Spinrad<EMAIL_ADDRESS>we added to OpsMan known issues here
https://www.pivotaltracker.com/story/show/160730688 and here
https://www.pivotaltracker.com/story/show/160730688
On Tue, Sep 25, 2018 at 11:39 AM ben tarnoff<EMAIL_ADDRESS>wrote:

Hey @outofmem0ry https://github.com/outofmem0ry I've made the following
changes to "Upgrade PKS," "Upgrade PKS with NSX-T," and the release notes
to reflect the fact that PKS v1.2 requires OM v2.2.2+ or v2.3.1+: 6d4df06
https://github.com/pivotal-cf/docs-pks/commit/6d4df06999bddf62c8f56cfcc037cf1ac783b6e8
.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/pivotal-cf/docs-pks/issues/354#issuecomment-424455286,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE2t-_bUGBMxgfCsvdQDnWYouoMdmelsks5uenhrgaJpZM4W3GC9
.


[Feature request] Diff format output

Hi there!
I am working on integrating rustfmt to RustyCode. Right now, i am using --write-mode=diff to extract changes. What would really awesome if one can specify style of diff output, like --write-mode=diff --format=json. It will make correct integration much easier, without some magic strings manipulations.

This sounds like a nice feature to have. Are there well-known formats for diff as json and so forth?


fix, Score with passing tests in code-repair task cause coverage can be cheated

TODO add this to release notes of 0.6.0 and update release once it is in:
- fix, Score with passing tests in code-repair task cause coverage can be cheated by @bauersimon https://github.com/symflower/eval-dev-quality/issues/320, https://github.com/symflower/eval-dev-quality/pull/321


[bazel] Refresh bitstreams cache before copying to airgapped tarball

Signed-off-by: Dan McArdle<EMAIL_ADDRESS>

When I ran util/prep-bazel-airgapped-build.sh, I saw that the recursive copy out of the bitstream cache failed because the revision in latest.txt had not already been fetched.
I'm guessing this was a regression introduced in #14938 — it looks like we used to just copy whatever we had on disk.

Thanks, @timothytrippel!
This is a tangent, but would you mind double checking the advice printed at the end of the script?  Shouldn't the --repository_cache be defined in terms of $BAZEL_CACHEDIR instead of BAZEL_DISTDIR?
https://cs.opensource.google/opentitan/opentitan/+/master:util/prep-bazel-airgapped-build.sh;l=181;drc=2abd786c664c619dab8a2538c479b3dcf03d9d54

Small edit: replaced "tarball" with "dir" in the commit message and PR title.

Thanks, @timothytrippel!
This is a tangent, but would you mind double checking the advice printed at the end of the script? Shouldn't the --repository_cache be defined in terms of $BAZEL_CACHEDIR instead of BAZEL_DISTDIR?
https://cs.opensource.google/opentitan/opentitan/+/master:util/prep-bazel-airgapped-build.sh;l=181;drc=2abd786c664c619dab8a2538c479b3dcf03d9d54

Oh yep, good catch @dmcardle !

Great! Just fixed the echo line in a followup commit.


Option to disable -fPIC in bare metal targets

Request description
https://github.com/openxla/iree/blob/b2688322861cbf071955b1fc7682b85f1f9383b9/CMakeLists.txt#L581
The library has to be compiled without the -fPIC flag in my build configuration, but I have no way to disable this behavior.
Is this intentional? I would really appreciate it if there was an option to turn it off.
What component(s) does this issue relate to?
Runtime
Additional context
No response

We can definitely make that configurable. If you need it quickly, feel free to send a patch that introduces an option and sets the value to that.

I've submitted a pull request. Would you mind taking a look at it?


Update Sunder and Rainbow enchants to VI and III respectively, as they are their new highest tiers.

Will open new PR that points to master instead


Update Move book off of head, add unit testing section

This PR adds a section to the Move book on unit testing, and also updates the book to be built off of diem/main -- so picks up the new syntax changes to assert!

We had previously tried to keep the published docs aligned with the latest release. Are you proposing to change that in general or is this a one-off change to temporarily sync up to a more recent version?

Longer-term, I'd propose that that we change it in general until we have Move releases given the recent developments. Near-term I'm happy to hold-off on the larger question, and have this be a one-off change  for the hackathon since they will be building off of main, and it would be good for the book to have the updated syntax/docs for that along with docs on unit testing.

OK, I'm fine with it as a one-off. In general, though, we should work toward a more consistent answer about whether people should use the main branch or the latest release.


Remove unused globals and updateViewarea function from viewer.js

This patch cleans up viewer.js a bit by removing the unused globals getVisibleElements and watchScroll (both became obsolete after moving the thumbnail code to its own file) and by removing the updateViewarea function. It seems superfluous to have an entire function essentially only for calling PDFViewerApplication.pdfViewer.update(). On top of that, it is only used in two places, one of which (the resize event handler) already performs the check if PDFViewerApplication is initialized, making the function even less useful as it would do the exact same check again. Therefore inlining that part seemed cleaner and in the resize event handler we only use the update() line instead of repeating the check.
@Snuffleupagus Could you review this patch?

/botio-linux preview

Seems fine, thank you!


Batch processing on label_mentions is not working

Hi @lorr1 ,
Is it possible to have batch processing for label_mentions method? Currently it is taking a list of sentences, but internally in the code, I can see it is processing one sentence at a time. Is it possible to do this batchwise to speed up the process?

Hey. It would be possible for sure. Setting up some worker queue for the processing.
It's not on my immediate roadmap to solve (as we have offline extract_mentions and dump_preds methods for batch processing). They are in our end2end tutorial.


Httpx

Hey, I hope you had a nice new year. I'm using your package in another package for FastAPI API; but the version of httpx 0.15.0 that you package have is incompatible with the HTTPX version used for FastAPI so I get some bugs.
I updated the httpx version to the latest and increased the minimum Python version from 3.6 to 3.7, as the latest versions of httpx don't work with 3.6.

I hope the changes are to your liking ~

awsome thanks

Perfect, I'll wait until the update of the Pypi package. See you ~

I got some problems with poetry install though when trying to fix the failed actions (https://github.com/ffreemt/bing-image-urls/actions), got
The lock file is not compatible with the current version of Poetry.
Upgrade Poetry to be able to read the lock file or, alternatively, regenerate the lock file with the `poetry lock` command.

Did a poetry lock, got exactly the same message.  My current poetry is relatively new (Poetry (version 1.2.1)).
It's an old repo. I am not sure how to proceed and may need some time to get the Pypi package ready.


README.mkd: Added instructions for Mac users

Hey Ryan, I got your jconf-grapher running on my Mac and I thought of adding the instructions that concern:
-How to install dependencies with Homebrew (with the unofficial formulae for pygtk, pycairo and pygobject from @jodal).
-How to execute jconf-viz.py using X11.
Hopefully it will be useful to someone else!

Sweet, thanks!