Fixes for gas

Description
Correct a couple of problems with gas. One of the change is gated by feature flag and requires a protocol version.
So let's make sure to check that code carefully and see the tests that had to change too.
The other change is going in without protocol version and it's explained in a comment. I would love to get feedback on that.
Let me know what else you would like to see here
Test Plan
Existing tests.
The indexer failure is unrelated to this change and fixes are being deployed

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

also @mystenmark what is the expected way to test a protocol version?
I mean test before it hits prod

what is the expected way to test a protocol version?

Check out tests in here? https://github.com/MystenLabs/sui/blob/main/crates/sui/tests/protocol_version_tests.rs

Check out tests in here? https://github.com/MystenLabs/sui/blob/main/crates/sui/tests/protocol_version_tests.rs

@emmazzz the question was more about how do we know the thing will work before we hit prod.
I suppose spinning up a full node and let it run for a bit may be an idea?
just not sure how we feel confident that everything works as expected


Add Pagination for Student, Professor, and Course Listings

Divide the different tables into different pages for listing students, professors, and courses to improve performance and user experience when dealing with large datasets. Add a way for the user to navigate between the various pages.
Use Django's built-in pagination in the student, professor, and courses views.
Update the templates to display the paginated results and navigation links.

can i be assigned to this

!assign @Rex-8

path('student/',views.student, name='student'),
path('courses/',views.courses, name='courses'),
path('professor/',views.professor, name='professor'),

these are the paths for the corresponding paginations right?

@Rex-8 yes it's correct

bots down

!assign @Rex-8

submitted a pull request

!assign @Rex-8


As a label 1

Why:
Closes [issue link]

What's being changed (if available, include any code snippets, screenshots, or gifs):

Check off the following:

[x] I have reviewed my changes in staging (look for the "Automatically generated comment" and click the links in the "Preview" column to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[x] This pull request impacts the contribution experience

[x] I have added the 'writer impact' label
[x] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

Thank you.

This seems to have been opened accidentally, I am going to close it now :yellow_heart:
Take a look at the contributing.md to learn how to contribute in this repo. You can open a discussion if you have any questions or check out issues with the help wanted label. :sparkles:


shift clicking items out of crafting grid

when shift clicking items out of the crafting grid it makes 1 item rather then the max amount it can make

Same Problem for me. Using the Version 2.5.0


Shell - Some commands were not successfully executed

I am receiving Some commands were not successfully executed message with this below config :)

This is my install.conf.yaml file. I am on Windows 10 with Dotbot 1.12.5:
- defaults:
    link:
      force: true
      create: true
      relink: true

- clean: ['~']

- link:
    ~/.gitconfig: git/gitconfig
    ~/.gitignore_global: git/gitignore_global
    ~/.minttyrc: mintty/minttyrc
    ~/.npmrc: npm/npmrc
    ~/.vim: vim/vim
    ~/.vimrc: vim/vimrc

- shell:
  - vim +PluginInstall +qall

Looks like your vim +PluginInstall +qall failed. Some steps I'd take when debugging:

try running it directly in your terminal to see if it returns successfully
run it with stdout: true / stderr: true in Dotbot and see if it prints any errors

Modify config shell setup to like this:
- shell:
    -
      command: vim +PluginInstall +qall
      stdout: true

No luck @anishathalye same error and I don't get any output too

Did you try running it directly? Also, did you try enabling stderr too?

@anishathalye I am using Mintty which is shipped in Git for Windows.

It work with direct execution :)

I don't use vim plug, so I'm not very familiar with it. Does it require input on stdin before proceeding? Also, this issue seems somewhat related: https://github.com/junegunn/vim-plug/issues/225

@anishathalye solve through running Git CMD with administritive privilage instead of Git Bash.

Nice, glad you got it working!


CPU Architecture

Most programs are compiled targeting broadwell architecture even though the test hardware is Xeon(R) Platinum 8272CL which is cascadelake. The test hardware have avx512 instruction set (and others) that doesn't usually exist in consumer level hardware (most dev machine). Is this intended e.g. to ease test and development of contributed programs?

The test hardware is randomly chosen from a pool, from haswell to cascadelake. GH action doc, Azure VM doc
avx512 is an arguable feature, Intel might plan to deprecate it. Also because of the power consumption, the CPU might end up running at a reduced frequency with even worth performance when using avx512, so I don't plan to enable it.

That explains everything.

randomly chosen from a pool

I'd like to know what hardware was used for the last run before Fri 28 Jan 2022 10∶19∶04 AM PST -- is that information available somewhere?

Yes, u can check the lscpu section in the CI log, u can also download the benchmark result from build artifacts and generate the site snapshot locally


Nix development shell is inefficient

Describe the bug
When first entering the Nix development shell, it will download ~4GiB of packages.  It takes a long time.
I assume (but don't know for sure) that the Rust toolchain is now included in the development shell; whereas it was previously assumed to be available on the system. I can understand this from a reproducibility perspective, but it's a frustrating developer experience. It also feels like a regression as other tools (e.g., rust-analyzer), while available, don't appear to be as snappy/functional as they once were.
I also routinely encounter this error:
found crate `foo` compiled by an incompatible version of rustc

A cargo clean && cargo build, inside the dev shell, will not always fix this. So I often just abandon the dev shell, just to get it to work.
To Reproduce
Enter a development shell for the first time:
nix develop

Expected behaviour
Reproducibility is important, but if it comes at such a cost, maybe it should be hidden behind a feature flag (if such a thing is possible).
Environment

OS name + version: NixOS 23.05
Version of the code: 79b93527d9bd

Reproducibility is important, but if it comes at such a cost, maybe it should be hidden behind a feature flag (if such a thing is possible).

Flakes infamously can't take information from the command-line (the issue is closed, but it's debatable if it should be), but a common solution is to add a dedicated output, e.g. nix develop .#light-shell or something along those lines


I can't sign rekeyed account transactions

Hi and thanks for this awesome lib! I ran into a small issue.
Preconditions
I have two accounts:

Main is a My Algo account
Secondary is a fresh account that is immediately rekeyed to the My Algo Account

Issue
After the rekey the secondary account must be signed by the primary account's key but myAlgoWallet.signTransaction(tx) fails.
Algosdk demo code
import algosdk from "algosdk";

const main = algosdk.mnemonicToSecretKey("mnemonic");
const secondary = algosdk.generateAccount();

export default async function makeRekeyedAccount() {
  const params = await algodclient.getTransactionParams().do();

  const fundTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: params,
    from: main.addr,
    to: secondary.addr,
    amount: 200000,
  });

  const rekeyTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: params,
    from: secondary.addr,
    to: secondary.addr,
    amount: 0,
    rekeyTo: main.addr,
  });

  const txs = [fundTx, rekeyTx];
  algosdk.assignGroupID(txs);

  const fundSigned = algosdk.signTransaction(fundTx, main.sk);
  const rekeySigned = algosdk.signTransaction(rekeyTx, secondary.sk);

  await client.sendRawTransaction([fundSigned.blob, rekeySigned.blob]).do();
}

export async function testTransaction() {
  const params = await algodclient.getTransactionParams().do();

  const testTx = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
    suggestedParams: params,
    // send a transaction from the secondary account which is already rekeyed to the main account
    from: secondary.addr,
    to: main.addr,
    amount: 0,
  });

  // the transaction has to be signed by the main account
  // this would fail if the main account would be a My Algo account and I used
  // `await myAlgoWallet.signTransaction(testTx)` here
  const testSigned = algosdk.signTransaction(testTx, main.sk);

  await client.sendRawTransaction(testSigned.blob).do();
}

There error is originating from here: https://github.com/randlabs/myalgo-connect/blob/f42ca7e52aa24a5cd98c6300ee6e5df8c9fda48e/lib/main.js#L305

Probable solution
I guess you validate the transactions' from address and maybe forgot to check account["auth-addr"] against it.

In case you are curious of the "real world usage". I am making a classic NFT marketplace and I plan to use delegated accounts which are keyed to the main account. This way users have a full control of everything with a single private key and they can distribute signed logic keys for specific NFT accounts (with burnt in Sender addresses).

Hello @solkimicreb ! Thank you for reporting this issue. Currently, MyAlgo Connect does not check for rekeyed address correctly but, the next version will do. We expect to release it in the next week.

Fixed!


Does this work with React Native?

Hi!
I just found this great looking tool and I'd love to use it with React Native.  However, my attempts so far have failed with:
TypeError: Cannot read property 'useMachine' of undefined

Would we expect the library to work with React Native?

There is also a Property "CustomEvent" doesn't exist error in the stack.

Hi Dave, that's a good question. XState Ninja attempts to import useMachine from @xstate/react which is its peer dependency.
Do you normally use @xstate/react in your React Native machine without issues?
CustomEvent is a standard browser API which apparently is not available in React Native, so I'm afraid @xstate-ninja/react will not work in RN.

The @xstate/react version of useMachine works as expected.  But it sounds like its a no go anyway.  Thanks very much!


"error: [48] An unknown option was passed in to libcurl" on nightly only

I'm on OS X 10.9.5 (I know) and attempting to install any package using the nightly version (cargo 1.31.0-nightly (ad6e5c003 2018-09-28)) results in:
$  cargo install cargo-cov
    Updating crates.io index
error: [48] An unknown option was passed in to libcurl

Adding -v doesn't reveal the source of error.
curl crates.io with or without https works.
Stable cargo 1.29.0 (524a578d7 2018-08-05) and cargo 1.30.0-beta (05e9b01fc 2018-09-21) work fine.
I first suspected network censorship was the reason and tried to configure a proxy in ~/.cargo/config, but that didn't have any effect.
I'm not an active rust user, so I'm not sure if/how I can troubleshoot this further without delving in too deep.

@nickolay What version of curl is on your system? (curl -V)
@alexcrichton it looks like curl-sys just gained the ability to statically link a few days ago  🎉 .  I'm curious if that is a feasible option.

Ah I believe the bug here is that we blindly link cargo dynamically on osx hoping it has all the features. We should probably just link cargo statically like other platforms already do. Definitely a bug for us to fix!

Thanks for the quick reply! My version of curl is:
$ curl -V
curl 7.59.0 (x86_64-apple-darwin13.4.0) libcurl/7.59.0 OpenSSL/1.0.2o zlib/1.2.11 libidn2/2.0.4 libpsl/0.20.1 (+libidn2/2.0.4) nghttp2/1.31.1
Release-Date: 2018-03-14
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

This should get fixed as part of https://github.com/rust-lang/rust/pull/54919 where we should force Cargo to always compile the curl submodule and link it

Hey, I'm reopening this because I'm helping out @synapticarbors at a meetup, and they're seeing this error even though they're on a newer nightly than Nov 4 (cargo +nightly -v = 2018-12-02)
They're on macos 10.9.5, and curl -V 7.55.1. They're seeing the same error message as in the original report...
I'm not sure what to check to see if something broke the linked PR that changes to have cargo always compile the curl submodule and link it... is there any chance that's the case?
Or are we missing something?
This is NOT more urgent than the release or the all-hands <3

@carols10cents We ended up needing to link libcurl dynamically on MacOS.  Since 10.9 has a relatively old version of libcurl, it was breaking on an newer option that was added.  I have posted a PR with a proposed fix.

Ahh, awesome. Thank you @ehuss! ❤


Add extra check for package flavour marker

Without this we end up doing an exponential number of checks, which can take a huge amount of additional time (> 30 seconds) for some of our more complicated projects.

/cc @charleso I think this was the problem you were having with napoleon

It was certainly very very slow, this looks like an improvement :+1:


Crochet-built FreeBSD 11.1-stable r329320 aarch64 RPI3 hangs on boot

As we already know, FreeBSD 12-Current has some very strange issues with UFS2+j+softupdates filesystem, which may or may not be caused by growfs:   when a certain number of occupied inodes is reached, system gets stuck with cylinder group checksum failures - slowing it down - and not even the all-mighty aarch64-built fsck is able to correct this. However, fsck + mounting the system on a traditional architecture (x86, x64) shows no problems.
So I decided to switch to FreeBSD 11 and to try booting my RPI3. Now here's what I've got so far:

System setup:

one Raspberry PI 3, one physical amd64 machine;
one 32GB Samsung microSD, one 16GB A-Data microSD, one Kingston 16GB MicroSD, one Sandisk 16GB MicroSD, one Western Digital Mechanical external HDD (40GB), one 128GB SSD built by Kingston;
I am running both FreeBSD11.1-stable-amd64 and FreeBSD12.0-CURRENT-amd64 in Virtualbox, as guests on the FreeBSD11.0-stable-amd64 physical system;
On both VMs, Crochet fails to download its required files from github due to failed cerificates, so in /root/.cshrc I added << setenv SSL_NO_VERIFY_PEER 1 >>;
FreeBSD 12.0-CURRENT binutils cause some crochet compilation trouble so I had to downgrade to a lower version (I read that somewhere around here);
FreeBSD 11.1-stable binutils work perfectly;
I built two images:  FreeBSD 11.1-stable-aarch64-GENERIC-rpi3.img  and FreeBSD12.0-CURRENT-aarch64-GENERIC-rpi3.img without any compilation failures/errors/issues.  First one hangs on boot, second one is able to boot;
On all the above-mentioned storage devices, FreeBSD 12.0-CURRENT-aarch64-GENERIC-NODEBUG-RPI3 shows filesystem checksum failures in cylinder groups - on all MicroSDs, on the <> HDD and also on the SSD, so hardware-related issues are excluded.

Here's what I got so far:

Booting the crochet-resulted FreeBSD 11.1-stable r329320 aarch64 rpi3 image:
At startup it loads u-boot, starts loader.efi, it is able to read the filesystem, to list files and load the kernel. After kernel is loaded I have 10 seconds to press enter to boot or space to pause. At boot it clears the screen, it hangs and turns off the monitor. The last message I am able to see (before clearing the screen) is "using dtb provided by EFI at 0x8004000";

Booting the crochet-resulted FreeBSD12.0-CURRENT-aarch64-rpi3 image
It boots normal, as it is expected to boot. However it causes the above mentioned filesystem issues after portsnap fetch extract + building some heavy stuff such as firefox.

Booting the crochet-resulted <> FreeBSD 11.1-stable r329320 aarch64 rpi3 image using the 12.0-current kernel+modules:
I replaced just the kernel and modules:  11.1-stable image containing 11.1-stable world and 12.0-current kernel+modules in /boot/kernel. No modifications were made on the fat partition or anywhere else.
The resulting image causes the system to boot normally, but with the same filesystem issues (cg group checksum failed after portsnap fetch extract + compiling some heavy stuff such as firefox).

Booting the crochet-resulted <> FreeBSD 12.0-current aarch64 rp3 image using the 11.1-stable kernel
Exactly like step3, I replaced just the kernel + modules:  12.0-current image containing 12.0-current world and 11.1-stable kernel+modules in /boot/kernel.
It is performing exactly as in step 1.

From these experiments I reached the conclusion that there's something wrong going on during 11.1-stable kernel compilation process for aarch64-rpi3.
There are no display information even when full debug is enabled in the 11.1-aarch64-rpi3 kernel configuration, so I am unable to determine any further steps to investigate.
Please feel free to re-run these experiments to confirm.
For weeks I have been searching every developer mailing lists I could find to get more information about any working FreeBSD 11.x  kernel on RPI3. So far there's a strange silence on this subject.
In the mean time I am stuck - please advise.

Temporary issue solved.
I do not have knowledge about issue closing procedures but I think I have a workaround for this.
Here is how you can get a working FreeBSD for RPI3 without storage corruption due to error in inode number counting  (df -i showing all ok) and cg checksum failures (caused probably by growfs):
Ingredients:

Virtual Box;
One ISO image of FreeBSD-11.1-stable;
One ISO image of FreeBSD 12.0-CURRENT;
Two virtual machines running the above-mentioned systems;
FreeBSD 12.0-CURRENT with GENERIC-NODEBUG kernel compiled and installed (to get rid of WITNESS and other debuging stuff which slow the system);
crochet installed on both VMs;
customize RaspberryPi3/config files on both VMs to adjust config.txt for your monitor settings;
customize config.sh on both VMs to avoid certificate errors when fetching boot-related files from github: SSL_NO_VERIFY_PEER=1;
launch crochet to build image for FreeBSD-11.1-stable-rpi3-GENERIC.img;
launch crochet to build image for FreeBSD 12.0-CURRENT-rpi3-GENERIC-NODEBUG.img;
mount 11.1-STABLE image, rename /boot/kernel to /boot/kernel.bsd11;
mount 12.0-CURRENT image;
copy 12.0-CURRENT:/boot/kernel to 11.1-STABLE:/boot/kernel;
modify 11.1-STABLE:/etc entries in order to obtain global environment variable UNAME_r = 11.1-stable;
umount both images, dd if=11.1-STABLE of=SDCARD bs=1m;
boot resulting SDCARD on RPI3;
install following packages:  nano, wget, findutils, xorg-server, xorg-fonts, xorg-apps, xorg-drivers, xf86-video-scfb, windowmaker (or your favorite window manager) and whatever other apps you require;
mv /etc/rc.conf /etc/rc.conf.rpi3;
cp /usr/share/examples/etc/defaults/rc.conf /etc/rc.conf;
cat /etc/rc.conf.rpi3 >> /etc/rc.conf;
customize your rc.conf according to your desires;
nano /root/.xinitrc  to instruct it to run your favourite window manager:    exec wmaker
startx  - customize your window manager, save settings, exit X windows;
portsnap fetch extract;
cd /usr/ports/misc/mc && make config   ->  instruct it to use curses instead of slang;  make install clean;
prepare an external (USB) hard drive with bsdinstall partedit:  100MB boot partition - fstype = !12,  root partition, swap partition = 2 x RAM just to be sure;
newfs -t -O2 -U -j -f 512 -b 4096 ${external_hdd_root_partition};     # man newfs to explain everything;
mount ${external_hdd_root_partition} to /etc;  cd /etc
dump -0f - / |restore -rf -
modify /etc/fstab to set root dir to /dev/${external_hdd_root_partition}
modify /etc/fstab to activate the previous created swap partition;
cp /etc/fstab /mnt/etc/fstab;
umount /mnt
reboot
ignore the message saying the swap is larger than recommended size in blocks;

at this point my  RPI3 managed to boot the hybrid BSD11 world + bsd12 kernel
I am currently compiling firefox from /usr/ports to stress the system.
make config - I removed all references to video playing and sound
I pkg-installed all required dependencies which exist in the repository.
/usr/ports/lang/rust is required and it does not come as a precompiled packages. Stop the compiling process as soon as configuration files are generated. Use /usr/local/bin/mc to find all files containing "-march=native", remove all occurrences because compiler does not support this flag on aarch64.
So far in the last 24 hours no more cylinder group (cg) CRC failures occurred.
Plans for the future:
if everything works fine, my plan is as following:
bsdinstall partedit to modify sdcard:  delete root partition, add a smaller one and leave some space for some swap;
newfs -t -O2 -U -j -f 512 -b 4096 ${sdcard_root_partition};
mound ${sdcard_root_partition} to /mnt,  cd /mnt && dump -0f - / |restore -rf -
umount /mnt
create a backup image file of the sdcard - to avoid re-working all of these in case of any unforseen errors;
Continue to stress the RPI and the external HDD by compiling heavy stuff such as chrome or OpenOffice;

Please recreate the experiment in order to confirm.


configuring clients AllowUpdate bools via config.toml

Crate

relayer
relayer-cli

Summary
Is it possible to configure the following boolean fields for clients via hermes config.toml?
allow_update_after_expiry
allow_update_after_misbehaviour

I don't see an option to enable/disable this functionality via the CLI hermes create client either, and currently both bools seemingly default to false (see below).
This would be useful to allow for recovery of clients via gov proposals.
Success: ClientState {
    chain_id: ChainId {
        id: "agoricdev-3",
        version: 3,
    },
    trust_level: TrustThreshold {
        numerator: 1,
        denominator: 3,
    },
    trusting_period: 1209600s,
    unbonding_period: 1814400s,
    max_clock_drift: 5s,
    frozen_height: Height {
        revision: 0,
        height: 0,
    },
    latest_height: Height {
        revision: 3,
        height: 489366,
    },
    upgrade_path: [
        "upgrade",
        "upgradedIBCState",
    ],
    allow_update: AllowUpdate {
        after_expiry: false,
        after_misbehaviour: false,
    },
}

For Admin Use

[x] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate milestone (priority) applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

Hi, thanks for raising this issue!

Is it possible to configure the following boolean fields for clients via hermes config.toml?

No. At the moment Hermes does not support configuring this fields in any way.
We're considering two approaches to fix this: (1) by making the two fields true by default, or (2) by changing hermes create client CLI to allow optional CLI parameters for adjusting these two fields.
Approach (1) is simpler and
The CLIs with approach (2) will look something like:

create client   [--update-after-expiry <true|false>] [--update-after-expiry <true|false>]

I checked in current Hermes and it seems that the flags do default to true and it's been like that since 0.3.0.
https://github.com/informalsystems/ibc-rs/blob/1a0a31bb2d3cdc2cf2335f20bf8a049d09409a28/relayer/src/chain/cosmos.rs#L1713-L1715
@damiannolan can you confirm that the clients you create with Hermes (please use 0.7.0 if possible) have the fields set to true? If so, I will close this issue.

Confirmed v0.7.0 defaults to true, I had been experimenting with multiple binaries as I needed compatibility with an older sdk version so I think this is where I ended up having defaults as false.
Feel free to close this. Thanks @adizere


authorization oracle

check out those discriminated union types in there, yo. It's a pattern that I may be abusing. Anyway, there's some sanity checking that the auth oracle doesn't do, like "you're trying to authorize an update on a relationship that has no meta field, so what's up with that?"
But ultimately, it all works, and we can assume that the authorizer implementation would reject such requests in a type-specific fashion.
Basically all authorizers have the same type signature
authorizeCreate(AbstractAuthorizeRequest): Promise<AuthorizeResponse>;

but there are derived interfaces (AttributesCreateAuthorizeRequest, for example) that contain the appropriate content. There's a lot of these interfaces, but they ultimately work out like one concrete type for each of ['create', 'read', 'update', 'delete'] X ['attributes', 'relationships'], because the type signatures are all similar but not quite identical. They get collated into appropriate type aliases too, when that makes sense.
There's another class of AuthorizeRequest, the CompoundRequest. That looks like
{ kind: 'compound', combinator: 'and' | 'or', list: AuthorizeRequest[] }

The per-model authorizers don't have to deal with this type, they only get simple requests, but the actual Oracle.authorize() method can be passed one of these (if the user wants). The more common use case will be for certain per-model authorizers to return compound delegate responses (see below).
AuthorizeResponse can be either final or delegated. Final responses look like { kind: 'final', result: boolean }, and are the end of the line. Delegated responses look like { kind: 'delegated', delegate: AuthorizeRequest }. When the per-model authorizer returns a delegated response, it will recursively evaluate the delegate. This pattern would be something like communities.relationships.members-update -> delegate (or (and profile-update, community-read), (and profile-read, community-update)) to model adding a new member to a community requiring either view rights on the community and edit rights on the new member (adding yourself) or edit rights on the community and view rights on the new member (adding someone else).
care must be taken with delegate responses as they do not check for the infinite recursion case.

cc: @mrpinsky  just fyi


mvn io.fabric8:fabric8-maven-plugin:3.1.74:cluster-start error

hi,
mvn io.fabric8:fabric8-maven-plugin:3.1.74:cluster-start error
this error occured :+1:
[ERROR] F8:gofabric8 /root/.fabric8/bin/gofabric8: line 1: syntax error near unexpected token newline' [ERROR] F8:gofabric8 /root/.fabric8/bin/gofabric8: line 1: '

Could you please remove all of /root/.fabric8 and retry ? The possible reason was the DDOS outage yesterday on GitHub.
Nevertheless we need to add checksum verification on the binaries we download.


Update scraper for fed gov dashboard

Hi Ken!
Fed Gov has recently updated their dashboard again which broke the scraper 😅
This PR adds a new scraper:

All data is in tables in html now, so the scraper just fetches and grabs numbers from the html file.
New all.csv file is created by getting and parsing existing all.csv file and adding a new entry (or replacing the entry if the same date entry has already been added)
Backs historical csvs, e.g. 2022-08-31-all.csv, under docs/data/all-historical
This is working locally. I have not updated github workflow in case you want to test it first or make any changes.
I kept the same column names. The only changes in the columns are for aged care cases - fed gov has combined active and recovered cases into one column, so two new columns were added:

${PLACE}_AGED_CARE_RESIDENTIAL_ACTIVE_AND_RECOVERED
${PLACE}_AGED_CARE_IN_HOME_ACTIVE_AND_RECOVERED
Thanks for creating this, it has been very useful for our tracker 🙏

Well things have changed again so I am closing this 🥲
Fed gov has moved to weekly updates and now have a weekly pdf and new page tables/charts.


Please implement port forwarding

Could you please implement support for port forwarding?
Right now if I want to use port forwarding, I have to call adb with subprocess. This is a problem, because I can't use adb, python-adb and usb tethering at the same time.

I haven't looked into how to do this, I'm sure it's a service you can call, similar to shell:. Is this something you'd be willing to look into yourself?

Yes, sure. Maybe I need some help in the process.

Oh sure, I'll help you wherever I can!

I have looked into it for the last few hours and came to the conclusion, that it's not that easy to implement.
If you are using the standard adb cli, the daemon running on your host (not the phone) opens the remote connection and opens the port on your local machine. But since we do not use the daemon, we would need to open the socket by ourselves. Then we would need to assign a thread, which manages the socket and forwards the packets.
Any ideas?


Panic on no file or directory found?

Hello! I am trying to use this app to convert my monolingual dictionaries. However, when running
cargo run yomichan/明鏡国語辞典.zip -y dicthtml-ja-en.zip
I get the error:
(base) lexingtonwhalen@LexingtonnoMBP ~/Desktop/personal/code/kobo_jp_dict % cargo run yomichan/明鏡国語辞典.zip -y dicthtml-ja-en.zip
    Finished dev [unoptimized + debuginfo] target(s) in 0.04s
warning: the following packages contain code that will be rejected by a future version of Rust: quick-xml v0.22.0
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
     Running `target/debug/kobo_jp_dict 'yomichan/明鏡国語辞典.zip' -y dicthtml-ja-en.zip`
Extracting bundled data...
    Metadata entries: 191598
    Pitch Accent entries: 124135
Loading dictionaries...
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/main.rs:150:61
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

I have installed everything (including marisa). Any ideas?

I think I figured it out. I needed to run cargo run -- -y yomichan/大辞泉.zip dicthtml-ja.zip (Note the -- -y)


Segmentation fault in process_keystroke

When the following key sequence is input, lighthouse will segfault:
KeyPress event, serial 33, synthetic NO, window 0x2e00001,
    root 0x2bb, subw 0x0, time 7040730, (271,417), root:(1232,418),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 33, synthetic NO, window 0x2e00001,
    root 0x2bb, subw 0x0, time 7040971, (271,417), root:(1232,418),
    state 0x1, keycode 12 (keysym 0x1002113, U2113), same_screen YES,
    XLookupString gives 3 bytes: (e2 84 93) "ℓ"
    XmbLookupString gives 3 bytes: (e2 84 93) "ℓ"
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x2e00001,
    root 0x2bb, subw 0x0, time 7041363, (271,417), root:(1232,418),
    state 0x1, keycode 12 (keysym 0x1002113, U2113), same_screen YES,
    XLookupString gives 3 bytes: (e2 84 93) "ℓ"
    XFilterEvent returns: False

KeyRelease event, serial 33, synthetic NO, window 0x2e00001,
    root 0x2bb, subw 0x0, time 7041547, (271,417), root:(1232,418),
    state 0x1, keycode 50 (keysym 0xffe5, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Backtrace here:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000404758 in process_key_stroke (query_buffer=0x7fffffffd990 "",
    query_index=0x7fffffffd98c, query_cursor_index=0x7fffffffd988, key=16785683,
    connection=0x610430, cairo_context=0x622780, cairo_surface=0x622360, to_write=0x6100d0)
    at src/lighthouse.c:654
654	      if (isprint(key) && *query_index < MAX_QUERY) {
(gdb) bt
#0  0x0000000000404758 in process_key_stroke (query_buffer=0x7fffffffd990 "",
    query_index=0x7fffffffd98c, query_cursor_index=0x7fffffffd988, key=16785683,
    connection=0x610430, cairo_context=0x622780, cairo_surface=0x622360, to_write=0x6100d0)
    at src/lighthouse.c:654
#1  0x0000000000405d9c in main (argc=1, argv=0x7fffffffdfb8) at src/lighthouse.c:1151

Hi,
Seems nice, I got an issue though.
I have a laptop connected to an external monitor. I can get lighthouse to run if I use my laptop's screen, although in my external screen I get :
Unable to connect to randr crtc zsh: segmentation fault (core dumped)  lighthouse

On 5994050, I’m no longer seeing the segfault, but no characters appear in the echo box, unless the character is ASCII. Since the same thing happens for some non-shifted characters, I’m closing this for another issue.

#17


Prediction bbox written in JSON is not shown on web-ui

Predictions bboxes are not shown
To Reproduce
Steps to reproduce the behavior:

publish project with the Client in label_studio_sdk
add predictions to the task dictionary and published the project

Expected behavior
bboxes should show on the screen
Screenshots

Environment (please complete the following information):

Docker Image: heartexlabs/label-studio:1.12.0
Label Studio Version 1.12.0

My task JSON
PLT-3_2024_L106_myhome-1_1.json
Each task json preview
    {
        "id": 0,
        "data": {
            "image": "s3://dev-wildbird-dataset/myhome-1_2023-11-06-19-46-58-806_PU-N16848-TU-P462-PM-19152-TM-35538_AIM-FAILED-NO-BIRDS_JET-DEV-AIBR-2.jpg"
        },
        "sc_name": "unknown",
        "sc_model_version": "SCM-2404",
        "predictions": [
            {
                "model_version": "RS-DEV-V3",
                "score": 0.15,
                "iou_thresh": 0.6,
                "conf_thresh": 0.15,
                "result": [
                    {
                        "id": "c9d3d5",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1625.52099609375,
                            "y":<PHONE_NUMBER>046875,
                            "width":<PHONE_NUMBER>828125,
                            "height": 197.90625,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "d98b7d",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1494.622314453125,
                            "y":<PHONE_NUMBER>40625,
                            "width":<PHONE_NUMBER>359375,
                            "height":<PHONE_NUMBER>285156,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    }
                ]
            }
        ]
    },
    {
        "id": 1,
        "data": {
            "image": "s3://dev-wildbird-dataset/myhome-1_2024-01-08-20-16-52_PU-N16462-TU-P628-PM-19538-TM-35372_BR-FRAME.jpg"
        },
        "sc_name": "unknown",
        "sc_model_version": "SCM-2404",
        "predictions": [
            {
                "model_version": "RS-DEV-V3",
                "score": 0.15,
                "iou_thresh": 0.6,
                "conf_thresh": 0.15,
                "result": [
                    {
                        "id": "3ce044",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1584.145751953125,
                            "y":<PHONE_NUMBER>484375,
                            "width":<PHONE_NUMBER>953125,
                            "height":<PHONE_NUMBER>898438,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "7ba2a0",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1682.6334228515625,
                            "y":<PHONE_NUMBER>265625,
                            "width":<PHONE_NUMBER>65625,
                            "height":<PHONE_NUMBER>46875,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "827040",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1682.77734375,
                            "y":<PHONE_NUMBER>53125,
                            "width":<PHONE_NUMBER>609375,
                            "height":<PHONE_NUMBER>09375,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    }
                ]
            }
        ]
    },
    {
        "id": 2,
        "data": {
            "image": "s3://dev-wildbird-dataset/myhome-1_2024-03-23-00-04-49-332_PU-N16350-TU-P618-PM-19650-TM-35382_TG-FRAME_JET-DEV-AIBR-2.jpg"
        },
        "sc_name": "unknown",
        "sc_model_version": "SCM-2404",
        "predictions": [
            {
                "model_version": "RS-DEV-V3",
                "score": 0.15,
                "iou_thresh": 0.6,
                "conf_thresh": 0.15,
                "result": [
                    {
                        "id": "66ffc7",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 2691.55078125,
                            "y":<PHONE_NUMBER>3027344,
                            "width":<PHONE_NUMBER>28125,
                            "height":<PHONE_NUMBER>8554688,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "fcc02e",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 2697.2275390625,
                            "y":<PHONE_NUMBER>2929688,
                            "width": 84.103759765625,
                            "height":<PHONE_NUMBER>5683594,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "7336ec",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1381.997802734375,
                            "y":<PHONE_NUMBER>060547,
                            "width":<PHONE_NUMBER>375,
                            "height":<PHONE_NUMBER>7539062,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    },
                    {
                        "id": "e182d8",
                        "type": "rectanglelabels",
                        "from_name": "label",
                        "to_name": "image",
                        "original_width": 3072,
                        "original_height": 1728,
                        "image_rotation": 0,
                        "value": {
                            "rotation": 0,
                            "x": 1855.5205078125,
                            "y":<PHONE_NUMBER>867188,
                            "width":<PHONE_NUMBER>484375,
                            "height":<PHONE_NUMBER>785156,
                            "rectanglelabels": [
                                "not flying bird"
                            ]
                        }
                    }
                ]
            }
        ]
    }

The annotations are out of the picture, I think you should normalise the coordinates to 0.0 -> 100.0, check an existing valid manual annotation.

The annotations are out of the picture, I think you should normalise the coordinates to 0.0 -> 100.0, check an existing valid manual annotation.

ah, I am also wonder about the bbox coordinates format, are there any documentation explain this?
cuz I dont find any details at here
by the way, for example of x
the formula should be like this?
x_norm = (x_abs / orig_img_w) * 100

The annotations are out of the picture, I think you should normalise the coordinates to 0.0 -> 100.0, check an existing valid manual annotation.

ah, I am also wonder about the bbox coordinates format, are there any documentation explain this?
cuz I dont find any details at here
by the way, for example of x
the formula should be like this?
x_norm = (x_abs / orig_img_w) * 100

my formula seems not work the bboxes are shifted:

Solve with the correct coordinate conversion
here's the solution for someone who met the same problem
x_ls_norm = (left / orig_image_w) * 100
y_ls_norm = (top / orig_image_h) * 100
w_ls_norm = (w / orig_image_w) * 100 # the width of the object in the image
h_ls_norm = (h / orig_image_h) * 100 # the height of the object in the image


Switch to go.mod

The pull request has several commits

the interesting one, it adds dependencymagnet, the update-deps target and fixes minor issues
result of go mod init and make update-deps

/retest

Can we add protobuf-devel to our golang-1.12 image so that we don't need to vendor google .proto files?

https://github.com/openshift/release/pull/6277 should fix the verify job

/assign @eparis

Bump of origin at https://github.com/openshift/origin/pull/24264

/assign @soltysh

/retest

Yay! Tests are green, ready for reviewing.

@sttts @deads2k ptal

/hold
until we're on go1.13

@soltysh it should use src/github.com/openshift/api/vendor/github.com/spf13/pflag which exists in the repository, not src/github.com/openshift/api/vendor/k8s.io/code-generator/vendor/github.com/spf13/pflag. What version of Go do you use?

@soltysh it should use src/github.com/openshift/api/vendor/github.com/spf13/pflag which exists in the repository, not src/github.com/openshift/api/vendor/k8s.io/code-generator/vendor/github.com/spf13/pflag. What version of Go do you use?

go version go1.13.5 linux/amd64 but with GOFLAGS=-mod=vendor which is required now.

@soltysh I found the root of the problem. We run ./vendor/k8s.io/code-generator/generate-groups.sh and it tries to run go install ./cmd/defaulter-gen from src/github.com/openshift/api/vendor/k8s.io/code-generator. Therefore, it expects to have vendor there.

@soltysh so, should we create this vendor directory too?

@soltysh another option is to remove vendor/k8s.io/code-generator/go.mod. In this case go won't think that this is a module and will use the top-level vendor.

@dmage or maybe we just need to update the build script, which iirc enters the directory and builds the binary, as last resort we can also just build that binary like we do with others and used a released binary.

Replaced with https://github.com/openshift/api/pull/548


'CatalogOfBlueskyRuns' object has no attribute 'register_handler'

I am trying to follow along with the tutorial section "Array Detector (non-EPICS)" (https://blueskyproject.io/tutorials/Ophyd/04 - Array Detector.html).
I am not able to complete the RunEngine section of the tutorial with databroker version '2.0.0b10'
I run this cell in Jupyter
from bluesky import RunEngine
from databroker.v2 import temp

RE = RunEngine()
db = temp()
RE.subscribe(db.v1.insert)

db.register_handler("MY_FORMAT_SPEC", MyHandler)

This returns the following error:
AttributeError: 'CatalogOfBlueskyRuns' object has no attribute 'register_handler'
If I comment out this line, I get the following error when I try to read from the db:
 UndefinedAssetSpecification: "Resource document with uid 190a2f02-c27a-441d-98fc-90064f1799ed refers to spec 'MY_FORMAT_SPEC' which is not defined in the Filler's handler registry."

Databroker 2.x makes some massive changes, reworking Databroker from a "thick" Python library to a server--client architecture that runs over HTTP.
Most user code is backward-compatible but some aspects (like this one) cannot be done the same way in a server--client architecture. I suggest trying 1.x for now. Once 2.x is released (currently in beta) we'll update the tutorial materials.


Add send capture PNG file to email address

How about add new functionality - after capture PNG file send him to some EMAIL server/sender ?
See a working example code:

import smtplib
import imghdr
from email.message import EmailMessage
Sender_Email =<EMAIL_ADDRESS>Reciever_Email =<EMAIL_ADDRESS>Password = "XXXXXXXXXXXXXXXXXXX"
newMessage = EmailMessage()
newMessage['Subject'] = "Check out the Grafana panel information"
newMessage['From'] = Sender_Email
newMessage['To'] = Reciever_Email
newMessage.set_content('Let me know what you think. Image attached!')
with open('image.png', 'rb') as f:
image_data = f.read()
image_type = imghdr.what(f.name)
image_name = f.name
newMessage.add_attachment(image_data, maintype='image', subtype=image_type, filename=image_name)
with smtplib.SMTP('mailserver.domain', 25) as smtp:
smtp.ehlo()
smtp.starttls()
smtp.ehlo
smtp.login(Sender_Email, Password)
smtp.send_message(newMessage)

Thank you for suggestion. I will take a look on it later, may be on weekend.


FAQ update

FAQ update

 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.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://663df27c4db8d3ebb62fedc0--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66439338aa04c20098f73299--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6643951c6512b0067e533627--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6643b2735a525300786caa4c--harness-developer.netlify.app

LGTM from CD side, but CCM never got back, hence this PR was never merged. Please separate PRs by module.
Additionally, CD FAQs now require you to separate the questions by swim lane and add them to their own respective /docs/ pages. Thanks!


[material-ui][TextField] Add size default prop to api docs

Address https://mui-org.slack.com/archives/C0757QYLK7V/p1733580811632869
closes https://github.com/mui/material-ui/issues/44679

Does this close #44679?

Does this close #44679?

Yes it does, added to PR description


What does the -i prefix with the icons do?

For what version of Nuxt UI are you asking this question?
v3.0.0-alpha.x
Description
I dont really understand what the -i prefix in the context of the icon names does. Thank you for any help!

It's one of the format supported by @nuxt/icon: https://github.com/nuxt/icon?tab=readme-ov-file#iconify-dataset

You can use any name from the https://icones.js.org collection:

In Nuxt UI v2, this formatting was enforced because we used https://github.com/egoist/tailwindcss-icons at the beginning, and we also use it for class merging with tailwind-merge.
In Nuxt UI v3 with latest @nuxt/icon you can use whatever you want. I just kept the habit of using the i- prefix.


DV parser?

Hey man. I'm back again with no so much an issue but an honest query, and wasn't sure how else to ask you. As you'll be aware, DV is now possible on MKVs and I know that DV is similar to HDR10+ in that both are dynamic metadata.
Is it possible to build a parsing script similar to your HDR10+ script that pulls out DV metadata from a source and then is it further possible to inject this metadata into an x265 encode using the x265 encoder to create a DV supported video file?
Figured you might be the right guy to answer this.

No, it's a proprietary format.

Hey man. Sorry to be reopening this topic. I see you've made a DV parser after all. Thanks so much. Is the process for it similar to how I'd encode for HDR10+ with your script? That is:

Get a DV MKV Remux
Extract the RPU from it using your script
Encode the DV MKV Remux with x265 while giving it the extracted RPU as input

Is that it or would there be more steps involved to get a proper encoded output that supports DV?
Thanks for any help that you can give and thanks so much for the DV tool.

The support for use with x265 is currently incomplete, it is not advised to use it for anything other than dumping the original RPU.

Ah I see, understood. Thanks. I'll keep an eye out for any updates on this then.

Sorry to bump this again, but I've seen there's some new developments. There now seem to be almost all parts of the infrastructure needed in place:

Extraction of the rpu
(If needed) RPU Extract to JSON
The conversion HDR10+ to DV (which would need to be reversed and I guess this is the point where it's decided if it's possible, if so it seems quite possible that all of this would work)
The injection of HDR10+ metadata

This feature could be very useful for some people I guess because:

There are some TVs (namely Samsung) and many phones (Android) that only have HDR10+ and no DV
(MKV) DV support is still rather lacking in many cases, my TV for example just doesn't parse DV from it and Kodi also has quite some difficulties and still crashes in many cases with DV support, HDR10+ support on the other hand seems great, both Kodi and the TV accept an MKV with HDR10+ just fine with no problems at all.
Codec support: if you want to transcode DV stuff into codecs with better compression like AV1 you can't use DV, but you can use HDR10+ just fine

Thank you for all your effort and making all of this stuff even maybe practical, without the the work on dovi_tool and hdr10plus_tool this wouldn't even be nearly possible.

What are you asking for? Generating HDR10+ from Dolby Vision metadata?
The original issue subject was the RPU injection, which is implemented.
Support for MKV with Kodi works fine for me, but this is probably device dependent.

Codec support: if you want to transcode DV stuff into codecs with better compression like AV1 you can't use DV, but you can use HDR10+ just fine
This isn't quite true. AV1 supports ST2094-10 metadata.

What are you asking for? Generating HDR10+ from Dolby Vision metadata?\nThe original issue subject was the RPU injection, which is implemented.\n\nSupport for MKV with Kodi works fine for me, but this is probably device dependent.\n\nCodec support: if you want to transcode DV stuff into codecs with better compression like AV1 you can't use DV, but you can use HDR10+ just fine\nThis isn't quite true. AV1 supports ST2094-10 metadata.

What are you asking for? Generating HDR10+ from Dolby Vision metadata?
The original issue subject was the RPU injection, which is implemented.

Yes I suppose it should have it's own issue. I am fully aware it probably not lossless and will not work for every DV profile, but dynamic tone mapping alone can do a great job already, especially while things like 12bit Panels aren't a thing yet. I'll open a seperate issue for it.

Support for MKV with Kodi works fine for me, but this is probably device dependent.

Most likely, but it seems to be a lot less mature and a lot more device dependent than HDR10+ so that seems like a good alternative.

Codec support: if you want to transcode DV stuff into codecs with better compression like AV1 you can't use DV, but you can use HDR10+ just fine
This isn't quite true. AV1 supports ST2094-10 metadata.

Okay that invalidates the point for AV1, it's still an issue with VP9 but it will eventually be replaced with AV1 in a few years as the "8K" stuff is progressing. But I recognize this might be rather niche.


use try/except when converting to bytes

@r0fls Sorry, but can I check why this is necessary? The docstring does request that a memoryview be provided: why aren't you providing one?

ah derp


[Bug] updating the color tokens on the color page

Original issue: https://github.com/carbon-design-system/carbon-website/issues/3314
updating the color tokens on the color page

@thyhmdo what issue # should this reference or close?

@tay1orjones it's this one https://github.com/carbon-design-system/carbon-website/issues/3314

@thyhmdo Great! If you auto link it in the PR body it'll automatically close the issue when this PR is merged.
The docs here do a great job explaining the keywords/syntax that work

The docs here

Thanks Taylor!


Unable to compile OpenSSL 1.1.1d on Cygwin

1.1.1d won't build, 1.1.1c does with the same configuration.
It breaks with that error
gcc  -I. -Icrypto/include -Iinclude  -Wall -O3 -fomit-frame-pointer -DTERMIOS -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DRMD160_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\"" -DNDEBUG  -MMD -MF crypto/dso/dso_dlfcn.d.tmp -MT crypto/dso/dso_dlfcn.o -c -o crypto/dso/dso_dlfcn.o crypto/dso/dso_dlfcn.c
crypto/dso/dso_dlfcn.c: In function 'dlfcn_pathbyaddr':
crypto/dso/dso_dlfcn.c:409:5: error: unknown type name 'Dl_info'
     Dl_info dli;
     ^
crypto/dso/dso_dlfcn.c:422:5: warning: implicit declaration of function 'dladdr' [-Wimplicit-function-declaration]
     if (dladdr(addr, &dli)) {
     ^
crypto/dso/dso_dlfcn.c:423:30: error: request for member 'dli_fname' in something not a structure or union
         len = (int)strlen(dli.dli_fname);
                              ^
crypto/dso/dso_dlfcn.c:432:25: error: request for member 'dli_fname' in something not a structure or union
         memcpy(path, dli.dli_fname, len);
                         ^
Makefile:2735: recipe for target 'crypto/dso/dso_dlfcn.o' failed
make[1]: *** [crypto/dso/dso_dlfcn.o] Error 1
make[1]: Leaving directory '/drives/c/temp/openssl-1.1.1d'
Makefile:174: recipe for target 'all' failed
make: *** [all] Error 2
Command exited with non-zero status 2

Used configuration:
perl configdata.pm --dump

Command line (with current working directory = .):

    /usr/bin/perl ./Configure Cygwin-x86 no-async

Perl information:

    /usr/bin/perl
    5.14.4 for cygwin-thread-multi-64int

Enabled features:

    aria
    asm
    autoalginit
    autoerrinit
    autoload-config
    bf
    blake2
    buildtest-c\+\+
    camellia
    capieng
    cast
    chacha
    cmac
    cms
    comp
    ct
    deprecated
    des
    dgram
    dh
    dsa
    dtls
    dynamic-engine
    ec
    ec2m
    ecdh
    ecdsa
    engine
    err
    filenames
    gost
    hw(-.+)?
    idea
    makedepend
    md4
    mdc2
    multiblock
    nextprotoneg
    pinshared
    ocb
    ocsp
    pic
    poly1305
    posix-io
    psk
    rc2
    rc4
    rdrand
    rfc3779
    rmd160
    scrypt
    seed
    shared
    siphash
    sm2
    sm3
    sm4
    sock
    srp
    srtp
    sse2
    ssl
    static-engine
    stdio
    tests
    threads
    tls
    ts
    ui-console
    whirlpool
    tls1
    tls1-method
    tls1_1
    tls1_1-method
    tls1_2
    tls1_2-method
    tls1_3
    dtls1
    dtls1-method
    dtls1_2
    dtls1_2-method

Disabled features:

    afalgeng                [not-linux]
    asan                    [default]   OPENSSL_NO_ASAN
    async                   [option]    OPENSSL_NO_ASYNC
    crypto-mdebug           [default]   OPENSSL_NO_CRYPTO_MDEBUG
    crypto-mdebug-backtrace [default]   OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
    devcryptoeng            [default]   OPENSSL_NO_DEVCRYPTOENG
    ec_nistp_64_gcc_128     [default]   OPENSSL_NO_EC_NISTP_64_GCC_128
    egd                     [default]   OPENSSL_NO_EGD
    external-tests          [default]   OPENSSL_NO_EXTERNAL_TESTS
    fuzz-libfuzzer          [default]   OPENSSL_NO_FUZZ_LIBFUZZER
    fuzz-afl                [default]   OPENSSL_NO_FUZZ_AFL
    heartbeats              [default]   OPENSSL_NO_HEARTBEATS
    md2                     [default]   OPENSSL_NO_MD2 (skip crypto/md2)
    msan                    [default]   OPENSSL_NO_MSAN
    rc5                     [default]   OPENSSL_NO_RC5 (skip crypto/rc5)
    sctp                    [default]   OPENSSL_NO_SCTP
    ssl-trace               [default]   OPENSSL_NO_SSL_TRACE
    ubsan                   [default]   OPENSSL_NO_UBSAN
    unit-test               [default]   OPENSSL_NO_UNIT_TEST
    weak-ssl-ciphers        [default]   OPENSSL_NO_WEAK_SSL_CIPHERS
    zlib                    [default]
    zlib-dynamic            [default]
    ssl3                    [default]   OPENSSL_NO_SSL3
    ssl3-method             [default]   OPENSSL_NO_SSL3_METHOD

Config target attributes:

    AR => "ar",
    ARFLAGS => "r",
    CC => "gcc",
    CFLAGS => "-Wall -O3 -fomit-frame-pointer",
    HASHBANGPERL => "/usr/bin/env perl",
    RANLIB => "ranlib",
    RC => "windres",
    aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86.s aesni-x86.s",
    aes_obj => "aes_core.o aes_cbc.o vpaes-x86.o aesni-x86.o",
    apps_aux_src => "",
    apps_init_src => "",
    apps_obj => "",
    bf_asm_src => "bf-586.s",
    bf_obj => "bf-586.o",
    bn_asm_src => "bn-586.s co-586.s x86-mont.s x86-gf2m.s",
    bn_obj => "bn-586.o co-586.o x86-mont.o x86-gf2m.o",
    bn_ops => "BN_LLONG",
    build_file => "Makefile",
    build_scheme => [ "unified", "unix" ],
    cast_asm_src => "c_enc.c",
    cast_obj => "c_enc.o",
    cflags => "",
    chacha_asm_src => "chacha-x86.s",
    chacha_obj => "chacha-x86.o",
    cmll_asm_src => "cmll-x86.s",
    cmll_obj => "cmll-x86.o",
    cppflags => "",
    cpuid_asm_src => "x86cpuid.s",
    cpuid_obj => "x86cpuid.o",
    defines => [  ],
    des_asm_src => "des-586.s crypt586.s",
    des_obj => "des-586.o crypt586.o",
    disable => [  ],
    dso_extension => ".dll",
    dso_scheme => "dlfcn",
    ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86.s",
    ec_obj => "ecp_nistz256.o ecp_nistz256-x86.o",
    enable => [  ],
    exe_extension => ".exe",
    includes => [  ],
    keccak1600_asm_src => "keccak1600.c",
    keccak1600_obj => "keccak1600.o",
    lflags => "",
    lib_cflags => "",
    lib_cppflags => "-DTERMIOS -DL_ENDIAN",
    lib_defines => [  ],
    md5_asm_src => "md5-586.s",
    md5_obj => "md5-586.o",
    modes_asm_src => "ghash-x86.s",
    modes_obj => "ghash-x86.o",
    module_cflags => "",
    module_cxxflags => "",
    module_ldflags => "-shared -Wl,--enable-auto-image-base",
    padlock_asm_src => "e_padlock-x86.s",
    padlock_obj => "e_padlock-x86.o",
    perlasm_scheme => "coff",
    poly1305_asm_src => "poly1305-x86.s",
    poly1305_obj => "poly1305-x86.o",
    rc4_asm_src => "rc4-586.s",
    rc4_obj => "rc4-586.o",
    rc5_asm_src => "rc5-586.s",
    rc5_obj => "rc5-586.o",
    rmd160_asm_src => "rmd-586.s",
    rmd160_obj => "rmd-586.o",
    sha1_asm_src => "sha1-586.s sha256-586.s sha512-586.s",
    sha1_obj => "sha1-586.o sha256-586.o sha512-586.o",
    shared_cflag => "",
    shared_cppflags => "-D_WINDLL",
    shared_defines => [  ],
    shared_extension => ".dll",
    shared_extension_simple => ".dll",
    shared_impflag => "-Wl,--out-implib=",
    shared_import_extension => ".dll.a",
    shared_ldflag => "-shared -Wl,--enable-auto-image-base",
    shared_rcflag => "",
    shared_target => "cygwin-shared",
    sys_id => "CYGWIN",
    thread_defines => [  ],
    thread_scheme => "pthread",
    unistd => "<unistd.h>",
    uplink_aux_src => "",
    uplink_obj => "",
    wp_asm_src => "wp_block.c wp-mmx.s",
    wp_obj => "wp_block.o wp-mmx.o",

Recorded environment:

    AR =
    ARFLAGS =
    AS =
    ASFLAGS =
    BUILDFILE =
    CC =
    CFLAGS =
    CPP =
    CPPDEFINES =
    CPPFLAGS =
    CPPINCLUDES =
    CROSS_COMPILE =
    CXX =
    CXXFLAGS =
    HASHBANGPERL =
    LD =
    LDFLAGS =
    LDLIBS =
    MT =
    MTFLAGS =
    OPENSSL_LOCAL_CONFIG_DIR =
    PERL =
    RANLIB =
    RC =
    RCFLAGS =
    RM =
    WINDRES =
    __CNF_CFLAGS =
    __CNF_CPPDEFINES =
    __CNF_CPPFLAGS =
    __CNF_CPPINCLUDES =
    __CNF_CXXFLAGS =
    __CNF_LDFLAGS =
    __CNF_LDLIBS =

Makevars:

    AR              = ar
    ARFLAGS         = r
    CC              = gcc
    CFLAGS          = -Wall -O3 -fomit-frame-pointer
    CPPDEFINES      =
    CPPFLAGS        =
    CPPINCLUDES     =
    CXXFLAGS        =
    HASHBANGPERL    = /usr/bin/env perl
    LDFLAGS         =
    LDLIBS          =
    PERL            = /usr/bin/perl
    RANLIB          = ranlib
    RC              = windres
    RCFLAGS         =

NOTE: These variables only represent the configuration view.  The build file
template may have processed these variables further, please have a look at the
build file for more exact data:
    Makefile

build file:

    Makefile

build file templates:

    Configurations/common0.tmpl
    Configurations/unix-Makefile.tmpl
    Configurations/common.tmpl

I was able to track down the issue to this commit
https://github.com/openssl/openssl/commit/38f6f99cdf0a87345d646d30a764c089c38627ad
and think the issue was introduced with
https://github.com/openssl/openssl/issues/9385
Replacing dso_dlfcn.c  from 1.1.1c fixes the problem.
To reproduce the issue, you could fetch MobaXterm + Development Plugin..

georg-x wrote:

1.1.1d won't build, 1.1.1c does with the same configuration.
[SNIP]
Perl information:
 /usr/bin/perl
 5.14.4 for cygwin-thread-multi-64int

SNIP
Quite old installation as current perl is 5.26, previous 5.22
Look like that on 10 year old system is used recent release.
On such platform definitely third party packages cannot be compiled with
openssl 1.1* due to API change.
Cygwin does not look like platform that cannot be updated.
Regards,
Roumen Petrov

I was unaware of the dependence to the perl version. Upgrading perl solves the problem (at least for me) and 1.1.1d builds fine.
    /usr/bin/perl
    5.26.3 for i686-cygwin-threads-64int-multi

There should be some check in place to clear that up while configuring?

This issue has nothing to do with perl versions, and everything to do with the availability of Dl_info and dladdr(), which we require since #9402.  That's why you needed to update Cygwin to be able to build.
If anyone wants to submit a PR that detects the presence of Dl_info, it's welcome.

#9402 has been merged since I last commented, so this issue is now fixed.

This issue has nothing to do with perl versions, and everything to do with the availability of Dl_info and dladdr(), which we require since #9402. That's why you needed to update Cygwin to be able to build.
If anyone wants to submit a PR that detects the presence of Dl_info, it's welcome.

https://github.com/openssl/openssl/pull/18425 (-:


12 hour format does not differentiate between AM and PM

Hi,
In working on issue #17 in version 0.4.0, I noticed that, when 12 hour time format is configured with config.yaml, one must always pass in the PM portion of the flag, even if the time logged was in the AM, as shown.

It seems to me the command should allow for the user to input AM or PM, or perhaps allow the user to omit the PM entirely, with the assumption that any time entered without PM is assumed to have been logged in the AM. Thoughts?

Hi @dominikbraun, I'd like to take on this issue.

@dominikbraun After looking into it, this was user error on my part. When testing with AM time, I changed the values within the "start" and "end" keys under $HOME/.timetrace/records/2021-05-20, but I did not change the .json filename, since I did not realize the name of the file was how the records were retrieved. Apologies!

Nevermind, #51 will implement the timetrace edit record command for that cases.


[Helm Install Failed] An exception occurred during the deployment of the ES service.

What happened?

Here's some additional information that might be helpful in diagnosing the issue:

kubectl describe pod elasticsearch-864cd54956-q997n -n karpor

kubectl logs elasticsearch-864cd54956-q997n -n karpor

What did you expect to happen?
null
How can we reproduce it (as minimally and precisely as possible)?
I started the deployment entirely according to the document at https://www.kusionstack.io/zh/karpor/getting-started/quick-start.
Anything else we need to know?
No response
Karpor version

$ karpor -V
# v0.5

OS version

# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here

Install tools

@cheny-alf Can you share your operating system and architecture? There is a possibility that the image architecture does not match

@cheny-alf Can you share your operating system and architecture? There is a possibility that the image architecture does not match

os: macOS 15.0
architecture: ARM64
chip: M4

@cheny-alf I don't have an M4 Mac on hand, so it's a bit difficult to reproduce. I'm okay on an M3 Mac.
I guess there are two possible reasons:

One is architecture mismatch. You can try cloning the charts repository locally, modifying the elasticsearch image in the karpor chart, adding the suffix -arm64, and finally manually installing the local charts.
The second type is due to insufficient running specifications and being killed by the system process. You can check the specifications and limitations of Docker Desktop.

Example:

@elliotxx  Thanks for the suggestions! I've tried both methods, but unfortunately, they didn't resolve the issue.Still facing the same error :(

@cheny-alf Sad ... Can you provide more information, such as how to start the k8s cluster, karpor chart version, detailed error information for elasticsearch container, etc
Detailed error information for elasticsearch container:

@elliotxx  I'm currently away from my computer, but I'll revisit the issue this evening.

I've deployed my k8s cluster using kind(v 0.25.0.), and I'm using the latest version of the charts from kusionstack.github.io/charts/. I've followed the quick start documentation from scratch.

cc @ruquanzhao Take a look

@cheny-alf Let me try, maybe it's a hole in M4?

Or in macOS 15🤣. I will try to upgrade to macOS 15 later.

@cheny-alf  Can you provide your ElasticSearch image version like:

By kubectl get pods elasticsearch-xxxxxxx-yyyyy  -o yaml | grep image

And I also recommend to turns on Rosetta in Docker > Settings > General >Use Rosetta for x86/amd64 emulation on Apple Silicon

@cheny-alf Can you provide your ElasticSearch image version like:  By kubectl get pods elasticsearch-xxxxxxx-yyyyy -o yaml | grep image

I've tried these three versions, but all failed.

And I also recommend to turns on Rosetta in Docker > Settings > General >Use Rosetta for x86/amd64 emulation on Apple Silicon

this has already been enabled.

It's strange. Can you paste your docker version by docker version?

Thank you for your patience. I've tried the two latest versions and 4.31.0 as mentioned in the document, but all attempts failed. I'm not familiar with this and need your help. If possible, let's connect on WeChat:<PHONE_NUMBER>7. I'm usually available to focus on this from 7:00-8:00 AM and 22:00-24:00 PM on weekdays, and all day on weekends.

@elliotxx @ruquanzhao Thank you both for your help. I found that others have encountered this issue in the Elasticsearch  issues, so let's wait for the official fix. 🥱

@cheny-alf Okay, let us continue to follow it, this is really a tricky problem ...


⚠ Bofrost.si has degraded performance

In e9c808f, Bofrost.si (https://www.bofrost.si) experienced degraded performance:

HTTP code: 200
Response time: 3124 ms

Resolved: Bofrost.si performance has improved in 7e89769.


Use folder find_or_make on folderToSave

Using folder find_or_make on folderToSave instead of DataObject::get.
Folder will be created and published.
This was not working correctly if overwriting folderToSave in config.yml
I would also suggest to set folderToSave by default to: pdf-previews instead of Uploads folder.
This is what I use to overwrite the setting.
---
Name: my-simple-pdf-preview
After: simple-pdf-preview
---
Ivoba\SilverStripe\SimplePdfPreview\SimplePdfPreviewImageExtension:
    dependencies:
      folderToSave: "pdf-previews"

@RVXD Thx, i followed your suggestion and changed default folderToSave.
Released as 2.1.0


Make it easier to identify the content on each folder

enhancement
Make it easier to identify the content on each folder by creating a name.txt on each game's folder with the game name
Reasoning: Content folder is titled as it's ID. When having multiple of them, becomes tricky to manage, having to recur to NPS and search for the ID (on Google as NPS search is by title only) to know which content is which.
By having SwiftNPS save a small txt file on the folder's root containing the content name, it'll make a lot easier to manage. Yes, it'll still be required to go on each folder, but this is quite easy with the keyboard if you use list/columns in Finder, which shows file previews as well.
Example:

I'll look into this. The App folder and its contents is generated by pkg2zip. If you're looking to store the files, you can save them as a zip file from the preferences window and the filename for those is the actual game name

Ahh okay that makes sense. I've been thinking about another implementation with a root "NPS Downloads" folder, and inside that you have the decrypted App folder along with named symlinks to the corresponding folder in the App directory. This gives you access to the title names without having to click on a txt file and doesn't alter the pkg2zip output. Thoughts?

I'm not much fan of symlinks but that seems to be a cool idea.

If you still want something to make name.txt inside the game directory I made a little java code to do that. I was also looking to organize my game file so I made a code that organizes it for me. What I wanted was similar to yours so I changed some things to make it do what you wanted. I also included my method as well if you are interested. MakeTextFile.class is the one that puts the "name.txt" file in the extracted game folder and MoveToDir.class is the one I use. I included a screenshot of what mine does. You also need the PSV_GAMES.tsv file from nopaystation.com.
NoPayStation.zip

@dhondup2 Yes, definitely! I was thinking of the same concept that iTunes uses to "manage your library", which i've always loved (and is the main reason i used iTunes when I didn't even have an iPod and still used Windows) because it automatically placed the files in categories of Artist > Album > Song. I wanted to do kind of the same managing ability so I put this together to visualize it and I think it looks pretty good.

Thoughts?

That looks like a good idea to sort it but I feel it might be a good idea to put in the region code in the name as well because if someone were to download same game from different regions it might conflict with the shortcut link.

@dhondup2 ok like "Bit Dungeon Plus [EU]"? That's doable :) With this setup though, the location that you choose in the Preferences will now have to be changed to NPS Download Library location. Maybe it should be defaulted to '~/NPS' or '~/NPS Downloads'?

@JK3Y  I don't follow what you mean by default the location to NPS Download.

I see what you mean by that. Yes, that would make it neater and less confusing.

Maybe the folder we set-up as the Download folder is the one to be used as base. So app will stay as is and all other symlinks are siblings of the app one, just like in your screenshot. I think that'll be great.

Commit b3f5ed8 added separate folders for the consoles. One more step closer.


Licence?

Hello,
What is the licence of this project?
Thanks!

Good question. I would assume that it is the same as the zwmarkdown project, since it is a related project, but I need to do that officially, so #84 :)
Thanks for asking !

Ok, we are now under MIT :)


Fix project title centering for GitLab

Fixes #62

@jdruby this code is not enough for #62, as it will break the GitHub layot. It must have some repo detect feature, like if Github then leave it as is, else if Gitlab apply the new header.
@kefranabg what do you think?

By reading #62 , I thought that
<div align="center">

# Welcome to <%= projectName %> 👋
</div>

would work on all platforms. If it's not the case I think we should let as is.
It's not a big problem if this is not center on Gitlab. Add a specific case for Gitlab would add too much complexity and this is not what is wanted.
I'll close this PR and the related issue because I don't think that we have the right solution.
Sorry for that @jdruby 😢


Lazyloading with react router dom v4 issues

Seeing below issue when I am using the lazyloading with react redux connected components.
I went through the existing issues solution and tried with new react router dom versions. But not solution.
Element Type is invalid:expected  string ( for built-in components) or class/function (for composite components) but got: object

Version
Please replace this sentence with the React Router version that you are using.
Test Case
https://codesandbox.io/s/7zwjlm2j3q
Steps to reproduce
Expected Behavior
Actual Behavior

This is a bug tracker, not a support system. For usage questions, please use Stack Overflow or Reactiflux where there are a lot more people ready to help you out. Thanks!


new mokey command switches

Hi,
when I create a new user with freeipa, I would like to send him mokey invitation to set his password. Unless he does this he can't use the email address from freeipa to read this invitation. So it would be nice to add a foreign email address with the mokey command.
A second thing is, that several people can't be reached with a 1 hour limit. It would be nice to add a switch with a variable time delay for the mokey command to make individual time delays possible.
Regards,
Rudi G.

There already exists commands for resetting passwords resetpw and verifying a users email verify-email. These will send the user an email at the address stored in FreeIPA. If the user needs to be contacted at a different address, simply update the record in FreeIPA with the correct email address.
The expiry time for rest password tokens can be set using the reset_max_age config option here. Setting a different expiry time on a per user basis is not supported at this time.

Hello Andrew,
maybe I was misunderstood. I mean:
a newly created user has a local email created also newly which he can’t access until the password is set.
So he can’t read also the mokey invitation to set a password! If I could add an email@address to a
mokey resetpw  —uid user —email email@address
he could follow the link when he reads his email at email@address
I know that reset_max_age exists (and I used it recently when I had to manage a bulk of users). In principle I want a short lifetime like you suggested it (1 hour) but don’t want to fiddle around with general settings every time this is not appropriate because users are i.e. on a scientific trip abroad and the time delay between my working hours and their working hours is to big to be a reasonable change time for the password problem.
Regards,
Rudi Gabler

On 28. Feb 2019, at 14:46, Andrew E. Bruno<EMAIL_ADDRESS>wrote:
There already exists commands for resetting passwords resetpw and verifying a users email verify-email. These will send the user an email at the address stored in FreeIPA. If the user needs to be contacted at a different address, simply update the record in FreeIPA with the correct email address.
The expiry time for rest password tokens can be set using the reset_max_age config option here https://github.com/ubccr/mokey/blob/master/mokey.yaml.sample#L145. Setting a different expiry time on a per user basis is not supported at this time.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/ubccr/mokey/issues/31#issuecomment-468277951, or mute the thread https://github.com/notifications/unsubscribe-auth/AJWQp4ACLiwbrrt13z_RYnhTbGkvQ6ldks5vR924gaJpZM4bWKw7.

In addition to the thing above:
I ha to restore passwords for 200 people which of course ended in a batch
mokey resetpw --uid user1
mokey resetpw --uid user2
..
So there is no possibility to interchange life times there.

Thank you Andrew for the flag. Now life is getting easier.
Regards Rudi

Thank you Andrew for the flag. Now life is getting easier.

Glad to hear! All the credit goes to @xx4h.


add SQLite support

There shouldn't need to be any code changes for SQLite explicitly? The trait is implemented generically.

There shouldn't need to be any code changes for SQLite explicitly?

correct. The most interesting part is the sqlite = ["diesel/sqlite"] in Cargo.toml ;-)

Hrm... I'd really expect Cargo to automatically handle this. ¯_(ツ)_/¯ Thanks for the patch.


HDDS-8528. [Snapshot] Custom SnapshotCache implementation to replace LoadingCache

What changes were proposed in this pull request?
This is a follow-up to HDDS-7935.
Opening this as a draft for suggestions. @GeorgeJahad @hemantk-12 could also take a look at this. I'd like to give some opinions and feedbacks on the overall approach.
The core of this PR is SnapshotCache class and RefCount interface. One can start from there. SnapshotCache is supposed to be thread-safe.
With this approach, every single time an OmSnapshot instance is retrieved using snapshotCache.get(), a corresponding snapshotCache.release() has to be called at the end of its usage, otherwise it causes leakage because the reference count is not decremented. I have identified all existing usages of snapshotCache.get(), wrapped in another helper method or not, on latest master branch and added the logic (or TODO) there on how they should be properly handled.
One can very, very easily forget to release the handle (as we have seen with all the RDB handle leaks Duong has been painstakingly dealing with over the past few months), so I don't think this approach is the cleanest. However, putting the decrement ref count logic in OmSnapshot#close (so that we can wrap OmSnapshot inside a try-with-resources) would also break the encapsulation thus considered hacky by myself.
I put sanity checks everywhere just to be defensive.
In the meantime, I will explore if CacheBuilder#softValues() would be a viable alternative (potential approach 2), where we could probably rely on JVM itself to do the "reference counting" on the instances. Done in HDDS-7935.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8528
How was this patch tested?

[ ] Unit test to be finished.
[ ] Tests that covers existing snapshot cache use-cases, that is all snapshot operations that read or write snapshot DB, should all pass.

I tend to prefer approach 1.
The guava docs has specific warnings about using weak/soft values: https://guava.dev/releases/19.0/api/docs/com/google/common/cache/CacheBuilder.html#weakValues()
"Weak values will be garbage collected once they are weakly reachable. This makes them a poor candidate for caching; consider softValues() instead. "
"Warning: in most circumstances it is better to set a per-cache maximum size instead of using soft references. You should only use this method if you are well familiar with the practical consequences of soft references. "
So I am hesitant about approach 2.
For me the main problem with approach 1 is that the implementation doesn't yet support try-with-resources.
Your concern about encapsulation is valid: As you say, "putting the decrement ref count logic in OmSnapshot#close (so that we can wrap OmSnapshot inside a try-with-resources) would also break the encapsulation thus considered hacky by myself."
Would it be better, if instead of the refCount interface, we had a cacheEntry wrapper class, that manages the reference counting and also implements the close?  The cache entry constructor would take an omSnapshot as a paramater, and would have a getter method to all the enduser to access the actual omSnapshot methods?
So users would always do a try-with-resources{} to get a cache entry and then unwrap that to get the omSnapshot?  Or maybe we could make the cache entry implement the IOMetadataReader interface as well, so there would usually be no unwrapping needed.

I also think some of the snapshot user code should be modified to support try-with-resources.  For example, this code:  https://github.com/apache/ozone/blob/ddfc4b738d6d48ef37f3af41a7f743247933e30a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyPurgeRequest.java#L83-L91
does the checkForSnapshot() call and then passes a reference to the omSnapshot into the double buffer thread.
I think those sorts of calls should be modified just to pass the snapshot key into the double buffer thread and have it get the snapshot from the cache, (with try-with-resources.)
The way it is implemented now, the reference is passed between two threads, and try-with-resources requires it all happen in the same thread.

Thanks @GeorgeJahad for the comment.

I tend to prefer approach 1.
The guava doc has specific warnings about using weak/soft values: guava.dev/releases/19.0/api/docs/com/google/common/cache/CacheBuilder.html#weakValues()
"Weak values will be garbage collected once they are weakly reachable. This makes them a poor candidate for caching; consider softValues() instead. "
"Warning: in most circumstances it is better to set a per-cache maximum size instead of using soft references. You should only use this method if you are well familiar with the practical consequences of soft references. "
So I am hesitant about approach 2.

Yes I read the doc before I went through the implementation. Though I should have used softValues() in approach 2. Also just found an unbounded cache usage in Hive code base here:
https://github.com/apache/hive/blob/master/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ObjectInspectorFactory.java#L76-L80

For me the main problem with approach 1 is that the implementation doesn't yet support try-with-resources.
Your concern about encapsulation is valid: As you say, "putting the decrement ref count logic in OmSnapshot#close (so that we can wrap OmSnapshot inside a try-with-resources) would also break the encapsulation thus considered hacky by myself."
Would it be better, if instead of the refCount interface, we had a cacheEntry wrapper class, that manages the reference counting and also implements the close? The cache entry constructor would take an omSnapshot as a paramater, and would have a getter method to all the enduser to access the actual omSnapshot methods?
So users would always do a try-with-resources{} to get a cache entry and then unwrap that to get the omSnapshot? Or maybe we could make the cache entry implement the IOMetadataReader interface as well, so there would usually be no unwrapping needed.

That could work. I had the same idea briefly but I am not too fond of the extra layer either. However, this would preserve the encapsulation.

I also think some of the snapshot user code should be modified to support try-with-resources. For example, this code:
https://github.com/apache/ozone/blob/ddfc4b738d6d48ef37f3af41a7f743247933e30a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMKeyPurgeRequest.java#L83-L91
does the checkForSnapshot() call and then passes a reference to the omSnapshot into the double buffer thread.
I think those sorts of calls should be modified just to pass the snapshot key into the double buffer thread and have it get the snapshot from the cache, (with try-with-resources.)
The way it is implemented now, the reference is passed between two threads, and try-with-resources requires it all happen in the same thread.

Back when @aswinshakil was implementing this in #4486 I asked the same question of why didn't we just pass the snapshot table key to the Response and get the instance there. The answer was also encapsulation. Response only gets the OMMetadataManager instance (active or snapshot DB) it is operating on. Though I think passing in the extra omSnapshotManager alone is fine.

Only for the snapshot use case, I am inclined towards approach #2.
Reason:

The way SnapshotCache is implemented is not bounded cache. I don't see cacheSize is used in eviction policy if cache is full. Yes, it doesn't proactively claims some entries but only if they are not used by anyone. If it was bounded cache I would have gone the first approach.
If I understood it properly, Cache is used in snapshot to reuse the RocksDB instance instead of create a new one every time. In that case, I think it is OK to rely on GC for that.

I was thinking to use WeakReference with WeakHashMap which I guess would be similar to CacheBuilder#weakValues() and CacheBuilder#softValues().

@smengcl I have no experience with "softValues()" but my understanding is that it won't do any reclamation until the heap is completely full.  Is that correct?

In a degenerate case where OM JVM heap usage is pushed to the absolute limit,

My fear is that this is not a degenerate case but will rather be common once enough snapshot operations have been performed.

@hemantk-12

I don't see cacheSize is used in eviction policy if cache is full. Yes, it doesn't proactively claims some entries but only if they are not used by anyone. If it need bounded, cache it doesn't solve that problem.

It does seem to be implemented here, or am I misunderstanding your point?
https://github.com/apache/ozone/blob/ddfc4b738d6d48ef37f3af41a7f743247933e30a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotCache.java#L167-L174

No, it doesn't because it is called only when release() is called.

@hemantk-12

I don't see cacheSize is used in eviction policy if cache is full. Yes, it doesn't proactively claims some entries but only if they are not used by anyone. If it need bounded, cache it doesn't solve that problem.

It does seem to be implemented here, or am I misunderstanding your point?
https://github.com/apache/ozone/blob/ddfc4b738d6d48ef37f3af41a7f743247933e30a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotCache.java#L167-L174

I had the same impression when I look at it first time but it is not bounded because cleanup() is called only by release().

@hemantk-12

I don't see cacheSize is used in eviction policy if cache is full. Yes, it doesn't proactively claims some entries but only if they are not used by anyone. If it need bounded, cache it doesn't solve that problem.

It does seem to be implemented here, or am I misunderstanding your point?
https://github.com/apache/ozone/blob/ddfc4b738d6d48ef37f3af41a7f743247933e30a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotCache.java#L167-L174

I had the same impression when I look at it first time but it is not bounded because cleanup() is called only by release().

Thanks for the reminder. It needs to call cleanup() by the end of get() as well. I will push the change later. (Doesn't change the fact that the cache is still unbounded.)

@GeorgeJahad In the latest commit posted 8b57f1f , I wrapped OmSnapshot inside ReferenceCounted<> so it becomes ReferenceCounted<OmSnapshot> in the cache dbMap.
The plan is to replace every single instance of OmSnapshot with ReferenceCounted<OmSnapshot> in the rest of Ozone code so that they could be auto-closed with try-with-resources. This would involve quite a few changes:

IOmMetadataReader would need to be wrapped as ReferenceCounted<IOmMetadataReader> as well. (10 usages in 6 files)
Every single call to OmSnapshotManager#checkForSnapshot would now need to be wrapped inside try-with-resources. (10 usages in 6 files excluding tests)
Need to wrap active DB's OmMetadataReader in ReferenceCounted<> as well due to its usage in checkForSnapshot(), although reference counting wouldn't be useful to active OM DB.
snapshotCache.get() usages would need to be checked now that it returns ReferenceCounted<OmSnapshot>. (5 usages in 2 files)
SnapDiff might not be able to use try-with-resources. Rather it would need to call snapshotCache.release() manually when a SnapDiff job is done on both DB instances (fromDB and toDB. CMIIW @hemantk-12

I will postpone further work on this until #4642 is merged to avoid stepped on each others' toes.

@smengcl I took a quick look at ReferenceCounted.java and SnapshotCache.java.  They look good to me.  (The cleanup() method probably requires some synchronization.)  I'll take a closer look when the PR comes out of draft state.

This PR is ready for review at this point.
The overall structure would not receive any big changes from me without further comments.
I will mark the PR ready for review once I resolve the test timeout (caused by strict thread ID checking in ReferenceCounted) in a bit.

I see you already implemented your approach and I think it is fine.  I just wanted to show you what I meant:
Create an interface like this:
https://github.com/GeorgeJahad/ozone/compare/siyaosOriginal..addEvictable#diff-dcbfe3b8f20b10894bacf32579a63703629eaf1d38543c696ca786efdbe4cbe3R1-R7
use it like this:
https://github.com/GeorgeJahad/ozone/compare/siyaosOriginal..addEvictable#diff-c624eeb3f5cb3e828f7218adb6cc7aca1f0108ff1a30c8a2a456f2d0b027880bR120-R122
and implement it like this:
https://github.com/GeorgeJahad/ozone/compare/siyaosOriginal..addEvictable#diff-d5b0b24274c5d19e876dc2ffeb744d4965fa1a23ce727ac09b965f665573c18aR328-R344
The rest of the necessary changes here:
https://github.com/GeorgeJahad/ozone/compare/siyaosOriginal..addEvictable

Hey @smengcl It looks like this comment got marked as resolved just as I was responding to it: https://github.com/apache/ozone/pull/4567#discussion_r1240203895
Please take another look

That looks like it fixes the issues I found.  Thanks!

Thanks @GeorgeJahad and @hemantk-12 for reviewing this! I will merge this shortly.


abnormal meiotic sister chromatid segregation	PMID:26483559

abnormal meiotic sister chromatid segregation
child of
abnormal meiotic chromosome segregation

abnormal meiotic sister chromatid segregation FYPO:0005509

edit file: 2c1f3954eb41e1e924972274fa79f9dca97f499c
release: 8122bc163911279170474760863ce139a3bbd738


Unnecessary, misleading expansion lines for a keyof generic used in a template literal

Bug Report
🔎 Search Terms
keyof generic template literal type symbol
🕗 Version & Regression Information

This is the behavior in every version I tried, and I reviewed the FAQ for entries about generics and assignability

⏯ Playground Link
Playground link with relevant code
💻 Code

type KeyGet<T> = `get${keyof T}`;

🙁 Actual behavior
Notice the fourth Type 'keyof T' line onward. Seems unnecesary?
Type 'keyof T' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
  Type 'string | number | symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
    Type 'symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
      Type 'keyof T' is not assignable to type 'number'.
        Type 'string | number | symbol' is not assignable to type 'number'.
          Type 'string' is not assignable to type 'number'.

🙂 Expected behavior
Type 'keyof T' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
  Type 'string | number | symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
    Type 'symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.

Note that if you replace keyof T with string | number | symbol, the error message is the expected behavior. [playground link with replacement]
type KeyGet<T> = `get${string | number | symbol}`;

Type 'string | number | symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.
  Type 'symbol' is not assignable to type 'string | number | bigint | boolean | null | undefined'.

Weird


Push release 0.0.4 to Cocoapods.

I see that release 0.0.4 has been tagged, but it hasn't been pushed to CocoaPods yet.
http://cocoapods.org/?q=DJWStarRatingView

Thanks for raising this, I've just pushed 0.0.4 to CocoaPods.

Thanks @danwilliams64 ! :+1:


Is there a required XCode Version for this to work?

Please provide us with the following information:

This issue is for a: (mark with an x)
- [ x] bug report

Minimal steps to reproduce

Follow the steps as described on the readme file and run the ./iOSFramework.sh -d script

Any log messages given by the failure

When i run the project, it keeps crashing and showing this error on the log

dyld[10550]: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E
Referenced from: <00A85B80-B310-317A-B63E-0B63AD669A57> /Users/user263933/Library/Developer/CoreSimulator/Devices/75E69B9D-E5AF-408E-87B4-F43038E26567/data/Containers/Bundle/Application/3535E7F5-D6C2-4F23-B33B-3C2C9A4C080E/CommunicationCallingSampleMauiApp.app/Frameworks/AzureCommunicationCalling.framework/AzureCommunicationCalling
Expected in:     <52A480D8-7E2A-3FD8-B329-8470ED0484A6> /Users/user263933/Library/Developer/CoreSimulator/Devices/75E69B9D-E5AF-408E-87B4-F43038E26567/data/Containers/Bundle/Application/3535E7F5-D6C2-4F23-B33B-3C2C9A4C080E/CommunicationCallingSampleMauiApp.app/Frameworks/AzureCommunicationCommon.framework/AzureCommunicationCommon
Expected/desired behavior

For the project to run on IOS simulators and devices

OS and Version?

macOS (Sonoma) 14.6.1

Versions

XCode 16

Mention any other details that might be useful

Thanks! We'll be in touch soon.

@EkponborObehi
Thank you for pointing this issue.
We are now working on it and will be back with a solution soon.

@EkponborObehi
Thank you for pointing this issue. We are now working on it and will be back with a solution soon.

Thank you @pavelprystinka

Hi @EkponborObehi,
Please look at latest versions of MAUI and .NET to support Xcode 16.0. Xcode 16.0 Support for .NET 8/9 and MAUI.

Hi @iaulakh, thank you! This works fine. However, I’m currently having another issue when I run the app and try to join a call which I opened on the link below. This issue is common in the latest releases. The release with 1.6.0 doesn’t have that same problem and it occurs on both Android and IOS.
https://github.com/Azure-Samples/communication-services-ui-library-maui/issues/46

ok, thanks. Please close this issue. We will look at another issue.