Compressed firmware

Description of changes

This should be a significant disk space saving for most NixOS installations (500M closure size reduction for a system with linux-firmware installed).  This method is a bit more complicated than doing it in the postInstall for the firmware derivations, but this way it's automatic, so each firmware package doesn't have to separately implement its compression.
Currently, only xz compression is supported, but it's likely that future versions of Linux will additionally support zstd, so I've written the code in such a way that it would be very easy to implement zstd compression for those kernels when they arrive, falling back to xz for older (current) kernels.
I chose the highest possible level of compression (xz -9) because even at this level, decompression time is negligible.  Here's how long it took to decompress every firmware file my laptop uses:
i915/kbl_dmc_ver1_04.bin                  2ms
regulatory.db                             4ms
regulatory.db.p7s                         3ms
iwlwifi-7265D-29.ucode                    62ms
9d71-GOOGLE-EVEMAX-0-tplg.bin             22ms
intel/dsp_fw_kbl.bin                      65ms
dsp_lib_dsm_core_spt_release.bin          6ms
intel/ibt-hw-37.8.10-fw-<IP_ADDRESS>.f.bseq7ms

And since booting NixOS is a parallel process, it's unlikely (but difficult to measure) that the time to user interaction was held up at all by most of these.
Fixes (partially?) #148197
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

I'd personally rather see also the compressed FW as fixed-output derivation.  For savings on HDD (even without nix.autoOptimiseStore = true;) and on the CDN.

I'd personally rather see also the compressed FW as fixed-output derivation. For savings on HDD (even without nix.autoOptimiseStore = true;) and on the CDN.

I would rather not do that, because it would not work for arbitrary firmware packages as this does, and because compression is not necessarily reproducible.

If it isn't, we have many other reproducibility issues, e.g. man pages and whatever else is compressed already.

That's not what I mean by reproducibility here.
In the case of man pages, we are not usually compressing them in FODs.  So it only matters that the compression output is the same given the exact versions of all the given inputs.  This is reasonable to rely on.
But for compressing in an FOD, we are assuming not just that the current version of xz will always produce the exact same output, but that all future versions will do the same. This is not something we can rely on.

Right, I did underestimate a part in there.

I could have explained better at first.  "Reproducibility" with no further explanation was poor phrasing on my part.

Also, we can fit roughly five copies of compressed firmware into the space that we save from this alone.

Perhaps add an explicit attribute to all-packages.nix for compressed variant of the huge FW package?  Otherwise I suspect that people will not get on-disk savings unless they GC the uncompressed package after every change to the compressed one.

It should get dragged in by the tests, I think?

⬆ staging isn't necessary, though preferably this would get merged "at once" with a round of kernel updates.

It should get dragged in by the tests, I think?

And the installer images!

I'm not sure; maybe only runtime closure is cached.  Anyway, we can just try this way and fix later in case it will be missing.

with a round of kernel updates.

link to see such Prs
https://github.com/NixOS/nixpkgs/pulls?q=is%3Aopen+label%3A"6.topic%3A+kernel"+sort%3Aupdated-desc+is%3Apr

I'm not sure about the practical difference, but I heard that for firmware it's recommended to use
xz -C crc32 --lzma2=dict=2MiB

The Arch people are doing something interesting: https://github.com/archlinux/svntogit-packages/tree/packages/linux-firmware/trunk

maybe only runtime closure is uploaded

Hydra works like remote builds, every derivation produced on the remote builder is downloaded (and then added to the cache). I also confirmed that the various overridden boost-build derivations are in the cache which are build only deps and don't all have a top level attribute.

The Arch people are doing something interesting

Isn't it just that they thought that separating copying and compressing into two steps is a waste of work?

I guess, but they're actually patching the upstream script to compress during installation, which we might also be able to do? Though it doesn't seem like it's less work...

As discussed above, we intentionally split it into different derivations.  Otherwise it would make sense but we already did have it in https://github.com/NixOS/nixpkgs/issues/148197#issuecomment-1095213898

I guess, but they're actually patching the upstream script to compress during installation, which we might also be able to do? Though it doesn't seem like it's less work...

It should be the same amount of work, but it would avoid an intermediate uncompressed output.

I guess, but they're actually patching the upstream script to compress during installation, which we might also be able to do? Though it doesn't seem like it's less work...

It should be the same amount of work, but it would avoid an intermediate uncompressed output.

The thing is, we'd still need to have an uncompressed output for older kernels, so that's not really helpful. Arch just doesn't ship kernels that old.

I'm not sure about the practical difference, but I heard that for firmware it's recommended to use
xz -C crc32 -9 --lzma2=dict=2MiB

-C crc32 embeds a crc32 checksum in the xz output and verifies it on unpacking
--lzma2=dict=2MiB limits the dictionary size to 2MiB, the default is 64MiB on the -9 preset.

Overall these changes result in a very modest 911 bytes increase in size for the linux-firmware package.

Sounds worth it.  It surely makes the decompression cheaper.

Dictionary size shouldn't affect decompression speed I think, just RAM usage? It should speed up compression a bit though.

-C crc32 embeds a crc32 checksum in the xz output and verifies it on unpacking.

This one is actually mandatory (the kernel doesn't support the default crc64, only crc32 and "none").  I had it in the version of the patch I tested, but not the one I PRed.  Thanks for catching!

Reducing the dictionary size does actually seem to make both compression and decompression faster, so I'll make that change.
I don't particularly feel like iterating on this to find the perfect value though, so I'll suggest that as a follow-up activity to anybody who's interested.

This breaks if hardware.firmware has a package which does not have a lib/firmware directory or it is empty.

This breaks if hardware.firmware is empty

Can you share an example?  with import ./. {}; (nixos { hardware.firmware = []; }).config.hardware.firmware builds.

or only has lib/firmware directories which are empty.

This one I can reproduce.

hey sorry for the bump but is there a way to add a .bin file without it being compressed, for some reasons when it is a .xz the kernel fail to load it, i tried on arch as well, as .bin it works perfectly but as .bin.xz the kernel complain that it can't find it.
idk why that is but how can i explicity state not to compress when adding it to harware.firmware ? :)

You can disable compression for all firmware by overlaying compressFirmwareXz to lib.id (aka x: x), e.g. like so:
  nixpkgs.overlays = [ (self: super: {
    compressFirmwareXz = lib.id;
  }) ];

@ajs124 hey, thank you very much !
is it possible to disable it only for the firmware i made and added to hardware.firmware ? :)

I'll add a note that it would be useful for firmware files that aren't handled by the kernel.
For example, Qualcomm modem firmwarey bits being handled by userspace components are expected by default to be present in the firmware load paths for the kernel. I worked around that by using a fresh new bespoke path, but this means care has to be taken that any tool dealing with those knows about it.

@samueldr that's exactly what i'm trying to do !
i want to add the WCN6855 firmware for the qualcom wifi card of my razer blade 14 (2022)
here is the repo : https://github.com/kvalo/ath11k-firmware
it is trivial to do on arch, however it doesn't work when it is compressed as a .xz and i'd like to be able to add it on nix, not compressing all firmware just for that one file is kind of sad though.

I expect you could make the override above conditional by approach similar to:
compressFirmwareXz = firmware: if myBlacklistPredicate firmware then firmware else super.compressFirmwareXz firmware;

Those, AFAIK, should be handled by the kernel, so I'm not 100% sure this is the same.
The ones I was talking about were for use with tqftpserv, and pd-mapper.

@vcunat thanks, i'll try that !
blacklistPredicate is a list of derivation right ?
@samueldr those are already present in linux-firmware but they need a patched version to work with the card in the razer blade 14.
if you look at their sha256 you'll see they aren't the same :)
if i boot on the archiso without them the wifi card just isn't detected.
if i add just that board-2.bin in hw2.0 and 2.1 the wifi card is detected and usable.
if you turn them into .xz, it isn't detected again and you can see in dmesg that the kernel can't find board-2.bin.
no idea how that really works, but as long as i can just make it work on nixos i'll be happy.

@ajs124 also with that bit of nix, nix complains that it cannot find lib, idk the language enough yet to know what to do :)

@vcunat thanks that worked ! :)


Add to Winget

I'm planning to add Bloxstrap to Winget, but some issues need to be resolved on the Bloxstrap side:
Issues to Resolve

[x] Command-line arguments so Bloxstrap can be installed and upgraded silently
[x] A silent uninstall switch to suppress this dialog:

[x] DisplayVersion should be properly set in the Add or Remove Programs list

Todo

[x] Add Bloxstrap to winget-pkgs (https://github.com/microsoft/winget-pkgs/pull/92827)
[ ] Add Winget Releaser workflow (https://github.com/pizzaboxer/bloxstrap/pull/63)

DisplayVersion would also have to be properly set in the Add or Remove Programs list:

Sure, I'll add those and also the rich presence problem mentioned in the other issue. I'll mark it as being part of v1.5.4 but I won't release it (for now) as so far its fairly minor.
About Winget -- how is maintaining the latest downloadable version done?

Sure, I'll add those and also the rich presence problem mentioned in the other issue. I'll mark it as being part of v1.5.4 but I won't release it (for now) as so far its fairly minor. About Winget -- how is maintaining the latest downloadable version done?

Once the manifest is added in the https://github.com/microsoft/winget-pkgs repo, you can use the Winget Releaser action in your CI to automatically publish updates every release (Examples: microsoft/winget-pkgs/pulls (Pull request has been automatically created using 🛫 WinGet Releaser)).
I can help you in adding the workflow once I add Bloxstrap to Winget.

Oh nice, I forgot about having an automatic GitHub release workflow. I'll add the -q arg as the arg for silent install/uninstall. I take it that on initial install, it's just supposed to skip the settings dialog and not launch Roblox?

I take it that on initial install, it's just supposed to skip the settings dialog and not launch Roblox?

Yep, just install with the defaults

What about error handling? Does it just silently quit with an MSI exit code when it encounters an error?

Yeah, it should basically behave as an installer

Added two new args: -quiet and -nolaunch
-quiet will hide the UI and carry out installation automatically, but will still launch Roblox afterwards
-nolaunch will not launch Roblox once bootstrapper stuff is finished
For your use case, you can use -quiet -nolaunch for installing and then -quiet -uninstall for uninstalling.

Thanks. I have tested it, and everything seems to work as intended.

@pizzaboxer I tried upgrading from 1.5.4 to 1.6.0 with -quiet -nolaunch but it doesn't do an upgrade and does nothing. Can you fix this?

Added the -upgrade arg for better clarity, so -quiet -nolaunch -upgrade should work now. I don't want to publish a hotfix release just yet, since there's some other stuff I wanna work on first (mostly DPI scaling). Don't know how long that's gonna take, but hopefully not long.

nvm looks like we're getting a hotfix release anyway lol

Ok here we go: https://github.com/microsoft/winget-pkgs/pull/92827

Oh sweet, thank you!

Now on Winget:

Now all that's left is the workflow: #63

Hi @pizzaboxer , it does not show on https://winget.run/search?query=bloxstrap

Hi @pizzaboxer , it does not show on winget.run/search?query=bloxstrap

winget.run is outdated. Use Winstall instead: https://winstall.app/apps/pizzaboxer.Bloxstrap

@sitiom hi I can message him over discord about it also if you want to add me here: cta#4015

Hi, sorry I don't want to be bugged in my Discord anymore 😅

@sitiom you like disappeared also its been over a year i can develop stuff myself look at my repos or pull request

Anyway, this is not the place to discuss it, and I'm not sure why you left like that.

Yeah, I apologize for ghosting, although I am no longer interested in maintaining the installer. Hopefully we are good 🙂

I have no interest in you maintaining the installer; if I wanted to, I could write a new one in C#, and I have made many changes to it without your assistance. It has not been my primary focus; I have been working on my own meta search engine in Flask (TailsX) and have previously worked on other PHP projects.

I've been researching cloud computing and cyber security for the past few months.

I just wanted to add you on Discord to ask why you were ghosting me. I could have contacted you via email or other means over the last year if I had wanted to. I just thought now would be a good time to ask.

If you add me on Discord, there is no need for me to message you about programming or the installer because I can do that myself. I've also changed a lot since then. I did not appear to be in the best mental health at the time, and I was also younger. I am just curious about the ghosting.


Document how to customize the layout

I added a title and rephrased a bit.

Awesome.

Can this be updated? It the link to layout.js is broken

@clauderic The documentation for this has moved to https://github.com/kadirahq/react-storybook/blob/master/docs/configure_storybook.md#customizing-the-ui

Great! That still does not help though, the link is still broken over there 😿

Oh I see, yeah @arunda made significant changes recently. I guess it's the https://github.com/kadirahq/react-storybook/blob/master/src/client/manager/modules/ui/components/layout/index.js file now, but I did not dig more - you should be able to figure out the right configuration by changing the paths in the config and using this file instead.

Hmmm okay. Doesn't seem to work anymore. It'd be great if the documentation on this was revised

Attempted replacing a UI module following documentation and nothing happens, without errors.

+1

Where's the documentation for this now? All links are dead. :)

I would like to know what the progress is on this?

@jeroenransijn Could you open a new issue on this describing what's wrong? I'm not sure what to do with this now, and It's hard to keep track of a merged PR. Thanks!

I know the last question here is from over a year ago, but for anyone finding this issue that would like to use their own custom layout, you can use the webpack.NormalModuleReplacementPlugin to replace the import of layout.js via @storybook. For example, in your webpack config:
import { NormalModuleReplacementPlugin } from webpack
...
module.exports = (storybookBaseConfig, env) => {
  storybookBaseConfig.plugins = [
    // replace the import (in routes @storybook/ui/dist/modules/ui/routes.js) with your custom layout alias
    new NormalModuleReplacementPlugin(/^\.\/containers\/layout$/, 'custom-layout')
  ]
  ...
  storybookBaseConfig.resolve = {
    alias: {
      'custom-layout': path.resolve(project.basePath, '.storybook/layout.js')
    }
  }
}

Working on refactoring and improving the UI right now,
Please share your ideas and customisations so I know what users want.
See:
https://github.com/storybooks/storybook/pull/4086#issuecomment-420931454

I would like the ability to disable the mobile layout set by isMobileDevice. I developed a custom mobile layout before it was available in storybook. The new release with the mobile layout overrides my addon-options config and breaks my layout.

@ndelangen, the issue I have is more the implementation of the mobile layout rather than the UI itself. My main point of issue is it's triggered by user agent rather than css media queries. In my view, the default layout works well for iPad—the screen width is sufficient for the left sidebar, but still, the mobile layout is triggered and shown on iPads.
Another issue I had—the mobile layout seems to override any options that were set initially, like "showAddonPanel" or "goFullScreen". I had previously set up a button to toggle the addons panel, and this negates that.
I set up my storybook with media queries that hide the left sidebar and show a simplified header with a menu button where the stories are accessible—but only when the viewport is reduced to a specific width.
In general, I think that determining responsive layouts with CSS rather than user agent is a better approach because what's important is usually the screen size, more than anything else. For me, having an option to disable isMobileDevice would be sufficient, but if this were to be redone, I think the best approach would be to handle responsivity with media queries and also add an option to disable mobile layout.

@binomialstew the media-query issue is addressed in my UI refactor.
the new mobile layout in this overhaul will show the component by default when loaded, regardless of settings, I might change that.

#4086


getExpires method returns null

getExpires method returns null.
Also, any docs regarding how often do tokens expire? Can't find anything on the Gumroad API.

I had the same question and contacted the Gumroad support team. They informed me that they never expire. :/
If they fix that in the future it should work.

Closing since this is what Gumroad returns.

Thanks for the info! 👍


Weights calculation fails in python 2.x due to integer division

Fix seasonal means example notebook to work on Python 2.x

Thanks.  You can tell I've moved to Python 3.
Could you also make that change in https://github.com/xray/xray/blob/master/doc/examples/monthly-means.rst?

Done.
The build failures don't look like my fault. Maybe the conda update introduced the problem?

Yes, there appears to be something broken with our testing with conda.
Thanks for the fix, I'll go ahead and merge this.


[DT-473] Create authorization calls for Tanagra Aou integartion

call AoU endpoint with studyId and bearer-token to check if user has access to workspace.
Based on workspace access level of the user implement the

isAuthorized and
listAllPermissions
Methods of the bio.terra.tanagra.service.accesscontrol.AccessControl interface
AoU end-point for the call: /v1/workspaces/access/{workspaceNamespace=StudyId}

Closing this PR in lieu of #506


Move to OpenShift Serverless Operator 1.2.0

Need to stay current with what Red Hat is providing in OpenShift.  Kabanero 0.5.0 will use the Serverless operator 1.2.0.  So far we recognize that any service mesh member roles that Kabanero was maintaining will need to be deleted.  It is unclear if there are other changs required.

This has been delivered in master, should be in Kabanero 0.5.0 release.


fix: Modify Addon color to always be onSurface even when unfocused

📋 Changes description

Use onSurface for focused and unfocussed state for leading and trailing content
🤔 Context

we were using dim2 before on the unfocussed state
📸 Screenshots

🗒 Other info
Close #581

@spark-ui-bot paparazzi golden images


Still warning/erroring about breaking things that are on the list to be uninstalled

CC @alyssais @MikeMcQuaid
I thought this one had been nipped in the bud, but unfortunately apparently not:
Josephs-MacBook-Pro:Cellar joe$ brew uninstall -f gperftools leveldb lz4 rocksdb snappy influxdb08
Warning: /usr/local/Cellar/gperftools/2.5, /usr/local/Cellar/snappy/1.1.3, /usr/local/Cellar/leveldb/1.19, /usr/local/Cellar/lz4/r131, /usr/local/Cellar/rocksdb/4.11.2_1 are required by influxdb08, which is currently installed.
You can silence this warning with:
  brew uninstall --ignore-dependencies gperftools, snappy, leveldb, lz4, rocksdb
Uninstalling gperftools... (101 files, 3.8M)
Uninstalling leveldb... (26 files, 1.3M)
Uninstalling lz4... (19 files, 409.3K)
Uninstalling rocksdb... (84 files, 13.7M)
Uninstalling snappy... (20 files, 421.0K)
Uninstalling influxdb08... (6 files, 12.4M)

Will try to prioritise this but a dupe of https://github.com/Homebrew/brew/issues/1524.


Creating a translation class which enables the usage of translated error messages

created the \Upload\Translation class
created the folder src/Upload/Language with 2 files: en.php and pt-BR.php
the language files returns an array with messages as key / value
the message keys are the original messages used in the project, so if the user
decides to not use the validation class, it won't affect the behavior
added a TranslationTest class
added additional tests to existent test classes
updated the README.md to display usage of the translation class
added aditional methods to use the translation inside existing classes and because
the project still gives support to PHP 5.3, trait usage was avoided

Brandon, I run the test using PHPUnit and all tests passed here.
I think you're missing a .travis.yml in the development branch.

@ramirovjr the develop branch is about 2 years out of date, it should really be removed. Can you retarget this at master?

Yes, just need to fix the conflicts.
It will be done until the end of the day.


Add ability to read values from (Dictionary) Builders

Describe the enhancement requested
We are currently rewriting some of our components to use Arrow and when appending data to the record, we want to basically deduplicate/aggregate the data before adding new rows. For that, we either need to keep track of the previously appended data outside of Arrow, or (and that's what we want to enhance) we read back the data from the underlying builders.
I was able to find several occurrences of reading values from builders.
Next, to potentially adding the *Builder Value(i int) * functions to some types we would mostly be interested in reading back values from a *BinaryDictionaryBuilder.
I've managed to read the indices back from the builders, but then failed and stopped trying to read the values from the underlying BinaryMemoTable.
It would be super helpful to read back those strings from the Dictionary's BinaryMemoTable. Is this something we can somehow add? Is this something within the scope of this library?
diff --git a/go/arrow/array/dictionary.go b/go/arrow/array/dictionary.go
index 2409e296c..622dece04 100644
--- a/go/arrow/array/dictionary.go
+++ b/go/arrow/array/dictionary.go

@@ -1208,6 +1209,54 @@ func (b *BinaryDictionaryBuilder) InsertStringDictValues(arr *String) (err error
 	return
 }

+func (b *BinaryDictionaryBuilder) GetValueIndex(i int) int {
+	switch b := b.idxBuilder.Builder.(type) {
+	case *Int64Builder:
+		return int(b.Value(i))
+	case *Uint64Builder:
+		return int(b.Value(i))
+	case *Float64Builder:
+		return int(b.Value(i))
+	case *Int32Builder:
+		return int(b.Value(i))
+	case *Uint32Builder:
+		return int(b.Value(i))
+	case *Float32Builder:
+		return int(b.Value(i))
+	case *Int16Builder:
+		return int(b.Value(i))
+	case *Uint16Builder:
+		return int(b.Value(i))
+	case *Int8Builder:
+		return int(b.Value(i))
+	case *Uint8Builder:
+		return int(b.Value(i))
+	case *TimestampBuilder:
+		return int(b.Value(i))
+	case *Time32Builder:
+		return int(b.Value(i))
+	case *Time64Builder:
+		return int(b.Value(i))
+	case *Date32Builder:
+		return int(b.Value(i))
+	case *Date64Builder:
+		return int(b.Value(i))
+	case *DurationBuilder:
+		return int(b.Value(i))
+	default:
+		return -1
+	}
+}
+
+func (b *BinaryDictionaryBuilder) Value(i int) []byte {
+	return []byte{}
+}
+
+func (b *BinaryDictionaryBuilder) ValueStr(i int) string {
+	//b.memoTable.(*hashing.BinaryMemoTable).
+	return ""
+}
+
 type FixedSizeBinaryDictionaryBuilder struct {
 	dictionaryBuilder
 	byteWidth int

Component(s)
Go

@metalmatze this seems like a good idea (though for the dictionary builder getting an index you only have to handle the integral types, int8/16/32/64 and uint8/16/32/64, as all the other types are not valid dictionary index types).
For a binary memo table, since it maintains a binary builder internally and only stores the dictionary indices in the hash table as the values, it should be pretty easy to add a Value method which takes in an index and returns the value by calling b.builder.Value(idx). The other types would be a bit harder and would likely require maintaining some sort of reverse mapping.
Would you be willing to make a PR for this? At least for the binary dictionary types since that would be pretty easy to implement as suggested above.


Fix/too many fractional digits

Fix a failed test in traits.rs related to MAX_N_FRAC_DIGITS.

Ahh! I forgot to add --optional-deps when running cargo hack test --feature-powerset. :-(

The failing test is not really related to MAX_N_FRAC_DIGITS, so no need to use it here.
The panic (compile time error) is already documented with macro Dec!.


安卓上，设置active样式，触发之后，不能恢复原来的样式，一直处于active状态

It's the same problem. weex sdk version --- release 0.16

发现 0.17.0 上面会有问题，0.16.0 就正常

This PR/issue doesn't received response since Weex migrated to Apache two years ago and this repository is no longer active yet.
Feel free to ask question in new repository and thanks for your contribution.

This issue is outdated for a long time and will be closed now. You can create a new one if you still have questions.


SLIM-768, xpath parser is now more robust

This pull request makes the build fail.

This pull request makes the build fail.


Regenerate ReplicaPool client

This PR was generated using Autosynth. :rainbow:
Here's the log from Synthtool:
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Cloning https://github.com/googleapis/elixir-google-api.git.
synthtool > Running: docker run --rm -v/home/kbuilder/.cache/synthtool/elixir-google-api:/workspace -v/var/run/docker.sock:/var/run/docker.sock -e USER_GROUP=1000:1000 -w /workspace gcr.io/cloud-devrel-public-resources/elixir16 scripts/generate_client.sh ReplicaPool
synthtool > Wrote metadata to clients/replica_pool/synth.metadata.

Deprecated client

Close this after #2413 is merged


fix: text_summarization uses drop udf

text_summarization uses drop udf instead of drop function.

Thanks for catching it!


add github actions CI

re #920, processing/p5.js#4982
Changes
adds a github actions workflow to run our unit tests for:

all open PRs targeting main
all commits or pushes to main

this does not change how deployments work, but i will look at that in another PR after this is merged.

Looks good!

Looks good!


Allow creating a SurfaceTexture from a D3D11 texture

For webxr layer management on UWP, life is simpler if we can get surfman to create a SurfaceTexture directly from a D3D11 texture. We can't go via a surface annoyingly, since we want the SurfaceTexture to be created directly from the EGL pbuffer, not going via eglCreatePbufferFromClientBuffer.

This is ready for review. cc @jdm @pcwalton

@bors-servo r=jdm

:pushpin: Commit 511b3c5 has been approved by jdm

:hourglass: Testing commit 511b3c505aa8dcab7dce0732762f6e269116f293 with merge e6791a3d8cf526e001f455c4e3f154259ae539f4...

:sunny: Test successful - checks-travis
Approved by: jdm
Pushing e6791a3d8cf526e001f455c4e3f154259ae539f4 to master...


Use the first socket mutator if present.

The C++ API prevents multiple mutators.

Test failures: #19898 #20324


Update MultipleImagePickerModule.kt

Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type Bitmap? issue fixes

I think this is really important right now, I kept getting that error when building Android project @baronha


The script doesn't work for me

After minimal debian installation and running the script, no changes happen to my system. And I don't know what happened.
Note: "I'm using debian 12"

It's not working for debian 12 because hyprland script won't build hyprland. I created this script for debian sid also some people here use debian testing and they said it works on testing as well. Hyprland required newer versions of libs and that's the problem with debian 12 and hyprland.

Okay, thanks a lot for your response.


operator: Use FD-Gpts/s instead of Gpts/s

Each self._section in an IET will now hold FD-Gpts instead of GPts.
This metric will be propagated to profiling.

CI-gpu manually run :heavy_check_mark:
Extensive manual testing with @georgebisbas to make sure the emitted performance metrics are sane :heavy_check_mark:

Hence, merging.

CI-gpu manually run :heavy_check_mark:
Extensive manual testing with @georgebisbas to make sure the emitted performance metrics are sane :heavy_check_mark:

Hence, merging.


Error: Failed to initialize the Noble object: poweredOff

When we are running  below code...
_const BeaconScanner = require('node-beacon-scanner');
const scanner = new BeaconScanner();
// Set an Event handler for becons
scanner.onadvertisement = (ad) => {
console.log(JSON.stringify(ad, null, '  '));
};
// Start scanning
scanner.startScan().then(() => {
console.log('Started to scan.')  ;
}).catch((error) => {
console.error(error);
});_
getting below error
Error: Failed to initialize the Noble object: poweredOff
at Noble.noble.once (/Users/abc/node_modules/node-beacon-scanner/lib/scanner.js:98:16)
at Object.onceWrapper (events.js:315:30)
at emitOne (events.js:116:13)
at Noble.emit (events.js:211:7)
at Noble.onStateChange (/Users/abc/node_modules/noble/lib/noble.js:85:8)
at emitOne (events.js:116:13)
at NobleBindings.emit (events.js:211:7)
at NobleBindings. (/Users/abc/node_modules/noble/lib/mac/yosemite.js:78:8)
at emitOne (events.js:116:13)
at NobleBindings.emit (events.js:211:7)

Never mind. Thank you for your feedback.


feat(chat-e2e): added 'gpt-4o-mini-2024-07-18' model to api tests

Description:
added 'gpt-4o-mini-2024-07-18' model to api tests
Checklist:

[x] the pull request name complies with Conventional Commits
[x] the pull request name starts with fix(<scope>):, feat(<scope>):, feature(<scope>):, chore(<scope>):, hotfix(<scope>): or e2e(<scope>):. If contains breaking changes then the pull request name must start with fix(<scope>)!:, feat(<scope>)!:, feature(<scope>)!:, chore(<scope>)!:, hotfix(<scope>)!: or e2e(<scope>)!: where <scope> is name of affected project: chat, chat-e2e, overlay, shared, sandbox-overlay, etc.
[ ] the pull request name ends with (Issue #<TICKET_ID>) (comma-separated list of issues)
[x] I confirm that do not share any confidential information like API keys or any other secrets and private URLs

/deploy-review

/deploy-review

/deploy-review

/deploy-review/deploy-review

/deploy-review


test(fastrun): suppress persistent cache test

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: hxdmegvii:x: megvii-mgeYou have signed the CLA already but the status is still pending? Let us recheck it.


firebase_mlkit_language clashes with firebase_ml_vision

firebase_core: ^0.4.0+9
firebase_ml_vision: ^0.9.9
flutter_tts: ^1.3.0
camera: ^0.5.8+11
path_provider: ^1.6.24
#problem
firebase_mlkit_language: ^1.1.3

classpath 'com.android.tools.build:gradle:3.5.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.3.4'

dependencies{
api 'com.google.firebase:firebase-ml-vision-image-label-model:17.0.2'
}

ERROR_______
FAILURE: Build failed with an exception.

What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[19.0.
0]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.google.firebase:firebase-ml-vision:20.0.0 -><EMAIL_ADDRESS>bu
t firebase-ml-common version was 22.0.0.
The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art
ifact with the issue.
-- Project 'app' depends on project 'firebase_ml_vision' which depends onto<EMAIL_ADDRESS>0
-- Project 'app' depends onto com.google.firebase:firebase-ml-common@{strictly 22.0.0}
-- Project 'app' depends onto com.google.firebase:firebase-ml-vision@{strictly 20.0.0}
For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep
endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https://
github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = true }" to your bu
ild.gradle file.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 17s
Exception: Gradle task assembleDebug failed with exit code 1

I have tried this : googleServices {disableVersionCheck = true}
and this: classpath 'com.google.gms:google-services:4.1.0'
and nothing has worked.
This is a project where I need both firebase_mlkit_language clashes and  firebase_ml_vision, without one of them I cannot progress, this is consuming so much time, it has been a battle of versions, but until now nothing has worked.
Thank you for any help

No support , No help!!
Is there any package offer ml language ?

@josedihego hi. Have you solved this your issue?

@josedihego hi. Have you solved this your issue?

@nurassylive, unfortunately no. In the end I had to choose just one of these packages, because I hadn't figure out how to use them together.


DEV: Use new setupHashtagAutocomplete + registerHashtagSearchParam APIs

Include context in the setupHashtagAutocomplete call, and use registerHashtagSearchParam to set up category + tag search for the chat composer. We cannot add channel search yet because we need to be able to look up channels by slugs first and also choose/render selected channels. More core work still to come.
c.f. https://github.com/discourse/discourse/pull/18592
Do not merge until the core PR has merged!

I assume failures are due to core not being merged?

I think we should be able to test a test rather easily for this no? No need to go crazy, just a single one to ensure the channel autocomplete is showing.

Sure I will add a test @jjaffeux and yes I think it's core but will double check the tests locally.


Feat/track whispers

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/38533
PROPOSAL:
Tests

[x] Verify that no errors appear in the JS console
Same as QA

Offline tests

QA Steps

[ ] Verify that no errors appear in the JS console

Click on track expense from FAB and create some tracked expenses. (Manual/Scan/Distance) and follow below steps for every tracked expense.
Verify a actionable whisper shows for every tracked expense.
Click on Nothing for now in actionable whisper, verify the whisper dismisses and hides.
Click on Request someone to pay in another actionable whisper for different tracked expense, verify you are redirected participants selector (P2P only, workspace chat will not be visible) and able to complete the request flow. (request field prefilled with existing tracked transaction)
Click on Categorize it in another actionable whisper for different tracked expense, verify you are redirected participants selector (only workspaces visible) and able to complete the request flow. (flow: workspace selector -> category selector -> confirmation page)
Click on "Share it with accountant" in another actionable whisper for different tracked expense, verify you are redirected participants selector (only workspaces visible) and able to complete the request flow. (flow: workspace selector -> confirmation page -> request made-> invte page to invite a member (accountant))

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Are the parameters seem to be passed in the correct order? The merchant seems to take a weird date
https://github.com/Expensify/App/assets/30609178/087de9b8-c4f3-4fd0-9698-6d8719a30b8d
The invite flow seems to be glitchy - it should close after inviting someone but it stays open
https://github.com/Expensify/App/assets/30609178/ceb83661-c7f5-4963-8fb9-a86be327fcf5
NAB: I only see the actionable whisper after I refresh, is there not an optimistic one created?
These are mostly minor things, but it's overall looking good - I was able to convert a tracked to request a scan / distance which is great!

The request parameters worked ✅
On re-login the amount is negative, but I believe that's something to be resolved in the BE
On a second request to an existing IOU, I get this interesting error / it just seems to replace the existing money request
https://github.com/Expensify/App/assets/30609178/cc09db8b-ee4b-45ab-83c6-81577dec8bbd
Categorize seems to work okay besides the infinite loader
However, it seems like adding an additional tracked expense on any of these flows just doesn't work for me

This invite button looks like it has no padding - it should be like the other invite pages

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/thienlnam in version: 1.4.63-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/mountiny in version: 1.4.63-21 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Shader.has_uniform() incorrectly reports uniforms as missing

Godot version
Godot 4.0 alpha14
System information
Windows 10 64 bits GLES3 GeForce GTX 1060 6GB/PCIe/SSE2
Issue description
I'm writing node configuration warnings that check shaders for specific uniforms required for some features to work in a node, but it seems no matter which uniform I test, has_uniform always return false. I need to be able to check them.
Workaround:
static func shader_has_uniform(shader: Shader, uniform_name: String) -> bool:
	var uniforms = RenderingServer.shader_get_shader_uniform_list(shader.get_rid())
	for uniform in uniforms:
		if uniform.name == uniform_name:
			return true
	return false

Steps to reproduce

Have a shader with vec3 uniform test_color; which uses it, for example outputting to ALBEDO
Create a script which loads the shader and calls shader.has_uniform("u_test_color")
Observe it prints false, instead of true.

Minimal reproduction project
ShaderHasUniform.zip

Fixed by https://github.com/godotengine/godot/pull/68513


Add dask to docs requirements.

We want to generate API webpages on readthedocs. Previously, we got empty webpages and now I make a fix for it.
The fix may need Prof. Bouman's help.

Enable the option  Install Project under Admin -> Advanced Settings on readthedocs as shown in the above figure.
I highlight the section, Prof. Bouman @cabouman can try to enable the option.

To ensure readthedocs can build all API references(cone3D, mace, multinode), I add required packages to docs/requirements.txt in this PR.

Here is the built webpage for API reference. https://mbircone-wenrui.readthedocs.io/en/latest/cone3D.html
I fork mbircone to my own account and tested it on readthedocs.

Wenrui, I just made the requested change.

I'm going to accept this PR, so we can move ahead.


fix: proper naming for esm

This fixes a bug where node ESM code does not recognize it as ESM in Jest (and possibly ESM node applications too), because the file extension is not .mjs.
I see this has already been fixed for "cjs". This just does it for "mjs" as well. Confimed working.

[x] I have added automatic tests where applicable
[x] The PR title is suitable as a release note
[x] The PR contains a description of what has been changed
[x] The description contains manual test instructions

Changes

Test

are you sure this is correct? the vite config specifies output for es modules as having .js

i believe this is rather an issue with jest, and their lacking support of es modules https://github.com/jestjs/jest/issues/9430 this was the main driver for us to switch to vitest

What I did to verify was to change the dist file locally in my own node-modules of the ftrack widget to be called .mjs instead of es.js.
FtrackWidget was the only package not working out of approximately 1800 of our packages for ESM in Jest. It gave an error saying "export" was not defined.
We just followed https://jestjs.io/docs/ecmascript-modules
In there, as of Node 20, ESM is working just fine (although through an experimental flag).
Although because I only verified it in the dist folder directly by modifying that locally, I didn't catch the build config change needed to. I'll update that.

I update the config now. Thanks for catching that.

<EMAIL_ADDRESS>Here's a patch file that made Jest work in our environment.

<EMAIL_ADDRESS>Here's a patch file that made Jest work in our environment.

isn't that for @ftrack/web-widget rather than @ftrack/api?

Ooooh, I got it mixed up - my bad. I thought this was a kind of monorepo containing both 🤦
Will make it over there and close this.


AnimeH and Spyfakku error

Source information
AnimeH and Spyfakku
Source language
English
Steps to reproduce
For animeH, no thumbnail when you open it.
For spyfakku, unexpected json token at offset 119
Expected behavior
Something like this shouldn't not happen
Actual behavior
Just show the thumbnail and open it normally
Mihon/Tachiyomi version
Tachiyomij2k latest
Android version
9
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version 0.15.3.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Some pages don't load in animeh, this is a source side error not extension side.

Yesterday still ok. Now soyfakku error


Programming Exercises: Fix auxiliary repositories not visible on exercise detail page

Checklist
General

[ ] I tested all changes and their related features with all corresponding user types on a test server.
[x] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[ ] Language: I followed the guidelines for inclusive, diversity-sensitive, and appreciative language.
[ ] I chose a title conforming to the naming conventions for pull requests.

Client

[x] I followed the coding and design guidelines and ensured that the layout is responsive.

Motivation and Context
I noticed in the live server, that links to auxiliary repositories were no longer shown on the exercise detail page, even if they exist.
Description
This was caused by overwriting the local programmingExercise object after a second server call. The request to with-template-and-solution-participation does not contain the auxiliary information anymore:

With this PR, the second call now also sends the necessary information about auxiliary repositories to the client.
Steps for Testing
Prerequisites:

1 Instructor
1 Programming Exercise with auxiliary repositories

Open the exercise detail page
Check that links to the auxiliary repositories are shown

Review Progress
Code Review

[ ] Review 1
[ ] Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Screenshots

Codecov Report

Merging #5980 (3a86227) into develop (22b9eec) will increase coverage by 4.18%.
The diff coverage is 42.85%.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #5980      +/-   ##
=============================================
+ Coverage      75.77%   79.95%   +4.18%
- Complexity         0    12375   +12375
=============================================
  Files           1118     2126    +1008
  Lines          44443    84456   +40013
  Branches        8379    12667    +4288
=============================================
+ Hits           33675    67524   +33849
- Misses          5596     9401    +3805
- Partials        5172     7531    +2359

Impacted Files
Coverage Δ

...ercise-plans-and-repositories-preview.component.ts
50.00% <25.00%> (+16.66%)
:arrow_up:

.../artemis/web/rest/ProgrammingExerciseResource.java
87.95% <50.00%> (ø)

...emis/repository/ProgrammingExerciseRepository.java
96.07% <100.00%> (ø)

...1/artemis/domain/enumeration/NotificationType.java
100.00% <0.00%> (ø)

...s/bitbucket/BitbucketAuthorizationInterceptor.java
50.00% <0.00%> (ø)

.../in/www1/artemis/service/BuildLogEntryService.java
63.49% <0.00%> (ø)

...www1/artemis/domain/notification/Notification.java
68.88% <0.00%> (ø)

...um/in/www1/artemis/web/rest/UserJWTController.java
84.61% <0.00%> (ø)

...s/domain/tutorialgroups/TutorialGroupSchedule.java
90.62% <0.00%> (ø)

.../www1/artemis/web/rest/metis/ReactionResource.java
100.00% <0.00%> (ø)

... and 1001 more

Flag
Coverage Δ

client
75.77% <25.00%> (+<0.01%)
:arrow_up:

server
84.59% <66.66%> (?)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 22b9eec...3a86227. Read the comment docs.

I don't think we should rename the endpoint. While auxiliary repositories are technically a new entity that needs to be loaded, I would consider them a normal part of the exercise details. Since they are also included in the regular endpoint for retrieving a PE, they should also be in this case. Also this would make the endpoint name quite long.


Insert query with WhereNotExist clause (insert or ignore)

I am trying to generate the following query:
INSERT INTO "tree_prototype" ("name", "height")
SELECT 'Accacia 13.8m', 13.78331
WHERE NOT EXISTS(SELECT 1 FROM "tree_prototype" WHERE "name" = 'Accacia 13.8m')

But all I am able to get sqlkata to make is this:
INSERT INTO "tree_prototype" ("name", "height")
SELECT 'Accacia 13.8m', 13.78331
FROM "tree_prototype"
WHERE NOT EXISTS(SELECT 1 FROM "tree_prototype" WHERE "name" = 'Accacia 13.8m')

The second query will throw because of a unique constraint failure on the name column.
Using the following code:
var notExists = new Query("tree_prototype")
    .WhereNotExists(q =>
    q.From("tree_prototype")
        .Where("name", data.name))
    .SelectRaw("?,?", data.name, data.height);

var insert = new Query("tree_prototype")
    .AsInsert(new[] { "name", "height" }, notExists);

db.Execute(insert);

How would I write the code to generate the desired SQL code?

You could check if the value exists in separated queries.
But the query could be also like this:
var notExists = new Query()
    .WhereNotExists(q => q.From("tree_prototype")
                          .Where("name", data.name))
    .FromRaw("( VALUES ( ?, ? )) AS t ( name, height )", data.name, data.height)
    .Select("t.name", "t.height");

var insert = new Query("tree_prototype")
    .AsInsert(new[] { "name", "height" }, notExists);

db.Execute(insert);

Refer to this Microsoft documentation.


[WIP] pipeline to configure nexus

applies the old automation in https://github.com/rht-labs/ansible-stacks/tree/master/roles/configure-nexus/ via a pipeline

no longer needed, replaced by pre/post tasks #122


Remove the post-install hooks when they were completed successfully

An installation of Istio with mTLS enabled will result in the following state:
NAME                                       READY     STATUS      RESTARTS   AGE
istio-citadel-85fcc767fc-wpz5q             1/1       Running     0          1m
istio-egressgateway-867bc6b594-2shzs       1/1       Running     0          1m
istio-galley-5f5f9b9676-2q7zs              1/1       Running     0          1m
istio-ingress-787bb7c94b-zpxrz             1/1       Running     0          1m
istio-ingressgateway-6df8678998-6bgjh      1/1       Running     0          1m
istio-mixer-post-install-rfwxk             0/1       Completed   0          1m
istio-pilot-6db8d59464-zdj55               2/2       Running     0          1m
istio-policy-7b978cf7df-dc596              2/2       Running     0          1m
istio-security-post-install-vzlx4          0/1       Completed   0          51s
istio-sidecar-injector-855f88c954-p6lkp    1/1       Running     0          1m
istio-statsd-prom-bridge-59b45fd6d-kfk86   1/1       Running     0          1m
istio-telemetry-7dfcc797b6-hnvnh           2/2       Running     0          1m
prometheus-ffd95f9f6-fcmrj                 1/1       Running     0          1m

Although completed, the Mixer and Security post-install jobs are lingering until next install.
This PR remove them upon successful completion leaving the environment a bit cleaner.

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: ymesika
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: linsun
Assign the PR to them by writing /assign @linsun in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Please add Gemini 1.5 Flash   model

@abi for gemini support, should the assemble_prompt functions be created for openai and gemini separately or in the same function using conditionals?

Ideally, we generate all prompts in OpenAI format and then, have unittested translation functions for other formats like Claude and Gemini.

Hi @abi, I am working on adding support for Gemini, have added the support but facing an issue if you could help please. Gemini requires the image to be in bytes format, which is creating problem in the write_logs function as bytes value is not JSON serializable while attempting to dump the assemble_prompt as JSON.
One solution I thought of was to convert it to base64 before dumping, either using a recursive function or directly accessing the keys. Is there any better alternative?

@naman1608 thanks for working on it. We pass images in base64 format to both OpenAI and Anthropic. Should be easy to convert an image to base64 with Python. We should generally store images in base64 for this project.

Hi 👋 Any updates on it?


Changed MouseMoved((i32, i32)) to MouseMoved(i32, i32), breaking change

Fixes #751

Thanks. I'll merge when appveyor confirms that it's good. Please ping me if I forget.

@tomaka


Create road segment Tableau dashboard

We will continue with this issue in the future - for now it's not a priority


Unable to connect websocket

I use third party tool to connect my mqtt server and it can connect successfully.
Here is my connect setting in the mqtt tool.
https://imgur.com/a/HprXrKc
But when I try connect in c#, it would show error message:
Unable to connect the remote server, the request was aborted: Could not create SSL/TLS secure channel.
How to implement as MQTT Explorer?
OS：Windows server 2012 R2
.Net：.NET FrameWork 4.7
using MQTTnet;
using MQTTnet.Client;
using MQTTnet.Client.Connecting;
using MQTTnet.Client.Options;

public override void Run()
{
	var option = new MqttClientOptionsBuilder()
					.WithWebSocketServer("wss://mymqttserver:443")
					.WithClientId(Guid.NewGuid().ToString())
					.WithTls(new MqttClientOptionsBuilderTlsParameters()
					{
						AllowUntrustedCertificates = true,
						UseTls = true,
						SslProtocol = SslProtocols.Tls12,
						CertificateValidationCallback = delegate { return true; },
					})
					.WithCleanSession()
					.Build();
    var mqtt = new MqttFactory().CreateMqttClient() as MqttClient;
    mqtt.ConnectAsync(option).Wait();

	string convertMsg = JsonConvert.SerializeObject("Mqtt Connect Successfully!!");

	var appMsg = new MqttApplicationMessage();
	appMsg.Payload = Encoding.UTF8.GetBytes(convertMsg);
	appMsg.Topic = "myTopic";
	appMsg.QualityOfServiceLevel = MqttQualityOfServiceLevel.AtLeastOnce;
	appMsg.Retain = false;

	mqttClient.PublishAsync(appMsg).Wait();
}

I assume the question is answered. If not please reopen the ticket.


Host the explorer html ourselves

Drop the need for caddy,

[x] investigate if we can import the caddy code for let's encrypt license wise

caddy is apache2, so it's fine

according to the caddy comment in the tls package, this should be fairly easy:
https://github.com/mholt/caddy/blob/master/caddytls/tls.go

PR is ready, needs to be tested in production
https://github.com/threefoldtech/rivine/pull/511


tarheader: pop_posix: define also _DEFAULT_SOURCE

On my fedora 21 system I have this warning:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
feature_test_macros(7) says that, starting from glibc 2.20, _BSD_SOURCE is
deprecated and to use _DEFAULT_SOURCE instead.
It also suggests (to compile without warnings code that needs _BSD_SOURCE for
glibc <= 2.19) to define both _BSD_SOURCE and _DEFAULT_SOURCE.

LGTM, thanks for the fix + details.


baresip: 2.8.1 -> 2.8.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/baresip/baresip/releases.
meta.description for baresip is: "A modular SIP User-Agent with audio and video support"
meta.homepage for baresip is: "https://github.com/baresip/baresip"
meta.changelog for baresip is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.8.2 with grep in /nix/store/flmip13jvriiz8cfklqvybg1xmswsh2z-baresip-2.8.2
found 2.8.2 in filename of file in /nix/store/flmip13jvriiz8cfklqvybg1xmswsh2z-baresip-2.8.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
baresip

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/flmip13jvriiz8cfklqvybg1xmswsh2z-baresip-2.8.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A baresip https://github.com/r-ryantm/nixpkgs/archive/cd81115e20defb47a56e75974f927aef42b8e110.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/flmip13jvriiz8cfklqvybg1xmswsh2z-baresip-2.8.2
ls -la /nix/store/flmip13jvriiz8cfklqvybg1xmswsh2z-baresip-2.8.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

baresip

Maintainer pings
cc @elohmeier @7c6f434c for testing.

There are some wired errors, looks like missing dependency or unpatched binaries?
[nix-shell:~/.cache/nixpkgs-review/pr-195546]$ ./results/baresip/bin/baresip
baresip v2.8.2 Copyright (C) 2010 - 2022 Alfred E. Heggestad et al.
Local network addresses:
    enp0s25:  <IP_ADDRESS>
      wlan0:  <IP_ADDRESS>
      wlan0:  <IP_ADDRESS>
    enp0s25:  2a02:8071:3e86:5ea0:c364:fbcb:619f:a3a0
    enp0s25:  2a02:8071:3e86:5ea0:8634:97ff:fe24:4d9b
    enp0s25:  fe80::8634:97ff:fe24:4d9b
      wlan0:  2a02:8071:3e86:5ea0:2c0a:b3ff:fe91:38ac
      wlan0:  fe80::2c0a:b3ff:fe91:38ac
ua: adding SIP CA file: /etc/ssl/certs/ca-certificates.crt
ua: adding SIP CA path:
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/stdio.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/stdio.so: cannot open shared object file: No such file or directory)
module stdio.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/g711.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/g711.so: cannot open shared object file: No such file or directory)
module g711.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/auconv.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/auconv.so: cannot open shared object file: No such file or directory)
module auconv.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/auresamp.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/auresamp.so: cannot open shared object file: No such file or directory)
module auresamp.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/alsa.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/alsa.so: cannot open shared object file: No such file or directory)
module alsa.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/uuid.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/uuid.so: cannot open shared object file: No such file or directory)
module uuid.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/stun.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/stun.so: cannot open shared object file: No such file or directory)
module stun.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/turn.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/turn.so: cannot open shared object file: No such file or directory)
module turn.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/ice.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/ice.so: cannot open shared object file: No such file or directory)
module ice.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/account.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/account.so: cannot open shared object file: No such file or directory)
module account.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/contact.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/contact.so: cannot open shared object file: No such file or directory)
module contact.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/debug_cmd.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/debug_cmd.so: cannot open shared object file: No such file or directory)
module debug_cmd.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/menu.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/menu.so: cannot open shared object file: No such file or directory)
module menu.so: No such file or directory [2]
dl: mod: /nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/netroam.so (/nix/store/hqx4c5sm0rmiprayn4jyryllsfx36g05-baresip-2.6.0/lib/baresip/modules/netroam.so: cannot open shared object file: No such file or directory)
module netroam.so: No such file or directory [2]
Populated 0 audio codecs
Populated 0 audio filters
Populated 0 video codecs
Populated 0 video filters
baresip is ready.

@onny could you check your baresip user config? It might be populated by a prior baresip run with outdated store paths for the module paths.

Ah this was the issue, thank you!


Fix double the

Docs Build status updates of commit ddf3df7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

en/AVFoundation/AVMutableCompositionTrack.xml
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


First pass at updating the README.md to match the new addonify patterns.

I'm submitting this as a PR to the addonify branch so that @slindberg and @jakesjews can review it. Here is a link to the rendered view.
There are two things I specifically wanted to get feedback on.

Since I've upgraded the docs to use the newish ES6 model pattern (rather than globals) the examples tend to have more files. See here. I added the name of the model as a path based code comment at the top of each snippet. This is what many addons do, include the official ember model guides. My question is, is that clear enough for someone reading it? If not, I think a good alternative would be to make a variable, we do this in our app. Eg.
// app/models/person.js
import Model from 'ember-data/model';
import {
  fragment,
  fragmentArray,
  array
} from 'model-fragments/attributes';

let PersonModel = Model.extend({
  name      : fragment('name'),
  addresses : fragmentArray('address'),
  titles    : array()
});

export default PersonModel;

fragment and Fragment look kind of ambiguous in the documentation. If you didn't catch the difference, the former is the attribute marco while the later is the model class. Just looking at it, it seems ripe for confusion. Perhaps I should change fragment to fragmentAttr? But then what about fragmentArray and array, would you call them fragmentArrayAttr and arrayAttr respectfully? Thoughts?

TODO:

[x] We probably don't need to meantion ember build any more.
[x] Document how to use testem and ember try:testall.

@workmanw the readme looks good!
As for your two questions

I think it is preferable to follow whatever the ember documentation convention is so I think what you have is good
It definitely is a bit confusing to have fragment and Fragment mean different things but for the sake of backwards compatibility I'm in favor of keeping it the same.

@jakesjews Thanks!

It definitely is a bit confusing to have fragment and Fragment mean different things but for the sake of backwards compatibility I'm in favor of keeping it the same.

Yea this is exactly how I feel. In thinking about it more, really we kind of has this problem with the namespace (IE MF.fragment vs MF.Fragment) and now it's really just a documentation thing. Users could choose to do import { fragment as fragmentAttr } from 'model-fragments/attributes'; if they wanted to. Yay ES6!
I'll leave this open for a few days to give @slindberg a chance to review. I'm also trying to get another dev I work with to give it a once over, but he's strapped for time at the moment.

@slindberg @jakesjews I did have a colleague review these changes. His feedback was to make all the the code snippet use single-quotes. Other than that, he was good on it. If there are no objections, I'll likely merge this into the addonify branch shortly.

I think the examples are plenty clear since you can read the import directly, I'm actually more worried about removing the DS and MF namespaces from the text, since it's not obvious where they are coming from anymore. Without keeping the namespaces though, I don't what the answer is. It'd be a little weird to refer to ember-data/Transform or model-fragments/Fragment...
As for fragment vs. Fragment I agree it's not ideal, but changing either would break semver, so they are pretty locked in. :shrug:


blocksparse:matmul - convert non row/column-major inputs to row/column-major format that respects trans.

As per title.
Before:

calls to contiguous for inputs with last 2 strides different from 1. This avoids calls to contiguous for inputs which are neither row- nor column-major but have exactly one of the two last strides equal to 1. Not sure whether this is the intended behavior.
if contiguous is called, transis ignored, which allows cases such as (column-major) @ (row-major) to occur. The latter could still occur even with this PR, but only if both inputs are already row/column-major which is not a regression from the previous behavior.

I don't understand how the previous behavior is wrong? Triton should handle any strides for the input properly, but the performance when no stride is equal to one will be bad because vectorization won't be possible and the compiler won't know along which axis to coalesce memory access.

It is not wrong. This PR just improves the logic when contiguous is called, i.e. it just makes sure that the newly created tensors are better aligned for the matmul operation.

Hmm, have you seen a case where this change provide some speed-up? The transposition after the call to contiguous shouldn't be necessary, as Triton doesn't really care which stride is equal to 1. If there are cases where this change improves perf, this could be indicative of a deeper compiler issue that needs to be fixed at the source.

Sure, I will benchmark. But how come row-column majorness does not matter for matmul-like operations?

The compiler can detect which stride is equal to 1, and order the threads accordingly. You can pass matmul arguments with any strides and it should work (modulo compiler bugs). And performance should be good as long as one of the two strides is equal to 1.

I did run benchmarks, indeed, I do not see any significant improvements. This is actually really nice, I did not know Triton handles inputs with grace, amazing :) Thank you and sorry for the noise!


Include a standard PSF as a Filter parameter

As proposed by @herjy, in future releases of galcheat we could try to add a standard PSF to the parameters.
The format is still to be discussed : small image, parametric representation, optical wavefront.
The important point is that is should be consistent across surveys.

An easy way to do this to begin with is probably to use analytic profiles with galsim as @thuiop suggested I think.
For now it's besides the point, but I don't think all PSFs have to use the same model or type of models, as long as the API remains the same no matter what survey we use. e.g. I would see no problem with calling something like
p_hsc_r = HSCSurvey.r.psf(ra, dec, t)                  # For HSC r-band PSF
p_hst_f814w = HSTSurvey.f814w.psf(ra, dec, t)  # For HST f814w PSF
One calls a parametric profile, but the other uses an image and a distortion under the hood, that would be completely fine with me. I put ra, dec and t, but I don't anticipate that we'd provide full time and space coverage for varying PSFs, though if the information is available and can be used in galcheat, why not. And if not, we should just let the user know that the psf used is static.

I'll try to make a proposition there.

Would the BTK default PSF be approrpiate for this ? ( at least for the constant version)

Right, actually BTK already has everything we need for that. This is making me reconsider. Should we leave it at that or provide what is basically the get_psf method from BTK here?
I think that's the kind of thing that has its place in galcheat but we should think of what's the easiest.

Maybe we can discuss this in the BTK meeting this Wednesday, I hesitate to include simulations from galsim in galcheat since it feels out of scope for a "cheatsheet".

Axel suggests: provide psf parameters / format understood by galsim so that galsim is not a dependency. See how they do it in https://github.com/LSSTDESC/psf-weather-station


Add info about changefeed retryable errors

Florence Morris (florence-crl) commented:
Currently, the below 2 links mention changefeed retryable errors:
https://www.cockroachlabs.com/docs/v21.1/ui-cdc-dashboard.html#changefeed-restarts
https://www.cockroachlabs.com/docs/v21.1/stream-data-out-of-cockroachdb-using-changefeeds.html#using-the-db-console
However, they do not describe what a retryable error is. I reached out to our CDC engineering team (@HonoreDB) for more information about retryable errors and 1 error in particular.
In general, a retryable error means the changefeed will automatically retry whatever caused the error. If you see a retryable error occasionally, but no other evidence of a problem, no action is needed.
However, in this particular case, the error is kafka server: Message was too large, server rejected it to avoid allocation error. To resolve this scenario requires manual intervention, since it means that at least one row is too big for the kafka server to accept change data about it. Ideally, you would fix this by reconfiguring your kafka server (which is outside of CockroachDB's control). The kafka broker setting that needs to be increased is most likely message.max.bytes. The changefeed may recover on its own if you increase this setting. If you can not increase it, then you need to find a way to decrease the size of the individual rows being watched by changefeeds.
gz#9773
Jira Issue: DOC-1286

We might want to reopen this re: your suggestion kathryn to provide a list of example retrybale and non retryable errors


Performance regression in TypedColumnWriter::WriteBatch

Describe the bug, including details regarding any error messages, version, and platform.
When running our benchmarks for ParquetSharp against the new Arrow 13.0.0 release, one of the benchmarks was twice as slow compared to Arrow 12.0.1. Digging into this further, I found that the change that caused this slow down was #35230, and it appears that the reason for the slowdown is this particular benchmark makes a lot of calls to WriteBatch, and there is now a lot of extra time spent looking up properties_->page_index_enabled(descr_->path()) in pages_change_on_record_boundaries().
It looks to me like the column properties shouldn't change one a TypedColumnWriter is constructed, so it should be fine to compute this value once on construction to fix this performance regression.
Component(s)
Parquet

Have you enable page index during writing? (Is default disabled)

Hi @mapleFU, no we haven't enabled the page index and we aren't using DATA_PAGE_V2, but I don't think your comment is correct, page_index_enabled is called when data page V2 is not used, as there is an OR condition:
  bool pages_change_on_record_boundaries() const {
    return properties_->data_page_version() == ParquetDataPageVersion::V2 ||
           properties_->page_index_enabled(descr_->path());
  }

I have tested a fix that moves the calculation of this to the constructor and that fixes the performance regression, so I was planning on making a PR for this soon but was just working on getting the tests to run locally.

My comment looks a bit silly now after your edit :smiley:. I had already tested a fix for this so have opened a PR with my change at #37454, but I'm happy for you to fix this instead if you see a better way as I'm not super familiar with the codebase.

Oh you've already submit a patch, I'm just trying to do the same thing, thanks a lot!


[mac] i cant find dist/vicuna-v1-7b/float16/vicuna-v1-7b_metal_float16.dylib

when i exec mlc_chat_cli,i meet the mistake.
Cannot find vicuna-v1-7b lib in preferred path "dist/vicuna-v1-7b/float16/vicuna-v1-7b_metal_float16.dylib" or other candidate paths%

Hi @yiyunfei-001 ! What's content in your dist/lib folder? Have you cloned dist/lib to your local?
git clone https://github.com/mlc-ai/binary-mlc-llm-libs.git dist/lib

mlc_chat_cli will use vicuna-v1-7b_metal_x86_64_float16.dylib in dist/lib by defualt.

Hi @yiyunfei-001 ! What's content in your dist/lib folder? Have you cloned dist/lib to your local?
git clone https://github.com/mlc-ai/binary-mlc-llm-libs.git dist/lib

mlc_chat_cli will use vicuna-v1-7b_metal_x86_64_float16.dylib in dist/lib by defualt.
FYI, checkout this line to see how mlc_chat_cli search dylibs.

thank you very much,it can work well

Close it as the issue was resolved.


'Pending invites' tab and search box not showing on 'Manage custodians' page

The 'Pending invites' tab and the search box is not showing. The test confirmed that the 'Pending invites' tab also does not show when an invite has been sent but not accepted.
URL:
https://managing-registers-staging.cloudapps.digital/custodians
Steps to recreate:

Login as an admin
Click 'Manage custodians'
Invite a new custodian
Click 'Manage custodians'

Expected result:
https://projects.invisionapp.com/d/main#/console/10972863/233584225/preview
Actual result:

required for this version - will make it much easier for us to release


removed redundant statements

The enabled by default statement made sense when the developer was supposed to disable flow in order to use ts. Both those statements in there create some confusion about it in my opinion.

Still waiting for someone to look into it

Looks good. Thanks!


Uninitialized variable in HTTP::Message 6.10

This error manifests with HTTP::Message 6.10. With version 6.06 it does not occur.
smithfarm@wilbur:~/src/dochazka-cli> dochazka-cli
Loading configuration files from /usr/lib/perl5/site_perl/5.20.1/auto/share/dist/App-Dochazka-CLI
Loading configuration files from /etc/dochazka-cli
URI base http://localhost:5000 set from site configuration
Username root set from site configuration
Password set from site configuration
Authenticating to server at http://localhost:5000 as user root
Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/vendor_perl/5.20.1/HTTP/Message.pm line 168.
Server is alive
Dochazka(2015-07-27) root ADMIN>

I suspect it happens every time the CLI sends an HTTP request.

Fixed in Web::MREST::CLI 0.276


chore(turborepo): Port piece of kill_live_server test for version mismatch

Description
While not the greatest test since it isn't testing actual server logic, it does assert that a client receiving a failed_precondition should translate that as a VersionMismatch. This matches the behavior in connector_test.go.
Testing Instructions
New test functional added

Follow on from #5151


Changed imports and fix to 'data item'

deleted DC and IAO metadata imports
added RO core import
fixed annotations for IAO ‘data item’

Closing this to avoid potential conflicts in merging jonathanbona/ogms fork.


Increased Virtualized List Blanking in Fabric

Description
I been working to migrate my app from Paper to Fabric. One of the roadblocks appears to be that we see additional list blanking when using virtualized lists. The two virtualized lists that I've been testing is FlashList and a homegrown one.
For the rest of this issue, I'll focus my explanation based on FlashList on Android. FlashList because it's the more popular library, and Android because I have not yet tested any other platform.
From my debugging, I believe that (part of) the increase in blanking can be attributed to setState calls getting batched into a single render. This seems to delay the render, which delays new list items appearing on the screen, which increases blanking. This batching does not appear on Paper, but it's probably more because of concurrent mode than the implementation of Fabric in itself.
For example, in the following video, you can see that the blanking roughly correlates with when the setState calls are getting batched:
https://github.com/facebook/react-native/assets/5456182/e10e58d0-b49c-498a-9cdc-f585b39455f4
If I hack React internals to force setStates to always use SyncLane then this problem doesn't occur (as badly). I'm wondering if there's some sanctioned API I can use to kinda... setState like that. Perhaps some version of flushSync in react-dom?
(Even after the above hack I still observe worse list blanking on Fabric, but I haven't been able to further isolate things yet. I dunno if you folks have any ideas. :P)
React Native Version
0.72.7
Output of npx react-native info
info Fetching system and libraries information...
System:
  OS: macOS 13.6.1
  CPU: (10) arm64 Apple M1 Max
  Memory: 19.88 GB / 64.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.6.1
    path: ~/.nix-profile/bin/node
  Yarn:
    version: 1.22.19
    path: ~/.nix-profile/bin/yarn
  npm:
    version: 9.8.1
    path: ~/.nix-profile/bin/npm
  Watchman:
    version: 4.9.0
    path: /Users/jerry.jiang/.nix-profile/bin/watchman
Managers:
  CocoaPods:
    version: 1.11.0
    path: /Users/jerry.jiang/.nix-profile/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 22.2
      - iOS 16.2
      - macOS 13.1
      - tvOS 16.1
      - watchOS 9.1
  Android SDK:
    API Levels:
      - "30"
      - "31"
      - "32"
    Build Tools:
      - 30.0.3
    System Images:
      - android-31 | Google Play ARM 64 v8a
      - android-32 | Google Play ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2022.3 AI-223.8836.35.2231.10671973
  Xcode:
    version: 14.2/14C18
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 11.0.1
    path: /Users/jerry.jiang/.nix-profile/bin/javac
  Ruby:
    version: 2.6.10
    path: /Users/jerry.jiang/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.7
    wanted: 0.72.7
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: false

Steps to reproduce
The high level steps is basically:

Get a react-native project with a virtualized list. I've included my test project below.
Render a few hundred items in the list.
Scroll. To make it a little more scientific I've been using ADB commands like adb shell "input touchscreen swipe 200 800 200 200 100"

You should be able to observe that blanking is worse on Fabric than Paper.
Here are some videos of me trying it out. In these videos I'm using a Samsung Galaxy A11, I found that weaker phones allow us to more clearly see the problem. But even on a Pixel 6 Pro it is noticable.

Paper (Prod)
 Fabric (Prod)

Unfortunately I couldn't figure out how to make the SyncLane change in a prod build so here is a dev build comparison of the hack.

 Fabric (Dev, Base)
  Fabric (Dev, Hack)

Snack, code example, screenshot, or link to a repository
https://github.com/tpcstld/react-native-test/tree/fabric-scrolling
Note the branch name, it's not main.

FWIW, I'm not that familiar with React Native's internals, so this setState batching could be a red herring and I'm just getting bamboozled. This is just the path that I've been debugging so far.
Regardless the performance difference between Paper and Fabric for these virtualized lists is consistently reproable.

Thanks for the issue. We have an internal tracker for this kind of things and we plan to work on them soon: I ported the issue there.
Meanwhile, @sammy-SC or @javache do you have any thoughts on this issue/problem?

To add some more to this - Discord has been migrating to Fabric for a while, we're nearing the end of the long migration but we're seeing significant performance drops across the app. This is the primary issue we've been able to identify concisely and create a reproduction but overall it's concerning. If we're unable to resolve the performance issues, it will be a blocker for launching the Fabric version of our app - I assume this would be the same for other companies also.

Hello,
thanks for the detailed report.
The fact that forcing React to use a different lane mitigates the issue (mostly, I will get to this later) indicates there is a difference between what event is used to trigger adding a new item to the list.
For FlashList, what host platform event is used to add a new item?
When you are seeing a difference even with hacking React internals, are you running debug or production build?

Hey Sammy!
Btw FlashList uses recyclerlistview.
I believe that recyclerlistview is using the onScroll event to trigger adding the item. But it is a little convoluted. At the end of the day it's the updateOffset call which eventually leads to _renderStackWhenReady
I'm running on a debug build. Unfortunately I haven't yet figured out how to get my change to work when I'm using a production build haha.

To add to this, here's a sandbox app of 500 items in a FlatList. The Android build of this sandbox has been modified to build a specific commit of React Native from source, using a fork of React Native 72.7.
Below are the findings of using a scroll script to scroll the items. Left side is Paper, right side is Fabric. The videos start right after the script pushes the button to render the lists.  From the videos, it looks like Fabric is taking longer to render the items, and therefore takes longer to scroll to the bottom of the list.

Paper
Fabric

https://github.com/facebook/react-native/assets/1063664/002ceff8-c482-4cb2-ae93-a70167fface0
https://github.com/facebook/react-native/assets/1063664/798d6ad2-ddbf-432d-8848-ffe433881a00

Thanks for the response. I have also been a little off, but I will get to this soon. End of week at latest.

Wait @cipolleschi, I just realized, we have ran those benchmarks in a release configuration. The videos labelled Paper (Prod) and Fabric (Prod) where generated when I built the app with npm run android --prod

Actually sorry again, I realized what you're looking for. After further reading I understand now that there is a difference between prod and release.
Here is the benchmark on an app built with npx react-native run-android --mode=release:

Paper (Release)
 Fabric (Release)

Scrolling down was automated using adb shell "input touchscreen swipe 200 800 200 200 25". I've used the same Samsung Galaxy A11 as before.

@tpcstld Thanks a lot for checking that.
Allow me to ask a few extra questions to narrow down the problem and to understand it better:

I understand correctly that the problem is that the area of the red portion, when scrolling, is much bigger in Fabric, and that's an issue for you?
There are no issues on how smooth is the animation, right?
Does this happen for iOS as well?
How did you create the sandbox app mentioned above?
Did you use the same sandbox app for the test above?

based on 4. and 5. we might be able to use the sandbox app to investigate this further.

Happy Holidays!

Yes that is correct. The red portion correlates to the amount of blanking.
I don't perceive any problems with frame rate, either on scrcpy or on the physical device itself.
iOS hardly blanks at all on either architecture, so I'm not particularly able to distinguish whether or not there is a problem, or if the better overall performance is just masking it.
That isn't the sandbox app that I used. I'm using https://github.com/tpcstld/react-native-test/tree/fabric-scrolling (in particular note the branch which isn't main). It's been a while, but I'm pretty sure I made this project via create-react-native-app.
I used https://github.com/tpcstld/react-native-test/tree/fabric-scrolling in all the videos sent so far.

Hello there! I'm trying to reproduce the issue, but it seems gone on 0.73.2.
Here are my steps:

Created a new app npx react-native@latest init TestFlatList --version latest
Open VS code.
Added the TS code below (thanks @tpcstld) for it.
Run the app yarn android. Note that I'm running in Debug, on purpose.
use this command to scroll: adb shell "input touchscreen swipe 200 800 200 200 25" (thanks again @tpcstld)
These are the results:

Old Arch
New Arch

I tried to play further with the repros, but I couldn't let them display the red background.
I think that we fix these perf problems in 0.73, when we landed and released faa85f84ce96986d4097a8df99e8fbc402c6b662.
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 *
 * @format
 */

import React from 'react';
import {View, Text, StyleSheet, FlatList} from 'react-native';

const NUM_ITEMS = 300;
const HEIGHT = 40;
const DATA = Array.from({length: NUM_ITEMS}, (_, i) => i);

const isFabricEnabled = global?.nativeFabricUIManager != null;

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: 'red',
  },
  row: {
    height: HEIGHT,
    color: 'black',
    backgroundColor: isFabricEnabled ? 'lightblue' : 'lightgreen',
  },
});

function Item({item}: {item: number}) {
  return <Text style={styles.row}>{item}</Text>;
}

function renderItem({item}: {item: number}) {
  return <Item item={item} />;
}

export default function App(): JSX.Element {
  return (
    <View style={styles.container}>
      <FlatList data={DATA} renderItem={renderItem} />
    </View>
  );
}

I also tried with 72.10 and I can't repro the problem.
@tpcstld @Flewp could you try to update your tests to 72.10 (I'm not asking to update to 73... yet! 😝 ) and double check? I'm worried that I might not be doing the right tests... 🤔

I also tried with 72.10 and I can't repro the problem. @tpcstld @Flewp could you try to update your tests to 72.10 (I'm not asking to update to 73... yet! 😝 ) and double check? I'm worried that I might not be doing the right tests... 🤔

Thank you for testing this. Will update to 72.10 and report back!

Using the repro steps above, I'm also not reproducing this on 72.10 and 73.4 to the extent that we were seeing on previous versions. I also added some logs in RecyclerListView to make sure that the paper renderer was calling render for every setState, and that fabric was batching setState calls every now and then for each render call. So, it seems like concurrent renderer isn’t causing performance regressions in the sandbox app on these React Native versions. We'll work on upgrading our React Native version internally. Appreciate you all working with us on this. 🙏
In the videos below, I'm using a vivo Y15a. I used the scroll script to scroll down to the bottom of the list initially. Then scrolled with my finger to the top, bottom, and top again. Side by side:
72.10

Paper
Fabric

73.4

Paper
Fabric

Sooo.... can we close the issue then? 😄

Yeah, we're good to close the issue 😄


Switch the repo to build with VSSDK nuget packages

Switch to using NuGet packages instead of depending on the VSSDK on the box.
Add Prerequisites to the VSIXes so that they'll build with RC.
The new VSSDK is capable of producing a json file in a microbuild environment that can be used to insert into VS.
This gets rid of the need for a separate swixproj that was wrapping the v2 vsix.

@dotnet/project-system @basoundr

Note that with this change RC builds will be needed to build the repo.


Enable power source cluster to NRF board contact sensor chef-devices

Update .zap and .matter files to current chef NRF board contact sensor devices to make

chef device : NRF contact sensor with rechargeable battery
chef device : NRF contact sensor with replaceable battery to current

 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.