rtx executable is super slow on my system.

Super slow :)
I just removed .asdf and asdf traces from my zshrc and installed rtx via the AUR.
I use rtx already on my other system so did not expect this difference in behaviour.
Running Arch Linux latest kernel.
rtx 2023.9.2 linux-x64 (155dadb 2023-09-25)
I tried:

rtx implode.
deleting .local/share/rtx manually
tried to find more traces of .asdf that might cause this but nothing.

[TRACE] (28) reqwest::blocking::wait: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/blocking/wait.rs:42]
is just repeating for quite some time until it times out and actually does something.
love rtx btw :-)
Here is my debug trace so far.
╭─cocoonkid@arch in ~ via  v20.7.0 via  v3.11.5 took 457ms
[🔴] × rtx list
[WARN] rtx::toolset::tool_version_list: failed to resolve tool version: timed out: timed out waiting on channel
assh   2.15.0          ~/.tool-versions 2.15.0
direnv 2.32.3          ~/.tool-versions 2.32.3
go     1.21.1          ~/.tool-versions 1.21.1
node   20.7.0          ~/.tool-versions 20.7.0
php    7.4.33 (missing) ~/.tool-versions 7.4.33
poetry 1.5.1           ~/.tool-versions 1.5.1
python 3.11.5          ~/.tool-versions 3.11.5
rust   1.72.1          ~/.tool-versions 1.72.1
Time: 0h:00m:10s

 ╭─cocoonkid@arch in ~ via  v20.7.0 via  v3.11.5 took 10s
 ╰─λ RTX_TRACE=1 rtx list
[TRACE] (1) rtx::config: [src/config/mod.rs:263] settings does not exist "/home/cocoonkid/.config/rtx/config.toml"
[TRACE] (1) rtx::plugins::rtx_plugin_toml: [src/plugins/rtx_plugin_toml.rs:28] parsing: /home/cocoonkid/.local/share/rtx/plugins/poetry/rtx.plugin.toml
[TRACE] (1) rtx::file: [src/file.rs:66] cat /home/cocoonkid/.local/share/rtx/plugins/poetry/rtx.plugin.toml
[TRACE] (1) rtx::config::config_file::tool_versions: [src/config/config_file/tool_versions.rs:56] parsing tool-versions: /home/cocoonkid/.tool-versions
[TRACE] (1) rtx::file: [src/file.rs:66] cat /home/cocoonkid/.tool-versions
[TRACE] (1) rtx::config: [src/config/mod.rs:68] Settings: Settings {
    experimental: false,
    missing_runtime_behavior: Warn,
    always_keep_download: false,
    always_keep_install: false,
    legacy_version_file: true,
    legacy_version_file_disable_tools: {},
    plugin_autoupdate_last_check_duration: 604800s,
    trusted_config_paths: {},
    verbose: true,
    asdf_compat: false,
    jobs: 4,
    shorthands_file: None,
    disable_default_shorthands: false,
    disable_tools: {},
    log_level: Trace,
    raw: false,
    yes: false,
}
[DEBUG] (1) rtx::config: [src/config/mod.rs:111] Files: ~/.tool-versions
Installed Plugins: assh, direnv, php, poetry, rust
[DEBUG] (1) rtx::cli: [src/cli/mod.rs:191] rtx list
[TRACE] (6) rtx::cache: [src/cache.rs:81] reading ~/.cache/rtx/php/remote_versions.msgpack.z
[TRACE] (28) reqwest::blocking::wait: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/blocking/wait.rs:49] (ThreadId(28)) park without timeout
[TRACE] (29) reqwest::blocking::client: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/blocking/client.rs:1047] (ThreadId(29)) start runtime::block_on
[DEBUG] (28) rtx::http: [src/http.rs:21] GET https://joschi.github.io/java-metadata/metadata/all.json
[TRACE] (28) reqwest::blocking::wait: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/blocking/wait.rs:16] wait at most 30s
[TRACE] (28) reqwest::blocking::wait: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/blocking/wait.rs:42] (ThreadId(28)) park timeout 29.999998167s
[DEBUG] (29) reqwest::connect: [/cargo/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.20/src/connect.rs:429] starting new connection: https://joschi.github.io/
^C[DEBUG] (2) rtx: [src/main.rs:96] Ctrl-C pressed, exiting...

rtx doctor:

rtx version:
  2023.9.2 linux-x64 (155dadb 2023-09-25)

build:
  Target: x86_64-unknown-linux-gnu
  Features: DEFAULT, NATIVE_TLS, OPENSSL, SELF_UPDATE
  Built: Mon, 25 Sep 2023 17:09:06 +0000
  Rust Version: rustc 1.72.0 (5680fa18f 2023-08-23)
  Profile: release

shell:
  zsh
  zsh 5.9 (x86_64-pc-linux-gnu)

rtx data directory:
  /home/cocoonkid/.local/share/rtx

rtx environment variables:
  RTX_SHELL=zsh

settings:
  {"always_keep_download": "false", "always_keep_install": "false", "asdf_compat": "false", "disable_default_shorthands": "false", "disable_tools": "[]", "experimental": "false", "jobs": "4", "legacy_version_file": "true", "legacy_version_file_disable_tools": "[]", "log_level": "INFO", "missing_runtime_behavior": "warn", "plugin_autoupdate_last_check_duration": "10080", "raw": "false", "trusted_config_paths": "[]", "verbose": "false", "yes": "false"}

config files:
  /home/cocoonkid/.tool-versions

plugins:
  assh     https://github.com/zekker6/asdf-assh.git#f8737cc
  direnv   https://github.com/asdf-community/asdf-direnv.git#6c109a3
  go       (core)
  java     (core)
  node     (core)
  php      https://github.com/asdf-community/asdf-php.git#1eaf4de
  poetry   https://github.com/rtx-plugins/rtx-poetry.git#3d4c703
  python   (core)
  ruby     (core)
  rust     https://github.com/code-lever/asdf-rust.git#95acf4f

toolset:
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>java@openjdk-21, <EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Update: I was able to pin it down to the java install.
All the other installs work.

I see the same thing with my install - using the asdf plugin for Java works fast: https://github.com/halcyon/asdf-java:
rtx plugin uninstall java
rtx plugin add java https://github.com/halcyon/asdf-java.git

Seems like the rtx fork is broken somehow.

The problem is that the rtx core plugin downloads https://joschi.github.io/java-metadata/metadata/all.json quite often. This file is nearly 36MB and GitHub pages is quite slow - so it needs around 45s for me to download.

what needs to happen is we need to re-host the metadata, split it up and prune information we don't need. Optionally maybe also pack it into messagepack/gzip (I'm not sure if http compression is working or not currently)

it seems if you want reqwest to use http compression you can't use blocking mode so that isn't going to be able to happen today, the rest of this was actually already in the metadata service though so this was a pretty simple change

Great work @jdx!  Thanks so much!


Quote strategy not applied to foreign key columns

The quote strategy is not applied to foreign key columns used in one-to-one associations. When fetching the Address entity the column user-id is not quoted.
SELECT
  q0_."address-id" AS addressid_0,
  q0_."address-zip" AS addresszip_1,
  q0_.user-id AS userid_2
FROM "quote-address" q0_

The tests do not cover this scenario, as they force partially loaded entities. Applying the patch below should yield a failing test case. The columns come from a collection called targetToSourceKeyColumns where, if I understood correctly, all columns are stored that are used as
As far as I can tell, the problem is in SqlWalker::walkSelectClause, where the foreign key columns are added to the list of select expressions.
Patch for creating a test case, based on branch 2.5 (48e8c02cb8c20d10240248b0232e31bf785b0209):
diff --git a/tests/Doctrine/Tests/ORM/Query/SelectSqlGenerationTest.php b/tests/Doctrine/Tests/ORM/Query/SelectSqlGenerationTest.php
index a3a34f8..21b6961 100644
--- a/tests/Doctrine/Tests/ORM/Query/SelectSqlGenerationTest.php
+++ b/tests/Doctrine/Tests/ORM/Query/SelectSqlGenerationTest.php
@@ -1972,0 +1973,6 @@ class SelectSqlGenerationTest extends \Doctrine\Tests\OrmTestCase
+
+        $this->assertSqlGeneration(
+            'SELECT a FROM Doctrine\Tests\Models\Quote\Address a',
+            'SELECT q0_."address-id" AS addressid_0, q0_."address-zip" AS addresszip_1, q0_."user-id" AS userid_2 FROM "quote-address" q0_',
+            [Query::HINT_FORCE_PARTIAL_LOAD => false]
+        );

AFAIKS it's a duplicate of https://github.com/doctrine/doctrine2/issues/5874 :/

@theofidry it's similar, but not a duplicate. @lemartin is the join column mapped with backticks?

Yes, the column is mapped with back-ticks.
    /**
     * @OneToOne(targetEntity="User", inversedBy="address")
     * @JoinColumn(name="`user-id`", referencedColumnName="`user-id`")
     */
    public $user;

Yup, that's 100% a bug then, and not a duplicate :-\

After some debugging I think I found a fix, but also another bug. See below the diff for fixing the original issue. I'm not sure if the map is really necessary, or if there is an easier way to find the joinColumn based on a column name (as found in targetToSourceKeyColumns).
What I am really unsure about is, what is supposed to go into ResultSetMapping::addMetaResult, whether it should be the quoted column name or the column name as per joinColumn and targetToSourceKeyColumns. The thing is, it only works with the unquoted column name, and if this is as it is supposed, there is probably a bug in BasicEntityPersister::_getSelectColumnAssociationSQL introduced in a75c672ee73569d09d13d513134f3c30e5fecb72.
There the quoted column name is passed to ResultSetMapping::addMetaResult, causing a undefined index notice in IdentifierFlattener::flattenIdentifier and subsequently the following error: The given entity of type 'Foo' (DoctrineProxies\__CG__\Foo@000000002cd49270000000000c8857e4) has no identity/no id values set. It cannot be added to the identity map. .
The tests are no help, they succeed regardless if the quoted or unquoted column name is passed.
diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php
index 9c4ac2a..5e5ae62 100644
--- a/lib/Doctrine/ORM/Query/SqlWalker.php
+++ b/lib/Doctrine/ORM/Query/SqlWalker.php
@@ -756,12 +756,18 @@ class SqlWalker implements TreeWalker

                 $targetClass = $this->em->getClassMetadata($assoc['targetEntity']);

+                $columnNameToJoinColumn = [];
+                foreach($assoc['joinColumns'] as &$joinColumn) {
+                    $columnNameToJoinColumn[$joinColumn['name']] = $joinColumn;
+                }
+
                 foreach ($assoc['targetToSourceKeyColumns'] as $targetColumn => $srcColumn) {
                     $columnAlias = $this->getSQLColumnAlias($srcColumn);
+                    $quotedSourceColumn = $this->quoteStrategy->getJoinColumnName($columnNameToJoinColumn[$srcColumn], $class, $this->platform);

                     $type                   = null;
                     $isIdentifier           = (isset($assoc['id']) && $assoc['id'] === true);
-                    $sqlSelectExpressions[] = $sqlTableAlias . '.' . $srcColumn . ' AS ' . $columnAlias;
+                    $sqlSelectExpressions[] = $sqlTableAlias . '.' . $quotedSourceColumn . ' AS ' . $columnAlias;

                     if (isset($targetClass->fieldNames[$targetColumn])) {
                         $type = $targetClass->fieldMappings[$targetClass->fieldNames[$targetColumn]]['type'];

Created a pull request for both issues. (My first ever, sorry if I got anything wrong).

@lemartin once the PR is merged be me or @Ocramius we'll do the back porting ;)

@lemartin thanks for your contribution as explained here we're going to keep it on v2.6.x only.

Closed by #6404

Handled in #6416


Add cli script for bin

Adds cli script and exposes it as the package binary. Supports -p --port flag for choosing port and -h --host flag for choosing host.
related #104 and #35

makes sense! the idea was that you could then run cors anywhere with just npx cors-anywhere --port 5000 without other installation steps.
looking around, https://github.com/fjc0k/cors-anywhere-cli does the same


[Bug]: 404 error at URL: /txns/0ULlmyNB-Yl6vVeYrsfbQAjTSLvfAO-qVQltBemvKg8

What happened?
A bug happened!
URL
https://explorer.helium.com/hotspots/112Kj3npdY9kjy9eAA2bGw2TQ6wGVJAtYRVhh19CaPZ4hDVaxMLP
What browsers are you seeing the problem on?
Safari
Do you see the issue on Mobile or Desktop?
Mobile
Relevant log output
No response

works now, closing.


Null pointer dereference Vulnerability in OpenSSL Function Structure Loading

Summary
Insufficient memory during program runtime can result in multiple null pointer returns from malloc, leading to a segmentation fault.
Version
Discovered version:  3.0.9
Description
In crypto/context.c, function context_init is used to initialize default_context_int, and it is globally utilized only once. If malloc failure occurs (due to restrcted memory or fault injection), the program will goto err tag and all fields in default_context_int will be set to NULL. It will trigger a fault later.
 err:
    if (exdata_done)
        ossl_crypto_cleanup_all_ex_data_int(ctx);
    for (i = 0; i < OSSL_LIB_CTX_MAX_INDEXES; i++)
        CRYPTO_THREAD_lock_free(ctx->index_locks[i]);
    CRYPTO_THREAD_lock_free(ctx->oncelock);
    CRYPTO_THREAD_lock_free(ctx->lock);
    memset(ctx, '\0', sizeof(*ctx));
    return 0;

In lhash.c/OPENSSL_LH_insert(), when the getrn() function detects that a function (which is used to define modules such as x509) from the data is not currently stored, it uses OPENSSL_malloc() to allocate space and store the new Function structure.
void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data)
{
    unsigned long hash;
    OPENSSL_LH_NODE *nn, **rn;
    void *ret;

    lh->error = 0;
    if ((lh->up_load <= (lh->num_items * LH_LOAD_MULT / lh->num_nodes)) && !expand(lh))
        return NULL;        /* 'lh->error++' already done in 'expand' */

    rn = getrn(lh, data, &hash);

If malloc encounters insufficient space and returns NULL, in openssl.c/do_cmd(), lh_FUNCTION_retrieve() will return NULL due to the inability to find the module. When fp is NULL, it will enter EVP_get_digestbyname, forcing the search or creation of a Function type structure.
    fp = lh_FUNCTION_retrieve(prog, &f);
    if (fp == NULL) {
        if (EVP_get_digestbyname(argv[0])) {
            f.type = FT_md;
            f.func = dgst_main;
            fp = &f;
        } else if (EVP_get_cipherbyname(argv[0])) {
            f.type = FT_cipher;
            f.func = enc_main;
            fp = &f;
        }
    }

Eventually, in context.c, ossl_lib_ctx_get_data() will be called, and it will use ossl_lib_ctx_get_concrete to obtain the previously mentioned default_context_int. As mentioned earlier, ctx->lock is NULL, so threads_pthread.c/CRYPTO_THREAD_read_lock() will lead to a crash due to dereferencing a null pointer.
OSSL_LIB_CTX *ossl_lib_ctx_get_concrete(OSSL_LIB_CTX *ctx)
{
#ifndef FIPS_MODULE
    if (ctx == NULL)
        return get_default_context();
#endif
    return ctx;
}
...
static OSSL_LIB_CTX *get_default_context(void)
{
    OSSL_LIB_CTX *current_defctx = get_thread_default_context();

    if (current_defctx == NULL)
        current_defctx = &default_context_int;
    return current_defctx;
}
...
__owur int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock)
{
# ifdef USE_RWLOCK
    if (pthread_rwlock_rdlock(lock) != 0)
        return 0;
# else
    if (pthread_mutex_lock(lock) != 0) {
        assert(errno != EDEADLK && errno != EBUSY);
        return 0;
    }
# endif

    return 1;
}

Theres only going to be so much to be done in low memory conditions as you describe:
It may be that the best thing to do is add a check in get_default context for default_context_inited == 1.  If that fails we could abort or perhaps call an optionally registered callback to make the application aware of the fact that there is no memory available.  But in the end, and out of memory condition is largely unrecoverable, at least not without application assistance to restart the initialization process.


Adding changes for https://github.com/openconfig/featureprofiles/issu…

…es/306

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.374%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1314

Relevant Lines:
1841

💛  - Coveralls

/gcbrun


[bug] killed9/segfault11/getting slower

recurring bug - not sure if it's just apple killing the process because not signed or something
i'm on it

[2024-07-09T17:56:53Z INFO  screenpipe_audio::core] Will write an audio file every 30 seconds
Bus error: 10

trying to interpret these stuff :)

suspecting one of the biggest issue is this model loading/unloading every 5s
inspired by this static loading:
https://github.com/jasonjmcghee/xrem/blob/main/src-tauri/src/core/embed.rs
more brainstorming here:
https://github.com/huggingface/candle/discussions/2326


Segment timeline doesn't show results older than 3 months

Description
In Druid web console, when the selection of timeline changes, the actual data displayed does not change. This PR is to fix this.
Instead of rerun the last query with the same timespan, run a query with actual updated timespan.

This PR has:

[X] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

That is a good question... let me find out.

Found the tests, will add tests and update docs on testing.


pcap.go:271:33: too many errors, undefined: pcapTPtr

Cross platform cross compilation is a beautiful lie. Let's give it up
$ go version
go version go1.18.2 darwin/amd64
$ uname -a
Darwin 123.local 21.5.0 Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020.121.3~4/RELEASE_X86_64 x86_64

$ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -trimpath -o vscan_linux .
# runtime/cgo
linux_syscall.c:67:13: error: implicit declaration of function 'setresgid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
linux_syscall.c:67:13: note: did you mean 'setregid'?
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:593:6: note: 'setregid' declared here
linux_syscall.c:73:13: error: implicit declaration of function 'setresuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
linux_syscall.c:73:13: note: did you mean 'setreuid'?
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:595:6: note: 'setreuid' declared here

$ brew reinstall libpcap
==> Downloading https://ghcr.io/v2/homebrew/core/libpcap/manifests/1.10.1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/libpcap/blobs/sha256:3a77261badf57e93273aa3190348d34a27231e728cb0cd4d4c501e874bd7b2c6
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:3a77261badf57e93273aa3190348d34a27231e728cb0cd4d4c501e874bd7b2c6?se=2022-05-31T01%3A05%3A00Z&sig=5RLVdri%2F
######################################################################## 100.0%
==> Reinstalling libpcap
==> Pouring libpcap--1.10.1.monterey.bottle.tar.gz
==> Caveats
libpcap is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.

If you need to have libpcap first in your PATH, run:
  echo 'export PATH="/usr/local/opt/libpcap/bin:$PATH"' >> ~/.zshrc

For compilers to find libpcap you may need to set:
  export LDFLAGS="-L/usr/local/opt/libpcap/lib"
  export CPPFLAGS="-I/usr/local/opt/libpcap/include"

For pkg-config to find libpcap you may need to set:
  export PKG_CONFIG_PATH="/usr/local/opt/libpcap/lib/pkgconfig"

==> Summary
🍺  /usr/local/Cellar/libpcap/1.10.1: 110 files, 978.7KB
==> Running `brew cleanup libpcap`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:593:6: note: 'setregid' declared here
linux_syscall.c:73:13: error: implicit declaration of function 'setresuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
linux_syscall.c:73:13: note: did you mean 'setreuid'?
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:595:6: note: 'setreuid' declared here

Interestingly cross compiling to Windows and Darwin-ARM works.

I Have solved That ,you need  check your go env info, add " CGO_ENABLED=1" when running go files!

Also you can add "CGO_ENABLED=1" into your globel configs!

I have the same issue.
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:593:6: note: 'setregid' declared here
linux_syscall.c:73:13: error: implicit declaration of function 'setresuid' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
linux_syscall.c:73:13: note: did you mean 'setreuid'?


Initial Rails 4.0.x upgrade work

Here is a WIP release of my Rails 4.0.x upgrade of railsgoat.
Here is the loose-ends that I know about:

Fix/Remove find/first warnings. Expect one line change in app/controllers/users_controller.rb file.
Expect these to be 4 separate pull requests:

Remove protected_attributes and migrate to strong_parameters.
Move to "Rails 4.1.x w/ Devise as our auth schema".
Upgrade rspec 2.99 to rspec 3.x.
After the merge of this pull request, then we will start the upgrade Railsgoat to Rails 4.1.x.

Please do not merge yet. This is to share the work with the broader community. Please add comments or pull requests against my version for bugs/etc.
Thanks.

Okay - I'm going to finish up some changes that need to be in the 3.x branch then will likely set a "release" tag on it and work on the upgrade to 4. Thanks @jasnow!

I'll going to close the two pull request and then submit a brand new pull request with the changes. Think this will be simpler.


Trouble compiling in Linux

I am running Arch Linux and am getting the following error after running 'make':
[ 46%] Built target kazmath [ 50%] Generating ../../tests/main.cpp Traceback (most recent call last):   File "../../bin/kaztest_gen", line 8, in <module>     parser.add_argument("--output", type=unicode, nargs=1, help="The output source file for the generated test main()", required=True) NameError: name 'unicode' is not defined make[2]: *** [tests/CMakeFiles/kazmath_tests.dir/build.make:72: ../tests/main.cpp] Error 1 make[1]: *** [CMakeFiles/Makefile2:140: tests/CMakeFiles/kazmath_tests.dir/all] Error 2 make: *** [Makefile:161: all] Error 2
Any help would be appreciated.

That was fast! Thank you for being awesome. It compiled without error now.


Add module field to package.json

Fix #1074
Then we can use rollup to bundle this package into another package.

Doesn't work.


dashboard test fails on newyear

Changes Unknown when pulling b4fda86dcce8511852f59fa911b946b6f86bb5e1 on peterbe:dashboard-test-fails-on-newyear into ** on mozilla:master**.


how to resize an object in a lua file?

What is your question?
how to resize an object in a lua file?

Use scaleObject

scaleObject if you want to multiply the object's scale.
setGraphicSize if you want to set the object's width/height to a very specific value


Fixes #4 and #5

Fixes #4 by exposing passing SkipCcmClientSDK parameter through to the Get-TargetResource method.
Adds test coverage
Fixes #5 by adding a check around the Get-ChildItem call before attempting to split.
Updates test coverage to avoid regressions
Updates readme.md and fixes unsupported character/encoding

Hi @iainbrighton, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft and real humans are currently evaluating your PR.
TTYL, MSBOT;

Thanks for your contribution!


UE 5.5 Fix building project error

Fix include error:

Fixes this https://github.com/UnrealSharp/UnrealSharp/issues/284

Thank you for the fix :D

No problem. try fresh install on UE 5.5


[TFLite] Cannot apply XNNPack delegate to simple model with Dense layer

1. System information

OS Platform and Distribution: macOS ventura 13.2.1
In python, I'm using 2.11, for the c++ side, I used the latest main and followed the instructions to build tensorflow lite with cmake from this commit (f8066222ad6).

2. Code
I have a tiny dummy model:
    import tensorflow as tf

    img = tf.keras.layers.Input((40, 320, 1), name='img')
    x = tf.keras.layers.Conv2D(32, (3, 3), padding='same')(img)
    x = tf.keras.layers.Dense(24, activation='softmax', name="output")(x)
    model = tf.keras.Model(inputs=[img], outputs=x)

which I'm converting to tflite like so:
    converter = tf.lite.TFLiteConverter.from_keras_model(model)
    converter.optimizations = [
        tf.lite.Optimize.EXPERIMENTAL_SPARSITY,  # sparsity optimization for xnnpack acceleration
    ]
    tflite_model = converter.convert()

before saving.
And then on the c++ side I'm trying to apply the xnnpack delegate:
    auto m_model = TfLiteModelCreateFromFile("<PATH_TO_FILE>.tflite");
    auto m_options = TfLiteInterpreterOptionsCreate();
    TfLiteXNNPackDelegateOptions opt = TfLiteXNNPackDelegateOptionsDefault();
    auto m_xnnpack_delegate = TfLiteXNNPackDelegateCreate(&opt);
    TfLiteInterpreterOptionsAddDelegate(m_options, m_xnnpack_delegate);
    auto m_interpreter = TfLiteInterpreterCreate(m_model, m_options); // This returns nullptr and prints error messages in the console

However this fails with WARNING: Attempting to use a delegate that only supports static-sized tensors with a graph that has dynamic-sized tensors (tensor#15 is a dynamic-sized tensor)., where tensor#15 is model/output/Tensordot/Reshape. For some reason, that I don't quite understand, this part of the dense layer seems to be flagged as a dynamic tensor.
Any idea, what might be the cause here?
A bit of context: I'm actually looking into pruning using the PruneForLatencyOnXNNPack approach. I've skipped the training with pruning on this dummy model for now, but I have a more complex model, that I also pruned before conversion and it, too, fails on the dense layer.  As far as I can tell, the Dense layer should be supported, so I'm really confused.

if you change img = tf.keras.layers.Input((40, 320, 1), name='img') to img = tf.keras.layers.Input((40, 320, 1), name='img', batch_size=1), mostly the issue will be gone. Without fixed batch (batch_size=1), there are some other nodes to handle dynamic batch size, some of them may not be delegatable.  To see the nodes I mentioned, check the tflite you have with netron or other visualization tools may help.

Hi @christian-steinmeyer
As @freedomtan suggests, you can specify batch_size=1 to avoid dynamic tensors.
To add more, the Reshape operation after conversion is being flagged as dynamic tensor which can be observed in the gist and it is known limitation of XNNPack for not supporting the dynamic tensors.
Thanks.

Thanks for getting back to me. That did the trick!
In case anyone else comes across this. In order to change the input layer of an existing model, I've ended up using this code:
old_input_layer = model.get_layer(index=0)
new_input_layer = tf.keras.layers.Input(
        batch_size=1,
        shape=old_input_layer.input.shape[1:],
        dtype=old_input_layer.dtype,
        name=old_input_layer.name,
    )
new_model = tf.keras.models.clone_model(old_model, new_input_layer)

Thank you for this trick! However, using netron, I observed that the values of the kernel parameters are all changed after the convertion. And the output is totally different than the original model.
Have you encountered such problem?

You might have to also copy over the weights (depends a bit on what exactly you are doing).
new_model.set_weights(old_model.get_weights())

You might have to also copy over the weights (depends a bit on what exactly you are doing).
new_model.set_weights(old_model.get_weights())

Exactly! Thank you again!
It is strange that the man page of tf.keras.models.clone_model does not mention that

You're welcome! It only says:

"Model cloning is similar to calling a model on new inputs, except that it creates new layers (and thus new weights) instead of sharing the weights of the existing layers."
which leaves some room for misinterpretation, I think. Glad it's working for you now!


Use Spring Configuration

This is an initial pass at using the configuration classes provided by Spring Boot to perform configuration for Timely. The advantage of using Spring Boot's configuration is that the configuration is type safe, supports YAML (much more readable than properties files), supports multiple environments with sensible composition of properties (e.g., default some properties in default and override in your dev environment), and it supports JSR-303 validation rules on the configured properties.

+1 for this feature. I need a more complex configuration for #16

I'm good for merge. Any last thoughts?


PacReq: Linked

Types
-deb (Debian achieve release of the package)
URL
https://github.com/lostdesign/linked
Building guide
No response
Additional context
No response

I have added this with PR #1704

Completed in #1704


Use tabs

As for all code in the ownCloud organization, use tabs everywhere, not spaces.

eslint has been added - we follow standard js style guide


Add enough OPAM metadata to build mechanically

This introduces an OPAM repository under repo/ which can be used
by automated tooling to get all the pins required.
To see it in action, you can install dopam
on a Mac without any development tools.  Reason can be built by running:
dopam init reason
make

A number of other distributions and compiler versions can also be
experimented with by passing options to dopam init or doing:
dopam bulk-compilers
dopam bulk-distros

dopam works by initialising a Docker container per combination
of OS/distro, and running OPAM inside the container.  The source
tree is mapped in from the Mac host, so normal editors can be used.
If this PR is useful, I will also update the README and documentation to provide the Docker option as a quick install mechanism.

Yes, thank you to everyone who has helped us port this to a modern setup consisting of opam and even dune builds!


Ores not dropping

I'm playing on a minecraft Realms with some friends, and the owner asked me to add some interesting Datapacks, so i got Mechanization, everything was working fine, until now, when we break any of the Mechanization ores, we dont get any of them, the owner said he didnt changed any command or nothing, and neither do i, any idea on what may be causing this?

I don't know what causes this bug, and unless I figure that out I can't fix it. I can say it will be fixed in the next major update.
Closing for duplicate of #50.

it checks if you mined a aphal slab as well how much you picked up a
lot of the time the clear command fails instead when i want to test
for multiple items i do /cear @p diamond 0 than add that number of
items found so if i want to see if the player has 4 diamonds i do
/data get block X Y Z command success count run scoreboard get
itemcount [score] item [fakeplayer] than run a command execute if
score itemcount matches 4.. run clear diamond 4
On 3/10/19, Michael Weatherby<EMAIL_ADDRESS>wrote:

I don't know what causes this bug, and unless I figure that out I can't fix
it. I can say it will be fixed in the next major update.
Closing for duplicate of #50.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/ImCoolYeah105/Mechanization/issues/68#issuecomment-471310159

--
Marc-Andre Maurice
<EMAIL_ADDRESS>


update octokit and drop eol node versions support

@gr2m
I would like to update probot to use latest node. For this I would like to update this package.

@gr2m
I tried to contact you on discord and twitter. Is there a chat opportunity to coordinate the necessary changes?

I would like to keep the discussion here if you don't mind. I get notifications and will prioritize the one for this pull request.
For general @probot questions you can also start a discussion here: https://github.com/probot/probot/discussions/. There is some increased interest in Probot both from within GitHub and from the outside, it's a good time to get involved if you are interested. If you are interested let me know, I'll reach out if we do any maintainer onboarding calls in near future

@gr2m
I used app.js as a blueprint for this PR. I hope it covers everything.


Multi-language issues

I found some issues related to multi-language.
If login Google Drive account with name using Chinese characters, it will show block characters.

Changing to Japanese language, the wordings for "Drive Backup" will overflow.

So this is because our i18n glyph set is generated from the localized strings present in the project. This is great for unchanging text, but clearly falls apart when there is custom text like names and (in the future) models from the APIs.
We should obviously add in a wider set of common glyphs, but multiple sources online recommend not dumping the entire glyph set for languages as it can massively balloon the size of the texture atlas, causing performance/rendering issues with TMP.


chore: Update uses of prometheus registration to be less likely to panic

PR Description
Inspired by https://github.com/grafana/alloy/pull/2177 - I don't see a reason that the possibility of a metric being already registered should cause Alloy to panic.
Which issue(s) this PR fixes
None

It's worth noting that the AlreadyRegisteredError feature is more of an anti-pattern, and should only be used as a last resort. It's not meant to be used regularly for every registration. If there are duplicate registrations, there is likely to be a bug and avoiding the error could just further mask the bug.
To avoid the panic, it's possible to use Register instead of MustRegister and then the error can be propagated.


recurringTimer is None

hey folks,
i get the following exception when running the cli:
Traceback (most recent call last):
  File "c:\python39\lib\runpy.py", line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "c:\python39\lib\runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\Scripts\weconnect-cli.exe\__main__.py", line 7, in <module>
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect_cli\weconnect_cli.py", line 142, in main
    weConnect.update()
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\weconnect.py", line 411, in update
    vehicle = Vehicle(weConnect=self, vin=vin, parent=self.__vehicles, fromDict=vehicleDict,
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 46, in __init__
    self.update(fromDict)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 117, in update
    self.updateStatus(updateCapabilities=updateCapabilities, force=force)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 157, in updateStatus
    self.statuses[key] = className(vehicle=self, parent=self.statuses, statusId=key,
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 1586, in __init__
    super().__init__(vehicle=vehicle, parent=parent, statusId=statusId, fromDict=fromDict, fixAPI=fixAPI)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 312, in __init__
    self.update(fromDict=fromDict)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 1598, in update
    self.timers[climatizationTimerDict['id']] = ClimatizationTimer.Timer(
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 1636, in __init__
    self.update(fromDict)
  File "C:\Users\MaxDhom\AppData\Roaming\Python\Python39\site-packages\weconnect\elements.py", line 1660, in update
    self.recurringTimer.enabled = False
AttributeError: 'NoneType' object has no attribute 'enabled'

It doesn't make any difference wether i run it with list argument or without.
Would be glad to get some help here!

Can you please check if version 0.5.3 fixes your problem?

yes, thank you. running --upgrade worked. i am just wondering why it didn't install the latest version right at the beginning. I installed weconnect-cli the first time yesterday...

You had the latest version at that time. I fixed it after your report and released the bugfix version late in the evening. So you did nothing wrong :)


Make _deactivateRecursively static

See https://github.com/flutter/flutter_web/blob/b817e257ef921d4db13d3cb20dea5092e6b3efc2/packages/flutter_web/lib/src/widgets/framework.dart#L1737. This is a recursive instance method. When it recurses it produces a tear off, which is more expensive than recursing into a static function.

Fixed via https://github.com/flutter/flutter/commit/a32d1ccdced04387406931b98e219731fc183db4#diff-16a8dc6e114c65d7a516fc759bac2316


Remove other stupid pages

Description
All dummy content for pages has to be removed
Acceptance criteria

[x] No 'My page'
[x] No 'Henk'
[x] No 'Demo page'
[ ] Home is bound to / in Storyblok and in the front-end (do something with real path etc.)

Since I'm already busy with the home page, I'll fix it in the front-end

Oh great!

@gijslaarman Can you create an issue where we fix all nested CSS styling, it's giving some headaches, mainly because I just wanted to add an container to the header so the content stays within boundaries instead of being 100% width or something.
But because we use nested CSS selectors like &__top etc. all layout breaks... That's not what BEM should be about.

In the SCSS it's nested, in the css output &__top is the same as .parent-element__top. Will discuss this later

Doesn't seem to work as intended then anyway 🤷♂ . We'll take a look indeed


Change name to measurement in JSON write schema

@beckettsean proposed renaming name in the JSON write schema to measurement.  The justification being that "measurement" is more descriptive and less confusing than "name".
The proposed JSON payload for writing a point would change to:
{
    "database": "mydb",
    "retentionPolicy": "default",
    "points": [
        {
            "measurement": "cpu_load_short",
            "tags": {
                "host": "server01",
                "region": "us-west"
            },
            "time": "2009-11-10T23:00:00Z",
            "fields": {
                "value": 0.64
            }
        }
    ]
}

yes, +1

I could not write this exact example.
I tried writing this:
{
    "database": "mydb",
    "retentionPolicy": "default",
    "points": [
        {
            "measurement": "cpu_load_short",
            "tags": {
                "host": "server01",
                "region": "us-west"
            },
            "time": "2009-11-10T23:00:00Z",
            "fields": {
                "value": 0.64
            }
        }
    ]
}

And got the following response:
500: {"error":"bucket name required"}

That error is a low-level error from BoltDB, FWIW.

@otoolep
I can help debugging if needed, should I check logs or launch InfluxDB in debug?

The logs probably won't help, which is something we need to fix. This implies something like a destination database or series is missing.
Can you provide a complete sequence, using curl, showing the problem?

I don't really know what to add:
reazem@cranberry:~$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE db"
{"results":[{}]}
reazem@cranberry:~$ curl -X POST -d '{ "database": "db", "retentionPolicy": "default", "points": [ { "measurement": "cpu_load_short", "tags": { "host": "server01", "region": "us-west" },"time": "2009-11-10T23:00:00Z","fields": {"value": 0.64}}]}' 'http://localhost:8086/write'
{"error":"bucket name required"}

OK -- good enough, thanks.

@otoolep
Just in case:
reazem@cranberry:~/Downloads$ sudo service influxdb stop
reazem@cranberry:~/Downloads$ sudo apt-get remove influxdb
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  influxdb
0 upgraded, 0 newly installed, 1 to remove and 157 not upgraded.
After this operation, 22.5 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 309283 files and directories currently installed.)
Removing influxdb (0.9.0-rc31) ...
reazem@cranberry:~/Downloads$ sudo rm -rf /var/opt/influxdb
reazem@cranberry:~/Downloads$ sudo rm -rf /opt/influxdb
reazem@cranberry:~/Downloads$ sudo dpkg -i influxdb_0.9.0-rc31_amd64.deb
Selecting previously unselected package influxdb.
(Reading database ... 309276 files and directories currently installed.)
Preparing to unpack influxdb_0.9.0-rc31_amd64.deb ...
Unpacking influxdb (0.9.0-rc31) ...
Setting up influxdb (0.9.0-rc31) ...
reazem@cranberry:~/Downloads$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE db"curl: (7) Failed to connect to localhost port 8086: Connection refused
reazem@cranberry:~/Downloads$ sudo service influxdb start
reazem@cranberry:~/Downloads$ curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE db"
{"results":[{}]}
reazem@cranberry:~/Downloads$ curl -X POST -d '{ "database": "db", "retentionPolicy": "default", "points": [ { "measurement": "cpu_load_short", "tags": { "host": "server01", "region": "us-west" },"time": "2009-11-10T23:00:00Z","fields": {"value": 0.64}}]}' 'http://localhost:8086/write'
{"error":"bucket name required"}
reazem@cranberry:~/Downloads$

We don't have default RP creation on master, is that the problem?  Not sure what version he is using.

If you explicitly create the RP does it work?

@corylanou : I am on 0.9.0-rc31

This should help: Using ''name'' works.


Added Smoothness in B2T, Enhancement Mode Toggling Buttons, Added Styling to Cards | Issue #134

Title and Issue number

Title: Added Smoothness in B2T, Enhancement Mode Toggling Buttons, Added Styling to Cards | Issue #134
Issue No.: #134
Close #134

Screenshots/Video (mandatory)

https://github.com/user-attachments/assets/4453bbb9-4930-4d4f-9fa6-3ac54de3fb43

Checklist:

[X] I have mentioned the issue number in my Pull Request.
[X] I have commented my code, particularly in hard-to-understand areas.
[X] I have created a helpful and easy-to-understand README.md if it's a new page/tech stack.
[X] I have gone through the contributing.md file before contributing.

Additional context (Mandatory):
Are you contributing under any Open-source programme?

[X] I'm a GSSOC-EXT contributor
[X] I'm a HACKTOBERFEST contributor

Well done @Shariq2003


@AuraEnabled class permissions critical update

What does this PR do?
Adds permissions to Permission Set, to adopt @AuraEnabled class permissions critical update
What issues does this PR fix or reference?
#
The PR fulfills these requirements:
[X] Tests for the proposed changes have been added/updated.
[X] Code linting and formatting was performed.
Functionality Before
The app PS didn't explicitly give access to @auraenabled methods classes
Functionality After
The app PS does explicitly give access to @auraenabled methods classes

Tests should pass once #88 is merged


More flexibility needed in contents of SPIO root files

IOManager automatically places some data in the root files that is based on the schema for the Conduit blueprint index.  Even if the customer application is not using the blueprint, something along these lines is necessary when an application is parsing the root file to get the meta-information about where to find data to load, so it is reasonable to use the blueprint as the model to follow.  However, the current implementation hard-codes some things that can interfere with providing sufficient flexibility to users, and there are some upcoming changes to the blueprint index that we will
need to take into account.
Conduit github issue about blueprint index changes, which are intended to better support applications with multiple domains per rank.  It is labeled for AMR but also relevant for any multi-domain/rank application:  https://github.com/LLNL/conduit/issues/476
The current schema looks like this:
{
    "number_of_files": /* int */, // number of data files
    "number_of_trees": /* int */, // number of domain trees per file--ranks per file in SPIO terms
    "file_pattern": /* string */, // template for data file strings
    "tree_pattern": /* string */, // template for domain tree paths
}

The entry I'm focused on is "tree_pattern".  We currently hardcode it as "datagroup_%07d" with the integer substitution being the writing rank.  This won't be sufficient when moving away from a single-domain/rank assumption.  The proposed new schema will use integer format substitions for both the rank and a domain ID.   The base name "datagroup" also is obsolete as it comes from the old class name DataGroup, and the new schema will probably need to allow users a way to specify what they want the tree pattern string to be, including using paths.  Either we could change the API to make the user set this string explicitly, or we could have a default that could be overridden by the user.
I don't have a specific proposal for changes right now, but this issue can be used to track and discuss what changes are needed.

@nselliott is this issue resolved and can be closed?

Closing this, as the specific issues here were addressed by the PR mentioned here or rendered obsolete by conduit's changes to the blueprint index. If a need for more changes is discovered, there should be a new issue posted.


Island vtree patching is broken, fails on subsequent global draws

Difficult to read through the computed vtree and work out exactly what went wrong but I've seen { '0' : (Subtree) } in there 🤢

Fixed as of caafa13 - just needed to use immutable Patchinko 😅


[dv] add test that does not backdoor load ROM

This adds an example ROM E2E test (the self hash test) that does not backdoor load the ROM to test the ROM has been properly integrated into the netlist.

CC: @arnonsha @msfschaffner
This is how I would implement the test that does not backdoor load the ROM. The issue with checking this into the repo is that it will fail in the open-source nightlies as there is no HW design with the baked-in ROM. We can discuss how to proceed today.

How about we check in a commented-out version of this (with a comment describing why it is commented)?
We can then add this to the closed-source regression.

That works for me! I will update.

Fixed @msfschaffner, and marked ready for review.


add callbacks.py

Unsure if we need a specific version for pytorch-lightning, or if it should be the most recent, or etc.

@jbrightuniverse  our current transversality repo is at an older lightning version, so you won't want to "lowerbound" it prematurely.  But I think the way you did it works fine since it doesn't establish a version.   Later we will want to upgrade this all.


Reducing the binary size

Hi , all ~
i am now succeed in using a cross compiled lib project call tensorflow.
now i got tensorflow run on ios , android and linux , using one same app code .
any one has any questions can ask me for help.
so my question now is turned to "Reducing the binary size".
many posts told that to config  tf_op_files.txt, but my questions are:
1. need we also config other files such as  tf_pb_text_files.txt ,  proto_text_cc_files.txt  ... for reducing?
2. is there any other thinking for reducing than configuring the txt files Exhaustive Attackly ?

I'm assuming you're talking about Android?
@andrewharp might know if there's a better procedure than culling ops by hand.

See print_selective_registration_header.py for a tool that will automatically generate a ops_to_register.h header given a GraphDef proto.
You shouldn't need to manipulate any of those other txt files.

thx for the helps from  drpngx and andrewharp !
my goal is:
1 to do prediction on ios and android,  using a trained pb file .
2 using one same c++ code to call tensorflow in ios and android
i tried  print_selective_registration_header.py
#ifndef OPS_TO_REGISTER
#define OPS_TO_REGISTER
constexpr inline bool ShouldRegisterOp(const char op[]) {
return false
|| (strcmp(op, "ArgMax") == 0)
|| (strcmp(op, "BiasAdd") == 0)
|| (strcmp(op, "Const") == 0)
|| (strcmp(op, "Conv2D") == 0)
|| (strcmp(op, "ExpandDims") == 0)
|| (strcmp(op, "Identity") == 0)
|| (strcmp(op, "MatMul") == 0)
|| (strcmp(op, "MaxPool") == 0)
|| (strcmp(op, "NoOp") == 0)
|| (strcmp(op, "Placeholder") == 0)
|| (strcmp(op, "Relu") == 0)
|| (strcmp(op, "Reshape") == 0)
|| (strcmp(op, "Squeeze") == 0)
|| (strcmp(op, "StridedSlice") == 0)
|| (strcmp(op, "_Recv") == 0)
|| (strcmp(op, "_Send") == 0)
;
}
#define SHOULD_REGISTER_OP(op) ShouldRegisterOp(op)
namespace {
  constexpr const char* skip(const char* x) {
    return (*x) ? (*x == ' ' ? skip(x + 1) : x) : x;
  }

  constexpr bool isequal(const char* x, const char* y) {
    return (*skip(x) && *skip(y))
               ? (*skip(x) == *skip(y) && isequal(skip(x) + 1, skip(y) + 1))
               : (!*skip(x) && !*skip(y));
  }

  template<int N>
  struct find_in {
    static constexpr bool f(const char* x, const char* const y[N]) {
      return isequal(x, y[0]) || find_in<N - 1>::f(x, y + 1);
    }
  };

  template<>
  struct find_in<0> {
    static constexpr bool f(const char* x, const char* const y[]) {
      return false;
    }
  };
}  // end namespace
constexpr const char* kNecessaryOpKernelClasses[] = {

"ArgMaxOp<CPUDevice, float>",
"BiasOp<CPUDevice, float>",
"ConstantOp",
"Conv2DOp<CPUDevice, float>",
"ExpandDimsOp",
"IdentityOp",
"MatMulOp<CPUDevice, float, false >",
"MaxPoolingOp<CPUDevice, float>",
"NoOp",
"PlaceholderOp",
"ReluOp<CPUDevice, float>",
"ReshapeOp",
"SqueezeOp",
"StridedSliceOp<CPUDevice, float>",
"RecvOp",
"SendOp",
};
#define SHOULD_REGISTER_OP_KERNEL(clz) (find_in<sizeof(kNecessaryOpKernelClasses) / sizeof(*kNecessaryOpKernelClasses)>::f(clz, kNecessaryOpKernelClasses))
#define SHOULD_REGISTER_OP_GRADIENT false
#endif

print_selective_registration_header.py result:
#ifndef OPS_TO_REGISTER
#define OPS_TO_REGISTER
constexpr inline bool ShouldRegisterOp(const char op[]) {
return false
|| (strcmp(op, "ArgMax") == 0)
|| (strcmp(op, "BiasAdd") == 0)
|| (strcmp(op, "Const") == 0)
|| (strcmp(op, "Conv2D") == 0)
|| (strcmp(op, "ExpandDims") == 0)
|| (strcmp(op, "Identity") == 0)
|| (strcmp(op, "MatMul") == 0)
|| (strcmp(op, "MaxPool") == 0)
|| (strcmp(op, "NoOp") == 0)
|| (strcmp(op, "Placeholder") == 0)
|| (strcmp(op, "Relu") == 0)
|| (strcmp(op, "Reshape") == 0)
|| (strcmp(op, "Squeeze") == 0)
|| (strcmp(op, "StridedSlice") == 0)
|| (strcmp(op, "_Recv") == 0)
|| (strcmp(op, "_Send") == 0)
;
}
#define SHOULD_REGISTER_OP(op) ShouldRegisterOp(op)
namespace {
  constexpr const char* skip(const char* x) {
    return (*x) ? (*x == ' ' ? skip(x + 1) : x) : x;
  }

  constexpr bool isequal(const char* x, const char* y) {
    return (*skip(x) && *skip(y))
               ? (*skip(x) == *skip(y) && isequal(skip(x) + 1, skip(y) + 1))
               : (!*skip(x) && !*skip(y));
  }

  template<int N>
  struct find_in {
    static constexpr bool f(const char* x, const char* const y[N]) {
      return isequal(x, y[0]) || find_in<N - 1>::f(x, y + 1);
    }
  };

  template<>
  struct find_in<0> {
    static constexpr bool f(const char* x, const char* const y[]) {
      return false;
    }
  };
}  // end namespace
constexpr const char* kNecessaryOpKernelClasses[] = {

"ArgMaxOp<CPUDevice, float>",
"BiasOp<CPUDevice, float>",
"ConstantOp",
"Conv2DOp<CPUDevice, float>",
"ExpandDimsOp",
"IdentityOp",
"MatMulOp<CPUDevice, float, false >",
"MaxPoolingOp<CPUDevice, float>",
"NoOp",
"PlaceholderOp",
"ReluOp<CPUDevice, float>",
"ReshapeOp",
"SqueezeOp",
"StridedSliceOp<CPUDevice, float>",
"RecvOp",
"SendOp",
};
#define SHOULD_REGISTER_OP_KERNEL(clz) (find_in<sizeof(kNecessaryOpKernelClasses) / sizeof(*kNecessaryOpKernelClasses)>::f(clz, kNecessaryOpKernelClasses))
#define SHOULD_REGISTER_OP_GRADIENT false
#endif

my  c++ code ：
int MyTensorflow::OfflineTensorFlowIsAf(deque & section)
{
Session* session;
GraphDef graph_def;
SessionOptions opts;
std::vector outputs;
std::vector y_outputs;
int i;
int sectionLen;
//    QPrint("begin:%u\n", GetSystemTime());
QPrint("1MyTensorflow::OfflineTensorFlowIsAf:pbPathFile:%s\n", pbPathFile.c_str());
if (pbPathFile == "")
{
QPrint("MyTensorflow::OfflineTensorFlowIsAf:fatal error: pbPathFile is empty\n");
return 0;
}
TF_CHECK_OK(ReadBinaryProto(Env::Default(), pbPathFile, &graph_def));

TF_CHECK_OK(NewSession(opts, &session));

TF_CHECK_OK(session->Create(graph_def));

Tensor x(DT_FLOAT, TensorShape({1, 321}));

sectionLen = section.size();

for (i = 0; i < 321; i++)
{
    if (i < sectionLen)
    {
        x.matrix<float>()(i) = section[i];
    }
    else
    {
        x.matrix<float>()(i) = 0;
    }
}

TF_CHECK_OK(session->Run({{"inputx", x}}, {"aFclass"}, {}, &y_outputs)); // Get y_out

float y_out = y_outputs[0].scalar<int>()(0);

QPrint("MyTensorflow::OfflineTensorFlowIsAf:y_out:%f,sectionLen:%d\n", y_out, sectionLen);

//    QPrint("end:%u\n", GetSystemTime());
if (0 == FloatCompares(y_out, 0))
{
    return 0;
}
else
{
    return 1;
}

}

i do reducing on linux , that's means ,  is adjust tf_op_files.txt, then build_all_linux.sh , then try my application code . until one day , there are no runtime erro.
i tried to cut tf_op_files.txt to only one line left:
tensorflow/core/kernels/ops_util.cc

and adding these ones:
tensorflow/core/kernels/argmax_op.cc
tensorflow/core/kernels/quantized_bias_add_op.cc
tensorflow/core/kernels/constant_op.cc
tensorflow/core/kernels/deep_conv2d.cc
tensorflow/core/kernels/xsmm_conv2d.cc
tensorflow/core/kernels/identity_op.cc
tensorflow/core/kernels/matmul_op.cc
tensorflow/core/kernels/maxpooling_op.cc
tensorflow/core/kernels/no_op.cc
tensorflow/core/kernels/relu_op.cc
tensorflow/core/kernels/reshape_op.cc
tensorflow/core/kernels/strided_slice_op.cc
tensorflow/core/kernels/sendrecv_ops.cc
according to
"ArgMaxOp<CPUDevice, float>",
"BiasOp<CPUDevice, float>",
"ConstantOp",
"Conv2DOp<CPUDevice, float>",
"ExpandDimsOp",
"IdentityOp",
"MatMulOp<CPUDevice, float, false >",
"MaxPoolingOp<CPUDevice, float>",
"NoOp",
"PlaceholderOp",
"ReluOp<CPUDevice, float>",
"ReshapeOp",
"SqueezeOp",
"StridedSliceOp<CPUDevice, float>",
"RecvOp",
"SendOp",

so i did not find cc file in tf_op_files.txt according to : "ExpandDimsOp", "PlaceholderOp"
so which cc files in tf_op_files.txt are according to "ExpandDimsOp", "PlaceholderOp" ?

now here is my  tf_op_files.txt , and it cannot pass the compilation.
tensorflow/core/kernels/ops_util.cc
tensorflow/core/kernels/argmax_op.cc
tensorflow/core/kernels/quantized_bias_add_op.cc
tensorflow/core/kernels/constant_op.cc
tensorflow/core/kernels/deep_conv2d.cc
tensorflow/core/kernels/xsmm_conv2d.cc
tensorflow/core/kernels/identity_op.cc
tensorflow/core/kernels/matmul_op.cc
tensorflow/core/kernels/maxpooling_op.cc
tensorflow/core/kernels/no_op.cc
tensorflow/core/kernels/relu_op.cc
tensorflow/core/kernels/reshape_op.cc
tensorflow/core/kernels/strided_slice_op.cc
tensorflow/core/kernels/sendrecv_ops.cc

seems that placeholder is in ：tensorflow/core/ops/array_ops.cc
tensorflow::ops::Placeholder
#include <array_ops.h>
A placeholder op for a value that will be fed into the computation.

it seems that "ExpandDimsOp", "PlaceholderOp" are all in tensorflow/core/ops/array_ops.cc
tensorflow::ops::ExpandDims
#include <array_ops.h>
Inserts a dimension of 1 into a tensor's shape.

struggled in getting familiar with tensor core for several nights, i finally found a way to do reducing.

use  print_selective_registration_header.py  to find files probably cannot be cut in tf_op_files.txt,
just probably , not for sure.

cut some of the files in tf_op_files.txt, if come into compile err or runtime err, restore some files.

if there is no compile err and runtime err, continue to cut files.

it's foolish, simple,  but works.

I'm not quite sure what you're trying to do, but it looks you succeeded. I'm closing this issue but if you need further help, I recommend StackOverflow.

@reedwm yes it's solved.
android:
tf_op_files.txt
ios:
tf_op_files.txt
centos:
tf_op_files.txt

The pb generating files consume lots of binary space. for example, 160.1396kb by test_log.pb.o, 144.4404kb by meta_graph.pb.o which may not be used or appropriate on a mobile device. Is there any solution to remove or replace them?
The following file is a size analysis by link map file, sorted by size.
text_section_size.txt


validationSchema prop for Field

🚀 Feature request
Add the ability to use validationSchema as a prop for <Field /> and useField(). This would make some forms of conditional validation easier, such as when a piece of a form is visible only if a previous option was selected. This ties validations to currently rendered content, which can be helpful sometimes.
Current Behavior
At the field level I'm able to add a custom validationSchema through the validate callback, but I'm curious if this should be baked into formik 🤔
Desired Behavior
<TextField
  required
  validationSchema={Yup.string()
    .required('Email is required')
    .email('Invalid email address')}
  name="email"
  type="email"
  label="Email"
/>

I do not think this should be baked into Formik. I do however, think it would be great to move Formik.validationSchema to a package like formik-yup, and that package could create a custom <YupField which binds this functionality to Formik's Field.


feat: use proxy instead of port forwards

Overview
This pull request removes the need for port-forwarding. Instead, it facilitates the reverse proxy that is available in the scope.
I will comment in code to explain the changes.
@staheri14 Feel free to merge this as well to your branch

This PR now uses the release v0.14.0, and all conflicts are resolved.
Feel free to merge this PR.

When running MinorVersionCompatibility I get the following error:
test-e2e2024/06/06 09:32:09 --- ERROR MinorVersionCompatibility: expected context.Canceled error, got: no suitable master account found

@staheri14 can you help me fix this? It's the first time I've seen this issue. and I'm not sure what broke the test.

When running MinorVersionCompatibility I get the following error:
test-e2e2024/06/06 09:32:09 --- ERROR MinorVersionCompatibility: expected context.Canceled error, got: no suitable master account found

@staheri14 can you help me fix this? It's the first time I've seen this issue. and I'm not sure what broke the test.

As the first step, mind merging the main branch into your branch?

@smuu do you mind fixing the linting issues here and then I will give the PR another pass

Some update: I have been running the MinorVersionCompatibility test,  and debugging. Though, there is an issue which slows down the debugging process and that is  when I attempt a second run of the test immediately after the first one finishes, I consistently get this error:
failed to create testnet: cannot initialize knuu: cannot deploy Traefik: error creating Traefik deployment: deployments.apps "traefik-deployment" already exists exit status 1

This error persists for some time, and then at some random point in time it does not show up. I also tried deleting replica sets and pods using the appropriate command in my knuu namespace (as the result of which I am prompted with replicaset.apps "traefik-deployment-5b896584fd" deleted, but even after this, the error still doesn't go away. Is this a known issue, or is there a way to resolve it?

Some update: I have been running the MinorVersionCompatibility test, and debugging. Though, there is an issue which slows down the debugging process and that is when I attempt a second run of the test immediately after the first one finishes, I consistently get this error:
failed to create testnet: cannot initialize knuu: cannot deploy Traefik: error creating Traefik deployment: deployments.apps "traefik-deployment" already exists exit status 1

This error persists for some time, and then at some random point in time it does not show up. I also tried deleting replica sets and pods using the appropriate command in my knuu namespace (as the result of which I am prompted with replicaset.apps "traefik-deployment-5b896584fd" deleted), but even after this, the error still doesn't go away. Is this a known issue, or is there a way to resolve it?

It probably resuses a namespace. try to generate a new psudo random namespace for each test run.

@smuu I furthered my debugging and here are some more updates which better illustrates the cause of the test failure:

The error is not specific to the MinorVersionCompatibility, it also happens for E2ESimple, and perhaps for other tests as well.
The issue is with the grpc address from which the txsim attempts to query the accounts balance i.e., this line. The error, given below, indicates that the address has an incorrect format, i.e., there is an excess port number :443 at the end of it http://<IP_ADDRESS>:80/val0-3410e0a4-9090:443.
Full log:

{"level":"error","error":"error getting balance for celestia1p604nkecpkuc3afm5lmrl6rrmzc3ruhr6f2nr9: failed to exit idle mode: invalid target address http://<IP_ADDRESS>:80/val0-3410e0a4-9090, error info: address http://<IP_ADDRESS>:80/val0-3410e0a4-9090:443: too many colons in address","account":"alice","time":"2024-06-11T15:56:44-07:00","message":"error getting initial account balance"}

To see the logs of txsim you need to remove the SuppressLogs()  from the txsim options  i.e., opts := txsim.DefaultOptions().WithSeed(seed)

When running MinorVersionCompatibility I get the following error:
test-e2e2024/06/06 09:32:09 --- ERROR MinorVersionCompatibility: expected context.Canceled error, got: no suitable master account found

@staheri14 can you help me fix this? It's the first time I've seen this issue. and I'm not sure what broke the test.

I also get this error. I'm looking into it

It seems like the grpc library appends the port :443

@smuu is it possible that knuu doesn't add a path to the grpc url like:
http://<IP_ADDRESS>:80/val0-f50d1ae0-9090

and has something similar to how it was originally:
<IP_ADDRESS>:52845

Txsim is now deployed as an instance.
As gRPC is currently not possible via the reverse proxy, I disabled it -> @evan-forbes. We need to create follow-up issues for that.
All tests are passing now on my end.

As gRPC is currently not possible via the reverse proxy, I disabled it -> @evan-forbes. We need to create follow-up issues for that.

This just means that all assertions on the network have to be done using RPC right?

  Do you mind updating them @smuu and then updating the branch? 🙏

@cmwaters This would mean a major rewrite of your usage of knuu. We paused that for now, as the repo has so many PRs open that is touching the e2e tests.
Using the new structure would blow this PR.
I propose to ignore the deprecation warning in this PR, get all the knuu-related PRs merged, and then create a PR to move to the new structure.

Okay, I will disable staticcheck on these files for now

@evan-forbes will the local machine running the tests ever need access to a nodes grpc? (Can't we use rpc or grpc gateway instead)

Thanks @smuu! I ran all the e2e tests and confirm that they work:
* E2ESimple ✅

* MinorVersionCompatibility ✅

* MajorUpgradeToV2 ✅

The only concern I have is that I keep requiring creating a new namespace for each test (as suggested by @mojtaba-esk in this comment) due to this error
2024/06/17 12:20:09 failed to create testnet: cannot initialize knuu: cannot deploy Traefik: error creating Traefik deployment: deployments.apps "traefik-deployment" already exists

Could it be related to the changes introduced in this PR? Does it also happen to other reviewers?

@staheri14 How are you running the tests?
It's the default now for knuu to have a namespace per test run.

@smuu can we link any issues to re-enable reverse proxy (or whatever mechanism enables us to access grpc via the node assessing the tests) for posterity?
thanks!

To my understanding out reverse proxy can proxy gRPC connections.
The issue I see is the gRPC client as it appends the port 443 even though we already have a port and a path assigned. (Ref.: https://github.com/celestiaorg/celestia-app/pull/3505#issuecomment-2162664190) Your RPC client is handling it as I would expect.
So in my view, we would need to create an issue in celestia-app repo to fix that.

@evan-forbes @cmwaters, as I don't have permission to merge, feel free to merge this when you feel the PR is ready.

Created this issue: https://github.com/celestiaorg/celestia-app/issues/3580

@staheri14, I'm also seeing the namespace problem appear in our CI tests:
test-e2e2024/06/18 13:12:01 === RUN MinorVersionCompatibility
time="2024-06-18T13:12:01Z" level=info msg="Initializing knuu with scope: runMinorVersionCompatibility_20240618_131201"
time="2024-06-18T13:12:01Z" level=info msg="The .env file does not exist, continuing without loading environment variables."
test-e2e2024/06/18 13:12:01 Running minor version compatibility test versions v1.0.0	v1.1.0	v1.10.0	v1.10.1	v1.11.0	v1.2.0	v1.3.0	v1.4.0	v1.5.0	v1.6.0	v1.7.0	v1.8.0	v1.9.0	v2.0.0-rc0	v2.0.0-rc1
time="2024-06-18T13:12:01Z" level=info msg="LOG_LEVEL: info" file="knuu/knuu.go:264"
2024/06/18 13:22:01 failed to create testnet: cannot initialize knuu: cannot deploy Traefik: waiting for deployment traefik-deployment to be ready

Going to create an issue.


Allow specifying exec_time_optimization_effort and memory_fitting_effort via CLI.

New compiler options (see title) have recently been exposed in JAX.
To use them users have to change their Python code like this:
jax.jit(f, compiler_options={
  "exec_time_optimization_effort": 0.5, # change here
 })

It would be very convenient to not modify the code but rely on CLI instead. For example:
JAX_EXEC_TIME_OPTIMIZATION_EFFORT=0.5 python3 jax_program.py

Fixed by #25114 !


Clarify the goals of devos

I'm not really in a position to write the following as I'm not really part of the devos community, but maybe it's an interesting opinion of someone who has toyed with the idea of using devos but currently finds it too complex and thinks it is currently inconsistent with its own claims.
Current Behavior

The github About section describes devos as a NixOS framework.
The readme says

we should have a community consensus on how to manage a NixOS system.

Both is not the case, and devos is probably diverging from both.

First, I claim that
devos is too opinionated and not opinionated enough
e.g. adblocking is a default network feature, starship is in the core profile, or
https://github.com/divnix/devos/blob/9dcc3c17aa474ba2eba7ea5be5c69e417b2c8ebc/profiles/graphical/sway/default.nix#L65-L68
and
https://github.com/divnix/devos/blob/9dcc3c17aa474ba2eba7ea5be5c69e417b2c8ebc/profiles/graphical/games/default.nix#L10
Also, e.g. some xmonad user is probably not buntish enough to use any config but might want another userland than alacritty+dzen2+qutebrowser.
At the same time the profiles/suites don't configure whole desktops like Fedora spins, so that you cannot just say “give me a default lxde desktop”.
You get too specific and inflexible defaults for a framework and are not simply ready-to-goto with some NixOS flavor (my ad-hoc term). Both target people I imagine are missed. I imagine people who want to understand and tweak and people who want to simply use a complete solution.
Second, I think
devos is too complex and complicated
to be remotely understandable by anyone not very familiar with nixpkgs. If something shall be a community standard, it must necessarily be suitable for newcomers. I don't use devos partly because it's too complicated. It tries to be too smart. There is automatic import of directories, spread of similar concepts across many directories, like profiles, suites, externs, users, user profiles and overlays, packages, overrides. It is also not really consistent at this: Why get suites passed to modules while profiles don't (or do they)? How do I compose modules and suites from multiple flakes?
Maybe devos is in the danger of becoming the spacemacs of NixOS.
Possible Solution
I think devos should clarify goals: Shall it

be a certain flavor of NixOS with cool stuff to reduce boilerplate for power-users?
or be a very smart blackbox SpaceNixOS/Nixbuntu which infers what the user would probably like ahead-of-time, but if the user wants to change one of the default assumptions it gets very hard?
or be a structure for NixOS configurations so that as a user I only have to think about what/how to configure and not how to organize it to be sustainable, but I can bend everything as I like easily?
solve specific pain points of setting up NixOS (e.g. secrets management)?
be rather a template or a library or both?
be/do something else?
be a combination of these?

(1.) and (2.) cannot be anything like a community consensus on how to manage a NixOS system and (2.) is no framework.
Edit: (2.) would need really thorough documentation to be usable. I didn't find in the docs e.g. how to use profiles or suites.
I'd propose
though I'm not really in a position to propose:
If a community consensus is a goal, look at what the marketing team is doing/maybe coordinate with them a bit.
Indendently, I'd propose number (3.), the vision being that people are not overwhelmed by many config examples but have a more general one.
Therefore I'd suggest profiles/suites some of which are very generic and maybe some of which are very specific like relatively complete example configs.
Similar concepts should be streamlined and only the directories with really have distict meaning be kept:

example: (profiles, suites, externs, users, user profiles) could be reduced to regular config attributes (profiles, suites (for convenience), inputs (for flake inputs or nixosModules from flake inputs) and users (not sure how to organize both NixOS and home-manager)) all available in the same way as config attributes. Either everyone of them is enabled by importing, or by an enable switch.
example: (overlays, packages, overrides) can be reduced to overlays, and one overlay defined in flake.nix adds the attribute inputs providing packages or overlays form flake inputs.

This would have the nice side effect that profiles, suites and users could simply be exported by the flake as modules and the modules would be usable in configurations not providing specialArgs to nixosSystem.
Things should be rather explicit so that one understands what's going on, at the expense of some repeated patterns. One cannot understand the structure of the config if one doesn't understand how things are imported and composed. Also, for people to understand, a collection of all the smartest technologies (Nix, NixOS, home-manager, depoly-rs, dhall, git-annex, nuclear fusion) is hard to understand and should, in my opinion, not be a prerequisite to using and modifying your OS config. I'd love to have more typed stuff in Nix, and compared to Dhall the typing in NixOS modules feels a bit improvised, but as long as Nixpkgs use Nix lang, are e.g. the gains big enough to justify that people shall learn Dhall?
When people asked me for my home-manager config as an example, I realized that they wouldn't really understand what's going on because I used too much auto-import magic (recursively import dirs, only default.nix if exists or everything otherwise, remove double typing by generating attrsets { ${basename path} = callPackage path {}; ... }. Probably, there is already (more than?) enough magic to start in NixOS modules and Nixpkgs fixed-points and two kins of overrides.
Flakes are fine if the goal is to be a reference not right now but for early adopters or when flakes are stable.

Thanks for opening this. I was going to open up an issue similar to this, because while the goal is a community consensus, I don't feel like we have gotten enough feedback to actually acheive that goal just yet. We can use this thread for anyone to clarify their pain points.
The directory layout has been a personal pain point for me. I haven't really been perfectly satisfied with it from the beginning, but then, that's why I wanted to encourage feedback like this. Whatever the finally directory structure looks like (and I like your suggestions) it will definitely be a lot simpler than it is now.
A lot of your complaints are coming from the community branch, which is a bit of a misnomer at this point, since there hasn't been a single community contribution to that branch. It's really just some profiles I've used. It definitely needs to be fleshed out, and possibly completely overhauled (possibly namespaced). The point of it was to levarage the experience of the wider community for various concerns. This unfortunately hasn't even started yet.
The main focus right now, is to move toward a 1.0 #121 release where we address all the community gripes and reduce the complexity as much as possible. This project has really just been a huge experiment from day one. Some really cool ideas have come from the community, for example #93
I think, if we can continue to get quality contributions like this, we will acheive our goal. I never wanted to do this alone, as I know I am not smart enough to decide what's good for everybody else :smile:
That said, I think, perhaps the name of this issue could be changed, because your complaints seem to target the implementation, not really the goal. The goal is simply stated in the readme. We should have a community consensus. We do not claim to have gotten their yet though, which is the reason for the big warning right at the top.
Also, you said you haven't found any docs on suites or profiles? But the README.md is right in the respective directories, and their is also the rendered mdbook guide. Was it that the docs aren't clear enough or have you not seen these yet? In terms of documentation, I'm trying to make that better, and I have a secret project, I'll be releasing, (hopefully fairly soon) to make that a lot easier.
If there is one goal I wish to personally reiterate, it's that we need to reduce the complexity a whole bunch before we get to 1.0, or at least hide it from the user. I won't tag a 1.0 unless and until we reach this goal.
As an aside, I have struggled with what to put in the github about section, so if you have a good suggestion, please do share.

Re: folder magic
I think it is helpful to have some magic here to make everyday usage easier (even at the expense that it is not always that plain and self-documenting).
Once the project matures, I think an even higher level inteeface to "nixos done with flakes" might be extracted into numtide/flake-utils in order to provide an even more generally accepted foundation (not only for devos).
If so, the value added of this project can be a "specific layout with magic" with a roughly consistent use case in mind.

@nrdxp Thank you very much for your friendly reply which clarifies already that it's the implementation and not the goals that are inconsistent with the readme.

On Documentation

Also, you said you haven't found any docs on suites or profiles? But the README.md is right in the respective directories, and their is also the rendered mdbook guide. Was it that the docs aren't clear enough or have you not seen these yet? In terms of documentation, I'm trying to make that better, and I have a secret project I'll be releasing (hopefully soon) to make that a lot easier.
I found the readmes, and you're right that usage of suites is documented there while usage of profiles isn't. As everything else here seems to be wired together in Nix it seems a bit odd that one should include profiles by path, but this is the case, currently, isn't it? (maybe has to do with #127; note that anonymous modules (not by path) cannot be disabled via disabledModules at the moment: NixOS/nixpkgs#114131) I rather expected some wiring and missed documentation about it.

I didn't know about nixdoc, I was about to reimplement it. Actually I was almost done 😛. Of course, if it fits the bill, I'd rather not suffer from nih.
The profile docs are under the profile section. In general, the docbook guide is rendered from each README.md file in each subdirectory, explaining that directory. That way, you can read the docs directly on github, or from the website.
Also, profiles aren't meant to be general. Although they are meant to be reusable. So for example, the gps coordinates you showed should definitely be removed. But profiles are where the abstraction ends and the idiosyncrasies begin. There is nothing stopping you from having more than 1 xmonad profile, for example. I don't want anyone to have to sacrifice their preffered setup by trying to overgeneralize it. Much better to setup things the way you want, and if someone else wants to offer an alternative config, please do.
I've been thinking about namespacing profiles to make this more clear. So instead of profiles/develop, it could be profiles/nrdxp/develop.

Made a slight improvement to profile docs in #139

Also, profiles aren't meant to be general

Please suggest (or just set if you can) a better title if you see the need.
What's the relation to the NUR, if the profiles are personal settings which are to be shared? Sharing personal packages, modules, overlays etc. overlaps with the purpose of the NUR. I'd see two reasons to keep this and NUR separate:

NUR file structure might be incompatible with devos' needs/ideas. One might be that the NUR api is smaller than the flake api.
Personal clones of devos might be more for private stuff. But then they are not to be shared and the profiles should be generic.

Benefit of NUR:

It is established.
It is namespaced by user.
It has a global packages search.
No PR workflow (workload) for updating your own stuff, but auto updates if the tests succeed (which means, i think, that the repo evaluates).

Being part of NUR could mean that this would be a template both for NUR and a NixOS flake, and users would be encouraged to put their stuff not into a community branch of a central devos repo but into the NUR.

Honestly, I've never even tried to use NUR, so I can't answer this question very well. Perhaps someone with more experience on that front can chime in. I didn't realize one could provide NixOS modules in NUR. I guess I figured NUR was just for packages. It is possible that you are right and NUR would be a better solution than community.
As it is now, you can search community packages as well like so nix search "github:nrdxp/devos/community" SEARCHTERM. Users can also easily make a profile that imports whatever they want from NUR.
Off the top of my head, an argument for not using NUR for profiles would be to keep everything in one place, similar to the monorepo philosophy of nixpkgs.

I didn't realize one could provide NixOS modules in NUR.

In principle you can expose everything over the NUR, while there are conventions for packages, NixOS modules, overlays and library functions. Home-modules are not standardized, even if hmModules seems common (issue).

keep everything in one place

Why? In Nixpkgs it's for consistency and maintainability. Profiles aren't meant to be consistent, are they?

Additionally, I'm not sure if NUR can/will ever become a flakes first approach.

There you've got a point, but I'm pretty sure it won't before flakes are officially stable. Also, the relation between NUR and https://github.com/NixOS/flake-registry is not clear to me. A benefit of the NUR is that it only contains commits which passed the central CI tests.
I think it would probably be easy to have a valid flakified NUR repo based on flake-compat. The least intrusive would probably be: Structure devos as we like, and add a nur directory which provides a NUR adapter via flake-compat. I'm not sure whether this is only the default.nix or if the ci.nix is also needed.

I feel the urged to ask critically: has the NUR a goal of being forward-compatible in all respect with the flake's decentralized (once evolved) sharing model?
If that is the case, my reasoning is that NUR should be(come) naturally compatible with all things flake, hence devos, by virtue of the (conpletely standardized) flake.nix interface.
I think in the power-relation theater of repositories, flake should be regarded as the "upstream" and devos as well as NUR as "downstreams".
Sure, why not build a bridge in the meantime? Would have NUR a bridgehead already built?

@jrson, your input has inspired the following: nix-community/NUR#331, which may offer a cleaner interface to NUR for flake users, while also opening up a pathway for exporting some of your ideas from here to NUR.

I feel the urged to ask critically: has the NUR a goal of being forward-compatible in all respect with the flake's decentralized (once evolved) sharing model?

Let's see how Mic92 reacts in the issue opened by nrdxp and possibly start a discourse thread about this issue later.

Cross-posting from the NUR issue:

Here is an example of how you can flakify your NUR already somehow: https://github.com/jorsn/nur-packages/tree/flake
Somehow, because it tries to access urls (flake inputs) and therefore doesn't pass the CI checks, at least for non-flake nix + flake-compat + restrict-eval = true.

I think namespacing would give some pretty good mileage for the sharing model, inspired by flake-utils/simpleFlake


Automatic selection of README.md file when entering a folder is crude

Description
Automatically selection of README.md when a folder is opened is a very crude implementation. The intent of selecting a folder is lost cos of this. Things start to break very quickly when working with columns layout with preview pane enabled.
Steps To Reproduce

Selected a folder I wanted to delete, and it selected the README.md inside of it.
Press delete and it will delete the README.md instead of folder.

Requirements
The folder I selected should be selected and it should not select any other file or folder.
Files Version
<IP_ADDRESS>
Windows Version
10.0.22621.1848
Log File
N/A

Maybe having a toggle in settings to disable this functionality altogether would be helpful.
Also Why not show README.md content when a folder is selected and not alter user's selection? I'm not aware of the architecture of this project so not sure if it can be done but it seems to be a better implementation.

I have the same problem too. When I open a folder containing a README.md file and my preview pane is open, it automatically selects itself, and it's a bit annoying.

I'm happy to remove this feature if it's not useful. It was originally introduced before we had the column layout.


Adding a way to map boost symbols to their reference page

cppreference.com has some nice ways to map, lets say, std::vector to their doc pages. You have a symbol table and their old search engine. Both make it quite convenient to learn about a symbol youre seeing somewhere (not just as a human, but also for programs/web scrapers). Making it possible for bots to find a symbol and link against their documentation is a huge benefit for beginners that never really got into boost.

I was able to move it, thanks

@Narase33 do you have a reference of how the process works for cppreference? We might want to replicate some of it or at least use it in an antora extension to generate links to cppreference ourselves.

Unfortunately not, Im just an enduser

That's kind of my question. What does this process look like for an enduser?


Add support for this.register and the new this.owner.register

Closes #12
Add support for this.register and the new this.owner.register.

@simonihmig I finally figured out a solution that works. It's more verbose than I would like, but works for now. I closed #12 in favor of this.

Hmm, this seems to not work for 1.13. Not sure if we really care or not, and not sure if the issue is with this or with the new qunit stuff.

Hmm, this seems to not work for 1.13.

I personally would not care, and just support 2.x. This oldest version that is being tested in this addon is 2.8 currently, though I assume it should work with older 2.x releases as well...

Thanks @rwwagner90!

You're welcome @simonihmig! Any chance you could add me as a collaborator and/or release a new version?

Any chance you could add me as a collaborator and/or release a new version?

Glad to, just done that! Welcome @rwwagner90! ;) Released as 0.1.2

Thanks!


#23289 Fix Restore Defaults button for Client Identification preference page

Restore Defaults button should work now.

verified


Bulk Serializer work with HyperLinkedModelSerializer('url')

Greetings,
I liked the framework and have been using it, but wondering if the framework supports HyperLinkedModelSerializer fields when doing an update.
I went ahead and made some changes to get this to work, but wondering if it is already supported.
thanks
vjnt

Unfortunately no. Currently only simple integer id field is supported. If you already got it working, PR would be welcome!

I'm using this with HyperlinkedModelSerializer and so far it seems to be working fine... is there something I'm missing?


Return json body with readable message on getting NACHA return code instead of returning only Http status code

Imagine there is error regarding to receiver account is closed, what message is the best for users.

@chanhengseang3 This was documented wrong. In the "200 OK" state PayGate returns []ach.File where the ach.ReturnCode objects are populated: https://godoc.org/github.com/moov-io/ach#File.ReturnEntries

@chanhengseang3
Are you using github.com/moov-io/paygate/client? Running go get github.com/moov-io/paygate/client@master would pull in this change.
I can update github.com/moov-io/go-client/client with these changes if needed.

@adamdecaf  ok, thanks.

@chanhengseang3 Did you need go-client updated?


Solver dashboard

Adds all the queries from 2 dune solver dashboards:
Solver Info
Competition Monitoring
The first dashboards has the following 10 queries. The first 5 have been updated and adapted to fit every chain. "Solver_rewards_total" has yet to be revised but that is more complex and being tackled. The 4 last ones are not relevant for now, awaiting the new tables on dune (batch and trades) for other chains.
active_solvers
batch_settlement_info
daily_solver_stats
ranked_active_solvers
solver_failure_rates_by_env
solver_rewards_total: yet to be revised
cost_coverage_by_solver_environment: no longer useful as there are no more fees
cost_coverage_production_solver: no longer useful as there are no more fees
cow_rewards_total: up to date, ready to be extended to other chains
solver_yields: not useful
The second has the 2 following. No modification from the dashboard were added.
number_capped_reward_batches
protocol_weekly_rewards
There is an issue with sqlfluff for linting, as it does not process correcty the parameters from dune sql

@PoloX2021 Could you add a brief description/documentation at the very beginning of each query?

@PoloX2021 Regarding the queries that are not useful anymore. I would suggest we either delete them right away, but removing the sql code and adding a comment at the top saying "NOT RELEVANT ANYMORE" or something like that, or open an issue right away to delete them in a follow-up PR

@PoloX2021 Very nice work! Added a few more comments but overall looks very good!

@PoloX2021 Did some minor edits and fixes. Could you fix the renaming issues so that we merge this?


Optimize environment variable naming to use uppercase letters.

According to the common convention, environment variables are typically named using uppercase letters. While the case of environment variables does not affect actual usage, adhering to the convention improves readability and aligns the code with standard practices.
References:
Environment Variable Definition

@kai8406 Long time no see. Your suggestion makes sense. Will u open a PR for this issue?


Evalute clustering results but doesn't get ideal scores

What I met a problem is I do time-series clustering, and I found the clustering evaluation isn't ideal.
>>> a # It's a time-series array with 10 time intervals.
array([[  0,   0, 100,   0,   0,   0,   0,   0,   0,   0],
       [100,   0,   0,   0,   0,   0,   0,   0,   0,   0],
       [  0,   0,   0,   0,   0,   0,   0,   0, 100,   0]])

>>> labels_ideal
[1, 1, 0]
>>> labels_wrong
[1, 0, 1]

In this array, arr[0] and arr[1] should be the same group. Then I want to check it by evaluating is with tslearn.silhouette_score:
>>> import tslearn.clustering as tsclu
>>> tsclu.silhouette_score(a, labels_ideal)
-0.3333333333333333  <--(1)
>>> tsclu.silhouette_score(a, labels_wrong)
0.6666666666666666   <--(2)

score (1) < (2)
What I thought is labels_ideal is what ideal, but its score is lower than (2)
Do I misunderstand something?

The results are good because the default metric is Dynamic Time Warping (DTW). The DTW score between the first and third time series is 0, while the DTW score between the second and the first (and third) time series is positive. It may sound counter-intuitive, but having a different value for the first or last index will lead to a positive cost in DTW.
I think that you should find a metric that is more suited for your definition of 'close' and 'far' time series. Maybe DTW with a global constraint (see the documentation of dtw) or something else (that would be based on the indices if I had to guess).
I hope that this helps you a bit!


The webhook should ignore the namespace where it's deployed

We usually deploy the operator in the openshift-multiarch-operator namespace, that is already covered by the rule excluding namespaces with the openshift- prefix. This commit adds a further check in case users decide to change the default namespace for the deployment.

/lgtm

/lgtm


ci: run functional tests on frost module

Configuration:

Without coverage:
./configure \
    SECP_CFLAGS="-Werror" \
    --enable-tests \
    --disable-exhaustive-tests \
    --disable-benchmark \
    --disable-coverage \
    --enable-experimental \
    --enable-module-frost

With coverage -Werror has to be disabled:
./configure \
    SECP_CFLAGS="" \
    --enable-tests \
    --disable-exhaustive-tests \
    --disable-benchmark \
    --enable-coverage \
    --enable-experimental \
    --enable-module-frost

GCC 13, fedora 38.

v2:

unified the tests in a single workflow and a single job
we keep the same container state (build dependencies, autogen execution, code checkout)
definitely less yaml soup duplication (but we have a thicker soup anyway :smile:)
the two test versions are executed sequentially as two steps of the same job, ignoring their failure status
at the end, if either step has failed, the job is failed and a summary is generated
cons: we loose jobs parallelizability


Registry tool: Fix the workaround in aip-linter

Currently, the registry compute lint ... --linter=aip command, implements a workaround where it is cloning two repositories https://github.com/googleapis/api-common-protos
https://github.com/googleapis/googleapis
Investigate how the linter executes, and evaluate the need for git clone commands.

This was fixed by #728, which uploads "fully-resolved" protobuf specs that have no external dependencies.


[Bug?]: tabs keydown is taking over document

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
On the docs site - in the playgrounds, when you put the cursor in a text input and try to arrow left/right, it is hijacked to the tabs on the page
Expected behavior 🤔
The tabs should only trigger the keydown if the tab component is focused
Steps to reproduce 🕹
Steps:

Go to docs site > components > Select > dev tab
Focus into any text input
Arrow left/right
🛑  SEE THAT THE TABS TAKE OVER THE FOCUS

Context 🔦
No response
Your environment 🌎
No response

closing. Fixed in v0.14


Move rxdart tests into separate files

Moves rxdart-specific tests into separate files. This makes it easier to exclude these tests from the test suite in environments that don't support rxdart.

@simolus3 I'm not especially familiar with Github's CI – do you have any idea why the drift analyze check (dart analyze --fatal-infos --fatal-warnings) is failing? This PR doesn't change the files it mentions, and the check passes locally.


Enable usage of selectrum-active-p to stop updates

Usually the hook won't run when selectrum-active-p is nil but it is an extra guard and also make it easy to skip the hook entirely by selectrum-set-selected-candidate and other code which wants to stop automatic updates of selectrum.

Out of curiosity, why set selectrum--active-p to nil rather than setting some other variable? At first glance, it seems confusing to me since I thought that variable corresponded to whether a Selectrum session was running at all, rather than whether it needed an update.

Thanks, I agree with you and I also had the concern that this is abusing the real intend of selectrum-active-p. It's better to introduce another variable.

That does indeed seem like it's better. I will note that the behavior achieved using this variable is different than the behavior achieved using the previous strategy of setting the saved input string, namely you have to set selectrum--skip-updates-p on every command indefinitely in order to permanently suppress an update. Whereas setting the saved input string would permanently suppress the update that would have happened on that command.

namely you have to set selectrum--skip-updates-p on every command indefinitely in order to permanently suppress an update. Whereas setting the saved input string would permanently suppress the update that would have happened on that command.

I think you meant the other way around? The input would be updated when you change it and computations of candidates would continue but selectrum--skip-updates-p stays t until you leave the session. This behaviour can be useful for some applications.

Thanks for the review!


Add Mapped Gene to the information available via the GWAS Catalog API

Background
In the GWAS Catalog we store both the Reported Gene (any gene that an author mentions as being related to the SNP-trait association in question in the original publication, using whichever methodology they may choose to use) and the Mapped Gene (the nearest gene or genes to the SNP in question as mapped using the Ensembl mapping pipeline, which is based on simple physical proximity on the chromosome). These are often, but not always the same. Every association in the Catalog has a Mapped Gene. On the other hand, when an author does not mention any relevant genes for an association, then the Reported Gene = NR (not reported).
Issue
In the UI we display only the Mapped Gene. But in the API, it is currently only possible to find the Reported Gene (authorReportedGenes). This causes discrepancies between gene lists that a user may extract from the UI vs the API.
Task
Add Mapped Gene to the information available via the GWAS Catalog API.

Additionally, I think we should provide a dedicated gene endpoint to the API to enable users to simply retrieve the same data that they can from the UI gene pages.


Usage of implicit broadcast receivers in Android Oreo

According to Android documentation usage of Manifest's implicit broadcast receivers is deprecated in Android Oreo https://developer.android.com/about/versions/oreo/android-8.0-migration.html#rbr
Do you have plan to reimplement/update documentation of https://mixpanel.com/help/reference/android#referrer_tracking and https://mixpanel.com/help/reference/android-push-notifications ?

Hi @maszin - Thanks for writing in! Notice that both receivers handle implicit broadcast messages. Push notifications intents are only sent to the receiver app and com.android.vending.INSTALL_REFERRER is only sent to the app (on the contrary, ACTION_PACKAGE_ADDED is an explicit broadcast message).


Sinhala translation of getting started guide

Sinhala translation of getting started guide
referencing #1

@pavinduLakshan Yes, I'll look into that earlier as possible


Expose shake-to-show dev menu setting via the bridge

Summary: Apps commonly provide their own rage-shake menus or behaviors, including in dev builds where the dev menu is enabled on shake. Rather than try to override these settings via native code, it can be helpful to let the app define when to show the menu via the bridge.
See recent discussion in https://github.com/facebook/react-native/issues/1054
Test Plan: Add the following code to UIExplorerApp.ios.js componentDidMount:
NativeModules.DevSettings.setIsShakeToShowDevMenuEnabled(false);

And then rage shake the device (or simulator). Ensure that the menu no longer appears on shake.
Other tests:

Ensure simulator Command-D shortcut still functions on simulator with setting enabled.
Ensure calling NativeModules.DevMenu.show() still functions with setting enabled.
Ensure calling the method with false and then true reverts the setting back to the original state.

Note that these settings are stored in user defaults, so setting this to false and then removing the code will not re-enable the menu; a subsequent call with true must occur.

Can you please sign the CLA so I can pull this in?

I tried the CLA form, but it seemed to fatal for me, so I emailed<EMAIL_ADDRESS>Waiting on response there.

@wschurman what about android?

@brunolemos - As far as I know the dev settings module was only written for iOS, so these settings don't exist on android.

@wschurman , @brunolemos , @javache : Is there any news about the method, setIsShakeToShowDevMenuEnabled on android?
I found the following module: https://github.com/jhen0409/react-native-devsettings-android
but it does not support the method.
Any possible solution?

@wschurman @Angelk90
Is there any news about the method: setIsShakeToShowDevMenuEnabled on android?

@Angelk90 @blogdaren - I've been away from this for a while, but digging back in it looks like there is still only a dev settings module for iOS checked in. The android dev settings seem to be a bit more scattered throughout the codebase, but not too bad and can probably be refactored to make devSettings a module on both platforms. Unfortunately I don't have the cycles to tackle this at the moment.
There are a couple routes to getting this working, but it boils down to:

Modify or refactor DevSupportManagerImpl, which handles the shake event, to allow enabling or disabling the shake behavior.
Add a devSettings module in RN or update https://github.com/jhen0409/react-native-devsettings-android/ to toggle the new flag added.

I believe RN uses canny for feature requests now, so feel free to add it there as well: https://react-native.canny.io/feature-requests/

I still cannot stop menu from appearing on my iPhone by calling NativeModules.DevSettings.setIsShakeToShowDevMenuEnabled(false) in componentDidMount

Although this stops the menu from showing up, the Swizzle still happens which stops any other shake gesture recognizers setup in an App from working.