Unbounded memory growth installing java on MacOS Sonoma

Describe the bug
Installing java causes the computer to run out of memory.
To Reproduce
run rtx install java
Expected behavior
Expect rtx to not cause unbounded memory growth and the tool installed.
Installing the same version of java with asdf worked okay (I tried asdf install java zulu-11.66.15_1)
rtx doctor output
rtx version:
  2023.8.0 macos-arm64 (unknown 2023-08-16)

build:
  Target: aarch64-apple-darwin
  Features: DEFAULT, NATIVE_TLS
  Built: Wed, 16 Aug 2023 06:44:47 +0000
  Rust Version: rustc 1.71.1 (eb26296b5 2023-08-03)
  Profile: release

shell:
  /bin/zsh
  zsh 5.9 (x86_64-apple-darwin23.0)

rtx data directory:
  /Users/nabeen/.local/share/rtx

rtx environment variables:
  RTX_SHELL=zsh

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

config files:
  /Users/nabeen/.rtx.toml

plugins:
  bun      https://github.com/cometkim/asdf-bun.git#fd84edd
  deno     https://github.com/asdf-community/asdf-deno.git#87442fe
  elixir   https://github.com/asdf-vm/asdf-elixir.git#a4c42e1
  erlang   https://github.com/asdf-vm/asdf-erlang.git#a77ab91
  go       (core)
  gradle   https://github.com/rfrancis/asdf-gradle.git#9a2ca80
  java     https://github.com/rtx-plugins/rtx-java.git#a6fb375
  node     (core)
  python   (core)
  ruby     https://github.com/rtx-plugins/rtx-ruby.git#203001f

toolset:
<EMAIL_ADDRESS>
No problems found

Additional context
Command appears stuck after running. I couldn't find anything related on trace level of logging

can you post the output of rtx i java --trace?

[TRACE] (1) rtx::config: [src/config/mod.rs:263] settings does not exist "/Users/nabeen/.config/rtx/config.toml"
[TRACE] (1) rtx::plugins::rtx_plugin_toml: [src/plugins/rtx_plugin_toml.rs:29] parsing: /Users/nabeen/.local/share/rtx/plugins/ruby/rtx.plugin.toml
[TRACE] (9) rtx::config::config_file::rtx_toml: [src/config/config_file/rtx_toml.rs:59] parsing: /Users/nabeen/.rtx.toml
[TRACE] (3) rtx::config::config_file::tool_versions: [src/config/config_file/tool_versions.rs:57] parsing tool-versions: /Users/nabeen/.tool-versions
[TRACE] (10) rtx::config::config_file::tool_versions: [src/config/config_file/tool_versions.rs:57] parsing tool-versions: /Users/nabeen/Work/BigW/Lightning/.tool-versions
[TRACE] (12) rtx::config::config_file::rtx_toml: [src/config/config_file/rtx_toml.rs:59] parsing: /Users/nabeen/Work/BigW/Lightning/.rtx.toml
[TRACE] (1) rtx::config: [src/config/mod.rs:68] Settings: Settings {
    experimental: false,
    missing_runtime_behavior: Warn,
    always_keep_download: false,
    always_keep_install: false,
    legacy_version_file: true,
    legacy_version_file_disable_tools: {},
    plugin_autoupdate_last_check_duration: 604800s,
    trusted_config_paths: {},
    verbose: true,
    asdf_compat: false,
    jobs: 4,
    shorthands_file: None,
    disable_default_shorthands: false,
    disable_tools: {},
    log_level: Trace,
    raw: false,
}
[TRACE] (5) rtx::cache: [src/cache.rs:79] reading ~/Library/Caches/rtx/elixir/legacy_filenames.msgpack.z
[DEBUG] (1) rtx::config: [src/config/mod.rs:111] Files: ~/Work/BigW/Lightning/.rtx.toml, ~/Work/BigW/Lightning/.tool-versions, ~/.rtx.toml, ~/.tool-versions
Installed Plugins: bun, deno, elixir, erlang, gradle, ruby
[DEBUG] (1) rtx::cli: [src/cli/mod.rs:190] rtx i java --trace
[TRACE] (7) rtx::cache: [src/cache.rs:79] reading ~/Library/Caches/rtx/java/remote_versions.msgpack.z
[TRACE] (6) rtx::cache: [src/cache.rs:79] reading ~/Library/Caches/rtx/bun/remote_versions.msgpack.z
[TRACE] (4) rtx::cache: [src/cache.rs:79] reading ~/Library/Caches/rtx/deno/remote_versions.msgpack.z
[TRACE] (3) rtx::cache: [src/cache.rs:79] reading ~/Library/Caches/rtx/gradle/remote_versions.msgpack.z
[DEBUG] (8) rtx::plugins::core::python: [src/plugins/core/python.rs:56] Updating python-build in /Users/nabeen/Library/Caches/rtx/python/pyenv
[DEBUG] (14) rtx::cmd: [src/cmd.rs:80] $ git -C /Users/nabeen/Library/Caches/rtx/python/pyenv branch --show-current
[DEBUG] (14) rtx::git: [src/git.rs:66] current branch for /Users/nabeen/Library/Caches/rtx/python/pyenv: master
[DEBUG] (14) rtx::git: [src/git.rs:24] updating /Users/nabeen/Library/Caches/rtx/python/pyenv to master
[DEBUG] (14) rtx::cmd: [src/cmd.rs:80] $ git -C /Users/nabeen/Library/Caches/rtx/python/pyenv fetch --prune --update-head-ok origin master:master
[DEBUG] (14) rtx::cmd: [src/cmd.rs:80] $ git -C /Users/nabeen/Library/Caches/rtx/python/pyenv rev-parse HEAD
[DEBUG] (14) rtx::git: [src/git.rs:71] current sha for /Users/nabeen/Library/Caches/rtx/python/pyenv: 79a501139fd106b39c6095467930ac506822c4c5
[DEBUG] (14) rtx::cmd: [src/cmd.rs:80] $ git -C /Users/nabeen/Library/Caches/rtx/python/pyenv -c advice.detachedHead=false -c advice.objectNameWarning=false checkout --force master
[DEBUG] (14) rtx::cmd: [src/cmd.rs:80] $ git -C /Users/nabeen/Library/Caches/rtx/python/pyenv rev-parse HEAD
[DEBUG] (14) rtx::git: [src/git.rs:71] current sha for /Users/nabeen/Library/Caches/rtx/python/pyenv: 79a501139fd106b39c6095467930ac506822c4c5
[TRACE] (14) rtx::file: [src/file.rs:68] touch /Users/nabeen/Library/Caches/rtx/python/pyenv
[DEBUG] (17) rtx::cmd: [src/cmd.rs:80] $ /Users/nabeen/Library/Caches/rtx/python/pyenv/plugins/python-build/bin/python-build --definitions
[TRACE] (8) rtx::cache: [src/cache.rs:88] writing ~/Library/Caches/rtx/python/remote_versions.msgpack.z
[DEBUG] (1) rtx::toolset::builder: [src/toolset/builder.rs:63] gradle@8, bun@latest, python@latest, deno@latest, <EMAIL_ADDRESS><EMAIL_ADDRESS>[TRACE] (18) rtx::file: [src/file.rs:40] mkdir -p /Users/nabeen/Library/Caches/rtx/lockfiles
[TRACE] (18) rtx::file: [src/file.rs:23] rm -rf /Users/nabeen/.local/share/rtx/installs/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:23] rm -rf /Users/nabeen/.local/share/rtx/downloads/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:23] rm -rf /Users/nabeen/Library/Caches/rtx/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:40] mkdir -p /Users/nabeen/.local/share/rtx/installs/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:40] mkdir -p /Users/nabeen/.local/share/rtx/downloads/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:40] mkdir -p /Users/nabeen/Library/Caches/rtx/java/zulu-11.66.15_1
[TRACE] (22) reqwest::blocking::wait: [/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.18/src/blocking/wait.rs:49] (ThreadId(22)) park without timeout
[TRACE] (23) reqwest::blocking::client: [/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.18/src/blocking/client.rs:1033] (ThreadId(23)) start runtime::block_on
[TRACE] (22) reqwest::blocking::wait: [/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.18/src/blocking/wait.rs:16] wait at most 30s
[TRACE] (22) reqwest::blocking::wait: [/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.18/src/blocking/wait.rs:42] (ThreadId(22)) park timeout 29.999999333s
[DEBUG] (23) reqwest::connect: [/Users/brew/Library/Caches/Homebrew/cargo_cache/registry/src/index.crates.io-6f17d22bba15001f/reqwest-0.11.18/src/connect.rs:429] starting new connection: https://joschi.github.io/
[TRACE] (18) rtx::file: [src/file.rs:23] rm -rf /Users/nabeen/.local/share/rtx/installs/java/zulu-11.66.15_1
[TRACE] (18) rtx::file: [src/file.rs:23] rm -rf /Users/nabeen/.local/share/rtx/downloads/java/zulu-11.66.15_1
Error:
   0: timed out
   1: timed out waiting on channel

Location:
   src/timeout.rs:16

Version:
   2023.8.0 macos-arm64 (unknown 2023-08-15)

Suggestion: Run with RTX_DEBUG=1 for more information.

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.

can you run curl https://joschi.github.io/java-metadata/metadata/all.json?

I can reach that endpoint okay.

just noting that I'm on the public beta of MacOS Sonoma.

ok, maybe this weekend I'll see if I can upgrade and find out what happens. This is definitely a strange one though.
One thing I suppose you could try is installing with cargo install rtx-cli --features rustls and see if this is ssl-related.

cargo install rtx-cli --features rustls then rtx install worked 🎉 🎉

turns out I had multiple versions of rtx installed (cargo + homebrew). I thought I was using the cargo version, but brew version was taking precedence.

huh, were you using jdxcode/brew/rtx or rtx? I think they use different ssl methods.

I believe I was using plain rtx

the code just calls reqwest::blocking::get. It isn't streaming the response or anything.

oh interesting. Happy to provide additional info if it'll help.

Can this be reopened please? My mac (running sonoma beta) also crashed a few times in the past few days, and suddenly I realized that it always ran out of application memory when I was installing this version of java<EMAIL_ADDRESS>I too have installed rtx via homebrew just as rtx and not jdxcode/brew/rtx

I use 1Password as the IdentityAgent, could that have been messing up?

don't think so, this isn't using ssh, it's https
@vraravam try installing with the rustls feature

thanks for the fast reponse @jdxcode - could you please help how to install with that feature via homebrew?

you can't

so, is there no other option or a future version where I don't need to depend on cargo? I dont code in rust and dont want to go with the cargo route as a dependency for system tooling installations - would like to stick with homebrew.

@vraravam if you install rtx from the tap (brew install jdxcode/tap/rtx), it should work without issues.

Thanks for the response @nabn .

Unfortunately, as the screenshot shows:

rtx took up 31 GB of RAM (and continued to grow till it took 41 GB, then swapped to disk (I guess - since the RAM usage for rtx went down to MBs), and finally crashed the system once more!
As can also be seen in the screenshot, the plugins for node and python were reported to not be found (though it installed them successfully)
I followed your advice and uninstalled rtx completely. To be extra sure, I also deleted the ~/.local/share/rtx/ folder before reinstalling via the jdxcode/tap/rtx route in my Brewfile

Any other suggestions please?

when you uninstall all rtx versions (before installing from the tap with brew install jdxcode/tap/rtx), it might be worth checking that there are no other versions lying around, just in case.
Also, not sure what your install_rtx_plugins looks like, but might be worth running rtx install java <version> as it's own thing so you can pin point where the problem is.

Yes, I have verified that no other rtx is installed. Also, quit iterm and restarted to ensure nothing is brought along "in memory"
that's just a bash script to loop on the occurrences of the .tool-versions file and run rtx install on those directories. I am currently trying the individual rtx install java, rtx install python, rtx install ruby as per your suggestions.

rtx install java seems to be the culprit - RAM usage has gone up into the gigabyte range

does which rtx output the correct installation as you expect?
There might be something else going on. I tried the same steps on my machine (uninstalled with brew uninstall rtx, insured which rtx doesn't output anything, then installed with brew install jdxcode/tap/rtx) and rtx install<EMAIL_ADDRESS>worked okay for me.
Not sure what the issue is..

that's the output of `which rtx`
`command rtx` only output the help/man of rtx

i have libressl installed via brew
but, i also noticed that openssl was installed when i ran rtx install
could that be a problem?

that's because of rtx activate zsh in your .zshrc or equivalent config files according to the shell you're using; could try commenting that out when you test it.
I'm not very familiar how rtx works internally, I was just trying to share what I did to get it to work.

Documenting what worked (still not sure why it worked though!)
ok - finally got it working!!!
After installing rtx, I was running rtx plugin add for all the languages listed in the ~/.tool-versions file. After which, I was running the rtx install without any other arguments. This kept failing for java consistently.
At one point, I noticed that the node and python plugins were not added, but still rtx was able to install those lang versions. Based on this, I again uninstalled rtx, openssl, rebooted the whole OS, reinstalled openssl via homebrew, followed by installation of rtx (also via homebrew). This time around, I did NOT run the rtx plugin add command for the languages. Instead, I just ran rtx install directly after installing rtx. And this time around, all the languages worked!
The output of rtx plugin list --urls returns no lines(!) And all the languages are now working and operational.

My machine is and m1 (arm), running sonoma beta 6 (for future reference in case this matters).

Can reproduce for Ventura 13.4.
rtx version is from homebrew (no tap).
Commands have been:

rtx plugin install java
rtx install java

It sounds like the java plugin is the problem, try uninstalling it so you use the core plugin:
rtx plugins uninstall java
rtx install java

Its surprising that there's a concept of a "core" plugin. I have been using rtx for quite a while now, and i had to always add plugin before trying to install that language. Can this be documented somewhere? Or maybe I missed it?

it is documented: https://github.com/jdxcode/rtx#core-plugins

it looks like we may not be the only ones with this issue: https://news.ycombinator.com/item?id=37498979
Seems Sonoma has some networking issues


Memory issues: too many data

We have to load to much into memory, maybe we have to lower the precision (to float16) or we are not releasing values after they got returned.

Maybe iterate over the whole dataset created and check if the RAM usage increases all the time or if it converges at some point.

was fixed with a smaller batch size


pull request for e2e test at 02/02/2017 07:26:13

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


enable retention of prototypes when dragging

currently, the hack to get around lack of IE support for custom dataTransfer types is debilitating
practically, when items are dropped, they lose their reference and any associated prototype, because they are serialized and deserialized to and from JSON
this PR works around that by implementing a simple cache that the directives use to store and retrieve data
transferred object is always passed into event handler(s) when possible
demo demo/advanced is now updated to use this functionality

Without functional tests, it's hard to say whether or not this strategy is susceptible to race conditions.  We aren't targeting older browsers, but I have tested this on current versions of Chrome, Safari and Firefox, and it works in all three.

Thanks a lot for your pull request!
The serialzation/deserialization is not due to IE support, it's how native drag & drop is supposed to work. By using a local ID you loose the ability to drag & drop from/to other browser tabs or applications (although this has to be enabled with dnd-external-sources due to IE not supporting custom mime types). Therefore, I won't merge this PR.

@marceljuenemann
That makes sense, if that's your use case.  It isn't ours, however.
As a general-purpose, in-browser drag/drop directive, this is by far the cleanest code I've seen out of evaluating many.  So, we'll probably go ahead and maintain a fork, perhaps renamed; I'm sure you'll understand.

(It's not my desire to maintain a fork; if you wish me to reimplement this behavior as an option, I can do that)

It's not really my use case, I'm no longer using this directive. It just ended up with a lot of users, so I feel obliged to maintain it from time to time...
Actually, your proposal to implement it as an option is worth a second thought. It's not really how the API is supposed to be used, but as long as the browsers don't implement it properly and we need workarounds anyways, we could consider it.
Here are some more thoughts:

How are you going to handle duplicate objects? ng-repeat does not support that. When moving objects everything might work out if they are deleted in the same digest cycle, but this directive also supports copying objects.
Your code can be massively simplified due to the fact that there can only be one element that is dragged at any time. You can just replace dndDragTypeWorkaround.isDragging with the reference to the current object, no need to transfer any IDs.
We could use this behavior whenever dnd-external-sources is not activated, or make it a new flag.

PS: It looks like you only need a subset of this directive's features, so if you want to fork it go ahead, it will definitely be easier for you ;)

Re copying...
ngRepeat will only freak out if the objects have the same internal $$hashKey afaik. I believe angular.copy() will not copy that. I can't recall if that's what you're doing--don't have it in front of me.
I'll adress your other questions and concerns tomorrow (maybe 18 hours from now or so).  :smile:

Well, currently the object is serialized, given to the native drag & drop handler of the OS, and then deserialized from the data that the OS gives us when dropped. Since it uses angular.toJSON the prototype is lost.
In your first post you wrote you want to retain the reference, so that won't work with angular.copy. Also note that until angular 1.2, angular.copy is doing a deep copy of the prototype, which changes the type of the object and might make this feature useless (see https://github.com/angular/angular.js/issues/1427)

Copying objects is wrought with peril.  We don't need it, so perhaps we will go with that fork idea.

Really needed this option...
I use dnd plugin for sorting an array of complex objects, so when it serializes and then deserializes them it spoils the objects totally and they become useless after dragging. It would be cool if the plugin would have really moved the objects in the array (list) without copying or serializing them.

I'm about to add dnd-callback which will allows sidestepping the directive's dataTransfer and moving elements without serialization: https://github.com/marceljuenemann/angular-drag-and-drop-lists/commit/446925a08126666ca9bbb31c4596c3f678d25145


Drop json in favor of orjson?

Orjson is so much faster that it is the better choice in all cases
Pro:

Faster
Simpler code

Cons:

Orjson only allows indenting files with two spaces, or no indentation at all when writing
Only allows strings as keys. Can be changed but performance should be tested

Personally, I made a decision with https://github.com/adamghill/django-unicorn to require orjson because supporting both orjson and json (or another library) would have been too complicated and hard to test. I did get some users with issues a few years ago because it was Rust, but that hasn't happened in a long time.
Unless you have users who really don't want to use orjson for some reason it seems reasonable to me to just orjson.

Currently I am running all tests on all possible configs, so thats not the issue. But yeah, I also don't see how anyone would definitely need the regular json module, except for that orjson only allows to indent with 2 spaces as opposed to json which allows more options, and the fact that json handles non-string keys by default

Since the code that allows to also use json is very simple and tested, json will be supported for the future because it allows more indentation options and non-str keys


Update UltrasonicSensor.java

This is a first version of my ultrasonic code.

Great work!
This will enable the robot to recognize objects.


Add google provider

The build is failing because of
Error: You are trying to create client-side redirections to paths that do not exist:
- /0.14.0/providers/google/authentication

This is a chicken and egg issue ...


Release Google.Cloud.Bigtable.V2 version 3.5.0

Changes in this release:
New features

Publish RateLimitInfo and FeatureFlag protos (commit b1efbfe)

Created release for Google.Cloud.Bigtable.V2-3.5.0


[Suggestion] Allow dispensers with flint & steel to start spirit fires

Just as the title says, it would be pretty handy and intuitive to allow dispensers with flint and steel to start spirit fires.
Thanks for your consideration! (Love the mod, by the way!)

fyi, spirit fire burns forever if u light it on netherrack... idk if ur just tryin to automate it or not

@lamoyrl90 Dispensers currently do not use the Forge Event System, so I cannot intercept the flint and steel fire start event. It may be possible to replace the entire dispenser behaviour for flint and steel, but before I do further research I'd like to know if @theboo's suggestion solves your issue :)

Yeah, I didn't realize it would burn forever on netherrack. Makes sense. Thanks!


Update Composer dependencies (2021-07-05-00-11)

Visual regression test passed!
View the visual regression test report


\robustify doesn't undefine \foo[space]

With the example
\RequirePackage{etoolbox}
\DeclareRobustCommand\foo[2][]{}
\expandafter\show\csname foo \endcsname
\robustify\foo
\expandafter\show\csname foo \endcsname

the robustify procedure makes \foo a \protected version of the LaTeX kernel \foo[space]. The code in etoolbox  has
        \if@tempswa
          \ifcsdef{\string#1 }
            {}
            {\csundef{\expandafter\@gobble\string#1 }}%

but the logic here seems odd/wrong.
Need to check exactly what the LaTeX kernel does in all cases and make sure we leave only the 'required' parts about.

It does undefine. Just \show\csname it makes as a \relax
\let \fee\etb@undefined

\show\fee
> \fee=undefined.
l.22 \show\fee

\expandafter\show \csname fee\endcsname
> \fee=\relax.
<recently read> \fee


Added support for watchos in podspec

hey, CI fails with Encountered an unknown error (Simulator for watchOS 4.0 is not available.) during validation.


KYLIN-4682 Fix java.lang.IndexOutOfBoundsException due to not setting havingFilter correctly

Proposed changes
Describe the big picture of your changes here to communicate to the maintainers why we should accept this pull request. If it fixes a bug or resolves a feature request, be sure to link to that issue.
Types of changes
What types of changes does your code introduce to Kylin?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update (if none of the other choices apply)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] I have create an issue on Kylin's jira, and have described the bug/feature there in detail
[ ] Commit messages in my PR start with the related jira ID, like "KYLIN-0000 Make Kylin project open-source"
[ ] Compiling and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] If this change need a document change, I will prepare another pr against the document branch
[ ] Any dependent changes have been merged

Further comments
If this is a relatively large or complex change, kick off the discussion at user@kylin or dev@kylin by explaining why you chose the solution you did and what alternatives you considered, etc...

Codecov Report

Merging #1529 (f8d1f1d) into master (47f8e54) will decrease coverage by 0.07%.
The diff coverage is 1.98%.

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

Codecov Report

Merging #1529 (f8d1f1d) into master (47f8e54) will decrease coverage by 0.07%.
The diff coverage is 1.98%.

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

Pull Request Test Coverage Report for Build 6699

0 of 47 (0.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.01%) to 27.982%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
0
20
0.0%

query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
0
27
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-dictionary/src/main/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTable.java
1
81.08%

query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
2
0%

source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcHiveInputBase.java
3
10.19%

Totals

Change from base Build 6698:
-0.01%

Covered Lines:
26255

Relevant Lines:
93828

💛  - Coveralls

Pull Request Test Coverage Report for Build 6699

0 of 47 (0.0%)  changed or added relevant lines in 2 files are covered.
6 unchanged lines in 3 files lost coverage.
Overall coverage decreased (-0.01%) to 27.982%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
0
20
0.0%

query/src/main/java/org/apache/kylin/query/relnode/OLAPFilterRel.java
0
27
0.0%

Files with Coverage Reduction
New Missed Lines
%

core-dictionary/src/main/java/org/apache/kylin/dict/lookup/cache/RocksDBLookupTable.java
1
81.08%

query/src/main/java/org/apache/kylin/query/relnode/OLAPAggregateRel.java
2
0%

source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcHiveInputBase.java
3
10.19%

Totals

Change from base Build 6698:
-0.01%

Covered Lines:
26255

Relevant Lines:
93828

💛  - Coveralls

Verified passed. LGTM.
Before this pr:
'OPS_USER_ID' is shard by column.
SELECT SELLER_ID,     CASE WHEN OPS_USER_ID = 'MODELER' THEN OPS_USER_ID          ELSE OPS_USER_ID     END AS dyna_GROUP,     SUM(PRICE) FROM KYLIN_SALES GROUP BY 1, 2 HAVING SELLER_id is not null and SUM(PRICE)>10

select LSTG_FORMAT_NAME, OPS_USER_ID, sum(price) as gmv from KYLIN_SALES group by LSTG_FORMAT_NAME, OPS_USER_ID having OPS_USER_ID = 'MODELER'

After this pr:
The sql shown above are executed successfully.

Verified passed. LGTM.
Before this pr:
'OPS_USER_ID' is shard by column.
SELECT SELLER_ID,     CASE WHEN OPS_USER_ID = 'MODELER' THEN OPS_USER_ID          ELSE OPS_USER_ID     END AS dyna_GROUP,     SUM(PRICE) FROM KYLIN_SALES GROUP BY 1, 2 HAVING SELLER_id is not null and SUM(PRICE)>10

select LSTG_FORMAT_NAME, OPS_USER_ID, sum(price) as gmv from KYLIN_SALES group by LSTG_FORMAT_NAME, OPS_USER_ID having OPS_USER_ID = 'MODELER'

After this pr:
The sql shown above are executed successfully.

LGTM

LGTM


seam-table refactor

https://github.com/seamapi/react/pull/348#discussion_r1294071182
We needed some more general table classes

@mikewuu may want to take a look.

Something is up with the UI Tests. Let's try to resolve before merging. The updates may have broken the layout.

seam-access-code-details and seam-code-details are very different things.
I think using seam-details vs seam-code-details is slightly better, but I wish it was more specific. seam-table-row-details ?
523e289


[BUG]: Failures in benchmarking tests that use dataset configured in dbconfig

Describe the bug
I am executing benchmarking tests on the Linux/AMD64 AWS instance.
I am facing issues in all the tests that have dataset configured in dbconfig. For example, consider the test “memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml”. I ran the test with dataset, following the command below:
redis-benchmarks-spec-client-runner --db_server_host localhost --db_server_port 6379 --client_aggregated_results_folder ./test --flushall_on_every_test_start --run-tests-with-dataset –test memtier_benchmark-1key-geo-60M-elements-geohash-pipeline-10.yml

The failure logs are as below:
2023-06-27 10:43:03 ERROR The total numbers of keys in setup does not match the expected spec: 1!=0. Aborting...
2023-06-27 10:43:03 CRITICAL Some unexpected exception was caught during local work. Failing test....

I found a similar issue here: < https://github.com/redis/redis-benchmarks-specification/issues/206 >, and the solution was this PR: < https://github.com/redis/redis-benchmarks-specification/pull/213/files >.
Following the above PR, I edited the “keyspacelen” from 1 to 0, and the test passes successfully.
Similarly, there are 8 more tests in the suite, that use dataset. Below is the list:

memtier_benchmark-1key-geo-60M-elements-geohash.yml
memtier_benchmark-1key-geo-60M-elements-geopos-pipeline-10.yml
memtier_benchmark-1key-geo-60M-elements-geopos.yml
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-bybox.yml
memtier_benchmark-1key-geo-60M-elements-geodist-pipeline-10.yml
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat-pipeline-10.yml
memtier_benchmark-1key-geo-60M-elements-geodist.yml
memtier_benchmark-1key-geo-60M-elements-geosearch-fromlonlat.yml

All the above-mentioned 9 tests use dataset and passes successfully after editing “keyspacelen” from 1 to 0.
Do you think it is reasonable to edit the “keyspacelen” to 0? If yes, I will raise a PR for the same.
Kindly let me know your thoughts on the above.
Environment (please complete the following information):

OS: Ubuntu 22.04
PyPi version package pip 23.1.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10)
Platfrom x86_64

Hi team, a gentle reminder!!
Can you please look into this issue?

Hi Team, a gentle reminder!!
Can you please look into this ticket?


Fix up description

Slight grammar change.

Codecov Report

Merging #152 (8d06503) into main (9ad5f64) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #152   +/-   ##
=======================================
  Coverage   60.34%   60.34%
=======================================
  Files          19       19
  Lines        1044     1044
=======================================
  Hits          630      630
  Misses        414      414

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


[BEAM-10003] Use local code for building code samples on website

Currently code samples are fetched from Beam Github's master branch. So in order to make change in code and then write a document piece with code sample, it was necessary create 2 PRs - one with change in code and another with change in documentation. This PR solves this issue by using local code to build code samples for documentation instead of fetching it from Github.
Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Hi @rezarokni , this PR solves the issue submitted by you. Can you take a look?
Also @pabloem , I'd appreciate if you took a look as well.

I followed Hugo's convention here, which doesn't use / prefix for paths. However, if you think it would be more clear for the Beam community then I can change it 🙂

retest this please

Run Website_Stage_GCS PreCommit

Run Website PreCommit

I see that the precommits failed because changes from this PR were out of sync with current master. Now they should pass

retest this please

retest this please

retest this please

retest this please

fyi @rezarokni with this fix, you should be able to create snippets and add them to the website in the same PR

Great stuff! There will be a few more folks adding patterns and making this easier will help us grow the community contributions :-)

What is the point of having the code_sample directive in the first place? Wouldn't it be clearer and easier to edit documentation if all code samples are inline in the markdown itself?

@pabloem What is the point of having the code_sample directive in the first place? Wouldn't it be clearer and easier to edit documentation if all code samples are inline in the markdown itself?

We can run unit tests against snippets coming from source code files. That prevent snippets from having issues or getting out of sync with rest of the code. It is not straightforward to do the same thing with inlined code samples.


Q3 OKR: Provide first-class Windows support for the CLI

We'd like to build a robust testing infrastructure for different Operating Systems (including windows) and provide the same level of support for Windows CLI users as other OSs.  Where possible, we need to include Windows as a standard part of our testing infrastructure.
Given powershell is now available out of box in newer version of windows, we're going to align docs to powershell (not cmd).

@janewang @fnando @leighmcculloch
Adding this here: https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html

One exception though is cmd.exe (used among other things to execute batch files), which has its own argument splitting logic. That forces the standard library to implement custom escaping for arguments passed to batch files. Unfortunately it was reported that our escaping logic was not thorough enough, and it was possible to pass malicious arguments that would result in arbitrary shell execution.

I don't think this is an issue for our use of Command. However, we should look into our deps and update rust version.

All Rust versions before 1.77.2 on Windows are affected, if your code or one of your dependencies executes batch files with untrusted arguments. Other platforms or other uses on Windows are not affected.

Remaining --alias

In this PR: https://github.com/stellar/soroban-astro-template/pull/4

Sorry, got over-zealous with github ticket assignments


Add enrolment for GitHub App provider

Summary
This add the last step for supporting a GitHub App provider on the Minder server.
Fixes #2520
Out of scope for this PR

Although the CLI can be used for testing this functionality, note that the CLI work for supporting the GitHub App provider is not complete and is a separate issue, https://github.com/stacklok/minder/issues/2522.

This does not include the work for fetching the list of artifacts from a repo, that is separated into https://github.com/stacklok/epics/issues/280

Change Type
Mark the type of change your PR introduces:

[ ] Bug fix (resolves an issue without affecting existing features)
[x] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[ ] Refactoring or test improvements (no bug fixes or new functionality)

Testing
Create a GitHub App
The first step is to create a GitHub App in your personal account.
(This can be tedious and I've created an issue that will make this quicker https://github.com/stacklok/minder/issues/2825.)

In your GitHub profile, go to Setting -> Developer Settings -> GitHub Apps
Select "New GitHub App"
Fill in the GitHub App name, this name must be unique among other GitHub Apps
Set the Callback URL to be http://localhost:8080/api/v1/auth/callback/github-app/app
Check the box "Request user authorization (OAuth) during installation"
Under Permissions, select the Repository Permissions: Administration (read and write), Contents (read and write), Metadata (read only), Packages (read and write), Pull requests (read and write), Repository security advisories (read and write), Webhooks (read and write), Workflows (read and write). You should have 8 Repository Permissions selected. Also select the following Organization Permission: Members (read-only)
Under "Where can this GitHub App be installed?", select "any account" if you want to test with organizations or accounts outside your own. Otherwise leave the default.

Set up server-config.yaml
Once your GitHub App is created, you need to set up any App related configuration options.
In your server-config.yaml add the following section:
github-app:
  client_id: <client-id>
  client_secret: <client-secret>
  redirect_uri: "http://localhost:8080/api/v1/auth/callback/github-app/app" # This needs to match the registered callback URL in the GitHub App

Replace <client-id> with the client ID of your GitHub App, which is found in the General -> About section of your GitHub App on GitHub.
Replace <client-secret> with a client secret that you generate by clicking "Generate a new client secret"
Then, add the following section to your server-config.yaml:
provider:
  github-app:
    app_name: <app-name>
    app_id: <app-id>
    user_id: <user-id>
    private_key: "/.secrets/github-app.pem"

Replace <app-name> with the name of your app, which you can get by looking at the GitHub URL when editing your GitHub App. For example, if the URL is https://github.com/settings/apps/eleftherias-test-app, then your app name is eleftherias-test-app.
Replace <app-id> with the app ID of your GitHub App, which is found in the General -> About section of your GitHub App on GitHub.
Replace <user-id> with the result of running this command curl https://api.github.com/users/<app-name>%5Bbot%5D | jq ".id", where <app-name> is the App name you used above.
Finally, in the section General -> Private keys, click "Generate a private key". Rename the downloaded key to github-app.pem and add it to the .secrets directory in your Minder App.
Actual Testing
Once you've set up your configuration and started Minder, you can enroll a GitHub App provider.
minder provider enroll --provider github-app

This will open a browser and take you through the authorization flow, where you will grant the App access to your account or organization.
You can then list the providers
minder provider list

You should see a provider named github-app-<owner>, where <owner> is the account or organization that you installed the App on.
All other commands are the same, as long as you specify the provider for each command.
For example, to register repos:
minder repo register --provider github-app-eleftherias

To create ruletypes:
minder ruletype create -f ./my-rules --provider github-app-eleftherias

To create a profile:
minder profile apply -f profile.yaml --provider github-app-eleftherias

To see the status of a profile:
minder profile status list -n artifact-profile --provider github-app-eleftherias

This is not the final state of the CLI, but it does allow for testing at this point.
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[x] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[x] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 47.498% (-0.2%) from 47.716%
when pulling 4b1074e53010e521a5f4ad27c66bb71787f0cc7a on eleftherias:provider-github-app
into 809687a13f9fd8bce4b37ec2c2cd915a92f32beb on stacklok:main.

Summary
This add the last step for supporting a GitHub App provider on the Minder server.
Fixes #2520
Out of scope for this PR

Although the CLI can be used for testing this functionality, note that the CLI work for supporting the GitHub App provider is not complete and is a separate issue, Support GitHub App provider in the Minder CLI #2522.

I think this is awesome to do separately.  ❤
Thank you!


Production Validation Error, fine in sandbox

My SF Dev has sent me this:
"DLRS has had to be deactivated in the Production org as in some cases (not all) it is triggering a validation that it shouldn't as the all fields it updates have been excluded.
I have attached a screenshot of the error and the class referenced is managed so I am unable to see the code.
Please can you liaise with the 3rd party supplier to try and resolve this issue."
Any ideas?  All help much appreciated.  really want to get this activated as its fantastic!
I have fully configured and tested in 2 sandbox environments with no errors.

If you had a record that didnt meet validation rules before the rule
existed then turned on the rule, when DLRS goes to edit the record
regardless of it touching the fields the VR is looking at, the record no
longer meets the VR and will trigger it.
On Wed, Jun 28, 2017 at 8:23 AM, alicemedcalf<EMAIL_ADDRESS>wrote:

[image: screenshot-1]
https://user-images.githubusercontent.com/26870077/27645359-caf11d8c-5c1d-11e7-826c-0645d82c8fdc.png
My SF Dev has sent me this:
"DLRS has had to be deactivated in the Production org as in some cases
(not all) it is triggering a validation that it shouldn't as the all fields
it updates have been excluded.
I have attached a screenshot of the error and the class referenced is
managed so I am unable to see the code.
Please can you liaise with the 3rd party supplier to try and resolve this
issue."
Any ideas? All help much appreciated. really want to get this activated as
its fantastic!
I have fully configured and tested in 2 sandbox environments with no
errors.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/afawcett/declarative-lookup-rollup-summaries/issues/525,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APXKqo_twTQVgXv-LZvFclgNc7KDMuNZks5sIm_6gaJpZM4OIILO
.

That's great - thanks - will feed back

Hi, it seems that the error is only being thrown for Sales profiles when an open activity is created.  It does not occur when a completed activity is added to an account and DLRS fires and updates the relevant fields.  The validation rule on the account stops Sales from editing it when a custom fields Status__c is set to "Customer".    I attach a copy of the validation rule.  As you can see we have excluded all the fields that are referenced in the DLRS update triggers.

Is there any way of finding out more details on the validation error message to help us fix it?  Is there anything you can see in the attached Validation rule that would cause it to fire for open activities when DLRS is only set to trigger on closed activities?
Thanks once again

Error: Invalid Data.
Review all error messages below to correct your data.
Apex trigger dlrs_TaskTrigger caused an unexpected exception, contact your administrator: dlrs_TaskTrigger: execution of AfterInsert caused by: System.DmlException: Update failed. First exception on row 0 with id 001b000000obsHGAAY; first error: FIELD_CUSTOM_VALIDATION_EXCEPTION, Please raise a ticket with Customer Services to amend details on this Account.: []: Class.dlrs.RollupService.Updater.updateRecords: line 1269, column 1

@alicemedcalf might help complete the picture here if you posted a screenshot of your rollup definition?

Hi Andy,  thanks for responding.  I should have updated this - all fixed
now.
On 29 July 2017 at 21:18, Andrew Fawcett<EMAIL_ADDRESS>wrote:

@alicemedcalf https://github.com/alicemedcalf might help complete the
picture here if you posted a screenshot of your rollup definition?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/afawcett/declarative-lookup-rollup-summaries/issues/525#issuecomment-318856722,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AZoBPa79ojKFasmPyFCqR9XEzEc5KjAlks5sS5OTgaJpZM4OIILO
.

--
Alice Medcalf
Commercial Business Analyst, Zoopla
http://www.zoopla.co.uk http://www.zoopla.co.uk http://www.zpg.co.uk
http://www.zpg.co.uk[image: Zoopla Logo] http://www.zoopla.co.uk
http://www.zpg.co.uk[image: ZPG Logo] http://www.zpg.co.uk
Registered address: ZPG Plc, The Cooperage, 5 Copper Row, London, SE1 2LH
Registered in England and Wales with Company No. 09005884
The information in this email is confidential and is intended solely for
the addressee. Access to this email by anyone else is unauthorised. If you
have received this email in error please advise ZPG immediately and delete
it.
Any disclosure, copying or distribution of this email, or reliance placed
upon it, by unauthorised recipients is prohibited and may be unlawful.

👍

Hi Alice!
do you mind sharing how did you solve this?
I have the same issue even though my validation rule doesn't trigger when I'm manually updating the result field but it triggers when the field is being updated by the roll up summary


Update recipe source_files

According to this section of the docs, the test files could be getting copied into a temporary directory. This copy operation could skip the __init__.py file.

Checklist

[ ] Used a personal fork of the feedstock to propose changes
[ ] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@Burhan-Q the problem is the pypi download tar gz file is missing the two needed files, so we likely need to update pyproject.toml to include them.

@Burhan-Q kind of strange, when I build the package locally all the test files are there, but you can see for yourself that the tests/init.py and tests/conftest.py are omitted from the tar gz that conda is using, hence the problem:
https://pypi.org/project/ultralytics/#files


ENHANCEMNET of FAQ's Page

Describe the feature
I will enhance the faq's page by adding attractive question and answers
Add ScreenShots

Record

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

@Ayushmaanagarwal1211 Try to explain the answers of old questions in more detail.

Yes i will make answers of old questions more attractive and also try to add some more question


Send to Kindle breaks encoding

Hi and thank you for your great work on asciidoctor.
I uploaded my book to KDP yesterday. I uploaded the .mobi and tested it afterwards as they allow you to download it after they processed it. Transferred with USB, looked fine.
When I click "look inside book" at http://www.amazon.com/The-CLI-Book-Writing-successful-ebook/dp/B01ED4QWPA?ie=UTF8&Version=1&entries=0 everything looks good, too.
The encoding gets weird when I click "send free test chapter to kindle":

You can try it out by getting the free chapter at http://www.amazon.com/The-CLI-Book-Writing-successful-ebook/dp/B01ED4QWPA?ie=UTF8&Version=1&entries=0 or the corresponding website for your country (this link is US, but they will redirecct you to your contry)

The "send free test chapter to kindle" feature is known to have an incredible number of bugs. There is really nothing we can do in Asciidoctor (that I've been able to work out) because this is simply the Kindle software corrupting the EPUB3 file.

To be clear, it is breaking the encoding of the document.

Here's my theory about this. Whatever Amazon uses for the "send to Kindle" action is an outdated toolchain which severely mangles the archive. Given this is proprietary software, there's nothing we can do about it.
What I recommend is passing the archive to the device using one of two methods:

Direct copy to the kindle data folder on the device

This is how I test; you can find an example for Android in the following script: https://github.com/asciidoctor/asciidoctor-epub3/blob/master/bin/adb-push-ebook

Use Kindle Direct Publishing, but keep the book in draft mode

This is a replicate of what users who shop through the Kindle store will experience; see https://kdp.amazon.com/help?topicId=AT1K7B0DRETM0

"Send to Kindle" also breaks font-based admonition icons since the toolchain strips the fonts from the archive.

I've documented this problem in the README. This is not a problem with the Asciidoctor EPUB3 software and there is nothing we can do to fix it. Therefore, I'm closing this issue.
https://github.com/asciidoctor/asciidoctor-epub3#send-to-kindle
If there are other points you want to see made in the linked section, I'd be happy to add them.


access file access logs?

Hey everyone,
Thx for the great work, we use Keybase within our company.
I accidentally added someone to one of our teams today.
Just for a minute probably, but I am worried the files we share there are compromised now.
How can I get access to file access log (or whatever else comes to your mind) to prove that person didn't access any files?
Cheers, Oliver

Hi @oliver-xapix-io -- can you message me directly on Keybase chat and we can figure something out?  My username there is strib.  It looks like you haven't proven this github account so I can't reach out directly.
For others reading this -- in general, the whole point of Keybase is that you shouldn't need to trust our servers much, so it's always the safer option to assume compromise if something like this happens.  But if you trust us and we have time to help, we might be able to work something out.


I want to make it an option whether to delete all scene objects from octomap or not

For example, when removing an object from a shelf, you do not want to exclude it from the octomap because you want to avoid the shelf as an obstacle.
However, we want to exclude the object to be grasped from the octomap.
Also, when placing an object somewhere, we want to exclude the support surface from the octomap.
We would like to create a mechanism that allows us to remove the octomap only for the specified area or objects.
First, to prevent all scenes from being removed from the octomap, we need to be able to disable this function with a parameter.

The octomap around the model is removed in the following section
https://github.com/sbgisen/moveit/blob/051e3eddfc2928e06dcb7835d684f9cca203b80c/moveit_ros/perception/depth_image_octomap_updater/src/depth_image_octomap_updater.cpp#L768


SwiftUI lobby

The Android versions keep the lobby in VR-mode, IMO it'd be better to take inspiration from Steam Link and use a native UI for commecting, and only enter VR mode once a connection is established.
Probably even more true now that we know VR mode is limited to half res, so text won't be as clear as it could be.

https://github.com/panthurrr/VisionOSALVRClient/tree/SwiftUI-Entry
This replaces the entry point with a SwiftUI based lobby with a button to manually connect to ALVR.   Once the connection is separated from the immersive view we can enable/disable the button based on an active connection.
Having the manual button lets the user determine where they are in their environment before the 1.5m boundary is established which I've found useful in my testing.
I can make a PR for this in the current state if it's an improvement overall but it does not quite meet this feature request.  The code structure for the lobby is based on Apple's sample code if anyone wants to add more to it: https://developer.apple.com/documentation/visionos/world


Crash

nm fixed

Please give more information. What version of RFTools? When does this happen? A full log is desired too.


Terminal API

[x] Rest API

[x] list GET /api/terminals
[x] create POST /api/terminals
[ ] get GET /api/terminals/${name}
[x] kill DELETE /api/terminals/${name}

[x] Websocket API

[x] ws://${basePath}/terminals/websocket/${name}
⚠ Note that this is not on the api path, unlike the kernel channels/websockets which are subresources of the REST API

[x] Update the jupyter notebook swagger doc

@rgbkrk, is this issue closed?

Totally.


Move archive operations to their own service

Follow up to https://github.com/gradle/gradle/pull/13280
Context

Contributor Checklist

[ ] Review Contribution Guidelines
[ ] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective
[ ] Provide unit tests (under <subproject>/src/test) to verify logic
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:check

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.

It's nice to split things up and the comment about Adam regarding ProjectLayout is valid. For what it's worth, having a lot of 2 methods services can take a toll of plugin development as injection is not a zero overhead. It is much smaller thanks to the decoration and ObjectFactory but not easy to follow for plugin authors.
I still believe this new service is probably a good fit. The comment is mostly a general comment around service and injection for plugin authors.

@bot-gradle test RFM

OK, I've already triggered ReadyForMerge build for you.


Location path with Cordova Media /  File plugin

org.apache.cordova.media cant find the correct path from the MP3 file, even if org.apache.cordova.file is used.
Code error: 1 (from here: https://github.com/apache/cordova-plugin-media)

Could you please specify your mobile operating system (iOS / Android) and its version. It would also be good if you provided a minimal snippet.

Doesn't work:
var asset = cordova.file.applicationDirectory + '/www/ambient.mp3';
var media = new Media(asset, onSuccess, onError);
media.play();

Doesn't work:
var asset = cordova.file.applicationDirectory + '/Epoq-Lepidoptera.ogg';
var media = new Media(asset, onSuccess, onError);
media.play();

Doesn't work:
var asset = 'Epoq-Lepidoptera.ogg';
var media = new Media(asset, onSuccess, onError);
media.play();

but, it works:
var media = new Media('http://www.vorbis.com/music/Epoq-Lepidoptera.ogg', onSuccess, onError);
media.play();

After some try, I got this working on debug app. Does release app use this path too?
    asset = 'file:///android_asset/www/bundled_tabris_js_launcher/user_app/a.amr';
    media = new Media(asset, function() {
        console.log("ok")
    }, function(r) {
        console.log("0", r)
    });

    media.play();

@calebeaires How did you come up with the 'file:///android_asset/www/bundled_tabris_js_launcher/user_app/a.amr' URL to the asset. Where does the a.amr file come from? Do you bundle it together with your application at build time or are you recording it during runtime? Are you using the file plugin to make the asset available to the new Media()?
Pleas provide this info and then we can look into it.
Please also let us know what you want to achieve and where you think Tabris.js is lacking functionality.

The Media Cordova plugin couldn't play the Audio because it couldn't find the audio file path. I just unzip the APK to find out where does trabis put the "app" assets. After I have figure out it, I just configure the javascript to get the file on the right place.

a.amr is a single audio file: http://developer.android.com/guide/appendix/media-formats.html

I have used http-server to play with this issue.

Ok, there are a couple of problems with your approach.

Your string holding the path to the bundled a.amr media file will only work on Android. (On iOS the path is a different one!)
 (Everything else is only guessing.)
There is currently no reliable way to get the absolute path of a bundled resource (independently of the native platform!) in Tabris.js.

For the last point I opened the new issue: #592.
Please confirm that this would solve your problem.

How can I append these plugins to widgets like TabFolder and composite

How can I append these plugins to widgets like TabFolder and composite

The Cordova Media plugin doesn't have any UI functionality.  Instead it is invoked via your code in a way you determine.  Looking at some sample code from the Cordova Media readme:
var my_media = new Media('http://example.com/file.mp3');
my_media.play();

If you wanted to play the file when a button is tapped:
new tabris.Button({
  text: "Play media",
}).on("select", function() {
  my_media.play();
}).appendTo(page);

how about UI based pluigin like https://github.com/nchutchind/cordova-plugin-streaming-media.git

How about ios did anyone knows the path of assets in IOS ?

@oussaki Take a look at eed37ea21642ddb3fc07b7a2812a9a82cbabf679 for a sample, but note that commit was later reverted due to path issues.

so there is no way to use a path like android this way :
myMedia = new Media("/android_asset/www/ar/assets/audio/csharp.mp3");
OR using CDVFILE
myMedia = new Media("cdvfile://localhost/en/assets/audio/jazz.mp3");
this last one i dont know how to really use it with IOS i don;t know if the path is correct or not
for android the first code woks fine for me .

@oussaki You can also try getResourceLocationPath()


This is second slide

created a branch
created a file and made a commit
opened a pull request

I learnt alot with this course


Non-actionable warning in console: You tried to return focus to null but it is not in the DOM anymore

I am seeing a lot of messages in the console: You tried to return focus to null but it is not in the DOM anymore . I am unsure how to make this warning go away.

I notice the stuff in that commit doesn't seem to be in the code anymore... and I'm having this issue.

@misuba I'm with you there. I get the warning almost every time state most places in my app change, even when the modal is not open.

I am seeing this too. @mzabriskie can we reopen this issue?

Still seeing this warning too.  :(
Reproduce steps:

Construct 2 modals, named it modal_A and modal_B.
Open modal_A (with one button).
In modal_A 's click handler, try to close modal_A and open modal_B.
When you try to close modal_B, you can see the warning messages in console window.

I'm getting this warning since I've upgraded to React v16

@jccode @mrkvngrkn Please follow issue #577. We are discussing how we are going to handle this properly.


ibmi:  isatty(55555) returns true on IBMi PASE

Version: v1.35.0
Platform: IBM i

The issue was found in the failed test of Node.js --> pseudo-tty/test-tty-isatty
AssertionError [ERR_ASSERTION]: 55555 reported to be a tty, but it is not
On IBMi PASE, the libuv API isatty is implemented as below --
  if (!ioctl(file, TXISATTY + 0x81, NULL) || errno != ENOTTY)
    return UV_TTY;

The problem is the errno != ENOTTY part. When fd = 55555, the errno is not ENOTTY but EBADF (Bad file number) on IBMi PASE. Then the code return true and say it is a TTY.
I am wondering if the errno checking is necessary here?

There was some discussion in https://github.com/libuv/libuv/pull/2565#discussion_r355158948 when the IBMi implementation was added.

There was some discussion in #2565 (comment) when the IBMi implementation was added.

Seems adding the check is not a good idea. @kadler , what is your opinion?

Let's refactor the ioctl call in to its own isatty function. That way the main codepath is the same for all POSIX platforms and we can implement the local static isatty function to implement the correct behavior wrt errno handling. Doing it inline will just make things more complicated.

Looking at the code for isatty, we definitely need to handle EBADF distinctly from other errno values.

I've created #2753 for this issue

@dmabupt can you test my changes with Node to see if the Node test fails. @richardlau should we add a similar test to libuv?

@richardlau should we add a similar test to libuv?

If it can be tested reliably I don't see why not.

@dmabupt can you test my changes with Node to see if the Node test passes now?
@richardlau should we add a similar test to libuv?

PR #2753 has been tested. It works as expected. I will close this issue once the PR landed. Thanks.


Fixed NY (Timeseries does not contain a sample for SCRAPE_DATE)

I pinged @aed3 a couple of times on Slack; hopefully we can get this completed, if the work is still valid.  With the recent changes I'm not sure it is anymore ... @hyperknot and @shaperilio, thoughts?

How are we handling missing data for a given day? null values?

How are we handling missing data for a given day? null values?

@hyperknot - old question!  Missing data should be undefined.

@hyperknot - old question! Missing data should be undefined.

Thanks!

Picking up work in another branch, PR https://github.com/covidatlas/coronadatascraper/pull/974 (still draft).  I'll address the conversation points here, though, and will close it when the draft is complete.

Closing in favor of https://github.com/covidatlas/coronadatascraper/pull/974.


A JavaScript error occurred in the main process while opening Visual Studio Code

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: latest
OS Version: Windows 10 Enterprise 19045.3930

Steps to Reproduce:

While using vscode, it suddenly closes and then reopens with the following error

I just hit this myself. Would anybody like to take a look before I reinstall VS code?

It looks like for me the out folder doesn't exist:
 Directory of C:\Program Files\Microsoft VS Code\resources\app

06/06/2024  09:07 AM    <DIR>          .
05/02/2024  12:46 PM    <DIR>          ..
05/07/2024  05:13 AM           167,695 LICENSE.rtf
05/13/2024  10:46 AM    <DIR>          licenses
05/07/2024  05:13 AM        12,954,359 node_modules.asar
06/06/2024  09:07 AM    <DIR>          node_modules.asar.unpacked
05/07/2024  05:13 AM             9,540 package.json
05/07/2024  05:51 AM            54,321 product.json
05/02/2024  12:46 PM    <DIR>          resources
05/07/2024  05:13 AM           242,533 telemetry-core.json
05/07/2024  05:13 AM            45,610 telemetry-extensions.json
05/07/2024  05:13 AM         1,475,875 ThirdPartyNotices.txt
               7 File(s)     14,949,933 bytes
               5 Dir(s)  1,726,640,914,432 bytes free

I had this problem with VS Code Insiders a few days ago, on Windows.  I noticed I had a load of zombie processes that were maybe obstructing an update or something, but I didn't capture many more details than that.
The way I fixed it was to reinstall Insiders from the website and that was the point I noticed the zombies, so I killed them and then the reinstall went through.

@joaomoreno, @deepak1556 This is currently happening to me on my DevBox:

This is the second time that it has happened on that system. The previous time I was only able to resolve it by uninstalling VS Code and re-installing. Is there any information you would like me to capture before I do that?

This issue looks to be similar to #111107, though at least in my case I never aborted the update.

I am also seeing this error regularly. Pattern of behavior is that I notice that all of TypeScript language server features break and attempting to restart the TS server does nothing. If I try to open a new window, I'm given the crash message seen in this thread.
I also see the zombie processes that have been mentioned here. As long as they are running, I am unable to reinstall VSCode, but even if I close them and reinstall, the issue persists. So far, the only thing that has gotten it to go away temporarily is if I completely restart my machine and then, as the first action, run the VSCode installer for system.
I have zero out folder whenever this is happening.
I have gotten this issue on multiple versions: 1.89, 1.90, and 1.90.1 all gotten from the public VSCode download page.
This is happening about once a week and is pretty disruptive.

Did anyone find a fix for this? I have suddenly been getting this error every day, the trigger seems to be happening nightly and I have to reinstall every morning. #233724

If you have VSCode running as admin (shows Visual Studio Code [Administrator] in the title bar) this might fix it:
https://github.com/microsoft/vscode/issues/233724#issuecomment-2504158092


Remove RCD from tech and make it a crate

About the PR

RCD is roundstart which means making it t2 tech feels like a gut punch.
This moves it and the ammo to a crate so cargo actually has something nifty that engies will want.
Removes the lathe recipes because they're obsolete in the face of this.
Why / Balance

Roundstart tools should have roundstart resupplying.
Media

[x] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Breaking changes

Changelog

:cl:

add: Added the RCD and RCD ammo crates to cargo.

I don't think we should remove it from printing.
In #15708 I have it so that printed RCDs should come with basic functionality. Round start RCDs should be full functionality. And Cargo RCDs should be an upgraded RCD with a CE lock called an Industrial RCD.

Could RCD ammo be put into the engieVend so that engineers could buy restocks to get more ammo without needing to buy a crate and discarding the RCDs inside?

Could RCD ammo be put into the engieVend so that engineers could buy restocks to get more ammo without needing to buy a crate and discarding the RCDs inside?

The PR has two crates: one containing an RCD with 5 charges, and the other containing 3 RCD ammo, each granting 5 additional charges.
Just order the cheaper ammo crate instead of the full RCD crate

why not just T1?

why should you have to research something that already exists?

why should you have to research something that already exists?

MFW thats half the tech tree

MFW thats half the tech tree

#21462

Didn't get to comment before this got merged, but I dont like that yet another engineering item is locked behind cargo having to order it. Engineering already heavily relies on cargo for materials, gasses, and repairs (AME and such), now they need to do so even more for RCD ammo. IMO the ammo should be a basic craftable on the autolathe, even if it needs to be more expensive than it is now.


Blocked Maze in Java

Have you read the Contributing Guidelines on Pull Requests?
Yes.
Description
Given a maze with some paths blocked, the code will generate all the possible pathways to reach from the top-left to the bottom-right corner. Movement is possible in all four directions.
There is one more problem already present in the cp section of java called RateMaze. It is similar to that except in that problem it is only checking if it is possible to reach the destination and also the movements are restricted in two directions only i.e. right and down. Here in my problem, the movement is not restricted as well as it is displaying all the possible pathways.
Replit Link
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Fixes : #6228

A neat contribution! Good work :)


Explicit UrlManager::$rules type (UrlRule[])

The change is not correct. The original doc is precise as rules is expected to be an array of configurations, not UrlRule objects.

Ah right, forgot that it starts off life as a config array.


Req: add "basiclexer=" option to Lark, to instruct ContextualLexer to use a custom BasicLexer

Suggestion
In Lark.open() (and Lark constructor), add an option such as basiclexer=... to allow users to specify an alternate BasicLexer class (which must be a subclass of BasicLexer) if they want to use the standard ContextualLexer with their own customised underlying lexer.
Describe alternatives you've considered
At present, there are only 2 ways to do this, both of which are problematic:

Create a subclass of ContextualLexer, replacing its constructor with one which is identical, save for changing the hardwiring from using BasicLexer, to using one's preferred BasicLexer subclass instead, or
"monkey-patch" the lexer module to overwrite BasicLexer with one's preferred BasicLexer subclass, which will fool ContextualLexer's constructor into using the replaced BasicLexer subclass.

Both these approaches are very messy and subject to breakage as Lark evolves. It would be better to have an orderly way to accomplish this.
Additional context
My legacy syntax parser project has hit some walls, due to the syntax allowing certain character sequences to delimit areas inside the code where the semantics change radically. Not only that, but these areas can overlap, meaning you can go from "not in an altered area", to "inside area A", then "inside area A and area B", to "inside area B", to "not in an area".
I did consider switching to a custom lexer, based on one of the advanced examples, but I don't want to give up the power of Lark's contextual lexing capability. Also, this would rabbit-hole me into a maze of edge cases which don't allow robust solutions without deep introspection into parser states.
To me, the ability to maintain some global state flags, and control how each context-specific lexer behaves according to these flags, is a dealbreaker necessity for this project to continue.
If there's a way to accomplish this without requiring an added basiclexer=... option, or either of the 2 above 'hack' solutions, I'd be grateful to know.

What if we just refactor ContextualLexer to use self.basic_lexer, as official API, and you could inherit and override it easily?
For convenience, we can even provide a utility factory function, so calling Lark will look like Lark(..., lexer=custom_contextual_lexer(my_basic_lexer))

Thanks for your understanding, quick response and thoughts. The pattern you've suggested would be great, passing my subclass into that factory function.
Also seems like an approach that will age well for the Lark codebase.
Once that's in main, I'll transition away from my temporary monkey patch. 😊

Added.


Test

#154

Current coverage is 51% (diff: 100%)

No coverage report found for master at 5a82ae5.

Powered by Codecov. Last update 5a82ae5...5033cee


Docker build no longer works

The docker build is now broken due to two factors:

Current version installs libssl 1.1.0 but the latest cmake package in the ubuntu repos requires 1.1.1.
PR ((#2706) which was merged in a few weeks ago, introduces new dependencies on Rust, which isn't installed in the current Dockerfile.

To Reproduce
Try running a docker build from scratch.
Expected behavior
Docker build should complete and wallet-core be compiled.
Additional context
I have created the following PR with a possible solution for the issue:
https://github.com/trustwallet/wallet-core/pull/2809

Fixed with https://github.com/trustwallet/wallet-core/pull/2809


Include Federated share provider parent class

use OCA\ScienceMesh\AppInfo\ScienceMeshApp; doesn't exist on ScienceMeshShareProvider.php.
It doesn't show any errors and works as it should, But it is probably better if I add it to the file just in case


why show this

cfg set range?

Hi, the latest version with a better implementation should mitigate the grayed/washed out image issue. Please update to the latest version and give it a try.


Needed to make this change to run things locally

@pizzapanther Running this locally didn't work for me unless I made this change. Does this seem right to you?
Otherwise it's looking for templates/markdown in .../dist/src and .../dist/md, but the src and md directories aren't getting put into the dist directory via gulp.

I think you might have you ENV var different because this just does the same thing as what's there
I have FRONTEND_DIR=/home/paulmbailey/code/github/PyTexas2019/dist
I'm guessing you have something like FRONTEND_DIR=/home/paulmbailey/code/github/PyTexas2019
Maybe i didn't update the readme when i made the change

yeah i never updated dated the readme, so taking this so i don't have to update it


Get-SPOCrossGeoMoveReport - No description and example given

This CmdLet lacks a correct description and an example.

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

ID: e7e4e31b-eae6-abac-6af9-4b1dae4674bb
Version Independent ID: 364993b1-e909-2f1e-82b8-5eba8bed537f
Content: Get-SPOCrossGeoMoveReport (sharepoint-online)
Content Source: sharepoint/sharepoint-ps/sharepoint-online/Get-SPOCrossGeoMoveReport.md
Service: sharepoint-powershell
GitHub Login: @trent-green
Microsoft Alias: trgreen

@officedocsbot assign @yogkumgit

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


Azure publishing - type of Azure account

Hi,
I'm trying to deploy my Bot project to Azure but I just get this information: This type of account doesn't work with this particular service. Please enter an email address or phone number associated with a different account.
Can someone tell me please what should I do? It will be perfect to use this Azure account because I have everything else there.
Thanks for help!

Thread here has more on this problem with resolution still outstanding: https://github.com/microsoft/BotFramework-Composer/issues/5393

Thread here has more on this problem with resolution still outstanding: https://github.com/microsoft/BotFramework-Composer/issues/5393

thanks!

thanks!

Details on the #5393 . Closing the ticket.

Details on the #5393 . Closing the ticket.


psbt: Remove usage of PrivateKey

High level reason for this patch: compressed keys are legacy, we should make them second class citizens. There is no need for the psbt module to be treating legacy keys as first class citizens.
The PSBT defines a serialization format, whether or not we use serialize private keys using compressed format or not is an implementation detail. We can use the keys for secp and remove all usage of the uncompressed serialization.
Caveat: Is our PSBT serialization supposed to be readable by other software? I highly doubt it is but just asking in case.
This breaks serde serialization of PSBTs also, so this makes the psbt serialization format backwards incompatible.

cc @stevenroose

This PR seems confused. There is nowhere in Bitcoin that secp256k1::PublicKeys are used. Every full public key has a compressedness bit which determines how it is embedded in a transaction.


Onedrive move known folders

When using the move known folder gpo, it moves the files to onedrive but translates everything into danish even though the operating system is running either US/Ger/GB/SWE which is a huge annoyance since desktop is suddenly called Skrivebord when opening explorer.

@MiweDK  thank you for submitting feedback.
I think the best way forward is if you open a service ticket in your tenant so this can get resolved ASAP. Based on the outcome let me know if it is something that can be called out in the docs.
Please follow this link to contact support for business products:https://docs.microsoft.com/office365/admin/contact-support-for-business-products
Please keep us posted here on the resolution so we can feed whatever information you discover into the content.


Access WebGLRenderer

Hi there!
I am trying to implement the Stereo Effect, but as an argument it takes the renderer.
Is there any way I can pass the Three.WebGLRenderer used to the StereoEffect function?
Thanks so much!
— Maxi

Until I implement a nice function to get it, for now,
In your component that will contain React3, you can add a ref like so:
<React3 ref="react3" ...other properties here ...>
This way, for example within componentDidMount:
    console.log(react3.refs.canvas.userData.markup.childrenMarkup[0].threeObject._renderer);

should print the renderer.
I am thinking of adding a prop e.g. onRendererCreated or something to React3.

Totally suffices for now! Thank you so much, @toxicFork!
This may be another issue, but I still can't seem to get the Stereo Effect to work. Have you ever tried that or do you know on the spot whether something like that's even possible with react-three-renderer?

Hmm... http://threejs.org/examples/js/effects/StereoEffect.js doesn't look very complicated, I can add support for stereoCamera, or you can try to duplicate it by combining it with https://github.com/mrdoob/three.js/blob/master/src/cameras/StereoCamera.js
I will add support for StereoCamera anyway, as well as onRendererCreated :)

Perfect, thanks! Yup, should be pretty straightforward - I kinda missed StereoCamera there ;) Thanks a bunch!

In v0.1.0 now :) Please reopen if there are any issues!

See https://github.com/toxicFork/react-three-renderer/wiki/react3#onrendererupdated

Hi
I'm trying to implement a fallback for the WebGLRender by using the CanvasRenderer. Is onRendererUpdated the only handle I've?

Please bare with as I am brand new ThreeJS.
We've got react-three-renderer working GREAT!
We're now just trying to dive into post processing and running into a few issues.  First, when looking into the post processing examples on Threejs.org, all the examples directly edit the global Three object when they want to implement a module. Additionally, those examples have a ton of tiny libs/objects/modules that do not seem to be part of any npm package.

Not sure how to get something like EffectComposer working with react-three-renderer?
How can we leverage these libs (eg. CodeShader.js) in our CommonJS style node code?

We are trying to use three-effectcomposer with react-three-renderer and we're not getting any errors, just a warning, and there is no noticiable change to the render.
here is our code:

import './scss/ParticleScene.scss';

import React from 'react';
import React3 from 'react-three-renderer';
import THREE from 'three';
import ReactDOM from 'react-dom';
import TweenLite from 'gsap';
import BinaryLoader from '../../utils/BinaryLoader.js';

import Particle from '../Particle/Particle.jsx';
import ParticleField from '../ParticleField/ParticleField.jsx';
import textureImage from './textures/UV_Grid_Sm.jpg';

import cellModel from './objects/stemcell2/stemCell_lp.json';
import cellTexture from './objects/stemcell2/stemCell_lp-TM_AO_u0_v0.jpg';
import cellNormalMap from './objects/stemcell2/stemCell_lp-NM_u0_v0.jpg';
import cellDisplacmentMap from './objects/stemcell2/stemCell_lp-DM1024_8bit_u0_v0.jpg';
import cellAOMap from './objects/stemcell2/stemCell_lp-AO_u0_v0.jpg';

const EffectComposer = require('three-effectcomposer')(THREE);

THREE.DotScreenShader = {
  uniforms: {
    "tDiffuse": { type: "t", value: null },
    "tSize":    { type: "v2", value: new THREE.Vector2( 256, 256 ) },
    "center":   { type: "v2", value: new THREE.Vector2( 0.5, 0.5 ) },
    "angle":    { type: "f", value: 1.57 },
    "scale":    { type: "f", value: 1.0 }
  },
  vertexShader: [
    "varying vec2 vUv;",
    "void main() {",
      "vUv = uv;",
      "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
    "}"
  ].join("\n"),
  fragmentShader: [
    "uniform vec2 center;",
    "uniform float angle;",
    "uniform float scale;",
    "uniform vec2 tSize;",
    "uniform sampler2D tDiffuse;",
    "varying vec2 vUv;",
    "float pattern() {",
      "float s = sin( angle ), c = cos( angle );",
      "vec2 tex = vUv * tSize - center;",
      "vec2 point = vec2( c * tex.x - s * tex.y, s * tex.x + c * tex.y ) * scale;",
      "return ( sin( point.x ) * sin( point.y ) ) * 4.0;",
    "}",
    "void main() {",
      "vec4 color = texture2D( tDiffuse, vUv );",
      "float average = ( color.r + color.g + color.b ) / 3.0;",
      "gl_FragColor = vec4( vec3( average * 10.0 - 5.0 + pattern() ), color.a );",
    "}"
  ].join("\n")
};

THREE.RGBShiftShader = {
  uniforms: {
    "tDiffuse": { type: "t", value: null },
    "amount":   { type: "f", value: 0.005 },
    "angle":    { type: "f", value: 0.0 }
  },
  vertexShader: [
    "varying vec2 vUv;",
    "void main() {",
      "vUv = uv;",
      "gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
    "}"
  ].join("\n"),
  fragmentShader: [
    "uniform sampler2D tDiffuse;",
    "uniform float amount;",
    "uniform float angle;",
    "varying vec2 vUv;",
    "void main() {",
      "vec2 offset = amount * vec2( cos(angle), sin(angle));",
      "vec4 cr = texture2D(tDiffuse, vUv + offset);",
      "vec4 cga = texture2D(tDiffuse, vUv);",
      "vec4 cb = texture2D(tDiffuse, vUv - offset);",
      "gl_FragColor = vec4(cr.r, cga.g, cb.b, cga.a);",
    "}"
  ].join("\n")
};

export default class ParticleScene extends React.Component {
  constructor(props, context) {
    super(props, context);

    // SCENE POSITION
    this.scenePosition = new THREE.Vector3(0, 0, 0);

    // construct the position vector here, because if we use 'new' within render,
    // React will think that things have changed when they have not.
    this.cameraPosition = new THREE.Vector3(0, 0, 5);
    this.cameraRotation = new THREE.Euler(0, 0, 90 * Math.PI / 180);

    // LIGHT POSITION
    this.directionalLightPosition = new THREE.Vector3(0, 1, 0);

    //PARTICLE POSITION
    this.particlePosition = new THREE.Vector3(0, 0, 4);

    // FOG SETUP
    this.fog = new THREE.Fog(0x4994c8, 0, 10);

    //Mesh Geometry
    this.cellGeometry = this.parseMeshFromJSON(cellModel);

    this.state = {
      viewerWidth : window.innerWidth,
      viewerHeight : window.innerHeight
    };

    this._onAnimate = this._onAnimate.bind(this);
    this._handleWindowResize = this._handleWindowResize.bind(this);
    this._handleRenderUpdated = this._handleRenderUpdated.bind(this);
  }

  // Native Functions
  // -----------------
  componentDidMount() {
    window.addEventListener('resize', this._handleWindowResize, false);
    this.refs.meshPhongMaterial.normalMap = this.loadTexture(cellNormalMap);
    this.refs.meshPhongMaterial.displacementMap = this.loadTexture(cellDisplacmentMap);
    this.refs.meshPhongMaterial.displacementBias = 2;
    // this.refs.meshPhongMaterial.wireframe = true;
    this.refs.meshPhongMaterial.displacementScale = 0.4;
    this.refs.meshPhongMaterial.aoMap = this.loadTexture(cellAOMap);

    // Post-Processing

    this.composer = new EffectComposer(this.renderer);
    this.composer.addPass(new EffectComposer.RenderPass(this.refs.mainScene, this.refs.mainCamera));

    // Redraw with a shader
    const effect = new EffectComposer.ShaderPass(THREE.DotScreenShader);
    this.composer.addPass(effect);

    // And another shader, drawing to the screen at this point
    const effect2 = new EffectComposer.ShaderPass(THREE.RGBShiftShader);
    effect2.renderToScreen = true;
    this.composer.addPass(effect2);
  }

  componentWillUnmount() {
    window.removeEventListener('resize', this._handleWindowResize, false);
  }

  // Custom Functions
  // -----------------
  _onAnimate() {
    // we will get this callback every frame
    this.refs.CellParticlesClose.update();
    this.refs.CellParticlesSuperClose.update();
    this.refs.CellParticlesMed.update();
    this.refs.CellParticlesFar.update();

    this.composer.render();
  };

  // <--- Removed code for brevity

  _handleRenderUpdated(renderer) {
    if(renderer !== null) {
      console.log(renderer instanceof THREE.WebGLRenderer); // true
      this.renderer = renderer;
    } else {
      // renderer is just destroyed or will be recreated soon
    }
  }

  // <--- Removed code for brevity

  render() {
    const {
      viewerWidth,
      viewerHeight
    } = this.state;

    return (
<React3
      mainCamera="mainCamera" // this points to the perspectiveCamera which has the name set to "camera" below
      width={viewerWidth}
      height={viewerHeight}
      antialias = {true}
      onAnimate={this._onAnimate}
      clearColor={this.fog.color}
      ref="react3"
      onRendererUpdated={this._handleRenderUpdated}
    >
      <resources>
        <geometry
          resourceId="cellGeometry"
          {...this.cellGeometry}
        />
        <texture
          resourceId="cellTexture"
          url={cellTexture}
        />
        <meshPhongMaterial
          resourceId="cellMaterial"
          ref="meshPhongMaterial"
        >
          <textureResource
            resourceId="cellTexture"
          />
        </meshPhongMaterial>

        <sphereGeometry
          resourceId="particleGeometry"
          radius={0.1}
          widthSegments={20}
          heightSegments={20}
        />
        <sphereGeometry
          resourceId="particleGeometrySmall"
          radius={0.0001}
          widthSegments={50}
          heightSegments={50}
        />
        <sphereGeometry
          resourceId="particleGeometryLow"
          radius={0.1}
          widthSegments={10}
          heightSegments={10}
        />
        <texture
          resourceId="texture"
          url={textureImage}
          wrapS={THREE.RepeatWrapping}
          wrapT={THREE.RepeatWrapping}
          anisotropy={16}
        />
        <meshLambertMaterial
          resourceId="particleMaterial"
          side={THREE.DoubleSide}
        >
          <textureResource
            resourceId="texture"
          />
        </meshLambertMaterial>
      </resources>
      <scene
        fog={this.fog}
        ref="mainScene"
      >
        <perspectiveCamera
          name="mainCamera"
          fov={75}
          aspect={viewerWidth / viewerHeight}
          near={0.1}
          far={1000}
          position={this.cameraPosition}
          rotation={this.cameraRotation}
          ref="mainCamera"
        />
        <ambientLight
          color={0x404040}
        />
        <directionalLight
          color={0xffffff}
          position={this.directionalLightPosition}
          lookAt={this.scenePosition}
        />

        <ParticleField
          numberOfParticles = {3}
          particleFieldRadius = {5}
          particleFieldCenter = {this.particlePosition}
          particleScale = {0.1}
          particleGeometryResourceId = "particleGeometry"
          particleMaterialResourceId = "cellMaterial"
          ref = "CellParticlesSuperClose"
        />

        <ParticleField
          numberOfParticles = {20}
          particleFieldRadius = {5}
          particleFieldCenter = {this.cameraPosition}
          particleScale = {1}
          particleGeometryResourceId = "particleGeometry"
          particleMaterialResourceId = "particleMaterial"
          ref = "CellParticlesClose"
        />

        <ParticleField
          numberOfParticles = {50}
          particleFieldRadius = {10}
          particleFieldCenter = {this.cameraPosition}
          particleScale = {1}
          particleGeometryResourceId = "particleGeometryLow"
          particleMaterialResourceId = "particleMaterial"
          ref = "CellParticlesMed"
        />

        <ParticleField
          numberOfParticles = {300}
          particleFieldRadius = {50}
          particleFieldCenter = {this.cameraPosition}
          particleScale = {1}
          particleGeometryResourceId = "particleGeometryLow"
          particleMaterialResourceId = "particleMaterial"
          ref = "CellParticlesFar"
        />

      </scene>
    </React3>
);
  }
}

Hi,
have you found any solution?
I've got the same issue.
Thanks

@FredHasselot does https://github.com/toxicFork/react-three-renderer/wiki/react3#onrendererupdated work for your problem? If not we can improve it :)
@iDVB apologies I thought I had responded but it seems the response didn't go through github...
It looks like it should work but it's hard to guess what may have gone wrong without stepping into the code unfortunately

Hi,
I tried to add  : composer.render();  after a list of effect on the onRenderUpdated event function.
something like:
onRendererUpdated={this.renderedUpdated.bind(this)}
on the React3 tag
then something like:
renderedUpdated(r3nderer) {

  composer = new THREE.EffectComposer( r3nderer);
  composer.addPass( new THREE.RenderPass( this.refs.scene, this.refs.mainCamera ) );

  let dotScreenEffect = new THREE.ShaderPass( THREE.DotScreenShader );
  dotScreenEffect.uniforms[ 'scale' ].value = 4;
  composer.addPass( dotScreenEffect );

  let rgbEffect = new THREE.ShaderPass( THREE.RGBShiftShader );
  rgbEffect.uniforms[ 'amount' ].value = 0.0015;
  rgbEffect.renderToScreen = true;
  composer.addPass( rgbEffect );

  composer.render()
}

But this.refs.scene and this.refs.mainCamera was undefined if i remember...
So i did something similar on the componentDidMount event and later i tried on the update function as well. without success.
I read, somewhere on the EffectComposer documentation, that the render have to be done this way : composer.render()
and not this way : renderer.render()
maybe the issue is related to that?

If you do the binding within render function it may get called repeatedly, and in some cases the r3nderer variable will be undefined (for example when a canvas needs to be re-created)
Yes composer.render sounds better, but still if you can provide an example that I can run, it will be easier to look at what's going on :)

Has anybody had any luck getting post-processing working with an EffectComposer? We're trying to implement an object "outline" feature, and it seems like the best way to do it is with EventComposer post-processing.
I've tried putting the composer in a few places, but haven't had any luck yet. Any info about successfully using an EventComposer with this library would be very appreciated.

Yes @oortlieb -- after reading this thread and doing a little digging, I got this working, applying the shader examples provided by iDVB as a test case. (Cool effect btw @iDVB )
I will provide a walkthrough of my steps here to help anyone who stumbles across this and is in a similar predicament. Be warned however that this is a little hacky and very dependent on the specific "internal" variable arrangement of r3r types, which is very prone to change as it continues to develop -- so if your version doesn't match mine (3.2.4), you may need to do some digging in the source and make some adjustments. (At least until a clean API is provided for this case, s'il vous plaît @toxicFork )
I hooked up React3 in the following manner for reference:
<React3 ref={react3 => (this.react3 = react3) }
Then, in componentDidMount(), after creating this.composer, I added the following line:
this.react3._canvas.userData.markup.childrenMarkup[0].threeObject._renderScene = camera => { this.composer.render(); }
This effectively replaces what would be a call to WebGLRenderer.renderScene() with a call to EffectComposer.render() -- the fundamental otherwise missing step to get this post-process effect working.
I arrived at this from starting from toxicFork's comment https://github.com/toxicFork/react-three-renderer/issues/27#issuecomment-185429288. I ran a text searched through the source for react-three-renderer and found where .render is called -- which is only in React3Instance.js, in the one call _renderScene() (which makes it easy).
Note that this effectively skips some debug logic which looks like it shows some overlaid highlight scene for non-production builds; in my case I don't care about this. Ideally though r3r would provide some hook to override (or add another layer of processing) around the render call (which would I think be all that is necessary to support this).


Feature request: sync current score for new connections

currently even if the habit already exists, we create a new one starting at 0, we should instead "import" the existing connection score/id and start off there.

In my opinion, the Tasks Completed score should not indicate the score of the Habit, but rather indicate how many task completions have been sent to Habitica. Maybe this is not very clear now, I will think about making this more explicit.
I would like to close this issue for now. Thanks for participating!


generate the metrics service account and make it clearer that the jen…

…kins service account is also generated

[merge]


Support for serializing a PORO

Part of my app uses a ruby object that calculates values based on an AR model. Those values and in some case class objects go into the PORO and are stored in the attr_accessor
The serializer Im using specifies relationships, and I guess AMS assumes that a has_many :comments will be mapped to @post.comments where @post is a PORO instead of an AR model.
Anyone know if you can pass a PORO to a fast json api serializer?

Right, I thought so too. I think the issue is when specifying which serializers to use for assocations.
Continuing your example if PoroSerializer had:
has_many :comments, serializer: SpecialCommentSerializer it will expect a method for comment_ids

Looks like I can set polymorphic: true and it skips the id hash part of the relationship class.

@zion I ran in to same problem 🙄 adding polymorphic: true prevented class_ids  look up but wouldn't serialize the has_many objects.
class Exam
  include FastJsonapi::ObjectSerializer
  has_many :documents, polymorphic: true, serializer: ::V5::Entities::Document
end

Apparently I couldn't find any gem which offers json:api spec with PORO class with relations(has_many) support.
Did you find any fix for this issue ? or another gem ?

I ended up just staying with the active model json api adapter. I don’t love the solution but it works for now.


TagHelper: How to use a form model that is not the same as the view model

I use a view model to transport my data from the controller to the view. Inside the view I have a html form which posts data to a controller action. The post action model is different to my view model. How can I achieve that the TagHelper react to another model?
For HtmlHelper I can create a separate instance of type HtmlHelper and use this with razor syntax. But TagHelpers work with a ModelExpression that automatically binds to the view model.

@audacity76 one approach would be to make your form model a property of the view model. Then post back only that important part of the view model.
Another approach would be to create a variable named model that references your form model. Then use model in the tag helpers e.g. <input<EMAIL_ADDRESS>/> would bind a ModelExpression with the Name "Name".

@dougbu thanks, both approaches are working great. It's worth mentioning that these strategies are leaving a prefix (the view model property name or the variable name) in the html name (and id) fields. Therefore the parameter in the post action needs to be the same as the prefix otherwise the model binder doesn't work.


0.8.0 Updates

The following additions have been added

Add initial embedded c version
Improve synthetic routines
Generate segmentation and fiducial masks for synthetic signals
Expand noise and distortion routines

Breaking changes:

New synthetic function signatures
New noise function signatures

0.8.0 RC


Alternative sorting for project versions page

Is your feature request related to a problem?
My project https://hangar.papermc.io/ViaVersion/ViaRewind auto publishes to hangar in the following schematic:

releases go to the "Release" label
snapshots go to the "Snapshot" label
commits on the dev branch to the "Alpha" label

Since every commit is published, it doesn't take long for only snapshot/alpha versions to be visible on the page. Users then download a snapshot or alpha version since they don't immediately see the release and error occur since alpha/snapshot versions usually also require snapshot versions from my upstream dependencies ViaVersion and ViaBackwards.
Describe the solution you'd like.
A solution would be to allow the project author to change the default values for the channel/version type selection:

To be fair my case is more specific, but I could also imagine this to be useful for other projects as well. This way people can publish dev builds but offering the user releases to prevent automatically using dev builds and running into issues.
Describe alternatives you've considered.
As alternatives (or second feature) it would be cool to have a mode were:

only the latest version of every Release channel is displayed.
you can pin versions which are displayed above unpinned versions.

Other
No response

this is already a thing :)

Oh I should have looked at that menu, thank you


[Feature request]: Use P2P to get battery level data.

Describe the solution you'd like
Eufy hardly ever updates the cloud API with the battery level of any devices, resulting in incorrect battery levels for days or weeks at a time (my 2C camera has been at 39% for 18 days now according to the API).  It would be much better if you could get battery levels via P2P instead.

I believe this is related to #154


Cannot get required symbol EC_KEY_set_public_key_affine_coordinates from libssl 'serverInfo'

I have the following libssl on my system (CentOS 7.4.1708):
/lib/libssl.so.0.9.8e*
/lib/libssl.so.10@
/lib/libssl.so.1.0.2k*
/lib/libssl.so.6@
uname -a
Linux machine 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Python 3.6.2

Interesting. Definitely looks like an openssl-lib package issue with the version and/or configuration, but I'm unable to repro this issue on my CentOS 7.4.1708 setup, using the same openssl-lib 1.0.2k version package.

Closing this as it seems to be a libssl configuration issue.