edgedb CLI command readability, verb-object regularity, usability and ergonomics

While the following edgedb commands are clear as to what is being acted on:
edgedb create-superuser-role
edgedb alter-role
edgedb drop-role
edgedb server reset-password
most CLI commands are more cryptic.
What would be the impact on the cognitive load for learners and developers, if we made both the verb and the object clear in the canonical version of CLI commands?
There are many approaches to regularising naming conventions.  I'm not precious about which approach is chosen, just keen on improving usability and ergonomics.
I'm interested in contributing. If the edgedb team is supportive of this direction, then I am interested in assisting creation of the pull requests to chip away at this refactoring of code and documentation over coming releases.  Let me know if this is of interest.

 We're actually redesigning our CLI just in time for our upcoming Beta 3 release. Read more about that here: https://github.com/edgedb/rfcs/blob/master/text/1006-simplified-cli.rst
The "server" vs "instance" vs "system" confusion is definitely still there, though. For the latter, most likely, we'll rename EdgeQL's statement CONFIGURE SYSTEM to CONFIGURE INSTANCE. As for the CLI, I'm not sure that adding -instance suffix to virtually all server subcommands would actually improve the DX.
cc @edgedb/engineering

Hi Yuri,
RFC1006 is a great step for DX.
Yes, renaming EdgeQL's statement CONFIGURE SYSTEM to CONFIGURE INSTANCE will remove a synonym from the glossary.
For further consideration, do any of the following suggestions add DX value?  The main focus is on clarifying which of the server commands are about the server context and which are about instance context.  Also a few suggestions to group database specific commands together in the same namespace.

Command
Description
Which of these proposals increase regularity and improve DX?

dump
Create a database backup
database dump

restore
Restore a database backup from file
database restore

config
Configure a DB or a server instance
If the names of configurable flags/settings clearly indicate the object then this would be clear to developers. Otherwise consider database config , server config and instance config.

migration apply
Migrate the database to the latest revision

migration create
Create a new migration

migration log
Show the migrations log

migration status
Show the current migration state

migrate
An alias for edgedb migration apply

project init
Initialize a new EdgeDB project

project status
Show the status of the current project

project list
List all projects

project unlink
Clean-up the project configuration

server status
Status of an instance

server init
Initialize a new server instance
instance init

server start
Start an instance
instance start

server stop
Stop an instance
instance stop

server restart
Restart an instance
instance restart

server info
Show server information

server install
Install edgedb-server

server uninstall
Uninstall edgedb-server

server upgrade
Upgrade installations and instances
instance upgrade

server destroy
Destroy a server instance and remove the data stored
instance destroy

server list-versions
List available and installed versions of the server

server logs
Show logs of an instance
instance logs

server reset-password
Reset password for a user in the instance

database create
Create a new DB

database drop
Drop the DB

describe object
Describe a database object

describe schema
Describe the database schema

list
List matching database objects by name and type (run edgedb list --help for more info)
instance list

self upgrade
Upgrade this tool to the latest version

self uninstall
Uninstall this tool

database dump

We considered this, but the dump command can also dump multiple different databases at once. So nesting it into the database subgroup would be confusing.

If the names of configurable flags/settings clearly indicate the object then this would be clear to developers. Otherwise consider database config , server config and instance config.

BTW, thanks to your GH threads we're keeping the edgedb configure name (the current edgedb config rename was done by mistake; I'll fix the RFC today). I'm not sure that splitting configuration into separate three commands would make it simpler, conceptually.

instance init

I'm on the fence about this suggestion. There pros -- it's logical, and cons - more to type, more nesting. We'll discuss this proposal on one of our engineering calls this Wednesday or Friday.

Thanks Yuri, for your prompt responses.  All good, however, I didn't follow your last point.

more to type, more nesting

The typing involved is of the same order as the RFC1006, and I'm not proposing deeper nesting.
My observation is that these commands operate in one context.

Server Context

edgedb server info

edgedb server install

edgedb server uninstall

edgedb server list-versions

And that these commands operate in another.

Instance Context

edgedb instance init

edgedb instance start

edgedb instance stop

edgedb instance restart

edgedb instance upgrade

edgedb instance destroy

edgedb instance logs

Hi @1st1,
Any update on the engineer's evaluation of this proposal for Beta 3?
Also on the proposed DX implications of 'named instance' and possible improvements
Thanks
David

Hi David, we're still working on implementing the current RFC. Probably won't have time to do anything else before the b3. The current changes are already invasive enough. That said we'll have a couple more internal discussions if we want to introduce edgedb instance or not.

@DavidPratten We've release EdgeDB b3 with your recommendations implemented, David. Thanks so much for bringing this topic up!  https://www.edgedb.com/blog/edgedb-beta-3-ross


Minor: inline unwrap_arc, rewrite_arc, rewrite_arcs

Which issue does this PR close?
Part of https://github.com/apache/datafusion/issues/5637
Closes #.
Rationale for this change
When profiling on main these functions show up many times

What changes are included in this PR?
Changes
Mark the functions as #[inline(always)] - I think they are not inlined without the #inline attribute as they are in different crates
This makes the profiles much easier to read and understand:

Are these changes tested?
Functionally by exisitng tests
Performance:
(performance measurements in progress)
Code size:
I also made sure this didn't bloat the binary size:
cd datafusion-cli
cargo build --release

Before this PR:
TODO
After this PR:
TODO
Are there any user-facing changes?
Hopefuly

🤔 I see an error now
  Running tests/tpcds_planning.rs (target/debug/deps/tpcds_planning-cfb56ce58344e128)

running 198 tests
test tpcds_logical_q12 ... ok
test tpcds_logical_q1 ... ok
test tpcds_logical_q10 ... ok

thread 'tpcds_logical_q14' has overflowed its stack
fatal runtime error: stack overflow
error: test failed, to rerun pass `-p datafusion --test tpcds_planning`

I think inline may also cause code bloat, especially there is recursive call for unwrap_***, worth to check it too.

Good call @jayzhan211  -- I will double check the size of the generated code before putting this PR up for review

I realstically will not have time to work on this any time soon


com.spotify:docker-maven-plugin:0.4.9:build (default-cli) on project eureka-server: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

Description
[Add feature/bug description here]
How to reproduce
[Add steps on how to reproduce this issue]
The Maven Plugin portion is :+1:

com.spotify
docker-maven-plugin
0.4.9

https://<IP_ADDRESS>:2376
${docker.image.prefix}/${project.artifactId}
src/main/docker

${project.build.directory}
${project.build.finalName}.jar

When i run docker-machine ls i get below response:
C:\Users\cups>docker-machine ls
NAME           ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default        -        virtualbox   Running   tcp://<IP_ADDRESS>:2376           v1.11.1
proxy          -        virtualbox   Stopped                                       Unknown
proxymachine   -        virtualbox   Stopped                                       Unknown
I am using windows 7(64 bit).
C:\Users\cups>docker-machine --version
docker-machine version 0.7.0, build a650a40
C:\Users\cups>docker --version
Docker version 1.11.1, build 5604cbe
virtual box version is 5.1.6
What do you expect
[Describe what do you expect to happen]
What happened instead
[Describe the actual results]
Software:

docker version: Docker version 1.11.1, build 5604cbe
docker-maven-plugin version: 0.4.9
maven version: latest

Full backtrace
com.spotify:docker-maven-plugin:0.4.9:build (default-cli) on project eureka-server: Exception caught: java.util.concurrent.ExecutionException: com.spotify.docker.client.shaded.javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

sounds like an issue with TLS certificates - are you setting the environment variables that docker-machine exports? see https://github.com/spotify/docker-client/blob/master/docs/user_manual.md#https-support

I did that, but it did not help:
C:\Users\cups>docker-machine env default
SET DOCKER_TLS_VERIFY=1
SET DOCKER_HOST=tcp://<IP_ADDRESS>:2376
SET DOCKER_CERT_PATH=C:\Users\cups.docker\machine\machines\default
SET DOCKER_MACHINE_NAME=default
REM Run this command to configure your shell:
REM     @FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
C:\Users\cups>@FOR /f "tokens=*" %i IN ('docker-machine env default') DO @%i
Also i upgraded the docker version:
C:\Users\cups>docker version
Client:
Version:      1.12.0
API version:  1.24
Go version:   go1.6.3
Git commit:   8eab29e
Built:        Thu Jul 28 23:54:00 2016
OS/Arch:      windows/amd64
But these do not seem to help.
Also how do i use the api you mentioned??
I tried setting:
https://boot2docker:2376 but i get unknowhost exception..

Sorry, this is how my pom.xml looks:

com.spotify
docker-maven-plugin
0.4.13

https://boot2docker:2376

${docker.image.prefix}/${project.artifactId}
src/main/docker

${project.build.directory}
${project.build.finalName}.jar

pom.txt
Please find attached my pom.xml.. I am currently using latest version of spotify plugin 0.4.13

I have the same issue too, though the context is set with the right environment variables for the plugin.

Is this still an issue?

Closing for now. Please comment here if the latest version doesn't work.


Image Size!!

game crashes!! the crash report cant identify the callstack but i am SURE it crashes because of this MOD... i remove the mod and no more game crash!
PS: why is the file "/assets/too-cheap/too-cheap-background.png" have a file size of 5.3MB???
weird!!

Thank you for opening this issue.
If you could please share the following information to help me solve this issue:

crash log
game version
mod version
when the game crashes specifically
are you using any other mods that affect the anvil?

Regarding the large file: that is a screenshot I'm using for the modrinth page banner. It is indeed weird that past me decided to put that in the jar file, I'm going to remove that in the next version.


Update SQLite to 3.46.0 and release v2.8.2

Update bundled SQLite to version 3.46.0
Support x86 and arm64 in tests

@noteflakes Please release v2.8.2 of the gem after merging this PR. Thanks.

Thanks @gschlager , sorry for the late response!


python311Packages.georss-generic-client: 0.7 -> 0.8

Diff: https://github.com/exxamalte/python-georss-generic-client/compare/v0.7...v0.8
Description of changes

Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 286366 run on x86_64-linux 1

2 packages built:

python311Packages.georss-generic-client
python311Packages.georss-generic-client.dist


Feature request: Client Caching

It will be super cool to have a client caching which is created based on some sort of attribute in the web api endpoint. For example, let's say you have a typescript client with certain method and arguments. If we can automatically have a caching layer in typescript which caches result based on the parameters used that will be very cool. I know it will be quite complicated as you need support for different client languages.

It would be interesting, although caching requirements tend to vary between applications though. For that reason I think should be handled through the application rather than NSwag.
One idea could be to use a Proxy to wrap the generated NSwag clients in a cache function. As each method is called, you could check whether cached entries already exist for that combination of method/arguments (depending on the type of request, cache policy, etc.).

I agree with josh her: Caching is very use case specific and I think should not be baked into the generated code. However we need some extension points (eg a single RequestAsync method on the base class) where you can implement your caching functionality for all operations. Maybe a new setting CallRequestWrapperMethod which always calls this method. Somthing like:
public Task<T> RequestAsync<T>(string operation, Action<Task<T>> execute)

The action execute calls the original/generated implementation...
What do you think?
Ref: https://github.com/RSuter/NSwag/issues/321

Hi
Yeah I agree with Josh. That would simplify the integration and
customisation a lot. Not sure what is the operation parameters!? So how
would you add caching for some method and not others.!? it will be good to
not have to write various IF statement to only cache certain API calls. I
think it will be good to have a attribute on the endpoint method to
indicate the endpoint to cache but how it is cached is up to the developer.
What do you think?
Kind regard,
Farshid
On 30 July 2017 at 07:11, Rico Suter<EMAIL_ADDRESS>wrote:

I agree with josh her: Caching is very use case specific and I think
should not be baked into the generated code. However we need some extension
points (eg a single RequestAsync method on the base class) where you can
implement your caching functionality for all operations. Maybe a new
setting CallRequestWrapperMethod which always calls this method. Somthing
like:
public Task RequestAsync(string operation, Action<Task> execute)
The action execute calls the original/generated implementation...
What do you think?
Ref: #321 https://github.com/RSuter/NSwag/issues/321
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/RSuter/NSwag/issues/861#issuecomment-318881298, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAZAjmzAR9KUe7eupg44LuwgS2FWV9IPks5sTB6YgaJpZM4OnaJv
.

May be it would be enough to just add an option to make client methods virtual. With virtual methods user will be able to inherit client class and wrap base calls for any purpose, including caching.

May be it would be enough to just add an option to make client methods virtual. With virtual methods user will be able to inherit client class and wrap base calls for any purpose, including caching.

This was a good idea in 2020 and is still a good idea in 2023. The inability to incorporate caching is what's holding me back from using NSwag right now.


add ackoptions for nats

Description
quickly add ackoptions in pubsub/natsstreaming options according to the issues.
Issue reference
#505
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

Please open a docs PR updating the nats-streaming metadata.

Thanks for this @abserari


Integrated terminal doesn't toggle when it's losing focus

Issue Type: Bug
Steps to reproduce:

Toggle integrated terminal to make it appear (Ctrl+`)

Note that it has keyboard focus.

Perform some action to make it lose focus. Options: start a build job when you have more than one (so their list appear for selection), press Ctrl-P, or open some other "popup-window" e.g. open "Goto to symbol" quicklist (or how is it called), right clicking in editor also reproduces this.

Was initially reproduced when starting build jobs, but reproduces on any window poping up.
Actual result 1: terminal loses focus

Actual result 2: now you have to press Ctrl+` twice to toggle terminal. First time it's getting focus, second time it hides (actually toggles).
I can not reproduce this in 1.27.2
VS Code version: Code 1.28.2 (7f3ce96ff4729c91352ae6def877e59c561f4850, 2018-10-17T00:20:56.183Z)
OS version: Linux x64 4.4.0-112-generic
Extensions (5)

Extension
Author (truncated)
Version

cpptools
ms-
0.19.0

shader
sle
1.1.4

vscode-lua
tri
0.12.4

cmake
twx
0.0.17

vscode-todo-highlight
way
1.0.4

(1 theme extensions excluded)

https://code.visualstudio.com/updates/v1_28#_toggle-panel-changes

That explains it. I've read #19400 and the actual workaround seems to be to rebind Ctrl+` to "Toggle Panel". This is not quite "Toggle terminal", but OK.
However the problem persists: when you have several build jobs and you start them one by one or several jobs in parallel, terminal loses focus and you need to hit Ctrl+ twice to hide it. This is hard to use when i have to remember or pay attention in what situations i need to hit Ctrl+ twice or once.
Maybe something could be done to alleviate this i don't know, maybe return focus to open terminal when quicklist menu closes. I suspect this might also solve the issue without the need to change defaults or new behavior. Why focus changes to the editor instead of open terminal where it was before, does that work as intended?
I have this ever growing list of changed defaults and this entire configuration also hard to maintain (transfer across different virtual machines, for instance, alternative is to reconfigure every installation of vscode). I would love to use defaults or a default preset of settings if that matters, and would rather adapt to defaults to avoid maintaining "dotfiles", but sometimes i don't have another choice but to change defaults.
By the way i don't see how this is consistent to sidebar behavior, sidebar toggles even when it doesn't have focus and this is exactly what i would expect it to do.

Actually this works OK for me with terminal hotkey rebound to Toggle Panel, so i'm closing this issue. This is not the most important issue with integrated terminal, is it? I suppose someone will file another issue if this is important.


Add some tests (invalid cases)

I've prepared some tests that I think should pass, but those tests have failed.
my test cases:

1 valid case with useCallback and it's pass
1 invalid case with useCallback (failed)
5 invalid cases with snaps and proxies (which as I think have to be passed but it's failed)

Correct me if I'm wrong and these are all correct scenarios.

changes might get a bit delayed on a flight. will check em out as soon as I can

I got 2 of them working and 1 needs a nice little 10 line refactor which I'm trying to minimize.
I made it a lot more complicated than needed

Last one left and that's irritating cause I'm probably missing a minute detail as to why it picks one snapshot and doesn't pick the other.

Thanks for this PR @nosferatu500 !

Thanks for the plugin!

@Aslemammad Can you release a new version?


Update CSS motion path demo to use current property names

Demo isn't working currently since it's using the old property names.  This change fixes that.

I signed it!

Hi @jeffposnick, would you be the right person to review/merge this change?


Setting the number of threads for parallel approximate DBSCAN clustering

The approximate DBSCAN seems to utilize only 1 thread. I tried to set the number of threads via the environment variable PARLAY_NUM_THREADS, but it does not seem to make any difference. Can you please instruct me how to set the number of threads?
Furthermore, with small values of Rho, I sometimes get the following error: Command terminated by signal 11
Do you have a fix for it? Thank you.

Our code back then requires cilk to run in parallel, but cilk is deprecated in the newest gcc. For our paper  we were using gcc 7.4. What version of gcc were you using?
If you hope to adjust the thread count for CILK, you could set environment variable "CILK_NWORKERS", rather than "PARLAY_NUM_THREADS".


Fix typo popUpClearHisotryAlert -> popUpClearHistoryAlert

Seems that HotKeyService.popUpClearHistoryAlert may be redundant, I can't see it called by anything.


[Feature Request] Add namespace when registering VisualizationHook

mmedit and mmgen both have VisualizationHook. It would be better to register this hook in a namespace to avoid key-value conflict.
related issue https://github.com/open-mmlab/mmgeneration/issues/32

@LeoXing1996
Please check this issue.


Support multiple editions of movies

https://support.plex.tv/articles/multiple-editions/

Added in 1147c159d41df906b6b080db07e0ff949d368e5b


Cleaning interface?

I think Matin you mentioned something about the general cleaning part. We need to clarify where this is happening, if there is an interface for more detailed cleaning or if you expect from the user to build its own cleaning interface.

closing


poudriere provides poor feedback with "missing entries" in category Makefiles

If I omit a subdirectory from a category Makefile and make the port a dependency of another port (example, I was adding math/gnuplot as a dependency of another meta port, but I forgot to add it to math/Makefile), poudriere gives me unactionable messages like "math/gnuplot stuck in queue". This is a lousy diagnostic for the underlying issue.

You're reporting an ancient bug that is long fixed.

I thought I had addressed this but am not finding where currently. Will reopen for now.

https://github.com/freebsd/poudriere/blob/master/src/share/poudriere/common.sh#L7121 has a message along the lines of "failed to lookup pkgname for . Is SUBDIR+= in /Makefile?". This would only show in bulk -a for dependencies.
There is nothing yet like this for ports listed on the cmdline or in a file to bulk without -a. It makes sense to add something like this for bulk -t and testport. Unless portlint already does it.


Simple mode - choose token at runtime with callback

Hi,
Is it possible to pass a function as token in simple modes? The function parameters should probably be the return value of stream.match.
In my specific case it would greatly simplify the regular expressions and allow for logic otherwise impossible with REs only.
Thanks,
Raffaele

Could you be more specific about what you mean by passing a function as token, and what the use case you need it is like?

CodeMirror.defineSimpleMode("simplemode", {
  start: [
     // highlight numbers divisible by 7
    {regex: /\d+/, token: (match) => match[0]%7==0 ? 'divisible-by-seven'},
     // highlight plural and singular words differently
    {regex: /\w+/, token: (match) => {
        if (externalLib.isWordPlural(match[0]))
             return 'plural';
        return 'singular'
        }
    },
]})

These examples are a bit lame but it should give you the idea.
One further improvement would be for the function to return the tuple [match, list-of-token-string], instead of token-string only, so that you can modify the match found by stream.match.
It could be very useful for example to split the match further and return multiple tokens, one for each new part. (a bit like you do now when you have regex with multiple capturing groups)
For example
     // highlight word stems and rest of word differently
     {regex: /\w+/, token: (match) => {
        var [stem, rest] = externalLibrary.stemWord(match[0]);
        // not sure if just pushing is enough, maybe we have to add more info like starting indexes and length of matches like an regexp.match would do
        match[0] = stem;
        match.push(rest);
        return [match, ['stem', 'rest-of-word']];
        }
    },

Does attached patch work for you?

Yes! 👍


Add CSV output support to the lwaftr loadtest command

The lwaftr loadtest command currently only prints human-readable data to stdout: add data output to a CSV file in machine-readable format.

LGTM

That was quick, thank you. :-)


Development Web Apps Validation

Throughout the many projects in Kie-Tools, we have several web apps which are used for development, demonstrations, testing, etc.
We must find ways to ensure these web apps work at all times.
Some of them already have testing strategies implemented some don't.
The first step is to map all existing web apps and their test strategies if any exist.
Next, we need to check the possibility of using the PlayWright Framework for existing tests.

Moved to kie-issues.


[Bug Report] el-select does not honor TabIndex attribute

Element UI version
2.15.6
OS/Browsers version
Windows / Chrome latest
Vue version
2.6.14
Reproduction Link
https://jsfiddle.net/udbeohjq/
Steps to reproduce
Set the tabindex on a el-select to a different value than the default.
What is Expected?
The elements honor the set tabindex
What is actually happening?
The tab index is not actually set to the underlying el-input (see: https://github.com/ElemeFE/element/blob/dev/packages/select/src/select.vue#L83)

可以通过原生js去实现，原生js可以使用tabindex，可以实现相同的功能


[2530] - compile Webpack once only when running specs in parallel

Context
When running specs in parallel we want to avoid workers compiling the same files at the same time. Believe this was the reason for this bug 👉 https://trello.com/c/rVx1gcbf/2530-investigate-puma-upgrade-issue
Changes proposed in this pull request

Add a spec helper that compiles assets only once when running specs in parallel. It does this by creating a hexdigest of all webpacker assets and compiling only when this value changes.
Run specs in parallel on CI (again!)

Checklist

[x] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[x] Rebased master
[x] Cleaned commit history
[x] Tested by running locally

 Investigate Puma upgrade issue

Did a bit more thinking about this, and a few points came to mind:

I'm not sure this is an issue in CI because we precompile assets when we build the Docker image. Correct me if I'm wrong, but my understanding is that that runs the task webpacker:compile. Even if not, as @defong points out in Slack,  we have a (seemingly redundant) task in Azure Devops to run Webpacker.
If we need to only do this once, how about we have either webpacker:compile or assets:precompile as a dependency to the parallel:spec and/or the spec Rake tasks?
If we really need to compile Webpacker manually like this, then can we use a more traditional locking mechanism? Ruby has File#flock, or we could touch/symlink a "lock" file. I think this would be a bit clearer, and since Webpack.compile already detects whether it needs to re-compile or not I don't think we need the extra code that's currently there.

Let me know if I haven't managed to explain myself clearly, or if I'm missing something. :)

Let's discuss in person

@misaka @defong
The plot thickens ...
So looking here at the webpacker config, you can see that compile has been set to true.
https://github.com/DFE-Digital/manage-courses-frontend/blob/master/config/webpacker.yml#L80
If you set this to false this would work on CI as there is a compile step beforehand however this will fall over locally (unless assets are manually compiled).
Once option could be to set the public_output_path for the test environment to something like   public_output_path: packs-test
... or to be honest, given we only have 2 cores on CI, maybe the there is little benefit to running in parallel and messing with the config?
Wonder if @dankmitchell has any thoughts?

@defong @misaka

Unnecessary webpacker compile build step has been removed.
See also that webpacker config has been updated for testing. Compile is now set to false and support/webpacker.rb assumes responsibility for compilation (once only)


Some other methods to be aware of

https://www.math.purdue.edu/~xiaj/work/fasthss.pdf
https://www.osti.gov/servlets/purl/15003389
https://epubs.siam.org/doi/abs/10.1137/050639028

Note there are two different definitions of semiseparable matrices.  These methods relate to the more general hierarchical versions which aren't supported yet.
There's a derelict package https://github.com/JuliaLinearAlgebra/HierarchicalMatrices.jl that is also connected.

https://github.com/bonevbs/HssMatrices.jl


Add iOS target.

This PR adds an iOS target to the project file.

Could you please add a test bundle for the iOS framework?


fix(report): fixed bug where export would break if report had totals

Please read the Pull Request Checklist to ensure you have everything that is needed to get your contribution merged.

Also make to upstream. Another possible fix could be to turn the Total row into a dict / object.

If you see what they're doing to the object, it's taking each key and putting it in the row. Turning the Totals row into an object would be silly.

Pull Request Test Coverage Report for Build 286

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

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

frappe/desk/query_report.py
0
4
0.0%

Files with Coverage Reduction
New Missed Lines
%

frappe/database.py
1
49.7%

frappe/utils/file_manager.py
2
37.26%

frappe/email/doctype/auto_email_report/test_auto_email_report.py
3
80.0%

frappe/utils/xlsxutils.py
4
63.08%

frappe/utils/csvutils.py
6
20.49%

frappe/email/doctype/auto_email_report/auto_email_report.py
6
68.14%

frappe/translate.py
6
27.77%

frappe/utils/data.py
7
49.13%

Totals

Change from base Build 275:
-0.09%

Covered Lines:
17214

Relevant Lines:
38419

💛  - Coveralls


ENHO: class implementation

support for pre+post+overwrite exits implemented
still todo: enhancement types from interface enhancement, but I guess the method enhancements are most common

@sbcgua would you like to take a look at the code before it is merged?

I'll have a look tomorrow

thanks, also a bit far from my expertice :o)
1: It only impements pre+post+overwrite exits, I think the addition of new methods are handled via CL_ENH_TOOL_CLIF, also mentioned in the todo:
`* todo, CL_ENH_TOOL_CLASS inherits from CL_ENH_TOOL_CLIF so this

should also be reflected in the code in this include`
I suggest we open a new issue for this after this PR is merged.

2: the exits method needs some rework, will try to fix,
  METHOD lif_object~exists.

    DATA: ls_tadir TYPE tadir.

* todo, it should look up in the ENHO database tables or call some methods
* to see if the object exists, looking in TADIR will not work
    ls_tadir = lcl_tadir=>read_single(
      iv_object   = ms_item-obj_type
      iv_obj_name = ms_item-obj_name ).
    IF ls_tadir IS NOT INITIAL.
      rv_bool = abap_true.
    ENDIF.
  ENDMETHOD.

METHOD lif_object~exists fixed
alignment fixed

we just need this to be better than the current code, not necessarily fix everything in this PR 😄

Sure. Anyway it seems there are a lot of feautres in class enhancements so they can be implemented one by one when really needed. :)


Tab width doesn't revert to normal after closing tabs

Windows Terminal version
1.16.2641
Windows build number
10.0.19044.0
Other Software
No response
Steps to reproduce

Open a lot of tabs
Close all but two with keyboard shortcut

Expected Behavior
Tab width reverts to normal.
Actual Behavior
Tab width only reverts to normal on mouse over / mouse leaving.

How exactly did you close the tabs/? With the mouse (clicking on the 'X' or by middle-clicking)? By using a keyboard shortcut?
We've seen a few of these in the past that all rolled up to some WinUI bug...

Ctrl-Shift-W

Yep, /dup #9822


feat: VPN Server Configuration resource

Description

This PR introduces a new resource to create VPN Server Configurations within an Azure Virtual WAN, usable by P2S VPN Gateways within a VWAN Virtual Hub. This resource requires a Virtual WAN, but does not require a Virtual Hub to exist before creating the VPN Server Configuration.
Closes Issue #1333
Pipeline Reference

Type of Change

[ ] Update to CI Environment or utilities (Non-module affecting changes)
[x] Azure Verified Module updates:

[ ] Bugfix containing backwards-compatible bug fixes, and I have NOT bumped the MAJOR or MINOR version in version.json:

[ ] Someone has opened a bug report issue, and I have included "Closes #{bug_report_issue_number}" in the PR description.
[ ] The bug was found by the module author, and no one has opened an issue to report it yet.

[ ] Feature update backwards compatible feature updates, and I have bumped the MINOR version in version.json.
[ ] Breaking changes and I have bumped the MAJOR version in version.json.
[ ] Update to documentation

Checklist

[x] I'm sure there are no other open Pull Requests for the same update/change
[x] I have run Set-AVMModule locally to generate the supporting module files.
[x] My corresponding pipelines / checks run clean and green without any errors or warnings

@ericscheffler
We have added examples for Bicep parameter files to the Readme. This has been applied to all published modules but needs to be done for PRs as well. Can you please run the Set-AVMModule utility as detailed here. It is required for the validation pipeline to succeed and the contribution to be published.
Please reach out if any support is needed.


NadekoBot Updater Rework

The updater is lacking heavily.
It should support hosting multiple bots and have much more powerful functionality.

This could be done via some sorts of tabs possibly? Or buttons on the side which would show bot's version, owner name, and the name of the bot.
You should be able to "open containing folder" which would open the bot's folder and also "edit credentials" which would open credentials.json for editing. (Bonus: Open db button which would open the database using the sqlitebrowser?)
One of the tabs should be an "add button" in the form of a plus sign or similar, which would let you add another "tab" (another bot).
There should be a regular option to 'download' the bot but also, after the download is done, in order to make it easy for new users to set up the bot, you should be either to normally edit 'credentials' or to "authorize" which would let you 'log in' - you would type in your bot's name, choose the avatar, and upon pressing "create",  or an equivalent button, the updater would create a bot app in your name, and fill in owner id, token and client id appropriately.
The design needs to be in-line with the designs we have so far.
The console output would be embedded into the application itself (as a sub-tab while one of the bot's is selected possibly?)

What if we made it an asp.net core application and make it support both windows and linux? This way we'd have one updater which allows you to host multiple bots without knowing anything about linux, and would be stupidly user-friendly.

Possibility: Perhaps a simple dropdown?
Dropdown List:

Bot 1
Bot 2
New Bot

Then just any relevant parts of the UI?
The only reason I could see to avoid tabs is once you get 3-5 bots, even with tiny tabs, I'm sure that would soon become very crowded and poor UX.
I don't know. Just a thought.

Also, I don't think it's possible to programmatically create a new Bot Application for the user and get the token, they would need to do that themselves.

The console output would be embedded into the application itself (as a sub-tab while one of the bot's is selected possibly?)

Instead of this, if it's possible, just hide the console completely. A sizable number of people have asked if there's any way to close cmd but keep the bot up. Also, instead of embedding the console which takes up space, have a button to open it as a pop-up. I'm thinking a row of buttons for opening NadekoBot/, credentials.json, NadekoBot.db, and console.
Also a wild-ish feature: allow users to deploy a bot remotely on a linux server. The same general steps used in linuxAIO.sh can be selected in a way similar to https://ffmpeg.zeranoe.com/builds/, except that each row to the right only appears after you've selected an option.
NadekoBot/ would open in filezilla, credentials.json and NadekoBot.db would be ftp'd and opened normally. Under the buttons for opening these, maybe have another button to upload or smth. For console, either just provide a logged-in ssh console or go straight to logs if that's possible.

The pm2 API would help with that ^
Server configuration might vary depending on the type of server being used to host Nadeko
So people could be using SSH, SFTP with RSA key exchange, Docker, Heroku, etc
Procedures would vary for each so automating only a single procedure wouldn't work out.
Feel free to DM me any concepts for the UI btw, I'll try making a few mockups

@rjt-rockx you made some mockups a while ago? Maybe post them here for some feedback?


[BUG] No Warning On MinCPUProd w/ AMD Ryzen 9 5900X 12-Core Processor & 64GB DDR4 3200 G Skill Memory (UEFI Install)

Describe the bug
No warning message is displayed, letting the user know at ISO Installation the message of:
"Only %d CPU cores detected. Harvester requires at least %d cores for testing and %d for production use."

Whereas, the AMD Ryzen 9 5900X only has 12 Cores, not 16, the message should be expected to let the user/administrator/person know "hey, you don't meet production requirements for this Harvester node"
To Reproduce
Steps to reproduce the behavior:

Have an Interactive ISO USB ready to go
Have an AMD Ryzen 9 5900X or other Ryzen Series CPU less than 16 Cores
Boot the Harvester installation ISO
A user should be greeted with the message letting them know that their system (Harvester node) does not meet the recommendation for production quality as documented in our docs

Expected behavior
The message being present on interactive iso install w/ uefi via usb
Support bundle
N/A
Environment

Harvester ISO version: v1.3.2-rc1, v1.3.1
Underlying Infrastructure: AMD Ryzen 9 5900X Custom Built Tower (64GB DDR4 PC3200 G Skill Memory) + EVGA RTX 3070

Relates to:

https://github.com/harvester/harvester-installer/blob/master/pkg/preflight/checks.go#L20

Additional context
( videos attached, no SPICE VNC / virt-viewer capabilities... )
https://github.com/user-attachments/assets/e9f1b418-d03a-4cb6-8173-0b4212b2dbf8
https://github.com/user-attachments/assets/d8c9016c-ea08-4943-a638-fd0e394c5aed

Reproducible in v1.3.1 Interactive ISO Installer via USB → updating description

Reproducible in v1.3.0 Interactive ISO Installer via USB → updating description

I did a bit of searching... nproc --all (per the man page) prints "the number of processing units available". In the case of the AMD Ryzen 9 5900X (https://www.amd.com/en/products/processors/desktops/ryzen/5000-series/amd-ryzen-9-5900x.html), we have 12 physical cores, but each supports simultaneous multithreading (AKA hyperthreading), so the whole processor is (allegedly) capable of running 24 threads, which is why nproc gives 24. There's a good summary of this on stackexchange at https://unix.stackexchange.com/a/279354
So, the question now becomes, when the system requirements were written, were they intended to mean "minimum number of physical CPU cores (which might support SMT and thus be capable of running more than one thing at a time", or were they intended to mean "minimum number of logical CPUs"?

@tserong
That's a good point :smile: :+1:
I'm not sure :shrug: - my guess would be minimum number of logical CPUs, but only probably due to the whole capacity planning for Harvester nodes in a cluster and the possible chipsets, but yeah, not sure :thinking:
So for added information this too seems to affect non-AMD / Intel based CPUs.
See attached screenshots:

With a dual xeon system, two cpus, it's seen that with nproc --all it is the 32 ( 16 cores x 2) -> but the tricky part is that with the cpu info search in /proc/cpuinfo - it will only show "8" if sorting by "| uniq" - but that's not telling the full picture... because there would need to be added logic, to search additionally by physical id because there's 8 for physical id 0 and 8 for physical id 1 ...so finding a way to combine the two :smile: of some sort.


Add NFT Support

Add NFT support for Qtum Qt Wallet.
Log event need to be enabled in order to use NFT token.
The feature can be used from mainnet, testnet and regtest mode of Qtum in the Qt Wallet.
For mainnet and testnet the contract is present, so no additional configuration needed. For regtest
the contract need to be created and set with -nftaddress parameter.

您好，我已收到您的邮件，我会尽快给您回复。


all aa settings on all the time

Jitter Legs, Hide Pitch on Shot

The only "anti aim setting" that relies on anti aim being turned on is Rehide Angles or whatever its called.

the problem is that jitter legs and hide pitch on shot are permanently on and can't be disabled

ur retarded

https://cdn.discordapp.com/attachments/1047772804470280242/1175314414870724608/In_The_Virtual_End_Linkin_Park_HL2_music_video_1.mp4?ex=656ac7d8&is=655852d8&hm=d6b7c92866667ac5b981f5efa0ac33c9045f0585d829d67c0d9ca74a41220727&

wrong paste

bro don't blame me for random code breaking then replying after its fixed

The issue I fixed was to do with leg jitter not working unless anti aim was turned on, the issue you described could not be reproduced, you replied after the issue was closed, didnt follow the template, and from what i can understand the issue you were talking about never existed.

i use the loader i can't tell what build im even using

i use the loader i can't tell what build im even using


2023-03-11 updates

new changes have made like:

I have added a province column for categorizing customers.
I have categorized purchases into two parts. 1:OnTheWay 2:arrived
I have added an expiration date for those products that have an expiration.
I added a column for setting the less quantity for products to be alarmed by the system.


Stale SFH models

I have realized that several of the CEM in models.py are obsolete and would break:

Single_burst
Polynomial_MFH
Gaussian_burst

Is anyone using Tabular_Illustris, Tabular_CIGALE, Tabular_CIGALE_models, Tabular_Prospector? These do not look like generic models, but rather like handy classes to read the data from the previous paper with a very specific format designed by us (and not the SED fitting codes). Is it worth it keeping them in the source code for the release? I would say we keep them in a legacy branch.
Misc

The class Polynomial_MFH_fit should be moved somewhere else as it is not a CEM.

Addressed in #24


Smoother decelerating auto increments

I have been using https://github.com/chieffancypants/angular-loading-bar with Angular.js that had a pretty impressive and fluid movement. Now with React, I cannot use it anymore. I tried nprogress but out of the box it was feeing a little jerky.
I implemented the decelerating logic and change the defaults to make it look less jerky and more like angular-loading-bar.
Close #135

Sure.. why not, let's see. Thanks!


Slow program execution

When running automated program operation testing, the entire operation process is very slow, and sometimes it takes 20 minutes to complete one step. Is there any parameter that can be adjusted?

The main bottleneck is the time to wait for GPT-4o's response. It seems that you need to wait for a long time to get GPT-4o's response. Maybe you could run a minimal GPT-4o call and see whether you could get the reply within several seconds (https://platform.openai.com/docs/api-reference/chat/create?lang=python).

Sorry, I didn't describe it clearly. The slow execution of automatic programs is not related to the response time of GPT. I can see that the execution steps generated by GPT are repeated many times in the execution window, but the program either has no response or has to wait for a long time before moving. I didn't make any changes, I just followed the official documentation to perform the relevant operations.

Is there a place to upload videos? I recorded a video, is it convenient to upload

Can you check the actions outputted? Are they correct and executable?

I can't confirm this, I just looked at the content and found that the operation steps generated by GPT are correct, but the program did not synchronize the operation.

Is there a place to upload videos? I recorded a video, is it convenient to upload

You can upload the video to any platform you prefer and share the link with us. But I do not think a video is enough for us to debug. Could you provide the corresponding log file in the run folder after you run the code, which should contain all the input and output from GPT-4o?

链接: https://pan.baidu.com/s/1vTNzaUNQWYhHAlQZBqGv7Q 提取码: 6666
The video and log files are in the cloud storage. Could you please analyze the reason? Thank you very much.

Could you explain more about your issue? This video looks good to me. The agent executes several actions successfully in the 20-minute-long video.

There are mainly the following issues:

The execution time is too long, with 3 tasks taking 20 minutes;
And none of the three tasks were successfully executed:
a, Create a schedule
b. Send a Hi message to Gradle
c. Send PDF file
None of the three tasks were successful

For the time issue, it is quite common. Due to the delay in the GPT-4o API's response, we need to wait for about 15-60 seconds for each action.
For the performance issue, I noticed that you did not open Feishu as full screen. Could you check your settings according to our readme? Thanks

Feishu opens in full screen, but when the program runs, Feishu automatically shrinks the window
Additionally, I operated remotely from the server, and the server settings were configured according to the requirements outlined in the cradle project documentation

I also got extremely slow response.


ValueError: Found input variables with inconsistent numbers of samples:

On Ubuntu22.04.3LTS Windows10 (GNU/Linux <IP_ADDRESS>-microsoft-standard-WSL2 x86_64)
After successful run with example images.
Using these images:
Mask:
https://drive.google.com/file/d/1XGUf9osxak2ZwDSap-eb4vciA4wXa9u7/view?usp=sharing
Img:
https://drive.google.com/file/d/1ZXgzGkyRCo58knrfE4hl9l4_FW23Q119/view?usp=sharing
I ran the code in the given notebook in Jupyter Lab.
I added some print statements to the code which gave:
Image shape is (1, 28, 1, 2507, 2467)
Mask shape is (1, 2, 1, 2507, 2467)
Calculating evaluation metrics v1.5 for thymus.ome.tiff
Matched mask shape is (2, 2507, 2467)
Matched cell mask shape is (2507, 2467)
Matched nuclear mask shape is (2507, 2467)
Number of channels is 28
Length of cell_coord mask indices is 15489
Length of label list for mask is 10
Length of cell_coord/mask sparse indices is 15489
Feature matrix shape is (15489, 28)
Feature matrix z shape is (15489, 28)
Length of cell_coord/mask sparse indices is 65512
Feature matrix shape is (16573, 28)
Feature matrix z shape is (16573, 28)
Error:
`---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[3], line 11
7 PCA_model = []
8 # or give a specific model
9 # PCA_model = pickle.load( open( "2D_PCA_model.pickle", "rb" ))
---> 11 seg_metrics_2D = read_and_eval_seg(img_path, mask_path, PCA_model, output_directory)
13 print(seg_metrics_2D)
File ~/CellSegmentationEvaluator/SimpleCSE/read_and_eval_seg.py:57, in read_and_eval_seg(img_path, mask_path, PCA_model, output_directory)
55         except:
56             print('2D PCA model file missing')
---> 57     seg_metrics = single_method_eval(img, mask, PCA_model, output_directory, bz=bestz)
58 else:
59     if PCA_model==[]:
File ~/CellSegmentationEvaluator/SimpleCSE/seg_eval_pkg.py:729, in single_method_eval(img, mask, PCA_model, output_dir, bz, unit, pixelsizex, pixelsizey)
727 img_channels = np.squeeze(img["data"][0, :, bestz, :, :])
728 # get cell uniformity
--> 729 cell_CV, cell_fraction, cell_silhouette = cell_uniformity(
730 	current_mask, img_channels, cell_type_labels
731 )
732 avg_cell_CV = np.average(cell_CV)
733 avg_cell_fraction = np.average(cell_fraction)
File ~/CellSegmentationEvaluator/SimpleCSE/seg_eval_pkg.py:500, in cell_uniformity(mask, channels, label_list)
498 	silhouette.append(1)
499 else:
--> 500 	silhouette.append(silhouette_score(feature_matrix_z, labels))
501 for i in range(c):
502 	cluster_feature_matrix = feature_matrix[np.where(labels == i)[0], :]
File ~/anaconda3/lib/python3.11/site-packages/sklearn/utils/_param_validation.py:214, in validate_params..decorator..wrapper(*args, **kwargs)
208 try:
209     with config_context(
210         skip_parameter_validation=(
211             prefer_skip_nested_validation or global_skip_validation
212         )
213     ):
--> 214         return func(*args, **kwargs)
215 except InvalidParameterError as e:
216     # When the function is just a wrapper around an estimator, we allow
217     # the function to delegate validation to the estimator, but we replace
218     # the name of the estimator by the name of the function in the error
219     # message to avoid confusion.
220     msg = re.sub(
221         r"parameter of \w+ must be",
222         f"parameter of {func.qualname} must be",
223         str(e),
224     )
File ~/anaconda3/lib/python3.11/site-packages/sklearn/metrics/cluster/_unsupervised.py:130, in silhouette_score(X, labels, metric, sample_size, random_state, **kwds)
128     else:
129         X, labels = X[indices], labels[indices]
--> 130 return np.mean(silhouette_samples(X, labels, metric=metric, **kwds))
File ~/anaconda3/lib/python3.11/site-packages/sklearn/utils/_param_validation.py:187, in validate_params..decorator..wrapper(*args, **kwargs)
185 global_skip_validation = get_config()["skip_parameter_validation"]
186 if global_skip_validation:
--> 187     return func(*args, **kwargs)
189 func_sig = signature(func)
191 # Map *args/**kwargs to the function signature
File ~/anaconda3/lib/python3.11/site-packages/sklearn/metrics/cluster/_unsupervised.py:257, in silhouette_samples(X, labels, metric, **kwds)
187 @validate_params(
188     {
189         "X": ["array-like", "sparse matrix"],
(...)
194 )
195 def silhouette_samples(X, labels, *, metric="euclidean", **kwds):
196     """Compute the Silhouette Coefficient for each sample.
197
198     The Silhouette Coefficient is a measure of how well samples are clustered
(...)
255        <https://en.wikipedia.org/wiki/Silhouette_(clustering)>`_
256     """
--> 257     X, labels = check_X_y(X, labels, accept_sparse=["csr"])
259     # Check for non-zero diagonal entries in precomputed distance matrix
260     if metric == "precomputed":
File ~/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:1164, in check_X_y(X, y, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, multi_output, ensure_min_samples, ensure_min_features, y_numeric, estimator)
1146 X = check_array(
1147     X,
1148     accept_sparse=accept_sparse,
(...)
1159     input_name="X",
1160 )
1162 y = _check_y(y, multi_output=multi_output, y_numeric=y_numeric, estimator=estimator)
-> 1164 check_consistent_length(X, y)
1166 return X, y
File ~/anaconda3/lib/python3.11/site-packages/sklearn/utils/validation.py:407, in check_consistent_length(*arrays)
405 uniques = np.unique(lengths)
406 if len(uniques) > 1:
--> 407     raise ValueError(
408         "Found input variables with inconsistent numbers of samples: %r"
409         % [int(l) for l in lengths]
410     )
ValueError: Found input variables with inconsistent numbers of samples: [16573, 15489]`

This took a while to debug.  The issue was that some of the nuclear masks (7989 of them out of 15490) contained pixels that were outside the corresponding cell mask (which should not happen in properly segmented cells and nuclei).  I implemented our "repair" code (see the Chen & Murphy paper) to trim the nuclei down.  Everything runs properly after the repair.  I'm cleaning up and documenting the changes and will push soon.

It is surprising that the score could not be generated without the repair.  Nearly all the methods in the paper were improved with the repair procedure yet were still able to have scores generated without it.  However, we segmented with Stardist on DAPI nuclei and Stardist was not evaluated in your paper.  For what its worth, Akoya now supplies and recommends a standard Stardist model for CODEX/Phenocycler image processing and it appears to work well for nuclei at least (https://view-su2.highspot.com/viewer/644694a9965a147858092f49?source=email.644694a9965a147858092f4a.83&iid=6298e82d78b2cb1e40aa9fdd).
It is also surprising as the cell masks were simply expansions of the nuclear masks yet somehow the nuclear mask pixels were found outside the cell mask?  Perhaps you can share how you determined this to be the problem?
The parameters for nuclei and cell segmentation are shown in the following script:
`import qupath.lib.gui.dialogs.Dialogs
def pathModel2 = Dialogs.showMessageDialog("Please select your stardist segmentation file","Please select your StarDist cell segmentation file")
def pathModel = Dialogs.promptForFile(null)
def pathModel3 = pathModel.toString()
//def pathModel = Dialogs.showInputDialog("My title", "Please paste the StarDist file path without quotes", 'text')
import qupath.ext.stardist.StarDist2D
// if you are always using the same StarDist model you can set the path below instead of selecting via dialog box
//def pathModel = "C:\Users\gcarlson\OneDrive - Akoya Biosciences\Desktop\CODEX Analysis Demo\CODEX_cell_seg.pb"
def stardist = StarDist2D.builder(pathModel3)
.threshold(0.5)              // Probability (detection) threshold
.channels(0)            // Select detection channel
.normalizePercentiles(1, 99) // Percentile normalization
.pixelSize(0.37)              // Resolution for detection
.cellExpansion(5.0)          // Approximate cells based upon nucleus expansion
.cellConstrainScale(1.5)     // Constrain cell expansion using nucleus size
.measureShape()              // Add shape measurements
.measureIntensity()          // Add cell measurements (in all compartments)
.includeProbability(true)    // Add probability as a measurement (enables later filtering)
.build()
// Run detection for the selected objects
def imageData = getCurrentImageData()
def pathObjects = getSelectedObjects()
if (pathObjects.isEmpty()) {
Dialogs.showErrorMessage("StarDist", "Please select a parent object!")
return
}
stardist.detectObjects(imageData, pathObjects)
println 'Done!'`
Also, here is the script used to extract masks from QuPath:
`import qupath.lib.images.servers.LabeledImageServer
def imageData = getCurrentImageData()
// Define output path (relative to project)
def name = GeneralTools.stripExtension(imageData.getServer().getMetadata().getName())
def pathOutput = buildFilePath(PROJECT_BASE_DIR, 'tiles2', name)
mkdirs(pathOutput)
// Define output resolution
double downsample = 1
// Convert to downsample
//double downsample = requestedPixelSize / imageData.getServer().getPixelCalibration().getAveragedPixelSize()
// Create an ImageServer where the pixels are derived from annotations
def labelServer = new LabeledImageServer.Builder(imageData)
.backgroundLabel(0, ColorTools.WHITE) // Specify background label (usually 0 or 255)
.downsample(downsample)    // Choose server resolution; this should match the resolution at which tiles are exported
.useInstanceLabels(true)
.shuffleInstanceLabels(false)
.useCellNuclei()                     // Choose output labels (the order matters!)
.grayscale(true)
.setBoundaryLabel('Anything*', 0)
.lineThickness(downsample as float ) // sorry about the need for 'as float' here...
.multichannelOutput(false)  // If true, each label is a different channel (required for multiclass probability)
.build()
def roi = getSelectedROI()
def requestROI = RegionRequest.createInstance(labelServer.getPath(), 1, roi)
writeImageRegion(labelServer, requestROI, pathOutput)`

Thanks for the suggestion.  We will consider evaluating StarDist at some point, but many programs work ok for nuclei but don't get very accurate cell boundaries.
The updated code and README have been pushed.  Thanks for helping us improve CellSegmentationEvaluator.


fix: remove experimental and update comments in cli-reference.mdx

Description (required)
Adds two changes to cli-reference.mdx:

the comment above each command was still using "start script" instead of dev so I updated the comments
Astro Env was still marked as experimental in the astro sync section so I removed that mention

Related issues & labels (optional)

Suggested label: typo/link/grammar - quick fix!

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

en/reference/cli-reference.mdx
Source changed, localizations will be marked as outdated.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


If by.xpath contains utf8 symbols and not condition get UnicodeEncodeError: 'ascii'

Checking for linux geckodriver:v0.14.0 in cache
Driver found in /home/toxa/.wdm/geckodriver/v0.14.0/geckodriver
Traceback (most recent call last):
  File "./first_step.py", line 21, in
    s(by.xpath("//button[contains(.,'Объекты')]")).should_be(be.conditions.Clickable()).click()
  File "/usr/local/lib/python2.7/dist-packages/selene/elements.py", line 305, in should
    _wait_with_screenshot(self._webdriver, self, condition, timeout)
  File "/usr/local/lib/python2.7/dist-packages/selene/elements.py", line 187, in _wait_with_screenshot
    return wait_for(entity, condition, timeout, polling)
  File "/usr/local/lib/python2.7/dist-packages/selene/wait.py", line 17, in wait_for
    reason_string = '{name}: {message}'.format(name=reason.__class__.__name__, message=reason_message)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 47-53: ordinal not in range(128)

Which version of python do you use?

python 2.7.12

try to user it like
s(by.xpath("//button[contains(.,u'Объекты')]"))

Object will not be found

s(by.xpath("//button[contains(.,u'Объекты')]"))

It's work:

s(by.xpath("//button[contains(.,'Объекты')]"))

but object is not found, get UnicodeEncodeError
I resolved it this way:

diff --git a/selene/wait.py b/selene/wait.py
index afc5e69..a9e9f3d 100644
--- a/selene/wait.py
+++ b/selene/wait.py
@@ -14,6 +14,8 @@ def wait_for(entity, condition, timeout=4, polling=0.1):
             reason_message = getattr(reason, 'msg',
                                      getattr(reason, 'message',
                                              getattr(reason, 'args', '')))
+            if isinstance(reason_message, unicode):
+                reason_message = reason_message.encode('unicode-escape')
             reason_string = '{name}: {message}'.format(name=reason.__class__.__name__, message=reason_message)
             screen = getattr(reason, 'screen', None)
             stacktrace = getattr(reason, 'stacktrace', None)

could you please create PR for this

https://github.com/yashaka/selene/pull/130


As a HR staff member, I can generate reports

so that the upper management can have better insights into their employees.

Not implemented.


Update SA1312 code fix to replace var _ with _

Similar to #2599, which is for SA1313.

SA1312: Variable '_' should begin with lower-case letter

For example, some test code verifies a mock's property wasn't called:
var _ = mock.DidNotReceive().SomeProperty;

:bulb: You can drop var if you are using C# 7

Thanks, that works perfectly.
Feel free to close this, but I think it might be nice to have the analyzer know how to fix this where possible.

How aboud this issue?
I met the same problem when I want to ignore a local variable with using declration in c# 8.0.
using var _ = new DisposableObject();


Consider removing sish prefixes from flags

I don't understand why the flags have the sish keyword as a prefix. It seems to be redundant considering the binary is also called sish. This would add unnecessary extra types when typing in flags and arguments.

To be honest, this was just force of habit when adding the command flags. Modifying them would definitely be a breaking change and require a major revision update. That would probably be the only reason to keep this as-is. Happy to turn this into an RFC if anyone feels particularly strongly about this.

I agree with @shinenelson.
Perhaps giving a try to replace the flag package by spf13/pflag which seems to be a drop-in replacement but offers flag aliases and depracations (https://github.com/spf13/pflag/blob/master/README.md#mutating-or-normalizing-flag-names)

@tuarrep that's not a bad idea! I'm gonna track this issue in #85 and close this one. The plan right now is to use cobra and pull a 1.0.0 release once all of those milestones are completed.


DBInstance: Late Initialize all fields that cannot be set when connecting to a DBCluster

What happened?
Late init causes an update on not allowed fields of DBInstances which are member of a DBCluster.
The result is that all DBInstances in a DBCluster are going out of sync and not be synced again.
A part of this issue is already fixed in https://github.com/crossplane/provider-aws/issues/895
But only a subset of disallowed values was fixed here so the bug is still present and prevents DBInstances from being Healthy.
Thanks to @iAnomaly he found the proper resource of which fields are disallowed in DBCluster instances and was so kind to provide a PR. (https://github.com/crossplane/provider-aws/pull/1285/files)

You can visit the AWS CLI docs for modify-db-instance and search for the string "managed by the DB cluster" to find all fields that cannot be set when associating a DBInstance with a DBCluster.

Together with the last fix of https://github.com/crossplane/provider-aws/pull/1197 we are currently running into heavy issues as it seems that the password in the connection is not going to match anymore to the password set in AWS as the sync is not possible right now because of this bug.
How can we reproduce it?
Setup a DBCluster with DBInstances member and try to update the DBInstance afterwards
What environment did it happen in?
Crossplane version: 0.26.1

the current issue is here:
 message: "update failed: cannot update DBInstance in AWS: InvalidParameterCombination:
      The specified DB Instance is a member of a cluster. Modify deletion protection
      for the DB Cluster using the ModifyDbCluster API\n\tstatus code: 400, request
      id: "

Frustrating. AWS does not document anywhere I can find that DeletionProtection is a cluster level field.

From the MR is enough thanks

@haarchri
apiVersion: rds.aws.crossplane.io/v1alpha1
kind: DBInstance
metadata:
  annotations:
    crossplane.io/external-create-failed: "2022-04-11T15:22:40Z"
    crossplane.io/external-create-pending: "2022-04-11T15:22:41Z"
    crossplane.io/external-create-succeeded: "2022-04-11T15:22:42Z"
    crossplane.io/external-name: test
  creationTimestamp: "2022-05-11T10:05:11Z"
  finalizers:
  - finalizer.managedresource.crossplane.io
  generateName: test-sv8vk-
  generation: 11
  labels:
    test.cloud.test/managed-by: test
    crossplane.io/claim-name: test
    crossplane.io/claim-namespace: flo
    crossplane.io/composite: test-sv8vk
    velero.io/backup-name: lovejoy-2022-05-11-1652259396
    velero.io/restore-name: lovejoy-2022-05-11-1652259396-20220511120324
  name: test-sv8vk
  ownerReferences:
  - apiVersion: test.cloud.test/v1
    controller: true
    kind: XRdsInstance
    name: test-sv8vk
    uid: 180906f3-cdd2-485c-bf62-9eb2d7407d60
  resourceVersion: "25307888"
  uid: 2857b623-036c-474c-ba11-bc92fb95bbd4
spec:
  deletionPolicy: Orphan
  forProvider:
    autoMinorVersionUpgrade: true
    availabilityZone: eu-central-1a
    copyTagsToSnapshot: false
    dbClusterIdentifier: trial-service-flo-rds-cluster
    dbInstanceClass: db.t3.small
    dbName: trial_service_flo
    dbParameterGroupName: elysium-aurora-mysql-5-7
    dbSubnetGroupName: test.elysium.test.cloud.test
    deletionProtection: false
    enablePerformanceInsights: false
    engine: aurora-mysql
    engineVersion: 5.7.mysql_aurora.2.10.2
    kmsKeyID: arn:aws:kms:eu-central-1:test:key/da8c1243-ed59-4de0-81ef-d18129ce901f
    licenseModel: general-public-license
    masterUsername: master
    monitoringInterval: 0
    multiAZ: false
    port: 3306
    preferredMaintenanceWindow: fri:22:24-fri:22:54
    promotionTier: 1
    publiclyAccessible: false
    region: eu-central-1
    storageEncrypted: true
    storageType: aurora
    tags:
    - key: claim-namespace
      value: flo
    - key: claim-name
      value: test
    - key: managed-resource-name
      value: test-sv8vk
    vpcSecurityGroupIDs:
    - sg-test
  providerConfigRef:
    name: aws-provider-config
status:
  atProvider:
    caCertificateIdentifier: rds-ca-2019
    customerOwnedIPEnabled: false
    dbInstanceARN: arn:aws:rds:eu-central-1:test:db:test
    dbInstanceIdentifier: test
    dbInstancePort: 0
    dbInstanceStatus: available
    dbParameterGroups:
    - dbParameterGroupName: elysium-aurora-mysql-5-7
      parameterApplyStatus: in-sync
    dbSubnetGroup:
      dbSubnetGroupDescription: Database subnet group for test.elysium.test.cloud.test
      dbSubnetGroupName: test.elysium.test.cloud.test
      subnetGroupStatus: Complete
      subnets:
      - subnetAvailabilityZone:
          name: eu-central-1c
        subnetIdentifier: subnet-test
        subnetOutpost: {}
        subnetStatus: Active
      - subnetAvailabilityZone:
          name: eu-central-1b
        subnetIdentifier: subnet-test
        subnetOutpost: {}
        subnetStatus: Active
      - subnetAvailabilityZone:
          name: eu-central-1a
        subnetIdentifier: subnet-test
        subnetOutpost: {}
        subnetStatus: Active
      vpcID: vpc-071e64bdffa6dc89f
    dbiResourceID: db-2FXUQS4TFBXX3AGLPOFKXPYMCU
    endpoint:
      address: test.test.eu-central-1.rds.amazonaws.com
      hostedZoneID: test
      port: 3306
    iamDatabaseAuthenticationEnabled: false
    instanceCreateTime: "2022-04-11T15:29:02Z"
    optionGroupMemberships:
    - optionGroupName: default:aurora-mysql-5-7
      status: in-sync
    pendingModifiedValues: {}
    performanceInsightsEnabled: false
    tagList:
    - key: managed-resource-name
      value: test-sv8vk
    - key: claim-namespace
      value: flo
    - key: claim-name
      value: test
    vpcSecurityGroups:
    - status: active
      vpcSecurityGroupID: sg-test
  conditions:
  - lastTransitionTime: "2022-05-23T14:05:29Z"
    message: "update failed: cannot update DBInstance in AWS: InvalidParameterCombination:
      The specified DB Instance is a member of a cluster. Modify deletion protection
      for the DB Cluster using the ModifyDbCluster API\n\tstatus code: 400, request
      id: "
    reason: ReconcileError
    status: "False"
    type: Synced
  - lastTransitionTime: "2022-05-11T11:00:42Z"
    reason: Available
    status: "True"
    type: Ready


torch.OutOfMemoryError: Allocation on device

I can run thr example workflow once and it works.  Why? Should it not use same models in memory? Sound like it load something on top of whats already in memory.
I use Nvidia RTX 3060 12Gb

Sorry I can't reproduce but 12GB is really tight for a flux based workflow. You can try fp8 flux or even nf4.

I've tried fp8 but same result, can run once then next time I run it again without any changes (only new seed) it gets OOM error. Everything is already in memory and nothing should change, am I right?

In the case of 8G VRAM, the first generation used 7.0G VRAM and the image was successfully generated. Then there is 1.4GB of RAM remaining (0.9GB model residue), and the second generation uses VRAM to reach 7.7GB, making it very easy to prompt OOM. There must be some models that have not been removed from the video memory.


Attach two workflow to a model

It is possible, to attach two different workflow to a model stored in two attributes?
I have this error
Not a valid status id : incorrect status local id format in 'MY_STATUS_VALUE'
and don't understand why.

It is possibile to attach as many behaviour you want.
The problem was that the id of the status must not contain the char "_"

Now I have problem to validate the status attribute of the two workflow.
It try to validate passage from status of workflow 1 to status of workflow 2
{"STATO_INTERNO":["Workflow validation failed : No transition found between status DomandeWorkflow/VALIDATA and DomandeWorkflowBackoffice/DALAVORARE"]}
How I can not validate passage from a workflow to another?


Use helmchart name for pact identifier.

Prefer helmchart name as the pacticipant identifier:

bpm-provider -> bpm
bpm-consumer -> bpm
sam-provider -> sam
See thread discussing the -consumer and -provider suffix anti-pattern.
See thread discussing the recommendation to use the helm chart name.

Unblocks:

https://github.com/broadinstitute/rawls/pull/2610
https://github.com/DataBiosphere/terra-workspace-manager/pull/1511
https://github.com/broadinstitute/sam/pull/1234

Tickets:
AJ-1428 - General maintenance ticket.
AJ-1234 - Adjacent / similar, but not strictly dependent work.

Thanks for the speedy reviews!


RFC: Should we enable -pedantic?

Description
@parker-research has found that we have a few minor errors in our code base which can be found with -pedantic.

#645
#646

We also have fixed a few others:

#363
https://github.com/libcsp/libcsp/commit/ed71a2a80f60b8366b849eb8353fe14e007d8710

Should we enable -pedantic by default?
Steps to Reproduce
CMake

cmake -B builddir -DCMAKE_C_FLAGS="-pedantic"
ninja -C builddir

Meson

meson setup builddir -Dc_args=-pedantic
ninja -C builddir

Expected behavior
No error even with -pedantic
Actual Behavior:
ninja: Entering directory `builddir'
[7/41] Building C object CMakeFiles/csp.dir/src/csp_conn.c.o
/home/yashi/src/libcsp/src/csp_conn.c: In function ‘csp_conn_print_table_str’:
/home/yashi/src/libcsp/src/csp_conn.c:390:52: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘csp_conn_t *’ {aka ‘struct csp_conn_s *’} [-Wformat=]
  390 |                 snprintf(buf, sizeof(buf), "[%02u %p] S:%u, %u -> %u, %u -> %u (%u)\n",
      |                                                   ~^
      |                                                    |
      |                                                    void *
  391 |                                  i, conn, conn->state, conn->idin.src, conn->idin.dst,
      |                                     ~~~~
      |                                     |
      |                                     csp_conn_t * {aka struct csp_conn_s *}
[25/41] Building C object CMakeFiles/csp.dir/src/arch/posix/csp_queue.c.o
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c: In function ‘csp_queue_empty’:
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c:46:16: warning: ISO C forbids ‘return’ with expression, in function returning void [-Wpedantic]
   46 |         return pthread_queue_empty(handle);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c:45:6: note: declared here
   45 | void csp_queue_empty(csp_queue_handle_t handle) {
      |      ^~~~~~~~~~~~~~~
[41/41] Linking C shared library libcsp.so

Environment Details:
Provide information about your environment, including:

Build OS: Debian Sid
Target OS: Linux
libcsp commit hash: develop (v1.6-1128-g4c4fd14c)
CMake version: 3.30.2
Ninja version: 1.12.1

Logs or console output from the very beginning to the end
❯ rm -rf builddir && cmake -B builddir -DCMAKE_C_FLAGS="-pedantic" && ninja -C builddir
-- The C compiler identification is GNU 14.2.0
-- The CXX compiler identification is GNU 14.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/lib/ccache/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/lib/ccache/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- No build type selected, default to MinSizeRel
-- Looking for include file sys/socket.h
-- Looking for include file sys/socket.h - found
-- Looking for include file arpa/inet.h
-- Looking for include file arpa/inet.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1")
-- Checking for one of the modules 'yaml-0.1'
-- Found /usr/lib/x86_64-linux-gnu/libyaml.so 0.2.5
-- Checking for one of the modules 'libzmq'
-- Found /usr/lib/x86_64-linux-gnu/libzmq.so 4.3.5
-- Checking for one of the modules 'libsocketcan'
-- Found /usr/lib/x86_64-linux-gnu/libsocketcan.so 0.0.12
-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /home/yashi/src/libcsp/builddir
ninja: Entering directory `builddir'
[7/41] Building C object CMakeFiles/csp.dir/src/csp_conn.c.o
/home/yashi/src/libcsp/src/csp_conn.c: In function ‘csp_conn_print_table_str’:
/home/yashi/src/libcsp/src/csp_conn.c:390:52: warning: format ‘%p’ expects argument of type ‘void *’, but argument 5 has type ‘csp_conn_t *’ {aka ‘struct csp_conn_s *’} [-Wformat=]
  390 |                 snprintf(buf, sizeof(buf), "[%02u %p] S:%u, %u -> %u, %u -> %u (%u)\n",
      |                                                   ~^
      |                                                    |
      |                                                    void *
  391 |                                  i, conn, conn->state, conn->idin.src, conn->idin.dst,
      |                                     ~~~~
      |                                     |
      |                                     csp_conn_t * {aka struct csp_conn_s *}
[25/41] Building C object CMakeFiles/csp.dir/src/arch/posix/csp_queue.c.o
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c: In function ‘csp_queue_empty’:
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c:46:16: warning: ISO C forbids ‘return’ with expression, in function returning void [-Wpedantic]
   46 |         return pthread_queue_empty(handle);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/yashi/src/libcsp/src/arch/posix/csp_queue.c:45:6: note: declared here
   45 | void csp_queue_empty(csp_queue_handle_t handle) {
      |      ^~~~~~~~~~~~~~~
[41/41] Linking C shared library libcsp.so

Checklist

[x] I've searched in "Issues" for similar issues, both open and closed.
[x] I've used GitHub Flavored Markdown (GFM) to format my text.
[x] I've avoided using screenshots for console output or logs
[x] I've included all relevant details and steps to reproduce the issue.
[x] I've provided information about my environment.
[x] I've attached necessary logs or code snippet for minimal reproducible example.

I personally support enabling -Wpedantic. As a project intended for space systems (which generally have very high reliablity requirements), having the extra checks is very important/valuable. I'd expect that many softwares using this framework aim to have the -Wpedantic flag enabled on the entire build (like our CTS-SAT-1 Onboard Computer Firmware), so by extension, this project should support it.

I personally haven't had good experiences with -pedantic. To me, it mostly generates non-critical warnings and complains about the use of GCC extensions. While it's true that we aren't using any GCC extensions at the moment, so enabling it might seem like a good idea, I'm still uncertain.
For example:

Git doesn't enable -pedantic in ordinal build.  It's only for developers.
NASA cFS/cFE also doesn't use -pedantic on all modules.
NASA F' doesn't use -pedantic with GCC but only with Clang.

Is anyone using compilers other than GCC or Clang who has encountered real, practical issues because we don't comply with -pedantic?

While it's true that we aren't using any GCC extensions at the moment, so enabling it might seem like a good idea, I'm still uncertain.

Writing code that conforms to the base C spec makes it more likely to work (and easier to port) across compilers, microcontrollers, etc. The cost of enabling it is very cheap; nearly all the issues are fixed. The cost of each individual team enabling it by choice and having to fix the issues themselves is comparatively more expensive.
NASA uses -pedantic on some modules, meaning that it has value, at least in places where there's no/limitted friction to enable it (presumably in new modules?).
Not certain it was caught with pedantic, but the bug fixed in #647 (which existed for many years unnoticed) is finally fixed.
Space stuff is really expensive, and C has a lot of quirks. Anything we can do improve the safety of systems built with C for space can and should be done.


Can't add a new node to GeneralGraph after deleting edges

If I attempt to add a new node to a GeneralGraph using add_node after calling the method remove_nodes, I get the following error:
ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 10 and the array at index 1 has size 5.

The more detailed error message:
Traceback (most recent call last):
  File <PATH_TO_SCRIPT>, line 20, in <module>
    graph.add_node(GraphNode("X11"))
  File "<PATH_TO_PROJECT>/ctf_venv/lib/python3.9/site-packages/causallearn/graph/GeneralGraph.py", line 205, in add_node
    dpath = np.vstack((self.dpath, row))
  File "<__array_function__ internals>", line 180, in vstack
  File "<PATH_TO_PROJECT>/ctf_venv/lib/python3.9/site-packages/numpy/core/shape_base.py", line 282, in vstack
    return _nx.concatenate(arrs, 0)
  File "<__array_function__ internals>", line 180, in concatenate

Minimal example to reproduce:
# Generate a graph with 10 edges
nodes = [GraphNode(f"X{i}") for i in range(1, 11)]
graph = GeneralGraph(nodes)
for i in range(9):
    graph.add_edge(Edge(nodes[i], nodes[i+1], Endpoint.TAIL, Endpoint.ARROW))
print(graph)

# Delete the first 5 nodes
nodes_to_remove = nodes[:5]
graph.remove_nodes(nodes_to_remove)

# Try to add a new node (X11)
graph.add_node(GraphNode("X11"))
print(graph)

It appears that self.dpath is not being updated correctly upon calling remove_nodes. If you compare its dimensions to self.graph you can see that it has not deleted the paths involving the removed nodes. For example, in the above example we removed 5 nodes but if we call print(graph.graph.shape, graph.dpath.shape), we get the following: (5, 5)  (10, 10).

Hi Andrew,
Thanks so much for your input! We really appreciate it.
Currently we are working on "code quality improvement project", and we will fix this issue during the project. (We already included this issue in our tracking doc, and assigned to the owner).
Currently our main focus is to "adding more tests to the causal-learn" project, as without reliable and automatic tests, it's hard to ensure the correctness of the code.
And of course, feel free to send a PR to help us make causal-learn better! :) We are more than happy to review. :)
And regarding the priority of this issue, it seems to me that users can reconstruct the graph from data, instead of calling "add_node()" / "remove_nodes()" right? I just want to make sure that no one is blocked by this issue now. :)

Hi,
No problems, and thanks for the quick response!
I'm not sure what you mean by reconstructing the graph from data. For my use case, I want to first create a graph by learning its structure from data (using the pc algorithm). Then, I want to merge a series of binary indicator nodes into a  a single categorical variable. To achieve this, I do the following:

For each categorical variable, obtain its binary indicator (e.g. if my category is favourite drink, I might have three indicators drink_coffee, drink_tea, drink_water).
For each indicator, record its parents P and children C.
Remove each indicator from the graph.
Add a new node to the graph for the category (e.g. drink)
Add an edge from all nodes in the set of parents P to the new node.
Add an edge from the new node to all nodes in the set of children C.

As you can see, this requires me to update the graph after removing a set of nodes. Is there a way around this for the time being?

Hi Andrew,
Thanks for the clear explanation! Yeah, it seems in your use case, you need the remove_node() to behave functionally.

Regarding your first comment, I am wondering why you want to perform PC on the graph generated in this way. How about directly perform PC on graph with categorical variables, instead of the binary indicators? The problem of your current construction is that it violates the faithfulness assumption (i.e. drink_coffee, drink_tea, drink_water forms a deterministic relationship: drink_coffee + drink_tea + drink_water == 1). And as a result, conditioning on any two variables, the third variable is a constant, which is independent to any other variables.

"Do you have any contributor guidelines": currently we don't have one. You reminds me creating a contributor guideline. :) I am wondering in your experience, do you have an example about good contributor guidelines? We just started the "code quality control project", so lots of things are new. Previously each individual researchers contributed their own code to the package. So as you can see, the code style is not consistent across the packages, and we lack good tests. We are currently in progress to make the code quality of causal-learn much better. :)

Regarding making PR to causal-learn, currently what I am thinking is:

Follow "Google Python Style Guide"
send PR with good descriptions and test plan

Regarding your last question, sorry I am not expert here as well. Let me tag the owner here to better help you. cc @chenweiDelight

Hi again,
Thanks for the in-depth response. In response to your comments:

Thanks, that makes sense to me. I have one follow-up question that you might be able to help with:

In order to handle mixed data, I have implemented the Multinomial Logistic Regression Test from the paper "Evaluation of Causal Structure Learning Methods on Mixed Data Types (Raghu, Poon, and Benos, 2018)". Following this approach, if I want to test whether X and Y are independent conditional on an adjustment set S, where X and Y are continuous and some variables in S are categorical, I can convert categorical S to binary indicator variables and apply linear regression. It also states that, if either X or Y are categorical, then we should apply logistic regression. My understanding is that this also requires the dependent variable to be binary and, therefore, we must convert the categorical X or Y into a binary indicator and test independence pairwise between the different indicators.
Based on your first comment, would this approach not violate the faithfulness assumption too?

I would suggest providing instructions on how to create a PR and the general expected quality (e.g. coding standards, maintaining test coverage, passing test cases). Here's an example of good contributor guidelines: https://github.com/pykale/pykale/blob/main/.github/CONTRIBUTING.md.

It might also be worth setting up some continuous integration tests with GitHub actions. This can be implemented so that whenever a PR is made, your tests are run automatically (potentially on multiple different operating systems and python versions) to ensure that your PR does not break the existing code.
Hope that helps!

Hi again,
Thanks so much for your help, that's much clearer now. I really appreciate you taking time to respond to my questions in such detail.
I was wondering whether it would be possible to arrange a virtual meeting? I am planning to conduct an experiment as part of my thesis that evaluates how well different causal discovery algorithms apply to different types of computational model data. I am fairly new to causal discovery and would greatly appreciate some help with a few questions that aren't necessarily relevant to causal-learn.

Hi Andrew,
I'd like to help, but I am also relatively new to causal discovery (I just started my PhD last August, and my first year project is not very causal-related), so I am not sure whether I have the ability to help you.
The good news is: my team has lots of causal experts --- how about you sending me the questions via email (yewenf AT andrew.cmu.edu), and let me see whether I know the answers or I can ask some causal experts in my team. :)
We can discuss more in the emails --- let's the thread here to focus on causal-learn related issues, so when others check this issue later, they won't be distracted. :)

Hi Andrew,
Thank you for pointing out this issue!
It seems that there are some bugs in remove_node(). For example, when removing the node, it does not update the 'dpath'.
If you would like to reconstruct the graph, I think it needs to fix these bugs first. If you have any ideas or updates about fixing the bugs in  remove_node(), it would be great if you send RP.
Another solution is, that you can preprocess the data of the categorical variables (e.g. drink), and then apply PC to the new data to output the graph.

Hi Andrew,
I am sorry that I'm confused about your task. For the causal faithfulness assumption, please refer to the paper that @tofuwen  mentioned. You can send the detail of your task and your questions to @tofuwen and me (chenweiDelight AT gmail.com)via email. We can discuss more in the emails.


[BEAM-1095] Add support set config for reuse-object on flink

Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify. (Even better, enable
Travis-CI on your fork and ensure the whole test matrix passes).
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

@aljoscha check please

@xhumanoid, thanks for your work! 😃


Remove duplicate font files

Some of the titanfall font files are duplicates leftover from initial development (520a86ad6a6549d4ab4c9b49fe4c90b440420d13)
Relevant discussion: https://discord.com/channels/920776187884732556/950322078945538058/1130165033230417952

#29


Add Xcode task telemetry.

We want to see how many builds are using earlier major versions of Xcode.
(cherry picked from commit e675e378a8a38f2756bc9182972a4630bda3a388)

I requeued the Linux build and it passed.


Less printing by default

I've been using this locally. Maybe we should reconsider all the default logging we have in dev mode? This is mostly just for discussion.

@keybase/react-hackers Bringing this up again. Right now the default makes using logcat on android usesless without this patch.

Agreed with @chrisnojima, I use those the most frequently. The rest seem fine to make opt-in.

Closing in favor of https://github.com/keybase/client/pull/20117 because it is better.


Handle flash attributes on htmx redirects

This adds handling for flash attributes via RedirectAttributes. Now you can perform client-side redirects with htmx and the flash attributes work as with normal redirects.
Fixes #96

@wimdeblauwe there is a limitation, because the flash attribute processing does not work if HtmxResponse is set as model attribute (PR #128). I'm not sure if it was a good idea to support such a case and to be honest, I don't like it.

BTW @wimdeblauwe there is more magic done by RedirectView

Treat the redirect URL as a URI template (default: true)
Model attributes can be exposed as HTTP query parameters (default: true)
Propagate the query params of the current URL. (default: false)

We could support all of them to behave as similarly as possible to Spring. Let me know what you think about it.

@wimdeblauwe there is a limitation, because the flash attribute processing does not work if HtmxResponse is set as model attribute (PR #128). I'm not sure if it was a good idea to support such a case and to be honest, I don't like it.

I couldn't find an alternative approach that was compatible with using JTE Models as the return. I'm happy to try another approach if you have any suggestions.

@checketts let's move the discussion about an alternative approach to the initial issue #127.

BTW @wimdeblauwe there is more magic done by RedirectView

Treat the redirect URL as a URI template (default: true)
Model attributes can be exposed as HTTP query parameters (default: true)
Propagate the query params of the current URL. (default: false)

We could support all of them to behave as similarly as possible to Spring. Let me know what you think about it.

If you are willing to implement that, it would be great if we align as much as possible with RedirectView I think.

If you are willing to implement that, it would be great if we align as much as possible with RedirectView I think.

Sure, but let's merge this before and I'll create a separate PR for it. Okay?

ok, but can we already merge this. Don't we need a solution to #127 first?

I'm not sure because I need more information from @checketts on how he uses it in his projects. But if you ask me, we should revert #127 in favor of a better solution for his issue. It's definitely the wrong approach to render views in HtmxHandlerInterceptor#postHandle which was introduced by #127. And as far as I know, using JteModel as a return type is not a supported feature of Jte itself.
See https://jte.gg/spring-boot-starter-3/ or https://github.com/casid/jte/tree/main/jte-spring-boot-starter-3/src/main/java/gg/jte/springframework/boot/autoconfigure for more information about integration with Spring Boot.

Ok, I agree that maybe it was bad judgement to have #127. If we merge this, it means @checketts is not blocked for now and we can have flash attributes, just not the combination of flashattributes and #127, right?

That's right.


Taking off the localhost:300/free Part and replace it with the app name

Like the title descirbes that's where I'm stuck, I've tried going where  is and remplaced it with  and still get the same URL, btw I'm using the free version 1.1.2.
PS: to clarify the issue is not in the browser per say, it's in vs code when I type npm start, the automatic url it goes to is localhost:3000/free so when it opens up in the browser obviously there's nothing bc I changed the path so I have to delete free from the link and leave it at 3000, that's my issue... I'd like it to generate the path localhost:3000 and automaitucally show that in the browser.
Thank you in advance

In the package.json remove the "homepage" key

In the package.json remove the "homepage" key

This should resolve issue. Please reopen if not.


Timeseries visualisation

Moving a discussion from a PR #20 to an issue:

@baentsch : Question to @dstebila We're collecting all data since Oct 4 into the website display (and the file site.tgz): Shall we keep doing this or become more selective? "Oct 4" is actually a parameter in gen_website.sh...

@dstebila : Unclear to me. Let's reflect on the purpose of presenting it as a time series. I understand it serves two purposes: seeing how performance changed after important commits were merged, and providing a visual average over time (effectively adding more data points).

Agreed. So what about adding a mechanism to selectively set dates that shall become part of the visualization export (encoded in gen_website.sh? ) and which could be manually amended/checked in to github as and when substantial changes to the code base occur and as and when the current number of test runs shown becomes too large to derive meaningful insight from), e.g., a file containing a list of dates (instead of the single start date currently passed as parameter to the HTML-generator python script)? This would be a whitelist approach at the generating end (dropping data from export).
An alternative could be a simple "pruning" script deleting unwanted/redundant data/date points from the current daily exports, i.e., a blacklist approach that could be done at the receiving end (still retaining all data points without visualizing all of them). My preference would be on this, second option.
@dstebila: Any preference? Alternative suggestions?

So we'd prune flawed / extremely old data points in the data exports on the server side.  The clients would download all the non-pruned data but then only show say the last 2 weeks?

So we'd prune flawed / extremely old data points in the data exports on the server side.

Yes, that'd be part of proposal 1.

The clients would download all the non-pruned data but then only show say the last 2 weeks?

Not quite: Proposal 2 would prune delivery (to say the last 2 weeks in your example) on the server side, too: This is driven by a file listing the to-be-displayed data points to the client logic (example here): The client only downloads those (days listed in the control file), while the server may have more.
So, indeed, a third option could be to also add a client-side pruning option (made accessible via something like a "download more" button)

Proposal 2 that prunes delivery on the server side is good.

Resolved by adding trivial script to server-side deploy
#!/bin/sh

for f in *.list; do
   mv $f orig-$f
   tail orig-$f > $f
done


[bug] Incorrect warning about compact keys for symlink

For MMF, when the file is a symlink, we are we are getting compact keys warning:
/usr/local/lib/python3.6/dist-packages/omegaconf/dictconfig.py:252: UserWarning: Keys with dot (../../../vilbert/configs/hateful_memes/from_cc.yaml) are deprecated and will have different semantic meaning the next major version of OmegaConf (2.1)
See the compact keys issue for more details: https://github.com/omry/omegaconf/issues/152

Example symlink file: https://github.com/facebookresearch/mmf/blob/f11adf0e4a5a28e85239176c44342f6471550e84/projects/hateful_memes/configs/vilbert/from_cc.yaml

`


Allow for choosing which grammar syntax highlighting you want

Is your feature request related to a problem? Please describe.
Upon the Jan 2024 release, the grammar syntax highlighting has changed for go, as seen here. For the theme I use this ends up looking horrible and I really enjoyed the way it looked before. If there is already a way to do this please let me know.
Describe the solution you'd like
I would like to be able to choose which syntax grammar highlighting is used.
Describe alternatives you've considered
The only known work around I have found is to downgrade to the Nov 2023 version. However, this does not allow me to use copilot chat and some other features.
Additional context
This is how it looked before

This is how it looks now

does installing the old extension not work?
https://marketplace.visualstudio.com/items?itemName=jeff-hykin.better-go-syntax
it may have a languageId conflict
which you might be able to fix by disabling the @builtin go extension

Oh nice! yeah that worked thank you!

Hi @eliaswood it appears the issue is resolved. Thank you @RedCMD. I will close this issue.


Scroll to top from Footer links

On branch issue#627
Changes to be committed:
modified:   src/App.js
new file:   src/ScrollToTop.js
Description of changes
Implements "Scroll Restoration"
https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md
Issue Resolved
Fixes #627

Sweet! Thanks @kylemh! Now... how do I make changes to a commit\PR, and resubmit?

I've got it figured out! 😃

Hmmm... scrollToTop doesn't work as intended, after making the above listed changes. Maybe we could interface on Slack, and discuss?

If you push what you've got on your branch, I'll be able to see where you're at in the code. I'll be back online in full force in like 5 hours

Right on. Will do.

Congrats on your first PR @remyje81 🍾


fixed building block description issue

Building block descriptions were overlapping with bottom-fixed items in the iframe.

Works! Great