reduce repo file size

problem:
the git repository in its current state is way too large
the whole repo has 90 MB with only 3 MB code in src/

du -shc testcafe/* | sort -h
4.0K	testcafe/appveyor.yml
4.0K	testcafe/azure-pipelines.yml
4.0K	testcafe/CODE_OF_CONDUCT.md
4.0K	testcafe/CODEOWNERS
4.0K	testcafe/Gemfile
4.0K	testcafe/LICENSE
8.0K	testcafe/CONTRIBUTING.md
8.0K	testcafe/package.json
12K	testcafe/bin
20K	testcafe/docker
32K	testcafe/Gulpfile.js
32K	testcafe/README.md
76K	testcafe/@types
148K	testcafe/examples
156K	testcafe/ts-defs-src
196K	testcafe/CHANGELOG.md
2.9M	testcafe/src
11M	testcafe/media
11M	testcafe/test
67M	testcafe/docs
91M	total

solutions:

move docs/articles (currently 67 MB, mostly images and videos) and media (11 MB) to a separate branch on github (or to a separate repository like DevExpress/testcafe-homepage), so it is not cloned with a shallow clone like git clone --depth=1 https://github.com/DevExpress/testcafe.git
use that hidden branch for gh-pages = https://devexpress.github.io/testcafe
rewrite git history with git filter-branch (BFG Repo-Cleaner did not work for me), so the moved files are deleted from history of the master branch, so these files no longer are downloaded in a full clone like git clone https://github.com/DevExpress/testcafe.git - a full clone should be around 20 MB
move demo screenshots from README.md to gh-pages, so demos are one click away - could be worse
compress png images to webp. png is the largest format of them all. or better, convert png screenshots to svg - yes, this should be possible .... see potrace for example
avoid video files like docs/articles/images/landing-page/gallery-install-testcafe.gif (text only), use css animations when possible, avoid moving windows in screenshot movies
deduplicate media/new-0-10-0-autowait.* (currently three formats, total 4.5 MB) and media/new-0-10-0-autowait.* and docs/articles/images/blog/2020-07-23-multi-window.* (prefer mp4 for hardware acceleration, compress more with CRF)
compress test folder (11 MB) by treeshaking/deduping/sharing code and compressing/avoiding png images, OR move the whole test folder to a separate repository testcafe-test (not everybody needs to run npm run test)
generally, refactor duplicate code as reported by jscpd - currently 12% duplicate lines in test/
indent code with tabs
avoid large dependencies like ffmpeg-downloader. i have ffmpeg/avconv installed on my machine, why download it again?

Hi @milahu
Thank you for your inquiry. We prefer to keep docs, tests, and code in the same repository. Currently, we do not consider using different repositories for this. Could you please share more details about the issue? Why do you feel that the size of the repository is an issue?
As a workaround, to reduce the size of the cloned repository, you can use partial cloning and sparse checkout from Git 2.25 and get only those parts of the repository that you need:
git clone --filter=blob:none --depth=1 --no-checkout https://github.com/DevExpress/testcafe
cd testcafe
git sparse-checkout init --cone
git sparse-checkout set @types bin src ts-defs-src
git checkout

We prefer to keep [the status quo]

who is we? : P
also, why keep? except for laziness or lack of time
if you ('we') think the job is so terribly hard und ugly
i can write a script that does the job 99% automatic

Why do you feel that the size of the repository is an issue?

efficiency
i mean .. the best argument for testcafe is
we can avoid downloading a full browser blob
just to run puppeteer / selenium / playwright / etc
but then, if i want to hack on some 3 MB of code
you expect me to download a 90 MB repo ....
this is just plain anti-professional
or at least inconsistent with the project goal
to offer a lightweight browser controller
and does not make a good impression
on the "optimize all the parts" people like me
but it matches with my overall impression (subjective opinion)
that the testcafe project "could have better maintainers"
the project looks like it got stuck like 5 years ago

you can use partial cloning and sparse checkout from Git 2.25

last time i checked, the status of git partial clone was this:
you will get a partial clone as end result
but on the way there, git is still downloading the whole repo
the workaround i know is using the SVN interface of github
like in the script yorkie/github-downloader.sh
but workaround != solution

We (the TestCafe team) discussed your suggestion and decided that decreasing the size of the repository won't have a significant positive impact on the development and testing process.
The size of the 'node_modules' folder is 350 Mb. This is about 4 times larger than the released space.
It means that the time span between the download of the repository and the beginning of coding/running tests is practically unchanged.
If we decrease the size of the repository, its download will take a few seconds less.
However, this period is very short compared to the test run time (about 1 hour).
Also, storing documentation in the repository contributes to the cooperation between developers and technical writers.
If the size of the downloaded repository is critical, you can use the solution with 'sparse-checkout'. The size of the downloaded repository will be 3.9 Mb.

thanks

compression ratio (gzip) is very different for blob files

node modules: 19MB / 327MB = 95% less
docs: 61MB / 67MB = 10% less
docs is 61 / (19 + 61) = 75% of compressed download
.... according to my math

1 hour test run is another insane waste of resources. is this cpuburn.js?
"storing documentation in the repository contributes to the cooperation between developers and technical writers."
-- no. just no. how do you come up with such absurd claims?

but never mind
you guys just fanatically love your cathedral ("feature not bug")
and see zero benefit in modular design and code splitting
maybe you do see some benefit, but you say "its too late now" - so be it
i was looking for a modular solution, so testcafe is clearly out of scope


Question about running Neural Style on Linux Subsystem for Windows

Hey so I've got Neural Style running on a linux partition no problem but my primary OS is still Windows (due to the nature of hardware prices and VFX work that I do).
I've been playing around with cygwin for some web dev stuff I've been doing and heard about this from a friend: http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/
It's a posix compatibility layer for Windows 10. Does Neural Style run on this? Can it? I know there's only one way to know (to try!) but I wanted to check in if anyone else had tried it already or if someone who had a deeper understanding of CS could chime in with an informed opinion.
I'm just an artist/designer with an interest in technology (still working on my artist article for neural networks but making progress) but I like learning more about this stuff as a hobby and having my NN stuff more immediately available inside Windows would be great for speeding up my workflow (as it stands I have to reboot and go into my BIOS to switch everytime I want to do something differently)

David French<EMAIL_ADDRESS>kirjoitti 12.12.2016 kello 18.29:
I've been playing around with cygwin for some web dev stuff I've been doing and heard about this from a friend: http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/ http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/
It's a posix compatibility layer for Windows 10. Does Neural Style run on this? Can it? I know there's only one way to know (to try!) but I wanted to check in if anyone else had tried it already or if someone who had a deeper understanding of CS could chime in with an informed opinion.
I'm just an artist/designer with an interest in technology (still working on my artist article for neural networks but making progress) but I like learning more about this stuff as a hobby and having my NN stuff more immediately available inside Windows would be great for speeding up my workflow (as it stands I have to reboot and go into my BIOS to switch everytime I want to do something differently)

I remember a discussion related to someone trying to use the W10 linux shell, either for neural-style or one of the other style transfer programs. There were problems, possibly related to getting GPU to work. I remember that a header file for its (outdated or non-standard?) kernel was unavailable, meaning that one could not install something that required compiling against the kernel.
I have a long IT background, but currently my focus is on art. When I became aware of style transfer and other neural image processing possibilities, I bought a separate linux box for it. My main computer is a Mac, mainly for working with image, video and music/sound. The neural processing is done on the linux box. I want to keep the Mac clean, even if it should be possible to install neural-style on it (I have bad experiences of installing libraries in OSX which then interfered with the OSX software).
It would seem to me that Ubuntu is by far the easiest way to run neural-style and other similar programs which have been developed on Ubuntu. Getting them to run under different operating systems requires more technical knowledge and ability to solve technical problems. So, if the main objective is an artistic workflow, then using a different OS will take away time from that objective as one will be struggling with the technical problems instead.
But for sure, having to boot back and forth is no good workflow. A second computer for linux is what I recommend.

@htoyryla good to know. Yeah the gpu cost for a second computer is too high since my main box needs a pretty big gpu already. Seems most people do the aws thing though that requires more backend knowledge than I currently possess. One advantage of doing that though is aws is a standardized cloud environment that people could pretty easily follow instructions for. Maybe I'll look into that. Got to see how the price is though.

@thedonquixotic I have not even tried AWS... seems to me that the cost could be quite high in the long run (at least for me as I do a lot of model training so that the GPU may be running for hours and days). If you only do a few style transfers now and then, and not too much experimentation (which for me takes a lot of time) then AWS could be effective pricewise.
I have a GTX1070 (8G RAM), it cost around 500€,  and I think than even a 1060 (6G RAMfor under 300€) might be enough for many things. But if higher resolution is needed, then the cost will be higher.
I am not sure either how much GPU RAM one can access in AWS.

@htoyryla

I am not sure either how much GPU RAM one can access in AWS.

You can access around 4GB for the g2.2xlarge instance, and around 12GB for the p2.2xlarge instance. Both of these instances have a single card version, and a quad card version.

There seem to be a lot of options there, more than I remembered. It is not easy to see though how much it would cost in practice (compared with plain virtual servers which I use routinely, there you can easily see that for a configuration, the cost will be, say, 25 € per month).  I'll stick to my own gear... I know what it costs.

@htoyryla I have neural-style running on OSX 10.10.5. In the end it isn't really too much harder to setup than on Linux. I run tons of 3D and Adobe softwares, but haven't run into any stability or conflicts of any kind with other software on my system.

@bododge, years ago, having discovered that my Macbook was running Unix under the hood I started routinely installing our own server software in it so that I could do demos to customers without needing a net connection. Everything worked smoothly except for a driver problem that I noticed later... which prevented php from running. In any Linux distro, I could easily have re-installed the correct drivers, but not so in OS X, as there is no repo for the original OSX sw as supplied by Apple.
After this, in itself minor issue, I have been more cautious with my Macs. I believe that installing packages under macport or brew should be more or less safe, meaning that they are kept separate from the original OSX software. And I have indeed some software installed with Macports in a Macbook (see PS below). Still, there has a be a strong reason for installing something non-OSX in one of my Macs.
For me personally, Ubuntu is much more convenient for experimenting with neural networks. I can have a CUDA-dedicated GPU, as much RAM as I need and as powerful CPU as I need, at the price of no more than the cheapest Macbook. In Ubuntu, I can understand quite well where the installed software goes and what to do if something goes wrong as I can remove and reinstall any packages if needed. Despite this, I have had my share of problems in Ubuntu too, mainly related to the GPU (like the login loop problem which cause a lot of trouble until I understood what was really going on).
So, taking into account that my Ubuntu box is far better equipped for neural experimenting, I see no point all taking any risks with an OSX machine which would anyway be less perfect for neural experiments. Would hate spending a few days getting everything back and running when I should actually be editing video, for instance. With an Ubuntu box or maybe even two, it is no big problem even if something goes wrong (like when I got a login loop after Nvidia installation).
PS. I did recently try to install OpenCV 3.0 in a MacBook, in order to be able to demo a webcam based (non-neural) experiment. I got it working, almost... except for a problem that persisted, my script would always start ok but fail to run for a longer time. It turned out to be a known problem for which no solution existed (or the known solutions would have been too risky). In Ubuntu there almost always is a solution.
So I am not saying that installing neural-style in OSX would be difficult or risky. It is rather that my approach is that Ubuntu and OSX are good for different things and I use each for what it is best equipped to handle. That way I am myself more efficient and productive. Why should I make things more difficult to myself?

@htoyryla it sounds like you have far more experience with these sorts of issues than me. I respect that, and thank you for the detailed answer. It sounds like you know what to do, and don't have a hard time dong it except where Mac can make things tricky or impossible at times! Whenever I launch Ubuntu I miss all my usual software. I end up feeling like a caged bird, so for me neural-style on the Mac is very desirable, because I often want to work with other video software and photoshop to process the results.

As I have Ubuntu and OSX running on separate machines in the same local network, I can quite easily share the files, have a Terminal open on OSX to run programs in Ubuntu and then access the results from OS X. Or take a few steps to the Ubuntu machine when doing a longer session on it, then going back to the iMac desk to access the results. I, too, prefer to do sound (Logic Pro), video (FCPX) and image (Affinity Photo etc.) work in OS X.  I have been doing similar things for around ten years now, using Linux, OSX and earlier even Windows according to what happened to be the easiest way for each task.

@htoyryla

But for sure, having to boot back and forth is no good workflow. A second computer for linux is what I recommend.

I think you're right about this, that's why I end up feeling stuck on one side or the other of the boot proces.

Then again, if one only needs neural-style and can successfully install it in another OS, then that is obviously a good solution.
I am constantly trying out new software and also making my own experiments, so my software environment is changing weekly, it is simply easier to manage in Ubuntu.

Done


LSS Code Example

even if how many times have i try to use "LSS" service functionality, i couldn't achieve somehow to change another device parameters.
would u mine give me an example code?

See CANopenLinux and CANopenDemo


Update jsoniter-scala-core, ... to 2.13.8

Updates

com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-core
com.github.plokhotnyuk.jsoniter-scala:jsoniter-scala-macros

from 2.13.6 to 2.13.8.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.plokhotnyuk.jsoniter-scala" } ]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #311.


FIX: ensures collapsing is working on legacy

As part of this fix was related to the use of get/@computed in a non native class, I have refactored the whole component:

native class
tagless

A reminder to use `` when writing about decorators, so that you don't mention random people on github 😝


Support .xlsb files

Re issue #275

Regarding appveyor fail, I'm not sure but maybe we need "Visual Studio 2019" in appveyor.yml to use C# 8.0 and the Microsoft.NET.Sdk.WindowsDesktop shared framework:
https://github.com/ExcelDataReader/ExcelDataReader/blob/f2abb75d3b3063e97db9579723b798ef30f50ca7/appveyor.yml#L3


Add support for open port option while hitting /getOS api

/getOS API should also take ideally a list of open ports to bind for use cases such as :

if someone wants to test some code which requires a server? a flask app maybe
use it as an FTP server?

getOS does take a port parameter. At this time we only support a single port to be exposed.

can we add support for it? to build and test maybe backend applications?

We already have support to expose one port. This one port can be used to test your backend application. Does that address your use-case? If not, What is your use-case?

yes i got it. Thanks

tho it seems that open port is binding to none.

@anuragsarkar97 good eye. None simply means the docker engine will select a random host port for binding. please refer to docket python library for more information.


Terratown Sinatra Mock Server Using Ruby

The Terratown Mock Server is a crucial component of our development environment. To ensure its optimal performance and functionality, we have devised a plan to enhance it. This plan involves getting server, making it fresh, doing some ruby for sinatra, playing with bash for crud and getting more to the top.
Let's delve into the details.

[x] Download the Terratown Mock Server:

Begin by obtaining the Terratown Mock Server from the designated source.

[x] Terminate its Git History:

Remove unnecessary Git history to streamline the server's repository and improve its manageability.

[x] Redesign the Ruby Code for the Server:

Assess and enhance the existing Ruby code for the server to ensure it aligns with the latest best practices and standards.

[x] Script the CRUD Operations for the Server:

Develop scripts for the Create, Read, Update, and Delete (CRUD) operations to improve data manipulation and management within the server.

[x] Learn About and Run Sinatra Servers:

Familiarize yourself with the Sinatra framework for building web applications in Ruby.
Practice running Sinatra servers to ensure a seamless integration with the Terratown Mock Server.

With that, we can ensure that the server meets our evolving development needs and maintains high performance. Additionally, acquiring expertise in Sinatra servers in ruby will further enhance our capabilities in managing and maintaining the server and the future...

FYI:
The initial idea was for a "terrahouse," but we've shifted our focus towards a "terrahome"..
Why?.. because the concept of a home feels closer...and more warm.


 See 'git --help'.

DEBUG: Total took: 0:00:01.752254
git branch

If the bug only appears with a specific application, the output of that application and its version:
nushell v0.92.1

Anything else you think is relevant:
Works without a problem for bash, zsh and fish.
`thefuck --version` in those shells return the proper shell, for nushell it returns Generic Shell (see output above in version check).
Instead of running the command suggestion, it echoes it.

Working on a fix in #1442
The issue isn't that there wasn't a Nushell class, but that CorrectedCommand::run writes the script to stdout like so:
sys.stdout.write(self._get_script())

I'm looking at a way to fix this because nushell seems to echo it instead of evaluating


feature/dotnet-core-upgrade

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


Missing module installation instructions

Only as FYI. Overview hyperlink is invalid or inaccessible publicly. The URL it points to is:
https://docs.microsoft.com/en-us/powershell/docs-conceptual/overview?view=whiteboard-ps

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 719f5227-2b47-3487-99bb-222d18d43552
Version Independent ID: e7833ab4-d2b1-5840-4f2c-dda86599d3af
Content: Microsoft Whiteboard Admin
Content Source: whiteboard/whiteboard-ps/whiteboard/whiteboard.md
Service: whiteboard-powershell
GitHub Login: @tbrosman
Microsoft Alias: tbrosman

@officedocsbot assign @yogkumgit

@dariomws  Thank you very much for the contribution and updating the documentation with PR. @jreed5 Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Issues with runtime crashes when using ProtectedParentRoute

Reopened as an issue instead of pull request (#2988).
I've been having issues with the ProtectedParentRoute component, it seems to be crashing whenever the condition evaluates to false, at least when used with ssr enabled (I haven't tested other modes).
The code edit in my fork at https://github.com/niklass-l/leptos/tree/fix-protected-parent-route-ssr-issue seems to fix the immediate issue, but I'm sure the code I'm removing was there for a reason.
I'll include a minimal example here so you can see try it out yourself, and see if you can reproduce it. The code is based off of the axum 0.7 starter template, you can find the full code at https://github.com/niklass-l/start-axum-0.7.
Steps to reproduce:
Cargo.toml:
[package]
name = "minimal-example"
version = "0.1.0"
edition = "2021"

[lib]
crate-type = ["cdylib", "rlib"]

[dependencies]
axum = { version = "0.7", optional = true }
console_error_panic_hook = "0.1"

# Crashes when refreshing at /dashboard unauthenticated
leptos = { version = "0.7.0-beta5" }
leptos_axum = { version = "0.7.0-beta5", optional = true }
leptos_meta = { version = "0.7.0-beta5" }
leptos_router = { version = "0.7.0-beta5" }

# Does not crash when refreshing at /dashboard unauthenticated
# leptos = { git = "https://github.com/niklass-l/leptos", branch = "fix-protected-parent-route-ssr-issue" }
# leptos_axum = { git = "https://github.com/niklass-l/leptos", branch = "fix-protected-parent-route-ssr-issue", optional = true }
# leptos_meta = { git = "https://github.com/niklass-l/leptos", branch = "fix-protected-parent-route-ssr-issue" }
# leptos_router = { git = "https://github.com/niklass-l/leptos", branch = "fix-protected-parent-route-ssr-issue" }

...

app.rs:
use leptos::prelude::*;
use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title};
use leptos_router::{
    components::{ProtectedParentRoute, Route, Router, Routes, A},
    StaticSegment,
};

pub fn shell(options: LeptosOptions) -> impl IntoView {
    view! {
        <!DOCTYPE html>

                <meta charset="utf-8"/>
                <meta name="viewport" content="width=device-width, initial-scale=1"/>
                <AutoReload options=options.clone() />
                <HydrationScripts options/>
                <MetaTags/>

                <App/>

    }
}

#[component]
pub fn App() -> impl IntoView {
    provide_meta_context();

    let authenticated = RwSignal::new(false);

    view! {


provide docker run command

docker-compose requires to checkout the repository to get the yaml file.
it would be nice to have a one-line docker run command which would pull the image and launch.
with the current hackypackages-server image, the webserver does not respond when running
sudo docker run --rm -it -p 8080:80 ghcr.io/nimarty/hackypackages-server:latest
Error:
wget http://localhost:8080
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.

Resolved through #38


Python virtual environment not created in non-debian based distro

sometimes pip and venv is not installed by default and the install script with apt-get would not work

we could bundle the requirements and source with pyinstaller though file size might increase. at least end-user doesn't have to create a venv and install the packages themselves plus it'd be easier to distribute


Property 'id' gets deleted on save/merge

My documents contain 'id' property that I use for things, including Backbone sync. When get a document from database, modify it and save it - property 'id' disappears.

I'm unable to reproduce this. I suspect that it is fixed in<EMAIL_ADDRESS>to be released later tonight. Let me know if you still run into this after that.
Please include sample code which reproduces the issue if you reopen.


Use in ElementUI popover

Minimal example
[JSFiddle] https://jsfiddle.net/5kk0eysw/38/
Expected behaviour
copy text in popover
Actual behaviour
nothing happened. neither success nor error.
Browsers affected
can not copy

Clipboard.js comes with a built-in click event listener, success or error events will only be triggered after a click is made. Check the demo folder to understand how the API works in practice.

Of course, it must click the copy button.


Give ImagePolicy objects a readiness condition

This adds the conventional Conditions field to the ImagePolicy status, and sets the status in the controller as well as reporting readiness metrics.
Fixes #66.

One problem still extant is that the controller won't set a status if there's no tags that match. I'll fix that here too.

Thanks for reviewing @relu 🥭


chore(main): release 1.24.2

:robot: I have created a release beep boop
1.24.2 (2022-11-14)
Bug Fixes

use new centos 7.9 base AMI (#573) (c987aa2)

This PR was generated with Release Please. See documentation.

Lets wait for all the e2e tests to pass before releasing.

:robot: Release is at https://github.com/mesosphere/konvoy-image-builder/releases/tag/v1.24.2 :sunflower:


The default value is blank on the "Advanced data options->Validation data" dialog for SQL Server data.

System Information (please complete the following information):
Windows OS: Windows-11-Enterprise-22H2
ML.Net Model Builder 2022: <IP_ADDRESS>7901 (Main Build)
Microsoft Visual Studio Enterprise: 2022(17.5.2)
.Net: 6.0
Describe the bug

On which step of the process did you run into an issue:
The default value is blank on the "Advanced data options->Validation data" dialog for SQL Server data.

TestMatrix
https://testpass.blob.core.windows.net/test-pass-data/wikipedia-detox-250-line-data.tsv
To Reproduce
Steps to reproduce the behavior:

Select Create a new project from the Visual Studio start window.
Choose the C# Console App (.NET Core) project template.
Add model builder by right click on the project.
Select any scenario.
On Data page, choose the SQL Server data source.
Click the "Advanced data options..." link, go to the "Validation data" tab.
You will that the default value is blank.

Expected behavior
The default value shouldn't be blank.

Screenshot

Additional context

@v-Hailishi , I am not able to reproduce it  on the latest main.

@zewditu you need to create a new mbconfig file, then this bug can be reproduced.

Set validation option  just after table selected was not done, thanks for caching it.

The bug has been fixed on the latest main build <IP_ADDRESS>8101.


FB 1/N: fee reserve estimates

The first milestone of the fee-bumping series. Tracking the historical (or not) estimates we'll need, keeping them up-to-date from one block to another efficiently, handling errors from our fee estimator or lack of data availability (eg the sim falls back to using historical block fees in this case).

Keep in mind we'll need to reproduce it in revaultd with much lower availability assumptions


[docs] Fix incorrect type for fontWeight

✖ ｢atl｣: Checking finished with 1 errors
[at-loader] ./src/components/Review.tsx:30:30
    TS2769: No overload matches this call.
  Overload 1 of 2, '(style: Styles<Theme, {}, "title" | "listItem" | "total">, options?: Pick<WithStylesOptions<Theme>, "link" | "meta" | "flip" | "element" | ... 5 more ... | "classNamePrefix">): (props?: any) => Record<...>', gave the following error.
    Argument of type '(theme: Theme) => { listItem: { padding: string; }; total: { fontWeight: "700"; }; title: { marginTop: number; }; }' is not assignable to parameter of type 'Styles<Theme, {}, "title" | "listItem" | "total">'.
      Type '(theme: Theme) => { listItem: { padding: string; }; total: { fontWeight: "700"; }; title: { marginTop: number; }; }' is not assignable to type 'StyleRulesCallback<Theme, {}, "title" | "listItem" | "total">'.
        Call signature return types '{ listItem: { padding: string; }; total: { fontWeight: "700"; }; title: { marginTop: number; }; }' and 'Record<"title" | "listItem" | "total", CSSProperties | CreateCSSProperties<{}> | ((props: {}) => CreateCSSProperties<{}>)>' are incompatible.
          The types of 'total' are incompatible between these types.
            Type '{ fontWeight: "700"; }' is not assignable to type 'CSSProperties | CreateCSSProperties<{}> | ((props: {}) => CreateCSSProperties<{}>)'.
              Type '{ fontWeight: "700"; }' is not assignable to type 'CreateCSSProperties<{}>'.
                Types of property 'fontWeight' are incompatible.
                  Type '"700"' is not assignable to type 'number | "-moz-initial" | "inherit" | "initial" | "revert" | "unset" | "normal" | "bold" | "bolder" | "lighter" | ((props: {}) => FontWeightProperty)'.
  Overload 2 of 2, '(styles: Styles<Theme, {}, "title" | "listItem" | "total">, options?: Pick<WithStylesOptions<Theme>, "link" | "meta" | "flip" | "element" | ... 5 more ... | "classNamePrefix">): (props: {}) => Record<...>', gave the following error.
    Argument of type '(theme: Theme) => { listItem: { padding: string; }; total: { fontWeight: "700"; }; title: { marginTop: number; }; }' is not assignable to parameter of type 'Styles<Theme, {}, "title" | "listItem" | "total">'.
      Type '(theme: Theme) => { listItem: { padding: string; }; total: { fontWeight: "700"; }; title: { marginTop: number; }; }' is not assignable to type 'StyleRulesCallback<Theme, {}, "title" | "listItem" | "total">'.

[ ] I have followed (at least) the PR section of the contributing guide.

I think both would work but this has better DX. Thanks!

I think both would work but this has better DX. Thanks!

this fixes typescript compile error. might be avoidable w/ one of the strict checking settings disabled.


Ninja Builder / deleted files

Hi!
With the last GFtools update (3.4), some files are not deleted after exporting fonts:

build.ninja
.ninja_log (hidden)
instance_ufo
master_ufo
Same when I run gftools QA.

If I don't delete them manually and if I want to re-run a build and QA, it causes this issue:

Is it possible to add an automatic deletion as before?
Thanks! :)

Thanks, I made a PR here fixing this: https://github.com/googlefonts/gftools/pull/721
It might not get merged right away, but it's a pretty simple fix and if you install gftools in editable mode cd gftools && pip install -e . you just need to edit gftools/Lib/gftools/builder/_ninja.py with the changes I made.

@emmamarichal PR was merged, just install gftools in editable mode or wait for the next release.

great, thank you @eliheuer!

@eliheuer oh, is it possible to do the same for gftools qa? Or should I open an issue somewhere else (or re-open this one)? Don't know if it's related to diffenator or gftools qa

@emmamarichal a new issue would be helpful, I'm looking at this now along with https://github.com/googlefonts/gftools/issues/728 but more context might help.

@eliheuer
When I run gftools qa -f *.ttf -a -gfb I get these files:

folder "out", with fontbakery, diffenator, diffbrowers, fonts, fonts before
build.ninja
.ninja.log (hidden)

All of these were usually deleted when I build the fonts again.
But actually, I noticed that build.ninja and .ninja.log are deleted, so maybe it's intentional to keep only the previous "out" file even if we build the fonts again.
So maybe you can ignore this issue eventually


Add three mandatory files for OSS

In order to properly release this repository we need three more files in the repository.

[ ] MAINTAINERS.md
[ ] CONTRIBUTING.md
[ ] LICENSE.md

See also:
https://github.com/philips-software/philips-howto-open-source
https://gitlab.ta.philips.com/open-source/howto-open-source#4-rules

Thanks for your vigilance, @JeroenKnoops! I added the missing files.


anyway to use onCLick method to cancel player click their own inventory?

when a Gui is opening, it seems cancel the InventoryClickEvent not work, the items could also be moved.

We have issue templates. Do not remove checkmarks.


Promises library causing error after updating to 1.3.0

The guzzlehttp/promises library was recently updated from 1.2.0 to 1.3.0 as part of the aws php sdk, this updated version is causing the following error.

The promise was rejected with reason: Invoking the wait callback did not resolve the promise

I have raised the issue against the aws library but it is tied to the guzzle upgrade from 1.2.0 to 1.3.0.
https://github.com/aws/aws-sdk-php/issues/1125
Any advice would be appreciated.

Closed in guzzle/promises#55


chore(deps): update dependency mini-css-extract-plugin to v0.8.1

This PR contains the following updates:

Package
Type
Update
Change

mini-css-extract-plugin
devDependencies
patch
0.8.0 -> 0.8.1

Release Notes

webpack-contrib/mini-css-extract-plugin
v0.8.1
Compare Source

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Enabled.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

Available now for Enterprise: Renovate Pro with real-time webhook handling and priority job queue.

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


Fix animations on replace actions

LGTM! We need to address how the VisitableView handles updates to the url prop in order to actually trigger a new visit when the prop is changed due to params being updated.


inconsistencies in Armenian dictionary

Hello,
On the MFA page for Armenian, it seems the dictionary is being based off of Armenian transliteration instead of transcriptions.

In the consonants table, the system is breaking up affricates. This creates non-existent IPA symbols like sʰ. The example it cites is կից [k i t sʰ], but this word is actually [kit͡sʰ] with an an aspirated affricate /t͡sʰ/. Paradoxically, the XPF page doesn't have an /sʰ/ symbol.
The examples seem to be transliterations instead of transcriptions because it's omitting epenthetic schwas which are unwritten but prescriptively present. For example, for the /ɡ/ symbol, a cited example is  գլուխ [ɡ l u χ], but this word is actually [ɡəluχ] with an epenthetic schwa, as also reported on Wiktionary

If you want, I can re-transcribe your dictionary file using a mix of Wiktionary + my native judgments.

Yeah that would be great!  @echodroff and @emilyahn are the creators of that using the XPF system.  I know they were updating some lexicons a while back for VoxCommunis, but it looks like Armenian hasn't been updated.
It looks like Wikipron has scraped Wiktionary for Eastern Armenian and Western Armenian, so that might be an easier start point if the Wiktionary pronunciations are a good basis.  If you go this route, I'd be happy to host that as an MFA phoneset dictionary and train a corresponding model (or host one that you train).

The Wiktionary data is pretty reliable (I cleaned it up in 2021). However, the two dialects have radically different transcriptions for the same word. Basically any voiced plosive in Eastern, is voicless aspirated in Western; while any voiceless unaspirated plosive in Eastern is voiced in Western. So using separate models (a hye one and hyw one) may be wise. A complication though is that the Vox recordings had both hye and hyw speakers pooled together. Perhaps I can ask the maker of the recordings (who I know) if I can break up their corpus into the two dialects? I can also provide audio archives of both hye and hyw speech if the Vox corpus isn't big enough.
I'm new to MFA (still doing the tutorials). When you say "that route", do you mean just taking all the Wiktionary words as the pronunciation dictionary and then you guys re-run the models? I'm happy to help in any way, even if it's just correcting the existing pronunciation dictionary that you guys have.

Yeah, so what I did for all the MFA dictionaries/acoustic models was:

Download the scraped Wikipron dictionaries per dialect
Run a clean up script with basic rules for cleaning up ligatures, some narrow diacritics, tone markings, etc so that the resulting dictionary uses a mostly standardized set of symbols across languages. The clean up rules are per dialectal dictionary.
Create G2P models based on the dictionary (and fix any random typo/pronunciation errors in the dictionary using the phones symbol table)
Create a speaker-dictionary mapping that has speakers assigned to specific dialect dictionaries and a "default" dictionary that contains all pronunciations for speakers that have no information about what the dialect is.
Run a validation script to get a list of OOVs in the corpora using the initial speaker-dictionary mapping.
Run a G2P generation script to supplement the original dictionary (and re run the speaker-dictionary mapping script to regenerate the default dictionary with the new pronunciations)
Train acoustic model using the speaker-dictionary mapping

So I would say, as long as the speaker information is somewhere in the corpus, it should be possible to generate the speaker-dictionary mapping (that's what I've done with Common Voice and other corpora), and then have a fall back that contains all variants for speakers that are not specified.
In terms of data, Common Voice has 2 hours of data, and that's the only one I can find with Armenian data on OpenSLR and open-speech-corpora, so getting as much data from other sources that you know of would make for a much better acoustic model.

Thank you for flagging this, and yes, we were planning on updating that model. (Michael, if you're already on this, let us know!) Ultimately our goal is to have good G2P for the given audio recording for downstream phonetic analysis. If Eastern and Western Armenian are very different, and it's possible to split the Common Voice dataset into two dialects, that would be great. It looks like participants did not report their accent at least in the Common Voice v7 version, but perhaps that's something the Common Voice folks could sort out post-hoc or for the future.

Also, reading your original comment more closely, it looks like we will struggle to add the schwas with XPF alone. (The affricate issue was a missing line in our Python script.) I think the Wikipron route might be preferable at this point; the bigger problem now is figuring out which dialect to use for each recording given the lack of metadata. I wonder if we could build some dialect classifier given this information about stop voicing / run a first pass that allows for both pronunciations in the lexicon.

Schwa: Yeah... knowing the schwa requires a mix of phonology and morphology info. It's a pain to predict...
Classifier: The maker of the Vox corpus does have some guidelines for doing dialect splits. I can provide a list of 'rules' that distinguish the dialects -- like the above voicing difference and other.
Metadata: For Vox, because it's only 2 hours, I could potentially just listen to the recordings and provide the metadata myself on whether some sentence is hye or hyw. I remember I provided audio recordings for it. But I don't know how the insides work (like where I can listen to each recording and provide metadata). I just emailed the Vox maker for this now.
PS: I emailed Michael before you first commented, offering some lists of potential audio corpora to use. I'm mostly just unsure what are the minimum corpus-annotation requirements for MFA. Like can it be orthography-less, transcription-less, etc?


chore: Increment version

We need to add a name to the jobs in the workflow files. This PR will be closed yet again.


Get Expiration.

Hey Guys.
I'm using Barrel.Current.Add(key, data, 2hours);
But when im using Barrel.Current.GetExpiration(key); It returns back that cache has been expired just now.
So it will return me utc 0 time zone for expiration but for add will register with server timezone.
Because when I want to use the data that is supposed to be expired based on GetExpiration, it's still there.
So the workaround for me it's Adding 2hours on get expiration to check for expired cached data.
Is it me that I'm doing something wrong?

Which version number are you using and which of the libraries are you using?

I'm using MonkeyCache.Filestore 1.6.3 with .net7. I'll try to update it on 2.0.1 and see if it is fixed on that version.

Meh, eventually It is not good time to update cause i see methods have changed an I have to publish the project.

I also use
Newtonsoft.Json 13.02
Restsharp 106.15.0
Plugin.Firebase 1.2.5
Plugin.Fingerprint 3.0.0
CommunityToolkit.Maui 4.00
CommunityToolkit.Mvvm 8.0.0
In case it could be a conflict or i don't know 😅.

Its 10:50 am here.


Can't fetch strings over ClickHouse odbc driver

I'm trying to fetch data from Clickhouse over ClickHouse ODBC driver using MSSQL OPENROWSET command.
I successfully fetch numeric types, but not strings - here are examples:

ANSI driver

Numeric -> success

String -> error

UNICODE driver

Numeric -> success

String -> error

ClickHouse version = 20.3.15
ODBC driver version = <IP_ADDRESS>00710 (Windows 64 bit)
SQL.LOG file couldn't be generated (tried all the tricks - searching in different temp folders, machine trace, tampering with registry, but with no avail )
Thank you in advance

SQL.LOG file couldn't be generated

Did you try this https://github.com/ClickHouse/clickhouse-odbc#enabling-driver-manager-tracing-mdacwdac-microsoftwindows-data-access-components ?

Hi,
forgot to restart sql server svc after trace had started. :)
Here it is.
SQL.LOG

Thanks, @leotausanovic.
This PR should address the issue: #300.
I haven't tested it in your specific environment, so if you can, please build the driver from that branch and tell me if it actually fixes the problem for you. If you can't build the driver yourself, let me know, I'll prepare a binary for you.

Hi @traceon ,
could you be so kind to provide a binary?
Thank you in advance!

@leotausanovic sure, 32 or 64 bit?

@traceon 64bit, pretty please :)

@leotausanovic Here you go: clickhouse-odbc-1.1.8-win64.msi.zip

@traceon thx a lot, will revert you with test results during next week.

Hi, here is 2nd round of testing, using version of ODBC driver provided last week.
Now we have elaborate error, and due to that I modifed my set of so-called "test cases" by adding fixed-length string example.
Here are results of this round:

ANSI

String -> error

Fixed Length String -> success

Numeric -> success

UNICODE

String -> error

Fixed Length String -> success

Numeric -> success

Note- fixed length string is translated on SQL Server side to varchar(length) where length is same as fixed length parameter used in the call of ClickHouse function.
Destination datatype is same (varchar) regardless of driver version used (ANSI/UNICODE).
Of course, data in SQL Server destination is right padded with empty spaces.
Using such solution isn't always feasible in that way.
Here is SQL.LOG file
SQL.LOG
So, we can say there is workaround. But it isn't always feasible - due to right padding of destination result set.
It also complicates query building for our clients, especially if they just want to preliminary investigate data.
It would be really nice if we could execute query like this one over odbc without errors:

Nevertheless - thank you very much for your effort and kind assistance!

That SQL.LOG doesn't contain the part where the driver returns "Requested conversion is not supported."  Meanwhile, the original issue seems to be resolved, and this one is separate.

Hi @traceon , I saw there is possibility of internal ClickHouse tracing (not standard SQL.LOG trace), maybe this would be helpful?

No, and this "Requested conversion is not supported."  actually not from the driver. You probably need to align column types.

https://stackoverflow.com/questions/10122693/wide-varchar-field-causes-requested-conversion-is-not-supported-error-using-op

Yes, will do - thanks for your help!

I have similar issue in retrieving String data type in php using odbc. I get Out of memory (allocated 8388608) (tried to allocate<PHONE_NUMBER>3709551613 bytes)

@dashtimehran what kind of issue exactly?

this issue is resolved but I haven't been able to fetch strings via openrowset, what's the workaround?


Something to try out

@yiquintero this setup is not throwing me any errors when it comes to using murtree modules.
I am getting some errors if I try to make the binding for parameter handler for example. I am not sure if it has to do with the version of cpp being used, perhaps that is the issue.
You can make a pull of my main branch in a separate branch to check it out ;)
Best,
Jose

Hey @jurra, I cloned your fork repo but I couldn't get the package to build using "pip install ./pymurtree". Maybe I am doing something wrong? I think the problem might me that the murtree files are missing from the arguments of the Pybind11Extension function in the setup.py file.
Good catch about adding a .gitignore! I had forgotten about it, but I have now added it to repo.
I have also been polishing-off the setup.py, pypackage.toml and main.cpp files and they can now build the package. You can check them out on the feature/add-package-configuration branch of the pymurtree repo. Note: at this point I have only managed to reproduce what we had already achieved with CMake, which is to expose the internalMain function in main.cpp. Exposing the ParameterHandler and Solver classes will require a bit more prep work on the cpp side.

Solved in #2


Buildings in player info

Add the building status info in the player info.
m 2/8, ts 0/4, lab ..
It would be useful to also have a hint for the cost and the income.

Solved in #48


Add dependencies

This PR adds dependencies (manageable by pip only currently) to each directory in the repository. It also includes a README describing installation instructions. A minor additional inclusion is to add jupyter notebook checkpoints to .gitignore.

If folks with conda experience want to add the conda (or conda env) equivalents to this PR, that would be 🔥


Prep release 2.4.1

Pull Request (PR) description
Prep 2.4.1

not sure why this isn't testing 8.... what did is miss?

I missed that the CHANGELOG.md had HEAD instead of the release string.  This will be fixed in #158.


Enable failing TypeGuard test cases

This is introduced as a regression issue, with the subtype implementation.
Affected test cases are:

ballerina-test-suite > jballerina-test > org.ballerinalang.test.statements.ifelse.TypeGuardTest
ballerina-test-suite > jballerina-test > org.ballerinalang.test.statements.ifelse.TypeGuardTest

Commented lines are still in the TypeGuardTest


Feat/table pagination

Codecov Report

:exclamation: No coverage uploaded for pull request base (dev@5a6411a). Click here to learn what that means.
The diff coverage is n/a.

@@          Coverage Diff           @@
##             dev     #140   +/-   ##
======================================
  Coverage       ?   89.28%
======================================
  Files          ?      383
  Lines          ?     3778
  Branches       ?      945
======================================
  Hits           ?     3373
  Misses         ?      303
  Partials       ?      102

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 5a6411a...834053b. Read the comment docs.


[Bug]: It is not working on laravel 11

What happened?
Doesn't work.
How to reproduce the bug
Fresh install, tested it all by itself and not working.
Package Version
2.0.0
PHP Version
8.2.0
Laravel Version
9
Which operating systems does with happen with?
macOS
Notes
I think it is not recognizing the method whenRequestLifecycleIsLongerThan. Maybe there is a workarround?

I was wrong


serializeAttachments and deserializeAttachment documentation are insufficient

Which Cloudflare product does this pertain to?
Durable Objects
Existing documentation URL(s)
https://developers.cloudflare.com/durable-objects/api/websockets/#serializeattachments-hahahugoshortcode-s7-hbhb
What changes are you suggesting?
I was not able to make this work at all.
I tried at websocket creation
const { 0: clientWebSocket, 1: serverWebSocket } = new WebSocketPair();

this.state.acceptWebSocket(serverWebSocket, tags);
serverWebSocket.serializeAttachments([value])

and at message reception
	async webSocketMessage(ws, msg) {
		ws.serializeAttachments([])
	}

It always says:
serializeAttachments is not a function

Additional information
I'm using last version of wrangler: 3.13.1

Hey sorry will get the docs updated ASAP, the correct method is serializeAttachment() no s at the end.

GitHub issue solved on this PR.

Why is the doc about serializeAttachment() and deserializeAttachment() removed? They are very useful API methods when using hibernation.

Why is the doc about serializeAttachment() and deserializeAttachment() removed? They are very useful API methods when using hibernation.

I can only understand the use of Attachment by reading Example codes now


Story for unsafe Rust?

Hello! Very cool work. I was looking around this project(at both your documentation and the arxiv paper https://arxiv.org/pdf/2207.04034.pdf) and was wondering about the story here with unsafe Rust? I understand the array bounds-checking side of things but I was wondering how much further this can/could go?
In particular, I was thinking about trying to encode the specifications of unsafe calls around ffi and then have flux check that my use is safe(or that I safely encapsulate the unsafe ffi call)? I've been trying to draw connections between this work and work from my group which I think would be pretty cool https://www.cs.purdue.edu/homes/bendy/SpecInfer/Elrond.pdf.
(Brought about by my recent ventures into modifying code with a rust-c ffi).

Hi @Pat-Lafon -- that's a great question and something we're actively thinking about right now, e.g. see this:
Would be great if you can show us some examples of what you're doing to see how flux might be used there!

https://goto.ucsd.edu/~rjhala/hotos-ffi.pdf

Wow! This was basically what I was wondering about. Great to see this kind of work being done.

Would be great if you can show us some examples of what you're doing to see how flux might be used there!

I think my interests are squarely around Section 2.4 "Glue Code". My particular example was that of Rust's Z3 bindings, some of the calls to c are allowed/expected to return a null pointer(which would be a great thing to have represented in the type system) a la For example, we can use the refinement type {ptr: *mut T | not_null(ptr)}. I could imagine other examples around only allowing inputs that are bounded such that they won't trigger an overflow on the c side(wondering about integer arithmetic overflows being undefined in c but not in Rust).
So in terms of this work, I guess one could annotate some of return pointers with ensures non_null(v) and then all the input pointers will have requires non_null(ptr). Is that correct? I think I'm assuming that ensures here is inserting this non_null check.
Thanks! All of this gives me something to think about in terms of inferring these specifications.


Checklist : Agent can't claim unassigned assignments

API needed (@cloudkucooland)
UI update : add claim button in assignments details popup
Button available only for unassigned things

/draw/{id}/marker/{id}/claim" ("POST")
is ready for testing on the test server

/draw/{id}/link/{id}/reject ("POST")
/draw/{id}/link/{id}/claim ("POST")
both ready for testing


Added support for writing Request (library!) WARC records

Hi! I've written a WARC writer for request, erm... requests. Due to the nature of WARC files and the opinionated defaults that request has, the request made (or the Request library defaults) need to be instantiated with the following options:
{
    resolveWithFullResponse: true, // get all request and response properties
    simple: false // return 4xx, 5xx etc as "successful" responses so we can WARC the result
}

Again, using this PR to try and kick off a wider discussion on this: the main thing that concerns me is the need to configure request in a certain matter for WARC writing to work. Could we optionally expose our own version of request from inside node-warc as a RequestCap that is pre-configured to make the request in the right manner?

@hyl I believe, as you suggested, that a custom RequestCap to make the requests would be in order for this.
I wonder if it would make sense to combine RequestCap and a Writter for this purpose?
Rational:
The request library is a node "native" wrapper around HTTP (node <--> HTTP) not a wrapper around the CDP protocol (node <--> CDP <--> browser <--> HTTP)
Each HTTP method wrapper request provides is essentially an generateWarcEntry since we normally make the Network.getResponseBody / Network.getRequestPostData calls there anyway.

@hyl super big thanks for this and merging this PR finally!

Is there an example of how to use the request lib? I'm trying to use node-warc with some existing code that uses Axios. I'm not following how to use this without the generateWarc method. Do I have to make our own capturer?

Hi @mooniker!
Here’s an example for RequestLibWARCWriter. I’m using request-promise in this example:
import { RequestLibWARCWriter } from 'node-warc';

const url = 'https://www.example.com';

// set up request client with some defaults so that we can access full request info
const requestClient = rp.defaults({
    resolveWithFullResponse: true,
    simple: false,
    encoding: null
});

const resp = await requestClient({
    uri: url,
    method: 'GET',
    // kill the socket after 10s of inactivity
    timeout: 10000
}).catch((err: any) => {
    logger.error(`Could not download ${url}`);
    logger.error(err.stack);
    return false;
});

const requestWriter = new RequestLibWARCWriter();
requestWriter.initWARC('/path/to/warcfile', true);
await requestWriter.generateWarcEntry(resp);

If you wanted to use Axios in-place of node-request, I imagine a new writer class would have to be created unless the response class from Axios is interchangeable with the one that comes from node-request. Hopefully RequestLibWARCWriter should be a good starting point for that if you decide to go down that path though!

@hyl Thanks heaps!
That initWARC method on the base class was exactly what I was missing.


Question about showing tabs conditionally

Hello i have a bottom tab navigator with the following structure:
export default createAppContainer(
TabNavigator: createMaterialTopTabNavigator(
tab1,
tab2,
tab3,
tab4
);
);
My question is how can i show only tab 2 and 3 based on a conditional value dynamically?
So far i've created a custom tab bar component and based on that value i return all routes or exclude tab 2 and 3, but that does no good if i have horizontal swipe enabled since when 2 and 3 are hidden it doesn't respect that they're hidden and swipes to them aswell.

@satya164 can you check this question, please?


community: added a method to update session id in PostgresChatMessageHistory

Description : Added a method to update session id in PostgresChatMessageHistory
Issue: :  There was no method available to update the session_id of the chat history table in PostgresChatMessageHistory, which could be useful for a developer.
Twitter handle: @a21kanjolia

@efriis @baskaryan @eyurtsev @ccurme @vbarda @hwchase17


Expose functions from AudioStreamPlaybackMicrophone to access the microphone AudioDriver::input_buffer indepedently of the rest of the Audio system

This solves all the issues raised in the proposal: https://github.com/godotengine/godot-proposals/issues/11347
Changes made:

My new AudioDriver::input_start_count counter is to prevent multiple calls to AudioDriver::input_start() from different AudioStreamPlaybackMicrophone instances that result in multiple conflicting processes to popping data from the same buffer.

Change the return type of AudioDriver::get_input_buffer() to Vector<int32_t>& to avoid copying out entire buffer
to access it.

GDREGISTER_CLASS(AudioStreamPlaybackMicrophone) was missing from register_server_types.cpp

Expose functions start(), stop() and is_playing() from AudioStreamPlaybackMicrophone to GDScript

New function PackedVector2Array AudioStreamPlaybackMicrophone::get_microphone_buffer(int p_frames).  This does the same as PackedVector2Array AudioEffectCapture::get_buffer(frames: int) but it fetches the frames directly from the AudioDriver::input_buffer without going through an AudioStream, AudioBus and an AudioEffect, all of which operate on the duty cycle of the Audio system output frequency.

Need help with:
I would like to expose
int AudioStreamPlaybackMicrophone::mix(AudioFrame *p_buffer, float p_rate_scale, int p_frames)
to GDExtension, but this has an AudioFrame* pointer in its parameters list
This ought to be possible, because there is already one like this with int AudioStreamPlaybackResampled::_mix_resampled(dst_buffer: AudioFrame*, frame_count: int),
but it is created by the special virtual function template GDVIRTUAL2R(int, _mix_resampled, GDExtensionPtr<AudioFrame>, int)

Since you modified the scripting API, make sure to update the class reference as well and fill it out: https://docs.godotengine.org/en/stable/contributing/documentation/updating_the_class_reference.html#updating-class-reference-when-working-on-the-engine

TLDR
There is a long and buggy route for getting microphone audio data out of the engine.  It would be shorter and more reliable to extract it directly from the AudioDriver's input_buffer.
What happens now
All microphone data goes into the ring-buffer AudioDriver::input_buffer advancing input_position as it is added.
The AudioStreamPlaybackMicrophone object has its own local pointer input_ofs into this same buffer, and its function _mix_internal() locks the audio device thread before returning a slice from this buffer using read access only.
At the moment the only way to extract microphone data from the engine is to wait for the AudioServer to request chunks of data from an AudioBus at its own update rate.  This AudioBus then requests the data from an AudioStreamPlaybackMicrophone filtered through an AudioEffectCapture object that copies any audio that passes through into its own little buffer.  Then, on a process loop, you extract the data from this buffer by calling AudioEffectCapture.get_buffer()
There are two problems with this.
Firstly, the AudioServer is highly sensitive to data not arriving in at the rate it requires, so if the microphone buffer isn't filled fast enough the stream is terminated.  There is a pull-request to fix the problem on the Android platform where the microphone keeps switching off after two minutes by padding the missing frames with zeros.  Not surprisingly, this degrades the quality of the microphone audio.
Secondly, we don't generally want any microphone audio data in the AudioServer because it causes feedback and is too laggy to work as realtime amplifier.  So if it is too difficult to debug this buffer properly (which it is), it's not worth it.  The evidence is that standard operating procedure requires us to create a special bus for the AudioStreamMicrophone to output to that is set to Mute.
The solution
Expose AudioStreamPlaybackMicrophone::_mix_internal() (suitably wrapped) as an external function, so that any process with a local copy of an AudioStreamPlaybackMicrophone can request slices of data from the input_buffer as it becomes available.  This makes no structural change to the engine, but allows a new access route to the microphone data avoiding the unnecessary requirement for it to operate in perfect synchronicity to the Audio streams.

This fix is working well.  It ran on my cheap Android phone for 4 hours without any issues at all.
Previously it would last about 3 minutes on this phone before the AudioStreamMicrophone was switched off, often permanently.
Although there is some skepticism, I would like to push this PR into some place where it can be critically discussed and reviewed, because it actually works, and we have don't even have an outline for fixing the Microphone any other way.
The primary function added into AudioStreamPlaybackMicrophone for accessing the audio data is:
PackedVector2Array get_microphone_buffer(int p_frames)

I would prefer to have the additional function:
bool mix_microphone(AudioFrame* buffer, int p_frames);

which would copy the values directly into an array rather than allocating and returning a temporary array by value.
The main use of this interface is the twovoip addon for doing Voice over IP.
There are a numerous virtual functions like this one:
void _process(src_buffer: const void*, dst_buffer: AudioFrame*, frame_count: int) virtual

where the engine calls out to the GDExtension with an array pointer, but no examples I have found where a GDExtension calls into the engine with an array pointer.
My attempts to implement this function using:
bool AudioStreamPlaybackMicrophone::::mix_microphone(GDExtensionConstPtr<AudioFrame> p_buffer, int p_frames);
ClassDB::bind_method(D_METHOD("mix_microphone", "p_buffer", "frames"), &AudioStreamPlaybackMicrophone::mix_microphone);

do not compile, so I have left the call to the bind_method commented out until it's possible to find an answer.


Additional scripts to check the package-manager used

Fixes
Fixes #61 by @Cronus1007
Description
Technical details
Tests
Screenshots

Checklist

[x] My pull request has a descriptive title (not a vague title like Update index.md).
[x] My pull request targets the default branch of the repository (main or master).
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no
visible errors.

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@Cronus1007 can you make sure the script doesn't fire the error on npm install too? I wrote that script from memory and there was probably a typo.

@Cronus1007 can you make sure the script doesn't fire the error on npm install too? I wrote that script from memory and there was probably a typo.

@zackkrida  Finally the builds are successful and failing yarn install

@zackkrida  Finally the builds are successful and failing yarn install

cc @zackkrida  @TimidRobot

cc @zackkrida  @TimidRobot

Hi @Cronus1007, there's no need to cc anyone. Folks will reply and review when they are available, not when they are pinged. Thank you!

Hi @Cronus1007, there's no need to cc anyone. Folks will reply and review when they are available, not when they are pinged. Thank you!

@all-contributors please add @Cronus1007 for code


Bug Report - Code base - Test Coverage is less than 100% for the file src/m365/spo/commands/file/file-add.ts

When we run npm test after getting the latest code base from upstream, we are not getting 100% code coverage. Coverage is there only for 99.1 % in the file src/m365/spo/commands/file/file-add.ts.
Coverage is missing in the line #
Expected Behavior
Coverage is needed for 100%
Current Behavior
Overall Coverage is available only for 99.99.

Development environment
Tried in following environment.

Windows 10 - WSL 2 - Node Version : 12.15.0
Windows 10 - Cmder - Node Version : 12.15.0

Can you let me know if you are able to reproduce the issue from your end. If not, something might have gone wrong in my environment.

Thanks for reporting @arjunumenon 👍🏻
This is an odd one, I don't think we've made any changes to this specific command recently that would cause this drop in coverage.

Hey @garrytrinder  - That is even weirder. Recent timeline does not show any update either.
Had tried one more test. Had upgraded node version to 14 confirmed that the Issue is there only for the Node version 12.15.0.

It works well for node version 14.15.3

Thanks for the further research @arjunumenon 👏
We've recently updated the CI pipeline to use node@14, so I would recommend staying with node@14 as the default for now.
Bringing @waldekmastykarz into the loop, we may have to bump the required dev node version up to node@14 for the required coverage.

We've recently updated the CI pipeline to use node@14, so I would recommend staying with node@14 as the default for now.
Thanks @garrytrinder for the update about node version. I guess I had missed that communication. Still in catching-up mode 👀

Thanks @garrytrinder for the update about node version. I guess I had missed that communication. Still in catching-up mode 👀

It's not something that we had really communicated, so that's on us, sorry.
Again, thanks for raising though, appreciate you taking the time to inquire ❤

I'm pretty much sure that it's caused by Node@14 like @garrytrinder mentioned.

I've just updated the Minimal Path to Awesome to state node@14 for development, this then matches the Build section on the readme.
As you are unblocked @arjunumenon I will close this issue, thanks again for reporting. 👍

Totally fine @garrytrinder. Trying my best to help in whatever way I can.
Wonderful that it is updated in the Minimal Path to Awesome so that new contributors will be aware of that. 🚀


Refactor test directory.

Codecov Report

Merging #30 (a268f2f) into main (57ea646) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #30   +/-   ##
=======================================
  Coverage   90.74%   90.74%
=======================================
  Files           4        4
  Lines         605      605
  Branches       45       45
=======================================
  Hits          549      549
  Misses         56       56

Flag
Coverage Δ

unittests
90.74% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Library lacks support for backup eligible passkeys and devicePublicKey extension

This library currently lacks support for multi-device FIDO credentials as well as the related devicePublicKey extension which lets passkeys not be a deal-breaker for enterprise customers.  I should fix this.

@aseigler Let me know if I can sponsor any of your time to work on this. We're about to start work on passkey integration on our apps!

I've actually got a good portion of this working already, at least in theory.  There's a couple of spots where it's a bit twitchy, because while this feature seems small, it actually changes the rules quite a bit.


Rename deprecated filter functions to new versions.

Proposed Changes
As per title. The old FilterGroup[Version]Kind are deprecated and replaced by new ones that read a bit better.

/lgtm
/approve

/retest

/retest

I've opened https://github.com/knative/eventing-contrib/issues/1250 to work on CamelSource failing tests, it seems not related to this change.

/retest


Add Metal3 to users

Pull Request Motivation
Add Metal³ to users
Kind
/kind documentation
Release Note
NONE

/hold cancel

/hold while I check with the community that there are no objections

Were you able to check this?

Yes there has been no objections so far and a couple of +1. I am also one of the maintainers. We will bring it up also on todays community meeting but more as information. We don't expect any objections. :slightly_smiling_face:

Thank you very much!!
/approve
/lgtm


[top, rom_ctrl] Add missing TEST port for ROM macro

This is a follow-up of lowRISC/OpenTitan#23547.
This PR supersedes #23716.

CHANGE AUTHORIZED: hw/ip/prim/rtl/prim_rom_pkg.sv

CHANGE AUTHORIZED: hw/ip/prim/rtl/prim_rom_pkg.sv


[HOWTO] Disable rainbow-delimiters

What are you trying to achieve?
Trying to disable rainbow-delimiters and use a different parentheses highlighter.
What have you tried?
I have set package.el to:
(package! rainbow-delimiters :disable t)
and doom refresh.
Now, I am getting this warning/error if I open up my C++ file:
File mode specification error: (void-function rainbow-delimiters-mode)
May I know if there is a more elegant way of disabling rainbow-delimiters? I could not find and reference of doing so. Thanks!

You should not disable core packages with package!. If they are in core, the rest of Doom assumes it is always present. Instead, remove rainbow-delimiters-mode from c-mode-common-hook:
(after! cc-mode
  (remove-hook 'c-mode-common-hook #'rainbow-delimiters-mode))

I will be moving some of these packages into modules soon.

Thanks for pointing this out! I am trying to migrate some of my settings from my vanilla Emacs setup to doom. Really like doom-emacs so far!
I have another 2 questions during the migrate process.

What is the recommended way for dynamically choose whether to load a module?
e.g. Only load doom's modeline if running in GUI. Otherwise, use some other modeline package.
The only way I can think of currently is to disable the module, and declare and configure the doom-modeline package manually. But, I guess that will lose some stuff in the modeline module?

After enabling vterm module and load up a terminal, my modeline disappears for the terminal buffer. Is it by design?

Thanks again!

What is the recommended way for dynamically choose whether to load a module?

It depends on the condition. Whenever your module list (i.e. doom! block) changes, you have to run doom sync (same as doom refresh). If the condition could change from startup-to-startup, without running doom sync, then it won't work.
If the condition are more stable, e.g. what OS you're on, or what version of Emacs you're running, you can use :if, :when, :unless and :cond as demonstrated here.

Only load doom's modeline if running in GUI. Otherwise, use some other modeline package.

In this case, you could add this to your ~/.doom.d/config.el:
(unless (display-graphic-p)
  (remove-hook 'after-init-hook #'doom-modeline-mode))

After enabling vterm module and load up a terminal, my modeline disappears for the terminal buffer. Is it by design?

Yes. To reverse this:
(after! vterm
  (remove-hook 'vterm-mode-hook #'hide-mode-line-mode))

Thanks for helping out~ Happy new year!


use more permissable dependencies

[x] Issue #1492

This PR lifts some of the restrictions imposed in the package's dependencies versions.

I just ran a simulation for every simulator and it worked fine.
Did wait(), download_outputs, ran the cli commands (logs, projects, quotas, resources, tasks) and everything worked as expected. I've also started some machine groups and terminated them with no problems.
I think there are no issues with this PR.


管道章节其中一些还没翻译

管道这章
https://angular.cn/docs/ts/latest/guide/pipes.html
其中这几段还没翻译：
Clearly some values benefit from a bit of massage. We soon discover that we desire many of the same transformations repeatedly, both within and across many applications. We almost think of them as styles. In fact, we'd like to apply them in our HTML templates as we do styles.
Angular reports an error if we neglect to list our custom pipe. We didn't list the DatePipe in our previous example because all Angular built-in pipes are pre-registered. Custom pipes must be registered manually.
If we try the 在线例子, we can probe its behavior by changing the value and the optional exponent in the template.

并且像这句话，不能像其他话点击可以折叠英文：
Introducing Angular pipes, a way to write display-value transformations that we can declare in our HTML! Try the 在线例子.
欢迎来到Angular“管道(Pipe)”的世界！我们可以把这种简单的“值-显示”转换器声明在HTML中。 试试在线例子。

已解决。


Should valueSize for parameter 13 of LZW31-SN be 2?

This line suggests that parameter 13 should be 1 byte:
https://github.com/zwave-js/node-zwave-js/blob/910155c88ffb2f8ab6ddce6adc2c0dbb57a135f6/packages/config/config/devices/0x031e/lzw31-sn.json#L151
However, if you look at the Inovelli config file, it says it should be 2 bytes:
https://github.com/InovelliUSA/OpenZWave/blob/master/config/inovelli/lzw31-sn.xml#L119
Setting values for all parameters except parameter 13 seem to work.  Parameter 13 just refuses to change. When I attempt to set parameter 13, I get the following from the logfile:
2021-02-02 04:28:34.620 INFO APP: Zwave api call: writeValue [ { nodeId: 13, commandClass: 112, property: 13 }, 179, [length]: 2 ]
2021-02-02 04:28:34.620 INFO ZWAVE: Writing 179 to 13-112-0-13
2021-02-02 04:28:34.687 INFO ZWAVE: Success zwave api call writeValue
2021-02-02 04:28:34.840 INFO ZWAVE: Node 13: value updated: 112-0-13 170 => 170

I'm currently using the dev Docker image of zwavejs/zwavejs2mqtt. I see this file is listed in two places on the Docker image (relative to /usr/src/app):
<EMAIL_ADDRESS>./node_modules/<EMAIL_ADDRESS>If I edit these files on the Docker image, will this allow me to test whether it should be 1 byte or 2? Or, do I need to recompile the Docker image to test this?

I noticed this didn't work either on the lzw31-bsd too but didn't have a chance to dig into it until now.  I've confirm @bburan suggestion works by overriding those files to set the size to 2 like the openzwave config has, thanks!  I'll put a PR together for both switches once i get my setup configured.


jump to defintion

on click in code view, maybe in code snippets too
use save-analysis data

done


Bug in editing enumerations as part of new data type

When using the 'new data element' wizard, and creating a new enumeration data type as part of that process.  After creating a couple of enumeration values, editing new enumeration values causes previously-created ones to vanish.

Create new data element
Choose to create a new data type
Select "Enumeration"
Add two enumeration values
Add a third, and start editing it

Result - first and second enumeration values disappear and are not saved
Using Safari, on a Mac

Cannot replicate this in the 7.3.0 release. I was able to start creating an enumeration type with at least 4 values:

Closing this issue as a result.


I24 SSX: Issues found in v0.0.2

When testing v0.0.2 of the codebase a number of issues were found:

Initially no PV connections could be made, this was fixed by installing caproto. We need to look at which CA bindings we want to use in mx_bluesky and make sure we correctly have them installed
The beam centre in the OAV takes some time to initialise, even after the connection has been waited on. This was causing issues on startup of the move to click. To fix this on the beamline the OAV was initialised once earlier and the beam centre was only requested on click rather than all mouse events
There was an issue in moving to click using set and so no waiting for the pmac to finish processing the command to move x before we move y. This was fixed by using put with wait=True but it could be true in other places in the codebase
There are lots of instances in the log of move to click in the form of Cannot move to target thread - not fixed on beamline as it seemed to cause no issues
The sign of the y axis was incorrect in the EDM - not fixed on the beamline yet, we need to think about a better solution for this
The zoomcalibrator had to be updated to 13.5 to get the move on click to work correctly
Beam centre matched GDA but did not match the value on the OAV viewer
In general starting up the viewer and interacting with the system seemed very slow and unresponsive - this is probably due to us recreating ophyd devices every time we run anything
The paths to the parameter files were incorrect, rather than src/mx_bluesky/I24/serial/parameters they should be mx_bluesky/src/mx_bluesky/I24/serial/parameters - are these paths relative to where run_fixed_target was run from?
Nit: There were lots of points in the logs that said "Chip type is 0", it would be better to print the string of the chip type
Generally the behaviour of setting fiducial seems wrong, if I set the fiducial then try and return to it it does not go to the correct place.

Testing v0.0.2, part 2 - TODOs:

Permission issues need to be fixed, see #54
For the zoomcalibrator, look at ME14E-motor.edl to figure out how to convert pixelspermicrons into motor steps, see #44
Merge changes from last testing
Need a better solution for paths to parameter files so that they always end up in the correct place wherever it is run from, right now they assume run_fixed_target is run from mx_bluesky
Workaround the value for the det_type PV which can be both a string (eiger/pilatus) or an int (0/1) depending on where it's set. Have it always as string to avoid confusion.
Check the whole code for places where set is used for the pmac string and replace with put
General tidying up


fix(projects list): fix style issue on striped rows, add default sort

Closes: RHOAIENG-4853
Description
Fixes padding on the first column of a striped row. Since it is the first column in the row, PF adds a larger padding which we don't want.
Sets the default sort column to the project name.
How Has This Been Tested?
Manual testing
Test Impact
None
Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).

/lgtm
/approve


iOS Wrong image is shown

Bug Report
Problem
On initial app run, the getpicture retrieves the correct photos properly. When I restart the app, photos being displayed are the photos selected in the previous session. there is some kind of cache not properly getting cleared. How to fix this?
What is expected to happen?
What does actually happen?
Information

Command or Code

Environment, Platform, Device

iOS 12.0
plugin version 4.0.3
cordova ios 4.5.4
Version information

Checklist

[x] I searched for existing GitHub issues
[x] I updated all Cordova tooling to most recent version
[x] I included all the necessary information above

should be fixed by https://github.com/apache/cordova-plugin-camera/pull/306


5554 improve add button composer (#5632)

Pull request opened by the merge tool on behalf of #5632

Merged in 1095e9c393c58219d11b6a8d3555999dbfca1d8c


Implement Code of Conduct

Having a clear, effective and enforceable Code of Contact (CoC) is a cornerstone for a safe and welcoming community. We currently have a draft code of conduct but it requires two things to be fully operational:

Feedback from the community on whether this CoC is adequate
A trusted CoC committee to handle reports of CoC violations

Code of Contract draft is now on the website

@jezcope How does it make a community safer or more welcome?

@jezcope
In the libre software world, effectively zero projects used to have codes of conduct.
The culture of the ecosystem is then and now, a lot stronger than a text file.
Nobody wants to read, and those that maybe should (provided something else was written), don't.
Thus, there is no way of guiding behaviour this way. It only instils false confidence in those that do,
in that those that don't not only have read it, but also follow it.
This again hinges on the idea that writing something worthy of being written, grants it more of an impetus to be followed than not being as anti-social as it would take to warrant writing it.
This is why we have an actual judicial system, focused on intent, in a trifecta of power.
The effective and total control of individuals or committees outside of vested interest in anything else, is a magnet for anti-social people.
Escalating conflict beyond control of the individuals involved carries an implicit cost.
Ever since their instalment, there has been no shortage of absolute disasters relating to, and as a result of CoCs in libre software.
I am not a contributor here, but I have contributed to other library projects.
Never would I pledge allegiance to the tools of the mafia and catholic church.
I am a former Mozilla contributor, and if you want to replicate that culture, fair warning.
The open life science slide deck is devoid of reason, and works just as well in reverse.
The cascading document from the carpentries is utter nonsense, from every angle of approach.
The turing way CoC is in similar vein, anti-meritocratic, and authoritarian.
How is reading people these draconian rules or trying to get them to read them by posting them prominently inviting? That is how institutions work.
These documents are not moulded on clinical psychology, logic, or backing up their rosy language.
They are political documents aiming to undermine meritocracy.

@comradekingu As project leads it is our responsibility to set a tone for what kind of culture we want to promote, uphold and ensure for anyone who would like to participate in our project/community.
A clearly described code of conduct with enforcement and reporting g procedure shows commitment to creating a welcoming and safe environment. This is especially important for people who have been systemically and unjustly excluded from other communities - or bullied/harassed by online/in-person trolls.
Everyone is susceptible to bullying and harassment and several people have experienced or continue to experience it differently. Unfortunately, not all incidents get reported due to one or multiple of the following reasons: unfamiliarity with the policies and complaint mechanisms, dealing with the situation themselves, fear of negative repercussions, the social stigma attached to victims or not perceiving offence serious enough to make formal complaints. A survey project on ‘Support for Women in STEM’ [1] showed that over 50% of the cases don’t get reported because people are not aware of the members who are designated to take reports. According to another large scale survey conducted independently by the Australian Human Right Commission [2] and YouGov in the UK [3] state that only 20-25% encountered incidents are reported by the targets.
If you feel that community with CoC is not the kind of project you would like to participate in, I respect your choice to not contribute to them. And similarly, if someone wants to have a clearly described CoC, I respect their decision to do that.
References:
References:
[1] Does every biased action have an effective reaction?” report on a survey “Support for Women in Science. March 25, 2019. Preprint. http://www.sciwri.club/wp-content/uploads/2019/03/CGS-WiS_Team3_20190325.pdf
[2] Working without fear: Results of the 2012 sexual harassment national telephone survey, Australian Human Rights Commission 2012.
[3] Sexual harassment: how the genders and generations see the issue differently in the UK. Lifestyle, 2017.
https://docs.google.com/document/d/1iaPWvVcPZEroNbUXGxnOxp5aBLMPjIPYCeWZDr9--nk/edit

People that don't build projects aren't project leads. This is a misconception introduced most prominently by CoC, in the form of the covenant CoC from version 1.4 to 2.0, where "project maintainers" is replaced by "community leaders".
It seeks to grant people without vested interest, power in structures not of their creation.
This is contrary to the best-of-breed system we have, and it continues to be an empty promise in light of disasters cast upon the community and the people that created it.
The otherwise most closely resembling meritocracy-model we have in the libre software world, is fairness as far as equality goes.
Libre software also isn't their culture, any more than they are trying to destroy its underpinnings, by way of introducing corporate culture, non-libre licenses, and in cancelling its leaders.
That is neither a welcoming, nor safe environment. Its very history is that of excluding people unjustly from communities. Rosy language or dealing with issues isn't otherwise new.

People with different culture or communication style should not be expected to understand the 'norms' if we don't explain them. CoC document allows us to express unspoken rule explicitely.

I don't know who the "we" is there, but let me distance myself from at least your initiative in adding yourself to that group.
Insofar as you derive this responsibility or animus from either honest or fake leadership, it is in no way self evident, nor is it any less of the same premise. Who are you to think you can be the governor of people and their communication? Thinking you somehow escape the irony of your own system by invoking a "we" onto another group of at-best people commanding worse communication skills, is the very problem. A CoC allows unscrupulous people total power in engaging social rule to their own whim. It needs no heavier an argument than "shows commitment to creating a welcoming and safe environment", which is just signalling virtue.
https://gcc.gnu.org/pipermail/gcc/2021-April/235575.html is an excellent take on the situation, precisely for the sort of people this greater community is (or used to be) a safe-heaven for.
I seem to need none of your advice in leading many communities of people of different background by selection bias even, and I let people communicate as they wish. No need for censorship. This is again, the best defence anyone unjustly treated could get. They are called unwritten rules for a reason. One would imagine they would be put into writing everywhere if it replaced navigation of social hierarchy and behaviour. Case in point, they aren't, and unspoken rules short of the criminal code, aren't either. How you otherwise want to build culture by putting unspoken rules into writing is beyond me.
CoCs don't increase contributions, "diversity", or profits, they cost valuable developer time from already present manpower, even if sometimes it is just that of clicking a button on GitHub to get more green lights… You skipped over the whole argument of why they are functionally and effectively void, and resort to enforcement as nothing even derived from it. Not that CoCs aren't self-righteous in the opposite direction though. It seems the beneficial and open nature of forcibly secretive reporting procedures have escaped people in every police state built on them.
This is again not to say there aren't exceptions or problems that are not endemic, I am pointing out that instrumenting secrecy in escalation of conflict, it is a problem by default.
It doesn't even compare to its original premise, because it is in turn changed.
As for the non-sequitur of bullying, somehow being implicitly biased or systemic as per your references, I might write about that in a later post, or add it as a spoiler. Equating a CoC to a reporting system by means of contact, as I already proposed, does not for a bias or CoC make.

@comradekingu can you please stop inserting yourself in CoC related conversation?
We are committed to offering CoC for our community members, and that is not up for debate.

Happy to keep my downvote.
You have been harassing people across different projects: https://github.com/search?q=comradekingu+coc&type=issues.
Not sure what your agenda is when you use threatening and demeaning language to shut off and disrespect people.
This is a request to stop wasting open source volunteers' time on conversations where your opinions have not been invited.

Not sure what your agenda is when you use threatening and demeaning language to shut off and disrespect people.

citation needed

This is a request to stop wasting open source volunteers' time on conversations where your opinions have not been invited.

that's not very "welcoming" and "inclusive".


Get some measure of current progress and completion

Is there any way to get a sense of how much work the crawler has left to do, and how much it's done? The dashboard shows which requests are queued, but getting a sense of "we've done 250 requests and there are 8000 still to go" would be very useful. I appreciate that this might not actually be a knowable figure -- it's possible that all we know is what's currently queued, and each of those queued requests might spawn another million queued requests once they've been fetched and processed. However, at the moment it's a very shot-in-the-dark affair; it's very hard to get a sense of how long one should wait before there'll be data available in Mongo to process, and whether the data in there is roughly OK or wildly incomplete.

sorry for the delay in responding here. Progress is a real challenge in crawler-like systems. As you say, you never really know what you'll find and whether or not you've already seen/processed what you find. I've literally queued one request and ended up with 2 solid days of processing across 16 cores.  Millions of requests processed.
 If you are using RabbitMQ you can get pretty much the same insights from their management UI.
One thing we are playing with in the ClearlyDefined crawler is a webhook that pings on every new write. This is structured like the DeltaLog store in GHCrawler but is simply configured to POST to a given host with the blob it is about to write. This way you can watch for "markers" to tell if some particular data is available.
However there are many caveats to that

The blob in question may already exist and may get skipped so it is never written so the webhook never called
there is no ordering guarantee so one blob being written is no indication that any other blobs are or are not written

Related, you could hook into the logging system to see when something of interest is processed. Many of the same caveats apply but you will see every request, not just the ones that cause a write.
Another approach is to get insight into the queues themselves. Unfortunately at this scale, that can be hard and most queuing systems don't really expose the list of pending items. In our cases, there is a Redis table of items in the queue with a configurable TTL. We use this to avoid "rapid fire" duplicate requests. I think the default definition of "rapid" is 1 hour. The crawler goes through considerable pain to ensure that within that TTL window there are no duplicate requests. One could access Redis and point query for a request of interest.
More caveats:

A request may get processed and a very similar request queued so it may look like the original request has not yet been processed
a request could simply be in the queue for > TTL and so be deleted from redis but still not be processed.
listing the entries in redis is blocking and slow so you can really only do point queries.
requests that are not in redis are not guaranteed to have been processed. They may have failed for example and been deadlettered.

Hate to be so negative on this but its a hard problem using standard queuing. If we step away from queuing systems and use a database-based queue approach then things change as the database could reasonably be queried and could retain some info etc to avoid some of the negative elements cited above. At that point however we are into a whole new area of development (unless you know of such a system we could just use).


Unknown Device for AMD Ryzen 7 PRO 78401U w/ Radeon 780M Graphics

Brief description of your issue
Going to the System Informer options, RAPL Devices, I see the following screen where the message "UNKNOWN DEVICE - PLEASE REPCRT ON GITHUB]", and hence I'm here reporting it :)

Steps to reproduce (optional)
With AMD Ryzen 7 PRO 78401U w/ Radeon 780M Graphics integrated GPU:

System Informer > Options > RAPL Devices

Expected behavior (optional)
No response
Actual behavior (optional)
No response
Environment (optional)
Windows version: Windows 11 23H210.02631
Kernel version: Windows Kernel 10.02621.4455
System Informer version: 3.124298.0 Release 00-8664-d17ee503-01047000
CPU with Integrated-GPU: AMD Ryzen 7 PRO 78401U w/ Radeon 780M Graphics

Duplicate of #1558