Not working properly on latest Chrome

Can someone confirm that https://sortablejs-vue3.maxleiter.com/ is working properly on latest versions of chrome/edge on Windows?
In my case, it works once if I do some heavy random clicking. There are no usable messages in console.
I did already mention this here: https://github.com/SortableJS/vue.draggable.next/issues/191

I could figure out why this was happening: I'm running windows on a virtual machine and mouse capturing was not working properly.
Really strange, because no other windows functionality was affected by this, just drag and drop inside edge & chrome...

@singerla  Excuse me,Do you occasionally find that click and drag content doesn't work on Google Chrome?But it works in Firefox

My issue was related to a wrong setting in VirtualBox related to mouse integration. The symptoms described above were misleading me into a completely wrong direction and not at all unrelated to sortableJs. :smile:
If you also have to rely on a Win10 Guest in VirtualBox to test Edge, you might want to check your selected pointer device. This fixed the issue for me.


[helm-tls] add option to secure helm tiller with tls

Add option to secure helm tiller with TLS. More info https://github.com/helm/helm/blob/master/docs/tiller_ssl.md
Install helm client on all masters similar to kubectl. Create helm home directory on all masters and copy helm client certs to helm home when TLS is used.
Enable proxy for helm init commands. Duplicate of https://github.com/kubernetes-incubator/kubespray/pull/2303
Feature Request opened: #3212

#3212

ci check this

/hold
Do not merge this PR until helm is moved back to kubernetes-apps as a meta subrole.


remove Search data plane libs

Azure Search data plane libs were included in 14.0.0 but they don't yet work. Can we remove them as soon as possible so no one tries to use them? Thanks!
cc @brjohnstmsft

Fixed in v14.0.1.


uv_write() for pipes on Windows does not always call callback

Version: 1.19.1 (Node master)
Platform: Windows 10

Hi everyone! I'm currently debugging some of my Node work, and I'm pretty sure uv_write() callbacks for Windows pipes don't always get called (even though the other side of the pipe fully received the data).
I'll try to get a pure libuv reproduction together, but the easiest way to reproduce would be something along the lines of adding a fprintf(stderr, "foobar\n"); to Node's LibuvStreamWrap::AfterWrite(), then running a test like test\parallel\test-cluster-cwd.js -- it writes data, the other side receives it, and it does use uv_write() for writing, but there's no extra output.

@addaleax  if you change slaves process.send to
  process.send(process.cwd(), () => {
    process.disconnect();
  });

the fprints start to appear. Does this makes sense, or do you still think there is some issue here?

@bzoz I don’t think that’s a solution, no… the writes should still be reported back as finished, even without an explicit disconnect, right? That’s true for all other kinds of libuv streams

I mean, it looks like the process exits before callbacks can be called. If you drop the process.disconnect() altogether, the fprints also start to appear (but the test never finishes).


Fixtestcases

fix electron testcases to remove hard coded dates.. after #3599 fix

well, contains not only the testcases ... seems to be mixed up with #3587

yeh, don't know how that happened..
have local branch with fixes created from fixcaldates2, fixtestcases (as current branch)
switched to develop, pulled develop
switch to fixtestcases, merge develop
add testcases/commit/push

i can toss it and do again directly from develop

closing, redo

I hink it was


[Event Request] table 179 "Reversal Entry" new parameter to event OnInsertFromGLEntryOnBeforeTempReversalEntryInsert()

Please can you add the Rec parameter to the below event...
OLD
TempReversalEntry.CopyFromGLEntry(GLEntry);
  TempReversalEntry."Line No." := NextLineNo;
  NextLineNo := NextLineNo + 1;
  OnInsertFromGLEntryOnBeforeTempReversalEntryInsert(TempReversalEntry, GLEntry);
  TempReversalEntry.Insert();

[IntegrationEvent(false, false)]
local procedure OnInsertFromGLEntryOnBeforeTempReversalEntryInsert(var TempReversalEntry: Record "Reversal Entry" temporary; GLEntry: Record "G/L Entry");
begin
end;

NEW
TempReversalEntry.CopyFromGLEntry(GLEntry);
TempReversalEntry."Line No." := NextLineNo;
NextLineNo := NextLineNo + 1;
OnInsertFromGLEntryOnBeforeTempReversalEntryInsert(Rec, TempReversalEntry, GLEntry);        //CODE CHANGE
TempReversalEntry.Insert();

[IntegrationEvent(false, false)]
local procedure OnInsertFromGLEntryOnBeforeTempReversalEntryInsert(ReversalEntry: Record "Reversal Entry"; var TempReversalEntry: Record "Reversal Entry" temporary; GLEntry: Record "G/L Entry");
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 10889.


Samples force you to enter a password

All of the basic samples force a password to be passed in on the command line.  This is not ideal when first connecting to the Software broker that has the default VPN and default client-username enabled, and no password is required.
I'm happy to do the fix myself, to get practice with GitHub's contributing methods.
Note: this doesn't apply to the features ones, which look to be taken from the API's original examples.

Using a password is a best practice. So that is why we've created the samples this way.
It also works with the default setup of the PSB and messaging services from PubSub+ Cloud which require a password by default. So this is design intent currently in the samples.
We could update the readme to suggest a user of something like "demo" with password "demo" for the standard PSB if you thought that would clarify the expected usage.

Using a password is a best practice.
Agreed!  But it's also non-intuitive to have to enter a junk one when not required.

It also works with the default setup of the PSB...
PSB = software broker?  Doesn't require a password by default.

Having optional password also harmonizes with the feature samples, SdkPerf, as well the actual API.
I've already done the code change, and am about to do a pull request.  Take a look, and if you don't like it, you can reject.  It's still pretty clear that a password is expected, but optional.


"Calling get_price_range() on an empty item range" after populatedb

After calling populatedb command and viewing /products/category/shirts/ the following error occurs: AttributeError at /products/category/shirts/
Calling get_price_range() on an empty item range
Error during template rendering
In template /home/marcin/mirumee/saleor/saleor/saleor/product/templates/category/index.html, error at line 23

Full traceback: http://dpaste.com/2FMGA9C

This is fixed with #268.


images resize on export

Mostly working great, but images seem to resize and crop themselves when they are sized other then full size, IE (height: xyz, width: yyz). Is this a known issue?

Its nice if images can be resized by img tag's width and height


use vehicle state values as option for bonk detection

In CSceneVehicleVisState there are some hidden values that trigger when I crash, either from the front, back, or at all. I thought these were related to accel penalty but now I think they're actually sparks. Taken from Current Effects plugin, some safety removed for brevity:
uint16 penalty1Offset = 0;
int GetPenalty1(CSceneVehicleVisState@ state) {  // front/back impact strength? 0 - 16,843,009
    if (penalty1Offset == 0) {
        const Reflection::MwClassInfo@ type = Reflection::GetType("CSceneVehicleVisState");
        penalty1Offset = type.GetMember("WaterImmersionCoef").Offset - 8;
    }

    return Dev::GetOffsetInt32(state, penalty1Offset);
}

uint16 penalty2Offset = 0;
int GetPenalty2(CSceneVehicleVisState@ state) {  // back impact? 0 - 1
    if (penalty2Offset == 0) {
        const Reflection::MwClassInfo@ type = Reflection::GetType("CSceneVehicleVisState");
        penalty2Offset = type.GetMember("WaterImmersionCoef").Offset - 4;
    }

    return Dev::GetOffsetInt32(state, penalty2Offset);
}

uint16 penalty3Offset = 0;
int GetPenalty3(CSceneVehicleVisState@ state) {  // any impact? 0 - ~1,065,000,000
    if (penalty3Offset == 0) {
        const Reflection::MwClassInfo@ type = Reflection::GetType("CSceneVehicleVisState");
        penalty3Offset = type.GetMember("WetnessValue01").Offset + 8;
    }

    return Dev::GetOffsetInt32(state, penalty3Offset);
}

Hi sorry this got lost in between the cracks there
Is there a way to do this without memory access? I'd really rather avoid Dev:: work, i'm no xert

Not that I know of, but I'm 99% sure just pulling integers out is completely safe. I don't really care either way - I don't use this plugin, but I thought you might be interested in a different detection method. Feel free to close if you don't like it (although the official vehicle state plugin does exactly this for a bunch of other hidden values like side speed, wheel dirt, etc)


Error in Config option "sprites‑folder"

sprites‑folder: true aborts rendering of panel

uhm, sprites‑folder: true is not a valid value. It expects a path to the folder containing the sprites :/
You think this needs any fixing?

uh .. got it. Nope no fix necessary.
My mistake. I used this option in the blueprint :-)


generating tracks doesn't work as intended because call back does not return quick enough duh

async call to get tracks
followed by immediately doing stuff
printing out playlist aint good
double check to make sure things are happening as intended.

fix using promises


Can't install WIA driver on Windows 10 with VS 2017 Community

I tried to build the WIA driver sample with VS 2017 community. I'm able to build successfully, but then the copywia.cmd script fails due to release paths being different.
I copied the files manually, but when I add the device using the Add Device from the Scanners and cameras window > Have Disk... I can choose any of the Wia sample microdriver, Production Scanner Test Driver or Extended WIA Monster device, I get "This driver is not digitally signed" warning, and then nothing happens if i click Next.
How do I build the drivers so that they have a digital signature on the same machine (at least for testing)?

@matteoacrossi A signed category file (.cat) is needed under x64 OS.
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/winusb-installation
For test purpose, it is easy to install under x86 OS.

Hello,
I have build the wia project and installed 3 drivers for virtual 32 bit machine (windows 8)
but any of 3 scanners are not working could you provide some information what to do next?


This repo has excluded by Hacktoberfest

Hello,
I would like to inform you that your repo has excluded by Hacktoberfest. Please inform it on your readme.md.
Regards,

Thanks for informing me, madam. Now it is mentioned in my README.md.


Not operator | Validate EKS 1.29 upgrade

@zacharyblasczyk has this PR for 1.29 upgrade. We've to get that in and upgrade the Dedicated Cloud fleet by mid-Nov. Would it be possible to have another pair of eyes at that and validate if that's good or if other changes may be needed?

I am closing this for now. I think there are more important things to work on and we already have this in the QA env.


Services become zombie when they fail to set a kafka's channel

When you run 'docker ps', all services are 'UP', but dojot is not operational. You can note behaviors like:

Persister doesn't receive messages.
Iotagent doesn't send events to the device
...

Bellow there are some logs of the services.
<<auth>>
auth_1                        | [28/01/19 - 10:00:41] |webRoutes| DEBUG: ... publisher initialization thread started.
auth_1                        | [28/01/19 - 10:00:41] |messenger| INFO: Could not create producer
auth_1                        | [28/01/19 - 10:00:41] |consumer| INFO: Creating consumer on ['kafka:9092'] on group dojotmodulepythonce79ce1f-e9f4-4d39-8d3f-0d9f45a809d3 and topic []
auth_1                        | [28/01/19 - 10:00:41] |consumer| INFO: Consumer created []
auth_1                        | [28/01/19 - 10:00:41] |messenger| INFO: Creating channel for subject: dojot.tenancy
auth_1                        | [28/01/19 - 10:00:41] |messenger| DEBUG: tenants in create channel: []
auth_1                        | [28/01/19 - 10:00:41] |messenger| INFO: Bootstraping tenant dojot-management for subject dojot.tenancy
auth_1                        | [28/01/19 - 10:00:41] |messenger| DEBUG: Global: True, mode: rw
auth_1                        | [28/01/19 - 10:00:41] |messenger| INFO: Requesting topic for dojot.tenancy@dojot-management
auth_1                        | [28/01/19 - 10:01:04] |messenger| WARNING: Could not get topic: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
auth_1                        | [28/01/19 - 10:01:04] |KafkaPublisher| DEBUG: Initializing messenger
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Registering new callback for subject dojot.tenancy and event message
auth_1                        | [28/01/19 - 10:01:04] |auth    | DEBUG: Retrieving list of tenants from auth...
auth_1                        | [28/01/19 - 10:01:04] |auth    | DEBUG: ... list of tenants retrieved from auth.
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Retrieved list of tenants
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Bootstraping tenant: admin
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Received message in tenanct subject.
auth_1                        | [28/01/19 - 10:01:04] |messenger| DEBUG: Tenant is: dojot-management
auth_1                        | [28/01/19 - 10:01:04] |messenger| DEBUG: Message is: {"tenant": "admin"}
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Emitting new event new-tenant for subject dojot.tenancy@dojot-management
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: No one is listening to subject dojot.tenancy new-tenant events
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: admin bootstrapped.
auth_1                        | [28/01/19 - 10:01:04] |messenger| DEBUG: tenants: ['admin']
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Finished tenant boostrapping
auth_1                        | [28/01/19 - 10:01:04] |KafkaPublisher| DEBUG: ... messenger initialized.
auth_1                        | [28/01/19 - 10:01:04] |KafkaPublisher| DEBUG: Creating channel dojot.tenancy
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Creating channel for subject: dojot.tenancy
auth_1                        | [28/01/19 - 10:01:04] |messenger| DEBUG: tenants in create channel: ['admin']
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Bootstraping tenant admin for subject dojot.tenancy
auth_1                        | [28/01/19 - 10:01:04] |messenger| DEBUG: Global: False, mode: w
auth_1                        | [28/01/19 - 10:01:04] |messenger| INFO: Requesting topic for dojot.tenancy@admin
auth_1                        | [28/01/19 - 10:01:04] |messenger| WARNING: Could not get topic: HTTPConnectionPool(host='data-broker', port=80): Max retries exceeded with url: /topic/dojot.tenancy?global=true (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fd3f4b2a9e8>: Failed to establish a new connection: [Errno 111] Connection refused',))

<<iotagent>>
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: Initializing IoT agent...
iotagent-mqtt_1               | Creating a new Kafka producer...
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- INFO: Creating channel for subject dojot.tenancy
iotagent-mqtt_1               | Bootstraping tenant internal for subject dojot.tenancy.
iotagent-mqtt_1               | Global: true, mode r
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: Requesting topic for<EMAIL_ADDRESS>iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: ... topic for dojot.tenancy@internal was requested.
iotagent-mqtt_1               | Creating a new Kafka consumer...
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- INFO: Connecting the consumer ..
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: Initializing IoT agent messenger...
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: Registering new callback for subject dojot.tenancy and event message
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- INFO: Retriving tenants from http://auth:5000/admin/tenants
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: ... IoT agent was initialized
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: Initializing configuration endpoints...
iotagent-mqtt_1               | <10:00:32 28/01/2019> -- DEBUG: ... configuration endpoints were initialized
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- DEBUG: Registering new callback for subject iotagent.device and event device.configure
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- INFO: Creating channel for subject iotagent.device
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- DEBUG: Registering new callback for subject iotagent.device and event device.remove
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- INFO: Listening on port 10001.
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- WARN: Could not get topic: Error: connect ECONNREFUSED <IP_ADDRESS>:80
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- WARN: Could not get list of current tenants: Error: connect ECONNREFUSED <IP_ADDRESS>:5000
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- WARN: Trying it again in a few seconds.
iotagent-mqtt_1               | {"pid":8,"hostname":"47e6d17bc841","name":"MoscaServer","level":30,"time":1548669633200,"msg":"server started","mqtts":8883,"v":1}
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- INFO: Mosca server is up and running
iotagent-mqtt_1               | Failed to connect the producer.
iotagent-mqtt_1               | <10:00:33 28/01/2019> -- ERROR: Could not create producer: undefined
iotagent-mqtt_1               | Generating keys and certificates for TLS ...
iotagent-mqtt_1               | Retrieving CA Chain
iotagent-mqtt_1               | Generating keys
iotagent-mqtt_1               | Generating CSR
iotagent-mqtt_1               | Asking certification signature
iotagent-mqtt_1               | Retrieving CRL
iotagent-mqtt_1               | TLS configured.
iotagent-mqtt_1               | Only MQTTS is enabled.
iotagent-mqtt_1               | Starting iotagent-mosca...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Initializing IoT agent...
iotagent-mqtt_1               | Creating a new Kafka producer...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Creating channel for subject dojot.tenancy
iotagent-mqtt_1               | Bootstraping tenant internal for subject dojot.tenancy.
iotagent-mqtt_1               | Global: true, mode r
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Requesting topic for<EMAIL_ADDRESS>iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... topic for dojot.tenancy@internal was requested.
iotagent-mqtt_1               | Creating a new Kafka consumer...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Connecting the consumer ..
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Initializing IoT agent messenger...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Registering new callback for subject dojot.tenancy and event message
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Retriving tenants from http://auth:5000/admin/tenants
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... IoT agent was initialized
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Initializing configuration endpoints...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... configuration endpoints were initialized
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Registering new callback for subject iotagent.device and event device.configure
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Creating channel for subject iotagent.device
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Registering new callback for subject iotagent.device and event device.remove
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Listening on port 10001.
iotagent-mqtt_1               | Producer is ready.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Producer for module iotagentef4e3a01-a003-4ffb-808a-7de4ab1adba1 is ready.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Sending pending messages...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Consumer is connected
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- WARN: Global consumer connected
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Retrieved list of tenants: admin.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Bootstrapping tenant admin...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Received message in tenancy subject.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Tenant is: internal
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Message is: '{"tenant":"admin"}'
iotagent-mqtt_1               | Bootstraping tenant admin for subject iotagent.device.
iotagent-mqtt_1               | Global: false, mode r
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Requesting topic for<EMAIL_ADDRESS>iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... topic for iotagent.device@admin was requested.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Emitting new event new-tenant for subject dojot.tenancy@internal
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: No one is listening to subject dojot.tenancy new-tenant events.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: ... admin bootstrapped.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Finished tenant bootstrapping.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... IoT agent messenger was successfully initialized.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Creating channel for device-data subject...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Creating channel for subject device-data
iotagent-mqtt_1               | Bootstraping tenant admin for subject device-data.
iotagent-mqtt_1               | Global: false, mode w
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Requesting topic for<EMAIL_ADDRESS>iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... topic for device-data@admin was requested.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... channel for device-data was created.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Registering callback for DeviceManager device subject...
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Registering new callback for subject dojot.device-manager.device and event message
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Creating channel for subject dojot.device-manager.device
iotagent-mqtt_1               | Bootstraping tenant admin for subject dojot.device-manager.device.
iotagent-mqtt_1               | Global: false, mode r
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: Requesting topic for<EMAIL_ADDRESS>iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... topic for dojot.device-manager.device@admin was requested.
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- DEBUG: ... callbacks for DeviceManager devices registered.
iotagent-mqtt_1               | {"pid":12,"hostname":"47e6d17bc841","name":"MoscaServer","level":30,"time":1548669672473,"msg":"server started","mqtts":8883,"v":1}
iotagent-mqtt_1               | <10:01:12 28/01/2019> -- INFO: Mosca server is up and running
iotagent-mqtt_1               | <10:01:13 28/01/2019> -- WARN: Could not get topic: Error: connect ECONNREFUSED <IP_ADDRESS>:80
iotagent-mqtt_1               | <10:01:13 28/01/2019> -- WARN: Could not get topic: Error: connect ECONNREFUSED <IP_ADDRESS>:80
iotagent-mqtt_1               | <10:01:13 28/01/2019> -- WARN: Could not get topic: Error: connect ECONNREFUSED <IP_ADDRESS>:80
iotagent-mqtt_1               | <10:01:13 28/01/2019> -- WARN: Could not get topic: Error: connect ECONNREFUSED <IP_ADDRESS>:80
iotagent-mqtt_1               | <10:01:22 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:01:32 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:01:42 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:01:52 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:02:02 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:02:12 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:02:22 28/01/2019> -- DEBUG: Cheking memory.
iotagent-mqtt_1               | <10:02:32 28/01/2019> -- DEBUG: Cheking memory.

<<persister>>
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Requesting topic for dojot.device-manager.device@admin
persister_1                   | [28/01/19 - 10:01:04] |messenger| WARNING: Could not get topic: HTTPConnectionPool(host='data-broker', port=80): Max retries exceeded with url: /topic/dojot.device-manager.device?global=true (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2486bf6c50>: Failed to establish a new connection: [Errno 111] Connection refused',))
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Creating channel for subject: device-data
persister_1                   | [28/01/19 - 10:01:04] |messenger| DEBUG: tenants in create channel: ['admin']
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Bootstraping tenant admin for subject device-data
persister_1                   | [28/01/19 - 10:01:04] |messenger| DEBUG: Global: False, mode: r
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Requesting topic for device-data@admin
persister_1                   | [28/01/19 - 10:01:04] |messenger| WARNING: Could not get topic: HTTPConnectionPool(host='data-broker', port=80): Max retries exceeded with url: /topic/device-data?global=true (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2486c182b0>: Failed to establish a new connection: [Errno 111] Connection refused',))
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Registering new callback for subject dojot.device-manager.device and event message
persister_1                   | [28/01/19 - 10:01:04] |messenger| INFO: Registering new callback for subject device-data and event message
persister_1                   | [28/01/19 - 10:01:14] |persister| INFO: db initialized
persister_1                   | [28/01/19 - 10:01:14] |messenger| INFO: Could not create producer
persister_1                   | [28/01/19 - 10:01:14] |consumer| INFO: Creating consumer on ['kafka:9092'] on group dojotmodulepython0e8fabf8-79ab-445b-9f19-08cc372741f5 and topic []
persister_1                   | [28/01/19 - 10:01:14] |consumer| INFO: Consumer created []
persister_1                   | [28/01/19 - 10:01:14] |messenger| INFO: Creating channel for subject: dojot.tenancy
persister_1                   | [28/01/19 - 10:01:14] |messenger| DEBUG: tenants in create channel: []
persister_1                   | [28/01/19 - 10:01:14] |messenger| INFO: Bootstraping tenant internal for subject dojot.tenancy

Listing of related components and services:

[ ] dojot-module-nodejs:

[ ] iotagent-nodejs (adaptations)
[ ] iotagent-mosca
[ ] iotagent-sigfox
[ ] iotagent
[ ] data-broker
[ ] iotagent-rabbitmq
[ ] iotagent-lora-everynet

[ ] dojot-module-python:

[ ] persister
[ ] auth
[ ] device-manager
[ ] ejbca-rest

Fixed!


Add logics to change type when argocd rollout managed object' labels and annotations are passed

Add https://github.com/robusta-dev/krr/pull/377 logic in labels.
Refactor these logics for more pythonic, and add NOTE comment.

 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.


[Feature] Contains filename in the api resonse

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
No
Describe the solution you'd like
The response of the call to the APIGW should contains the final filename, only the path is included currently. Expected output
{"id_task": "123", "task": "text-to-image", "sd_model_checkpoint": "v1-5-pruned-emaonly.safetensors", "output_location": "s3://sdoneksdataplanestack-outputs3bucket/123/20231116084316-fdcafa65-9990-42b7-b7ce-30bc2249d4d5.png"}

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Close as not able to implement. We can't determine number and format of images for a request may generate.


Add automated testing for all our certified catalog items

These aren't tested consistently with each release. Only tested when something in them changes.

With the release of Rancher 2.0, development on v1.6 is only limited to critical bug fixes and security patches.


chore: automated lint fixes

Reason for Change:

automated lint fixes via golangci-lint run --fix true
Issue Fixed:

Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] relevant PR labels added

Notes:

/ azp run CNI Load Test


App kept reporting timeouts (stack gunicorn + uvicorn + nginx)

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[x] I already checked if it is not related to FastAPI but to Swagger UI.
[x] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Description
Hi guys, seriously I need your helps. Currently my app is running under nginx load balancer + gunicorn & uvicorn workers.
This is my current configuration:
  config: gunicorn_conf.py
  bind: ['<IP_ADDRESS>:8081']
  backlog: 2048
  workers: 8
  worker_class: uvicorn.workers.UvicornWorker
  threads: 1
  worker_connections: 1000
  max_requests: 0
  max_requests_jitter: 0
  timeout: 360
  graceful_timeout: 60
  keepalive: 120
  limit_request_line: 4094
  limit_request_fields: 100
  limit_request_field_size: 8190
  reload: False
  reload_engine: auto
  reload_extra_files: []
  spew: False
  check_config: False
  preload_app: True
  sendfile: None
  reuse_port: False
  chdir: /app
  daemon: False
  raw_env: []
  pidfile: None
  worker_tmp_dir: None
  user: 0
  group: 0
  umask: 0
  initgroups: False
  tmp_upload_dir: None
  secure_scheme_headers: {'X-FORWARDED-PROTOCOL': 'ssl', 'X-FORWARDED-PROTO': 'https', 'X-FORWARDED-SSL': 'on'}
  forwarded_allow_ips: ['<IP_ADDRESS>']
  accesslog: None
  disable_redirect_access_to_syslog: False
  access_log_format: %(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"
  errorlog: -
  loglevel: DEBUG
  capture_output: False
  logger_class: gunicorn.glogging.Logger
  logconfig: None
  logconfig_dict: {}
  syslog_addr: udp://localhost:514
  syslog: False
  syslog_prefix: None
  syslog_facility: user
  enable_stdio_inheritance: False
  statsd_host: None
  dogstatsd_tags:
  statsd_prefix:
  proc_name: None
  default_proc_name: mb_driver.main:app
  pythonpath: None
  paste: None
  on_starting: <function OnStarting.on_starting at 0x7f9964dc0790>
  on_reload: <function OnReload.on_reload at 0x7f9964dc08b0>
  when_ready: <function WhenReady.when_ready at 0x7f9964dc09d0>
  pre_fork: <function Prefork.pre_fork at 0x7f9964dc0af0>
  post_fork: <function Postfork.post_fork at 0x7f9964dc0c10>
  post_worker_init: <function PostWorkerInit.post_worker_init at 0x7f9964dc0d30>
  worker_int: <function WorkerInt.worker_int at 0x7f9964dc0e50>
  worker_abort: <function WorkerAbort.worker_abort at 0x7f9964dc0f70>
  pre_exec: <function PreExec.pre_exec at 0x7f99647880d0>
  pre_request: <function PreRequest.pre_request at 0x7f99647881f0>
  post_request: <function PostRequest.post_request at 0x7f9964788280>
  child_exit: <function ChildExit.child_exit at 0x7f99647883a0>
  worker_exit: <function WorkerExit.worker_exit at 0x7f99647884c0>
  nworkers_changed: <function NumWorkersChanged.nworkers_changed at 0x7f99647885e0>
  on_exit: <function OnExit.on_exit at 0x7f9964788700>
  proxy_protocol: False
  proxy_allow_ips: ['<IP_ADDRESS>']
  keyfile: None
  certfile: None
  ssl_version: 2
  cert_reqs: 0
  ca_certs: None
  suppress_ragged_eofs: True
  do_handshake_on_connect: False
  ciphers: None
  raw_paste_global_conf: []
  strip_header_spaces: False

On nginx conf, i configured proxy timeouts as some suggestions on google & our github issuezs here:
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_intercept_errors on;
proxy_connect_timeout 75s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;

timeout on gunicorn was set 360, timeout on nginx was 300.
And just sometimes I got WORKER TIMEOUT.
When I checked my nginx error logs, it threw a ton of error like below:
2021/06/19 15:19:17 [error] 13073#13073: *11687 upstream prematurely closed connection while reading response header from upstream, client: xxxxxxxxxx, server: xxxxxxxxxx, request: "GET /xxxxxxxxxx HTTP/1.1", upstream: "http://<IP_ADDRESS>:8081/xxxxxxxxxx", host: "xxxxxxxxxx"
2021/06/19 15:22:37 [info] 13074#13074: *12061 epoll_wait() reported that client prematurely closed connection, so upstream connection is closed too while sending request to upstream, client: xxxxxxxxxx, server: xxxxxxxxxx, request: "GET / HTTP/1.1", upstream: "http://<IP_ADDRESS>:8081/", host: "xxxxxxxxxx"
2021/06/19 15:24:21 [error] 13073#13073: *11823 upstream timed out (110: Connection timed out) while reading response header from upstream, client: xxxxxxxxxx server: xxxxxxxxxx, request: "GET /xxxxxxxxx HTTP/1.1", upstream: "http://<IP_ADDRESS>:8081/xxxxxxx", host: "xxxxxxxxxx"

Environment

OS: [e.g. Linux / Windows / macOS]: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-1160.el7.x86_64
My required packages:

fastapi==0.61.1
gunicorn==20.0.4
uvicorn[standard]==0.12.3
rethinkdb==2.4.7

I don't know what to do now. And my nginx access logs are a lot of 502 / 504 / 499 response codes.
Please help!
Additional context
My rethinkdb server setup was 8 cpu and 32 memory. Sometimes app was made it high CPU load.

Are you sure it isn't your app being really slow?

Are you sure it isn't your app being really slow?

Hi @Mause, so i suppose all my configurations above are okay.
For your question, I dont think so. My apis called to 3rd party api, get its response and log into rethinkdb.
Logging into db is a background task feature of FastAPI.
So data will be returned back to client.
But I noticed some responses with 502 or 499 when calling to 3rd party apis. It could be up to more than 90s to get response from 3rd apis.
Do you think this one led to my upstream got timeouts? The problem is caused by 3rd party apis?

Close this ticket. Issue was resolved. Thank for all helps.

关闭这张票。问题已解决。感谢所有帮助。

请问是如何解决的


Render a 90s style splash screen

@kapfab recommended https://text.design/art-text/ as an alternative to using Blender. It looks fun.


pipy script

🚀 🚀 Pull Request
Checklist:

[x]  My code follows the style guidelines of this project and the Contributing document
[x]  I have commented my code, particularly in hard-to-understand areas
[x]  I have kept the coverage-rate up
[x]  I have performed a self-review of my own code and resolved any problems
[x]  I have checked to ensure there aren't any other open Pull Requests for the same change
[ ]  I have described and made corresponding changes to the relevant documentation
[x]  New and existing unit tests pass locally with my changes

Changes
Added pipy script for releasing the package.

@imshashank what is the pipy standard?

@imshashank what is the pipy standard?
Just make sure this works:
pip install 'hub>=2.0a'


PR: Update Jedi requirement to 0.17

Description of Changes
This PR enables support for the latest Jedi version, v0.1.7

[ ] Wrote at least one-line docstrings (for any new functions)
[ ] Added unit test(s) covering the changes (if testable)

[ ] Included a screenshot or animation (if affecting the UI, see Licecap)

Issue(s) Resolved

Fixes #12572
Affirmation
By submitting this Pull Request or typing my (user)name below,
I affirm the Developer Certificate of Origin
with respect to all commits and content included in this PR,
and understand I am releasing the same under Spyder's MIT (Expat) license.

I certify the above statement is true and correct: @andfoy

Hello @andfoy! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file spyder/app/utils.py:

Line 98:9: E731 do not assign a lambda expression, use a def
Line 101:13: E731 do not assign a lambda expression, use a def

In the file spyder/utils/external/dafsa/dafsa.py:

Line 82:1: E302 expected 2 blank lines, found 1
Line 293:80: E501 line too long (80 > 79 characters)
Line 396:80: E501 line too long (80 > 79 characters)
Line 714:80: E501 line too long (80 > 79 characters)
Line 725:80: E501 line too long (80 > 79 characters)


[Feature] Add support for LongT5 and LongFormer

Before the feature request I just wanted to say great work on this library everyone, I've been looking forward to the release of this for a while now!
I just wanted to hop in to ask, if there are any plans to support fine-tuning of models with large context windows like LongT5, Pegasus X, and LongFormer?
Or is it just a matter of using PEFT with those models? If so would it be possible to add that example in the examples folder?
Great job and thanks so much again for releasing this!

Hello @jordancole21, yes, it is a matter if using PEFT with those models. I'll add an example in the next couple weeks, thank you for your kind words and happy that you like the library! Alternately, feel free to open PR if you have gotten PEFT to work with long range Transformer models.


fix: Bump teslajsonpy to 3.12.2

Bump teslajsonpy to 3.12.2 which includes fix for API service

Please review other bumps. Other files will also also need to be changed.

Updated the additional files. Not sure why the test would fail though as nothing there has been changed.

Someone probably broke the test with a commit.

Thanks for figuring that out. Is the other PR #1069 a prereq of this? Normally I'd want to keep the test fix as a separate PR so the bump PR is very clean.

Thanks for figuring that out. Is the other PR #1069 a prereq of this? Normally I'd want to keep the test fix as a separate PR so the bump PR is very clean.

Nope, no dependencies. PR #1069 was purely to update for HA 2024.11 and had nothing to do with teslajsonpy. :-)
FYI, seems I screwed some things up so closing this PR for the bump and creating a new one instead that is clean. :-)


finish event cannot use

In your issue, please include:

Spigot and Quests versions (do not say "latest")
2.9.0
Description of problem & console errors
in the stage event, I set that finish event is to give some items to the player, but when the stage finish, no giving. (the start event is available)
An example quest from quests.yml for testing, if applicable

Failure to provide the first 2 bullets may result in your issue being closed!

I was able to complete the default Catch Fish quest, which uses a finish event, no problem.
Perhaps there is an issue with your event? You'll have to post your configuration to get help.

ok

events :
新手任务送你鱼:
items:
- name-RAW_FISH:amount-3
quests:
'7':
items-to-deliver:
- name-BOW:amount-1
- name-ARROW:amount-4
npc-delivery-ids:
- 3
- 3
delivery-messages:
- 成功递交
- 成功递交
start-event: 新手任务弓箭
finish-event: 新手任务送你鱼
complete-message: 啊呀呀呀呀，老夫真的是感激不尽啊，你既然帮了我的帮，我就给你下个任务上交的东西吧～快去找向导五吧。
I set the finish event but it doesn't work

Is that your events.yml? It looks more like config.yml.
Events.yml format should look like this - https://pastebin.com/XngWp6TP
If you still need help, upload the file itself rather than copy/paste.

Your format looks ok. Give this build a try:
https://www.dropbox.com/s/qwwgixcj5oo9a43/Quests-2.9.1.jar?dl=0

it still cannot use

Closing as dead end.


define a market in the config, to get percentage for something else than global

Eg. I would like to show browser share for a specific country instead of the global data.

+1

+1


Ring hash: header hash policy

Support configuring ring_hash load balancer by matching against request headers.
Only header policy is supported in grpc-go.
apiVersion: semaphore-xds.uw.systems/v1alpha1
kind: XdsService
metadata:
  name: foo
spec:
  service:
    name: <service-name>
  loadBalancing:
    policy: ring_hash
    ringHash:
      minimumRingSize: 1024 # Optional
      maximumRingSize: 8000000 # Optional
      headers:
        - some-header
        - another-header

todo:
make generate is erroring, not sure if this is required after changing the XdsService definition?

Might be worth supporting terminal so that once a header is matched, it short-circuits & ignores any further headers.


Fix headers' declaration in 'base-usage.rst' with lists

Headers has to be declared as lists instead of dictionaries, because
of the decision of deprecating entirely dictionaries usage.

Thanks so much for this! :sparkles: :cake: :sparkles:

Have you deprecated dictionaries for lists of tuples because of mutability?

Nope, it's because of ordering. Specifically, HTTP/2 enforces certain ordering constraints on headers that mean that using a dictionary for them as input is unwise.


@types/chart.js missing properties

Documentation Is:

[ ] Missing or needed
[ ] Confusing
[ x ] Not Sure?

Please Explain in Detail...
Typescript @types for chart.js does not include all types correctly.  For example Chart.scaleService does not contain getScaleConstructor and this causes builds to fail that attempt to use these methods
Your Proposal for Changes
Hydrate the @types entries for chart.js
Example
No example is possible unless you want to see a build error

Chart.scaleService does not exist anymore in V3. According to the migration docs it has been renamed to: Chart.registry
https://www.chartjs.org/docs/master/getting-started/v3-migration#chart

Types for Chart.js v2.9.x are maintained at DefinitelyTyped, so the issue should be raised there if you are working with v2.

It is v2 as that is listed as the newest stable correct? I can raise issue there but I was uncertain where to raise it. At least this group is aware now either way. I had to (cough) cast as any to get it to work when using typescript 3.8+.

Yes V2 (2.9.4) is the latest stable build, V3 is still in beta


Multi-language bot

Hi Nick!
I'm trying to make my bot a multi-language one.
So far, if I add the gettext install to __init__, it works, but all messages come in the same language:
import os
import locale
(...)
localedir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'lang')
esp = gettext.translation('int.py', localedir, languages=['es'])
eng = gettext.translation('int.py', localedir, languages=['en'])
(...)
class MyBot(telepot.helper.ChatHandler):
    def __init__(self, *args, **kwargs):
        super(MyBot, self).__init__(*args, **kwargs)
        eng.install()
(...)
bot = telepot.DelegatorBot(BOT_TOKEN, [
    include_callback_query_chat_id(
        pave_event_space())(
            per_chat_id(), create_open, MyBot, timeout=15
    ),
])

I'd like to choose a language based on the user preferences. To make it simple (for now), if the user id is 1111111, then spanish, else english.
Of course, when __init__ is called I don't have the message, so I can't know the user id to make the language decision. But if I call "install()" in "on_message" function, I'll be calling "install()" way more than I need. Optimally I'd like to call "install()" once per Delegator session.
Is there a place where I can call gettext install() only once per session?
Sorry if I wasn't completely clear... If I wasn't, I'll try to elaborate.
Thanks in advance for your attention, and of course thank you very much for this very useful framework!

Actually, you DO get the initial message in __init__(). The first argument is what I call a seed tuple, which is just (bot, initial_msg, seed). You can get a hold of it by declaring it explicitly:
class MyBot(telepot.helper.ChatHandler):
    def __init__(self, seed_tuple, *args, **kwargs):
        super(MyBot, self).__init__(seed_tuple, *args, **kwargs)
        bot, initial_msg, seed = seed_tuple

However, even if you know the user id and set the language in __init__(), you are still installing the language over and over. Here is why. After 15 seconds of user inactivity (timeout=15), the MyBot instance will expire. Next time that user makes contact again, a new MyBot instance will be created. So, you are installing language for him again.
What you need is to remember who already have language installed and who has not. And that storage has to be persistent across many lifetime of MyBot. In the simplest case, it can be just a dict. Otherwise, it can be in a database. Point is, you have to program that yourself. Telepot does not do that for you.

Thanks! Reading the documentation I saw the message should be available, in the tuple, but it wasn't used in any example used it, and I didn't know I had to declare it explicitly. That explains it, thanks a lot.
About your suggestion, I can store user lang preferences in a dict or database, but those preferences must be applied for every DelegatorBot spawned, right?
If I understood correctly, each MyBot created by DelegatorBot would be closed after the timeout, and all the resources would be "cleaned", losing the language "install", and there's no way to persist that.
Because the next time the same user talks to the bot, a new MyBot would be created, with no language preferences, and I'll still need to query the database (or dict, or whatever it is) for the languange preference, and then perform the proper language install(). I see no way around that (buy I may be wrong).  Does this make sense? Is that why you're saying telepot can't do it in other way?
It's not optimal, but the worst case scenario is an install() call for every user every 15 seconds. And if I set a "default" language, most of the users won't need the install() part. I hope I can live with that!

Ok, "install()" was not the way to go, as it affects the whole thread. But I can set the gettext call as a new attribute to "MyBot" object, and it works!
import gettext
import os
import locale
(...)
localedir = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'lang')
esp = gettext.translation('int.py', localedir, languages=['es'])
eng = gettext.translation('int.py', localedir, languages=['en'])
(...)
class MyBot(telepot.helper.ChatHandler):
    def __init__(self, seed_tuple, *args, **kwargs):
        super(MyBot, self).__init__(seed_tuple,*args, **kwargs)
        bot, msg, seed = seed_tuple
        #print(msg['from']['id'])
        if msg['from']['id'] == 11111111:
            self.text = eng.gettext
        else:
            self.text = esp.gettext
(...)
    def on_chat_message(self, msg):
            if msg['text'] == '/test':
                self.sender.sendMessage(self.text('hello world'))

And that would print two different messages for users on each language. I'm thinking maybe I could even modify sender.sendMessage to support this... but if it works this way, I'll keep going and maybe work on that later :)
I'll leave this issue open for a day in case you want to add some comments to it, then close it. Thanks a lot for your help and for telepot :)

Just to follow python common usage, and to make strings available to "pybabel extract", I changed the name from "self.text" to "self._". It's not the best way yet, but apparently it works :+1:


adding DDP to the codebase

Need to add a test to check DDP works well with checkpointing.

@epwalsh done!

at the 300M size, it follows the FSDP model loss curve, being better initially, but both lines showing the same trend after sometime


Fixes #13009 -- provide django.forms field type info for use in templates

Ticket
The issue explained in the ticket of rendering fields (widgets, really) dependant upon their type is a key part of crispy-forms. This project solved it by adding a limited number of filters so you can do something like this.
{% for field in fields %}
{% if field|is_checkbox %}
  # render a checkbox
{% elif field|is_file %}
  # render a file field
[...]

I've replicated that approach here, and for completeness I've added a filter for each of the widget types, added tests and docs.
There are comments on the ticket about multifield (multiwidget). I think for now just knowing it is a multiwidget is enough. Over at crispy-forms the project still hasn't found a way to deal with these widgets and all their complexities.
Appreciate your thoughts on this one.

I'm not so much thrilled by this new load of new template filters. What about a new BoundField property (widget_type?) returning the lowercased widget class name stripped from the widget or input strings?
In that case, if I have defined a MyCustomWidget, the (bound)field.widget_type would by mycustom.

I've updated this to add a new property to BoundField as suggested. FWIW Here are what I think the pros/cons of each option are.
I think the filter approach gives a better result in the templates. i.e. I think that 1) is better than 2)

field|is_checkbox
`field.widget_type == 'checkboxinput'

However, from a Django perspective the second option is by far a cleaner implementation and has the benefit of working with custom widgets. The filter method; however is, well, a little repetitive.
So for me, it's a trade off between a better experience for users building their templates vs impact on Django code base.
On the current version, the tests need moving to a better home, but I'm not quite sure where they are best placed. Appreciate some guidance on this.

@smithdc1 I agree with Claude. I would chop new (one-line) filters and limit this change to the new widget_type property.

Thanks y'all :+1:


⚠ Jellyseerr has degraded performance

In 92b5390, Jellyseerr (https://jellyseerr.underthere.xyz) experienced degraded performance:

HTTP code: 502
Response time: 15544 ms

Resolved: Jellyseerr performance has improved in e31d91e after .


fix: Improves CLI operations for ephemeral and sequential params

For #20
e.g.
[fk: 2023-04-03 19:47:24.456485 aws:faaskeeper-dev(CONNECTED) session:2ee45722 2] create /test 0x0 -e
['/test', '0x0', 'True', 'False']

cc @mcopik

@afzal442 Thanks! The implementation seems pretty fixed for the arguments of the create operation, and it will be difficult to maintain and expand. After all, there are many more commands that we would like to support.
I think the alternative approach posted by @shailendrasingh117 will be more modular. Maybe you can both collaborate on a single solution?

Thanks @mcopik! we can support for create operation by adding condition if cmd == `create`  simply now.
Talking about the alternative approach, I had that same thing figured out but I don't know the use cases of get_data and set_data. That idea support for cmd is limited. What if cmd is sth else like connect if command not in COMMANDS:        click.echo(f"Invalid command: {command}"). I'm not sure what it does and how it calls unkown methods.
       create_node(**kwargs)
   elif command == "get_data":
       get_data(**kwargs)
   elif command == "set_data":
       set_data(**kwargs)

LMK what you think.

This approach can also make it difficult to handle errors in a consistent way. If an unknown command is passed to the dispatcher, the current implementation simply prints an error message to the console. However, in a more complex application, it might be more appropriate to raise an exception or return an error code to the caller.
@mcopik @afzal442

Closed as no progress


Can't use Linux libtorch packages from .NET Interactive and F# Interactive

There are problems using LibTorch packages from .NET Interactive and F# Interactive on Linux because the native libraries are not unified into a single directory.
As a workaround you can avoid using the packages and load directly:
open System.Runtime.InteropServices
NativeLibrary.Load("/home/gunes/anaconda3/lib/python3.8/site-packages/torch/lib/libtorch.so")

The problem has also been reported previously on Windows but is currently believed fixed.  If not likewise use
open System.Runtime.InteropServices
NativeLibrary.Load(@"D:\libtorch\lib\torch_cuda.dll")

Examples:
#r "nuget: TorchSharp,0.3.52276"
#r "nuget: libtorch-cuda-10.2-win-x64,1.5.6"

or
#r "nuget: TorchSharp,0.3.52276"
#r "nuget: libtorch-cuda-10.2-linux-x64,1.5.6"

The problem is that  .NET Interactive and F# Interactive load DLLs directly from package directories, instead of from a collected application directory.  For managed DLLs this works OK, but native DLLs do not load transitive dependencies unless load paths are set up.
This is a general issue with the package load process used by .NET/F#  Interactive, see https://github.com/dotnet/fsharp/issues/10136.  We may be able to workaround the issue here, though it is challenging, for two reasons

There are multiple different runtime native DLLs that work with the same managed DLL - basically CPU and GPU - the end application selects one

The collected native DLLs are too large to fit in one nuget package - they are about 1.5GB for GPU for example. So they must be delivered in multiple packages, because in practice both nuget.org and Azure CI and other things place limits on nuget package size around 200MB.

Together these mean that the native DLLs end up scattered in diferent package directories.
A workaround used in DiffSharp for the CPU case is to force the load of libtorch.so (Linux) or torch_cpu.dll (Windows) before any other loads are requested.
open System.Runtime.InteropServices
open System.IO

let path1 = Path.GetDirectoryName(typeof<DiffSharp.dsharp>.Assembly.Location)
let path2 = if RuntimeInformation.IsOSPlatform(OSPlatform.Linux) then path1 + "/../../../../libtorch-cpu/<IP_ADDRESS>/runtimes/linux-x64/native/libtorch.so" else path1 + "/../../../../libtorch-cpu/<IP_ADDRESS>/runtimes/win-x64/native/torch_cpu.dll"
NativeLibrary.Load(path2)

However this workaround doesn't work for the GPU case. Although awkward it is probably worth developing a similar workaround for the GPU case and adding both to the platform initialization logic of TorchSharp - in practice the specially huge nature of the corresponding native binaries makes this library a particular challenge.
There is also the general issue of long download times on first use, which is potentially very significant for notebook startup times on a container (though likely ok if running in a data centre).

Using this to debug a local build
#i @"nuget: E:\GitHub\dsyme\TorchSharp\bin/packages/Debug";;
#r @"nuget: TorchSharp,0.3.0-local-Debug-20200918";;
TorchSharp.Torch.IsCudaAvailable();;

dotnet artifacts\bin\fsi\Debug\netcoreapp3.1\fsi.exe /langversion:preview < a.fs

FYI: When using the 'lite version, the following seems to work for GPU.
#r "nuget: DiffSharp-lite,1.0.0-preview-485581354"
System.Runtime.InteropServices.NativeLibrary.Load(@"D:\libtorch\lib\torch_cuda.dll")

Here libtorch binaries where separately downloaded and installed from https://pytorch.org/

FYI: When using the 'lite version, the following seems to work for GPU.
#r "nuget: DiffSharp-lite,1.0.0-preview-485581354"
System.Runtime.InteropServices.NativeLibrary.Load(@"D:\libtorch\lib\torch_cuda.dll")

Here libtorch binaries where separately downloaded and installed from https://pytorch.org/

Using a colab GPU-enabled notebook to look into this
!wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && sudo dpkg -i packages-microsoft-prod.deb && sudo apt-get update && sudo apt-get install -y apt-transport-https && sudo apt-get update && sudo apt-get install -y dotnet-sdk-5.0

!dotnet

!echo "#r \"nuget: DiffSharp-cpu, 1.0.0-preview-681551353\"" > foo.fsx

!echo "DiffSharp.dsharp.devices(backend=DiffSharp.Backend.Torch) |> printfn \"%A\"" >> foo.fsx

gives
==6n6n1;1H=System.DllNotFoundException: Unable to load shared library '/root/.nuget/packages/torchsharp/0.91.52458/runtimes/linux-x64/native/libLibTorchSharp.so' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libtorch.so: cannot open shared object file: No such file or directory
   at System.Runtime.InteropServices.NativeLibrary.LoadFromPath(String libraryName, Boolean throwOnError)
   at System.Runtime.InteropServices.NativeLibrary.Load(String libraryPath)
   at System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDllFromPath(String unmanagedDllPath)
   at Microsoft.DotNet.DependencyManager.NativeDllResolveHandlerCoreClr._resolveUnmanagedDll(Assembly _arg1, String name) in F:\workspace\_work\1\s\src\fsharp\Microsoft.DotNet.DependencyManager\NativeDllResolveHandler.fs:line 92
   at <StartupCode$Microsoft-DotNet-DependencyManager>.$NativeDllResolveHandler.-ctor@98-2.Invoke(Assembly delegateArg0, String delegateArg1) in F:\workspace\_work\1\s\src\fsharp\Microsoft.DotNet.DependencyManager\NativeDllResolveHandler.fs:line 98
   at System.Runtime.Loader.AssemblyLoadContext.GetResolvedUnmanagedDll(Assembly assembly, String unmanagedDllName)
   at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDllUsingEvent(String unmanagedDllName, Assembly assembly, IntPtr gchManagedAssemblyLoadContext)
   at TorchSharp.Torch.THSTorchCuda_is_available()
   at <StartupCode$DiffSharp-Backends-Torch>.$Torch.RawTensor.GetDevices@1307.GenerateNext(IEnumerable`1& next)
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl() in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\seqcore.fs:line 368
   at Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.System.Collections.IEnumerator.MoveNext() in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\seqcore.fs:line 400
   at Microsoft.FSharp.Collections.SeqModule.ToList[T](IEnumerable`1 source) in F:\workspace\_work\1\s\src\fsharp\FSharp.Core\seq.fs:line 546
   at <StartupCode$FSI_0002>.$FSI_0002.main@()
Stopped due to error
=

This problem is now fixed.  I've left a notebook about the investigation in the DiffSharp repo: https://github.com/DiffSharp/DiffSharp/blob/dev/notebooks/debug/NativeCudaLoadLinux.ipynb


feat: Add Karpenter Azure cloud provider NodePool

Reason for Change:
Add an example for Karpenter cloud provider NodePool for Azure.
Requirements

[ ] added unit tests and e2e tests (if applicable).

Issue Fixed:

Notes for Reviewers:

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 64.39%. Comparing base (fde6369) to head (c3543bf).
Report is 17 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #369      +/-   ##
==========================================
+ Coverage   62.89%   64.39%   +1.50%
==========================================
  Files          14       28      +14
  Lines        1307     2115     +808
==========================================
+ Hits          822     1362     +540
- Misses        447      686     +239
- Partials       38       67      +29

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fix null pointer exceptions on page import

Fixes #172 (and another, similar bug w.r.t. TextLine/@index)

These patches have not been applied during the recent merges. Should I redirect the PR to master?

@maxnth I updated the PR to the upstream changes. I wonder why you have not merged it yet, though.
Meanwhile, I have found another bug: if for some reason, a TextRegion without @type survived import, then the PageXMLWriter must be able to cope with it, too. (Also throws NPE currently.) Do you want me to add a fix for that as well?

@maxnth I updated the PR to the upstream changes. I wonder why you have not merged it yet, though.

I used your fix (thanks for that) in a feature branch that was supposed to contain all other changes which are needed to allow LAREX to work with text regions without a type (UI + PageXMLWriter) as you already mentioned.
Sadly some other things got in the way and I didn't yet come to actually implementing these.
If it helps, I could add this fix to dev directly, otherwise I'd add it when the branch is complete.

I see. Well, there's no such feature branch on the server, and no messages here, and then there was a new conflicting change right in the same section which I had to merge, so I just assumed this got forgotten.
No, it's fine with me. I can keep up my own master as long as necessary. I'll probably wait merging your dev activity until you found time to deal with this.

The proposed fix is now available in the dev branch (see #172).
If the implemented behavior doesn't work as excepted feel free to report back.


Add slo support

This PR also includes:

a refactor for a large portion of the code
updates the workflow to run black & tests during ci
changes the way exceptions are handled: the decorator will now rethrow the exception instead of just returning the error

Closes https://github.com/autometrics-dev/autometrics-py/pull/16

regarding the examples:
is there a simple way to point them to the code from the repo? (so that they run based off of what is in the repo)
or should we prefer that they run based off of what's the most recently published package?

regarding the examples:
is there a simple way to point them to the code from the repo? (so that they run based off of what is in the repo) i wasn't totally clear on how to run them
or should we prefer that they run based off of what's the most recently published package?

The current examples do not work with the recently published package, for them to work, a local package can be built and then used (python -m build). I feel examples are run better off the published package.


Nothing but a flashing cursor when I get ndb installed

I am running in WSL, Ubuntu 16.04.4 LTS on Windows 10 1803 and so far can't get ndb to anything more than give me a flashing prompt once I get it installed (though that appears inconsistent and ineffectual at the moment).
I tried the following with my default node/npm install, then I cleaned and installed nvm and redid things there to get yet ANOTHER result. So, no ndb goodness for me on this machine at least (going to try my laptop in a moment).
Am I having an issue with my environment somehow (how to troubleshoot?) or is this ndb and what's going on?
Environment
$ node -v
v8.11.3
$ npm -v
5.6.0

I tried npm i -g ndb && ndb lib/ which is all I expected to need, but it just sat there so I tried the following (I've cleaned it a bit, but no relevant steps were omitted):
After first install attempt
rainabba$ ndb -v
[STUCK HERE]
^C
rainabba$ which ndb
/usr/local/bin/ndb
$ /home/rainabba/npm/bin/ndb -v
[STUCK HERE]
^C
$ node /home/rainabba/npm/bin/ndb -v
[STUCK HERE]
^C

Notice that I get a different result with the following 2 attempts to npm install -g ndb. In one case, there's an error with uglify-es in the postinstall script and in the other, I see puppeteer install and no errors. In either case, ndb does nothing for me. No errors, not log output, no windows. Nada.
rainabba$ npm install -g ndb && which ndb
/home/rainabba/npm/bin/ndb -> /home/rainabba/npm/lib/node_modules/ndb/ndb.js

><EMAIL_ADDRESS>postinstall /home/rainabba/npm/lib/node_modules/ndb
> node install.js

module.js:549
    throw err;
    ^

Error: Cannot find module 'uglify-es'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/rainabba/npm/lib/node_modules/ndb/scripts/build_release_application.js:12:18)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>postinstall: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/rainabba/.npm/_logs/2018-07-23T17_15_34_065Z-debug.log
rainabba$ npm install -g ndb && which ndb
/home/rainabba/npm/bin/ndb -> /home/rainabba/npm/lib/node_modules/ndb/ndb.js

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/deasync
> node ./build.js

`linux-x64-node-8` exists; testing
Binary is fine; exiting

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/node-pty-prebuilt
> prebuild-install || node scripts/install.js

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/puppeteer
> node install.js

Downloading Chromium r571375 - 101.4 Mb [====================] 100% 0.0s
Chromium downloaded to /home/rainabba/npm/lib/node_modules/ndb/node_modules/puppeteer/.local-chromium/linux-571375

><EMAIL_ADDRESS>postinstall /home/rainabba/npm/lib/node_modules/ndb/node_modules/node-pty-prebuilt
> node scripts/post-install.js

><EMAIL_ADDRESS>postinstall /home/rainabba/npm/lib/node_modules/ndb
> node install.js

+<EMAIL_ADDRESS>added 182 packages in 12.196s
/usr/local/bin/ndb
rainabba$ ndb lib/index.js
_
[Just sits here and no new windows come up]

Install nvm (cleanup a bit first), then repeat the attempt
# Cleanup previous attempts to install nvm using apt, which resulted in me seeing the message leading me to the script below
rainabba$ sudo apt remove nvm
# Google nvm and find the following command at https://github.com/creationix/nvm#install-script
rainabba$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
# Cleanup recommended from the nvm install script
rainabba$ nvm use system && npm uninstall -g ndb forever grunt-cli ndb nodemon
rainabba$ npm -v
5.6.0
rainabba$ npm install -g ndb
/home/rainabba/npm/bin/ndb -> /home/rainabba/npm/lib/node_modules/ndb/ndb.js

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/deasync
> node ./build.js

`linux-x64-node-8` exists; testing
Binary is fine; exiting

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/node-pty-prebuilt
> prebuild-install || node scripts/install.js

><EMAIL_ADDRESS>install /home/rainabba/npm/lib/node_modules/ndb/node_modules/puppeteer
> node install.js

Downloading Chromium r571375 - 101.4 Mb [====================] 100% 0.0s
Chromium downloaded to /home/rainabba/npm/lib/node_modules/ndb/node_modules/puppeteer/.local-chromium/linux-571375

><EMAIL_ADDRESS>postinstall /home/rainabba/npm/lib/node_modules/ndb/node_modules/node-pty-prebuilt
> node scripts/post-install.js

><EMAIL_ADDRESS>postinstall /home/rainabba/npm/lib/node_modules/ndb
> node install.js

+<EMAIL_ADDRESS>added 182 packages in 15.733s
rainabba$ ndb lib/
(node:1576) UnhandledPromiseRejectionWarning: Error: Chromium revision is not downloaded. Run "npm install" or "yarn install"
    at assert (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/helper.js:282:11)
    at Function.launch (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/Launcher.js:106:7)
    at Function.launch (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/Puppeteer.js:26:21)
    at main (/usr/local/lib/node_modules/ndb/ndb.js:35:35)
    at <anonymous>
(node:1576) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
(node:1576) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
rainabba$ npm install
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but npm-shrinkwrap.json was generated for lockfileVersion@0. I'll try to do my best with it!
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but npm-shrinkwrap.json was generated for lockfileVersion@0. I'll try to do my best with it!
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>|| ~2.2.0-rc.0 but none is installed. You must install peer dependencies yourself.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})

up to date in 18.262s
rainabba$ ndb lib/
(node:1629) UnhandledPromiseRejectionWarning: Error: Chromium revision is not downloaded. Run "npm install" or "yarn install"
    at assert (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/helper.js:282:11)
    at Function.launch (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/Launcher.js:106:7)
    at Function.launch (/usr/local/lib/node_modules/ndb/node_modules/puppeteer/lib/Puppeteer.js:26:21)
    at main (/usr/local/lib/node_modules/ndb/ndb.js:35:35)
    at <anonymous>
(node:1629) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)
(node:1629) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Based on latest comment in puppeteer thread: https://github.com/GoogleChrome/puppeteer/issues/1837#issuecomment-503481364
It looks like ndb might works well with WSL2.


$Error grabbing logs: unexpected EOF

Describe the bug
During initial sync encountered $Error grabbing logs: unexpected EOF
To Reproduce
Steps to reproduce the behavior:
make run-testnet-online
Additional context
Need triage and fix

So this looks to be an issue with Docker and not our application?
https://github.com/moby/moby/issues/41820


Can't use both jwt and basic auth

Hi Folks,
Thanks for a great package, we're using it in a rewrite of an open source project at the moment and it's working great.
At the moment we are successfully using jwt as the auth methods and this works perfectly fine. We are now trying to add basic auth as well so that we can make direct calls to the API via ajax. However when we add:
app('Dingo\Api\Auth\Auth')->extend('basic', function ($app) {
   return new Dingo\Api\Auth\Provider\Basic($app['auth'], 'email');
});

to: app/Providers/AppServiceProvider.php we see:
Target [Tymon\JWTAuth\Providers\JWT\JWTInterface] is not instantiable while building [Dingo\Api\Auth\Provider\JWT, Tymon\JWTAuth\JWTAuth, Tymon\JWTAuth\JWTManager].
Any pointers?

It shouldn't be a problem, I'm successfully using both. There's something else missing here that's causing this error.
Where are you placing the above code? How are you loading the providers (order)? Laravel or Lumen?

Thanks for getting back to me. The above code is being placed into app\Providers\AppServiceProvider.php and I'm using it in routes like so:
$api->group(['middleware' => 'api.auth', 'providers' => ['basic', 'jwt']], function($api) {
The providers order is:
    'providers' => [

        /*
         * Laravel Framework Service Providers...
         */
        Illuminate\Auth\AuthServiceProvider::class,
        Illuminate\Broadcasting\BroadcastServiceProvider::class,
        Illuminate\Bus\BusServiceProvider::class,
        Illuminate\Cache\CacheServiceProvider::class,
        Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
        Illuminate\Cookie\CookieServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,
        Illuminate\Encryption\EncryptionServiceProvider::class,
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        Illuminate\Foundation\Providers\FoundationServiceProvider::class,
        Illuminate\Hashing\HashServiceProvider::class,
        Illuminate\Mail\MailServiceProvider::class,
        Illuminate\Pagination\PaginationServiceProvider::class,
        Illuminate\Pipeline\PipelineServiceProvider::class,
        Illuminate\Queue\QueueServiceProvider::class,
        Illuminate\Redis\RedisServiceProvider::class,
        Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
        Illuminate\Session\SessionServiceProvider::class,
        Illuminate\Translation\TranslationServiceProvider::class,
        Illuminate\Validation\ValidationServiceProvider::class,
        Illuminate\View\ViewServiceProvider::class,

        /*
         * Application Service Providers...
         */
        App\Providers\AppServiceProvider::class,
        App\Providers\AuthServiceProvider::class,
        App\Providers\EventServiceProvider::class,
        App\Providers\RouteServiceProvider::class,
        'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
        'Irazasyed\JwtAuthGuard\JwtAuthGuardServiceProvider',
        'Dingo\Api\Provider\LaravelServiceProvider',
        Collective\Html\HtmlServiceProvider::class,
        App\Providers\HtmlFormServiceProvider::class,

    ],

try using it as
'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
'Irazasyed\JwtAuthGuard\JwtAuthGuardServiceProvider',
'Dingo\Api\Provider\LaravelServiceProvider',

to
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
Irazasyed\JwtAuthGuard\JwtAuthGuardServiceProvider::class,
Dingo\Api\Provider\LaravelServiceProvider::class,

Change the order to include Tymon\JWTAuth\Providers\JWTAuthServiceProvider and Dingo\Api\Provider\LaravelServiceProvider before the other providers. This solution worked for me when I was getting a not instantiable error.
Hope this works for you.


Blinky Example based on Timer Interrupt

I like the examples in this repository because they are very lean and consistently based on the stm32f3xx_hal. So I would like to contribute another example.

Thank you so much!
This was on my list of things to do, but I haven’t had time recently.
I can’t tell you how much I appreciate this.


Map titles don't show up on Firefox until zoomed in

Hi,
Could somebody try http://asso-idf.hubertine.fr on Firefox?
Map titles don't show up until map is zoomed in.
Is this a bug of Leaflet?
Thanks.
Henri

Probably not.
Create a jsfiddle to reproduce it and find out if it is.


Handle assets from the Symfony component

Resolves #121
Allow using the asset twig function from the TwigBridge for public assets.

A custom asset package would not work here ?

If this package uses base_path, Gotenberg won't be able to find the file without the domain.


How to integrate with System Image Utility to create NetRestore/NetBoot image

I'm able to create a workable VirtualBox VM with packer. I'm wonder how can I convert the vmdk to NetRestore/NetBoot Image, so that I can deploy images to real hardwares.
Currently I have tried to mount vmdk with Paragon VMDK Mounter, it's failed to create NetRestore Image from mounted volume with both System Image Utility and Automator Flow
I also observed that when the creating process is finished, vmdk disk is unmounted.
But I can create NetBoot Image successfully with same mounted volume.

From the following screenshot you can see Image Source has been reset to Install OS X EI Capitan as the vmdk was unmounted.

I wouldn't recommend trying to create hardware images directly from this template. It's much, much more common to use a tool like AutoDMG to build hardware for block restores to physical Macs.
This works a bit similarly to NetRestore, where the OS installer is actually executed on your build machine but targeted to a new empty disk image. AutoDMG is purpose-built, however, and lets you add additional installer packages and applications to the process, and can incorporate available software updates.

Thanks @timsutton, as we need create system images for both hardware and VM. I'm looking for a general solution can handle them both consistently. And I think osx-vm-templates is what I need. Do you have any ideas about that?

I think if you want consistency, you need an automat-able process, and that's what AutoDMG was designed for - taking an OS X installer and layering on additional apps or packages.  You can block restore that image onto a physical Mac.
People usually go with a minimal approach here and only create a few base configurations, and let it connect to a client management system (Munki, Casper, Puppet, etc.) on boot.
vfuse is a tool that was designed to take the output from AutoDMG and convert that to a bootable VM, and also optionally configure it for use with Packer. So you could take the same source you have for physical Macs and VMs, and use Packer to do the additional VM-specific config, Vagrant, etc. bits that you need to make the environment distributable internally as a VM.

It's a great solution anyway.
I still have some questions, as you said that AutoDMG is used to create a minimal base image, then install(provision) additional apps/tools after the first boot with CM tools. In our situation, the provision step is very time-consuming as it's heavy depends on the network, almost all apps are installed from Homebrew. So I think I should create a base image include all the apps/tools we need instead of downloading them on each client.
I read the documentations of AutoDMG, it's said that it will mount a image on local, and run Install to this mounted disk, the customized apps/tools should be carried in a hand-made pkg format which are called during installation.
It will be a huge effort and hard to carry all apps/tools in such a pkgs, so I'm thinking if it's not the right way to handle my situation?

It probably isn't worth the effort to "convert" the things you install with brew to install up front in your image, because those things will drift out of date over time. I'm looking at doing this for things like Xcode, which take ages either way, but in a system where we would be re-generating the images automatically anyway.
Homebrew is also really only designed to be run by the "default" admin user on a machine. Do you have a way that you can automatically install/provision brew/cask and your formulae automatically upon deploying an image to a machine? I've seen people come up with ways to be able to automate Brew installs but it looks like a moving target. I'm not sure the Ruby install script has any support for doing a non-interactive version that you could, for example, run as the default 501 uid user in order to pre-populate things. That user would also need to already have its home directory created with at least a ~/Library directory, etc.
The "connect to a client management system" workflow I mentioned does add significant per-client deployment time if you compare to how fast it is to block-restore an image to a machine (even just ethernet, and via TB target disk on a fast SSD it's measurable in seconds). An image restore and additional post-config tasks may be 10-15 minutes over Gigabit ethernet compared to 30 minutes or more where it's installing many things additionally after restoring.
But, those who maintain software in a client management system are already spending time keeping that software up to date (with tools like AutoPkg, and the benefit is that when the machine is done deploying, everything is up to date. If you are putting everything into your image, that image will be out of date tomorrow and you still might want a way to make sure things are up to date. I don't mind that if I deploy a lab computer with 150 installer packages that it takes over an hour, because it's automated to the point where I don't have to do anything except click "start" on the deployment workflow.
Really depends on your environment's needs, though.

Thanks for the discussion! Closing this for now.


Update README.rst with required Mac Homebrew step

After googling to https://github.com/kennethreitz/autoenv/issues/41 and https://github.com/kennethreitz/autoenv/pull/51 I finally did this to make autoenv work.

I'm not sure what's going on with my setup, but I'm getting this when I edit my .bash_profile:
-bash: “source: command not found
whoa
Same results when I run this in terminal:
source /usr/local/opt/autoenv/activate.sh
which is very weird because obviously it's working.. anyone have any ideas?


Move logic pertaining to writing/controlling detectors from i22 branch

@coretl has a branch, i22, which contains logic that we need merged into main in order to make a directory provider singleton that can be created in dodal and accessed in blueapi.

getting the following linting errors:
src/ophyd_async/core/detector.py:166: error: Return type "AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]" of "collect_asset_docs" incompatible with return type "Iterator[Iterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]] | AsyncIterator[Iterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" in supertype "WritesExternalAssets"  [override]
src/ophyd_async/core/detector.py:169: error: "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" has no attribute "__aiter__" (not async iterable)  [attr-defined]
src/ophyd_async/core/detector.py:169: note: Maybe you forgot to use "await"?
src/ophyd_async/core/flyer.py:109: error: Argument 1 to "gather_list" has incompatible type "Awaitable[list[AsyncStatus]]"; expected "Iterable[Awaitable[Any]]"  [arg-type]
src/ophyd_async/core/flyer.py:109: note: Maybe you forgot to use "await"?
src/ophyd_async/core/flyer.py:113: error: Return type "AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]" of "collect_asset_docs" incompatible with return type "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" in supertype "DetectorGroupLogic"  [override]
src/ophyd_async/core/flyer.py:124: error: "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" has no attribute "__aiter__" (not async iterable)  [attr-defined]
src/ophyd_async/core/flyer.py:124: note: Maybe you forgot to use "await"?
src/ophyd_async/core/flyer.py:229: error: Return type "AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]" of "collect_asset_docs" incompatible with return type "Iterator[Iterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]] | AsyncIterator[Iterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" in supertype "WritesExternalAssets"  [override]
src/ophyd_async/core/flyer.py:231: error: "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" has no attribute "__aiter__" (not async iterable)  [attr-defined]
src/ophyd_async/core/flyer.py:231: note: Maybe you forgot to use "await"?
tests/core/test_flyer.py:94: error: Return type "AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]" of "collect_stream_docs" incompatible with return type "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" in supertype "DetectorWriter"  [override]
tests/core/test_async_status.py:68: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
src/ophyd_async/epics/areadetector/writers/hdf_writer.py:89: error: Return type "AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]" of "collect_stream_docs" incompatible with return type "Coroutine[Any, Any, AsyncIterator[tuple[Literal['resource'], Any] | tuple[Literal['datum'], Any] | tuple[Literal['stream_resource'], Any] | tuple[Literal['stream_datum'], Any]]]" in supertype "DetectorWriter"  [override]

once tom's async-status branch is rebased on top of bluesky, lint will pass


Unicode Names

Add support for \N in search and replace.  Add logic to catch when references like \N, \p, \P, and \g are incomplete and raise an exception. At a little testing (still more to do).

Py3.3 will get dropped, so that can be ignored. Looks like some new PY3.7 weirdness, so I'll take a look at that.

To be honest, I think this is a Python 3.7 bug:
tests/test_bregex.py:816: AssertionError
___________________ TestReplaceTemplate.test_normal_escaping ___________________
self = <tests.test_bregex.TestReplaceTemplate testMethod=test_normal_escaping>
    def test_normal_escaping(self):
        """Test normal escaped slash."""

        text = "This is a test of normal escaping!"
        pattern = regex.compile(r"(.*)")
        repl_pattern = r'\e \\e \\\e \\\\e \\\\\e'
        expand = bregex.compile_replace(pattern, repl_pattern)
        m = pattern.match(text)
        results = expand(m)
        results2 = pattern.sub(repl_pattern, text)

>       self.assertEqual(results2, results)
E       AssertionError: '\\e \\e \\\\e \\\\e \\\\\\e\\e \\e \\\\e \\\\e \\\\\\e' != '\\e \\e \\\\e \\\\e \\\\\\e'
E       - \e \e \\e \\e \\\e\e \e \\e \\e \\\e
E       + \e \e \\e \\e \\\e
tests/test_bregex.py:802: AssertionError

It look to be substituting twice.  This doesn't fail on any other Python, so I am inclined to believe 3.7 greedy capture is flawed and is possibly returning two matches which makes no sense, but I have not investigated further as I don't have a locally installed Py3.7.  I probably won't address it in this pull, but investigate in another issue.

Just for curiosity, I may put in a log statement just to see what Py3.7 pattern looks like after our translation.  Maybe do a pure Py3.7 greedy search and replace to see how it behaves.

Looking closer at this, I now realize PY3.7 is failing for regex not re.  So it is most likely a support issue for regex on PY3.7.  This makes more sense at it is likely that no PY3.7 work has been done on regex yet.  It would be good to investigate and create an issue there when I have a chance, my real concern was breaking on PY3.7 which we are not breaking.

Regex module was recently updated and now all passes are testing except coverage.

I suggest to use r"(.+)" instead of r"(.*)". The behavior of zero-width matches is not intuitive and can be changed in future in both re and regex modules.

@serhiy-storchaka Thanks for the info.  That was kind of the conclusion I came to after looking at the actual changes regex recently made, specifically addressing zero-width behavior for 3.7.  I'll make a note of this to update tests accordingly.  Seems like there is some churning going on in the re module moving forward.


Drop interactive mode

Gad don't stay "open" after executing one command
Commands now supports arguments (e.g. gad changelog --all to see all issues for the sprint)
Errors are properly caught

@chalasr It's slightly better than that: the && will still be parsed by your terminal by default:

So gad sprint && review && vagrant up would be interpreted as gad sprint + review + vagrant up (and will probably fail because of `review).
But gad "sprint && review" && vagrant up will work as expected.

I you think this do more wrong than right, I'm prepared to remove it.

Just played a bit with this, the following runs fine:
gad -o [org] -r [repo] [command] --[command-options]
but the following doesn't:
gad [command] -o [org] -r [repo] --[command-options]
it leads to:

⏳  Fetching issues...
{ [Error: Empty value for parameter 'owner': null]
defaultMessage: 'Bad Request',
message: 'Empty value for parameter 'owner': null',
code: '400',
status: 'Bad Request',
headers: undefined }

Firstly, I think we should add some validation rules to the options and validate them before performing any http request or writing anything to the output, in order to provide meaningful error messages when an option is missing or has an invalid value.
The first thing I would validate, now that you removed the interactive mode, is that a valid command has been passed.
Actually running just gad within this PR leads to the very same error (Bad Request, null owner). I would love to get an "help" displayed in this case (list of all commands with options, same as the README table)
Running  gad foobar leads to the same. I would love to get something like Invalid command "foobar". [help] in this case. WDYT?
Secondly, is it expected that global options (e.g. --owner, --repo) must be passed before the command name and options?
I think it would be nice if my 2nd (failing) try had worked as the first one. Is it doable?
That means kind of merging global options with command ones so that neither their order nor their position matters, which makes sense I think.

@chalasr I moved your concerns in a specific issue.

👌 Merging then


[FR]

Describe your request
whether there is a way in the JavaScript layer to modify the pdf display dpi, I noticed that Obsidian view pdf compared to adobe is very fuzzy, and did not find the way to adjust the

See discussions in #97


Update from the repository template

Description
Bring the latest changes to this repository from the template.
Type of changes

[x] Refactoring (non-breaking change)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would change existing functionality)
[ ] Bug fix (non-breaking change which fixes an issue)

Checklist

[x] I am familiar with the contributing guidelines
[x] I have followed the code style of the project
[ ] I have added tests to cover my changes
[ ] I have updated the documentation accordingly
[x] This PR is a result of pair or mob programming

Sensitive Information Declaration
To ensure the utmost confidentiality and protect your and others privacy, we kindly ask you to NOT including PII (Personal Identifiable Information) / PID (Personal Identifiable Data) or any other sensitive data in this PR (Pull Request) and the codebase changes. We will remove any PR that do contain any sensitive information. We really appreciate your cooperation in this matter.

[x] I confirm that neither PII/PID nor sensitive data are included in this PR and the codebase changes.

Currently, the build stage of the pipeline fails. Let's fix it in the next session but proceed with merging this PR.


Cannot including version 3.0.0-beta1

I followed the instructions on the README page but unfortunately could not include DBFlow in my project.
The error I'm getting is:
Error:Could not find com.raizlabs.android.DBFlow:dbflow-processor:3.0.0-beta1.
Searched in the following locations:
    https://jcenter.bintray.com/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.pom
    https://jcenter.bintray.com/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.jar
    https://jitpack.io/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.pom
    https://jitpack.io/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.jar
    file:/Users/chris/android-sdk/extras/android/m2repository/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.pom
    file:/Users/chris/android-sdk/extras/android/m2repository/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.jar
    file:/Users/chris/android-sdk/extras/google/m2repository/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.pom
    file:/Users/chris/android-sdk/extras/google/m2repository/com/raizlabs/android/DBFlow/dbflow-processor/3.0.0-beta1/dbflow-processor-3.0.0-beta1.jar
Required by:
    Operator-Android:app:unspecified

This is my top-level build.gradle file:
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

...and my module-level build.gradle:
apply plugin: 'com.android.library'
apply plugin: 'com.neenbedankt.android-apt'

dependencies {

    // Data
    apt 'com.raizlabs.android.DBFlow:dbflow-processor:3.0.0-beta1'
    compile "com.raizlabs.android.DBFlow:dbflow-core:3.0.0-beta1"
    compile "com.raizlabs.android.DBFlow:dbflow:3.0.0-beta1"
}

Same here.

I am also getting same issue

same here, it's been days!

This seems to work :
apt 'com.github.Raizlabs.DBFlow:dbflow-processor:3.0.0-beta1'
compile "com.github.Raizlabs.DBFlow:dbflow-core:3.0.0-beta1"
compile "com.github.Raizlabs.DBFlow:dbflow:3.0.0-beta1"

Same problem here, please update Readme.md.

@samiuelson It's not written on the Readme but you have to add "classpath" before "com.neenbedankt.gradle.plugins:android-apt:1.8'"
Example :
 dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha2'
        classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
    }

@mirecalu your suggestion works. I'll send a PR with this change.
apt 'com.github.Raizlabs.DBFlow:dbflow-processor:3.0.0-beta1'
compile "com.github.Raizlabs.DBFlow:dbflow-core:3.0.0-beta1"
compile "com.github.Raizlabs.DBFlow:dbflow:3.0.0-beta1"


Hotfix/esherman/cvs to git updates2

This adds a new feature to MAPL_Generic.F90 -> MAPL_GridCompGetFriendlies. See issue #55 for further explanation.

@bena-nasa and @mathomp4 could you please tell me which version of MAPL master were these changes merged into? The latest release (v1.1.10) does not appear to contain the updates.


Speed & Bearing labels and units

Hi,
I would lie to add the speed (knt or km/h) unit and bearing unit (°), but when I do so, this is screwing up the speed vector and the direction of the plane/uav markers...
What can I do to fix this?

nothing... - but I can...  :-)
will fix in v1.3.5