Eliminate Identity pass

Remove identity ops found from the original protobuf files.

Khalique,  that adding a dead code elimination after eliminate_identify breaks the test means we have a bug in the program representation.   We do not represent side effects in the instruction, which is likely derived from the fact that we do not have destination operands in the instruction.  An instruction that writes a memory should have a destination operand representing the memory entity it writes into.   The  instruction who reads the memory should have an explicit reference to the producer.  Program analysis and optimizations rely on the explicit representations of read and write reference.

I don't have objection if you check in the code, but we should have another issue open up to address the program representation.

That makes sense. Adding more info to the program representation should fix this issue, but it will be beyond the scope of this PR. I will make an additional issue to revisit this in the future.


Build errors

Describe the bug
打包构建错误...
Reproduction
执行build命令

System Info
Output of npx envinfo --system --npmPackages vite,@vitejs/plugin-vue --binaries --browsers:
  System:
    OS: macOS 12.4
    CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
    Memory: 1.82 GB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.15.0 - /usr/local/bin/node
    Yarn: 1.22.15 - /usr/local/bin/yarn
    npm: 8.5.5 - /usr/local/bin/npm
  Browsers:
    Chrome: 101.0.4951.64
    Safari: 15.5
  npmPackages:
    vite: 2.9.9 => 2.9.9

Used package manager:
Logs

:tada: This issue has been resolved in version 1.6.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 1.6.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

ok


Ads in the windows weather app

Still seeing ads in the windows 11 weather app.

Copy of #22. I'm unaware anyone has managed to sort these out through registries.


Operations referenced from an instantiated template interface do not get cached correctly

I randomly walked into this issue recently and it seems pretty serious, definitely affects Azure.Core mainline scenarios around ResourceOperations<Traits> interface.
Here's the repro:

Define a templated interface which contains an operation that spreads the template parameter directly into the parameter list
Use aliases to create two instances of the same interface with different model types for the template parameter
Define operations which reach through the two aliases to use the contained operation signature
The second operation will have the same parameters spread in as the first

This example should help clarify it:
Playground repro
import "@typespec/http";

using TypeSpec.Http;

model Foo {
  name: string;
}

model ExtraParams {
  @path
  classId: string;

  @path
  assignmentId: string;
}

interface StandardOps<TExtraParams extends object = {}> {
  op Get<TResource>(...TExtraParams): TResource;
}

alias OpsNoExtraParams = StandardOps;
alias OpsByClassIdAssignmentId = StandardOps<ExtraParams>;

@route("foo")
op get is OpsNoExtraParams.Get<Foo>;

@route("foo/classes/{classId}/assignments/{assignmentId}")
op getWithParams is OpsByClassIdAssignmentId.Get<Foo>;

The @route decorator here complains that classId and assignmentId are not found in the parameter list of the operation.  If you check the getWithParams operation in the type graph, you'll see that it is missing those two parameters when it should have them from the OpsByClassIdAssignmentId's interface instantiation.

epic: tcgc/dpg


Licensing incompatibility with pymupdf

I noticed that nougat is using a MIT license but depends on pymupdf as specified in setup.py.
Given that pymupdf is licensed as AGPL are you planning to switch to AGPL too or to another PDF library like xpdf?
I'd like to build on something with nougat but I'd like to understand its correct license.

Yes it depends on pymupdf, but nougat doesn't include its code. As I understand it, licenses only apply to the provided code itself, not some dependencies.

Yup, I investigated a bit, as should I have done before opening this 😅, and that's true.
Guess I was wrong, thanks and sorry for the annoyance. 🙏
I'll close the issue.

Thanks for confirming.
Just a small note, the code is MIT but the model weights are licensed under CC BY-NC 4.0 (because of the data they were trained with)

To be safe I removed pymupdf as a dependency


Revert " UI: added a favicon to the site #31 "

Reverts kvcops/KV-Nexus#34

@kvcops hey I don't know why I  haven't received any notifications for this, but I will fix the issue, but it would have been better if you kept it in production because it was working fine locally. And i would have saw the production issues. as I don't have vercel preview access. Well I assure you i will fix the issue asap. Thank you.


Gitbook config

:tada: This PR is included in version 1.1.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Super long story descriptions don't wrap or ellipsize

This ends up causing weird behavior, like pushing the keyboard shortcuts button out of view and stretching the titular button out of view as well.

It's hard to tell in the screenshot because my story is just a white background, but the sidebar is its natural width and the contents are wider than it.

@majapw which version? we've revamped that in 3.2 (landing in the next 24h):

Still lacking polish for sure, but does this address your concerns about keyboard shortcuts/buttons?


Shell Functions using LLM

Temporary location for my collection of (mostly ZSH) functions using llm cli.

Template\nname: makefilename
prompt: $input
system: Generate a file name for supplied input. Following Linux best practice naming
conventions.\n

That file name generator prompt is very unreliable. I must have a better version somewhere.


Failing Automations: Homebridge Restart Removes Listeners for Characteristic Events and HomeKit Hub Never Re-Registers

Pre Steps
Also raised this at: https://github.com/KhaosT/HAP-NodeJS/issues/789 but no response there...
I've discussed this with a fellow Homebridge plugin dev and we are both reproducing this issue on tvOS 13.3.1, see: https://github.com/nzapponi/homebridge-simplisafe3/issues/66#issuecomment-581301311
In short, after restarting Homebridge (e.g. just restarting the service) a HomeKit hub (Apple TV 4k) never "re-registers" as a listener to characteristic events, not until it is manually restarted. Sometimes even a restart isnt enough, I need to manually toggle Settings > Airplay & HomeKit and toggle my home from Connected / Disconnected and then restart. Huh?
Is this a purely tvOS issue? Known? I'm not even 100% clear about which side of things initiates registering a device as a listener—is it totally reliant that the HomeKit device handles this in the same way that launching / quitting Home.app on iOS devices takes care of it? Should HAP-NodeJS should be "reconstructing" the list of listeners after it restarts? Or finally, is there some issue about Homebridge / HAP-NodeJS 'announcing' its shutdown/restart in some way that would 'remind' the HomeKit hub to re-subscribe to events?
Appreciate any thoughts / insight. If there is anything that can be done on this side of things would love to help.
Expected Behavior
HomeKit hub should be re-registered for events and continue receiving events after Homebridge restart.
Current Behavior
HomeKit hub (Apple TV) never re-reigsters for events and all automations related to Homebridge start failing. Sometimes restart corrects or sometimes hub needs to be 'disconnected' from Home in Apple TV settings.
Steps to Reproduce
See https://github.com/nzapponi/homebridge-simplisafe3/issues/66#issuecomment-581301311

Set up an automation based on a contact sensor
Close Home on all devices and disconnect from Wi-Fi
Restart Homebridge: Apple TV won't register for characteristic events
Open the contact sensor - the automation will not work.
Restart Apple TV - when it comes back on, usually it does register for characteristic events (but not always!)
Open the contact sensor - automation should work

Versions

Homebridge: 0.4.50
Node:       13.7.0
OS:         Raspbian GNU/Linux 10 (buster)
HomeKit Hub:         ATV 4K on tvOS 13.3.1

Homebridge Log / Command Output
Fri, 31 Jan 2020 08:47:45 GMT EventedHTTPServer [Apple TV Static IP] HTTP request: /characteristics
Fri, 31 Jan 2020 08:47:45 GMT HAPServer [xx:xx:xx:xx:xx:xx] HAP Request: PUT /characteristics
Fri, 31 Jan 2020 08:47:45 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":8,"iid":9,"ev":true},{"aid":8,"iid":10,"ev":true}]
Fri, 31 Jan 2020 08:47:45 GMT Accessory [Homebridge] Registering Characteristic "Contact Sensor State" for events
Fri, 31 Jan 2020 08:47:45 GMT Accessory [Homebridge] Registering Characteristic "Status Low Battery" for events

Just makes no sense 😖 I just restarted my ATV and toggled 'connected/disconnected' under Airplay & HomeKit settings and it still didn't re-register. After I restarted it I see a few of my iOS devices register, but not the ATV.

Wonder if this is related to HomePod failing to function as a remote gateway when it takes over from AppleTV

I don’t have a HomePod! Just ATV :)

behavior seems too similar to be coincidence

Similar to what? Are there similar reports for people with HomePod (link?)? I know technically they run different OS but I would hope their HomeKit hub code is similar so yea I could def see this being a problem with HomePod as well, I was just pointing out that I only have 1 hub on my network not multiple.

Does the AppleTV fail to connect to homebridge at all, or does it connect but not register for changing characteristic values?  Can you check with netstat on the homebridge server before and after restarting homebridge?
If the AppleTV does connect, I would suspect a bug in the AppleTV.  If it doesn’t connect, I would suspect network issues with the Bonjour announcements by homebridge not reaching the AppleTV.  How is your AppleTV connected to the network?  How is homebridge?  What routers and switches do you have in between them?  Do they forward multicast traffic unconditionally to all ports, or are they trying to be smart (IGMP snooping) and only forward it to the ports with a listener?

Thanks for the reply. After I posted this I tried turning off wifi on my RPi completely which seemed to make a difference, ATV now seems to be better about eventually reconnecting at least while Homebridge is not restarted. With WiFi on I noticed that the RPi was broadcasting HAP on Bonjour with two IP addresses (elan and wlan, both of which were set to static IP) now its just the one.
BUT, theres still an issue where ATV never reconnects after HB restart and in general it takes a long time to reconnect if it ever does eventually. Trying what you suggested @ebaauw , before I restart HB netstat shows:
tcp        0      0 x.x.x.130:33209        x.x.x.120:49394        ESTABLISHED
whereas afterwards it doesnt list any connection to x.x.x.120 which is ATV IP. But when HB restarts I immediately see /pair-verify requests coming from other iOS devices on my network—so why are those 'aware' of the bridge restart and better about reconnecting than the ATV??
The other thing that happened is that last night my 1AM automation failed because the ATV 'disconnected' just before 1AM, and didn't connect until after. Disconnects seem to happen often now, even with WiFi turned off. Why would they? And why does it take so long to reconnect. E.g. just before 1AM I see:
2/7/2020, 12:52:42 AM [x.x.x.120] HTTP connection was closed
2/7/2020, 12:52:42 AM [x.x.x.120] HTTP connection was closed
2/7/2020, 12:53:28 AM [x.x.x.120] HTTP connection was closed

Then after 1AM the ATV 'comes back', but of course its too late for the 1AM automation:
2/7/2020, 1:12:52 AM [x.x.x.120] HTTP request: /pair-verify
2/7/2020, 1:12:52 AM [x.x.x.120] HTTP request: /pair-verify
2/7/2020, 1:12:53 AM [x.x.x.120] HTTP request: /pair-verify
2/7/2020, 1:12:53 AM [x.x.x.120] HTTP request: /pair-verify
2/7/2020, 1:12:53 AM [x.x.x.120] HTTP request: /pair-verify
2/7/2020, 1:12:53 AM [x.x.x.120] HTTP request: /pair-verify

In between those two I see a series of keepalive requests to iOS devices, maybe they are not happening frequently enough to keep the ATV connection going?
Basically seems that ATV sucks at reconnecting, whether its from random disconnects or from Homebridge restart. My hope is how to mitigate this if its possible from the Homebridge side but perhaps it is just down to the ATV software itself?? Frustrating...
Both ATV and RPi are hardwired ethernet. There is 1 ethernet switch between them. All devices are behind an Airport Extreme router. I have IPV6 disabled on the RPi. IGMP snooping is disabled on the router.
Really appreciate everyone's input.

All devices are behind an Airport Extreme router.

You mean your iOS devices?  What happens if you connect the AppleTV the same way (wirelessly instead of wired)?

There is 1 ethernet switch between them.

  In the latter case: did you turn off IGMP snooping on the switch as well?  Is the Airport Extreme also connected to this switch?

For example I just restarted HB and ATV didn't disconnect so I went into the ATV, restarted it and toggled my 'Home' connected / disconnected and it still didn't reconnect. Every time I 'disconnected' and 'connected' the Apple TV (under settings) I just saw over and over my computer and iPad and iPhone IP addresses 'registering' for characteristic events—never the ATV. Then I went and turned off Wifi on my iPad and then suddenly the ATV registers.
And now I literally cannot get the ATV to register. I turned off all other devices, restarted the ATV and I still dont see it register, when I reconnect my laptop to WiFi and look at the logs it shows my laptop registering as a listener, nothing from the ATV. It's just crazy!?
All switches are unmanaged.

This is happening to me, even without restarting homebridge.  I have a HomePod running iOS 13.3.1 and a StatelessProgrammableSwitch provided by homebridge-lutron-caseta plugin.  When I first launch homebridge, it never registers the buttons until I open Home.app (or control center).  Then about 2 minutes later, it unregisters the buttons.
Let me know if I should open separate issue for this but it seems related.
Sat, 08 Feb 2020 21:02:04 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:02:04 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":10,"ev":true},{"aid":2,"iid":13,"ev":true},{"aid":2,"iid":16,"ev":true},{"aid":2,"iid":19,"ev":true},{"aid":2,"iid":22,"ev":true}]
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
......
Sat, 08 Feb 2020 21:03:30 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:03:30 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":10,"ev":false},{"aid":2,"iid":13,"ev":false},{"aid":2,"iid":16,"ev":false},{"aid":2,"iid":19,"ev":false},{"aid":2,"iid":22,"ev":false}]
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:03:31 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":1,"iid":9,"ev":false},{"aid":1,"iid":10,"ev":false},{"aid":1,"iid":11,"ev":false}]
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "State" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Version" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Control Point" for events
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished

I'm almost embarrassed to report but I think this had a lot to do with my network setup. Specifically I had hub → switch → switch (RPi with Homebridge off this switch) → router. I changed it so all switches are direct to router e.g. the ATV has only 1 switch between it and router (though I will point still only 1 switch between it and the RPi). Anyway, this seems to have drastically improved the reliability. I now see a tiny fraction of the number of 'disconnects' from my ATV and it even seems to re-connect faster after HB restart.
I'll admit I'm a bit frustrated its something I hadn't even really considered but thanks to @ebaauw for putting me on the right path! I think this can be closed now (and I can finally move on with my life 🤪)

@llamafilm can you identify for us the IP addresses in your logs? Is one of those your HomePod?

IP .107 is the iPhone where I opened Home.app
IP .180 is the HomePod
IP .252 is another iPad, not in use right now
I didn't think the lines in between were relevant but here they are just in case.  All of these devices are on WiFi connected to the same router.
Sat, 08 Feb 2020 21:02:04 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:02:04 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":10,"ev":true},{"aid":2,"iid":13,"ev":true},{"aid":2,"iid":16,"ev":true},{"aid":2,"iid":19,"ev":true},{"aid":2,"iid":22,"ev":true}]
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT Accessory [Homebridge] Registering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:02:04 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:02:15 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] New connection from client
Sat, 08 Feb 2020 21:02:15 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP server listening on port 35849
Sat, 08 Feb 2020 21:02:15 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /pair-verify
Sat, 08 Feb 2020 21:02:15 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: POST /pair-verify
Sat, 08 Feb 2020 21:02:15 GMT HAPServer [CB:22:3D:E2:CE:31] Pair verify step 1/2
Sat, 08 Feb 2020 21:02:16 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:02:16 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] Client connection closed
Sat, 08 Feb 2020 21:02:16 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP connection was closed
Sat, 08 Feb 2020 21:02:16 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP server was closed
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] New connection from client
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP server listening on port 39217
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /pair-verify
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: POST /pair-verify
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] Pair verify step 1/2
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /pair-verify
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: POST /pair-verify
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] Pair verify step 2/2
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] Client F709FBA4-2080-4351-9C50-6A271B0DAD50 verification complete
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /accessories
Sat, 08 Feb 2020 21:02:50 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: GET /accessories
Sat, 08 Feb 2020 21:02:50 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:03:30 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:03:30 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":2,"iid":10,"ev":false},{"aid":2,"iid":13,"ev":false},{"aid":2,"iid":16,"ev":false},{"aid":2,"iid":19,"ev":false},{"aid":2,"iid":22,"ev":false}]
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:30 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Programmable Switch Event" for events
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP request: /characteristics
Sat, 08 Feb 2020 21:03:31 GMT HAPServer [CB:22:3D:E2:CE:31] HAP Request: PUT /characteristics
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Processing characteristic set: [{"aid":1,"iid":9,"ev":false},{"aid":1,"iid":10,"ev":false},{"aid":1,"iid":11,"ev":false}]
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "State" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Version" for events
Sat, 08 Feb 2020 21:03:31 GMT Accessory [Homebridge] Unregistering Characteristic "Control Point" for events
Sat, 08 Feb 2020 21:03:31 GMT EventedHTTPServer [::ffff:<IP_ADDRESS>] HTTP Response is finished

Hmm, I think it is normal for iOS devices to un-register periodically (note that .107 is the thing in your logs unregistering, not .180), your home hub should be the one to never unregister (and in your log excerpts, it doesnt look like it is). I dont have experience with HomePod as a hub (I'm assuming its your hub) as opposed to ATV but my assumption is they work the same.
Do you have any other Homebridge plugins? For example even https://www.npmjs.com/package/homebridge-dummy . Is it possible its an issue with the lutron plugin?

It certainly could be a problem with the lutron plugin.  Unfortunately the author has abandoned it and I'm not very good with JS.  This dummy plugin looks promising.  I'll test that and if it works maybe I can figure out how to fix the lutron code from there.


concurrency and possible memory leak?

When running in node, it seems that there's some memory leaks.  I've setup 10 clients to download and it just climes up to 1.7g and cuts off.  Even with only a couple simultaneous downloads the memory just slow climes up over time, is this a known issue or are there any stats for running a higher level of concurrency?

What version of WebTorrent are you using?
On Mon, Aug 24, 2015 at 7:42 PM Dave Squires<EMAIL_ADDRESS>wrote:

When running in node, it seems that there's some memory leaks. I've setup
10 clients to download and it just climes up to 1.7g and cuts off. Even
with only a couple simultaneous downloads the memory just slow climes up
over time, is this a known issue or are there any stats for running a
higher level of concurrency?
—
Reply to this email directly or view it on GitHub
https://github.com/feross/webtorrent/issues/407.

0.60.0 with node 0.12.7.    Is there maybe a limit on the size of torrent? I saw some issues about buffer limits, not sure if that still holds true.

Can you share the code that triggers this? I'll take a look.
On Mon, Aug 24, 2015 at 9:09 PM Dave Squires<EMAIL_ADDRESS>wrote:

0.60.0 with node 0.12.7. Is there maybe a limit on the size of torrent? I
saw some issues about buffer limits, not sure if that still holds true.
—
Reply to this email directly or view it on GitHub
https://github.com/feross/webtorrent/issues/407#issuecomment-134343474.

Cool thanks, here it is: https://gist.github.com/btmdave/1ea4b14b1754b8d7bffe
It's not actually doing it now for me as it's no longer downloading (re: #408)

@btmdave
Can you give it a try with webtorrent 0.57.0. We made significant code changes in 0.58.0 and I'm curious if that may be the cause.
npm install<EMAIL_ADDRESS>

kk this version works alot better. I was getting memory of 1,800 MB but now it's under 400mb.
Torrent.pieceLength is missing tho.

I'm facing some memory leaks too.
After 0.58.0.
I command line, I'm getting this error:
  what():  std::bad_alloc

I'm trying to find what change is causing this leak, but there's a lot to look for.
That error may indicate something?

got similar problem here webtorrent
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

run on webtorrent 0.71.1 node v0.10.36 on nas (low cpu and memory) 128MB
but peerflix running ok

Running on node 4.x and WebTorrent 0.71.4, I have no memory issues.
RAM usage hovers around 130mb. But it occasionally rises to 200mb before going back down. I think there's a baseline of RAM usage that can't go away because it's all source code that is require'd by node.js.
Try using a system with at least 500mb of RAM to avoid issues.

Going to close this issue as I can't think of an easy solution to get RAM usage consistently below 128mb. If someone has any ideas, feel free to leave a comment.


Issue installing Java 8 in dockerfile

Problem description
 Java 8 is not installed when the command to install is supplied in the Dockerfile. Java 8 is a requirement for the Spark
 Session to be initialized and the JAVA_HOME environment variable should be set
 Unable to locate package openjdk-8-jdk

'''
ERROR [ 3/17] RUN apt-get install openjdk-8-jdk                                                                                1.1s

[ 3/17] RUN apt-get install openjdk-8-jdk:
#6 0.301 + apt-get install openjdk-8-jdk
#6 0.331 Reading package lists...
#6 0.888 Building dependency tree...
#6 0.996 Reading state information...
#6 1.086 E: Unable to locate package openjdk-8-jdk
'''

Steps to reproduce the issue
Add the following lines into the Dockerfile

RUN apt-get update
RUN apt-get install openjdk-8-jdk
Then run docker-compose up

Expected behavior
     Java 8 is expected to be installed while creating the docker image

Attempted fixes
    I tried to install from official repositories instead of the manual installation by running the following commands:

apt-get install oracle-java8-installer
add-apt-repository ppa:webupd8team/java

@clemEssien Try installing the system library default-jre, see example.

The default-jre installs Java 11. The installation specifies Java 8. However, I tried it a few times, the latest error here is a Java gateway exception i.e.
'''
Exception in thread "main" java.io.FileNotFoundException: /var/www/.ivy2/cache/resolved-org.apache.spark-spark-submit-parent-99cf1eb8-395b-40b9-a777-9618361c666f-1.0.xml (No such file or directory)
phi-annotator    |      at java.base/java.io.FileOutputStream.open0(Native Method)
phi-annotator    |      at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
phi-annotator    |      at java.base/java.io.FileOutputStream.(FileOutputStream.java:237)
phi-annotator    |      at java.base/java.io.FileOutputStream.(FileOutputStream.java:187)
phi-annotator    |      at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter.write(XmlModuleDescriptorWriter.java:70)
phi-annotator    |      at org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorWriter.write(XmlModuleDescriptorWriter.java:62)
phi-annotator    |      at org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor.toIvyFile(DefaultModuleDescriptor.java:563)
phi-annotator    |      at org.apache.ivy.core.cache.DefaultResolutionCacheManager.saveResolvedModuleDescriptor(DefaultResolutionCacheManager.java:176)
phi-annotator    |      at org.apache.ivy.core.resolve.ResolveEngine.resolve(ResolveEngine.java:245)
phi-annotator    |      at org.apache.ivy.Ivy.resolve(Ivy.java:523)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmitUtils$.resolveMavenCoordinates(SparkSubmit.scala:1418)
phi-annotator    |      at org.apache.spark.deploy.DependencyUtils$.resolveMavenDependencies(DependencyUtils.scala:54)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.prepareSubmitEnvironment(SparkSubmit.scala:308)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:894)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:180)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:203)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:90)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:1030)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:1039)
phi-annotator    |      at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
phi-annotator    | Failed to add operation for POST /api/v1/textContactAnnotations
phi-annotator    | Traceback (most recent call last):
phi-annotator    |   File "openapi_server/main.py", line 10, in
phi-annotator    |     app.add_api('openapi.yaml', pythonic_params=True)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apps/flask_app.py", line 57, in add_api
phi-annotator    |     api = super(FlaskApp, self).add_api(specification, **kwargs)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apps/abstract.py", line 144, in add_api
phi-annotator    |     api = self.api_cls(specification,
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 111, in init
phi-annotator    |     self.add_paths()
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 219, in add_paths
phi-annotator    |     self._handle_add_operation_error(path, method, sys.exc_info())
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 231, in _handle_add_operation_error
phi-annotator    |     raise value.with_traceback(traceback)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 209, in add_paths
phi-annotator    |     self.add_operation(path, method)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/apis/abstract.py", line 162, in add_operation
phi-annotator    |     operation = make_operation(
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/operations/init.py", line 8, in make_operation
phi-annotator    |     return spec.operation_cls.from_spec(spec, *args, **kwargs)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/operations/openapi.py", line 128, in from_spec
phi-annotator    |     return cls(
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/operations/openapi.py", line 75, in init
phi-annotator    |     super(OpenAPIOperation, self).init(
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/operations/abstract.py", line 96, in init
phi-annotator    |     self._resolution = resolver.resolve(self)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/resolver.py", line 40, in resolve
phi-annotator    |     return Resolution(self.resolve_function_from_operation_id(operation_id), operation_id)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/resolver.py", line 61, in resolve_function_from_operation_id
phi-annotator    |     return self.function_resolver(operation_id)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/connexion/utils.py", line 111, in get_function_from_name
phi-annotator    |     module = importlib.import_module(module_name)
phi-annotator    |   File "/usr/local/lib/python3.8/importlib/init.py", line 127, in import_module
phi-annotator    |     return _bootstrap._gcd_import(name[level:], package, level)
phi-annotator    |   File "", line 1014, in _gcd_import
phi-annotator    |   File "", line 991, in _find_and_load
phi-annotator    |   File "", line 975, in _find_and_load_unlocked
phi-annotator    |   File "", line 671, in _load_unlocked
phi-annotator    |   File "", line 783, in exec_module
phi-annotator    |   File "", line 219, in _call_with_frames_removed
phi-annotator    |   File "./openapi_server/controllers/text_contact_annotation_controller.py", line 4, in
phi-annotator    |     from openapi_server import nlp_config as cf
phi-annotator    |   File "./openapi_server/nlp_config.py", line 19, in
phi-annotator    |     spark = Spark().spark
phi-annotator    |   File "./openapi_server/nlp_config.py", line 16, in init
phi-annotator    |     self.spark = sparknlp_jsl.start(os.environ['JSL_SECRET'], params=params)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/sparknlp_jsl/init.py", line 80, in start
phi-annotator    |     return builder.getOrCreate()
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/pyspark/sql/session.py", line 228, in getOrCreate
phi-annotator    |     sc = SparkContext.getOrCreate(sparkConf)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/pyspark/context.py", line 384, in getOrCreate
phi-annotator    |     SparkContext(conf=conf or SparkConf())
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/pyspark/context.py", line 144, in init
phi-annotator    |     SparkContext._ensure_initialized(self, gateway=gateway, conf=conf)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/pyspark/context.py", line 331, in _ensure_initialized
phi-annotator    |     SparkContext._gateway = gateway or launch_gateway(conf)
phi-annotator    |   File "/usr/local/lib/python3.8/site-packages/pyspark/java_gateway.py", line 108, in launch_gateway
phi-annotator    |     raise Exception("Java gateway process exited before sending its port number")
phi-annotator    | Exception: Java gateway process exited before sending its port number
phi-annotator    | unable to load app 0 (mountpoint='') (callable not found or import error)
phi-annotator    | *** no app loaded. going in full dynamic mode ***
'''


Fix support URL in readme

What does the pull request do?
Fixes support URL in readme.md

 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.:x: equalent sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@equalent thank you 💯

You can test this PR using the following package version. 11.0.999-cibuild0025675-beta. (feed url: https://nuget.avaloniaui.net/repository/avalonia-all/index.json) [PRBUILDID]


Enable aligning a dropdown button's width with its menu's width

By default dropdown menus are wider than their dropdown button: 16.0 pixels wider on the left, and 24.0 pixels wider on the right.
Setting ButtonThemeData.alignedDropdown to true makes dropdown menus the same width as their button. The button's label is padded 16.0 on the left so that the button and menu item labels line up.
new ButtonTheme(
  alignedDropdown: true,
  child: new DropdownButton( ... ),
)

Fixes https://github.com/flutter/flutter/issues/14785

 if you decide this is the right solution.

I do think this is the right solution. It's backwards compatible, since by default dropdown menu geometry doesn't change. And it makes it simple to enable the new and improved menu geometry with the material theme's button theme.

Thank you for this PR, but next time please use a nicer commit messages, checkpoint is not a commit!


Make perl tests required in CI

[x]  "fake" CI job must be introduces
[x] - settings of the repository must change

perl tests are now required for main branch ✅

That was fast! Thanks, the PR is up.

Done, closing. T hannks


Aut installation issue information

While installing the aut commandline you may see this issue where the key to github.com cannot be determined and your installation will be stuck and will error out with the following error
The authenticity of host 'github.com (<IP_ADDRESS>)' can't be established.'
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
⣽ determining package name from<EMAIL_ADDRESS>  error: subprocess-exited-with-error

  × git clone --filter=blob:none --quiet<EMAIL_ADDRESS>/private/var/folders/bs/tnv_697n0_x1nt1f1gc314yh0000gn/T/pip-req-build-fs7n3791 did not run successfully.
  │ exit code: 128
  ╰─> [5 lines of output]
      Host key verification failed.
      fatal: Could not read from remote repository.

      Please make sure you have the correct access rights
      and the repository exists.
      [end of output]

The quick fix to this problem is to scan all the github keys and add them to your ~/.ssh/known_hosts file. This can be done with ssh-keyscan this little information is not there on the docs page but I guess people can come across this issue on every new installation.
To fix this run:
ssh-keyscan github.com >> ~/.ssh/known_hosts

You should see an output similar to
ssh-keyscan github.com >> ~/.ssh/known_hosts
# github.com:22 SSH-2.0-babeld-1614812c
# github.com:22 SSH-2.0-babeld-1614812c
# github.com:22 SSH-2.0-babeld-1614812c
# github.com:22 SSH-2.0-babeld-1614812c

thanks @vkbytes,
the issue you are describing may appear when using the ssh url of the repo<EMAIL_ADDRESS>instead of the https url as described in the project's README:
pipx install git+https://github.com/autonity/aut.git


META - Project activity

Hey guys, I've got some questions. I'm trying to use pennyworth internally at my organization (and for the FGA project, which I'd mentioned to AJ), but as wonderful as it is, I'm finding it to be not as modular as I'd hoped. This is leading to me picking away at it locally in a way that feels very divergent from your effort (although only organizationally, and without changing the actual "product"). Was just wondering whether you'd be open to making it more compartmentalized and grokable, as I'm otherwise probably going to need to fork my efforts and give up any pretense of contributing back. Which would be lame.
A couple points (same admittedly personal taste):

roles should be json, so they can be version controlled better (changes made through chef web UI can be pulled back into code)
with most cookbooks, each recipe is usually a minimal piece of functionality, or a specific fork of a functional unit (ie source.rb vs package.rb in php's default cookbook). Would you be averse to my putting pennyworth into such a setup? Small example, dependencies.rb could never really run on it's own
ssh_key.rb seems to repeat lots of what's already in the jerkins::default, but simply adds a place to drop in known_hosts and config files. Could this not be a much smaller recipe that runs after jerkins::default? ssh-keyscan can be used to generate known_hosts dynamically…
leiningen recipe is required in default (should be separate or in databag option)
.gnupg manipulation happens in jenkins default. Could this not go in gpg cookbook, ie. attribute for user to run gpg commands, so files are generated in that users $HOME? Seem more appropriate to do this, then set that attribute to be the jenkins user from within the pennyworth recipe.
instead of using sudoers.d (which only works on natty, I believe), use the sudo cookbook, and submit a pull request to accomodate cmnd aliases?
git package is installed directly, instead of by cookbook
there are some deps built into pennyworth (gems/packages/cookbooks) that assume I want to build something specific. Could be not try to move some of that stuff out? Maybe have a container role called pennyworth_android, or use databags to define deps based on intended build use, or whatever?
librarian would make it SOOO much simpler for other people to take what you've done and merge it into their infra. You have some hacked cookbooks with odd versionings, and that doesn't bestow confidence to someone looking to "come along for the ride" and use your configs with the expectation of benefiting from improvements. So coherent cookbook versioning and individual repos would go a long way (I understand that a better versioning scheme is needed to solve some of the confusion involving hacking on cookbooks of others)
your knife plugin could be deployed more like the ohai cookbook is:
https://github.com/opscode/cookbooks/blob/master/ohai/recipes/default.rb
(we could write a "knife" cookbook for installing knife plugins remotely)

It's easier for me to just start my own effort at this point, but I'd honestly rather contribute back. I'm totally willing to help, but I'm clarifying ahead of time because I'd really rather not try to fit my work into the pennyworth paradigm unless you guys are amenable to some rather obtrusive changes. I haven't always heard back from my input in the issues, so I'm not really clear whether you actively dogfood with pennyworth and seek to improve it as a general tool, or whether it's a codebase you simply pulled out of your own infra and don't actually depend on internally. If you've got your own codebase and you're not using the pennyworth codebase yourself, I guess I just think that's important for me to know, as it sets expectations on responsiveness, etc.
Anyhow, thanks guys. Sorry for the journal, just that a bunch of smaller issues seemed overboard when the answer might just be that you're not able to actively support. If you'd be cool with doing a skype call or IRC chat to speed up the "getting on the same page", I'd be down for that!
First let me say, sorry for leaving you so long! I was sick for a few
weeks over the november/december, and took some chill time to relax
around the holiday period.
On 12 January 2012 10:47, Patrick Connolly
<EMAIL_ADDRESS>wrote:

Hey guys, I've got some questions. I'm trying to use pennyworth internally at my organization (and for the FGA project, which I'd mentioned to AJ), but as wonderful as it is, I'm finding it to be not as modular as I'd hoped. This is leading to me picking away at it locally in a way that feels very divergent from your effort (although only organizationally, and without changing the actual "product"). Was just wondering whether you'd be open to making it more compartmentalized and grokable, as I'm otherwise probably going to need to fork my efforts and give up any pretense of contributing back. Which would be lame.
A couple points (same admittedly personal taste):

roles should be json, so they can be version controlled better (changes made through chef web UI can be pulled back into code)

I definitely do not agree with "roles should be json" -- this is
counter to a very well defined community practice. I have never used
json roles in any chef repository and the prospect of a human
editing a role and then pulling it back into a version control sounds
like a process fraught with disaster.
If you need to be tuning values in roles all the time, we've built
something wrong. Let's move that functionality to a data bag.

with most cookbooks, each recipe is usually a minimal piece of functionality, or a specific fork of a functional unit (ie source.rb vs package.rb in php's default cookbook). Would you be averse to my putting pennyworth into such a setup? Small example, dependencies.rb could never really run on it's own

I'm not sure what you're getting at here, but it sounds fine. The
pennyworth recipes do need some love, and I haven't had the time to
get there recently -- the client engagement I'm actively working on is
maybe a month away from needing pennyworth deployed.

ssh_key.rb seems to repeat lots of what's already in the jerkins::default, but simply adds a place to drop in known_hosts and config files. Could this not be a much smaller recipe that runs after jerkins::default? ssh-keyscan can be used to generate known_hosts dynamically…

This is purely a case of automation around the tool. Those files
needed to be in place after the user was created, before the
application was installed, to avoid environmental inheritance
problems.
You can feel free to try it without it, but will unfortunately come to
the same conclusion I did - and thus why it was automated that way :)
I like how you called it jerkins too =P

leiningen recipe is required in default (should be separate or in databag option)

Fine.

.gnupg manipulation happens in jenkins default. Could this not go in gpg cookbook, ie. attribute for user to run gpg commands, so files are generated in that users $HOME? Seem more appropriate to do this, then set that attribute to be the jenkins user from within the pennyworth recipe.

Unfortunately as reprepro requires root for some actions, the
manipulation in the Jenkins cookbook is in fact not duplicated; it is
essential for both users to be able to access it. Again, automation
around the tooling.
Some of these issues seem to be you lobbing complaints at me for stuff
you have not fully investigated. I would have appreciated scientific
method. :)

instead of using sudoers.d (which only works on natty, I believe), use the sudo cookbook, and submit a pull request to accomodate cmnd aliases?

Fine, not really fussed on this. Generally I'd adapt to the
infrastructure where pennyworth is being deployed. Something that
works on natty, when the only intended target of the repository IS
Natty, is fine. You have to remember I built this repository to give
an out of the box, Vagrant-deployed on Ubuntu 11.04, experience.

there are some deps built into pennyworth (gems/packages/cookbooks) that assume I want to build something specific. Could be not try to move some of that stuff out? Maybe have a container role called pennyworth_android, or use databags to define deps based on intended build use, or whatever?

This is just laziness more than anything. Yes we could do something,
for now I haven't really been fussed. It has just become a monolithic
build station.

librarian would make it SOOO much simpler for other people to take what you've done and merge it into their infra. You have some hacked cookbooks with odd versionings, and that doesn't bestow confidence to someone looking to "come along for the ride" and use your configs with the expectation of benefiting from improvements.

As I've mentioned before, librarian is a niche tool with a limited
user base. I have never used it personally and have managed and
trained teams of engineers around the world. I find the entire notion
of needing a bundler for cookbooks to increase the "come along for the
ride" factor sad to say the least -- I have been managing them by hand
without trouble long before this tool came along. I'd expect someone
competent to be able to do the same.
Jay himself mentioned it wasn't designed for this style of
distribution. We have to use submodules, and keep the code in a wonky
(non-standard) directory... and then you'd have to tweak Vagrant to
work with all that stuff.
.. I'm just not interested in doing the work myself at all. Show me
a branch somewhere and we can talk.

your knife plugin could be deployed more like the ohai cookbook is:
https://github.com/opscode/cookbooks/blob/master/ohai/recipes/default.rb
(we could write a "knife" cookbook for installing knife plugins remotely)

Yes, we sure could. Knife cookbooks can be installed as Gems, but that
plugin could really do with some testing and love before we Gem
release it.

It's easier for me to just start my own effort at this point, but I'd honestly rather contribute back. I'm totally willing to help, but I'm clarifying ahead of time because I'd really rather not try to fit my work into the pennyworth paradigm unless you guys are amenable to some rather obtrusive changes. I haven't always heard back from my input in the issues, so I'm not really clear whether you actively dogfood with pennyworth and seek to improve it as a general tool, or whether it's a codebase you simply pulled out of your own infra and don't actually depend on internally. If you've got your own codebase and you're not using the pennyworth codebase yourself, I guess I just think that's important for me to know, as it sets expectations on responsiveness, etc.

I simply (personally) have been working on another project who doesn't
have pennyworth deployed currently, and as I mentioned at the
beginning.. have had some time off!

Anyhow, thanks guys. Sorry for the journal, just that a bunch of smaller issues seemed overboard when the answer might just be that you're not able to actively support. If you'd be cool with doing a skype call or IRC chat to speed up the "getting on the same page", I'd be down for that! Regardless, if you're up for it, I'll get to work gathering all this shit together and pushing it public :)

Add me on skype aj.christensen, let's rap talk
--AJ

Reply to this email directly or view it on GitHub:
https://github.com/heavywater/pennyworth/issues/21

I'm going to schedule some R&D time for heavy water and try to get through this triage backlog too. ping me on skype when you can man

haha 20 minute turn-around? You are a HERO
I'll bug you on skype when it's less busy later this week, but one thing about your comment on not needing a bundler tool because you'd "expect someone competent to be able to do the same"... there's the rub -- Heck, I'm probably not competent compared to half the gents in the devops community -- I'm certainly not a sysadmin by trade.
Chef is seeing lots of uptake by devs. Tools like librarian might seem like hand-holding, but I really feel it's helpful -- a little manifest of where all these things came from and how each part relates to things in the outside world. Someone new comes in and is like "ok, so Pennyworth's Jenkins has the same version as fnichol's... but there's no history, and it seems the code is different... but how and why, and can I still upgrade with fletcher's jenkins cookbook when he adds to it?" This is painful for a new guy, and especially a non-sysadmin, and it doesn't need to be. And my angle of building things is to push them out to those in other open-source communities where they will be used by non-sysadmins. I want them to be as accessible as possible, so non-sysadmins can grok them and maybe even contribute at some low level. Having said that, if your interest is only in serving a more technical user -- which is a-ok -- then that's fine, but then we're interested in building things for different audiences, and I guess it's good that I get that. (I think Jay's criticism was to using submodules, but that was only a suggestion because you understandably didn't want to lose code visibility.  Whether the "cookbooks" dir is version-controlled isn't really so important.)
Cheers man! And thanks so much for the lightning-round reply
I'll get an actual repo together before I hassle you again :)


Python 3.10 default on OT-2 with buildroot 2022.02.4

Overview

Development and production environment for Python packages and tools on OT-2 becomes python 3.10
OT-2 runs 3.10.4 but our local and CI environment are 3.10.7 as of 9/16/2022.
Development and CI will follow patch releases of 3.10
With this PR the Python bundled with the app is 3.10.4
Robot python package changes
development dependencies upgraded for use on Python 3.10 if needed
removed windows required packages from project folders that are not expected to work on Windows
generated Pipfile.lock files on Ubuntu 22.04

Still TODO

[ ] TODO update DEVSETUP
[ ] TODO look through READMEs
[ ] TODO double check package versions match to robot
[ ] TODO WSL instructions into DEVSETUP
[ ] TODO change deploy to build wheels across supported matrix opentrons and opentrons_shared_data
[ ] Fix release_6.2.0 branch (pushed the wrong thing)
[ ] Fix: How to get the workflow changes from edge into 6.2? cherry-picked the commits currently

api and share-data/python

opentrons and opentrons_shared_data

These packages are distributed through pypi with cross platform compatibility and targeting Python versions 3.7-3.10
"Do not keep Pipfile.lock in version control if multiple versions of Python are being targeted."

Pipfile.lock have been removed and ignored.
make setup make teardown make clean have been updated accordingly.

A matrix job to validate backward cross platform test, sdist wheel, and smoke tests has been added to run on cron or workflow dispatch.

robot-server

Pinned dependencies here to force packages close to robot using pipenv install -d --sequential
setup, lint, test, dev expected to run consistently across Mac arm, Mac intel, Ubuntu 22.04
will not setup on Windows at least due to the versions of numpy and pyqmz
To develop on Windows use Ubuntu 22.04 on WSL

update-server

Pinned dependencies and sub-dependencies to robot versions
setup, lint, and test expected to run consistently across Mac arm, Mac intel, Ubuntu 22.04
To develop on Windows use Ubuntu 22.04 on WSL

notify-server

Pinned dependencies to robot
setup, lint, and test expected to run consistently across Mac arm, Mac intel, Ubuntu 22.04
To develop on Windows use Ubuntu 22.04 on WSL

g-code-testing

Pinned dependencies to robot
setup, lint, and test expected to run consistently across Mac arm, Mac intel, Ubuntu 22.04
To develop on Windows use Ubuntu 22.04 on WSL

hardware and hardware-testing

not touched

Testing

[ ] local mac arm setup-py, test, lint on all changed
[ ] local mac intel setup-py, test, lint on all changed

Other

devcontainer too slow on Windows, using WSL instead

api and share-data/python

opentrons and opentrons_shared_data

* These packages are distributed through pypi with cross platform compatibility and targeting Python versions 3.7-3.10

* ["Do not keep Pipfile.lock in version control if multiple versions of Python are being targeted."](https://pipenv-fork.readthedocs.io/en/latest/basics.html#general-recommendations-version-control)

  * Pipfile.lock have been removed and ignored.
  * `make setup` `make teardown` `make clean` have been updated accordingly.

I understand the reasoning here and the need for it but I'm still really uncomfortable with this.
The reasoning makes sense if you are trying to deploy to a more variable set of application environments. Really, doing something like that starts to push the boundaries of what pipenv is for - if you don't have a consistent target environment, why use pipenv?
However, we don't have a nebulous target environment. Instead, we have precisely 3 extremely tightly specified target environments:

The OT-2, which now uses python 3.10 and a specific set of dependencies (and transitive dependencies) at some set of versions A
The OT-3, which now uses python 3.8 and a specific set of dependencies (and transitive dependencies) at some set of version B
The local-emulation setup in the app, which now uses python 3.10 and dependencies similar but not exactly the same to versions A, and also across multiple operating systems - call it C, or C_mac, C_win, C_linux where C_linux looks the most like A

When we create testing environments, we're testing that our python code works under all the above target environments. We should test in those target environments precisely.
The only way to do this acceptably, I think, is to separate the definition of target environments from the mechanisms of each python package.
Each package keeps its setup.py (or whatever - pyproject toml eventually maybe?). It specifies dependency ranges that are wide enough to deal with version sets A+B+C.
We remove the pipfiles from the individual package directories. Instead, we put them in environment directories in the root of the monorepo, like this:
- environments/ot-2/{Pipfile, Pipfile.lock, Makefile}
- environments/ot-3-robot-server/{Pipfile, Pipfile.lock, Makefile}
- environments/ot-3-update-server/{Pipfile, Pipfile.lock, Makefile}
- environments/app/{Pipfile, Pipfile.lock, Makefile}

These environment directories are designed to exactly mirror the state of what is installed in each environment in the deployed state, in the checked-in lockfiles. At some point hopefully we can move towards these environment directories also defining what is installed, but that's for the future probably.
That includes our software: the pipfiles each do a local install of our packages - all of them that are installed in a given environment. That's why there are two environments for the ot-3, we have separate environments for robot and update servers.
From there, we change the makefiles for the python packages to run tests using the appropriate directory.
Thoughts?


Configuration of metric labels based on headers

It would be nice to have the ability to define (at configuration time) a series of rules in order to take HTTP headers and use them as labels on the metrics. For instance, using the headers related to authentication (e.g., consumer, user) in order to further segment metrics.
Configuration would be a list of the following:

HTTP header: the incoming HTTP header
label name: the target label name on the metrics
Default value (optional): the default value in case the header is not present on the incoming request. If this item is not present for this configuration item, then the label is ignored altogether.

Then, as an extension to this, it would be nice to allow the upstream services to override the values on this labels. For instance, certain APIs may need to segment metrics based on dimensions that are only known once the upstream service processes the request (e.g., some ID that is retrieved from the application's database). This could be implemented by having the plugin also process the response phase, and the value on the response headers for this purpose.
@hbagdi I'm happy to give this one a try, do you think it is doable/reasonable?

Hi @jmdacruz
Thank you for opening this issue, I'd like to better understand your use case before we decided on whether we should do this or not.

For instance, using the headers related to authentication (e.g., consumer, user) in order to further segment metrics.

First a question, why do you want metrics on consumer level? What metrics would you like that make sense at that consumer level in Prometheus for your use case?
This has come up a few times and in some specific use-cases, it makes sense but often not. Prometheus is a monitoring solution and not an API analytics solution, although it's increasingly being used to store metrics related to all sorts of things now.
My specific concern here is cardinality of data. If you've a few 100 services in Kong and then a few thousand consumers, the number of metrics you're tracking are going to explode. This can lead to Prometheus scrapes becomes expensive, for both, Prometheus and Kong. Also, Kong getting more resource intensive if as the cardinality grows.

For instance, certain APIs may need to segment metrics based on dimensions that are only known once the upstream service processes the request (e.g., some ID that is retrieved from the application's database). This could be implemented by having the plugin also process the response phase, and the value on the response headers for this purpose.

On a first read, this seems like a specific use case, meaning the API gateway shouldn't be taking care of it. This also seems like an application specific metric, meaning, the application should be instrumented to record the metrics. But, as is known, this takes up a lot of dev time and is often buggier than to injecting a header, hence Kong could certainly help here.
Again, cardinality would be a concern, but we will have to take care of it using documentation.
Thoughts?

Agree with the cardinality issue, and as you mention this should be solved with documentation so that users can make an informed decision (higher level metrics vs. granular metrics at the expense of slower scrapes).
In our particular case, we need to ensure that we meet our SLA on a per-consumer basis and hence we need to capture metrics related to API latency by consumer in order to do that. Bear in mind that our "consumers" are not end users or developers but tenants instead (i.e., companies), so it's a different scale that we can manage. Kong already has the data for the different aspects of latency (kong, request and upstream) and these would be hard to capture at the application level.

Agree with the cardinality issue, and as you mention this should be solved with documentation so that users can make an informed decision (higher level metrics vs. granular metrics at the expense of slower scrapes).

Just wanted to point out that Kong itself will also be more hungry for resources as more metrics are added.

In our particular case, we need to ensure that we meet our SLA on a per-consumer basis and hence we need to capture metrics related to API latency by consumer in order to do that. Bear in mind that our "consumers" are not end users or developers but tenants instead (i.e., companies), so it's a different scale that we can manage. Kong already has the data for the different aspects of latency (kong, request and upstream) and these would be hard to capture at the application level.

I see and I've come across this use case and it makes sense.
Feature requests that I see coming in from this discussion:

Configurable consumer level metrics (on all metrics or should that be configurable as well?)
Configurable labels that can be injected using headers (on all or configurable list of metrics?)

This is likely going to be an extensive change, so what part would you want to focus on @jmdacruz ?

@jmdacruz This path sounds sane to me but there is a technical blocker currently in the plugin. The metrics are defined statically and are created when Kong starts. It is not possible to dynamically create metrics or change the number of labels in the metrics currently. It is possible with a little bit of effort. Let's start with adding a header value as a label that is injected for all metrics.

@hbagdi Assuming I should branch from next, correct? I went ahead and created a PR with an initial idea for this (pretty rough). Any pointers for running the tests locally?

Do you already support to add more static labels using DBLess configuration?

+1
We use rate limiting plugin and limit request per user - would be great to see a metric that reflects request per user to create something like "top talkers" dashboard.

We have similar use cases with the rate-limiting and auth plugin. It would be nice if we can see the metrics by Consumer.

+1.
We also have similar usecase with rate-limiting. It would be nice if we could see the configured rate limit and the remaining quota for each consumers routes


Mishandling of http request content bytes in Python 3

https://github.com/paragbaxi/qualysapi/blob/c6a0e2216d14541109af6597ed2c3e107cfae27c/qualysapi/connector.py#L320
In python 3, this should read either
response = request.content that will return bytes
or if you absolutely want unicode repr:
response = request.content.decode() that will return a python 3 (unicode) string
why is this important ?
well right now, an api call in python 3 returns an unicode value of the python bytes string representation of the bytes returned by the request.
something like "b\'this is from qualys\\nwith escaped escape characters\\r\\nNot easy to parse.\'"
You can notice the leading "b\'" and ending \' that are problematic also.
instead of the expected b'this is from qualys\nwith normal escape characters\r\neasy to parse.'

If you throw in a PR, I can merge it.

Hi, I don't think this is 100% solved.  I've just tried some of my code with Python 3.5, and I initially got the error in this issue.
I then installed master, and was then getting:
  File "src/lxml/objectify.pyx", line 1801, in lxml.objectify.fromstring
  File "src/lxml/etree.pyx", line 3213, in lxml.etree.fromstring
  File "src/lxml/parser.pxi", line 1872, in lxml.etree._parseMemoryDocument
ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.

Common talk out there suggests it should be returning request.content instead, but this then returns a bytes string, which then chokes qualysapi thusly:
  File "/home/jlingohr/.virtualenvs/qualys3.5/lib/python3.5/site-packages/qualysapi/connector.py", line 325, in request
    if not ('<responseCode>INVALID_REQUEST</responseCode>' in response and
TypeError: a bytes-like object is required, not 'str'

So I guess if .content is used, more patching is needed in the other in comparisons etc to internally convert back to something resembling a string :/

@lingfish , should I revert #42?

I don't think so; it seems to be a move forward.  The issue is that other stuff in your code needs to be adapted I think.
I've gotten around this for the moment by doing:
    response = qapi.request('/api/2.0/fo/knowledge_base/vuln', {'action': ...
    root = objectify.fromstring(response.encode('utf-8'))

This is my first real journey into Python 3, and strings etc.  If I'm to help in any PR's etc, I'd need time to grok this new (old!) world of 3.
Maybe @trolldbois can assist?

Looking at this myself. I have zero history and also just picking up python as my language to learn this year. So dont have the full story or background of the move to v3.x but thats what I am targetting.
I was getting (some) responses as byte strings that included the b'' markers, which was breaking lxml objectify fromstring() calls as it had a leading b' rather than starting with a <.

Playing with the encoding to make response a byte object broke some of the code when response is first assigned in the request method of connector.py
Changing the return line to read:
        return response.encode('ascii')

return a simple byte string that seemed to make the objectify fromstring() method work without needing to re-encode. However, this means the return is not a regular string.
I guess a choice needs to be make, should request return a string or a byte object?
:)

Just to be clear here, pull #42  is fixing the issue documented in this issue #40.
Specifically, the code previous was : return str(response.content), where response.content is a byte string,
therefore str(bytesting) returns the string representation something like: "b'<....>'" , which is obviously not ok, because there is no standard way to go back to the original bytestring from there.
https://github.com/paragbaxi/qualysapi/issues/40#issuecomment-425693167 @lingfish comments is fixed in his next comment. Just encode the response.
https://github.com/paragbaxi/qualysapi/issues/40#issuecomment-426949713 by @lingfish is correct,
I would advise users of lxml objectify to encode the unicode string response to get the bytestring that lxml wants.
If you use xmltodict instead, it take unicode string instead of bytestring, so not need to encode the response.
Nothing need to change on top of #42.
Everything works.

The approach is great.
New to python and just trying to tie together some bits with QualysAPI. The reason lxml seemed relevant is that it is referenced in the examples heavily. There are a number of calls in qualys-example.py.
I'll update it and submit a PR


Implement globalnet ingress and egress features

This patch implements the following

Spawns Globalnet Controller on the GatewayNode
Initializes Globalnet Controller only when the Cluster uses kubeproxy
Programs necessary egress rules for PODs
Programs necessary ingress rules for ClusterIPServices

Signed-off-by: Sridhar Gaddam<EMAIL_ADDRESS>

This change is

Ignore the merge-blocked X , reviewable-- :-/


Use commander.js for cli scripts

Arcs has a number of node shell scripts.  Each one is bespoke and adding a new script or options is not well defined.  Here are some issues with the current state

Scripts are using node require instead of modules
Lots of manual processing of argv
No help output
Difficult to discover which commands are available.
Inconsistent help output.
Scripts may or may not work on windows.

Here is a non-exhaustive list of scripts in the repo:

tools/sigh.js
dataflow/cli/flowcheck.js
tools/spotify-importer.js
various node deploy.sh/serve.sh shell scripts

A desirable end state would satisfy the following requirements

A single arcs command that you can easily execute.
Git style subcommands that extend the core.
A consistent method of writing and linking cli code into a common whole.
An Arcs developer can quickly and easily add a new command line option or sub command without much effort using consistent idioms (es6 modules, typescript, etc.)
A particle/sdk developer can quickly download the arcs environment, including the command line tool and have easy to understand help options and ability to execute.
The tool works consistently across platforms.

I evaluated available options and found that there are three main tools that are in active use in the Node ecosystem:

yargs 29m weekly,
commander 23m weekly, no deps
minimist 25m weekly, abandoned.
Write our own.

The following factors were weighed:

The sigh.js tool in Arcs does use minimist for command line flag parsing only.
All modules are available in internal repos.
minimist has not been updated in 4 years.
yargs has more feature but requires a number of transitive dependencies

To that end I propose that we adopt commander as our default CLI solution for running code in node environments.
A prototype exists here:
https://github.com/lindner/arcs/commit/714a11a15b8a1e96c3bc61350d788b642da4176f
After build and npm link you will have an arcs command in your path.  There is a main arcs executable and each subcommand is installed as arcs-subcommand
Running arcs --help shows
Usage: arcs [options] [command]

Arcs System

Options:
  -V, --version  output the version number
  -h, --help     output usage information

Commands:
  init           Initialize Arcs
  status         Show the arcs status
  export         Export Repo Contents
  ingest         Ingest Data into Arcs
  flowcheck      Analyze and Diagnose Dataflow
  manifest       Handle Manifest files
  help [cmd]     display help for [cmd]

Here's an example of src/cli/arcs-manifest.ts
#!/usr/bin/env -S node --require esm --require source-map-support/register
// ...
commander.command('parse <filename>')
    .description('Parse a Manifest')
    .action(async (filename) => {
         // ....
    })
    .parse(process.argv);

Would appreciate comments on this proposal.  Assigning to owner of infra Raul.

Thanks for exploring this! It sounds interesting and I can see it being useful during exploration of data import and making it easier for folks to learn about how to install, update, and work with the Arcs system. I defer to @raulverag but wanted to briefly note some initial thoughts:

I like the DSL-like way in which the commands are defined, it would make it much more pleasant to add new scripts or extend existing ones.
Probably obvious but I suspect we may not want to move all of the scripts under an overarching arcs prefix. Some of these tools are quite disparate -- early steps in what will eventually probably be build-time-only dataflow analysis, a utility to test parsing a manifest, a single demo's one-off utility script to hack data import, and so forth.
It's less clear to me how this fits with sigh specifically and our build system in general, using an overarching arcs command to kick off the equivalent of a make or build step feels strange.
The unix pattern of --help and individual scripts feels poignant to move away from vs having to read through a hierarchy of command info with arcs help command which I assume this would lead to, but maybe I'm dating myself.
Having to run npm link is a bummer, we've had discussion on limiting use of/dependence on npm or even moving away from using it in time.

@shaper thanks for the feedback.
I think we can address your concerns:

sigh remains as-is.  We just convert the internal structure to es6 and use commander.js
As for npm link -- we can still create shell script wrappers in common places as need be.  It's just a convenience of putting arcs in the global node path.
Or, since the js files have a shebang and can be executable you can just run them in the build directory on Mac/Linux.
One-off scripts and things like that could be included in an arcs-dev command which can be run as arcs devor arcs-dev  This is what Perkeep uses.

Also note that I took some inspiration from the js-ipfs CLI.  It's well thought out and works nicely.

Also of note is that if we implement a CLI system we can drop usage of npm start

This is an interesting direction to think about going in; I don't see a strong value proposition in doing it now. Specifically, this doesn't seem to contribute to our current goals. While I agree with @shaper that this would make an exploration of data import easier, I can't see how that contributes towards the current goal of a data import MMVP.
It isn't clear that doing this would actually have much impact on onboarding users in other ways; particularly, it sounds like sigh would remain basically the same as it currently is from a usage perspective.
When we do have spare capacity to move on something like this (or if you decide you'd like to do it as a 20%-style thing) I think you will need to ensure that we don't at any stage support multiple different command-line arg parsers, to make sure we don't take a step backwards in this regard.
Some specific questions/observations:

are you going to retire the rest of the npm commands at the same time? Re-regularizing our build processes would be an onboarding improvement.
I agree with Walter that our dataflow analysis tool shouldn't be moved to an arcs rooted command
why do we need a utility for parsing a manifest?
why should deployment / serving commands be somewhere separate from the build commands in sigh?

Another reason I think we should hold off on this is that we will relatively soon need to start distinguishing clearly between tools and docs for people like ourselves who are working on the Arcs system, and tools and docs for developers of Particles and Recipes. Piotr even mentioned an Arcs Developer Kit, which I think makes a lot of sense. We will need this for onboarding 3P developers, and it will be important to get it right early, as a clunky early ADK can be a disaster for adoption. So while I agree that our current set of tools is a bit messy, it doesn't cause very much friction, so I would suggest we clean it up as part of a broader design that includes the tools to be included in an ADK.
Also, am I the owner of infra? I don't mind, but I don't particularly recall signing up for this.

Okay, will defer this for now.  (And @raulverag with your sigh and build expertise it seemed that you were owning infra, sorry!)
That said, I did recently need to fix the spotify importer so I converted it to a command line tool using some (but not all) of the above concepts:
https://github.com/PolymerLabs/arcs/pull/2870
One nice part is that it doesn't require sigh to set up the environment (at least on Unix/Mac)
I do hope that this exploration is useful and that we learn something from the effort.


nfa: support converting into a DFA and inverting

After implementing #1 and adding the NFAs we are allowed to eliminate some of the existence quantifiers quite easily. Though we still don't have enough to eliminate negations and any quantifiers. The method to turn NFAs into some DFAs and allow safely inverting the final states is needed for it.
Two new functions are suggested to be implemented:
val make_determenistic: Nfa -> Dfa
val invert: Dfa -> Dfa

Инокентий, please, check this issue and ask if you need any help

Solved in MacadamiaSolver@fda2523


warning message wit swift apis

Host Sort by host name (ascending)Sort by host name (descending)	Service Sort by service name (ascending)Sort by service name (descending)	Status Sort by service status (ascending)Sort by service status (descending)	Last Check Sort by last check time (ascending)Sort by last check time (descending)	Duration Sort by state duration (ascending)Sort by state duration time (descending)	Attempt Sort by current attempt (ascending)Sort by current attempt (descending)	Status Information
openstack-service-checks-0
Ubuntu Linux
openstack-service-checks-0-swift_admin
WARNING	2019-03-29 19:43:01	2d 7h 19m 39s	4/4	HTTP WARNING: HTTP/1.1 400 Bad Request - 505 bytes in 0.023 second response time
openstack-service-checks-0-swift_internal
WARNING	2019-03-29 19:43:17	1d 9h 41m 23s	4/4	HTTP WARNING: HTTP/1.1 400 Bad Request - 505 bytes in 0.021 second response time
openstack-service-checks-0-swift_public
WARNING	2019-03-29 19:40:32	2d 7h 17m 8s	4/4	HTTP WARNING: HTTP/1.1 400 Bad Request - 501 bytes in 0.025 second response time

(by narindergupta)
check swift_public
The following header was added automatically by juju
Modifying it will affect nagios monitoring and alerting
servicegroups: bootstack
command[check_swift_public]=/usr/lib/nagios/plugins/check_http -H  -p 80 -u None -S

(by aluria)
Hello Narinder, is this still an issue? I see this has been fixed at commit bd275a7. "swift_check_params" config parameter defaults to "/" but allows extra parameters.


Compute the average speed and slope for each segments during a run

***This was not in our initial issues list (in sprint 1). As the project progress, our team founded it useful to add these features for our part (sprint3).
Feature Request:
Allow users to interact directly with the map interface by clicking on a specific segment on the run to view its estimated average speed and the slope. This provides a more intuitive and user-friendly experience.
Expected Outcome:
Upon selecting a segment on the map, users will be presented with real-time estimates of the average speed and slope for that specific segment.
Alternative Solution:
None
Verification:
Verify whether the real-time average speed and slope  for the segment by tracking the user's is accurate in comparison to the estimated waiting of the application.

Current Progress:
We've managed to showcase average speed and slope of segments.
To-Do List:
Retrieve chairlift information from OpenTrack services and present it accurately within the table interface.

The OpenTrack services have not been completed by the end of sprint 3


Documentation at osc-tiny.readthedocs.io is outdated

The documentation home page says "© Copyright 2022, Andreas Hasenkopf Revision da892206."
That commit dates back to September 2023, and there have been 19 commits and 5 releases since then (including the addition of new extensions, which as a result appear undocumented).

Build of docs fails because the theme is unknown...


Added CSS class to logo block

Adds a CSS class to the logo in the extension so it can be styled separately in the doc build.

Okay I've confirmed this works and doesn't affect the tests so I'm merging.

Could you paste the CSS rule here you used for 'logo-block' for future reference and in case anyone else needs it?

div.logo-block {
	display: inline-block;
}

Thanks!


open tutorial button on help page will now open "/" if user is logged in

Description ✏
Closes https://github.com/trypear/pearai-app/issues/281
What changed? Feel free to be brief.

open tutorial button will now navigate to "/" rather than "onboarding" if user is already logged in
tutorial is still opened

Checklist ✅
[✅] I have added screenshots (if UI changes are present).
[✅] I have done a self-review of my code.
[✅] I have manually tested my code (if applicable).

@Alvarixxs  hmm i tested this and it didnt work for me :(

Did it work for you?

hi, what doesn't work?
Is the problem onboarding not showing when "/onboarding" has already been visited? We save a variable in local storage which makes sure "/onboarding" cannot be visited again once it has been completed. I can change that.

sorry i shouldve been more specific.
by not working i mean that
login -> open tutorial -> it goes to the onboarding page

I believe that works for me, I'll send a vid.

Screencast from 27-08-24 20:40:16.webm

gimme a sec

yea this does not work, having difficulties extracting user authentication from within the gui of the app

nw good try

ill put this as help wanted


src/Mayaqua/cpu_features does not contain a CMakeLists.txt file. Compile failure

Hi, there!
Thank you for using SoftEther.
Before you submit an issue, please read the following:
Is this a question?

If the answer is "yes", then please ask your question on www.vpnusers.com.
The issue section on GitHub is reserved for bugs and feature requests.

If the answer is "no", please read the following:

We provide a template which is specifically made for bug reports, in order to be sure that the report includes enough details to be helpful.
Please use or adapt it as needed.

Prerequisites

[ x] Can you reproduce?
[ x] Are you running the latest version of SoftEtherVPN?

SoftEther version:
Commit 93db70656d8925fe96a2790586982babb62124c1
Component: [Server, Client, Bridge, etc.]
Compile
Operating system: [Windows, Linux, BSD, macOS, etc.]
Ubuntu 16.04 from digital ocean cloud provider
Architecture: [64 bit, 32 bit]
64 bit
[In case it's a computer with known specs, such as the Raspberry Pi, you can specify it omitting the details.]
Processor: [Specify brand and model. Example: AMD Ryzen 7 1800x]
Description
[Description of the bug]
[What you expected to happen]
The code compiles
Actual behavior:
Compilation error
Steps to reproduce

Follow the steps on https://github.com/SoftEtherVPN/SoftEtherVPN/blob/master/src/BUILD_UNIX.md
Receive a configure failure and can not compile the code.

Error:
Welcome to the corner-cutting configure script !

-- The C compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found Curses: /usr/lib/x86_64-linux-gnu/libcurses.so
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.2g")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8")
CMake Error at src/Mayaqua/CMakeLists.txt:22 (add_subdirectory):
  The source directory

    /root/SoftEtherVPN/src/Mayaqua/cpu_features

  does not contain a CMakeLists.txt file.

-- Configuring incomplete, errors occurred!
See also "/root/SoftEtherVPN/tmp/CMakeFiles/CMakeOutput.log".
See also "/root/SoftEtherVPN/tmp/CMakeFiles/CMakeError.log".

This is a generated directory. Right?

git submodule init && git submodule update

Cool. Could this be added to linux installation documentation please.

https://github.com/SoftEtherVPN/SoftEtherVPN/pull/621


cluster status always reports 'running'

amp cluster status reports running status despite destroying a cluster.
$ amp cluster status
[user neha @ localhost:50101]
cluster: running

and also Error: only cluster operations with '--server=localhost' supported in this release on remote clusters.

@ndegory Looks like this issue has been handled as part of PR #1593.

Reopening the issue as the current status command does not provide any details of whether a cluster is available or not.


Add fallback height for pagination element

Shortcut
Story: https://app.shortcut.com/cartoteam/story/320946
Autolink: [sc-320946]

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 4 (0.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.09%) to 71.311%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js
0
4
0.0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.09%

Covered Lines:
2210

Relevant Lines:
2863

💛  - Coveralls


Convert Texture2D to Byte array

@charan-vendra there's a BP node built into UE that will do the conversion for you:

@mikeseese is it available in 5.3, because I couldn't find it, also do I need to enable any plugin?

@charan-vendra I'm not sure, I was in 5.4 when I found this node. I'm now AFK. I googled this for you and found someone recommending this free plugin that might help you out: https://www.fab.com/listings/0aadd41b-c02d-4f63-9009-bffad0070ebc
Regardless, I don't plan to add support for this to the plugin as this plugin doesn't deal with file formats or parsing. It's up to you to handle that. Best of luck!

Hi @mikeseese Thank you so much for your response, I am just trying to get this done myself, I don't want to bother you too much.
I tried to find the node in 5.4 too with no luck... I also checked out the plugin, but couldn't find a node that can help me convert from Texture2D to bytes.
I understand if you can't help anymore, regardless thanks for trying to help.

@charan-vendra there's a BP node built into UE that will do the conversion for you:

It would really help me even if you just told me how you found this node, because that is the exact node I am looking for 🥺

I just went into the event graph, right clicked, and typed texture2d bytes and eventually found that. Typing "to bytes" should show this node. Perhaps there's a plugin installed in 5.4 by default or one of my other plugins is enabling it. Check the plugins for blueprint utilities or something like that.

I'm AFK, sorry. You're on your own from here.


git-cola: 2.2.1 -> 2.3

Things done

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

[ ] NixOS
[ ] OS X
[x] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Sorry, this was already merged.


Hey I just checked your code, can you remove localeResolutionCallback and use localeListResolutionCallback ?

@imkarthikb  Thanks, yes it now works. Is there any reason for that?


dependencies in jupyter notebooks go unchecked?

Hey, it seems that dependencies in jupyter notebooks do not get checked by tach, is that correct? Seems like a bug if this is correct.

@gwdekker This is correct. Right now, Tach expects that it will be checking imports in Python source files only, and this assumption exists throughout our other commands.
The core use case we have built Tach for is Python application development, and we have relatively little visibility into how folks might use it with Jupyter Notebooks. Could you say more about your use case?
Functionally, it seems like we should be able to support most of Tach's functionality on notebooks by just condensing all of the Python code, but AFAIK features like interfaces wouldn't make sense since you cannot import from a notebook. There might also be complexity when we translate the filesystem path to a module path (naming conflicts seem possible if a sibling Python file shares the name of a notebook), but this seems solvable too.

Sure! My code base is a monorepo which hosts several applications. It als contains a few jupyter notebooks, some of them for ad-hoc analysis, some of them we use through Voila as an ad-hoc dashboard, some of them on Voila even work as a very basic UI to our application. So the notebooks are just as much part of my modules as plain python files are. Therefore, the expected behavior for me would be that import statements in jupyter notebooks would be treated the same way as import statements in plain python files.
Potentially an easy way to achieve this would be to hook in nbconvert --to script into your system somehow?


there is not a safe_require_file api.

When I use the require_file api in my project, it will call lua_error(L), if the file is not exist.
object safe_require_file(const std::string& key, const std::string& filename, bool create_global = true, load_mode mode = load_mode::any) { 		...                 no lua_error 		}
if there is any function like this?

... Huh. You know, I should probably add this. At the moment, you can get around this by using require without the _file bit, and pass in the script blob directly.

Thanks a lot. I write a function with no lua_error by my self. And now, it's running in my project.


Java Target Integration

Integrate support for Java fuzzing.
The tentative steps:

Add a set of java test cases with different classes, packages and library usage to demonstrate basic support for java projects.
Add static call graph generator tools for the post-processing. Possible choice is SOOT
https://soot-oss.github.io/soot/
Add additional logic to process data from java-callgraph.
Alteration of fuzz-introspector code to accept java call-graph structure with cross libraries and classes support
Consider coverage report generator for Java code project, Possible choice are modified version of JCov or JaCoco https://github.com/jacoco/jacoco / https://github.com/openjdk/jcov
Demonstrate full end-to-end coverage report and static call graph generation features
Alteration of result from sub-modules to ensure if fit the needed input data structure for fuzz-introspector's further processing.

PR #537 aim to create base java testcases for step 1.

PR #539 aim to manage testcases and add build script for the test cases. It also import necessary jar library for the built and calling to java-callgraph.
Handling step 1 and 2 shown above.

In parallel with the callgraph we should look for the other program attributes fuzz introspector needs, such as information about:

instructions in a function
branches
basic blocks
source code lines
etc.

It probably manifests a bit different in comparison to C/C++ so we may need to look for alternative and similar data points.

JVM coverage report integration has been done and it has been bridged with OSS-FUZZ. Next step will be testing and bug fixing. Some minor bug fixing will be solved in Issue #629.

Well done getting this through @arthurscchan -- super excited to see this.

Awesome stuff!


The "blank" album and artist images don't work

It was part of migration to the new Electron API. There's an error in the logs from the main process:
TypeError [ERR_INVALID_STATE]: Invalid state: ReadableStream is locked
    at new NodeError (node:internal/errors:399:5)
    at setupReadableStreamDefaultReader (node:internal/webstreams/readablestream:2156:11)
    at new ReadableStreamDefaultReader (node:internal/webstreams/readablestream:823:5)
    at ReadableStream.getReader (node:internal/webstreams/readablestream:346:14)
    at Object.newStreamReadableFromReadableStream (node:internal/webstreams/adapters:500:33)
    at Function.fromWeb (node:internal/streams/readable:1403:27)
    at AsyncFunction.<anonymous> (node:electron/js2c/browser_init:2:58125) {
  code: 'ERR_INVALID_STATE'
}

Fixed with https://github.com/kevinfrei/EMP/pull/78


Any plan to support bfloat16?

@ys-2020, could you please take a look at this issue when you have time? Thanks!

@ys-2020 Thanks for your quick reply and great work，i found that model with float16 will encounter loss nan problem in certain scenarios. Maybe it is caused by underflow/overflow. So this a good choice to support bfloat16 in training.

@pycoco . Hi! Thank you for the feedback. Can you provide more details about the 'certain scenario'? Actually we have launched a lot of training jobs on segmentation/detection tasks and many different datasets, and we didn't meet the nan loss. (Also, you can change to fp32 as a backup plan.)

@ys-2020 In my scenario, i use voxel size [0.05, 0.05, 0.15], range [-100.0, -100.0, -1.5, 100.0, 100.0, 4.5] and own dataset. FP32 is normal but training time is too long. Actually i use 'spconv' now, maybe i should adapt to our library and have a try(but i think the library is not the reason of the problem).


Get task name from RunToken

Hi there, just tried out your library and it works beautifully. Many thanks! Say, it would be great to have the task name available from the RunToken, then you can access it in the actual function that is being run. Would that be possible? If you give me some pointers I could do a PR. Thanks!

Hi wackazong. There is no one to one relationship between run tokens and tasks. The same run token may be shared between multiple tasks, and a single task may use several different run tokens. That being said, in practice a task has one "primary" run token, and the vast majority of run tokens are attached to exactly one task.
I think a reasonable way to implement what you want is to also store a name in a RunToken, as Cow<'static, str>.
An outline for a pr implementing this would be.
For RunToken:

Add a name: Cow<'static, str> field.
Change the new to store the empty name.
Add a with_name(name: impl Into<Cow<'static, str>>) -> Self constructer .
add a pub fn name(&self) -> &str, accessor.

For TaskBuilder:

Change the type of the run_token field to Option<RunToken>
Update set_run_token to store a Some(run_token)
Change the run_token access in create to self.run_token.unrwap_or_else(|| RunToken::with_name(self.name.clone())


Run Karpenter Controller as single replica

We are considering running Karpenter as a single replica.
As far as I can tell it scales vertically and the additional replicas just take over in case of failures. Is this correct?
If we can accept the Xs it takes for a controller restart, there should be no hidden downsides?
Is this assumption correct?
Does information exist on how karpenter does HA and scaling?

This question is probably more appropriate for the providers than the library, but I can speak for AWS. You're correct, the additional replicas are only for failover, and there's nothing stopping you from running a single replica. That being said controller restarts are not the only reason to run multiple replicas, e.g. protecting against AZ outages. This is why the default configuration shipped with Karpenter's helm chart includes a zonal anti-affinity.

/triage accepted
/kind support


[17.3] UTF-8 string literals

Add syntax to create utf-8 string literals in C# code and have them automatically encoded in their byte[] format. Changes will be required in the language reference, and some string tutorials.
Feature specification

The article documenting this feature should have Utf8StringLiteral_CSharpKeyword per https://github.com/dotnet/roslyn/blob/e2c555e116bb7cb950f82c25430f6aa466c8a33d/src/VisualStudio/CSharp/Test/F1Help/F1HelpTests.cs#L977-L989