Add history packet for analyzing EPS telemetry binary data

Telemetry "Data Packet Stream" packets received using the EPS File Download function vary in parameter content depending on the type of telemetry being acquired. These packets may also be split across multiple CSP packets due to data size limitations. However, in the current Yamcs setup, distinguishing these packets is challenging, and they are defined simply as binary data.
To address this, we have added a function that reassembles the binary data series received by Yamcs on the console as individual telemetry data and pseudo-transmits it back to Yamcs using unused CSP addresses.
To differentiate these packets from actual communication with components, "HISTORY" has been added to the subsystem definition.

We will discard this PR because, even with this method, we cannot save the EPS history in Yamcs with the correct timestamp.


cyanite reprocessor doesn't drop on mining

I tried to move my cyanite reprocesser and it didn't give it back when I mined it. On version 0.4.0rc11

I've also hit this issue, with 0.4.0rc10 on Direwolf20 1.7 (Forge is  <IP_ADDRESS>0, CoFHCore is 3.0.0B7-35). Any vanilla pick and any Tinker's Construct pick will break the block, but not drop it. A standard Buildcraft wrench and Yeta wrench will rotate the block, but shift-click does nothing. Crescent Hammer works fine. Let me know if you need other info or want a new ticket opening. I can reliably reproduce it in a test world.

That's good information, thanks.


Installing pexpect on VSD adds Internet access requirement that can be cumbersome

https://github.com/nuagenetworks/nuage-metro/blob/78a2adb8638c483336575a11381863c85512d254/roles/vsc-vns-deploy/tasks/main.yml#L35
Similar items exist for VStat to enable VSS. This implies that Internet access must be available from VSD, which isn't always possible

This code has been removed. Closing.


Update Plugin.cs

Hello, I am going to wait until my 2.0.0 release before doing pull requests. Feel free to submit issues in the mean time prior to creating a pull request. Issues let me know what’s up and what people want solved.

Update the request

Change the Branch to Develop please. Then I will merge it in and it will be included in the next version release.

okay, thanks.


Respect metered connections on Windows 10

VSCode Version: 1.2.1
OS Version: Windows 10

Steps to Reproduce:

Connect to a Wifi network
Set the connection type as metered (Wifi > Advanced Settings > Turn metered connection on)
Open Resource Monitor
Switch to the network tab
Start VS Code
Notice VS Code updates happen normally, and there is general ongoing network usage from code.exe and git-remote-https.exe

VSCode should respect metered connections, as sometimes you may need to tether to your mobile to get some work done and it would be nice if it has 0 network usage when the connection was metered. In the very least it should not download any updates over metered connections.

Likely needs support from our framework to detect.

I am from Venezuela and many times I must use the data of my phone due to the bad connection to internet. This feature would be great. 😢


Update CONTRIBUTING.md to fix typo

Fix typo

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

@srdg Awesome! Thanks! Congrats on your first open source contribution to this repository!


LUCENE-9992: write empty vector fields when merging

Hmm sorry for the force-pushing, I rebased locally and ... git is hard. I'm not sure what I was thinking before; I actually had a change that did not special-case the empty case, and yes it just seems to work. Why was I seeing this subs.size() being 0 I do not know, but I can no longer reproduce

I hit the issue locally just running ./gradlew test. A second time the tests pass.
I think it isn't great that simple base-cases like empty are only exposed in random test failures (although: better than nothing!). So I am curious if there are any ideas on improving testing.
I think there are a few challenges:

filenames/extensions used should be codec-private/impl, so we try to avoid hardcoding them
most codec tests are in base shared generic classes in test-framework: a good thing
new abstractions to the index (*Formats) are added rarely, so all the implicit/unwritten "rules" are forgotten by everyone.

So today, nobody tests simple stuff like: should a filename exist or not? And it leaves us with too many unwritten assumptions about how Formats should behave in the corner cases.
Maybe it should be as simple as various BaseXYZTestCase accepting a list of used file extensions as an abstract method or parameter? Then e.g. BaseDocValuesFormatTestCase could have some simple unit tests making asserts about e.g. what happens wrt filenames when there's no docvalues, or stuff gets merged away, or whatever the cases are? Maybe we should do it for every part of the index?

@rmuir I hear you about the test coverage. It's surprising this wasn't already covered. I thought I had looked at a coverage report at some point, but that isn't perfect of course.Adding a list of filename extensions to look for seems like it could help.


the-1710-pack

Hey ho,
long time no see ;)
well this time a similar issue... I am trying to get the modpack the-1710-pack to work.
Since I got the TPPI-Modpack to work with the FTB-settings, so I tried the same with this one:
https://www.technicpack.net/modpack/the-1710-pack.453902
This is my docker-compose.yml:
version: '3'
services:
  minecraft:
    container_name: mc_mod
    image: itzg/minecraft-server
    environment:
      - EULA=TRUE
      - TYPE=FTB
      - FTB_SERVER_MOD=http://solder.endermedia.com/repository/downloads/the-1710-pack/the-1710-pack_0.9.8.zip
      - FTB_LEGACYJAVAFIXER=true
    volumes:
      - /home/nebukadnezar/data/games/minecraft_mods/the-1710/data:/data
    ports:
      - 25566:25565
    tty: true
    stdin_open: true

the point is, that the container is just suddenly restarting while loading ...
I have no idea why. I attached to logs, cause they are so f* long *-.-
the-1710-pack.log
maybe its a naming thing. I dont know.
Idea:
add a servertype "technicpack" which just unpacked and run the prepacked server.jar
Best regards,
Avendretter

Along the lines of your suggestion, maybe I need a generic option to say “skip the random, custom startup script and just launch the server jar like how the container does for non-FTB/Curse”

...now that I got a chance to look at the logs, it actually looks like the health check is killing the container since it not responsive within the expected amount of time.
If you look at https://docs.docker.com/compose/compose-file/#healthcheck you'll see there's options to increase the start period or disable health check entirely.
For reference, this is the default healthcheck command (which is using the default start period):
https://github.com/itzg/dockerfiles/blob/master/minecraft-server/Dockerfile#L23

ah okay I will try it out and let you know!

Worked! Thanks alot ... maybe disable the healthcheck if mods are active?

Glad to hear that fixed. Since the healthcheck is an external-to-the-container thing, I don't there would be a way to auto-disable; however, I'll use this issue to remind me to add a section to README about this scenario.

perfekt =) thanks!


ci: Use GITHUB_OUTPUT envvar instead of set-output command

save-state and set-output commands used in GitHub Actions are deprecated and GitHub recommends using environment files.
This PR updates the usage of ::set-output to "$GITHUB_OUTPUT"
Instructions for envvar usage from GitHub docs:
https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-an-output-parameter

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

@arunsathiya thanks. Would you be able to sign the CLA?

Thanks @dsherret, I thought I had but it should be sorted now!


Don't set relative positioning for the container div

Overriding that style manually causes unnecessary hassle when different positioning is wanted (and it broke my layout after converting an existing UI component to be resizable).

@maksis thanks for your report. porition: relative is necessary for resizer.


Missing permissions/slots

Hi,
First: Thank you for providing the homeassistant snap, it is great having!
Unfortunately, I'm forced to install the snap in devmode which is cumbersome since (among other things) it doesn't automatically update.
The reason for that is that the snap appears to miss some slots for my integrations. E.g., raw usb access (for my weather station), raw serial port access (for my leds), raw network access (for wake on lan).
Could you add those snap slots?

Hi,
Sorry, but I'm having some problems with the remote builds lately and can't figure out what the problem is.
However, the package for the architecture amd64, ppc64el and armhf in the edge channel should have the serial-port plug, but the arm64 build failed for unknown reasons - and I haven't been able to build anything successfully after.
Hoping for a solution soon. (Just now trying to build v2021.5.3 - fingers crossed)

Oh, I see!
fingers crossed

FYI, I also had some snap-store connections issues yesterday. The culprit is most likely that yesterday, they finally resolved the Ubuntu 21.04 ship-blocker and publicly released it. The 21.04 downloads apparently affected the snap store availability. Maybe you just need to retry publishing today?

Hi again,
It looks like the issue I had was related to freesms and that it's picked up by the core developers few hours ago. Seems like the fix will come with v21.5.5.

sounds good, thank you!

@jmgiaever thank you! I installed it and usb devices now work after manually connection the plugs.
However the network plug is still missing:
2021-05-20 20:11:49 ERROR (MainThread) [homeassistant.components.dhcp] Cannot watch for dhcp packets: [Errno 13] Permission denied
The snap documentation is not very sophisticated but I assume you'd need to add the network-observe connection to the snap. Could you do that?

Hi,Yes. I haven't added any network plugs as I don't want to bloat the package with unnecessary plugs. I'll consult someone what i might add, or you can give me an example what you're using (e.g which component) and I'll figure it out. // Joachim

Could you be kind and install snappy-debug on the device (sudo snap install snappy-debug) and run the following command to see which plugs it recommends:
sudo journalctl --output=short --follow --all | sudo snappy-debug

Ha, I already mostly guessed the right steps:
= AppArmor =
Time: Apr 19 01:50:50
Log: apparmor="ALLOWED" operation="open" profile="snap.home-assistant-snap.home-assistant-snap//null-/usr/bin/ping" name="/etc/ld.so.cache" pid=2931817 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
File: /etc/ld.so.cache (read)
Suggestions:

adjust program to read necessary files from $SNAP, $SNAP_DATA, $SNAP_COMMON, $SNAP_USER_DATA or $SNAP_USER_COMMON
adjust snap to use snap layouts (https://forum.snapcraft.io/t/snap-layouts/7207)
add 'system-files (see https://forum.snapcraft.io/t/the-system-files-interface for acceptance criteria)' to 'plugs'

Don't really understand the following suggestions, though:
= AppArmor =
Time: Apr 19 01:50:50
Log: apparmor="ALLOWED" operation="open" profile="snap.home-assistant-snap.home-assistant-snap//null-/usr/bin/ping" name="/etc/ld.so.cache" pid=2931817 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
File: /etc/ld.so.cache (read)
Suggestions:

adjust program to read necessary files from $SNAP, $SNAP_DATA, $SNAP_COMMON, $SNAP_USER_DATA or $SNAP_USER_COMMON
adjust snap to use snap layouts (https://forum.snapcraft.io/t/snap-layouts/7207)
add 'system-files (see https://forum.snapcraft.io/t/the-system-files-interface for acceptance criteria)' to 'plugs'

thank you!

Log: apparmor="ALLOWED" operation="open" profile="snap.home-assistant-snap.home-assistant-snap//null-/usr/bin/ping" name="/etc/ld.so.cache" pid=2931817 comm="ping" requested_mask="r" denied_mask="r" fsuid=0 ouid=0

Looks like its trying to use ping and it's not shipped with the snap. This is something that I can add to the home-assistant-toolbox. I'll put it on the list as I need to add something more to it :)

PS! I've pushed a new build with network-observe plug. It should be available within few hours in the latest/edge channel.

Great, thank you!
I updated and was confused at first: Even after plugging all connectors, I still saw some error messages in the homeassistant log, e.g.,
2021-05-22 08:57:23 ERROR (MainThread) [homeassistant.components.dhcp] Cannot watch for dhcp packets: [Errno 13] Permission denied
PermissionError: [Errno 13] Permission denied: 'ping'
But when I came back after a couple of hours, everything seems to work including "presence detection" and "wake on lan". Maybe the errors were from some cached state.
In any case, thanks a lot and I felt free to use your donation button ;-)

Hi,That looks like the missing "ping" that i mentioned previously. I'll add it to the toolbox, but the upcoming week. 🤗Thank you so much for the donation. Joachim

I also took another dive into the dhcp error message:
ERROR (MainThread) [homeassistant.components.dhcp]

Since this is a default built-in feature of homeassistant (see here), this should reproduce on your machine as well if you check the homeassistant logs directly after startup. snappy-debug show the following:
= AppArmor =
Time: May 24 19:23:12
Log: apparmor="ALLOWED" operation="create" profile="snap.home-assistant-snap.home-assistant-snap" pid=1274141 comm="python3" family="packet" sock_type="raw" protocol=768 requested_mask="create" denied_mask="create"

= AppArmor =
Time: May 24 19:23:12
Log: apparmor="ALLOWED" operation="capable" profile="snap.home-assistant-snap.home-assistant-snap" pid=1274141 comm="python3" capability=13  capname="net_raw"
Capability: net_raw
Suggestions:
* adjust program to not require 'CAP_NET_RAW' (see 'man 7 capabilities')
* add one of 'firewall-control, network-control, network-observe' to 'plugs'
* do nothing if program otherwise works properly

I checked and it seems like you need to have the "network-control" permission to create raw sockets on top of "network-observe".

Hi,
No I'm not seeing this, but I'm also not using the default config, so dhcp hasn't been enabled by default in my installation.
I've pushed an update with the network-control plug, hope it solves your issue. It should be available within some hours.
Could you also try to un-plug network-observe while using network-control, to see if network-observe now is obsolete? Since DHCP is enabled by default and need a higher level plug, I would guess observe is unnecessary?

Thanks a lot! Here are the results:

The log shows one more error. Since I have enabled devmode, I'm not sure if it is related to the AppArmor event. I would assume that in devmode, all permissions are granted.

2021-05-25 15:23:28 ERROR (SyncWorker_2) [scapy.runtime] Cannot set filter: libpcap is not available. Cannot compile filter !
2021-05-25 15:23:31 ERROR (MainThread) [homeassistant.components.dhcp] Cannot watch for dhcp packets without a functional packet filter: libpcap is not available. Cannot compile filter !

And snappy-debug points to a single remaining access violation:

= AppArmor =
Time: May 25 15:30:08
Log: apparmor="ALLOWED" operation="open" profile="snap.home-assistant-snap.home-assistant-snap" name="/etc/ethertypes" pid=1545449 comm="python3" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
File: /etc/ethertypes (read)
Suggestions:
* adjust program to read necessary files from $SNAP, $SNAP_DATA, $SNAP_COMMON, $SNAP_USER_DATA or $SNAP_USER_COMMON
* adjust snap to use snap layouts (https://forum.snapcraft.io/t/snap-layouts/7207)
* add 'system-files (see https://forum.snapcraft.io/t/the-system-files-interface for acceptance criteria)' to 'plugs'
*
```

- It does not seem to make a difference whether `network-observe` is enabled on top of `network-control` so I guess it is save to remove it again.

No worries if you don't feel like fixing this. My main use cases are covered, so I'm already happy :-)

I'll try add libpcap0.8, the file /etc/ethertypes also looks to be a part of libpcap.

Hi, I think I've solve the issue around this:
2021-05-25 15:23:28 ERROR (SyncWorker_2) [scapy.runtime] Cannot set filter: libpcap is not available. Cannot compile filter !
2021-05-25 15:23:31 ERROR (MainThread) [homeassistant.components.dhcp] Cannot watch for dhcp packets without a functional packet filter: libpcap is not available. Cannot compile filter !

I'm pushing a new version to the channel latest/edge. It will be promoted to channel 2021.7 in a day or so.

Ho Joachim,
Thank you! I will try it once I get back home next week

Ugh,
Seems like the issue still persist on arm* devices, but not on
amd64. I'll have to dig deeper into the issue.
Med vennlig hilsen / Best regards
Joachim M. Giæver
giaever.online @.***
@.***>+47 45 00 46 10 tel:+4745004610

Good to know! I'm running it on a RaspberryPi4 (arm64)

Ok, give it a try and let me know if itr's just me. Find it strange that it doesn't happen on amd only arm (havent tried 32 ht though).

I updated and there seems to be only one problem left. I currently get the following from snap-debug:
= AppArmor =
Time: Aug 14 11:19:11
Log: apparmor="DENIED" operation="open" profile="snap.home-assistant-snap.home-assistant-snap" name="/etc/ethertypes" pid=2767905 comm="python3" requested_mask="r" denied_mask="r" fsuid=0 ouid=0
File: /etc/ethertypes (read)
Suggestions:
* adjust program to read necessary files from $SNAP, $SNAP_DATA, $SNAP_COMMON, $SNAP_USER_DATA or $SNAP_USER_COMMON
* adjust snap to use snap layouts (https://forum.snapcraft.io/t/snap-layouts/7207)
* add 'system-files (see https://forum.snapcraft.io/t/the-system-files-interface for acceptance criteria)' to 'plugs'

and in the logs I see the following error (likely related):
2021-08-14 11:19:31 WARNING (MainThread) [zeroconf] Error with socket 22 (('2003:ec:9706:bf00:dea6:32ff:fe19:5b', 5353, 0, 0))): [Errno 101] Network is unreachable
Traceback (most recent call last):
  File "/usr/lib/python3.8/asyncio/selector_events.py", line 1048, in sendto
    self._sock.sendto(data, addr)
OSError: [Errno 101] Network is unreachable

Hi,
which release track are you on? latest/stable? Check with
snap info home-assistant-snap | grep "tracking:"

I'm not getting this on neither amd64 or arm64... :thinking:
2021-08-14 11:19:31 WARNING (MainThread) [zeroconf] Error with socket 22 (('2003:ec:9706:bf00:dea6:32ff:fe19:5b', 5353, 0, 0))): [Errno 101] Network is unreachable
Traceback (most recent call last):
  File "/usr/lib/python3.8/asyncio/selector_events.py", line 1048, in sendto
    self._sock.sendto(data, addr)
OSError: [Errno 101] Network is unreachable

Does it happen frequently or only upon start-up? I can see it's an IPv6, which I do not have enabled on my local network. Could it be a bug with HA Core?

I'm on latest/stable - it looked like the most current version and appears to have the same version as latest/edge (2021.8.6). Should I switch to latest/edge?
I'm using Ubuntu 21.04 on a RaspberryPi4 with your snap HomeAssistant and almost no other configuration changes to the OS. Could it be caused by a HomeAssistant plugin? It only occurs during startup. Since there is a simultaneous apparmor denied event, it could be caused by a missing snap permission. Or the two events cold be unrelated. It's strange.

Hi,I'm trying not find out which package to add to get the "ether types" file included. I might just copy it in and see if that leads to a better explanation to the error.

thank you!

Yay, netbase was the package missing. New version pushed now. Should be available in few hours.

Great! I just tried it out via latest/edge and there is no warning anymore (neither from apparmor nor in the homeassistant log) :-)
Kudos!
I made another donation to you via paypal!

Thank you very much! :) Appreciated.
I'm still having the libpcap issue, but I'm on Ubuntu Core and not Ubuntu Server (which I guess you are using?), and there might be some differences. (You're not running it using classic confinement?)
// J

Yes, I use Ubuntu Server (which may make a difference) and I use the default strict confinement

Hi, Thank!
Don't mean to bother you, and do not feel obligated to do this, but if you have the chance. I will highly appreciate it.
You're also using the arm64 pacakage, but on a differen OS. Comparing this with the amd64 package on my computer I get different results.
Anyway, if you can check for the libpcap:
Login to the home-assistant-snap shell:
sudo snap run --shell home-assistant-snap

Go into the $SNAP dir and activate venv.
$ cd $SNAP
$ source bin/activate

Go into the Python intepreter and check the output of the function find_library:
$ python3

and in the intepreter do
>>> from ctypes.util import find_library
>>> print(find_library('pcap') # just pcap, not libpcap

(do not write >>>)
Does it say «None» or «libpcap.so.0.8»? I get the latter as an output on amd64. The first on arm64 :/
(You can now exit python by typing exit(), then write deactivate to end the venv and exit to exit the shell)

I get libpcap.so.0.8.
However, I may have installed some related packages in my Ubuntu that could leak into the snap:
sudo apt install tcpdump libpcap-dev

Thank you very much! :)
They should't, as you're running in the confined environment.
I find all the files in my environment too, and it is in the LD_LIBRARY_PATH that ctypes.util.find_library should fall back to. But.... it returns None.
Seems like I need to boot up another b RPi after all, with an Ubuntu Server OS, to debug from there too.
Where do I donate money back? :1st_place_medal:

Where do I donate money back? 🥇

I'm happy if you stay motivated and keep maintaining this awesome snap for a long time :-)

I'll do my best! Thank you for your help and patience.

NB! I've verified that it's not using the system packages from apt. Installed the Ubuntu Server distro, removed (+purged) both tcpdump and libpcap, and it works on armhf. So it must be Ubuntu Core specific.


encode frame length as unsigned int

As the frame length is by definition positive, why not use readUInt*?
Happy to submit a PR! Note that this would be a breaking change.

FYI: I've found length-prefixed-stream. Since it uses varint, I will use that one.


Minor text tweaks in carrot readme

Add missing word(s)
Make blank line usage consistent around header lines
Make Passenger mention a link so the other docs are easier to find

cc @OpenAtMicrosoft @msdev


Crouton installer downloading but not running

sudo: edit-chroot: command not found

Please describe your issue:
I have downloaded Crouton from the github page, and followed the instructions from this guide. However, when I enter the command sudo sh -e ~/Downloads/crouton -t -e touch,xfce, the installer is downloaded but does not run. I am given this output:
`Downloading latest crouton installer...
######################################################################## 100.0%
crouton [options] -t targets
crouton [options] -f backup_tarball
crouton [options] -d -f bootstrap_tarball
Constructs a chroot for running a more standard userspace alongside Chromium OS.
If run with -f, where the tarball is a backup previously made using edit-chroot,
the chroot is restored and relevant scripts installed.
If run with -d, a bootstrap tarball is created to speed up chroot creation in
the future. You can use bootstrap tarballs generated this way by passing them
to -f the next time you create a chroot with the same architecture and release.
crouton must be run as root unless -d is specified AND fakeroot is
installed AND /tmp is mounted exec and dev.
It is highly recommended to run this from a crosh shell (Ctrl+Alt+T), not VT2.
Options:
-a ARCH     The architecture to prepare a new chroot or bootstrap for.
Default: autodetected for the current chroot or system.
-b          Restore crouton scripts in PREFIX/bin, as required by the
chroots currently installed in PREFIX/chroots.
-d          Downloads the bootstrap tarball but does not prepare the chroot.
-e          Encrypt the chroot with ecryptfs using a passphrase.
If specified twice, prompt to change the encryption passphrase.
-f TARBALL  The bootstrap or backup tarball to use, or to download to (-d).
When using an existing tarball, -a and -r are ignored.
-k KEYFILE  File or directory to store the (encrypted) encryption keys in.
If unspecified, the keys will be stored in the chroot if doing a
first encryption, or auto-detected on existing chroots.
-m MIRROR   Mirror to use for bootstrapping and package installation.
Default depends on the release chosen.
Can only be specified during chroot creation and forced updates
(-u -u). After installation, the mirror can be modified using
the distribution's recommended way.
-M MIRROR2  A secondary mirror, often used for security updates.
Can only be specified alongside -m.
-n NAME     Name of the chroot. Default is the release name.
Cannot contain any slash (/).
-p PREFIX   The root directory in which to install the bin and chroot
subdirectories and data.
Default: /usr/local, with /usr/local/chroots linked to
/mnt/stateful_partition/crouton/chroots.
-P PROXY    Set an HTTP proxy for the chroot; effectively sets http_proxy.
Specify an empty string to remove a proxy when updating.
-r RELEASE  Name of the distribution release. Default: precise,
or auto-detected if upgrading a chroot and -n is specified.
Specify 'help' or 'list' to print out recognized releases.
-t TARGETS  Comma-separated list of environment targets to install.
Specify 'help' or 'list' to print out potential targets.
-T TARGETFILE  Path to a custom target definition file that gets applied to
the chroot as if it were a target in the crouton bundle.
-u          If the chroot exists, runs the preparation step again.
You can use this to install new targets or update old ones.
Passing this parameter twice will force an update even if the
specified release does not match the one already installed.
-V          Prints the version of the installer to stdout.
Be aware that dev mode is inherently insecure, even if you have a strong
password in your chroot! Anyone can simply switch VTs and gain root access
unless you've permanently assigned a Chromium OS root password. Encrypted
chroots require you to set a Chromium OS root password, but are still only as
secure as the passphrases you assign to them.`
I am not very experienced with linux and googling just gives me guides on how to install Crouton.
If known, describe the steps to reproduce the issue:
Entering a some version of the command sudo sh -e ~/Downloads/crouton -t -e touch,xfce, will give the same response

@shealy6,

Entering a some version of the command sudo sh -e ~/Downloads/crouton -t -e touch,xfce, will give the same response

That command syntax is a little off and it will install a very old (precise) release.
Try using this instead:
sudo sh ~/Downloads/crouton -r trusty -t touch,xfce
Please note I intentionally left out the '-e' option that encrypts your chroot, if you want to encrypt it, once your chroot is working you can encrypt it with an update.
Hope this helps,
-DennisL

@DennisLfromGA
Thank you very much, that's sorted it out for me


raidboss: add support for P6S polyominoids

Added new triggers to support all of the Aetherial Polyominoid / Polyominoid Sigma mechanics in P6S.  I converted this trigger from my raidboss.js user file, and had to clean up a lot of TypeScript foo, so I would appreciate other eyes on this.
I've tested pretty heavily using Raid Emulator, and I'll be testing with a local build this week.
Marked as draft for now pending further testing.  Also depends on #4903 support for MapEffect lines.

Tested yesterday (before today's fixes/changes re: Poly 5 & Chorus Ixou), and no issues.  Will be testing again today or Thursday, and aiming to mark this as ready by Friday.

@quisquous Should be ready for you!  Thanks for all the support & help!

I think this is all good.  I think my only minor followup comment is that poly6 maybe should still call out the two safe spots immediately so folks can kinda preposition better, and then narrow it down to one with the chorus ixou call.


Code style issue: decorators

Google style guide

Use decorators judiciously when there is a clear advantage.
https://google.github.io/styleguide/pyguide.html#217-function-and-method-decorators

Examples
https://github.com/spcl/dace/blob/22fd2d20b896b58a39f5dedc698d0807296767a5/dace/transformation/transformation.py#L15
https://github.com/spcl/dace/blob/22fd2d20b896b58a39f5dedc698d0807296767a5/dace/transformation/dataflow/tiling.py#L12
Cons
Require to keep in mind that something will be made with class/function. Languages provide more classic features to support the registry, that people can understand faster.
Possible solution
Keep registry inside its own class. Define classmethod for this class, which creates an instance of the class and
fills it with default transformations. Such classmethod should import each transformation itself. The advantage of such design is that users can extend it by using its own class instance that is filled with user-provided transformations. Another advantage is that there is no global registry.
Good uses
To make annotations in python/numpy interface.

I am undecided about this.

Not sure I understand the possible solution. We need a global registry in any case (that's why it exists in the first place). Can you give a code example?

@definelicht You can fill the registry manually by assigning each derived class to it (with a function call). It requires the same amount of code as writing decorator: one line for function call. To make base classes that "have a registry of derived classes", it is possible to inherit them from an interface that implements register/unregister methods.

Perhaps this should be merged with #407. The real issue here is that decorators are really a Python power feature that is unfortunately not intuitive unless you know what it does. I think that we are too invested in decorators to go back. Perhaps it would be simpler to write a short document where we explain what each decorator does?

@alexnick83 I am raising the issue mostly to discuss adopting the guideline in the future code. It is not necessary to immediately rewrite all decorator occurrences. The current code can be gradually refactored on the case by case basis if we agree on it.

@am-ivanov do you mean like this?
https://github.com/spcl/dace/blob/8551ce86ebae8262d16c4aa3384992825d93e876/dace/transformation/dataflow/mapreduce.py#L488
(from 9 months ago)

@tbennun Yes, I meant this. Is it ugly or not is a matter of personal preferences. I also think that it is a bit uglier than the decorator approach. However, it is definitely better in terms of readability: you immediately see what code is executed and when it is executed.


[manuf] erase AST config data from flash after use

This updates the individualization firmware to erase the AST configuration data from flash info after committing it to OTP.
This fixes #24526.

CC: @benjbender


Version No

ChangeLog is showing 2.1.3 but comment at top of DIST is 2.1.2 (both regular and MIN) thus not sure if DIST is actually 2.1.3,
Thanks.

Thanks for  letting me know. I forgot to change that number. It's 2.1.3
On Fri, Feb 1, 2019, 5:31 AM kWayCoding<EMAIL_ADDRESS>wrote:

ChangeLog is showing 2.1.3 but comment at top of DIST is 2.1.2 (both
regular and MIN) thus not sure if DIST is actually 2.1.3,
Thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mkoryak/floatThead/issues/429, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAXbSXVYTFPOysBjwx9CabrjV7VQrz0Eks5vJBdrgaJpZM4aeDXH
.


Mini-crud set a "special" char in "deleted_at" field in softDelete relations

When delete records in mini-crud, with softDelete, the records not deleted are setted with a special char in delete_at field, so, they disappear from active records queries.

Something similar, when you are adding new records

The problem is solved if you ensure to initialize deleted_at attribute with null in the constructor
MyEntity.php
    public function __construct(array $attributes = [])
    {
        parent::__construct($attributes);

        $this->deleted_at = null;
    }


[FR]: Faster build speed with Gradle properties + jemalloc

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the problem
I was talking about the settings used in this project with @liutikas and some others. It was speculated that it was possible to reduce the JVM heap size the project uses and also attain a faster build speed.
Describe the solution
I propose we do this by:

Using jemalloc as a malloc replacement - most projects get about 10% memory freed up, though no build speed impact
Use G1GC - I've seen this work better for Android projects that use JDK 19 or later, or if they're simply having some memory contention/pressure issues with running the project on resource constrained machines.
SoftRefLRUPolicy - This is defaulted to 1000 which at current settings would take almost 2 hours to release any soft ref
ReservedCodeCacheSize - Increasing this from the default allows the project to preallocate the codecache and not have to spend time growing it during a build
MetaspaceSize - From my research about Metaspace, Android Gradle builds benefit the most when MaxMetaspace is allowed to be unlimited (the JVM default) and MetaspaceSize set to 512MB or 1GB instead of the default 20MB. This is because MaxMetaspace is a constraint on both Metapsace and ClassPointers, the latter of which defaults to 1GB.
Min & max heap - Experimentation required to see what the optimal heap size for the project would be for both local development and GitHub CI.

Additional context
I already did the performance testing and changes, I'm just filling this out so the change can be considered and reviewed.
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Is there an existing issue for this?

[x]  I have searched the existing issues

Describe the problem
I was talking about the settings used in this project with @liutikas and some others. It was speculated that it was possible to reduce the JVM heap size the project uses and also attain a faster build speed.
Describe the solution
I propose we do this by:

Using jemalloc as a malloc replacement - most projects get about 10% memory freed up, though no build speed impact
Use G1GC - I've seen this work better for Android projects that use JDK 19 or later, or if they're simply having some memory contention/pressure issues with running the project on resource constrained machines.
SoftRefLRUPolicy - This is defaulted to 1000 which at current settings would take almost 2 hours to release any soft ref
ReservedCodeCacheSize - Increasing this from the default allows the project to preallocate the codecache and not have to spend time growing it during a build
MetaspaceSize - From my research about Metaspace, Android Gradle builds benefit the most when MaxMetaspace is allowed to be unlimited (the JVM default) and MetaspaceSize set to 512MB or 1GB instead of the default 20MB. This is because MaxMetaspace is a constraint on both Metapsace and ClassPointers, the latter of which defaults to 1GB.
Min & max heap - Experimentation required to see what the optimal heap size for the project would be for both local development and GitHub CI.

Additional context
I already did the performance testing and changes, I'm just filling this out so the change can be considered and reviewed.
Code of Conduct

[x]  I agree to follow this project's Code of Conduct

Yep sure Mr.kaeawc I'm clear this issue as you soon. Thank you for your information


scipy.misc is missing data files

Description
scipy.misc.face() fails since it can not find the associated data file. There are other similar functions that are missing data files in scipy.misc: scipy.misc.electrocardiogram() and scipy.misc.ascent()
The package from emscripten-forge does contain the .dat files. but somehow they are not visible by the kernel.
Reproduce
jupyter lite build --XeusPythonEnv.packages=scipy
jupyter lite serve

Open JupyterLite and start a new notebook with a xeus-python kernel.
from scipy.misc import face

arr = face()

This gives an error:
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
/tmp/xpython_42/1607471528.py in <cell line: 3>()
      1 from scipy.misc import face
      2
----> 3 arr = face()

/tmp/xeus-python-kernel/envs/xeus-python-kernel/lib/python3.10/site-packages/scipy/misc/_common.py in face(gray)
    220     import bz2
    221     import os
--> 222     with open(os.path.join(os.path.dirname(__file__), 'face.dat'), 'rb') as f:
    223         rawdata = f.read()
    224     data = bz2.decompress(rawdata)

FileNotFoundError: [Errno 44] No such file or directory: '/tmp/xeus-python-kernel/envs/xeus-python-kernel/lib/python3.10/site-packages/scipy/misc/face.dat'

From the screenshot below, you can see that there are no .dat file in the scipy.misc folder:

This does work fine in a Pyodide kernel.

Expected behavior
No error

Thanks for opening an issue.
Indeed xeus-python will filter out those files when packing the environment with empack (for reducing the size of what gets downloaded in the page).
If you don't want this behavior, you can provide your own copy of this file: https://github.com/emscripten-forge/recipes/blob/main/empack_config.yaml
Adding an entry for scipy:
  scipy:
    include_patterns:
      - pattern: '*.so'
      - pattern: '*.py'
      - pattern: '**/scipy/misc/*.dat'
    exclude_patterns:
      - pattern: '**/tests/**/*.py'
      - pattern: '**/tests/**/*.so'

Then you need to provide your own config file to xeus-python:
jupyter lite build --XeusPythonEnv.empack_config="/home/lesteve/path/to/empack_config.yaml"
We should document this properly at some point. But this is not tested properly yet, and the feature is still very much draft (we should be able to extend the default config instead of needing to replace it entirely).

Thanks a lot, I'll try this!

Specifying the empack_config file with additional include for scipy worked.
Would it make sense to make a PR to the emscripten-forge/recipes so that the issue is fixed for everyone? The scipy.misc .dat files are about ~2.2MB if that matters.

Those .dat files are just some example data, if I understand correctly? It does not prevent the actual scipy API to work?
I yes, I personally believe this should not be fixed in the default config, but we could document how to fix it for people who want to use those example data.
@DerThorsten what do you think?

I would agree that scipy.misc.face is not part of the core scipy functionality indeed. At the same time, if I import scipy.misc I would expect scipy.misc.face() to work.


[MRG] Added n-trees and n-leaf-nodes as script parameters to bench_higgs_boson

Thanks, I pushed even more options in my last commit.


Multiple selection edit of "Connectable" option is missing

Hi,
When selecting multiple objects that all share the same "Connectable" / "Allow Arrows" state, these settings are not presented for group editing.
Steps to reproduce

Create two or more rectangles
Select all of them
Expand the Property/Value list in the right hand side toolbar

Expected:
The "Connectable"  option should be present
Actual
The "Connectable" option are missing.
As such, if you have a large number of object that need to have this option changed, it must be done manually for each object.
Versions, etc.

draw.io version 15.4.0
Desktop app
OS Windows 10

Thanks for the report. This will be fixed in the next release.


Is the normal mode mapping of <C-C> to ^V^[ really necessary?

As title. I just noticed some strange mappings are stored in my session files: (Since those are invisible characters so I can only represent them by typing visible ones)
tnoremap <buffer> ^V^C ^V^[
noremap <buffer> ^V^C ^V^[
tnoremap <buffer> <C-C> ^V^[
noremap <buffer> <C-C> ^V^[

and these mappings seem to be created by these lines:
https://github.com/ibhagwan/fzf-lua/blob/7d5795e2dcc9289151c83c32177be8ca615cd4eb/lua/fzf-lua/fzf.lua#L191-L192
But I have my own mapping on <C-C>, which unfortunately got overridden by those ones above. Based on the comments above line 191 of fzf.lua, it seems that there is no other solution currently, right?

See #653, it’s a preventative measure while a neovim bug exists in relation to ctrl-c, perhaps the first line can be removed as only the terminal mapping is needed.

perhaps the first line can be removed as only the terminal mapping is needed.

This should resolve my problem! But if you find that it is still necessary then feel free to let me know... (I did come across that issue, but I didn't really understand the problem the author was facing. He/she is also a good plugin author so I trust your conclusion there.)

Might be out-of-topic but I really want to know: What's the meaning of setting empty mode string

I believe it's all modes, normal, visual and visual-select.

Just confirmed that 1423f02 does work, thank you!

Just confirmed that 1423f02 does work and your answer is really helpful, thank you!

From :help nvim_set_keymap, empty string is the equivalent of the map vimscript command (which maps to nvo modes):
    Parameters: ~
      • {mode}  Mode short-name (map command prefix: "n", "i", "v", "x", …) or
                "!" for |:map!|, or empty string for |:map|.


ECE labs aren't shown in schedubuddy

When searching for ECE 202 or ECE 210, schedubuddy displays the LEC and SEM timeslots but not the LAB components. After some digging it seems the problem is with the backend because when checking the api results, there are no entries returned with "component": "LAB".
One problem that I suspect may cause this is that the labs in the course catalog (eg: https://apps.ualberta.ca/catalogue/course/ece/210) conflict with the lab times for the other class, however the labs alternate weekly as stated here: https://www.ualberta.ca/engineering/student-services/program-help/registration/program-specific-registration/ece.html
Furthermore, I've been informed via email that according to the class notes, the two labs will alternate as long as you register in the same lab section (eg: both labs are section D31).

It's unfortunate that not all necessary information is available publicly through the ualberta catalog. It seem's that issues like these will have to be addressed on a case-by-case basis. However, we might be able to infer if a time slot alternates using information from the start and end times. In this case, ECE 202 and ECE 210 labs with the same section are exactly one week apart on the start and end days.
Apologies if im mixing two issues into one here, I'm only suspecting that they are related.

Thanks for reporting. If you take ECE 202 and 210 together, do the labs have to be with corresponding sections? So only D21 with D22, D26 with D26, etc, and no D21 with D26? I'm pushing a fix with this assumption but please clarify.
As for why the labs weren't appearing, the labs reported in the catalog seemingly indicate that the lab only occurs once. For these type of classes/labs we seek a list of times that the lab occurs and then deduce that it's biweekly. The app doesn't include classes that only occur once in the entire semester as a workaround for courses that have a special class at the start which conflicts with the regular class times. It's hard to explain but this was necessary to deal with some really strange class timings (e.g. CMPUT 401).
For this case, I made a special case in https://github.com/aarctan/schedubuddy-server/commit/d3d187fff391facf33d689e7ead608320544c84f to assume ece 202/210 labs occur weekly and must alternate on the same day.

Yes the labs for ece202 and ece210 have to be with corresponding sections. D21 with D21, D22 with D22 etc... and yes I believe they must be the same as stated by the class notes. Thanks for the info, that's interesting to know. And thanks for looking into it! I appreciate it tons.

Sure, thanks for clarifying. The fix is live now so we can close this but feel free to make another issue if you see something wrong :)

Yep it's already looking a lot better, even better than what's on bear tracks, because on bear tracks' system the two labs I have show as a time conflict on my schedule. I've been told via email that that's expected.


Update docs for kubevault/operator@84268ef1

Signed-off-by: 1gtm<EMAIL_ADDRESS>

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: 1gtm:x: kodiakhq[bot]You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.at has degraded performance

In 6904030, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1841 ms

Resolved: Bofrost.at performance has improved in af1fee8.


Module overrides member

Reproduction here: https://github.com/patrick-bug-repro/griffe-member-module
In my case I have a module with the same name as one of the function in a __init__.py file, it's a bit odd, but it works in python, unfortunately it looks like griffe is overriding it.
 .
├──  README.md
└──  strawberry
    ├──  __init__.py  # here there's a type function
    └──  type
        └──  __init__.py

output:
{
  "strawberry": {
    "kind": "module",
    "name": "strawberry",
    "labels": [],
    "members": [
      {
        "kind": "module",
        "name": "type",
        "labels": [],
        "members": [
          {
            "kind": "function",
            "name": "hello",
            "lineno": 1,
            "endlineno": 2,
            "labels": [],
            "members": [],
            "decorators": [],
            "parameters": [],
            "returns": null
          }
        ],
        "filepath": "strawberry/type/__init__.py"
      }
    ],
    "filepath": "strawberry/__init__.py"
  }
}

I'd expect to see the type function inside the members there too :)

This seems to be handled here: https://github.com/mkdocstrings/griffe/blob/039a702e8a4463631ef19eddb49a7941b6fedd7c/src/griffe/mixins.py#L186-L208
I'm not 100% familiar with the codebase, but I wonder if members should be come a dict[tuple[str, kind], MemberType] so you can have members of different kinds in the dictionary?

Thanks for the repro!
Yes, that's a known issue. It's actually a design flaw. When I designed Griffe, I centered it around the syntax to access objects: loader.modules_collection["package.module.submodule.Class.NestedClass.attribute"]. I failed to account for the fact that a module can have both a submodule and a member (imported or not) of the same name.
Instead of using (name, kind) tuples, the solution I envision is to split submodules out of the members dictionary, and update the syntax to support colons: package.module.submodule to access the submodule or the member of the same name when there's no such submodule (no ambiguity), and package.module:submodule to force access to the member and not the submodule of the same name when it exists.
As you can guess, that's quite a refactor, as there are a lot of places in the code that will need an update, so I kinda focused my energy elsewhere in the meantime :sweat_smile: But this issue is definitely in the 1.0 milestone (which exists only in my head): I will not release v1 before it is fixed.
Now if someone wants to take a stab at it, I'd gladly review a PR. The spec is simple (new submodules attribute in the Object class, support : in keys in the member mixins. But I think the implementation will have some traps and surprises :slightly_smiling_face:


Stub initialize method lives all the time running tests

i write test in which i stub  initialize method.
- (void)testControllerAddResignTapRecognizerOnViewDidAppear {
    // given
    UITableView *mockTableView = OCMClassMock([UITableView class]);
    OCMStub([self.mockController tableView]).andReturn(mockTableView);

    UITapGestureRecognizer *recognizer = [UITapGestureRecognizer new];
    id recognizerMock = OCMPartialMock(recognizer);
    uintptr_t pointer_as_integer = (uintptr_t)recognizerMock;
    NSLog(@"address %lu", pointer_as_integer);;

    OCMStub([recognizerMock alloc]).andReturn(recognizerMock);
    OCMStub([recognizerMock initWithTarget:self.controller
                                    action:@selector(recognizeTap:)]).andReturn(recognizer);

    OCMExpect([mockTableView addGestureRecognizer:recognizer]);

    // when
    [self.mockController viewDidAppear:YES];

    // then
    OCMVerifyAll(mockTableView);
    XCTAssertEqualObjects(self.controller.resignTapRecognizer, recognizer);
}

In another test
- (void)testAnything {
   // given
   UITapGestureRecognizer *resignTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self
                                                                       action:@selector(recognizeTap:)];
    uintptr_t pointer_as_integer = (uintptr_t)resignTapRecognizer;
    NSLog(@"address %lu", pointer_as_integer);
}

After running tests for target, I saw that same address:
address<PHONE_NUMBER>74352
address<PHONE_NUMBER>74352
if I write at the end of the first test:
[recognizerMock stopMocking];

Second test It will create a new object. Why mock is not released after the release of the PartialMock ?
If it a bug can I make a PR?

To be honest, I'm not sure I understand the issue. To me it seems you are saying that the memory location (address) of  resignTapRecognizer in testAnything ends up being the same as recogniserMock in testControllerAddResignTapRecognizerOnViewDidAppear. Why is this a problem?

Yes, you heard me right. This means that the object lives all the time of the test. This is a problem, because if I want to test UITapGestureRecognizer in another test, I can't do it. Also if test code includes work with UITapGestureRecognizer this can lead to problems. (failed test or crash)

When mocking class methods it is often best to explicitly call -stopMocking to avoid problems like this.  The -dealloc methods of the mock object should call -stopMocking, and since tests should be wrapped in an autorelease pool, that should get free the mock and clean up the mocked state.  However, if your code leaks the mock object or keeps a strong reference around past the test (i.e. as a global variable somewhere), then -stopMocking will not be called automatically.  I would either find the memory leak, or make sure you have -stopMocking at the end of the test, or (probably best) do both.

As Carl mentions, and supported by the fact the calling stopMocking helps, the mock seems to linger around, leaving the class method stubs active. I'm wondering whether there's a retain cycle in there somewhere because the object that the partial mock is created over is used in a stub. This needs investigation.
Despite trying I have not managed to recreate that pointer equality. The surprising thing (for me) is that the address of the mock object in the first test is the same as the address of the actual instance in the second.
If we assume the mock stays around the two stubs remain active. In testAnything, when you call alloc the first stub responds and returns the partial mock from the previous test. However, when you then call initWithTarget:action: on that partial mock, the arguments are passed are different, which means that the second stub does not respond. So the original implementation of initWithTarget:action: in the recognizer from the first test is invoked. I have no idea how that would return the mock without knowing its implementation.
One thing you could try is changing this line in the first test
OCMStub([recognizerMock initWithTarget:self.controller
                                action:@selector(recognizeTap:)]).andReturn(recognizer);

to
OCMStub([recognizerMock initWithTarget:[OCMArg any]
                                action:@selector(recognizeTap:)]).andReturn(recognizer);

Do you still see the pointer equality when you don't add stopMocking?

Closing due to inactivity.


[Bug] partialBundling does not work properly when output to esm format

Steps to reproduce
git clone https://github.com/niuiic/fx-flow -b feat/pack-in-chunks
pnpm initialize
pnpm build

Copy packages/core/dist to another project and write a test file.
mkdir test
cd test
pnpm init
pnpm add fx-flow
# replace node_modules/fx-flow/dist with the built one

index.mjs
import { add } from "fx-flow";

console.log(add(1, 2));

Related to #709, output.targetEnv = "node" works for cjs format, but not esm.
What is expected?
Functions can be imported properly.
What is actually happening?
file:///home/niuiic/Downloads/test/index.mjs:3
console.log(add(1, 2));
            ^

TypeError: add is not a function
    at file:///home/niuiic/Downloads/test/index.mjs:3:13
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)

Node.js v21.1.0

Set output.targetEnv to node
node:internal/modules/cjs/loader:1408
      const err = new ERR_REQUIRE_ESM(filename, usesEsm, parentPath,
                  ^

Error [ERR_REQUIRE_ESM]: require() of ES Module<EMAIL_ADDRESS>from<EMAIL_ADDRESS>not supported.
flow_andThen.75ed8fd1.js is treated as an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which declares all .js files in that package scope as ES modules.
Instead either rename flow_andThen.75ed8fd1.js to end in .cjs, change the requiring code to use dynamic import() which is available in all CommonJS modules, or change "type": "module" to "type": "commonjs" in<EMAIL_ADDRESS>to treat all .js files as CommonJS (using .mjs for all ES modules instead).

    at file:///home/niuiic/Downloads/test/node_modules/.pnpm/fx-flow@0.4.2/node_modules/fx-flow/dist/esm/index.mjs:1:10811 {
  code: 'ERR_REQUIRE_ESM'
}

Node.js v21.1.0

System Info
System:
    OS: Linux 6.1 Gentoo Linux
    CPU: (16) x64 AMD Ryzen 7 5800H with Radeon Graphics
    Memory: 10.53 GB / 15.59 GB
    Container: Yes
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 21.1.0 - /run/user/1000/fnm_multishells/191360_1700186487218/bin/node
    npm: 10.2.0 - /run/user/1000/fnm_multishells/191360_1700186487218/bin/npm
    pnpm: 8.10.5 - /run/user/1000/fnm_multishells/191360_1700186487218/bin/pnpm

### Any additional comments?

BTW, do you plan to support dynamic import in core, or implement it with a plugin?

It will be fixed in 0.14 today.

I tried v0.14. New issues were found.

Just follow the previous steps.

ReferenceError: location is not defined
    at Object.moduleCreated (file:///home/niuiic/Downloads/test/node_modules/.pnpm/fx-flow@0.4.2/node_modules/fx-flow/dist/esm/__farm_runtime.mjs:1:8023)
    at i.hookSerial (file:///home/niuiic/Downloads/test/node_modules/.pnpm/fx-flow@0.4.2/node_modules/fx-flow/dist/esm/__farm_runtime.mjs:1:3817)
    at d.require (file:///home/niuiic/Downloads/test/node_modules/.pnpm/fx-flow@0.4.2/node_modules/fx-flow/dist/esm/__farm_runtime.mjs:1:1788)
    at file:///home/niuiic/Downloads/test/node_modules/.pnpm/fx-flow@0.4.2/node_modules/fx-flow/dist/esm/index.mjs:1:5350
    at ModuleJob.run (node:internal/modules/esm/module_job:218:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:329:24)
    at async loadESM (node:internal/process/esm_loader:34:7)
    at async handleMainPromise (node:internal/modules/run_main:113:12)

Run pnpm build --filter fx-flow --force two times.

> @ build /home/niuiic/Documents/projects/node/fx-flow
> turbo build "--filter" "fx-flow" "--force"

• Packages in scope: fx-flow
• Running build in 1 packages
• Remote caching disabled
fx-flow:build: cache bypass, force executing 944fccf30bc0be06
fx-flow:build:
fx-flow:build: ><EMAIL_ADDRESS>build /home/niuiic/Documents/projects/node/fx-flow/packages/core
fx-flow:build: > farm build && farm build -c farm.config.cjs.ts
fx-flow:build:
fx-flow:build: [ Farm ] Using config file at /home/niuiic/Documents/projects/node/fx-flow/packages/core/farm.config.ts
fx-flow:build: thread '<unnamed>' panicked at crates/plugin_script/src/handle_entry_resources.rs:409:8:
fx-flow:build: runtime resource is not found
fx-flow:build: note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
fx-flow:build:  ELIFECYCLE  Command failed with exit code 134.
fx-flow:build: ERROR: command finished with error: command (/home/niuiic/Documents/projects/node/fx-flow/packages/core) pnpm run build exited (1)
fx-flow#build: command (/home/niuiic/Documents/projects/node/fx-flow/packages/core) pnpm run build exited (1)

 Tasks:    0 successful, 1 total
Cached:    0 cached, 1 total
  Time:    3.781s
Failed:    fx-flow#build

 ERROR  run failed: command  exited (1)
 ELIFECYCLE  Command failed with exit code 1.


HDDS-8882. Add status management of SCM's DeleteBlocksCommand to avoid sending duplicate delete transactions to the DN

What changes were proposed in this pull request?
Currently SCM will send a duplicate DeletedBlocksTransaction to the specify DN if the DN not report the transactions have been finish by the Heartbeat. So if the DeleteBlocksCommandHandler Thread of a DN was Blocked cause by some reason (Such as wait Container lock) the SCM will send a duplicate DeletedBlocksTransaction to this DN.
Summary
The Status of DeleteBlocksCommand
 public enum CmdStatus {
    // The DeleteBlocksCommand has not yet been sent.
    // This is the initial status of the command after it's created.
    TO_BE_SENT,
    // This status indicates that the DeleteBlocksCommand has been sent
    // to the DataNode, but the Datanode has not reported any new status
    // for the DeleteBlocksCommand.
    SENT,
    // The DeleteBlocksCommand has been received by Datanode and
    // is waiting for executed.
    PENDING_EXECUTED,
    // The DeleteBlocksCommand was executed, and the execution was successful
    EXECUTED,
    // The DeleteBlocksCommand was executed but failed to execute,
    // or was lost before it was executed.
    NEED_RESEND
  }

State Transfer
TO_BE_SENT -> SENT: The DeleteBlocksCommand is sent by SCM, The follow-up status has not been updated by Datanode.
SENT -> PENDING_EXECUTED: The DeleteBlocksCommand is sent and received by the Datanode, but the command is not executed by the  Datanode, the command is waiting to be executed.
SENT -> NEED_RESEND: The DeleteBlocksCommand is sent and lost before it is received by the DN.
SENT -> EXECUTED: The DeleteBlocksCommand has been sent to Datanode, executed by DN, and executed successfully.
PENDING_EXECUTED -> PENDING_EXECUTED: The DeleteBlocksCommand continues to wait to be executed by Datanode.
PENDING_EXECUTED -> NEED_RESEND: The DeleteBlocksCommand waited fora while and was executed, but the execution failed;Or the DeleteBlocksCommand was lost while waiting(such as the Datanode restart).
PENDING_EXECUTED -> EXECUTED: The Command waits for a period of time on the DN and is executed successfully.
State transition diagram
stateDiagram-v2
    TO_BE_SENT
    TO_BE_SENT --> SENT
    SENT --> PENDING_EXECUTED
    SENT --> NEED_RESEND
    PENDING_EXECUTED --> PENDING_EXECUTED
    PENDING_EXECUTED --> NEED_RESEND
    PENDING_EXECUTED --> EXECUTED
    SENT --> EXECUTED

DeleteBlocksCommand resent
The DeleteBlocksCommand on the TO_BE_SENT, SENT, PENDING_EXECUTED, EXECUTED will not be resent by SCM. only the DeleteBlocksCommand on the NEED_RESEND  Status will be resent.
SCMDeletedBlockTransactionStatusManager
SCMDeletedBlockTransactionStatusManager contains the transactionToDNsCommitMap migrated from DeletedBlockLogImpl use to manage the commited  DeletedBlocksTransaction.
And the SCMDeletedBlockTransactionStatusManager#SCMDeleteBlocksCommandStatusManager use to manage the  DeletedBlocksTransaction which are uncommited.
The "commited" means that DeletedBlockTransaction is executed on DN and reported to SCM by the heartbeat
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8882
Please replace this section with the link to the Apache JIRA)
How was this patch tested?
integration test

// todo. Implementing unit test and integration test

@adoroszlai PTAL Thanks.

@sumitagrawl PTAL Thanks.

@xichen01 I tried to understand the changes and impact, I am just getting lost in code, My Understanding, Here, State Machine to avoid duplicate sending for DeleteBlock command but can not find any good action for these state.
TO_BE_SENT: initial state NEED_EXECUTED, EXECUTED: just removed on timeout, no other action on keep these PENDING_EXECUTED, SENT: just to avoid retry, and on timeout, remove
Do we really need so many states? Or just, "INTIAL" & "SENT", and cleanup on timeout or executed.

One improvement can see from this PR that next command, it includes new set of blocks (even current blocks are not yet executed).

I think we should have refactored code including transactionToDNsCommitMap, transactionToRetryCountMap to take advantage of these state management and simplified the code.

OK, I'll try to compress some of the state to reduce the complexity of the code.

@xichen01, Thanks for working on this.
Whether the latest comments given by @sumitagrawl is addressed?

@xichen01, Thanks for working on this. Whether the latest comments given by @sumitagrawl is addressed?

Yes, CmdStatus has been reduced to two states, and transactionToRetryCountMap had been moved into SCMDeletedBlockGTransactionStatus

Thanks @xichen01 for updating the patch.  Can you please check TestDeletedBlockLog failures?
https://github.com/xichen01/ozone/actions/runs/7057702518/job/19212125760#step:5:1833

@xichen01 Could you please check HDDS-9962, intermittent failure in TestBlockDeletion?  It started happening after this PR was merged.

@xichen01 Could you please check HDDS-9962, intermittent failure in TestBlockDeletion? It started happening after this PR was merged.

OK, I will check this

@xichen01 @adoroszlai
During our use of deletion, I noticed that it can be very slow, especially after we switched to the EC policy.
Our Ozone01 cluster currently has about 1K machines. Initially, we chose to use a Ratis-3Replica strategy, but for cost considerations, we gradually switched to the EC-6-3 strategy in July.
The following chart shows the deletion speed for Ratis-3Replica .

The following chart shows the deletion speed for EC-6-3.

By reviewing the code and analyzing the logs, we found that the following situation can cause deletion to be very slow. We will illustrate this with an example.

Background

We want to delete data from an EC container with ContainerId = 1000. Since it is EC-6-3, there are 9 replicas (DN1, DN2, DN3, ... DN9).

Process

Before deletion, we first select a batch of DNs; at this time, we may only select DN1 to DN6. We then send the deletion command to these 6 DNs, and the command executes normally, successfully deleting 6 blocks. However, if DN7 to DN9 are not selected, our deletion process will get stuck.

Code

https://github.com/apache/ozone/blob/1f86ce80bd775fc4403617f17aa272a0d1297c7f/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/block/DeletedBlockLogImpl.java#L294-L313
I came up with a possible solution to eliminate this stuck situation. We require that all replicas of the container to be deleted must be present in the selected DN list simultaneously. Otherwise, we will skip that container.
private void getTransaction(DeletedBlocksTransaction tx,
      DatanodeDeletedBlockTransactions transactions,
      Set<DatanodeDetails> dnList, Set<ContainerReplica> replicas,
      Map<UUID, Map<Long, CmdStatus>> commandStatus) {
    DeletedBlocksTransaction updatedTxn =
        DeletedBlocksTransaction.newBuilder(tx)
            .setCount(transactionStatusManager.getOrDefaultRetryCount(
              tx.getTxID(), 0))
            .build();

     // Requiring that replicas must be present in the DN list simultaneously ensures that the deletion commands for all
     // replicas of the same container can be issued at once, avoiding situations where some replicas of the container are
     // deleted while others are not.
    for (ContainerReplica replica : replicas) {
      DatanodeDetails datanodeDetails = replica.getDatanodeDetails();
      if (!dnList.contains(datanodeDetails)) {
        return;
      }
    }

    for (ContainerReplica replica : replicas) {
      DatanodeDetails details = replica.getDatanodeDetails();
      if (!dnList.contains(details)) {
        continue;
      }
      if (!transactionStatusManager.isDuplication(
          details, updatedTxn.getTxID(), commandStatus)) {
        transactions.addTransactionToDN(details.getUuid(), updatedTxn);
      }
    }
  }


Use HTTPS

https://automatonsimulator.com/ seems to work well over HTTPS, but there’s no HTTP→HTTPS redirect. Can you please set this redirect for increased user privacy and security (automata specified in the URL cannot be eavesdropped, malicious JavaScript cannot be inserted by attackers etc.), and also update the URL in the README file? Thanks in advance!

Users can decide for themselves whether they want to use http or https.  I see no particular reason to force https since there is nothing sensitive happening on the site.

The attitude “HTTPS is only for sensitive things” is long superseded. HTTPS protects not only passwords and CCV codes, but also makes it for example much harder to inject unwanted content into the page (or to even completely replace it). Content injection/replacement could be used to steal automaton data (which can include confidential business-critical automata), or even for zero-day attacks exploiting JavaScript vulnerabilities. HTTPS is useful on all sorts of websites, and you can’t assume users can decide on their own, because they can’t: most users aren’t aware of these risks, yet they’re also at risk.


Authentication: introduce other methods than warp10 token

recently, we discover the need of being able to delegate a subpart of the authorisation of a token, like we do in macaroon.
I'm not confident about W10Token evolution without breaking things, and for a various reason get proper macaroons can be a good thing. But macaroons are way longer than w10tk. That's why I think a warp10 cluster will profit of multiple authentication methods.
In the warp script we will change nothing, get token as usual but prefix with an alternative when it's not a warp10 token (ie "macaroon:", "userpassword:"...). This way we can provide a various way to connect to the w10 cluster.
What do you think?
Do we want to be able to build auth extensions also outside of the w10 codebase? With a dynamic classloader plugin system? Or built in in the core?
Where do I have to plug this?

I'll check it out soon

Great! I can work on a macaroon support plugin this week (hopefully) or next week.

Seems very nice. It's awesome. My only concern is the WarpScriptException, I think it can be a good idea to create a specific subclass like InvalidTokenWarpScriptException for debug purpose. What do you think about @hbs ?

The exceptions thrown in Tokens are caught by the various WarpScript functions which do not differentiate any subclass of WarpScriptException, so this would be of little benefit for debug purposes.

That could be a plus, but the owner/producer uuids and applications would still have to be defined in the .htpasswd like file though, simple login/password would be sufficient only for the authentication, not for building the read/write tokens.

As soon as the PR #274 is merged, I think we can close this issue


Diagnose links in menu still link to old frontend

When there is an error in the diagnose page, the links provided in the kebab menu still point to the old frontend.
These should be updated to the equivalent pages in the web console.

Hey team! Please add your planning poker estimate with ZenHub @wouterdb @Stijnkool @andraskvr


Unable to override module location from metadata source...

I'm trying to use Librarian-Puppet to handle module dependencies for testing etc, by using a combination of metadata and Git sourced modules...
However when I try and run librarian-puppet, I get:
librarian-puppet install --path spec/fixtures/modules/
Puppetfile and Puppetfile.lock are out of sync!

I've got a module with a defined dependencies section in 'metadata.json'.
	"dependencies": [{
			"name": "fatmcgav/glassfish",
			"version_requirement": ">= 0.3.0"
		},{
			"name": "saz/ssh",
			"version_requirement": ">= 2.3.6"
		},{
			"name": "puppetlabs/stdlib",
			"version_requirement": ">= 3.2.0"
		},{
			"name": "saz/timezone",
			"version_requirement": ">= 3.0.0"
		},{
			"name": "saz/resolv_conf",
			"version_requirement": ">= 3.0.0"
		},{
			"name": "saz/sudo",
			"version_requirement": ">= 3.0.0"
		},{
			"name": "saz/limits",
			"version_requirement": ">= 2.1.0"
		},{
			"name": "puppetlabs/ntp",
			"version_requirement": ">= 3.0.0"
		},{
			"name": "puppetlabs/concat",
			"version_requirement": ">= 1.0.0"
		},{
			"name": "cescoffier/nexus",
			"version_requirement": ">= 0.0.1"
		},{
			"name": "datacentred/ldap",
			"version_requirement": ">= 0.2.3"
		},{
			"name": "ripienaar/module_data",
			"version_requirement": ">= 0.0.4"
		},{
			"name": "razorsedge/hp_mcp",
			"version_requirement": ">=0.1.2"
		},{
			"name": "deric/accounts",
			"version_requirement": ">=1.0.1"
		}
	]

I've also defined a Puppetfile, with the following contents:
#!/usr/bin/env ruby

forge 'http://forge.puppetlabs.com'

# Use develop branch for latest changes
mod 'fatmcgav-glassfish', '>=0.3.0',
  :git => 'https://github.com/fatmcgav/fatmcgav-glassfish.git',
  :ref => 'develop'

# Pull Nexus repo from Git
mod 'cescoffier-nexus', '>=0.0.1',
  :git => 'https://github.com/cescoffier/puppet-nexus.git'

mod 'ripienaar-module_data', '>=0.0.4',
  :git => 'https://github.com/ripienaar/puppet-module-data.git'

metadata

A verbose run looks like: https://gist.github.com/fatmcgav/aa76c69edc495e84b91a#file-librarian-puppet-verbose
And the resultant Puppetfile.lock looks like: https://gist.github.com/fatmcgav/aa76c69edc495e84b91a#file-puppetfile-lock
Any ideas?
Cheers
Gavin

Also, if I put the metadata line above the modules in Puppetfile, then Librarian-puppet fails with an 'Unable to find module on Forge' error.
Full verbose log is: https://gist.github.com/fatmcgav/aa76c69edc495e84b91a#file-librarian-puppet-metadata-first

You shouldn't put modules in the metadata.json if they are not in the forge. Try removing the ones you want from git

Hmm, doesn't feel like the correct process to me...
Surely the metadata.json file should contain all the dependencies that my module has, no matter where they're coming from?!

That is how it works now.
metadata.json is only useful for forge modules, as the puppet module tool will only check there.

Ah, cool, cheers :)


Fix JSON parsing

This PR should go in after #954

Sorry @Brocco , this got lost when we moved the code back over to the angular/angular-cli repo. Do you have time to re-base this commit on master over there?


[BUG] Failed to parse publisher because ST is not a valid key

:information_source: Info

Version: 3.16.1
:speech_balloon: Description

When running the following command in our GitHub actions pipeline:
flutter pub run msix:create -v --build-windows false --output-path ./msix --sign-msix false

We get the following error:
C=country, ST=province, O=companyName, OU=Development, CN=companyName' violates pattern constraint of '(CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")(, ((CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")))*

The ST key is not part of the regular expression, while it is a valid key in the subject of our certificate.
A valid key would be S. But if we use this key then it is not possible to sign the installer afterwards because the app manifest publisher name does not match the subject of the certificate.
Would it be possible to make the publisher as described in the pubspec below a valid publisher?
:scroll: Pubspec.yaml

name: productName
description: description

publish_to: 'none'

version: 0.6.0

environment:
  sdk: 3.0.3
  flutter: 3.10.4

dependencies:
  bloc: 8.0.3
  collection: 1.17.1
  complete_timer: 1.0.0
  data_table_2: 2.4.2
  event: 2.1.2
  file_picker: 5.2.11
  file_saver: 0.1.0
  fl_chart: 0.51.0
  flutter:
    sdk: flutter
  flutter_bloc: 8.0.1
  flutter_mobx: 2.0.6+5
  get_it: 7.2.0
  google_fonts: 4.0.3
  http: 0.13.5
  iirjdart: 0.1.0
  intl: 0.17.0
  meta: 1.9.1
  mobx: 2.1.4
  path: 1.8.3
  queue: 3.1.0+2
  uuid: 3.0.7
  version: 3.0.2
  window_manager: 0.3.5
  cupertino_icons: 1.0.4

dev_dependencies:
  build_runner: 2.3.3
  dependency_validator: 3.2.2
  flutter_lints: 2.0.1
  flutter_test:
    sdk: flutter
  mobx_codegen: 2.2.0
  mockito: 5.4.0
  msix: 3.16.1

flutter:
  uses-material-design: true

  assets:
    - lib/ui/assets/afi_indicators/
    - lib/ui/assets/icons/
    - lib/ui/assets/logo/
    - lib/ui/assets/

  fonts:
    - family: Roboto
      fonts:
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Thin.ttf
          weight: 100
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-ThinItalic.ttf
          weight: 100
          style: italic
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Light.ttf
          weight: 300
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-LightItalic.ttf
          weight: 300
          style: italic
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Regular.ttf
          weight: 400
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Italic.ttf
          weight: 400
          style: italic
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Medium.ttf
          weight: 500
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-MediumItalic.ttf
          weight: 500
          style: italic
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Bold.ttf
          weight: 700
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-BoldItalic.ttf
          weight: 700
          style: italic
        - asset: lib/ui/assets/fonts/Roboto/Roboto-Black.ttf
          weight: 900
          style: normal
        - asset: lib/ui/assets/fonts/Roboto/Roboto-BlackItalic.ttf
          weight: 900
          style: italic

msix_config:
  publisher: C = country, ST = province, O = companyName, OU = Development, CN = companyName
  display_name: applicationName
  publisher_display_name: companyName
  identity_name: identity
  logo_path: lib/ui/assets/logo/logo.png

I have the same problem.

@YehudaKremer I have the same issue and the fix is simple. I've opened a pull request. Is it possible for you to have a look? It would be really appreciated.

@Sylfwood Thank you 👍

@YehudaKremer Sorry to bother, but the new release does not seem to contain the fix. Or maybe I missed to fix another part in your code with the last pull request ?
I still have the same error with 3.16.2
'C=country, ST=province, O=companyName, OU=Development, CN=companyName' violates pattern constraint of '(CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")(, ((CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|Description|PostalCode|POBox|Phone|X21Address|dnQualifier|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")))*'.

I've cleaned the cache, and I can see that the 3.16.2 version is used:

Unhandled exception:

#0      ProcessResultExtensions.exitOnError (package:msix/src/method_extensions.dart:61:7)
#1      MakeAppx.pack (package:msix/src/makeappx.dart:28:9)
<asynchronous suspension>
#2      Msix._packMsixFiles (package:msix/msix.dart:137:5)
<asynchronous suspension>
#3      Msix._createMsix (package:msix/msix.dart:103:5)
<asynchronous suspension>
#4      Msix.create (package:msix/msix.dart:59:5)
<asynchronous suspension>
#5      main (file:///C:/hostedtoolcache/windows/flutter/stable-3.13.0-x64/.pub-cache/hosted/pub.dev/msix-3.16.2/bin/create.dart:4:3)
<asynchronous suspension>

It is possible for you to take a look at it?
Thanks a lot

Hum... It seems this is a limitation of Microsoft... Not sure we can do anything about that. I will try the workaround.
Publisher name:

    Required and corresponds to package that describes the publisher information.
    The Publisher attribute must match the publisher subject information of the certificate used to sign a package.
    This field accepts a string between 1 and 8192 characters in length that fits the regular expression of a distinguished name : "(CN | L | O | OU | E | C | S | STREET | T | G | I | SN | DC | SERIALNUMBER | Description | PostalCode | POBox | Phone | X21Address | dnQualifier | (OID.(0 | [1-9][0-9])(.(0 | [1-9][0-9]))+))=(([^,+="<>#;])+ | ".")(, ((CN | L | O | OU | E | C | S | STREET | T | G | I | SN | DC | SERIALNUMBER | Description | PostalCode | POBox | Phone | X21Address | dnQualifier | (OID.(0 | [1-9][0-9])(.(0 | [1-9][0-9]))+))=(([^,+="<>#;])+ | ".")))*".


Unnecessary clone array

Array.prototype.filter don't change array, no reason to execute [...items]
https://github.com/l2beat/l2beat/blob/ee8b7830b8b1f133a4519034a16709988e44245e/packages/frontend/src/components/table/filters/FiltersWrapper.tsx#L22

Nice catch, removed it!


FallbackSkill __new__() fails for FallbackSkillV1

When creating a FallbackSkill under ovos-core 0.0.7, the follosing exception is raised and the skill is not created:
cls = <class 'skill_fallback_llm.LLMSkill'>, args = ()
kwargs = {'bus': <ovos_utils.fakebus.FakeBus object at 0x7f4d98193b20>, 'skill_id': 'test_skill.test'}

    def __new__classic__(cls, *args, **kwargs):
        if cls is FallbackSkill:
            # direct instantiation of class, dynamic wizardry for unittests
            # return V2 as expected, V1 will eventually be dropped
            return FallbackSkillV2(*args, **kwargs)
        cls.__bases__ = (FallbackSkillV1, FallbackSkill, _MetaFB)
>       return super().__new__(cls, *args, **kwargs)
E       TypeError: object.__new__() takes exactly one argument (the type to instantiate)

Apparently related to https://github.com/OpenVoiceOS/OVOS-workshop/pull/131
Failure obseved in unit tests: https://github.com/NeonGeckoCom/skill-fallback_llm/actions/runs/7392338109/job/20110646544

fixed by https://github.com/OpenVoiceOS/OVOS-workshop/pull/168


Split tunnel configuration

I'm implementing a split tunnel configuration and can't quite figure out the right options. Currently I configure the server with the "-p" option to push the route out to the client but the configs that I generate contain "redirect-gateway def1" which I think is incorrect. However, if I specify "-d" it turns off NAT which breaks the ability to communicate with the subnet.
Stripping off the "redirect-gateway def1" from the client config does the trick to get it working, but I'm wondering if there is a correct combination of options I should be using to implement split tunneling.
Regards

If you're trying to remove the redirect-gateway def1 option then the -d option for ovpn_genconfig is correct.  Try adding the -N option to keep NAT enabled.
ovpn_genconfig -N -d ...

If not, then you may have to settle for just stripping the redirect-gateway def option out of the client config when you extract them.

Great, I'll try that!


How to input data in snorkel database into brat annotation

I was able to install brat independently with docker. However, I am not sure how to integrate brat with snorkel as I cannot open brat with the port snorkel generates.

The current implementation assumes BRAT is installed in a specific location so that Snorkel can write files to the correct directory. You could try sharing a volume in the Docker instance so there is a writeable path to the BRAT install directory. Then you just change self.brat_root in brat.py to match this path.

May I ask for more specific guide on how to share a volume in the Docker instance with snorkel? Thank you!

where am I supposed to find the brat.py file?

All BRAT files are found at:
https://github.com/HazyResearch/snorkel/tree/master/snorkel/contrib/brat

I tried to install the lastest version of snorkel, and tried to run the install.sh script in the ~/snorkel/tree/master/snorkel/contrib/brat folder. I got the following error:

cat: /home/ec2-user/snorkel/snorkel/contrib/brat/config_template.py: No such file or directory
cp: cannot stat ‘/home/ec2-user/snorkel/snorkel/contrib/brat/example-data/corpora’: No such file or directory
cp: cannot stat ‘/home/ec2-user/snorkel/snorkel/contrib/brat/example-data/tutorials’: No such file or directory
WARNING: failed to determine Apache group.

May I ask how to fix this error?

This looks like it's a AWS-related issue. I'd confirm that Snorkel/BRAT is installed in the appropriate places :)


Expose yySymType.Item

What problem does this PR solve?
Expose yySymType to global so that other packages can take advantage of Scanner.Lex() to analyze words. For example, other packages can use Lex() to judge if the string is integer, decimal, etc.
What is changed and how it works?
Add helper struct SymType and a method to copy the values from yySymType to SymType.
Now code from other packages can call the Lex() in this way.
yySym := parser.NewSymType()
parser.NewScanner("123124").Lex(&yySym.YyType)
yySym.Extract()
fmt.Println(yySym.Item)  // 123124

Check List
Tests

Unit test

Code changes
No existing function/variables has been changed.
Side effects
None
Related changes
None

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

/cc @tangenta


Scrollbar thumb does not reach the end of the trough

Steps to reproduce
printf '%s\n' {1..99} | gvim +'norm G' -

I'm on GTK2 Vim, but judging by
https://github.com/vim/vim/blob/1fc34225acbee5ddca2b9ec3f82b3014d385b7f8/src/gui.c#L55-L62
this report may apply to all other GUIs other than Athena.
Expected behaviour
I expect the scrollbar thumb to be at the end of the trough. Instead, it still has some way to go, which can only be reached if one scrolls past the EOL, such that the last line is at the top of the window.
What I see (left) vs what I expect (right, achieved by forcing #define SCROLL_PAST_END):

This is what happens after scrolling past EOL, which is pretty fine to me:

Version of Vim
8.2.4328
Environment
I have this patch.txt applied for setting the scrollbar width and the internal border of the text widget, which do not interfere with the reported behavior.
Logs and stack traces
No response

Not sure what you are having a problem with.  In GTK, and most other GUIs. the scrollbar thumb is always visible as a whole.  To allow for being able to scroll all the way down, so that the "~" lines are visible, Vim calculates the position so that you can scroll that far.
For Athena there is a custom scrollbar implementation, which allows for the thumb to be dragged down below the visible part.  So that it indicates the actual visible text.  I don't think other GUI implementations have this option.

The thumb not reaching the end of the trough as soon as the last line of the text is visible is misleading. It deviates from the behavior of most or all other GUI applications. The only reason why I use a scrollbar is that at a quick glance I can tell at what part of the text I am.
It is clear that this originates from being able to scroll up to the "~" lines (as you said), but people who actually use the scrollbar with a mouse and drag it to the bottom would expect the last line to be at the bottom of the window, not a the top, judging by the way other GUI applications behave.
So I believe the effect of #define SCROLL_PAST_END is ideal.

Well, this is how it works in Vim.  Like I said, it would be good if GUI libraries would allow for the behavior that we get with Athena, but AFAIK this isn't supported.
If I would change this, I'm sure people will complain it is not possible to scroll further down, e.g. to get the last text line halfway the window.  I like it that way myself at least.

I see, I'd just like to point out that you would still be able scroll further down with Ctrl-E, PageDown, zt, etc.

It deviates from the behavior of most or all other GUI applications.

I think that's only kind of true. If you use Visual Studio Code for example, they actually have an option to allow "scroll past last line". If on, VSCode will scroll like Vim and see the empty space below it, and the scroll bar reflects that. If off, VSCode won't allow you to scroll past the last line, and the scroll bar will work the way you want. But basically, it will always respect how much space you can actually scroll.
Regarding this feature, I think it makes more sense if Vim provides an option to not allow scrolling to see the "~" lines at all. Otherwise the scrollbar should reflect the total amount of physical scrollable space. The UX breaking part of Vim is that it allows scrolling past last line, not the UI scrollbar.


Help pls

Open HooksInjector

You're missing UnityEngine.dll inside your Managed folder.
If it does exist, check if the assembly version matches and if you have read/write permissions to it.


how add a static function in extension

how add a static function in extension:
For example,
`
extension Test on String {
static test() {
}
}
`
I canot use the function 'test' : String.test is not be supported

I canot use the function 'test' : String.test is not be supported

For your case I suggest you to use getter, for example:
extension L12n on String {
  String get trs {
    String? result = AppLocalizations(null).translate(this);
    result ??= AppLocalizations.templocalizedStrings[this];
    return result ?? this;
  }
}

// and use case

print('some_key_for_translate'.trs);

Hi @butterflyXX, the flutter issue tracker is for reporting issues or feature requests with flutter.
Kindly visit any of the communities in  https://flutter.dev/community#community-grid for asking these types of questions.
Closing as this is neither a bug report nor a feature request.

@MerdanDev I wish call the function with the class of String , For example:
String.test() , Is not "string Instance".test()


Objective-C Icon broken

For some reasons Objective-C Icon doesn't show correctly despite existing in in the project
Maybe it's a naming issue?

same thing

thx

np


Ways to images ?

Images are not always displayed correctly...

If you open the picture, then there is such a URL
http://zaox.ru/imagecache/small//images/placeholder.png

In fact, images are downloaded in such ways
http://zaox.ru/storage/app/public/5/zapret-kontenta-mts.jpg
Help please understand.

I have these images here http://zaox.ru/public/images/wallpapers-uhd/03908_halfdomejoy_3840x2160.jpg

About page

did you run
$ php artisan storage:link

In the sense of the windows? My access to the site is yes. But the site itself is debian 9 ....

$ php artisan storage:link
Running this command in other directories leads to this message
Could not open input file: artisan

I'll try to reinstall everything after adding to the installation https://github.com/adr1enbe4udou1n/laravel-boilerplate/issues/94#issuecomment-417961844

In the compositor.json file there are lines
"intervention/image": "^2.4",
"intervention/imagecache": "^2.3",
I added the config/app.php file
'providers' =>
Intervention\Image\ImageServiceProvider::class
```,

'aliases' =>
'Image'        => Intervention\Image\Facades\Image::class,
And
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
But unfortunately unsuccessfully: (

I think the problem is connected with this .... Help please.

can you right click and open image in new tab to check which url is it showing so i can debug it

http://zaox.ru/imagecache/small//11/G2_bH2QIrHs.jpg
File not found.

This is for you, and I have so

http://zaox.ru/imagecache/large//wallpapers-uhd/03908_halfdomejoy_3840x2160.jpg
File not found.

remove imagecache/large and see if image loads or not
On Tue, Sep 4, 2018, 12:49 AM Yuran<EMAIL_ADDRESS>wrote:

http://zaox.ru/imagecache/large//wallpapers-uhd/03908_halfdomejoy_3840x2160.jpg
File not found.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/adr1enbe4udou1n/laravel-boilerplate/issues/95#issuecomment-418178489,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHuOYXJ9qgOCS4sps6IwYW4Cr0SDnP88ks5uXX08gaJpZM4WW0k_
.

Hello,
I think something wrong on your nginx config, In fact this images are generate by PHP proxy image cache so you must explictly tell nginx to passthrough on php fcgi. Just add this section :
location ~ ^/imagecache/ {
	try_files $uri $uri/ /index.php?$query_string;
}

See my full nginx config
I should add a section for this on readme (later)

Also, everything works correctly if the PHP-FPM 7.2 mode and set in the Nginx configuration:
location ~ ^/imagecache/ {
	try_files $uri $uri/ /index.php?$query_string;
}

Thank you again for all your help!

hi yuran that is needed for others also not just image cache like for
routing etc
On Tue, Sep 4, 2018, 4:17 AM Yuran<EMAIL_ADDRESS>wrote:

Also, everything works correctly if the PHP-FPM 7.2 mode and set in the
Nginx configuration:
location ~ ^/imagecache/ {
try_files $uri $uri/ /index.php?$query_string;
}
Thank you again for all your help!
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/adr1enbe4udou1n/laravel-boilerplate/issues/95#issuecomment-418200507,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHuOYYls2CkSNnH3VHBpbZCSBYGWP2ZKks5uXa4BgaJpZM4WW0k_
.


Error on running first time

WARNING: vision failed to load helper '/var/devesh/NODE_2016/jolly/app/templates/helpers/m.js': Cannot find module '../../../.build/rev-manifest' Server started @ http://devesh:8000 Mongo Database connected Debug: internal, implementation, error      Error: Failed to encode cookie (session) value: Password string too short (min 32 characters required)     at /var/devesh/NODE_2016/jolly/node_modules/statehood/lib/index.js:436:34     at /var/devesh/NODE_2016/jolly/node_modules/statehood/node_modules/hoek/lib/index.js:854:22     at _combinedTickCallback (internal/process/next_tick.js:67:7)     at process._tickDomainCallback (internal/process/next_tick.js:122:9)

You need to increse the length of the cookie secret. Minimum is 32 character.


from_dlpack leaking memory

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Linux Ubuntu 18.04
TensorFlow installed from (source or binary):
binary
TensorFlow version (use command below):
2.2.0
Python version:
3.6
CUDA/cuDNN version:
10.1
GPU model and memory:
V100 32GB

TensorFlow from_dlpack causes permanent decreases in available GPU memory, leading to OOM issues when called iteratively (e.g. for feeding Keras models, see this example). Since the tensor returned by from_dlpack points to the original capsule, I would expect the memory to be freed as soon as the capsule (and any of its pointers) are destroyed.
I've reproduced the issue, as well as provided comparisons with PyTorch behavior, in this repo. A basic example, run in the environment defined by the Dockerfile in the linked repo, would be
import tensorflow as tf
tf.config.set_logical_device_configuration(
  tf.config.list_physical_devices('GPU')[0],
  [tf.config.LogicalDeviceConfiguration(memory_limit=8192)]
)
from tensorflow.experimental.dlpack import from_dlpack

import numpy as np
import numba
import cudf

def get_free_mem():
  return numba.cuda.current_context().get_memory_info().free

def make_data(to_tf=False):
  df = cudf.DataFrame({'a': np.random.randn(1000000), 'b': np.random.randn(1000000)})
  if to_tf:
    x = {col: from_dlpack(df[col].to_dlpack()) for col in df.columns}

# initialize tf gpu
x = tf.random.normal((1,))

mem_before = get_free_mem()
make_data()
print('CuDF memory delta: {} B'.format(mem_before - get_free_mem()))

mem_before = get_free_mem()
make_data(to_tf=True)
print('CuDF to TensorFlow memory delta: {} B'.format(mem_before - get_free_mem()))

The output of which will look something like
CuDF memory delta: 0 B
CuDF to TensorFlow memory delta: 16777216 B

@alecgunny
I am seeing the error message (ModuleNotFoundError: No module named 'cudf).Request you to help me with the reproducible code in our environment.It helps us in localizing the issue faster.Thanks!

Hey @ravikyram , I use cudf because I need a GPU library external to TensorFlow from which to generate data and pass into TF via dlpack, though in theory I can use any GPU library which has dlpack compatibility (e.g. PyTorch). An environment with the appropriate packages can be found in the Dockerfile in the linked repo above.
That said, when you say "our environment," can you elaborate what you mean by that? I can try to get the appropriate packages installed there as well. Would the 2.2.0-gpu dockerhub container work as an appropriate stand-in?

@alecgunny
Please, help me in reproducing the issue .Please, find the gist here.Thanks!

@ravikyram Here's a working repro notebook (switched to using PyTorch to simplify the environment, but the idea is the same)

@alecgunny
Please grant me the access for the gist provided. Thanks!

@ravikyram sorry about that! Permissions should be public now


[Remote Store] Remove redundant uploads while restoring data from snapshot

Describe the bug
If we restore a remote store backed index from an interop enabled repository, we are uploading all the data in remote. This is not needed when there is preexisting data in remote store. There can be preexisting data , when the index is closed and we try to restore it back in time from a snapshot.
https://github.com/opensearch-project/OpenSearch/blob/aa0fddb50d6150330718ac0af23b72bd1598ae4a/server/src/main/java/org/opensearch/index/shard/IndexShard.java#L4916-L4922
Given that we have enabled upload during snapshot restore, there is no need to copy the segment files manually to remoteDirectory .

Needs to be verified if this is being handled currently. If not we need a mechanism to de-dupe uploads.
[Storage Triage - attendees 1 2 3 4 5 6 7 8 9 10

I've attempted to solve this bug in this PR: https://github.com/opensearch-project/OpenSearch/pull/16607, to check preexsisting data to skip remote upload when data already exists.


"App scaled horizontally" should only turn green when upsun resources:set --count backend:# is executed

### Tasks
- [ ] [`appInstances > 0` should be `appInstances > 1` (Sidebar.tsx#L68)](https://github.com/platformsh/demo-project/blob/bb84a7f674c2d87b13b5c6056e3551938165c75f/frontend/src/components/Sidebar.tsx#L68)
- [ ] [`case appInstances !== null && appInstances < 1:` should be `<= 1` (App.tsx#L48)](https://github.com/platformsh/demo-project/blob/bb84a7f674c2d87b13b5c6056e3551938165c75f/frontend/src/App.tsx#L48)

On hold until Upsun apps are self-aware of scaled state

@chadwcarlson I'm going to close this for a few reasons:

We want to use an Upsun native feature to detect when an env has more than one instance (such as environment variables provided by Upsun)—this isn't available yet.
We'll want to rethink how to present this and walk the user through this feature.
"App scaled horizontally" copy is no longer a feature of the current design.