cmake: kconfig: llvm: riscv: Add baseline clang/llvm support for RISC-V

Overview
This patch aims to establish a baseline level of support for building with clang/LLVM when targeting RISC-V. Previously, a few minor things were missing that prevented building:

Clang's --target flag and the RISC-V specific -march/-mabi/-mcmodel flags were not being set appropriately, giving unexpected build failures depending on the toolchain's default values for these flags.
TLS support was not "advertised" when building with Clang/LLVM, preventing building tests/apps that rely on this support.

With these two things resolved, a decent number of the tests that support the qemu_riscv32/64 platforms are passing. However, there are still some lingering failures and misc. warnings that I hope to resolve in subsequent PRs--see the "Testing" and "Follow-up work" sections for details. I left these as future work given the number of different issues, but I can slowly work on them and include the fixes here if that would be preferable!
Testing
This patch was tested by enabling 'llvm' in the qemu_riscv32.yaml and qemu_riscv64.yaml files and running the tests for these boards with clang + lld as well as clang + GNU ld. I am using a version of clang/llvm built at https://github.com/llvm/llvm-project/commit/f7669ba3d9443bc95dd63fa25beea13e6265fdc5 (from 1/23/2024, so fairly recent).
Tests were run with the following commands. Please note that -W was specified as there are some unexpected warnings appearing currently.

clang + GNU ld command: west twister -W -p qemu_riscv[32/64] -x=CONFIG_LLVM_USE_LD=y -x=CONFIG_COMPILER_RT_RTLIB=y
clang + lld command: west twister -W -p qemu_riscv[32/64] -x=CONFIG_LLVM_USE_LLD=y -x=CONFIG_COMPILER_RT_RTLIB=y

Test summaries are shown below:

clang + GNU ld, riscv32: INFO    - 469 of 2463 test configurations passed (95.71%), 4 failed, 17 errored, 1973 skipped with 0 warnings in 1673.90 seconds
clang + GNU ld, riscv64: INFO    - 471 of 2463 test configurations passed (96.52%), 12 failed, 5 errored, 1975 skipped with 0 warnings in 1685.06 seconds
clang + lld, riscv32: INFO    - 469 of 2463 test configurations passed (95.71%), 4 failed, 17 errored, 1973 skipped with 0 warnings in 1740.49 seconds
clang + lld, riscv64: INFO    - 325 of 2463 test configurations passed (66.60%), 1 failed, 162 errored, 1975 skipped with 0 warnings in 1391.14 seconds

Notable test failures that I'm aware of:

lld fails for ~150 tests with relocation out of range errors for riscv64. The values of __tbss_align (for example) are technically out of range from where they are referenced given that we're building with -mcmodel=medany. GNU ld will "relax" the auipc + addi pair to an lui + addi pair, allowing this to work but lld does not implement this. There is some relevant discussion at https://github.com/llvm/llvm-project/issues/78346 (lld) and https://github.com/riscv-non-isa/riscv-elf-psabi-doc/issues/197 (RISC-V psABI). I'm still trying to understand how this should be resolved in the long-term.
Some tests (ex: samples/application_development/external_lib/sample.app_dev.external_lib) fail with an error along the lines of unsupported argument 'medany' to option ... for target <default target>. I think the build commands for the external library in the test are not setting --target appropriately.
A few tests (ex: tests/arch/riscv/fpu_sharing/arch.riscv.fpu_sharing) fail with error: .option pop with no .option push. This is an issue with clang--it does not handle having .push and .pop specified in separate inline-asm statements well.
tests/kernel/workq/work_queue/kernel.workqueue fails with a failed assert &initialized_by_function not equal to &initialized_by_macro. I think this might be an issue with clang--I'm still investigating this though.
~11 runtime failures that seem specific to clang and show up as an unexpected coredump or access fault. A few sample tests where I'm seeing this are tests/kernel/threads/thread_apis/kernel.threads.apis, tests/kernel/common/kernel.common.minimallibc, and tests/subsys/debug/coredump/debug.coredump.logging_backend. I haven't investigated this yet.
A few tests (ex: tests/drivers/console_switching/drivers.console_switching) fail to build with errors along the lines of error: unknown type name 'ssize_t'; did you mean 'size_t'?. My understanding is that for these tests Zephyr's toolchain is invoked with --specs=picolibc.specs which helps to find the right definition of ssize_t. Clang doesn't support --specs, so I need to investigate to see how best to support these cases.

Follow-up work
In addition to the test failures above, there are a few other issues with the Zephyr/LLVM/RISC-V combo I'm aware of that I'd like to resolve in later PRs:

Pass -m[no-]-global-merge only for Arm/AArch64 targets when building with clang (the flag only has an effect on Arm/AArch64 currently, all other targets see a warning about an unused argument).
Constant conversion warning (I'm not sure if this is a clang or Zephyr issue): /workdir/zephyr/drivers/timer/riscv_machine_timer.c:187:47: warning: implicit conversion from 'unsigned long' to 'int32_t' (aka 'int') changes value from<PHONE_NUMBER>8547 to -702313053 [-Wconstant-conversion]
Resolve 'register' warning: /workdir/zephyr/include/zephyr/arch/riscv/arch_inlines.h:17:9: warning: 'register' storage class specifier is deprecated and incompatible with C++17
lld gives a few misc. warnings for .symtab, .strtab etc.
lld needs --relax-gp to be explicitly passed for gp-relaxation to be enabled.

Questions

One consequence of using include(${ZEPHYR_BASE}/cmake/compiler/gcc/target_riscv.cmake) in cmake/compiler/clang/target.cmake is that it requires a version of LLVM that is able to handle the separate zicsr and zifencei extensions. This was only very recently implemented in LLVM, however (https://github.com/llvm/llvm-project/commit/22e199e6afb1263c943c0c0d4498694e15bf8a16). So, effectively this would require an LLVM version >= 17.x. Would it be better to version gate adding zicsr and zifencei to the -march string for incompatible LLVM versions? I think doing so should be correct from a RISC-V/LLVM standpoint, but I'm not sure what makes sense from Zephyr's standpoint.
Would it make sense to enable 'llvm' in the qemu_riscv[32/64].yaml config files to make testing easier for others? I didn't mark llvm as supported due to the number of failures, but I'd like to enable this long-term if that would be ok.

Gentle ping on this.
(I dropped this for a bit but I'm hoping to pick the LLVM/RISC-V/Zephyr work back up. Any advice on the questions above and whether all the LLVM/RISC-V/Zephyr failures described above need to be resolved prior to merging, etc. would be greatly appreciated!)


An error occurred in the ‘ftk_LoadData’ query. Expression.Error: We cannot convert the value null to type Table. Details:     Value=     Type=[Type]

I've set up the FinOps Hub. Data is in the ingestion container as a parquet file. I can access the data with the cost summary report so permissions are fine and the data looks good. When i try and use the FOCUS report i get the following error:
An error occurred in the ‘ftk_LoadData’ query. Expression.Error: We cannot convert the value null to type Table.
Details:
Value=
Type=[Type]
I've seen a previous issue in GitHub and nothing seemed to fix my problem. Any help is much appreciated. Thanks!

Same issue only in the RateOptimization report. The CostSummary one works fine.

@highsmithjd What's the Hub and Report version that you are running? You can check the Hubs version by looking at the settings.json inside of the config container.
To check the report version, just open it on PBI desktop and look at the "Get Started" page. There is a little "version" at the top

Microsoft support said the FOCUS report does not work with FinOps 2.0 or greater. The FOCUS report is merged into the Cost Summary report.


fix: Allow UuidInterface array deserialization

This commit will allow deserialization of array of UuidInterface using
PhpDocExtractor.
Ref: #12

Codecov Report

Merging #18 into master will not change coverage.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##              master       #18   +/-   ##
===========================================
  Coverage     100.00%   100.00%
  Complexity        10        10
===========================================
  Files              2         2
  Lines             16        15    -1
===========================================
- Hits              16        15    -1

Impacted Files
Coverage Δ
Complexity Δ

src/UuidNormalizer.php
100.00% <ø> (ø)
2.00 <0.00> (ø)

src/UuidDenormalizer.php
100.00% <100.00%> (ø)
8.00 <0.00> (ø)

Continue to review full report at Codecov.

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


[Tooling] Implement "easy repro" in the test runner

Reproduction steps / Feature
If a test is failing, it would be good if we had a way to repro. Let's start with python - we have a pretty standard setup. For run_python_test we might be able to just write out the appropriate instructions.
Platform
core (please add to version below)
Platform Version(s)
No response
Type
CI tested
(Optional) If manually tested please explain why this is only manually tested
No response
Anything else?
No response

Note that we need to account for building the app and for different architectures.


extracting pages shows wrong nodes list

This PR fixes ciur/papermerge#563 and ciur/papermerge#567


Error connecting to tmux session

Repro
Command run
sesh connect $(sesh list -tz | fzf)

Error
2024/01/31 19:37:57 unable to connect to "~/projs/sesh": no tmux session found with name or path matching "~/projs/sesh"
stat /home/agus/~/projs/sesh: no such file or directory

Can confirm this behaviour on my system after pulling the latest version of the repo

@AgusDOLARD are you running v0.9.0 or off of main?
I have some work to do before releasing another version since #57 got merged.

the latest release using the go install command

@AgusDOLARD can you try it with the latest commit?

As of right now I'm not going to guarantee the latest commit is always stable, I'm currently working through some directory related stuff right now.
When the latest version gets released I intend on fixing this issue, thanks for letting me know!

Can you guys install the latest version of sesh and let us know if the same issue is still there?
go install github.com/joshmedeski/sesh@HEAD

seems fixed (:


Upgrade CANN version to 7.0.0.alpha003

Upgrade CANN version to avoid AscendC kernel runtime error.

@fengyuentau Could you take a look?

Looks good to me.

BTW, @asmorkalov I dont have reviewer permission in this org. I cannot add myself as reviewer.


chromecasts disconnect from greenscreen after 24 hours

We're observing an issue where the chromecasts loose their connections after some time, usually around 24 hours. Have tried multiple models of chromecast and different network setups. It seems it wasn't happening as much early on so perhaps a firmware change is causing it?

We've seen that as well. I'm moving my devices to wired connections, mostly to reduce wifi congestion, but I was hoping that would help. I'll update if it does.

@mattpangaro ok thats good we're not alone. We've been using the wired adapter for chromecast from the get-go so I'd expect you to have the same issue with wired however.

Hey @mattpangaro @wjimenez5271 Have you seen any improvement in this? Looking to roll this out in our office, this would be quite the annoyance.

We kind of froze our efforts on this while other priorities took over.
Hopefully I'll get back to it soon. In the meantime I've gone back to
just casting tabs from Chrome.
Gavin C wrote:

Hey @mattpangaro https://github.com/mattpangaro @wjimenez5271
https://github.com/wjimenez5271 Have you seen any improvement in
this? Looking to roll this out in our office, this would be quite the
annoyance.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/groupon/greenscreen/issues/59#issuecomment-219741546

I don't want to hijack this thread but I feel my issue is closely related. I don't think we are even seeing 24hrs right now. Our progression has been as follows (Note at the start we had problems getting greenscreen to work until we published our app):

Multiple Chromecast profiles, each one casting a google presentation (auto-play) to all screens
Greenscreen cycling between 2 identical google presentations so it would get updates (before we had to re-cast to get changes to the presentation, totally expected). However we found greenscreen would stop cycling after a period of time and while the presentation would continue to rotate it would not update
Greenscreen cycling between 7 webpages we designed specifically for digital signage. This would get kicked off after 8-24 hours (I never perfectly timed it)
Greenscreen not cycling but each web page using JS to redirect to the next page after a defined interval (Same issue as above)
Greenscreen with 1 webpage with an iframe that was cycled from the parent page (still got kicked off)
Greenscreen with 7 iframes and the parent page cycling them (but not updating them ever)

I'm trying to nail down why they are getting disconnected with the new system (web pages) but didn't under the old google presentation method. If this stays connected I might just go back to multiple chrome profiles casting a tab (that cycles and updates the webpages). We lose "channels" and alerts but we get consistent and updating digital signage which is what we really want.
If none of that works I'll probably look into some web page -> png/jpg library and write some code to periodically "snapshot" the web page and replace images in a flickr album that I can set as the google "backdrop". It won't be perfect but it will be less of a headache to keep connected as the chromecasts have no problem displaying the backdrop.

Looks like this may be related https://github.com/groupon/greenscreen/issues/48


chore: update dependencies

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 37.37%. Comparing base (f983c5a) to head (192c412).

Additional details and impacted files
@@            Coverage Diff            @@
##               main     #342   +/-   ##
=========================================
  Coverage     37.37%   37.37%
  Complexity      271      271
=========================================
  Files           170      170
  Lines          1830     1830
  Branches        104      104
=========================================
  Hits            684      684
  Misses         1119     1119
  Partials         27       27

Flag
Coverage Δ

unittests
37.37% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Use twoslash to create an eslint rule that validates jsdoc example tags

Once #793 is done, we can enforce that the example tags which contain twoslash directives in them compile appropriately using: import { twoslasher } from "@typescript/twoslash";
We can extend our eslint plugin rules to run this check and then appropriately throw lint errors when examples don't compile. This would protect us during refactors and makes sure that there are no typos in the examples


thread 'main' panicked at 'byte index 40 is not a char boundary; it is inside '♫'

Describe the bug
Not handling UTF-8 well
To Reproduce
Steps to reproduce the behaviour:
in rust-lang/rust (52d2c7ac948d6abdc18eb9e05a53d03ddcaffd98)
> env RUST_BACKTRACE=1 cargo spellcheck
thread 'main' panicked at 'byte index 40 is not a char boundary; it is inside '♫' (bytes 38..41) of `///         println!("♫ Still alive ♫");`', /home/ivan/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/str/mod.rs:1920:47
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1076
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:490
  11: rust_begin_unwind
             at src/libstd/panicking.rs:388
  12: core::panicking::panic_fmt
             at src/libcore/panicking.rs:101
  13: core::str::slice_error_fail
             at src/libcore/str/mod.rs:0
  14: core::str::traits::<impl core::slice::SliceIndex<str> for core::ops::range::Range<usize>>::index::{{closure}}
  15: cargo_spellcheck::documentation::literalset::LiteralSet::into_chunk
  16: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
  17: cargo_spellcheck::documentation::Documentation::extend
  18: cargo_spellcheck::run
  19: cargo_spellcheck::main
  20: std::rt::lang_start::{{closure}}
  21: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:52
  22: std::panicking::try::do_call
             at src/libstd/panicking.rs:297
  23: std::panicking::try
             at src/libstd/panicking.rs:274
  24: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  25: std::rt::lang_start_internal
             at src/libstd/rt.rs:51
  26: main
  27: __libc_start_main
  28: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

Expected behavior
No can do panic.
Screenshots
If applicable, add screenshots or copies of the commandline output to help explain your problem.
Use code blocks
Pplease complete the following information:

System: [e.g. Fedora, Ubuntu, Win10, MacOS] arch linux
Obtained: [i.e. git or cargo] cargo
Version: $(cargo spellcheck --version) 0.3.0-beta.1

Additional context
Add any other context about the problem here.
https://github.com/drahnr/cargo-spellcheck/issues/77

@pickfire tested v0.3.0-beta.3 on the referenced rust git repo commit checked out, and there are no more panics

Wow, so fast v0.3.0-beta.3? I wonder if you could do a rc or keep the beta going longer like for a few days or week before release, looks like it's going too fast.

Frankly, not a big fan of beholding fixes for no reason other than "bumping pre release versions too fast". It's a pre-release after all.
I currently don't plan on release candidates

It still breaks.
> env RUST_BACKTRACE=1 cargo spellcheck
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', /home/ivan/.cargo/registry/src/github.com-1ecc6299db9ec823/cargo-spellcheck-0.3.0-beta.3/src/traverse/iter.rs:36:20
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1076
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:490
  11: rust_begin_unwind
             at src/libstd/panicking.rs:388
  12: core::panicking::panic_fmt
             at src/libcore/panicking.rs:101
  13: core::option::expect_none_failed
             at src/libcore/option.rs:1272
  14: cargo_spellcheck::traverse::iter::traverse
  15: cargo_spellcheck::run
  16: cargo_spellcheck::main
  17: std::rt::lang_start::{{closure}}
  18: std::rt::lang_start_internal::{{closure}}
             at src/libstd/rt.rs:52
  19: std::panicking::try::do_call
             at src/libstd/panicking.rs:297
  20: std::panicking::try
             at src/libstd/panicking.rs:274
  21: std::panic::catch_unwind
             at src/libstd/panic.rs:394
  22: std::rt::lang_start_internal
             at src/libstd/rt.rs:51
  23: main
  24: __libc_start_main
  25: _start
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

It still breaks. Did you pull the submodules as well?

No, you did not state this as part of the reproduction instructions - please check the provided instructions for completeness by executing them from a fresh directory.


Listings are not removed after the purchase

Hello guys,
First of all, thank you very much for sharing such a great tool with everyone.
I am working on my NFT marketplace to mint and list items using this dashboard. However, when I buy listed NFT at my custom marketplace, it disappears from the active listing on the marketplace, however, it is still shown in the list of listings on the thirdweb/dashboard. I am working on the Rinkeby test network if it is important. By the way, the purchase functionality works great, the ownership is transferred and etc.
Could you please help to fix this issue, so the listing is automatically canceled when the item is purchased?
Thanks a lot in advance.

Will finally be fixed with this: https://github.com/thirdweb-dev/dashboard/pull/585 (letting u toggle between active / all listings in the dashboard)


Separate tasks by permissions rather than config target

It seems that these tasks are assuming liberal access to sudo command, which not everyone would be willing to give to the deploy user.
For example, those using configuration management tools like Chef would likely provision the server and do all the appropriate setup as root, and then only give the deploy user what it needs.
I would recommend storing all the config and init files in the shared_path (perhaps building and syncing all those config in one task), and then have smaller tasks for generating the symlinks with root. That way, someone using a config management tool can create those high-privilege symlinks with it, and just use cap to update that files in shared_path when required.
Would that make sense? I would really not like to give my deploy user anything but the most minimal of access to sudo (ie. just /etc/init.d/nginx reload)

Hi @patcon
I have a deployer user on my server and I didn't want to give him sudo access to everything. I wrote simple scripts that reload nginx or symlink unicorn init file to /etc/init.d, added those scripts to sudoers for deployer user and run with sudo without password. Now I'm sure that he didn't stop my whole nginx, he can just reload it. I also moved unicorn and nginx file to shared directory. Maybe you may have a look at this commit:
https://github.com/tomasz-krol/capistrano-unicorn-nginx/commit/89e307f49d6ace21874d367ba8b3d6a2f7327566
I'm not a server ninja, but I think it's a quite good approach. It's now in a test phase. Please tell what you think about that.

Thanks! I'm not using this right now, but I'm sure someone will find your experience useful later :)


407 / 408 episodes

Ready for publishing I believe. :)

Looks good! Did you pick 7am release (we talked about doing 8am)? Or is that a daylight savings bug with Epoch? I know you SK folk don't have that

Oh dang - yeah I did use Epoch and I thought I picked 8am? I am awful at timezones so it’s very likely my fault - just like you said, because Sask doesn’t have anything to do with it. :)
This is what I get right now:<PHONE_NUMBER>356
On Nov 10, 2021, 3:02 PM -0600, Wes Bos @.***>, wrote:

Looks good! Did you pick 7am release (we talked about doing 8am)? Or is that a daylight savings bug with Epoch? I know you SK folk don't have that
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

1637762400356 is 9am. Set the dropdown at the top to America/Toronto and it should give you the right value.
Doesn't really matter as this is just the website, so Ill merge it. Next time!


Allow selecting range in RangeSlider

Currently, RangeSlider is just a Slider, it does not allow selecting a range.

Allow selecting range by providing multiple thumbs

Can be down by adding a low and high prop, or a values array.
Reference: https://github.com/simeydotme/svelte-range-slider-pips#slider-props

(this is a note for myself)
Needs review: consider dropping component for datalist + action? Keep things as close to native a possible.

@ak4zh A few things to cover here. First off, let's be clear at what our component actually is - in short, it's wrapper and extended version of the native input:range element:
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range
We've adopted the name from this. Our version simply provides a pass through for for the built in input functionality, as well as adding on automatic generation of datalist "ticks".
What you're requesting is a custom, non-native component. For reference, see their example page:
https://simeydotme.github.io/svelte-range-slider-pips/
Here's a screenshot of the markup showing their use of divs and spans:

I was going to immediately voice my concerns with a11y for this, but their own example did this for me. See this recording:

When trying to inspect the markup, it bugged out and the knob became attached to my mouse position. It continues to follow my mouse around at all times. That's a big problem! Who knows how many possible other edge cases like this exist too. This is why we tend to favor and rely on native elements. They are battle tested, performant, and reliable. With all required a11y built in.
Ideally the native input eventually gets support for min/max values like you've requested. However, in the meantime I'm not sure we can do better than the package you linked. It has lots of options. If you do use it though, just be mindful of the bugs and a11y concerns I raised!

Just to add one more note - I'd welcome a PR if you want to try your hand at creating a version of this. I just don't think this is something we will make a priority right now though. But thanks for the suggestion!

I did a bit of research and found a accessible solution someone built, it may not get implemented in this project but adding it here so if someone stumble upon this issue they know of some accessible options they can use:
Original comment: https://stackoverflow.com/a/70561454
SimpleRangeSlider: https://maxshuty.github.io/accessible-web-components/


tasks don't properly update when chronometrist.sexp is changed outside emacs

How to reproduce:

start with some tasks in your chronometrist.sexp file
move it aside for use later
restart emacs
restart chronometrist
add some tasks
move the original file back
there is a pop-up dialog, which says something like "the chronometrist.sexp file has changed on disk. reload?"
answer "yes"
open the *Chronometrist* buffer and hit g

What I'd expect is for the tasks to update to the content of the new sexp file. They don't - the existing task list remains, and none of the tasks in the sexp file are listed, even after adding new tasks.
If I add a new task with the name of an unlisted but existing task from the new file, it appears in the list, but the time from previous entries doesn't seem to be included.
Old tasks with no entries in the file never disappear. (I'd expect them to be removed if they are no longer present)
And sometimes, I seem to be unable to add new tasks - they don't go into the list. However, this is hard to reproduce reliably, I don't know what triggers it.  I have seen it several times, however.
I should also mention:

This may not be advisable, but I am using nextcloud to sychronise my chronometrist.sexp file between machines, so sometimes this means the file updates outside the context of emacs
The file ~/.emacs.d/chronometrist.sexp is a symbolic link to that file

As a work-around, is there any way to reset the state of chronometrist, without needing to restart emacs? Just closing all the buffers doesn't seem to do the job.

Thanks for the report. I was able to replicate it a few days ago, and am working on a fix. The workaround at the moment might be to M-: (chronometrist-events-populate) RET

Thanks for the report. I was able to replicate it a few days ago, and am working on a fix. The workaround at the moment might be to M-: (chronometrist-events-populate) RET

That doesn't quite work - I'm not sure why. It may need niling chronometrist--file-state as well, possibly more.

@wu-lee whew, debugging this one has been exhausting. I think I've managed to fix it in the dev branch, would you like to test it by installing it from source?

Just installed...
I notice editing a task name in chronometrist.sexp doesn't seem to show up in the *Chronometrist* buffer, after hitting g as I think I should expect it to? But it does if I close emacs and re-open it.

Thanks for testing the development version. Are you able to replicate the issue with the file being replaced?
I've actually did a lot of testing by modifying task names, of late, and it worked for me...what was your exact change? Was it to the last expression, or something else? Also, note that if you rename the file while Emacs is running, the file notify watch will be invalidated and changes to the file won't be noticed, at least until one kills the Chronometrist buffer (optionally creating the file again, if you want to use an existing file) and runs chronometrist again.

In this case, immediately after starting emacs and chronometrist, I just opened chronometrist.sexp using the l keybinding, edited the title of the second last entry, saved. Then I switched back to *Chronometrist*, and hit g.  No file moving this time.
I'll see if I can find out more.
Thanks for your work on this.

Re: task list not being updated, there was a situation I apparently overlooked. Should be fixed on the latest commit to the dev branch. Waiting to hear whether the file replacement behaviour is any better than before 😀

I did a git pull (to commit 018fcdd85807693d) and restarted emacs - initially it didn't work because there was a malformed time string (my mistake, but the error is quite opaque unless you know how to get and inspect a stack trace)
I don't seem to be able to get the *Chronometrist* buffer to pick up chronometrist.sexp edits on a g or M-: (chronometrist-events-populate)
Also, adding new events to chronometrist.sexp outside emacs gets the "reload buffer" prompt, but the *Chronometrist* buffer doesn't seem to pick up the changes.
Avoiding the symlink to chronometrist.sexp by configuring the actual path with customize-mode doesn't seem to help.
Closing all chronometrist buffers and re-opening doesn't seem to help.
Possibly this could be an emacs version problem? I realise I should have stated my version up front:

GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.14) of 2020-03-26, modified by Debian

... however, looking at the git commit history, I see you added a function chronometrist-reset-task-list. Trying this, what does seem to refresh the *Chronometrist* buffer is invoking M-: (chronometrist-reset-task-list) and then hitting g in the buffer.

I've made a TODO item for a function to check the contents of the file. (PRs welcome! 😀)
I'm quite puzzled how you're getting those, because I rely on that functionality every day 🤔 Did you test that with emacs -q? I'm running v26.1 from Debian Stable.
I tried echo "(:name \"Foo\" :start \"$(date -Is)\" :stop \"$(date -Is)\")" >> ~/.emacs.d/chronometrist.sexp and that worked (although I get the "Reread from disk?" prompt twice, for some reason, despite having auto-revert-mode enabled in the buffer.)
Also, do you by any chance byte compile things? You probably want to remove any .elc files for Chronometrist, for the purpose of debugging.

The chronometrist code is not byte compiled when I run it from the git checkout.
I did try running with -q just now, but because of the missing dependencies it failed, and I have not yet ventured to find a way to load them without the melpa packaging system.
I have tried to debug the code but find it tricky, emacs debug/edebug isn't very familiar and the various 3rd party anaphoric/threading libraries even less so...
Could I ask what the intended behaviour of the g keybinding is?  Should I infer that you don't intend it to pick up changes to the sexp file on disk, or that it should but that it works for you?

You'll probably have to run something like emacs -q -L path/to/dash/dir/ ... --eval '(progn (require 'dash) ...)'; if you have Cask (and aren't afflicted with the TLS bug), it's just a matter of cask emacs IIRC.
There's a commented message call in chronometrist-refresh-file in chronometrist.el - you can uncommented and reevaluate that, to see what file change type it displays when you replace the Chronometrist file. I've had funny things happen when I edebug that function and replace the Chronometrist file, so I'm not sure if edebug will help...
As a nuclear option, you can see if downgrading to pre-v0.6 makes life better for you 🤔


fix: Failed Vercel build doesn't produce a non-zero result

Resolves: #210

Thanks a lot for the PR @tarunrajput :smiley:
Sorry just quickly asking you before reviewing the PR, did you check if this also works in watch mode? in watch mode I think we would like to keep the CLI running even if the Vercel build fails (because you can fail the build whilst developing but that shouldn't cause next-on-pages to stop)
By looking at your change I feel like that's not going to be the case :thinking:
(also please add a patch changeset via npm run changeset :pray: :slightly_smiling_face:)

Thanks a lot for the PR @tarunrajput 😃
Sorry just quickly asking you on small thing before reviewing the PR, did you check if this also works in watch mode? in watch mode I think we would like to keep the CLI running even if the Vercel build fails (because you can fail the build whilst developing but that shouldn't cause next-on-pages to stop)
By looking at your change I feel like that's not going to be the case 🤔
(also please add a patch changeset via npm run changeset 🙏 🙂)

@dario-piotrowicz, I just pushed a commit, it should work in watch mode now.

@tarunrajput awesome yeah, all good! thanks again! 😄


Authenticate users

We now authenticate users before authorizing them. This restricts controllers to signed in users only by default.

:+1:


Curb leaking sockets on Windows

After about 50 requests to CRM, the Ruby process starts failing with "Too many open files" error. I have only experienced this on Windows, and suspect this is a Windows-only issue with Curb. Even though the post method in client.rb calls close on the Curl::Easy instance, it seems to have no effect, and looking at netstat -a output you can see connections building up with each call and never closed. I tried every possible way to get Curb to close its connections to no avail.
In the end I solved this problem for myself by rewriting the post method using net/http as follows:
    require 'net/http'
    def post(url, request)
      log_xml("REQUEST", request)

      uri = URI(url)
      ssl = {
        :use_ssl => (uri.scheme == 'https'),
        :verify_mode => OpenSSL::SSL::VERIFY_NONE
      }

      response = Net::HTTP.start(uri.host, uri.port, ssl) do |http|
        req = Net::HTTP::Post.new(uri)
        req['Connection'] = 'Keep-Alive'
        req['Content-type'] = 'application/soap+xml; charset=UTF-8'
        req.body = request
        http.request(req).body
      end

      log_xml("RESPONSE", response)
      response
    end

One might say I kicked Curb to the curb :)
Since this is the only place in this gem that actually uses Curb, it is possible to drop the dependency on Curb entirely. The only reservation I have is that net/http does not follow redirects automatically. I see that in the original post method you use the follow_location feature of Curb. My experience with CRM is entirely read-only, and there has not been any need for following redirects so far. So, I don't know if CRM ever responds with a redirect - do you know of some use cases where it does? If not, I'd be happy to submit a pull request to get rid of Curb dependency in this gem. It was such a PITA to get it to work on Windows in the first place, and now this thing. I would be happy to see Curb gone :)

Hi @vais, thanks for reporting this issue, I had not attempted to use this on Windows yet.  What were the other issues you ran into?  I believe there is an authentication workflow that needed to support redirects, I'll have to revisit when/why that was added. I like the idea of removing another dependency from gem.

What were the other issues you ran into?

Aside from this one, I have not run into any other issues so far (not counting the initial installation difficulties).

I believe there is an authentication workflow that needed to support redirects, I'll have to revisit when/why that was added. I like the idea of removing another dependency from gem.

:+1:

This will be resolved by #54


Embedded videos sound much louder than the video on youtube.

Both report "Volume: 100%" in stats for nerds
Addon: Greasemonkey 3.7
Script: Dev Build #538
Browser: Firefox 45.0.1
The difference is about 82 dB to 87 dB embedded. (Measured from same distance with same device)
If I disable the tick "Enable Embeds" it is fixed and the YouTube videos sound the same both embedded and on the website.
My config: http://pastebin.com/v90RJeHh
EDIT: It seems to be specific to certain videos and maybe to the use of the vp9 codec. I first thought it was a reddit expando thing, but it's not. I made and empty html file with just the embed inside the body and it still did it.
"not so minimal example"
https://erayan.com/shared/pink_noise.html
I started with the (newish, maybe upload date is a factor) jpop song in my reddit feed, then went on to look for pink noise (didn't work), tried other vp9 video (nothing) and well vevo won't play with the script enabled.

I have the same problem!! On YouTube page video plays 3-5 dB lower. On any embedded site video/audio sounds as it should be. Audio is not too loud so it's not lowered by YouTube in original upload(?!) Can't find the answer so far...
Any help/advice?


ExampleDialogueUI.cs compile error (ver 0.9.3 on Unity 5.2.1f1)

I get this error when importing the yarnspinner package:
"Assets/Yarn Spinner/Examples/Demo Scripts/ExampleDialogueUI.cs(147,42): error CS0246: The type or namespace name `WaitUntil' could not be found. Are you missing a using directive or an assembly reference?"
I have no idea what could be causing this or how to fix it (sorry, I'm a c# and unity newbie).

"WaitUntil" was added to Unity in version 5.3.2; if you can upgrade your copy of Unity, this will fix the problem.
(Will probably remove this call to WaitUntil in the next version - there are other ways to do it that are more compatible with earlier versions of Unity.)

On 17 Feb 2016, at 8:00 AM, empty-fortress<EMAIL_ADDRESS>wrote:
I get this error when importing the yarnspinner package:
"Assets/Yarn Spinner/Examples/Demo Scripts/ExampleDialogueUI.cs(147,42): error CS0246: The type or namespace name `WaitUntil' could not be found. Are you missing a using directive or an assembly reference?"
I have no idea what could be causing this or how to fix it (sorry, I'm a c# and unity newbie).
—
Reply to this email directly or view it on GitHub.

Closing this issue for now - if you still have this problem, please reply with a comment and I'll take another look!

The fix in your commit is perfect (there were compaints about missing NUnit but I just removed the YarnSpinnerTests file and everything works fine). Thanks a lot!

:heart:


youtube-dl output to stdout not working with format(-f)

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2020.05.29
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

# youtube-dl -v -f bestvideo+bestaudio -o - "https://youtube.com/watch?v=TgOu00Mf3kI"
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', '-f', 'bestvideo+bestaudio', '-o', '-', 'https://youtube.com/watch?v=TgOu00Mf3kI']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2020.05.29
[debug] Python version 3.8.3 (CPython) - Linux-5.6.15-arch1-1-x86_64-with-glibc2.2.5
[debug] exe versions: ffmpeg 4.2.3, ffprobe 4.2.3, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] TgOu00Mf3kI: Downloading webpage
[youtube] {18} signature length 110, html5 player c31b936c
[youtube] {313} signature length 110, html5 player c31b936c
[youtube] {271} signature length 110, html5 player c31b936c
[youtube] {137} signature length 110, html5 player c31b936c
[youtube] {248} signature length 110, html5 player c31b936c
[youtube] {399} signature length 110, html5 player c31b936c
[youtube] {136} signature length 110, html5 player c31b936c
[youtube] {247} signature length 110, html5 player c31b936c
[youtube] {398} signature length 110, html5 player c31b936c
[youtube] {135} signature length 110, html5 player c31b936c
[youtube] {244} signature length 110, html5 player c31b936c
[youtube] {397} signature length 110, html5 player c31b936c
[youtube] {134} signature length 110, html5 player c31b936c
[youtube] {243} signature length 110, html5 player c31b936c
[youtube] {396} signature length 110, html5 player c31b936c
[youtube] {133} signature length 110, html5 player c31b936c
[youtube] {242} signature length 110, html5 player c31b936c
[youtube] {395} signature length 110, html5 player c31b936c
[youtube] {160} signature length 110, html5 player c31b936c
[youtube] {278} signature length 110, html5 player c31b936c
[youtube] {394} signature length 110, html5 player c31b936c
[youtube] {140} signature length 110, html5 player c31b936c
[youtube] {249} signature length 110, html5 player c31b936c
[youtube] {250} signature length 110, html5 player c31b936c
[youtube] {251} signature length 110, html5 player c31b936c
[debug] Invoking downloader on 'https://r7---sn-3u-bh2se.googlevideo.com/videoplayback?expire=1591370149&ei=RQ3aXsHXGceE1d8Ptr26mAM&ip=<IP_ADDRESS>&id=o-AKP2esJkvqTYSKxpc8h1qal51FdU2pehLNF6n2VkGsO3&itag=313&aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C271%2C278%2C313%2C394%2C395%2C396%2C397%2C398%2C399&source=youtube&requiressl=yes&mh=mo&mm=31%2C26&mn=sn-3u-bh2se%2Csn-i3b7knlk&ms=au%2Conr&mv=m&mvi=6&pl=16&initcwndbps=1332500&vprv=1&mime=video%2Fwebm&gir=yes&clen=207767661&dur=221.638&lmt=1588794539461547&mt=1591348478&fvip=2&keepalive=yes&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Caitags%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgO5Bc6pjloAlBM48S1BOkcDWZPLr8hVod1MhRXro8XXICIQDq4Gie7u1yxqQ1cRMjXwHZsHtXvsX2AUUQ-R6XoswUjA%3D%3D&sig=AOq0QJ8wRQIhAJ9iN5A1J84QCocKWGLfZdcID50_59WO1IobesCXEOXGAiBfcLfPf_8Ie6oZmGKajWM9Ev2wgLuDJo0Orv1LLzW7WA==&ratebypass=yes'
[download] Destination: -.f313
[download] 100% of 198.14MiB in 00:18
[debug] Invoking downloader on 'https://r7---sn-3u-bh2se.googlevideo.com/videoplayback?expire=1591370149&ei=RQ3aXsHXGceE1d8Ptr26mAM&ip=<IP_ADDRESS>&id=o-AKP2esJkvqTYSKxpc8h1qal51FdU2pehLNF6n2VkGsO3&itag=251&source=youtube&requiressl=yes&mh=mo&mm=31%2C26&mn=sn-3u-bh2se%2Csn-i3b7knlk&ms=au%2Conr&mv=m&mvi=6&pl=16&initcwndbps=1332500&vprv=1&mime=audio%2Fwebm&gir=yes&clen=3809571&dur=221.661&lmt=1588789926396200&mt=1591348478&fvip=2&keepalive=yes&c=WEB&txp=5511222&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAI2Oa3A0KOyqLbGHFqLgfWiukLEDVBQsISlxDHD5X5JIAiEAsdxpPLGyWUSbKHL71I4s8JjocnNmbLK2zCUCfceUjdM%3D&sig=AOq0QJ8wRQIgZC6lv-67FwdLfIb-0J0ENLQbfoTbG70qJdZbat5uRugCIQDwy8mCCqfxiCkxoZ6oRtGHZ6iuxL8ZyqbihBXcqi8zCA==&ratebypass=yes'
[download] Destination: -.f251
[download] 100% of 3.63MiB in 00:00
[ffmpeg] Merging formats into "-.webm"
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i file:-.f313 -i file:-.f251 -c copy -map 0:v:0 -map 1:a:0 file:-.temp.webm
Deleting original file -.f313 (pass -k to keep)
Deleting original file -.f251 (pass -k to keep)

Description

I'm trying to redirect downloaded file to stdout. I saw that -o - option redirect output to stdout and it worked fine. But if I specify video format like -f "bestvideo+bestaudio" with -o - option it doesn't output to stdout it just download to -.webm.

You can only redirect media represented by a single file.


Update French translation

Ouline
Translate the english values fr.json to French. (file is already partially translated)
Note: Do not use google translate, the translation will be verified by native french speakers

Transaction: 0x95887c4b16fe87649245564b2242618b5c3e34a5d9ed79b0ff880b2ccffd4b1e

@iurimatias  Please approve my application and review my Pull request #780 related to it.

Hi @schweigert excited to see your contribution here! Let us know when it's ready for review :+1:

@vs77bb I'm now working on this PR. I will soon open a pull request.

Thanks for the update @schweigert!

@iurimatias @andytudhope Looks like this one is good for payout 👍

@vs77bb This one isn't allowing us to do a basic payout, will Advanced work in this case and just tag @schweigert for the payout?

Thank you so much for the work on this @schweigert could you drop your contact code for status on here so we can send you the SNT bonus at the end of the embark bounties? Wallet address would work fine if you don't have a status wallet, but we like to be personal 🥇Thanks!

@StatusSceptre That's correct, yes!

@vs77bb I'm having trouble getting TIP. Apparently the transaction has been reversed, and for this reason I probably will not be able to receive the tip. Can someone help me? https://etherscan.io/tx/0x540efb979d77a0b7ed7acc1916ac93af9971ac5689d8302187a1fb088e082d8e

@StatusSceptre looks like the tx for the tip failed.. from your Etherscan Account, it seems you do not have enough DAI to send the tip!  could you replensih your wallet with DAI and resend?

Should be good to go know; let us know if you have any trouble @schweigert!

Same error. https://etherscan.io/tx/0x540efb979d77a0b7ed7acc1916ac93af9971ac5689d8302187a1fb088e082d8e

@schweigert the tx you linked was sent 2.5 days ago,  it looks like you didnt get enough DAI to fulfill this tip until 1.5 days ago
you need to have more DAI in your wallet than you're using to tip to avoid your balance going negative (and therefore the tx failing)

Thank you. But I will refuse payment. I will soon help in other PR's! =D


Bluetooth: controller: split: Fix PDU handling on terminate

Fix handling of Rx-ed PDU on termination, do not process
Rx-ed control PDUs and release the PDU buffer back to the
free pool.
Without this fix, Rx-ed control PDU was responded with a
Tx PDU, which did not get acknowledged or released.
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

@ioannisg Please test and approve.


Problem with ESP32 DevKit M pinout

In the "@dsboard/esp32s3_devkit_m" some pins are to set up correctly for ESP32-DevKit-M
For example, the pin 49 is set to Input only, but in the docs and the image below, 46 should be Input and Output.

I think it is getting this config from the arch.json, but its not correct for DevKit M.
Also I am trying to write a Liligo t-display-s3 board config, but I don't know how to overwrite this  config.

I have updated the config (though it's a few more steps to get it into devicescript, so be patient). The 46-input-only config was probably copied from S2. Do you see any other problems with pin functions?


INDEX-<IP_ADDRESS> : Requesting suggestions :

Requesting suggestions :
@D-AvocationDesign

@D-AvocationDesign  , apply css for the repo (not on readme.md file , create an index file and try it out.
https://www.youtube.com/watch?v=Nyj1nzXLFjM
https://www.youtube.com/watch?v=oUO3-XQAEsY


[DEV] TypeError: unsupported operand type(s) for /: 'str' and 'int'

I am getting this error on linux (heroku), but local is fine
Traceback (most recent call last):
  File "pokecli.py", line 389, in <module>
    main()
  File "pokecli.py", line 68, in main
    bot.tick()
  File "/app/pokemongo_bot/__init__.py", line 89, in tick
    self.check_session(self.position[0:2])
  File "/app/pokemongo_bot/__init__.py", line 239, in check_session
    remaining_time = self.api._auth_provider._ticket_expire/1000 - time.time()
TypeError: unsupported operand type(s) for /: 'str' and 'int'

Duplicated #1206


Работа с локальным KML

Я разрешил работу с локальными файлами и кросс доменные запросы, и OpenLayers карта работает с локальным KML, а ваш плагин не расчитан на роботу с локальными файлами?
Это не проблема браузера, так как OpenLayers работают с этим же локальным KML.
I let to work with local files and cross domain requests, and OpenLayers maps works with a local KML, and your plug-in is not designed for the robot to local files?
This is no problem browser, as OpenLayers work with the same local KML.

решение найдено, if (req.status === 200 || req.status === 0) cb(req.responseXML, options);
дело в том что при работе с локальным файлом статус будет = 0, а скрипт ждет статус = 200, добавляем условие или статус =0 и все работает

Hi @alexgubanow sorry but i can only read french, english or spanish :\

Hi @brunob I translated for you.

With the help of an automatic translate, it seems you have a bug with kml tested locally. Form my side, kml example works well locally accessed on file: type url with Firefox. But it doesn't work with Chromium or Opera.

This one seems to be a duplicate of #44, i think we can close it.

you can not work with local files due to built-in protection. that would be earned, it is necessary to launch the browser to disable protection mode to do this opera --disable-web-security.

I have to work with the leaflet, use my application.

@alexgubanow any news about this, do you have a patch to propose in a pull request or can we close this issue ?

I completely rewrote your code and using it in my p roject . In a couple of days, I will send the code .
2 декабря 2015, 14:57:39, от "b_b" <<EMAIL_ADDRESS>>:
@alexgubanow  any news about this, do you have a patch to propose in a pull request or can we close this issue ?
—
Reply to this email directly or view it on GitHub .

3 years later, we have not seen the code, i think we can close this one :p


k3s installer wants to install wrong k3s-selinux

Environmental Info:
K3s Version:  v1.28.4+k3s2

Node(s) CPU architecture, OS, and Version: Linux control0.kube.nadybot.org 6.5.11-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov  8 22:37:57 UTC 2023 x86_64 GNU/Linux

Cluster Configuration: 3 servers, 3 agents

Describe the bug:
I'm trying to install k3s on my CoreOS machine like this:
curl -sfL https://get.k3s.io | INSTALL_K3S_SKIP_START=true K3S_DATASTORE_ENDPOINT=etcd K3S_CLUSTER_DOMAIN=kube.nadybot.org K3S_TOKEN=XXX K3S_FLANNEL_IFACE=netmaker K3S_NODE_IP=<IP_ADDRESS> K3S_TLS_SAN=lb.kube.nadybot.org K3S_SELINUX=true sh -s - server --cluster-init

The installer adds the correct repository:
[rancher-k3s-common-stable]
name=Rancher K3s Common (stable)
baseurl=https://rpm.rancher.io/k3s/stable/common/coreos/noarch
enabled=1
gpgcheck=1
repo_gpgcheck=0
gpgkey=https://rpm.rancher.io/public.key

but something goes wrong and rpm-ostree tries to install the wrong rpm:
[INFO]  Finding release for channel stable
[INFO]  Using v1.28.4+k3s2 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.28.4+k3s2/sha256sum-amd64.txt
[INFO]  Skipping binary downloaded, installed k3s matches hash
[INFO]  Finding available k3s-selinux versions
Checking out tree cd3ab59... done
Enabled rpm-md repositories: fedora-cisco-openh264 updates fedora rancher-k3s-common-stable rancher-k3s-common-stable updates-archive
Importing rpm-md... done
rpm-md repo 'fedora-cisco-openh264' (cached); generated: 2023-03-14T10:57:01Z solvables: 4
rpm-md repo 'updates' (cached); generated: 2024-01-01T01:34:11Z solvables: 17336
rpm-md repo 'fedora' (cached); generated: 2023-11-01T00:12:39Z solvables: 70825
rpm-md repo 'rancher-k3s-common-stable' (cached); generated: 2023-06-02T16:54:05Z solvables: 9
rpm-md repo 'rancher-k3s-common-stable' (cached); generated: 2023-06-02T16:54:05Z solvables: 9
rpm-md repo 'updates-archive' (cached); generated: 2024-01-01T01:50:43Z solvables: 20099
Resolving dependencies... done
Will download: 1 package (20.7 kB)
Downloading from 'rancher-k3s-common-stable'... done
error: Downloading from 'rancher-k3s-common-stable': Cannot download k3s-selinux-1.4-1.el8.noarch.rpm: All mirrors were tried; Last error: Status code: 404 for https://rpm.rancher.io/k3s/stable/common/coreos/noarch/k3s-selinux-1.4-1.el8.noarch.rpm (IP: <IP_ADDRESS>)

and the correct rpm would be k3s-selinux-1.4-1.coreos.noarch.rpm of course.
Steps To Reproduce:

Try to install k3s with the same flags as given above on latest CoreOS

Expected behavior:
rpm-ostree would try to install the correct coreos-rpm
Actual behavior:
rpm-ostree tried to install the el8-rpm fromthe coreos-repository
Additional context / logs:
nothing

Please ignore, someone manually installed the el8 rpm on the machine and so it always tried to upgrade that one


Update mmcls2torchserve

Thanks for your contribution and we appreciate it a lot. The following instructions would make your pull request more healthy and more easily get feedback. If you do not understand some items, don't worry, just make the pull request and seek help from maintainers.
Motivation
Changed mmcv to mmengine
Modification
Updated for 1.x
Checklist
Before PR:
Used github.dev web-based editor to make quick change, hopefully didn't break any linting rules

[ ] Pre-commit or other linting tools are used to fix the potential lint issues.
[ ] Bug fixes are fully covered by unit tests, the case that causes the bug should be added in the unit tests.
[ ] The modification is covered by complete unit tests. If not, please add more unit test to ensure the correctness.
[ ] The documentation has been modified accordingly, like docstring or example tutorials.

After PR:

[ ] If the modification has potential influence on downstream or other related projects, this PR should be tested with those projects, like MMDet or MMSeg.
[ ] CLA has been signed and all committers have signed the CLA in this PR.

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

Apologies,


Improve styling from map dropdown

Is your feature request related to a problem? Please describe.
The visual style of the dropdown menu for directions does not match the rest of the app, and it is unclear what the button does.
Describe the solution you'd like
Give the button a clearer name and change the styling the match the rest of the app.

Fixed in #82


wg-performance Status Update 2020-10-12

What was accomplished

fix esm ads performance/query tracking

make sure to opt-out control of LTS reporting
correctly cache busted control (this caused control to have higher cache hit rate as it was using production resources)

make performance-impl more robust in performanceobserver observe calls https://github.com/ampproject/amphtml/pull/30554

Lessons Learned

do not do a/b testing during the rollout phase and have a separate clean a/b testing environment

What's Next

esm from 50% to 100%

What was accomplished

Fixed layout -> unlayout race condition: https://github.com/ampproject/amphtml/pull/30426

Passing USQP through CSI:

New AMP USQP SSR transformer: cl/335681085
A4A: https://github.com/ampproject/amphtml/pull/30524
Analytics: https://github.com/ampproject/amphtml/pull/30520
Viewport CSI: https://github.com/ampproject/amphtml/pull/30504

Validator

Allow <img loading=lazy> for SSR'd <amp-img> (to be used by AMP Packager): cl/336204310

Lessons Learned

Protobuf wire format is crazy: https://output.jsbin.com/jemayir/quiet?usqp=mq331AQHKAFQArABIA


DYSON GIVING ERROR

HI,
I Like the plugin, worked fine for a day, but then started giving errors and HB keeps restarting continuously, so basically, every time install the plugin HB stops working.
I'm getting this error right now, don't know what sense to make out of it
SyntaxError: Unexpected token e in JSON at position 1
at JSON.parse ()
at IncomingMessage. (/usr/local/lib/node_modules/homebridge-dyson-link/index.js:180:40)
at IncomingMessage.emit (events.js:388:22)
at endReadableNT (internal/streams/readable.js:1336:12)
at processTicksAndRejections (internal/process/task_queues.js:82:21)
It may be an issue of the platform name or platform, cause once I just did a add platform and save it worked until I restarted HB and then it was gone again.
Anything to make this work without any issues would be great. hope the feedback helps.
Thanks
AG

Looks like the issue is with Dyson account password, If you comment the password or take out that line, the HB works fine also showing all the options of Dyson device, but from my device. just like a place holder. hope this helps you to solve the issue.

Same problem here.
SyntaxError: Unexpected token e in JSON at position 0
    at JSON.parse (<anonymous>)
    at IncomingMessage.<anonymous> (/homebridge/node_modules/homebridge-dyson-link/index.js:180:40)
    at IncomingMessage.emit (events.js:388:22)
    at endReadableNT (internal/streams/readable.js:1336:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)

Removing the password removes indeed the error, but then obviously the device is not added to accessories.

This is happening with me too, removing password keeps homekit out of it's bootloop.
[6/9/2021, 4:22:04 PM] [DysonPlatform] Initializing DysonPlatform platform...
[6/9/2021, 4:22:04 PM] [DysonPlatform] Finished launching. Start to create accessory from config
[6/9/2021, 4:22:04 PM] [DysonPlatform] Dyson email/pass not found, v2 devices may not work
[6/9/2021, 4:22:04 PM] [DysonPlatform] Missing password for device with serial number VS9-EU-NBJ5227A, devices found on your account:

Same here... hopefully someone has an idea or it'll be fixed with an update :o
SyntaxError: Unexpected token e in JSON at position 0     at JSON.parse (<anonymous>)     at IncomingMessage.<anonymous> (/usr/local/lib/node_modules/homebridge-dyson-link/index.js:180:40)     at IncomingMessage.emit (events.js:327:22)     at endReadableNT (internal/streams/readable.js:1327:12)     at processTicksAndRejections (internal/process/task_queues.js:80:21)

same problem:(

Same problem here.  Thanks for looking into it

Removed my account password from the config and for some reason it completely started working again. Hopefully it stays that way, but may be a fix for others here also

It looks like Dyson is rolling out two factor authentication, which this plugin does not support. I switched to this plugin, and it's working great!
https://github.com/lukasroegner/homebridge-dyson-pure-cool


Asset Type of Resource Loader Use String

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
use string replace AssetType to extend easily.

Codecov Report

Merging #520 (4fbeac2) into main (aea4277) will increase coverage by 0.17%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #520      +/-   ##
==========================================
+ Coverage   48.04%   48.21%   +0.17%
==========================================
  Files         349      349
  Lines       18973    18904      -69
  Branches     2546     2533      -13
==========================================
- Hits         9115     9114       -1
+ Misses       9858     9790      -68

Impacted Files
Coverage Δ

packages/core/src/asset/ResourceManager.ts
91.95% <100.00%> (ø)

packages/draco/src/decoder.ts
0.00% <0.00%> (-0.92%)
:arrow_down:

packages/loader/src/scene-loader/Oasis.ts
0.00% <0.00%> (ø)

...ackages/loader/src/scene-loader/ResourceManager.ts
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

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


Consider expanding Android gamepad support

Android needs gamepad support most as touch input isn't so great. Right now only gamepads supported by SDL_GameControllerDB are supported - however Android APIs already provide a standard layout mapping natively.
I filed https://github.com/hajimehoshi/ebiten/issues/2557 for this, but it seems resources are lacking to implement this on Ebitengine side - thus, filing this bug so I'll look into it myself to see what it takes to make this work.
Looking for androidKeyToSDL it seems like we already have a 1:1 mapping from Android buttons to SDL names, which seems close to standard layout. We'd need the same for axes. As part of the SDL ID, we already provide info about axis and button existence, as well. For buttons it seems rather clean which are transmitted 1:1 to Go, for axes not so much as they're remapped in the Java code. Probably should move the remapping into Go and then we also have a trivial standard layout mapping.

Starting work on this now.
Seems like it requires some minor refactoring, so did that first.

Minor refactoring: https://github.com/divVerent/ebiten/commit/1b617f43e781dda21f855073495b6d2023a4c51a
If you can, @hajimehoshi, please quickly confirm whether the internal gamepad API change for this is OK (regardless whether it compiles yet or not, I'm not that far yet). If so, I will try to add Android and Linux native standard layout support using this.

There seems a compile error.
Do you want to rename some functions by the way?

Ah now I understand what you want to do. The direction seems correct.

OK, got a first draft but I started for Linux as it is easier to develop there and the same problems need solving.
My android_stdlayout branch now supports my Xbox 360 gamepad mostly, but no D-pad or triggers yet.
The issue is that to support these, we need to be able to map axes vs hats vs buttons, which SDL does and gamepaddb does, but the current framework to do standard layout remapping in Ebitengine does not.

So, approach will be:

Find out if we need the same for Android.
If yes, add this first.
If not, the current incomplete support is still better than no support, so PR that and in the meantime work on Android support already.

Seems like this IS needed: https://developer.android.com/develop/ui/views/touch-and-input/game-controllers/controller-input
E.g. AXIS_HAT_{X,Y} and BUTTON_DPAD_{UP,DOWN,LEFT,RIGHT} should both be mapped to the D-pad.
So I think next step is further refactoring so we return a struct indicating whether a standard button/axis is backed by an axis, button or hat. At least for Linux we'd need that anyway.
Now one more thing is irritating: addAndroidDefaultMappings() seems to exist as a different way to achieve the same, by parsing the axis and button masks from the SDLID. Then how come it doesn't actually work? Nevertheless I'd be very tempted to implement the more "proper" thing anyway, but it might actually be possible to make THAT work instead.

While at it, dumping here how axis<->button<->hat mapping works:

from Button
from Axis
from Hat

to Button
1:1
(x + 1) / 2
1:1

to Axis
b ? 1 : -1
1:1
h ? 1 : -1

Now one more thing is irritating: addAndroidDefaultMappings() seems to exist as a different way to achieve the same, by parsing the axis and button masks from the SDLID.

I'm not sure I fully understand it, but it is OK to refactor the existing functions to achieve your purpose.

Yeah, me neither. The functionality I want for Android to support generic gamepads is there (but hidden inside gamepaddb code, not native gamepad mapping code like all the others).
I gotta figure out why it is failing for my gamepad then (and one of my users reported the same).
So, possibly I will solve this by fixing addAndroidDefaultMappings() - possibly I will solve this by deleting it and implementing native standard gamepad mapping support for Android. First gotta see why it fails. Kinda sad I can't really compare to SDL in practice, as I have no SDL Android app available that supports gamepads and do not know how to compile one. In particular it'd be useful to know if my gamepad gets the wrong SDLID, or if we are parsing the SDLID to standard mapping wrong.
Either way, though, for full Linux support I'll have to refactor standard button/axis support to be able to map to buttons, axes and hats. This will then also enable automatic standard layout on Windows/XInput, however I probably won't be able to be the one to implement that.

Results with my gamepad and Ebitengine 2.5:
Name:Generic X-Box pad SDLID:05000000d620000002280000ff7f3f00 AxisCount:6 ButtonCount:25
trigger left = axis 2 stdbutton 2
trigger right = axis 5 stdbutton 7
shoulder left = button 9 stdbutton 4
shoulder right = button 10 stdbutton 5
left stick x = axis 0 stdaxis 0
left stick y = axis 1 stdaxis 1
right stick x = axis 3 stdaxis 3
right stick y = axis 4 stdbutton 6
select = button 4 stdbutton 8
guide = button 5
start = button 6 stdbutton 9
dpad = button 11,12,13,14 button 21,22,23,24 stdbutton 12,13,14,15
a = button 0 stdbutton 0
b = button 1 stdbutton 1
x = button 3 stdbutton 3
y = button 2 stdbutton 2
lstick = button 7 stdbutton 10
rstick = button 8 stdbutton 11

Not GREAT, but my game works with this. And this SDLID has no entry in GameControllerDB, meaning it's not too wrong. But a few mappings on there are certainly wrong.
I'll edit this reply once I used another app that gives me the button and axis names from Java's POV.

So the issues are:

Trigger left is mapped to StandardAxisRightStickHorizontal (should be StandardButtonFrontBottomLeft)
Right stick Y is mapped to StandardButtonFrontBottomLeft (should be StandardAxisRightStickHorizontal)
Guide is mapped nowhere (should be StandardButtonCenterCenter)

Rest is actually correct.
This is on my Pixel 6 - on my Moto G7 Play I get no gamepad support at all.

As for the Guide button, we have this:
›   ›   // TODO: If SDKVersion >= 30, add this code:
›   ›   //
›   ›   //     gamepadButtonMappings[id][StandardButtonCenterCenter] = &mapping{
›   ›   //         Type:  mappingTypeButton,
›   ›   //         Index: SDLControllerButtonGuide,
›   ›   //     }

However, why NOT already add this? What does this do if SDKVersion is too low?
Other than that, this remapping code is very weird and just can't be right in general. E.g. the axis mask is just computed from the number of axes - not which are actually available.
The main problem is, whatever I do may conform to Android docs, but break some corner case the SDL code covers. But there are also cases vice versa. So I wonder if this should be introduced as a build flag or as an ebitengine API option one can set at startup.

But yeah, it seems like Ebitengine 2.5 fixed some of this already - the issues were worse in 2.4. I see some changes have been done there for 2.5, e.g. for 47558d20c505edf2a43eabeebbd39cffe3158579

OK... I think I'll get the Linux version of this change in, and then probably will give it a try to implement Google's guidelines in Ebitengine.
The current implementation is heavily based on SDL's, and part of it is sure required to keep the axes and buttons indexed consecutively for Ebitengine's non-standardlayout-API use - so I will probably have keep most current code as is even if I use the native gamepad support (that does not go via gamepaddb) I implemented.

Hm... now that I went through it, the current implementation might be some kind of nonsense for axes (but that's only really a problem for gamepads that lack a right stick but have triggers).
For buttons it's sound though. And it at least roughly matches SDL, so I may want to keep it as is for now, modulo bugs.
So I improved debugging in AAAAXY to be able to logcat the actual mapping, and will see later what it takes to fix it (possibly locating accidental diffs with SDL).

(However, doing this mapping inside gamepaddb is probably wrong as well - but not our issue. I may want to refactor this code from gamepaddb.go into gamepad_android.go, but that's indepedent from the fixing here)

Tried again, this time with better debug code to remove chance of human error.
Full list of mistakes:

Guide button is not mapped (seems like there's commented out code in Ebitengine for that - no idea why)
Right stick X axis on device (reported as axis 3) controls right stick Y axis in standard layout
Right stick Y axis (reported as axis 4) controls left trigger in standard layout
Left trigger (reported as axis 2) controls right stick X axis in standard layout

So, in terms of Linux's mapping, ABS_RX is understood as ABS_RY, ABS_RY as ABS_Z, and ABS_Z as ABS_RX.
Axes 0 and 1 are ABS_X and ABS_Y as they should be. Axis 5 is the right trigger, also as it should be.

Axis
Index
Index that would make things work

ABS_X
0
0

ABS_Y
1
1

ABS_Z
2
4

ABS_RX
3
2

ABS_RY
4
3

ABS_RZ
5
5

So if we made the sorting X, Y, RX, RY, Z, RZ, things would work just fine. But of course, if we go by Android's documentation, it should be X, Y, Z, RZ, RX, RY.
Wonder what SDL does...

By reading source, SDL does the same mistake. But I can't try out without having an SDL based gamepad app and knowing how to compile it...

If I find nothing better, THIS might actually be a starting point for adding logging of gamepad events: https://github.com/georgik/sdl2-android-example

Looks like SDL2 comes with its own gamepad test, just is a bit tricky to compile - need the attached patch and then run:
for x in gamepadmap.bmp gamepadmap_back.bmp button.bmp axis.bmp; do xxd -i "$x"; done > bmps.h
export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_NDK_HOME=$HOME/Android/Sdk/ndk/25.0.8775105
../build-scripts/androidbuild.sh org.libsdl.testgamepad testgamepad.c testutils.h testutils.c bmps.h
( cd ../build/org.libsdl.testgamepad && ./gradlew installDebug )

internalbitmaps.zip

With this, all is perfect in SDL. Need to figure out if I'm using a gamecontrollerdb mapping somehow though...

03-04 08:04:18.696 28056 28092 I SDL/APP : Gamepad device 1 added.
03-04 08:04:18.698 28056 28092 I SDL/APP : Opened gamepad BDA Xbox ONE Core controller, /dev/bus/usb/002/002/20d6/2802/0
03-04 08:04:18.698 28056 28092 I SDL/APP : Rumble supported
03-04 08:04:18.699 28056 28092 I SDL/APP : XBox One Controller: BDA Xbox ONE Core controller, /dev/bus/usb/002/002/20d6/2802/0 (guid 0300c289d62000000228000000006800, VID 0x20d6, PID 0x2
802, player index = 0)
03-04 08:04:18.699 28056 28092 I SDL/APP : Mapping: 0300c289d62000000228000000006800,*,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,
lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,crc:89c2,

That mapping corresponds to sorting in the order X Y RX RY Z RZ.

So, next step is adding debug code into SDL to find out where it's making the mapping work.

HAHA, on SDL we're not even hitting that Java code. The joystick is opened via hidapi.
Wonder if I can switch to using that Java code instead...

When using SDL's Java code, the exact same bug happens:
03-04 09:48:35.345  5655  5690 E SDL     : motion range axis 0 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 1 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 11 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 12 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 13 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 14 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 15 min -1.0 max 1.0
03-04 09:48:35.346  5655  5690 E SDL     : motion range axis 16 min -1.0 max 1.0

So on SDL my gamepad (and probably all Xbox ones) only works when using the HIDAPI implementation.
To make it actually use the Java implementation, I had to:
-#define SDL_JOYSTICK_HIDAPI     1
+// #define SDL_JOYSTICK_HIDAPI     1

I'll file a SDL bug, but as SDL has a solution by an alternate API, I do not expect them to fix it.

The alternate API that SDL uses is IIRC basically Linux raw device access, which happens to work now but I expect Google to lock that down more and more in future API versions - so I'd rather not want Ebitengine to rely on that.

Reported as https://github.com/libsdl-org/SDL/issues/7404 and am going to provide a PR to that that will keep existing working SDL_GameControllerDB entries alive.

Filed https://github.com/libsdl-org/SDL/pull/7405 - and if that gets merged, I'll port the same change into Ebitengine to keep the two in line (so that they interpret SDL_GameControllerDB files the same way).

Provided alternate fix option in https://github.com/libsdl-org/SDL/pull/7405#issuecomment-1454777587 - this one is probably cleaner but may impact existing gamecontrollerdb mappings. Let's have SDL team pick and mirror it in Ebitengine.

Done - changes are in and my gamepad which is a no-name xbox compatible pad now works out of the box.


argparse.ArgumentError: argument --remote: conflicting option string: --remote on start testing session

Description
After starting a test session the plugin crashes. There is no errors while using only pytest.
Log says its an error with argparse.
To Reproduce
Steps to reproduce the behavior:

Run test sessions
(i have run with "pytest --db ./monitor.db" command)

Log
Traceback (most recent call last):
File "c:\program files\python38\lib\runpy.py", line 193, in run_module_as_main
return run_code(code, main_globals, None,
File "c:\program files\python38\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Program Files\Python38\Scripts\pytest.exe_main.py", line 7, in
from connexion.decorators.uri_parsing import AlwaysMultiURIParser
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 185, in console_main
code = main()
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 143, in main
config = prepareconfig(args, plugins)
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 318, in _prepareconfig
config = pluginmanager.hook.pytest_cmdline_parse(
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\hooks.py", line 286, in call
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\manager.py", line 93, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\manager.py", line 84, in
self._inner_hookexec = lambda hook, methods, kwargs: hook.multicall(
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\callers.py", line 203, in multicall
gen.send(outcome)
File "c:\program files\python38\lib\site-packages_pytest\helpconfig.py", line 100, in pytest_cmdline_parse
config: Config = outcome.get_result()
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "C:\Users\Asus\AppData\Roaming\Python\Python38\site-packages\pluggy\callers.py", line 187, in multicall
res = hook_impl.function(*args)
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 1003, in pytest_cmdline_parse
self.parse(args)
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 1283, in parse
self.preparse(args, addopts=addopts)
File "c:\program files\python38\lib\site-packages_pytest\config_init.py", line 1175, in _preparse
self.known_args_namespace = self._parser.parse_known_args(
File "c:\program files\python38\lib\site-packages_pytest\config\argparsing.py", line 146, in parse_known_args
return self.parse_known_and_unknown_args(args, namespace=namespace)[0]
File "c:\program files\python38\lib\site-packages_pytest\config\argparsing.py", line 155, in parse_known_and_unknown_args
optparser = self._getparser()
File "c:\program files\python38\lib\site-packages_pytest\config\argparsing.py", line 122, in _getparser
arggroup.add_argument(*n, **a)
File "c:\program files\python38\lib\argparse.py", line 1386, in add_argument
return self._add_action(action)
File "c:\program files\python38\lib\argparse.py", line 1590, in _add_action
action = super(_ArgumentGroup, self)._add_action(action)
File "c:\program files\python38\lib\argparse.py", line 1400, in _add_action
self._check_conflict(action)
File "c:\program files\python38\lib\argparse.py", line 1539, in _check_conflict
conflict_handler(action, confl_optionals)
File "c:\program files\python38\lib\argparse.py", line 1548, in _handle_conflict_error
raise ArgumentError(action, message % conflict_string)
argparse.ArgumentError: argument --remote: conflicting option string: --remote
Desktop (please complete the following information):

OS: Windows 10 Pro (build 19042.746)
Version pytest-monitor 1.5.0
Python Version 3.8.2

Hello
Thanks for reporting. Do you have any other plugins installed?

Hello
Thanks for reporting. Do you have any other plugins installed?

Hello
Yes, i have installed: pytest-bdd, pytest-stub, pytest-mock, pytest-sugar, pytest-profiling and pytest-memprof.

Hello
Yes, i have installed: pytest-bdd, pytest-stub, pytest-mock, pytest-sugar, pytest-profiling and pytest-memprof.

Hello
This is weird... I was thinking about a plugin already using this option but I am unable to reproduce the behaviour under Linux.
Can you just add for each plugin the version you are using ? BTW, you do not have any local plugin extending pytest options, don't you ?

Hello
This is weird... I was thinking about a plugin already using this option but I am unable to reproduce the behaviour under Linux.
Can you just add for each plugin the version you are using ? BTW, you do not have any local plugin extending pytest options, don't you ?

Hello
I guess under Linux it will be working. There are lots of things perfectly running under Linux and never going under Windows
Versions of plugins are:
pytest-bdd v4.0.2
pytest-memprof v0.2.0
pytest-mock v3.5.0
pytest-profiling v1.7.0
pytest-stub v1.1.0
pytest-sugar v0.9.4
and pytest v6.2.1
What does mean "local plugin extending pytest option"? If that means that it's installed for the local user, i can't be sure. All of them had been installed locally for user, not admin.
//But I guess something is wrong with Windows XD//

Hello
I guess under Linux it will be working. There are lots of things perfectly running under Linux and never going under Windows
Versions of plugins are:
pytest-bdd v4.0.2
pytest-memprof v0.2.0
pytest-mock v3.5.0
pytest-profiling v1.7.0
pytest-stub v1.1.0
pytest-sugar v0.9.4
and pytest v6.2.1
What does mean "local plugin extending pytest option"? If that means that it's installed for the local user, i can't be sure. All of them had been installed locally for user, not admin.
//But I guess something is wrong with Windows XD//

Thanks a lot.
Agree. It is likely that we fall under some circumstances under Windows. I'll try to have a look by end of week.

Thanks a lot.
Agree. It is likely that we fall under some circumstances under Windows. I'll try to have a look by end of week.

Hello
Unfortunately, I am unable to reproduce. After having installed the plugins you indicated, i got the following output:
 H:\projects\dummy>pytest --db monitor.db
Test session starts (platform: win32, Python 3.8.6, pytest 6.2.1, pytest-sugar 0.9.4)
rootdir: H:\projects\dummy, configfile: pytest.ini
plugins: bdd-4.0.2, memprof-0.2.0, mock-3.5.1, monitor-1.5.0, profiling-1.7.0, stub-1.1.0, sugar-0.9.4
collecting ...

and the test suite completes.
Do you have any overloading of the cli parameters by any custom plugin (conftest for instance) ?
From my understanding, there is another plugin using the option --remote. I've checked the code of the plugins you listed and none of them seems to define this option.

Hello
Unfortunately, I am unable to reproduce. After having installed the plugins you indicated, i got the following output:
 H:\projects\dummy>pytest --db monitor.db
Test session starts (platform: win32, Python 3.8.6, pytest 6.2.1, pytest-sugar 0.9.4)
rootdir: H:\projects\dummy, configfile: pytest.ini
plugins: bdd-4.0.2, memprof-0.2.0, mock-3.5.1, monitor-1.5.0, profiling-1.7.0, stub-1.1.0, sugar-0.9.4
collecting ...

and the test suite completes.
Do you have any overloading of the cli parameters by any custom plugin (conftest for instance) ?
From my understanding, there is another plugin using the option --remote. I've checked the code of the plugins you listed and none of them seems to define this option.


⚠ Bofrost.fr has degraded performance

In 5c9ea12, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 912 ms

Resolved: Bofrost.fr performance has improved in f6b7cab after 8 minutes.


Fix docs regression & add show in playground

I've extensively tested this locally and am happy with stability.


Sending plain password through HTTP

I was listening to Jupyter's port, of course after changing it to unused port. So, when I read packets I find the following:

T <IP_ADDRESS>:42452 -> <IP_ADDRESS>:18541 [AP]
POST /login?next=%2Ftree HTTP/1.1..Host: <IP_ADDRESS>:18541..User-Agent: Mozilla/5.0 (X11; Debian; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0..Accept: text/html,application/x
html+xml,application/xml;q=0.9,/;q=0.8..Accept-Language: en-US,en;q=0.5..Accept-Encoding: gzip, deflate..Referer: http://<IP_ADDRESS>:18541/login?next=%2Ftree..Connection: keep-ali
ve..Content-Type: application/x-www-form-urlencoded..Content-Length: 22....password=qwer+1234

It seems Jupyter hash password after receiving it, which can be exploited.
I suggest that jupyter save plain password in a safe place. Then, each time Jupyter sends a random string to the user. After that, user hash his password with that salt then send his hashed string. Finally, Jupyter salts plain password then hash it and compare it.

A better solution is to use HTTPS where all contents are encrypted. This solution is illustrated nicely in the documentations.

HTTPS is already recommended for all JupyterHub deployments. JupyterHub never saves plain passwords, only salted-hashed tokens. Is there more to do, then?

My point is that, in default setting plain password will sent through insecure channel. If someone has somehow an access to Jupyter's server, I don not how hashed password could prevent him or her from manipulating Jupyter files, included configuration file!. I think it more secure that server saves plain password, and generate random string to salt in each session. I believe this will prevent replay attack. However, if the worry that server's administrator should not know his client raised, it seems homomorphic encryption will save this dilemma. Since, server can preform operations on encrypted text without knowing original password. As far as I know there is no secure full homomorphic encryption which lead  us back to your question "Is there more to do, then?"
Fancy way to avoid this, is by using homomorphic encryption. Server saves encrypted password

My main point is that we already seem to do what you are asking for:

HTTPS should always be used for the public-facing endpoint
JupyterHub never stores plain passwords, so storing them in a safe place would be worse. We would never want to store plaintext passwords at rest, ever.

so I don't see what this issue is meant to be for.


Feature/consistent hearder styling

Description
Contributors: @dylan-rinella
Trello
Loom OTW
This PR aims to make headers on all pages consistent. First off the "My Cases" page was absent of a header so that was added. Next, the "Cases" had a header that was centered with the entire page, not taking into account the left navbar such as the "Home" or "Judges" pages. The "Home" page was given a longer orange bar to match the rest of the pages for overall consistency.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have removed unnecessary comments/console logs from my code
[x] I have made corresponding changes to the documentation if necessary (optional)
[x] My changes generate no new warnings
[x] I have checked my code and corrected any misspellings
[x] No duplicate code left within changed files
[x] Size of pull request kept to a minimum
[x] Pull request description clearly describes changes made & motivations for said changes

Looks good! I think it will really help us too when we go to adjust the side drawer. Clean code, well done!

I see you edited your comment but I wanted to respond to the point you brought up! There was not much testing for the different screen sizes during this PR because the entire application needs a lot of work for the resizing aspect. We felt that it wouldn't make sense for the scope of this ticket to only have the header resize appropriately when smaller or bigger when everything else breaks. Hope this makes sense, but it was an excellent point to bring up :)

Nice update! Good to see consistent styling among the components.


RectClip not always preserving orientation

The documentation states:

RectClip preserves path orientation

Either I've misunderstood something, or here's a counter-example:
TEST(Clipper2Tests, TestRectClipOrientation)
{
    const Rect64 rect(1222, 1323, 3247, 3348);
    const Path64 subject = MakePath({ 375,1680, 1915,4716, 5943,586, 3987,152 });
    RectClip64 clip(rect);
    const auto solution = clip.Execute({ subject });
    ASSERT_EQ(solution.size(), 1);
    EXPECT_EQ(IsPositive(subject), IsPositive(solution.front()));
}

I'm not saying it's not a corner case (literally!):

However, this is a simplified version of a much more complex case that I accidentally stumbled upon.

Thanks Juha.
I can confirm that this is an issue.
Howver I'm currently occupied with other things so I doubt I'll get a chance to look at this for a few days.

Not at all urgent from my side – I have a workaround in place already.

Thank you Angus for fixing this! 🥳🥳🥳
Can confirm that the fix works on my machine as well! 😅


Dioxus CLI prebuilt binaries

Specific Demand
While migrating from 0.3 to 0.4, I noticed the CLI takes much longer to compile, up to 15 minutes on Vercel and GitHub Actions. Even on my machine it takes 7-8 minutes.
Would it be possible to supply prebuilt binaries, for amd64 Windows and Linux at least?
It will help users that integrate with CI/CD platforms to reduce the overall deployment time instead of having to compile the CLI from source every time (caching can help, but it depends on the platform).
Implement Suggestion
I believe a GitHub Action could do this pretty easily, but it might incur costs depending on what plan the project is on.

There will be prebuilt binaries the next time a new release is published. This was added in https://github.com/DioxusLabs/dioxus/issues/1331
Closing this as a duplicate of https://github.com/DioxusLabs/dioxus/issues/1331


Error using https and ipv6: InvalidURL("nonnumeric port: '4f7b'",)

To reproduce:
import urllib3
p = urllib3.connection_from_url('https://[2001:0:53aa:64c:104c:2c10:2bef:4f7b]')
p.request('GET', '/')

produces:
Traceback (most recent call last):
  File "/usr/lib/python3.4/http/client.py", line 771, in _set_hostport
    port = int(host[i+1:])
ValueError: invalid literal for int() with base 10: '4f7b'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 548, in urlopen
    conn = self._get_conn(timeout=pool_timeout)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 250, in _get_conn
    return conn or self._new_conn()
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 770, in _new_conn
    strict=self.strict, **self.conn_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connection.py", line 171, in __init__
    timeout=timeout, **kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connection.py", line 119, in __init__
    _HTTPConnection.__init__(self, *args, **kw)
  File "/usr/lib/python3.4/http/client.py", line 750, in __init__
    self._set_hostport(host, port)
  File "/usr/lib/python3.4/http/client.py", line 776, in _set_hostport
    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
http.client.InvalidURL: nonnumeric port: '4f7b'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.4/dist-packages/urllib3/request.py", line 68, in request
    **urlopen_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/request.py", line 89, in request_encode_url
    return self.urlopen(method, url, **extra_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 629, in urlopen
    release_conn=release_conn, **response_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 629, in urlopen
    release_conn=release_conn, **response_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 629, in urlopen
    release_conn=release_conn, **response_kw)
  File "/usr/local/lib/python3.4/dist-packages/urllib3/connectionpool.py", line 609, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/local/lib/python3.4/dist-packages/urllib3/util/retry.py", line 271, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='2001:0:53aa:64c:104c:2c10:2bef:4f7b', port=None): Max retries exceeded with url: / (Caused by ProtocolError('Connection aborted.', InvalidURL("nonnumeric port: '4f7b'",)))

Using https://[2001:0:53aa:64c:104c:2c10:2bef:4f7b]:443 instead is a workaround.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/26727615-error-using-https-and-ipv6-invalidurl-nonnumeric-port-4f7b?utm_campaign=plugin&utm_content=tracker%2F192525&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F192525&utm_medium=issues&utm_source=github).

Interestingly, this seems to be an artefact of the way http.client behaves. It looks like the square brackets are mandatory:
Python 3.4.3 (default, Sep 15 2015, 12:08:21)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import http.client
>>> c = http.client.HTTPConnection('[2001:0:53aa:64c:104c:2c10:2bef:4f7b]')
>>> c = http.client.HTTPConnection('2001:0:53aa:64c:104c:2c10:2bef:4f7b')
Traceback (most recent call last):
  File "/Users/cory/.pyenv/versions/3.4.3/lib/python3.4/http/client.py", line 786, in _get_hostport
    port = int(host[i+1:])
ValueError: invalid literal for int() with base 10: '4f7b'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/cory/.pyenv/versions/3.4.3/lib/python3.4/http/client.py", line 750, in __init__
    (self.host, self.port) = self._get_hostport(host, port)
  File "/Users/cory/.pyenv/versions/3.4.3/lib/python3.4/http/client.py", line 791, in _get_hostport
    raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
http.client.InvalidURL: nonnumeric port: '4f7b'

The same problem exists on all versions of Python that I tested, including 3.5 and 2.7.

Interestingly, this seems to be in opposition to the comment I can find on connectionpool.py line 71:
        # httplib doesn't like it when we include brackets in ipv6 addresses
        self.host = host.strip('[]')

That comment went in as part of 208ba74c796116bafc95d46dfcf4325449643ab6.

And that came from #203.

Wow, our users clearly don't use raw IPv6 addresses very often, or I'd have expected we'd see this sooner.
Regardless, I have no idea what caused @t-8ch to believe that the stdlib didn't like the square brackets, beyond the fact that it lead to an incorrect Host header in Python 2.6. That appears to have been fixed by this Python bug in 2.7 but never backported to 2.6. Let me see if I can reproduce.

Nope, Python 2.6 doesn't like this either. I don't believe this was ever right. Why haven't our tests caught this?

Oh, that's why: the existence of the port hides the failure. Our tests always use a port because we're always testing against non-80 and non-443 ports, so we have to explicitly add them. Bizarre.

The final piece of the puzzle is why it works when you add a port, and that's because it goes down a different path of httplib. If you provide port=None to httplib then it tries to parse the URL for a port and screws it up because we didn't provide the square brackets (note that we can't parse without them either).
I feel like the correct fix here is simple to remove the stripping of square brackets, though I'd like to hear from @t-8ch first.

That was fast :)

@thomascellerier We aim to please! Also it's raining cats and dogs outside so I have nothing better to do. :sunglasses:
So as discussed above, I believe the fix here is simple, but I want to get clarification from the original developer if we can rustle him up.