Undefined behaviour detected by Miri

Given that the state of the art for automatically detecting problems with unsafe has progressed since I opened bug #26, I decided to do a cursory run of MIRIFLAGS="-Zmiri-disable-isolation" cargo +nightly miri test on Sailfish... and the result wasn't good.
test read_config ... error: Undefined Behavior: type validation failed: encountered uninitialized bytes at .<enum-tag>, but expected a valid enum tag
   --> /home/ssokolow/.cargo/registry/src/github.com-1ecc6299db9ec823/linked-hash-map-0.5.3/src/lib.rs:114:16
    |
114 |     let Node { key, value, .. } = *Box::from_raw(the_box);
    |                ^^^ type validation failed: encountered uninitialized bytes at .<enum-tag>, but expected a valid enum tag
    |
    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information

    = note: inside `linked_hash_map::drop_empty_node::<yaml_rust::yaml::Yaml, yaml_rust::yaml::Yaml>` at /home/ssokolow/.cargo/registry/src/github.com-1ecc6299db9ec823/linked-hash-map-0.5.3/src/lib.rs:114:16
    = note: inside `<linked_hash_map::LinkedHashMap<yaml_rust::yaml::Yaml, yaml_rust::yaml::Yaml> as std::iter::IntoIterator>::into_iter` at /home/ssokolow/.cargo/registry/src/github.com-1ecc6299db9ec823/linked-hash-map-0.5.3/src/lib.rs:1134:22
    = note: inside `sailfish_compiler::config::imp::ConfigFile::visit_global` at /home/ssokolow/tmp/sailfish/sailfish-compiler/src/config.rs:115:27
    = note: inside `sailfish_compiler::config::imp::ConfigFile::read_from_file` at /home/ssokolow/tmp/sailfish/sailfish-compiler/src/config.rs:104:17
    = note: inside `sailfish_compiler::config::imp::<impl sailfish_compiler::Config>::search_file_and_read` at /home/ssokolow/tmp/sailfish/sailfish-compiler/src/config.rs:48:25

(miri 0.1.0 (2065b52 2020-12-11), run against 1128fda3d327307bd414b3cbc7d4af1fa668f91f)
If you're not familiar with Miri, it's the compile-time execution engine used for Rust's const fns, adapted to work like LLVM's sanitizers or Valgrind but for undefined behaviour.
After fixing that, I strongly recommend making sure you have all your uses of unsafe exercised by tests and then re-running Miri. It can't catch everything, but it's something I'd now consider essential for use of unsafe.
The Miri README also has instructions for running it as part of your CI testing.

@ssokolow Thanks for your investigation.
It is sailfish-compiler crate that depends on linked-hash-map crate. sailfish crate does not depends on it (although sailfish indirectly depends on sailfish-macros which depends on sailfish-compiler, sailfish just re-exports the derived macros defined in sailfish-macros).
And sailfish-compiler crate is marked with #![forbid(unsafe_code)], which means sailfish-compiler crate does not contain any unsafe block. I suspect that this is a bug inside the linked-hash-map crate.
Btw sailfish crate is tested by miri on the GitHub Actions (https://github.com/Kogia-sima/sailfish/runs/1604114236?check_suite_focus=true)

Getting familiar with GitHub Actions is still on my TODO list so I'll admit I had a stupid moment where I couldn't figure out how your tests were getting invoked now that you're no longer on third-party CI and didn't check for Miri in them.
As for having it in the compiler, that is a bit better but you can never let your guard down with undefined behaviour. Who knows how easily UB in the compiler could result in it neglecting to emit a safety check in the compiled output.

Possibly related to https://github.com/chyh1990/yaml-rust/issues/167

I tested linked-hash-map crate under miri and encountered a similar error message.
     Running target/x86_64-unknown-linux-gnu/debug/deps/heapsize-b4ec5f242f183ccd

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/x86_64-unknown-linux-gnu/debug/deps/serde-3a8c60f6fa532154

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

     Running target/x86_64-unknown-linux-gnu/debug/deps/test-cd7afc96213a7352

running 19 tests
test entries_insert ... ok
test test_borrow ... error: Undefined Behavior: type validation failed: encountered uninitialized reference
   --> /home/kogia-sima/PG/Rust/3rdparty/linked-hash-map/src/lib.rs:114:21
    |
114 |     let Node { key, value, .. } = *Box::from_raw(the_box);
    |                     ^^^^^ type validation failed: encountered uninitialized reference
    |
    = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior
    = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information

    = note: inside `linked_hash_map::drop_empty_node::<test_borrow::Foo, &str>` at /home/kogia-sima/PG/Rust/3rdparty/linked-hash-map/src/lib.rs:114:21
    = note: inside `<linked_hash_map::LinkedHashMap<test_borrow::Foo, &str> as std::ops::Drop>::drop` at /home/kogia-sima/PG/Rust/3rdparty/linked-hash-map/src/lib.rs:809:17
    = note: inside `std::intrinsics::drop_in_place::<linked_hash_map::LinkedHashMap<test_borrow::Foo, &str>> - shim(Some(linked_hash_map::LinkedHashMap<test_borrow::Foo, &str>))` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ptr/mod.rs:179:1
note: inside `test_borrow` at tests/test.rs:414:1
   --> tests/test.rs:414:1
    |
414 | }
    | ^
note: inside closure at tests/test.rs:373:1
   --> tests/test.rs:373:1
    |
373 | / fn test_borrow() {
374 | |     #[derive(PartialEq, Eq, Hash)] struct Foo(Bar);
375 | |     #[derive(PartialEq, Eq, Hash)] struct Bar(i32);
376 | |
...   |
413 | |     assert_eq!(map.remove(&Foo(Bar(2))), None);
414 | | }
    | |_^
    = note: inside `<[closure@tests/test.rs:373:1: 414:2] as std::ops::FnOnce<()>>::call_once - shim` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
    = note: inside `<fn() as std::ops::FnOnce<()>>::call_once - shim(fn())` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
    = note: inside `test::__rust_begin_short_backtrace::<fn()>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:516:5
    = note: inside closure at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:507:30
    = note: inside `<[closure@test::run_test::{closure#2}] as std::ops::FnOnce<()>>::call_once - shim(vtable)` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
    = note: inside `<std::boxed::Box<dyn std::ops::FnOnce() + std::marker::Send> as std::ops::FnOnce<()>>::call_once` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/boxed.rs:1328:9
    = note: inside `<std::panic::AssertUnwindSafe<std::boxed::Box<dyn std::ops::FnOnce() + std::marker::Send>> as std::ops::FnOnce<()>>::call_once` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:322:9
    = note: inside `std::panicking::try::do_call::<std::panic::AssertUnwindSafe<std::boxed::Box<dyn std::ops::FnOnce() + std::marker::Send>>, ()>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:379:40
    = note: inside `std::panicking::try::<(), std::panic::AssertUnwindSafe<std::boxed::Box<dyn std::ops::FnOnce() + std::marker::Send>>>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:343:19
    = note: inside `std::panic::catch_unwind::<std::panic::AssertUnwindSafe<std::boxed::Box<dyn std::ops::FnOnce() + std::marker::Send>>, ()>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:396:14
    = note: inside `test::run_test_in_process` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:538:18
    = note: inside closure at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:449:39
    = note: inside `test::run_test::run_test_inner` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:474:13
    = note: inside `test::run_test` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:504:28
    = note: inside `test::run_tests::<[closure@test::run_tests_console::{closure#2}]>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:283:13
    = note: inside `test::run_tests_console` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/console.rs:289:5
    = note: inside `test::test_main` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:121:15
    = note: inside `test::test_main_static` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/test/src/lib.rs:140:5
    = note: inside `main`
    = note: inside `<fn() as std::ops::FnOnce<()>>::call_once - shim(fn())` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
    = note: inside `std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:125:18
    = note: inside closure at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:66:18
    = note: inside `std::ops::function::impls::<impl std::ops::FnOnce<()> for &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>::call_once` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259:13
    = note: inside `std::panicking::try::do_call::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:379:40
    = note: inside `std::panicking::try::<i32, &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:343:19
    = note: inside `std::panic::catch_unwind::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:396:14
    = note: inside `std::rt::lang_start_internal` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:51:25
    = note: inside `std::rt::lang_start::<()>` at /home/kogia-sima/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:65:5
    = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

error: test failed, to rerun pass '--test test'

Now I've opened a bug report in linked-hash-map repository

It seems maintenance has unfortunately stagnated for both the rust_yaml and linked_hash_map crates.
@Kogia-sima was there any particular reason you decided upon YAML rather than the more "rusty" TOML for configuration files? If not, would you consider accepting a PR migrating from YAML to TOML using https://github.com/alexcrichton/toml-rs?
I suspect both serde and toml would have to be added to sailfish-compiler dependencies, although serde is already a required dependency of toml and also used in the main sailfish crate - so total number of dependencies of this project would remain unchanged.
Since it's a breaking change, I want to check with you before I begin if you think this issue warrants that, or if you'd rather wait and see if rust_yaml and linked_hash_map crates gets patched.

@Svenskunganka It seems that there is already PR to fix this issue, but author does not have any contribute since June.

was there any particular reason you decided upon YAML rather than the more "rusty" TOML for configuration files?

Because YAML syntax is simple and suitable for small configurations. TOML requires all keys to be wrapped in scope. However I think it's better to solve this issue rather than stick the YAML format.

Since it's a breaking change, I want to check with you before I begin if you think this issue warrants that, or if you'd rather wait and see if rust_yaml and linked_hash_map crates gets patched.

I will be happy if you changes the configuration format used in this crate and solve this issue. Thank you for all discussion and your work.

Because YAML syntax is simple and suitable for small configurations. TOML requires all keys to be wrapped in scope. However I think it's better to solve this issue rather than stick to the YAML format.

I understand, thank you for clarifying! I'm unsure what you mean with "TOML requires all keys to be wrapped in scope". If I understand the spec correctly, the equivalent YAML and TOML configuration files for Sailfish would look like:
YAML:
template_dir: "templates"
escape: true
delimiter: "%"

optimization:
    rm_whitespace: false

TOML:
template_dir = "templates"
escape = true
delimiter = "%"

[optimization]
rm_whitespace = false

I will be happy if you make changes in the configuration format used in this crate and solve this issue.

Is TOML ok or do you have any other format you'd prefer?

Thank you for all discussion and your work.

Thank you as well for all your work on Sailfish! It's a lovely piece of software and in my experience the most ergonomic compiled template engine for Rust.
I'm still fairly new to Rust but feel free to @me whenever a simpler issue pops up or if you want help/input in documentation-related issues - I'm happy to help where and when I can.

I'm unsure what you mean with "TOML requires all keys to be wrapped in scope".

Sorry I misunderstood that. I just thought that you must wrap all keys in some scope like this:
[global]
key1 = "..."

[private]
key2 = "..."

Is TOML ok or do you have any other format you'd prefer?

That's ok. I know TOML is very common style of configuration format, and particularly familiar with Rust programmers. Ideally I would like to rename template_dir to template_dirs, and accept value as an array by default.
template_dirs = ["templates"]
escape = true
delimiter = "%"

[optimization]
rm_whitespace = false

I'm still fairly new to Rust but feel free to @ me whenever a simpler issue pops up or if you want help/input in documentation-related issues - I'm happy to help where and when I can.

I'm happy to hear that! Since english is not my first language, writing documents is hard task for me. Feel free to create a PR if you found any grammatical mistakes or typo.

The PR bumps yaml-rust to 0.4.5 which fixes the immediate issue here. This issue is therefore no longer a breaking change. Perhaps we should break the YAML to TOML migration out into a separate issue marked as breaking and put on the 0.4.0 todo list rather than this one. I'll keep template_dir to template_dirs change as well as #42 in mind for that implementation.

The PR bumps yaml-rust to 0.4.5 which fixes the immediate issue here. This issue is therefore no longer a breaking change. Perhaps we should break the YAML to TOML migration out into a separate issue marked as breaking and put on the 0.4.0 todo list rather than this one. I'll keep template_dir to template_dirs change as well as #42 in mind for that implementation.

Closing in favor of #44


ng build generates dist/index.html w/ contents of 'undefined' after angular-cli beta.6 upgrade

OS?  Windows 7, 8 or 10. Linux (which distribution). Mac OS X (Yosemite? El Capitan?)

OS X El Capitan

Versions. Please run ng --version.

angular-cli: 1.0.0-beta.6
node: 4.4.3
os: darwin x64

Repro steps. Was this an app that wasn't created using the CLI? What change did you
do on your code? etc.

Created with beta.5 CLI with --mobile and then upgraded with ng init --mobile for beta.6.
Only changes were to merge my existing app back into the files overwritten by the CLI.
Also able to reproduce this in a brand new beta.6 project by doing:
ng new testApp --mobile
ng build

The log given by the failure. Normally this include a stack trace and some
more information.

$ ng build
Built project successfully. Stored in "dist/".

Mention any other details that might be useful.

Unfortunately there is no error output at all.
Contents of dist/index.html:
undefined

ng build --prod on a new project seems to give an error that might be helpful:
ng build --prod
⠸ BuildingEXCEPTION: Error in :0:0
ORIGINAL EXCEPTION: The selector "app-root" did not match any elements
ORIGINAL STACKTRACE:
Error: The selector "app-root" did not match any elements
    at new BaseException (/Users/splaktar/Git/tf/testApp/node_modules/@angular/platform-browser/src/facade/exceptions.js:17:23)
    at NodeDomRenderer.DomRenderer.selectRootElement (/Users/splaktar/Git/tf/testApp/node_modules/@angular/platform-browser/src/dom/dom_renderer.js:79:23)
    at DebugDomRenderer.selectRootElement (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/debug/debug_renderer.js:19:39)
    at DebugAppView.AppView.selectOrCreateHostElement (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/linker/view.js:88:41)
    at DebugAppView._View_AppComponent_Host0.createInternal (AppComponent_Host.template.js:12:21)
    at DebugAppView.AppView.create (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/linker/view.js:66:21)
    at DebugAppView.create (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/linker/view.js:259:44)
    at ComponentFactory.create (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/linker/component_factory.js:143:36)
    at /Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/application_ref.js:314:44
    at /Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/application_ref.js:292:26
    at ZoneDelegate.invoke (/Users/splaktar/Git/tf/testApp/node_modules/zone.js/dist/zone-node.js:281:29)
    at Object.NgZoneImpl.inner.inner.fork.onInvoke (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/zone/ng_zone_impl.js:45:41)
    at ZoneDelegate.invoke (/Users/splaktar/Git/tf/testApp/node_modules/zone.js/dist/zone-node.js:280:35)
    at Zone.run (/Users/splaktar/Git/tf/testApp/node_modules/zone.js/dist/zone-node.js:174:44)
    at NgZoneImpl.runInner (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/zone/ng_zone_impl.js:76:71)
    at NgZone.run (/Users/splaktar/Git/tf/testApp/node_modules/@angular/core/src/zone/ng_zone.js:223:66)
ERROR CONTEXT:
DebugContext {
  _view:
   DebugAppView {
     clazz: [Function: _View_AppComponent_Host0],
     componentType:
      RenderComponentType {
        id: 'gms-0',
        templateUrl: '',
        slotCount: 0,
        encapsulation: 0,
        styles: [] },
     type: 0,
     viewUtils:
      ViewUtils {
        _renderer: [Object],
        _appId: 'gms',
        _nextCompTypeId: 1,
        sanitizer: DomSanitizationServiceImpl {} },
     parentInjector:
      ReflectiveInjector_ {
        _debugContext: null,
        _constructionCounter: 40,
        _proto: [Object],
        _parent: [Object],
        _strategy: [Object] },
     declarationAppElement: null,
     cdMode: 2,
     contentChildren: [],
     viewChildren: [],
     viewContainerElement: null,
     cdState: 2,
     destroyed: false,
     ref: ViewRef_ { _view: [Circular] },
     renderer: DebugDomRenderer { _delegate: [Object] },
     staticNodeDebugInfos: [ [Object] ],
     _currentDebugContext: [Circular],
     context: {},
     _hasExternalHostElement: true,
     projectableNodes: [] },
  _nodeIndex: 0,
  _tplRow: 0,
  _tplCol: 0 }

I thought that this might be related to https://github.com/angular/angular-cli/pull/1042, but that does not appear to be the case.
I was able to solve this by reverting the version of angular-universal to:
    "angular2-universal":"0.100.5",

From the version provided by the angular-cli beta.6 which is:
    "angular2-universal":"0.101.5",

I also tried the latest, but saw the same behavior:
    "angular2-universal":"0.101.9",

I also tried with the latest of all of the angular-universal libraries, but saw the same problem:
    "@angular/platform-server": "2.0.0-rc.1",
    "@angular/service-worker": "0.2.0",
    "@angular/app-shell": "0.0.0",
    "angular-cli": "1.0.0-beta.6",
    "angular2-broccoli-prerender": "0.11.5",
    "angular2-express-engine": "0.14.1",
    "angular2-universal":"0.102.1",
    "angular2-universal-polyfills": "0.4.1",
    "codelyzer": "0.0.20",
    "ember-cli-inject-live-reload": "1.4.0",
    "jasmine-core": "2.4.1",
    "jasmine-spec-reporter": "2.5.0",
    "karma": "0.13.22",
    "karma-chrome-launcher": "1.0.1",
    "karma-jasmine": "1.0.2",
    "preboot": "2.1.2",
    "protractor": "3.3.0",
    "ts-node": "0.7.3",
    "tslint": "3.11.0",
    "typescript": "1.8.10",
    "typings": "0.8.1"

Opened https://github.com/angular/universal/issues/445 to see if this is something that can be fixed on the angular-universal side or not.

This also happen to me with ng serve for a new project on ubuntu 14.04:
angular-cli: 1.0.0-beta.6
node: 6.2.1
os: linux x64

@Splaktar suggestion for downgrading "angular2-universal" to "0.100.5" seems to make it work.

This is also being tracked here: https://github.com/angular/angular-cli/issues/958


Optimize string values and keys

I think the idea to copy and modify the input json string is great (and on a humorous note, perhaps the library's name should be dajson, as you make two allocations - one for the payload and one for the input text).
Anyway... copying the input works great for parse_string_slow, but I think you're not taking it far enough. Currently getting keys and sensible string values requires allocations (by creating std::string-s), which may not always be needed. For example if the user only wants to compare those to existing values, these allocations are pointless.
I have made a change here which alters the input buffer by adding zeroes at the end of  strings (replacing the closing quotation marks). Thus a safe const char* may be returned, and the decision whether an allocation is to be made when using strings is left to the user.
Not a pull request yet, since it's a non-backwards-compatible change. You may have an ideas about that. Keep the old functions and add new? Major/minor version increment?

You know, I think I actually forgot to do the variant that mutates the input given to the mutable_string_view.  So yeah, you're right, it does do two allocations today.  :)  Oops.
I think your change is on the right track - sajson exposes std::string in too many places.  It should return its "string" data type instead.  It is important that we continue to support embedded nul characters, however, so const char* isn't enough.
I'd say let's rip out all the std::strings and add a way for document parse to take a string type that's mutable so it only has to allocate once.  The idea was that you could mmap a file on disk in copy-on-write mode and parse it directly without having to read the file into memory.  Clearly I never got that far.  :)
Cheers, and thanks for your attention!


Flow iterators

As a flow developer I want to iterate over arrays inline, within the flow. For example, invoke a REST activity, the result is an array, iterate over the array and execute activities. We should expose an index object so the location within the array is easily accessible.

Please, please .... PLEASE ;-)
+1


fix: handle version prefix in globals

What kind of change does this PR introduce?
Bug fix https://x.com/jonkkillian/status/1837153462548590920
What is the new behavior?
Allow 1_globals.sql to start with numeric prefix.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>5
Details

0 of 0   changed or added relevant lines in 0 files are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.03%) to 60.022%

Files with Coverage Reduction
New Missed Lines
%

internal/gen/keys/keys.go
5
12.9%

Totals

Change from base Build<PHONE_NUMBER>4:
-0.03%

Covered Lines:
6456

Relevant Lines:
10756

💛  - Coveralls


fix: Use vanilla podtato-head images for quickstart

This PR
changes the quickstart guide using podtato-head as follows

Upgrade to prometheus-service 0.7.1
Fix a typo in the source field when simulating an alert using prometheus
Use vanilla (original) podtato-head images
Change jmeter config in order to decrease the time needed for the performance test executed using JMeter
Change SLI/SLO defnition to fit the vanilla (original) podtato-head-images

Fixes #213
Proof
v0.1.1

v0.1.2 (slow version)

simulated remediation

Thanks @christian-kreuzberger-dtx for providing this PR 👍🏼
I'd favor having this merged into the repo, but I'll leave the decision to more active maintainers :)


Shuffle protocol

Can the shuffle protocol be changed, so that it's not whether or not the line exists, but something like:
"% SHUFFLE" and "% NOSHUFFLE"?
It's easier for doing checks and not as much of a headache.

It's not that difficult to add an if statement to optionally check for it. And unfortunately even if it is difficult, the specs cannot be changed once again because there are too many people trying to fix their code with the current specs + have already worked around this rule

If this becomes a huge issue for everyone, we may consider it


Release 28.8.0

What
Release version 28.8.0

@edwardkerry can I get https://github.com/alphagov/govuk_publishing_components/pull/2646 into this release please? Shouldn't take long.

https://github.com/alphagov/govuk_publishing_components/pull/2646 is approved (thanks @alex-ju!) just waiting on the tests to pass before I can merge.

Thanks @andysellick, any chance of a review?


[r] Port TileDBCreateOptions from Python to R

@eddelbuettel -- after mid-sprint time-allocation check-in with @mojaveazure -- do you think you could take this issue for the current sprint?

@eddelbuettel I have cycles; never mind.

I looked at it yesterday but the Python code is a little hard to read for me, and this was the first time I heard about this so it may be in better hands with you.


[Feature] I hope there is an API for collection index

Search before asking

[X] I had searched in the issues and found no similar issues.

Feature Request
laf_curd needs to manage the collection indexes. However, both api.laf.run and laf-client-sdk currently do not support this feature.
Are you willing to submit PR?

[x] Yes I am willing to submit a PR!

Indexes Management will be supported in next month.

Index management is supported in version v1.0.0-beta.12.
@see https://github.com/labring/laf/releases/tag/v1.0.0-beta.12


CollectionX should have a more specific removeAll method

removeAll(CollectionX )
So that calls to removeAll avoid been routed by the compiler to Collection#removeAll

And also retainAll

Released in 10.0.0-M4


/info endpoint should give the number of safe jokes per language or in total

Just as an added bit of information

Implemented as follows:

Implemented as follows:


Automatic classification: more aggressive debounce and perf considerations

Testing #129436
On my machine it takes around 300ms for the language classification to compute. However some of our users have a slower machine, so here are some ideas on how to make sure to not slow down when users that are just scribbling in an untitled editor.

Do not classify when less than 20 characters present (unless to reset mode if file has auto detected already)
Increase debounce from 300ms to 600ms (this will still not be a noticeable lag when the user stops typing, pastes)
If you have already run the classification n times and every time you are unsuccessful maybe stop trying and only on larger changes run
If you already auto detected a language - great! Do not be so aggressive then, only if a big change to the file content happened

Both 3 and 4 require some knowledge about what is a bigger change to a file. We can figure something out. Maybe @bpasero has ideas

💯
We have to be very very careful of running an expensive operation in the same thread where the user is typing in (see https://github.com/microsoft/vscode/issues/27378 for example to get some inspiration). At the minimum we should debounce in a way that continuous typing further delays the computation up to the point where the user stops typing for a moment.
This becomes even more important if we decide to make language detection enabled by default.
Further thoughts:

would it make sense to move the language detection code into the untitled text editor model itself to possibly making the integration tighter? For example, I find the setMode change dubious with the fragile setExplicitly option which possibly would benefit from being dealt with internally. It is also weird to register a core workbench.editor.untitled.experimentalLanguageDetection setting that is only being used from a workbench contribution imho
we seem to be creating a full string of the text model each time to detect the language - this can be very expensive for large models and at the very minimum should support stream based detection via the text model factory (see for example how backups are created for text files where we convert a snapshot of the text model to a byte stream here)
can we explore moving the language detection into a worker and off the renderer process? I believe we do something similar when computing the diff of a file (@alexdima could possibly chime in on that matter)

Thanks @bpasero for bringing this to my attention. I don't think having it running in main thread scales in terms of performance, especially now we are also adding bracket matching on typing. Adding a few ms doesn't seem to hurt typing but if everyone is doing so, a single type can easily exceed 16ms and we can't finish rendering in one single frame.
Note that we already have tokenization and multiple event listeners (auto save trigger), which take a couple of ms each.

All good points, and I think we should explore all our options here.

We should definitely not do this on every type but have a smart debounce strategy (some ideas mentioned in my initial comment)
Moving this to the worker sounds reasonable. @rebornix is there a good example you could share of some worker side computation
@bpasero model can only handle 100 000 character strings. So @TylerLeonhardt we should just take a subset of the whole content, and not take the full string in memory. fyi @yoeo for idea for model to handle streams, not only string

I can chat with @TylerLeonhardt on how to move it to a worker, we already have workers for word and link computation.
btw, some data on the perf of typing now with latest Insiders, which we should improve

Yeah this is an unfortunate consequence that is specific to untitled files where we use the content of the untitled buffer as title for the tab. If you want to file an issue for it where we track offenders, we can look into that individually 👍

Updated what's done and what's not

Nice, I think from my end the biggest ask is to support streaming to prevent producing a string of the editor contents and maybe cancellation support, though I am not entirely sure that is even possible in the library itself...

I'm trying to understand how streaming would work if the work is done in a Worker.
Wouldn't the data need to be serialized to be transferred to the worker and lose the benefit of streaming?
Maybe I'm misunderstanding.

Yeah you are right, that suggestion is from the time before we even thought about workers...
Still, even when IPC is involved you can avoid creating a string from the contents by simply sending over the chunks that you get from the editor itself. The editor contents are partitioned in chunks (not sure if line by line or a fixed size), so you could send these existing chunks over to the worker and pass them on into the detection library.

The encoding library we use works with that model:
https://github.com/microsoft/vscode/blob/83f4dfdff121dee60169620e738dc2b9dfea0bec/src/vs/workbench/services/textfile/common/encoding.ts#L181-L182

Still, even when IPC is involved you can avoid creating a string from the contents by simply sending over the chunks that you get from the editor itself.

I'm using the same code that the EditorWorker uses which sends over changed events that look like this:
export interface IModelContentChange {
	/**
	 * The range that got replaced.
	 */
	readonly range: IRange;
	/**
	 * The offset of the range that got replaced.
	 */
	readonly rangeOffset: number;
	/**
	 * The length of the range that got replaced.
	 */
	readonly rangeLength: number;
	/**
	 * The new text for the range.
	 */
	readonly text: string;
}

And the MirrorModel handles syncing resources.
https://github.com/microsoft/vscode/blob/c2f6aa497f7462c293e1f6301707bf0c091b1712/src/vs/editor/common/model/mirrorTextModel.ts
So we're already only sending chunks over to the worker when it changes...though not the chunks you're referring to I think. If we're talking about optimizing that further it should probably be for all of our editor worker code.

and pass them on into the detection library.

The model doesn't have any internal concepts of what the contents of a file looks like (in otherwords it doesn't keep state) so we need to send as much content as we can to it so that we have the best chance of guessing correctly. Running the model on anything smaller than the whole contents of the file I worry will come with a steep decrease in confidence.

Oh yeah that is good, wasn't aware you also benefit from the mirror model code.
And yeah, agree the library needs to run detection on the entire contents.

but should probably have an upper limit of how large these contents can be

It does :) 100000 characters:
https://github.com/microsoft/vscode-languagedetection/blob/main/lib/index.ts#L82
because after that, tfjs throws some error: https://github.com/microsoft/vscode/issues/129597
ideally the string I create only creates a 100000 character string instead of the entire file... but I believe the file was represented as lines so I'd have to roll my own "get first 100000 characters of this string" function... which I haven't done yet.

Yeah the closet I see is getValueInRange, @rebornix is there a way to get the value of the text buffer up to a maximum length without having to allocate the entire buffer into a string?
I guess one solution could be to model.snapshot and then iterate over the chunks until max length is reached, but I am not sure these APIs exist in the mirror model.

Moving the other things to the backlog as I don't think we need to do them right this second. I'm going to have a TPI for this so those testers can try out perf.


Doc/contract converters

Add documentation around ContractConverters.
It took me 1h trying to remember how to pass JsonConverters to ElasticContractResolvers, clearly needed to be documented better :)  Also includes xunit fixes for Rider and additional tests that tests covariance on subclasses as well.

Could not get the actual documentation to be generated though, MSBuildWorkSpace loads the project just fine but wont discover any files.
Adding a WorkspaceFailed handler shows that

Msbuild failed when processing the file 'C:\Projects\elastic\net-5\src\Elasticsearch.Net\Elasticsearch.Net.csproj' with message: The SDK 'Microsoft.NET.Sdk' specified could not be found.  C:\Projects\elastic\net-5\src\Elasticsearch.Net\Elasticsearch.Net.csproj
Msbuild failed when processing the file 'C:\Projects\elastic\net-5\src\Tests\Tests.csproj' with message: The SDK 'Microsoft.NET.Sdk' specified could not be found.  C:\Projects\elastic\net-5\src\Tests\Tests.csproj
Msbuild failed when processing the file 'C:\Projects\elastic\net-5\src\Nest\Nest.csproj' with message: The SDK 'Microsoft.NET.Sdk' specified could not be found.  C:\Projects\elastic\net-5\src\Nest\Nest.csproj

Leading the the project being loaded as empty and so we are never picking up on new documentation changes.
Which explains why https://github.com/elastic/elasticsearch-net/tree/master/docs has not been updated for 5 months too.
https://github.com/dotnet/roslyn/issues/21660#issuecomment-324314157 leads me to believe that this will be fixed at some point by simply updating Roslyn but not sure I have a full handle on the situation.
cc @DustinCampbell

ported to master

I'll open a new branch for the Roslyn doc generation changes


Sign IN using Wrong Credentials - No message sent to the user

If the user tries to authenticate with the wrong user/password, there is no message bumped in the page.
patch
The UI should display a meaningful text to the user.
Live sample from the non-firebase version

Fixed in v1.1.0-enh1.
Ty @umarali


tracking_hostname filter for destinations

Let's say you want to track events on several different websites, and for business or legal reasons, event logs need to be stored separately.
You most likely want to use one global eventnative infra with several instances and a load balancer for this.
It would then be great if you could set a tracking_hostname filter for each destination, so that only the right events are streamed to them.

Hi @clementgalopin! Thank you for the issue and for using EventNative!
Now you can do it with different API keys. You could configure several API keys and set them to only_tokens field in the destination. Then you could use EventNative js pixel with "key": client_secret depends on what events would you like to have in what destinations.
EventNative configuration example:
server:
    auth:
    -
      client_secret: 'token1'
    -
      client_secret: 'token2'
destinations:
    destination1:
        only_tokens:
            - token1
    destination2:
        only_tokens:
            - token2

More information about API keys authorization
More information about destinations only_tokens configuration
If you have any questions please let me know!

That's perfect, thanks and kuddos for this great work!


Limit the size of the conntrack buffered flows

Following up on https://github.com/weaveworks/scope/issues/881#issuecomment-177698657 we should limit the size of the conntrack buffered flows to a reasonable maximum.

Going on holiday and not actively working on this.


De/serialize enum as array

Hi, I think one representation for enum is missing. E.g. if we have some enum like this:
enum State {
  Initializing,
  Reading(usize),
  Writing(usize, usize),
  Done,
}

The short and nice representation would be (showing json):
["Initializing"]
["Reading", 1234]
["Writing", 3, 1234]
["Done"]

Or even:
"Initializing"
["Reading", 1234]
["Writing", 3, 1234]
"Done"

This works well for unit variants and tuple variants. And is more compact than other representations. I think this is useful for representing state machines as in the example above.
What do you think?

Seems reasonable. Do you know of any existing serialization libraries in other languages that support this style, or JSON APIs that use this style?

From the top of my head WAMP protocol fits the "JSON APIs" category:
[HELLO, Realm|uri, Details|dict]
[WELCOME, Session|id, Details|dict]

http://wamp-proto.org/static/rfc/draft-oberstet-hybi-crossbar-wamp.html#session-lifecycle

Technically WAMP also uses numeric IDs as the first item which might be a good option too.

I had the same issue with parsing html5lib-tests (https://github.com/html5lib/html5lib-tests/blob/master/tokenizer/test1.test#L246), had to implement manually.

I'll try implementing this issue if no one is working on it. I'm not familiar with internals of serde though, so I'm not sure that I'll have enough time for the implementation.
Any preliminary hints? Objections?

This doesn't necessarily need to involve changing serde internals. Here is a small shim that you could drop into a crate to make this work.

@dtolnay, nice hack. I might use it somewhere. Still, it's a bit unfortunate that it has to be in serde(with) (i.e. can't be applied for the structure itself).
Just to be clear: are you opposed to get it into a serde? Or do you think this is a waste of time? Or PR is also okay?

I would prefer to design an approach that allows the logic here to live outside of Serde (like in that playground link) but still be used for type's Deserialize implementation. https://github.com/serde-rs/serde/pull/1111#issuecomment-349386342 is a very similar situation so cc @Marwes. Essentially we want a concise way to derive the serialize/deserialize code for the type as usual, but then use some other implementation as the Serialize/Deserialize impl for the type.

So with https://github.com/serde-rs/serde/pull/1111#issuecomment-349386342 it should be possible to remove the wrapper and do this instead (+ the serializer/deserializer wrappers)

#[derive(Serialize, Deserialize, Debug)]
#[serde(freestanding_serialize = "serialize_state")]
#[serde(freestanding_deserialize = "deserialize_state")]
enum State {
    Initializing,
    Reading(usize),
    Writing(usize, usize),
    Done,
}

impl Serialize for State {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> {
        serialize_state(EnumAsArray(serializer))
    }
}

impl Deserialize for State {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error> {
        deserialize_state(EnumAsArray(deserializer))
    }
}

https://play.rust-lang.org/?gist=e51b0de2f0e798934c9d6cc0772f10b6&version=stable

@dtolnay, @Marwes take a look at #1118. That solution is better than freestanding_serialize because it allows encapsulating implementation into a module/crate. In your solution, you still need to write a one-line implementation for each structure.


Increasing of zipformer number of parameters

Hello guys,
Currently zipformer in Tedlium recipe used about 65M parameter.
How would you recommend to increase number of parameters in order to work with, let's say 300M, 500M parameters.
Is there some article that describes performance of K2 as function of number of parameters?
Thanks,
AlexG.

We have a large version of Zipformer on other recipes with about 150M parameters (e.g., on LibriSpeech, see https://github.com/k2-fsa/icefall/blob/master/egs/librispeech/ASR/RESULTS.md#large-scaled-model-number-of-model-parameters-148439574-ie-1484-m). Maybe you could try this first.


Add example of changing equations

It is possible to do this without changing the package code, but it's not trivial. Currently, we have to look for the equation we want to change in the vector of system equations manually.

I think this is fair enough atm. Also, after a first example where we change an equation of the whole system, we can have another example where we change an equation of a subsystem. From that point of view, equations are already grouped in subsystems, so looking for them shouldn't be terrible.

I added an example in the Agriculture fig. 4.87.

At the moment, one has to print the array of equations and look at its index, which seems cumbersome. We should find some remedy before implementing the remaining 11 figures that require editing equations, then have it documented.

I don't see a natural way to address this point.
Can be an enhancement for a future version, but atm unless you have a proposal, I'll let it as is.

Since we have a way to do so, which was the goal of the issue, i'm closing it.
I'll open a new one to improve the current process of changing equations.


Remove unnecessary javascript code and replace with hugo template code

Supersede #87

Does this fix the flickering of down-arrows?

Feel free to reopen when animation is brought back :)


File does not delete from Home Directory in File Manager

https://user-images.githubusercontent.com/6126004/228392034-d08b5b43-775a-4e88-809b-d27438095447.mp4

Fixed in 1.16.0


HTTP2 receiver window size does not seem to expand

This test program downloads a 281MB file from AWS S3 using hyper-rustls with HTTP2 enabled:
https://github.com/rocallahan/http2-window-size-bug/blob/master/src/main.rs
On a AWS c5d.9xl instance, it takes a few minutes. If you disable HTTP2 in the example, or use curl/wget, it takes a few seconds.
Calling http2_initial_stream_window_size to set SETTINGS_INITIAL_WINDOW_SIZE to 2^31 - 1 fixes the problem completely.
My understanding is that client stacks should automatically expand the HTTP2 stream window size while no backpressure is needed, like TCP does, but it appears that isn't happening.
If the intent is that hyper should not manage stream window sizes, okay, but in that case reqwest should.

Related: #1813 (where HTTP is approx ~2x slower)

I believe it makes sense for hyper to use a better default, unless configured otherwise, similar to how in http1 it uses default read and write strategies to improve performance.
One such default could be to use BDP.

Yes, I think BDP estimation would be a suitable fix.

Getting BDP may take a bit more work though, if we wanted, we could change hyper's defaults to just something bigger (1 MB?)...

I don't know whether changing the default makes sense, but whatever the default is, at some point there needs to be a dynamic algorithm as well.

From the HTTP2 spec:

Flow control is defined to protect endpoints that are operating under resource constraints. [..] Deployments that do not require this capability can advertise a flow-control window of the maximum size [..] This effectively disables flow control for that receiver.

I read that as saying flow control is available if you need it, but if not, don't use it. So my opinion now is to select a better default for most applications (and those who need to constrain more can always pass a specific option).
Clients are typically receiving more data than they send, and typically have less connections in general. Servers however are usually sending more than receiving, and are more likely to be attacked or flooded. Additionally, due to the multiplexing nature, a stream probably shouldn't hog the entirety of a connections window.
Therefore, my suggestion:

Client default connection window of 5 MB, and stream window of 3 MB.
Server default connection window of 2MB, and stream window of 1 MB.
Work on BDP solution for the future.

The numbers I picked are kinda arbitrary, others could be suggested instead.

FWIW, using those settings in reqwest 0.9.22 gives me 12s download time for a ~500MB file from S3 to an EC2 instance, compared to 6s using wget or using 2^31 - 1 for both initial window sizes. So there is definitely room for improvement.

How'd you use those settings in reqwest? Custom build? Because the new settings aren't in a published version yet.

We maintain a fork (which is currently at https://github.com/khuey/reqwest/tree/downstream2)

The good news is even with those conservative defaults, it went from a few minutes to a few seconds! I've been adding some missing pieces to the h2 library that I'm hoping will allow implementing a BDP detector in hyper.

Initial adaptive window support using BDP is proposed in #2138.


CSS Reset

##User Story
AS a developer,
I want a reset.css file,
SO that the application has backup styling
##Acceptance Criteria
GIVEN the reset.js
WHEN I view the code
THEN I see the basic styling


Can't disconnect features

If an area is connected to roads and they share a node: even if I disconnect them from each other and then turn off all layers except areas, iD still says that I can't move the node because it's connected to a hidden feature...
It's only with roads and areas. If an area is connected to a building I don't have this problem.

@maro-21 Could you provide a location where this occurs?

Any. Just find a road connected to an area - if you disconnect them, and hide area layers, you won't be able to move a node.


Generating temporals of specific precision

Feature Description
If truncated temporals—think of instants, for example—are needed, there is no means of changing the precision at the generator level. This means that the unwanted part will have to be discarded manually after the instants are generated.
The preferred option would be to introduce new methods for manipulating precision in InstantSpec, LocalDateTimeSpec, etc. I think precision or truncatedTo would make for a good name for it. You may also want to have a corresponding global option in o.i.s.Keys.
Usage Example
_1st: temporal().instant().truncatedTo(ChronoUnit.MICROS);
_2nd: temporal().instant().truncatedTo(TimeUnit.MICROSECONDS);
_3rd: temporal().instant().precision(ChronoUnit.MICROS);
_4th: temporal().instant().precision(TimeUnit.MICROSECONDS);

@foaw thank you for the suggestion. It should be possible to achieve this using the as(Function) method, e.g.:
temporal().instant().as(i -> i.truncatedTo(ChronoUnit.MICROS))

Most built-in generators provide this method to allow mapping from one value to another. Can you give it a try to see if it meets your needs?

Judging by its code, it should work. Except that it erases the actual generator type and returns a generic GeneratorSpec<T>, but that's trivia. Still, it would be nice if someday there were a method that could convey this intention more clearly. :-)

I agree it'd make the API a little nicer. I'll keep this to investigate a bit more.

@foaw this will be included in 4.2.0.

@foaw just released 4.2.0. Please give it a try.

Just gave it a try. Switched over to InstantGenerator#truncatedTo and it works like a charm!
Off-topic: when updating I noticed the major version went up. Does Instancio have a change log aside from git log <release-1>..<release-2>?

The release page has the changelog: https://github.com/instancio/instancio/releases


Authenticate

The authenticate command did not create the ~/.github-repos/config file.
After creating it manually I could run the authenticate command and my credentials were stored in the config file.

I'm unable to authenticate. It would open a new tab in my browser to generate a token, but wouldn't give me a spot to enter that same token.

After you generate your access token in github, run the command gh-login<EMAIL_ADDRESS>yourtoken. That should create the file and leave you authenticated.


Please add the function of background image

What's the Problem?
Please add the function of background image
Solution/Idea
allow users use an image as a background
like this

Alternatives
windows built-in explorer
Priorities

Capability
Priority

This proposal will allow developers to accomplish W
Must

This proposal will allow end users to accomplish X
Should

This proposal will allow developers to accomplish Y
Could

This proposal will allow end users to accomplish Z
Won't

Files Version
No response
Windows Version
No response
Comments
No response

@whtrys you can already do this with a custom theme. I'll try to update to documentation to explain how to set an image for the background brush.

Did you add it to the documentation? I cannot see it in the offical documentation.

@whtrys you can already do this with a custom theme. I'll try to update to documentation to explain how to set an image for the background brush.

Did you add it to the documentation? I cannot see it in the offical documentation.

https://files.community/docs/configuring/custom-themes
https://files.community/blog/posts/how-to-use-background-image


prodigal output not coherent with orf id

The orf 'id' of prodigal output is weird. Both gff and .fna/.faa output have different names.
As reported in prodigal repository with an issue https://github.com/hyattpd/Prodigal/issues/99 , the orfs get an extra "_1" or similar. this is problematic as none of gff, .fna and featurecounts tables have the same name. it will be impossible then merge the final tables.
I guess that it is an issue inside prodigal, so what we could probably do it is to write an external code (new module for sub workflow)  that fix the tables after featurecounts.

Right. I think this is the reading frame. Have you seen any genes with another number than 1?

yes, it depends of the orfs

what I did was cut the last part of the id (for example, "1_1" in "_1") and then paste it to the chr column.

Is it really sometimes "1_1"? I've only seen "_1".

here an example of table output

OK. The "_n" part doesn't seem to be the reading frame, but a counter for multiple orfs on the same contig. To uniquely identify an orf you hence need to keep the full name, you can't delete anything. What do the corresponding fasta files contain in terms of identifiers?

these are the names in the fasta file (orfs). the figure is from eukulele output and the name of orf column is the same as the file .faa

Check the names of orfs from k141_2562 which has two in the first table.

Solved in PR #87


feat(cli): generate & execute gcp terraform code

Summary
Enable the automated generation & execution of Terraform code for integrating Lacework with GCP
How did you test this change
generated dev version of CLI and run manually ✅
Unit tests ✅
Integration tests ✅
Compiled CLI and manually ran an integration to dev5 ✅
Issue
https://lacework.atlassian.net/browse/ALLY-393

@rmoles we had some issues with the CI pipelines, everything should be back online now.
I am re-running your pipeline and starting review of the new changes. 💯

Real failure from your code:

When running this command in conjunction with the AWS generation we duplicate the required provider configuration, that is, we don't check if the folder already has this block defined:
terraform {
  required_providers {
    lacework = {
      source  = "lacework/lacework"
      version = "~> 0.12.2"
    }
  }
}

When running the generated code Terraform fails with:

Good catch! IMO this is a strong argument to go with the folder approach rather than a flat lacework dir. AFAICT there is no simple way for us to check whether the lacework provider is already present.
Having spoken with @dmurray-lacework about this we came up with the following.

Possible fixes
Have all generation use 1 provider file
Parse all tf before new generation to check for provider block
Revert back to separate folder approach
Run Tf exec providers

The lacework provider command, gets into a chicken and egg scenario, as we would need to call this command at the lwgenerate level and we don't check for the TF installation at this level.
Personally, I'm against the 1 provider file approach. It departs from our current flat-file approach, which is very useful for those with little TF experience to see everything in one place. This would also mean a re-work of each implementation to extract the lacework provider and write it to a separate file.
I'd prefer not to get into the scenario of parsing all files in a dir to check if we already have a provider in place...
Somewhat selfishly I am in favor of the move back to the folder approach. IMO it's the path of least resistance. We can always revisit this implementation in the future.
Let me know your thoughts on this @afiune, @ipcrm

@rmoles I'm fine with that folder approach. Does that mean you are going back to use the file name main.tf?

Check windows!! 🪟

check the windows plz


Document the timeout property in HTTPRequest

master version of https://github.com/godotengine/godot/pull/62850.
This documentation was brought over from 3.x and improved.
See https://godotengine.org/qa/134900/httprequest-timeout-behaivour.

Thanks!


Standard resistance calculator incorrectly displays results when input resistance is 180R (for example).

This does seem to be an issue anymore (since NinjaCalc was ported to a web app).


Update color of ProgressBar's error state

Describe the bug

Design has specified that the error state of (determinate) ProgressBar should use the red error color:

Setting the foreground to SystemControlErrorTextForegroundBrush will provide the correct theming behavior.
Additional context

Details about indeterminate ProgressBar's appearance are still pending.

In Win32 guidance, Paused is shown to have a Yellow colour.
Will this Red colour be the same colour used for validation (which becomes yellow in dark mode) or match the Red colour used for Status Icons/Badges?

Will this Red colour be the same colour used for validation (which becomes yellow in dark mode) or match the Red colour used for Status Icons/Badges?

We'll use the same brushes that are used for validation.

So current behavior with determinate error state is this:

Is it expected that it switches color when changing the value?

@chingucoding @YuliKl This is a bug. This is because every time it is being updated, it quickly switches to an Updating Visual State for the animation. That visual state's foreground is the system foreground colour, and will need to update to Error colour when updating.

Thanks for the clarification @karenbtlai ! I assume, it is better to leave this issue (both #1766 and the color switch bug) to you? Or would you mind me helping out here? @ranjeshj FYI.

@chingucoding feel free to take this one! @karenbtlai is heads down on WinUI 3 work, so your help would be much appreciated.
@MarissaMatt FYI

Alright, I'll work on this!


Update use case: data-processing-app

The use case is copied from openwhisk-data-processing-messagehub. Now we are able to support env variables. We should update this use case to show the capability.

Just run this case, it gets an error while installing:
Deploying pacakge kafka ... Done!
Deploying action kafka/mhpost-action ... Done!
Deploying action kafka/mhget-action ... Done!
Deploying trigger kafka-trigger ... Done!
Deploying rule kafka-inbound-rule ... Got error creating rule with error message: {{.msg}} (code {{.code}}) and error code: 144.
Done!

We need to fix it.

@daisy-ycguo have you updated to the latest master in openwhisk-client-go?  If you do, you'll get the full error message instead of {{.msg}}.

@daisy-ycguo any update?

Duplicated with 352. Close it.


Site optimization to improve Pagespeed Insights scores

Description & motivation
This optimizes certain areas of the site to improve page speed scores. This includes deferring scripts, reducing css loading, and image optimization.
Pre-release docs
Is this change related to an unreleased version of dbt?

[x] No: please ensure the base branch is current

A majority of the files changed are optimized images. The other main focus was to reduce render-blocking resources. The primary blockers are the jQuery script and featherlight lightbox script.
It looks like the only reason jQuery is added is to support the jQuery-dependent featherlight package. We can move to a react-based lightbox and remove jQuery altogether, but deferring these scripts should improve the page speed scores sufficiently enough without having to overhaul this.
Here is a page to verify the lightbox functionality still works after deferring both scripts. Clicking the first image will trigger the lightbox.
I also moved the styling for the lightbox inline to reduce the number of separate css files being loaded.

This looks good to me!
 I'm curious if there's anything we can do moving forward to make sure that images we add to the site in the future are also optimized. I believe they're basically just added by contributors via the standard git workflow, correct? So we have no way to enforce that optimization?
Not a show-stopper in the least; it's just something I was curious about.

I like that idea. It looks like there's actually a GitHub Action which makes that possible 👀
Not sure if there is any risk in running a type of action like this, if it would always be accurate, etc. But maybe this would be worth testing on a demo repo to see how it performs!

I like this idea; let's do it!


onnxruntime-genai - QNN Memory Usage

Referring to https://github.com/microsoft/onnxruntime-genai/issues/961, will it address the memory aspect of running big models on the npu?
thanks

Hi we're still working on QNN support. The NPU has it's own limitation when it comes to memory usage, depends on the specific device specification. Likely it will not fully address the memory issue running big models.


OSX Install Issues

Using OSx version 10.12.2
Python version 2.7 (pip 9.0)
I have followed the commands in docs but when I attempt the "python cldstkdeploy.py" command and go through the questions it always winds up with the same error message:
cannot import name PlayBook
You need to run [python cldstkdeploy.py --setup all]

Sorry to say this but I've stopped maintaining this installer.
Sent from mobile device

On Jan 25, 2017, at 12:27 AM, Joshua Holmes<EMAIL_ADDRESS>wrote:
Using OSx version 10.12.2
Python version 2.7 (pip 9.0)
I have followed the commands in docs but when I attempt the "python cldstkdeploy.py" command and go through the questions it always winds up with the same error message:
cannot import name PlayBook
You need to run [python cldstkdeploy.py --setup all]
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


cleanup-old-timers

Pull Request Test Coverage Report for Build 665963473

6 of 6 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.5%) to 89.286%

Totals

Change from base Build 665779732:
0.5%

Covered Lines:
265

Relevant Lines:
282

💛  - Coveralls


Issue updating Resource ID using Update-GSResource

We are working on creating new resources as well as updating existing ones.  We want to change the id on some of our resources and am trying your example "Update-GSResource -ResourceId Train01 -Id TrainingRoom01" using our test resource and it is returning an error.  We are able to update the capacity successfully using the same ResourceId, but get a "resource not found" error when we try to do -id.

Alright, so did some digging @cmason34 - The Id parameter there is a convenience parameter for Calendar Resources that I added on the Update function since it was being returned when using Get. The confusion on my end was that I'm adding that property to the returned object on the Get function, so it doesn't actually exist. On the Update function, what happens is it first sets the ResourceId to the value set for that parameter (which would be the actual ResourceId of the resource), then the additional pass of a value for Id overwrites that with an expectedly non-existent ResourceId, resulting in failure to find the Resource.
Checking Google's REST documentation here, you can see that...

There is no property on the object named Id
The resourceId property is actually not writable, meaning that once set, you can't change it from what I can tell.

I'm going to remove the additional Id parameter to avoid confusion and subsequent failures. Thank you for bringing this to my attention!
Let me know if you have any questions regarding this!!

hey @cmason34 - Updates have been deployed that remove the Id parameter as mentioned to avoid confusion! Docs also updated with a working example.


Add macros to simplify syntax of creating dispatches and facades

Changes

Added macros DEFINE_MEMBER_DISPATCH, DEFINE_FREE_DISPATCH, DEFINE_FACADE, and DEFINE_COPYABLE_FACADE. These macros are not intended to be included in the proposal of standardization, but should make the library easier to use before the static reflection standards are stabilized.
Removed class template pro::dispatch_adapter since it is shadowed by the macros.
Fixed a bug: When the required return type of an overload is void, but the concrete return type of a dispatch is not void, the code won't compile.
Updated unit tests and sample code accordingly.

Quick glance
Before:

struct Draw : pro::dispatch<void(std::ostream&)> {
  void operator()(const auto& self, std::ostream& out) { self.Draw(out); }
};
struct Area : pro::dispatch<double()> {
  double operator()(const auto& self) { return self.Area(); }
};
struct DrawableFacade : pro::facade<Draw, Area> {};

After:
DEFINE_MEMBER_DISPATCH(Draw, Draw, void(std::ostream&));
DEFINE_MEMBER_DISPATCH(Area, Area, double());
DEFINE_FACADE(DrawableFacade, Draw, Area);

One nitpick: in places like DEFINE_MEMBER_DISPATCH(Area, Area, double()); it is not very clear what each "Area" is. One is the name of the struct, the other the member function called, but which is which? This is more obvious in the  DEFINE_FREE_DISPATCH(ToString, to_string, std::string()); example. Naming is hard. :-)

It helps, thank you!


setTransparent

Looks like this method doesn't work anymore. Is that because of the new encoder?

I have the same problem. For everything else it works fine

I just found the solution.
class GIFEncoder extends EventEmitter {
  constructor(width, height, algorithm = 'neuquant', useOptimizer = false, totalFrames = 0) {
    super()
    ...

   this.transparent = null // Change null to true / 1
   ....

}

This appears to be of type boolean and you can assign the value 1 or better yet the value true

After writing all the above I realized that none of this is necessary, there is a simple method to change this value without having to touch the library
...
    const encoder = new GIFEncoder(width, height, 'neuquant');

    encoder.createReadStream().pipe(fs.createWriteStream('./temp/myimage.gif'));

    encoder.start();

    encoder.setTransparent(true) // Enable transparency <-----------------
    encoder.setRepeat(0);   // 0 for repeat, -1 for no-repeat
    encoder.setDelay(85);  // frame delay in ms
    encoder.setQuality(10); // image quality. 10 is default.
...

@MiguelArenasVillalobos brilliant, i’d been looking closely for that

Can't seem to specify the color for transparency. Always seems to set black pixels to transparent.

Still an issue. Doesn't seem to allow me to define what color is actually transparent. Currently turns all black pixels transparent.

Same issue here! How to select the transparent color?
What version of the library had this feature working? I think i'm rolling back

I'm using:
import GIFEncoder from 'gif-encoder-2';

/* some code skipped... */

const encoder = new GIFEncoder(width, height, 'neuquant', true, totalFrames );

"gif-encoder-2": "^1.0.5",

CODE:
 encoder.setTransparent(true)

IS WRONG.
This is because setTransparent expect you to provide a color in hex to be marked as a transparent inside the GIF.
But here is a "catch":
Method findClosest inside the lib will NOT work properly if you provide this code as e.g: #52ff5d
That is why this CODE:
 encoder.setTransparent('#52ff5d')

IS WRONG.

Explanation: this will mark color to be transparent - but it will mark RGB ( 0, 0, 0 ) - black color to be tranparent. This is because how findClosest works.

---- SOLUTION ----
CODE:
 encoder.setTransparent('0x52ff5d')

IS GOOD 👍

Explanation: this will make findClosest to calculate proper R G B values, because code inside this method looks like this:

var r = (c & 0xff0000) >> 16
var g = (c & 0x00ff00) >> 8
var b = c & 0x0000ff

where c is our "0x52ff5d"


Coursera's closed courses from 30 june

30 June will close hundreds of courses on coursera.org including courses from OSS path: Automata, Computer Architecture, Computer Networks, Coding the Matrix: Linear Algebra through Computer Science Applications, Compilers. Need to find a replacement.

You can download them before they remove all of them. Checkout coursera-dl on GitHub (Link below).
https://github.com/coursera-dl/coursera-dl

I know, and downloaded two courses — Automata and Natural Language Processing. But now coursera.org removed the ability to download courses with this tool, or they periodicaly "are down for maintenance" :-).  And what about prospective students who will join the OSS after the 30th of June?

They will also remove Algorithms Part I & II, and Heterogeneous Parallel Programming

Most of the courses that are being removed are up for download via torrents.By searching for [coursera] on kat.cr I see that most of the removed courses (Algorithms Part I & II, and Heterogeneous Parallel Programming) can be found along with assignments. user eru_melkor has some stuff on kat.cr as well.

According to http://online.princeton.edu/courses Algorithms, Part I and II are Upcoming but... all courses are "temporarily unavailable" at the moment.
It looks like Coursera is going to keep Algorithms: Design and Analysis, Part 1 and Part II is also in their catalog. I haven't looked up the other courses but it would surprise me if the universities completely remove their online content. Standford, Princeton and MIT have their own platforms so I would I start looking there. Some Professors also have there online content advertised on their homepages.

Is there a step-by-step instruction to getting the courses that will be discarded? (besides the script, which courses will be discarded, which ones are open for enrollment, and potential replacements for those specific ones.)

#339

FYI, archive.org has preserved coursera courses.
https://archive.org/details/archiveteam_coursera


Fix enable/disable logging and add logging to GroupResponse

Coverage decreased (-5.4%) to 87.239% when pulling 917bfcac1d4a93c3eb1a4fcb79e4dc758b36cf9a on enniel:logging-patch into 112152af74d32304e74b96bd1afc7cbd99e2bc5c on brozot:master.


Improve UX when VS Code can't reach Marketplace

Coming in as an item from the Marketplace outage postmortem analysis. We need to handle being offline and/or not being able to reach the Marketplace in a better way. It's hard to distinguish both scenarios (user offline vs marketplace offline) but we gotta see what we can come up with.
It would also be interesting it we could check some service status somewhere and inform the user that something is wrong in the service itself.

Looks like a dupe of #57901

Duplicate of #57901


docs: document PointNearOriginNotice usage

Summary:
This PR updates RULES.md and NOTICES.md with documentation related to PointNearOriginNotice.
Please make sure these boxes are checked before submitting your pull request - thanks!

[x] Run the unit tests with gradle test to make sure you didn't break anything
[x] Format the title like "feat: [new feature short description]". Title must follow the Conventional Commit Specification(https://www.conventionalcommits.org/en/v1.0.0/).
~[ ] Linked all relevant issues~
~[ ] Include screenshot(s) showing how this pull request works and fixes the issue(s)~

Looks good! Can you please add it in MIGRATION_V2_V3.md as well?


⚠ Turnos 24x7 has degraded performance

In b57516f, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 1001 ms

Resolved: Turnos 24x7 performance has improved in b041290.


Improve argument checking and set IMPORTED_NO_SONAME

Currently imported shared libraries don't have an soname set by default, so we should set IMPORTED_NO_SONAME.
Refactor some of the argument passing, so we can have better argument checking. Mostly important to ensure that arguments are actually passed around and not just happen to be in scope because the caller had the variable defined too. Also makes calling functions less error prone, since named arguments are better readable than a long list of positional arguments.

bors r+

bors retry


fix segment width bug when the height were given

p = Panel(""; width = 5, height = 4)
julia> println(p)

Before

After

Awesome,  nice find thank you! I'll add it in and I've added tests to ensure this would be detected in the future.

That was fast! I was just working on the test for this PR, but you've already merged it 😅
https://github.com/YongHee-Kim/Term.jl/commit/9f990bddaabfa12678a8037f5205f23bb0d641db

Here: ed20b790987afb9547363d4edc1fc63c9c915412
Sorry I didn't realize you were still working on it, I should've checked first.
By the way you can open pull requests in Draft mode to prevent premature merging.
Thank you for helping with Term!

No you don't have to check with me, It's bad habit of making a haste PR. Thanks for the tip. I should use draft mode in the future

Absolutely! I think I will be using the Term.jl for my work.
I'm on windows 10. If you need testing on windows, let me know I am happy to contribute.
And thanks for the doc.

Awesome!
I'm glad to hear you're planning to use it. Let me know how it goes. I've also opened Discussions up for generic questions/discussion. I don't know if you ever used rich in Python (which Term is based upon), but if there's something from rich you'd like to see implemented here let me know!


BUG: No color on hover of icons on the Buy Products page like other pages .

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
No color on hover of icons on the Buy Products page like other pages .
https://github.com/user-attachments/assets/54b3815e-340a-49da-a16e-01b7f883dcd7
Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@Suchitra-Sahoo this issue is still there , kindly assign this to me .

@Suchitra-Sahoo can you please assign this to me .


⚠ Bofrost.es has degraded performance

In c210df3, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 2015 ms

Resolved: Bofrost.es performance has improved in 686ca57 after 8 minutes.


Added flatpak support

The program now searches into the /var/lib/flatpak/exports/share directory for .desktop files.

Thanks for the PR. Since the current status of this project is still WIP, I haven't implemented some features, including XDG base directories. According to Flatpak page in Arch Wiki, if you have installed Flatpak, the environment variable XDG_DATA_DIRS (I believe it's similar for other XDG paths) should include the path of Flatpak's desktop entries. You can check if that's the case.
I think I can push some new commits right away, which should make it show Flatpak applications without specific consideration.

Yes, with the last commit the program now shows flatpak entries :) Thank you!


typo in CC:2022 bibliography

The CC:2022 Part 1 bibliography reference is incorrectly dated as "Novemeber"

Fixed


Start refreshing the functional suite

TATS has bitrotted since completing the upgrade to bootstrap4. This commit starts to fix that. Change a couple of text strings and a couple of element lookups. Before this commit:
38 passing (334.90s)
49 skipped
91 failing

After this commit:
65 passing (428.10s)
49 skipped
64 failing

After acad17c:
73 passing (457.00s)
49 skipped
53 failing

After 31283dac:
85 passing (464.30s)
49 skipped
36 failing

I dropped 7 or 8 tests for adding periodic targets to existing indicators because that functionality no longer exists.

After 084ee2ad. Not too shoddy for < 2 dude-days.
Number of specs: 26

94 passing (520.40s)
49 skipped
23 failing

And, finally, after 5ed3495:
95 passing (505.10s)
49 skipped
22 failing


How do i link user group Ids to products by group display name

I have found below example to associate user groups with the template.
"type": "Microsoft.ApiManagement/service/products/groups",
"name": "[concat(parameters('ApimServiceName'), '/starter/developer' )]",
But in some of the old apim instances the identifier of the built-in group (Developers) was some numbers. So i get error as group not found.
Group name : Developer
Identifier : XXXXXXXXXXXXX
How can i get the user group identifier dynamically by the group display name ("Developers") in the template

Are you using Extractor or Creator?

@Sacratees, normally display names are not being used as references since they (usually) are editable and therefore can not be "trusted" in the long run. So that's why we use the identifier as a reference in the ARM templates.
Are you able to provide an example of the template if it's not working for you?
I haven't had the time to try it, but from the service/products/groups template reference, I'd expect it to be similar to:
  {
    "type": "Microsoft.ApiManagement/service/products/groups",
    "name": "developers",  // or perhaps [concat(parameters('ApimServiceName'), '/developers')]
    "apiVersion": "2019-01-01"
  }


Fix golden file matcher size calculation

It was referring to element, while it was painting the render
object's layer (where render object no longer necessarily matched
element).
https://github.com/flutter/flutter/issues/16859

Superseded by https://github.com/flutter/flutter/pull/17129


Tesseract fails to detect letters Å and å in Finnish language.

Testing Tesseract to detect Finnish texts containing "swedish o" -> å. Seems it cannot detect them- Å and å correctly. I have also tried fin+swe model but more usually the fin model version of the text is selected.
Is the previous training files available somewhere? Probably the training data does not have enough Åå cases or it is not included even it is official letter.

Yes, what should i do to make it happen? Collect some data and box them with some tool? where can i get the current data? Cannot see any images here https://github.com/tesseract-ocr/langdata_lstm/tree/master/fin

Also letters Q and q are missing from the data? There should be all letters at least abcdefghijklmnopqrstuvwxyzåäö
ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ
1234567890
How can these be fixed?

I'd add all desired characters to desired_characters, ideally sorted with LANG=C.UTF-8 sort. Then we at least have a list of those characters and can try to find training texts which include them sufficiently often.
To fix the problem, we still have to run new training ...


EDGEPOD-427:s11-mme-app Interfaces changes to support dedicated bearer

This activity contains the following changes w.r.t dedicated bearer related messages.

Q Msg Structures for Create & Delete Bearer Request/Response supporting one bearer context currently.
S11 handlers
Fix in gtpV2Codec to handle multiple instances of "EpsBearerIds" in Delete Bearer Request message.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

add to whitelist

retest this please


doomretro: 5.3 -> 5.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/bradharding/doomretro/releases.
meta.description for doomretro is: A classic, refined DOOM source port
meta.homepage for doomretro is: https://www.doomretro.com/
meta.changelog for doomretro is: https://github.com/bradharding/doomretro/releases/tag/v5.4
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 5.4 with grep in /nix/store/sbhqsp773n2aqf65m78q5mk41m8m2bzn-doomretro-5.4
found 5.4 in filename of file in /nix/store/sbhqsp773n2aqf65m78q5mk41m8m2bzn-doomretro-5.4

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

doomretro

Instructions to test this update (click to expand)

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

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

Or:
nix build github:r-ryantm/nixpkgs/1f17183869f4ab9fe8ba3a6b5c2291aec3b3c56f#doomretro

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

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

1 package built:

doomretro

Maintainer pings
cc @AndersonTorres for testing.

@NixOS/nixpkgs-merge-bot merge

Let me migrate this, then.

The package is called with
  doomretro = callPackage ../games/doom-ports/doomretro {
    inherit (darwin.apple_sdk.frameworks) Cocoa;
  };

which I'm not sure how to migrate. Please open a new PR for that, then.


Convert? - Any interest in single_image_random_dot_stereograms

Hi,
I am the original Author of the single_image_random_dot_stereograms "contrib" in TensorFlow 1.X.  Is there any interests to move this image technology into the AddOn's?  I know there are a few users out there but understand it isn't an imperative to keep in TensorFlow.  Great way to view 3D without hidden lines (like the older waterfall plots).
"Single Image Random Dot Stereogram for Tensorflow
SIRDS is a means to present 3D data in a 2D image. It allows for scientific data display of a waterfall type of plot with no hidden lines due to perspective. Data is encoded to show data in the Z direction as depth.
This project is based upon: http://www.learningace.com/doc/4331582/b6ab058d1e206d68ab60e4e1ead2fe6e/sirds-paper
"
You can see a demo of what it can do here:
https://github.com/Mazecreator/TensorFlow-SIRDS/blob/master/single_image_random_dot_stereograms/SIRDS Demo.ipynb
If there is interest, I wouldn't mind spending some time trying to convert it for a future AddOn's release.

Hi @Mazecreator, thanks for asking here! Could you update the url of http://www.learningace.com/doc/4331582/b6ab058d1e206d68ab60e4e1ead2fe6e/sirds-paper.
I could not access it.

I will see if there is another copy of that paper, that link does seem to be dead now...
I found one:
https://www.cs.waikato.ac.nz/~ihw/papers/94-HWT-SI-IHW-SIRDS-paper.pdf

cc @seanpmorgan

Hi @Mazecreator apologies for the slow response. So we looked at the tf.contrib usage and unfortunately we didn't see a lot of use. In the interest of keeping our code base manageable I think we'll have to reject this unless there is an outreach from the community saying they're missing it.
Very sorry -- it's no fun turning down contributions.... but I hope you stick around and join the Addons community! FWIW the code looked solid.

Understood, no problem.  It is a bit of a corner case for 3D data.


Evaluate error

thanks for your nice work!
I tried to reproduce the results on iNaturalist and SOP with a 32G V100. But I met the same error in the evaluation phase.
The error information is as follows：
[2023-03-31 09:27:57,441][PML][INFO] - Computing accuracy for the test split w.r.t ['test']
Traceback (most recent call last):
File "roadmap/single_experiment_runner.py", line 66, in single_experiment_runner
checkpoint_dir=resume,
File "/home/yangjian/retrieval/ROADMAP-main/roadmap/run.py", line 154, in run
restore_epoch=restore_epoch,
File "/home/yangjian/retrieval/ROADMAP-main/roadmap/engine/train.py", line 100, in train
**dataset_dict,
File "/home/yangjian/retrieval/ROADMAP-main/roadmap/utils/get_set_random_state.py", line 32, in wrapper
output = func(*args, **kwargs)
File "/home/yangjian/retrieval/ROADMAP-main/roadmap/engine/evaluate.py", line 145, in evaluate
splits_to_eval=splits_to_eval,
File "/home/yangjian/anaconda3/envs/roadmap/lib/python3.7/site-packages/pytorch_metric_learning/testers/base_tester.py", line 307, in test
reference_split_names,
File "/home/yangjian/anaconda3/envs/roadmap/lib/python3.7/site-packages/pytorch_metric_learning/testers/global_embedding_space.py", line 26, in do_knn_and_accuracies
self.ref_includes_query(query_split_name, reference_split_names),
File "/home/yangjian/retrieval/ROADMAP-main/roadmap/engine/accuracy_calculator.py", line 140, in get_accuracy
query_labels, reference_labels, self.label_comparison_fn,
File "/home/yangjian/anaconda3/envs/roadmap/lib/python3.7/site-packages/pytorch_metric_learning/utils/accuracy_calculator.py", line 153, in get_label_match_counts
comparison = unique_query_labels[:, None] == reference_labels
RuntimeError: The size of tensor a (512) must match the size of tensor b (60502) at non-singleton dimension 2
I have printed the 'query_labels' and 'reference_labels':
query_labels: tensor([[-0.0357, -0.0059, -0.0690,  ..., -0.0238, -0.0273,  0.0572],
[-0.0684,  0.0068, -0.0903,  ..., -0.0357,  0.0095,  0.0314],
[-0.0661, -0.0320, -0.0592,  ...,  0.0084, -0.0471,  0.0413],
...,
[-0.0183, -0.0594, -0.0730,  ...,  0.0730,  0.0116,  0.0096],
[ 0.0094, -0.0630, -0.0917,  ...,  0.1146, -0.0042,  0.0074],
[ 0.0019, -0.0335, -0.0428,  ...,  0.0115, -0.0445,  0.0971]],
device='cuda:0') torch.Size([136093, 512])
reference_labels: tensor([716, 716, 716,  ..., 810, 810, 810], device='cuda:0') torch.Size([136093])
Could you please help us find out the possible reasons?

Hi, was this issue resolved with issue you raised here: https://github.com/elias-ramzi/HAPPIER/issues/4 ?

No, it did not resolve this issue.

Have you modified the code?
The query_labels you seem to have are a float tensor with shape 136093 x 512. I do not understand why this is the case.

No, I did not modify the code. I just downloaded the code, then changed the data_dir in config/dataset/sop.yaml and test_eval_feaq in config/experience/default.yaml from 5 to 1. After that, I ran the command for SOP dataset and met the error when computing accuracy.

Ok, I will ran the code to check if I get the same errors!

The errors were due to a library version, please install pytorch-metric-learning==0.9.99 it should fix the issues. I will update the requirements.txt accordingly.

I changed the version of pytorch-metric-learning. It fixed the issue.
Thanks for your reply.

Great! I am closing the issue, do not hesitate to reopen it if you have any questions.


Fix bug with error page from Up to date button

I replace the icon with button, so that it look like the follow picture

https://github.com/rancher/rancher/issues/9786

@n313893254 the dropdown icon is missing and you should use if else in the template instead of just deleting the button. The button is still useful when upgradeStatus is neither current nor available.

@n313893254

Squash into one commit.
Put the issue URL at the end of commit body, not in the title.

This seems fine; for anything you do in 1.6 check if there needs to be a corresponding 2.0 PR (there likely is in this case).


Export TMT_TEST_NAME and TMT_TEST_METADATA

The test name is mostly self-explanatory - a test likely should have easy access to its name. My use case is calling external logic (waiving scripts), which consult an external database, indexed by test name.
While discussing this with other tmt maintainers, metadata.yaml was also mentioned, and that it probably should be part of some accessible-to-test interface. Hence the export as another variable.
(I moved the metadata.yaml name to a class variable, to avoid hardcoding on two places.)
Example from a test running env:
...
TMT_TEST_NAME=/parent/dir/oscap-scan
...
TMT_TEST_METADATA=/var/tmp/tmt/run-078/plans/example/execute/data/parent/dir/oscap-scan/metadata.yaml
...

Pushed a new version, made the filename a module-wide constant, and re-tested everything on the latest code using venv.

/packit test

@comps btw we use pre-commit for various checks. Install it and pre-commit install, then these failures it will detect or even fix before you commit.

/packit test

/packit build


[FEAT]: Complete redesign of Track Orders page

Is your feature request related to a problem? Please describe.
The current design of the order tracking page looks outdated and could be improved for better usability. Users may find it difficult to quickly scan through orders due to the unstructured arrangement and lack of design elements such as icons or improved styling. Additionally, the spacing and alignment feel uneven, making the page look cluttered.
Describe the solution you'd implement
I would like to create a modern looking UI design and one which looks more appealing. I can go with 2 options:

Enhancing the UI keeping it in table format
Show order cards instead of table view. Something similar to the below:

Describe alternatives you've considered

The standard Table view:
Reference image ( somehwhat similar to this not exact ):

Order in form of cards:

Additional context
I would like to work on this issue under gssoc-ext and hacktoberfest.

Hey @ArchanRD, We are currently having a complete redesign of of the Client UI in issue #43, Try to merge this PR before the other issue is completed so that we can compare both the designs and go ahead with the better one.
I'll assign this issue level 2, Make sure the PHP script is integrated without any errors to render the orders

Done!


Add register listener

Allow for singular listeners to be added and ability to overwrite default listeners
Repeater::make()->registerListener('repeater::createItem', fn () => )

Thanks, but I don't see the value in this when array syntax also works. Also, I think this has a bug where it overwrites any existing listeners for the event.
In v3 the event system is being replaced and you wont need an array for this anyway.

No worries I can do this in my extended class, but  that's exactly what I need to do is overwrite a default listener.


file_webp_load error in stablehorde flavor

Hi, first of all, thanks for such amazing plugins. The main one for colab is working great, but then I tried the stablehorde one and is giving me an error when trying to show the generated image. It says it cannot find file_webp_load... I guess it's because my gimp 2.8 version doesn't supports webp. Is there a workaround, or do i've to install gimp 2.10?
Regards,

I just checked. It seems that webp is supported since 2.10. So, unfortunately it‘s necessary, that you install this version. I will update the readme, that 2.10 is needed.

It seems, that stablehorde is currently pretty slow due to many requests. They are currently working on solving the problem.

OK, thanks... will upgrade asap. Regards,


Generate an index page of all pages

[x] Needs to actually create links, still deciding on design for that.
[x] Then need to hook it up to current template in config.
[x] Lastly, passing this config.Config around is getting silly.

Merging this, there is now an index which list pages! :tada:


fix unbound variables errors

Since set -u  has been introduced in tesstrain_utils.sh several unbound variable errors have occured when using tesstrain.sh.
This PR assigns empty default values to several variables to avoid these errors.

thanks!


How to set the WANDB_API_KEY_FILE environment variable

In smacv2
/RUNNING_EXPERIMENTS.md step 0 is to set the WANDB_API_KEY_FILE environment variable as mentioned in the introduction. However, in the Introduction, there is some missing text on how to do this. Could you please help me set that up?
Thanks!

Hi. Apologies looks like I missed out some instructions. I've updated the doc now. Let me know if you have further issues!

Thanks @benellis3 !


We are sorry for the delay of releasing video-based code.

We are very very busy in recent and coming months. We will try our best to release the video-based code soon,
You can consider modifying the frame-based framework to make it suitable for a video-based pipeline by yourself. Thanks for your understanding.

Hello,
When the code of Video-based experiments will be released approximately?

Hello，
Would you make a tutorial about modifying the framework at least?
Please.


⚠ ClamAV has degraded performance

In 49384fc, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 67 ms

Resolved: ClamAV performance has improved in 49bcf92.


Technical Spike - SFTP API Integration

Title of ticket:
Description
Common Services SFTS (Secure File Transfer Service) API - we want to deliver the records package to an applicant. Need to understand how we can integrate with this service.
Note: For General FOI Requests - applicants are given a link that they can download the package

For personal FOI requests the package needs to be password protected, and the password must be sent to the applicant separately.

Right now, IAO downloads the package from AXIS, and manually uploads to the SFTS - the applicant is then emailed the package from the service
Dependencies
Are there any dependencies?
DOD

[ ] Can this integrate with FOI flow
[ ] Can we send a password protected package
[ ]
[ ]
[ ]

@sumathi-thirumani-aot to take this on, please include links to common component service @abin-aot

Pls add estimate after initial analysis and can bring into sprint

Information Required:

Server name
Port
Username
Password
Private keys

Finally have found the right contact - got the following response. I think this might close the door on SFTP integration:
Hi Matthew,
There is an API for SFTS, but we don't license it. The province decided against it for a number of reasons and it costs more. Let me know if you have any other questions.

cc @lmullane @abin-aot


Allow visualization server to build without client

The macro TC_BUILD_VISUALIZATION_CLIENT should only be used for the
client (tcviz app on macOS or Linux); the C API for visualization
should work regardless as it's purely data structure transformations
and doesn't depend on any client app.

Looks good to me!

@abhishekpratapa -- I think you need to just approve the PR, then Zach can merge it instead of closing it.

Thanks @hoytak. You could approve it as well. 😄


G305 not working

Hi,
My G305 has just arrived, but Piper-libratbag does not detect it. I also have a G600 and it is normally detected by libratbag. I run lsusb and realized that the entry that corresponds to the G305 is Bus 001 Device 008: ID 046d:c53f Logitech, Inc. CSR8510 A10. It is different from the id that appears on the config file (usb:046d:4074). So I edited the config file and added my G305 ID, changing the line to DeviceMatch=usb:046d:c53f;usb:046d:4074. I have reboot but the device is still not detected.

It should be working out of the box in Linux 5.4, can you confirm?

I am running Ubuntu 19.10, it will probably not update to 5.4. I also tried to update the kernel by force, but the gnome display manager wouldn't start, so I cannot get into the desktop to test it right now.

Hi, I'm on Arch with kernel 5.4.2-arch1-1 and I can confirm the G305 is not working.
This is the output when I plug in the USB receiver:
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech USB Receiver
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: No data file found for 046d:c53f
ratbag debug: New device: Logitech G305
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver hidpp20
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0xffffc53f
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0xffffc53f
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0x4074
ratbag debug: Logitech G305 is device '/dev/hidraw7'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 0e
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 10
ratbag debug: - HID report ID 11
ratbag debug: - HID report ID 20
ratbag debug: - HID report ID 21
ratbag raw: hidpp write:  11 ff 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: hidpp read:   10 01 8f 00 18 09 00
ratbag debug:     HID++ error from the device (1): ERR_UNSUPPORTED (09)
ratbag debug: New device: Logitech G305
ratbag debug: Using data directory '/usr/share/libratbag'
ratbag debug: device assigned driver hidpp20
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0xffffc53f
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0xffffc53f
ratbag debug: hidraw info: bus 0x03 vendor 0x46d product 0x4074
ratbag debug: Logitech G305 is device '/dev/hidraw7'.
ratbag debug: Parsing HID report descriptor
ratbag debug: Parsing HID report descriptor
ratbag debug: - HID report ID 01
ratbag debug: - HID report ID 0e
ratbag debug: - HID report ID 02
ratbag debug: - HID report ID 10
ratbag debug: - HID report ID 11
ratbag debug: - HID report ID 20
ratbag debug: - HID report ID 21
ratbag raw: hidpp write:  11 ff 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ratbag raw: hidpp read:   10 01 8f 00 18 09 00
ratbag debug:     HID++ error from the device (1): ERR_UNSUPPORTED (09)

You need https://github.com/libratbag/libratbag/issues/833#issuecomment-563904023.

Thanks, it works!! From what I see there are minor issues, but it's a start

Which issues are you having?

For example if I change the resolution with the mouse button, Piper will not be updated.
Or if I set the backward button to be a doubleclick it doesn't work

Ah, that is a known issue and it's not G305 specific. It's the way libratbag and piper are designed. It is possible to fix it but we have much more pressing issues.