Filter for not forcing the WordPress way of get_posts.

Ticket: #1987
Issue
Adds an additional filter that will give devs a chance to use get_posts in classic Timber way or in WP way.
Solution
Adds an extra if + filter that can be set to true or false.
Impact
It should solve issues like #1987 and on the hand will provide with quite easy way to solve #1812
Usage Changes
add_filter( 'timber/post_getter/wp_get_posts', '__return_true' );
add_filter( 'timber/post_getter/wp_get_posts', '__return_false' );

Considerations
This is a temporary fix until we'll figure out what to do with Timber::get_posts().
Also - I'm not sure about the filter name. Making those name is hard :(
Testing
I added add_filter in tests so the test would run in WP way.

Coverage decreased (-1.5%) to 92.807% when pulling df9deba2a38802a91163d63918efc42ef93d8d0d on palmiak:get_posts_filter into baaa1960193cffb5fa7c43c09114d6831764eede on timber:master.

I like the mirror name 😀 You should add to your CV "senior filter and
variable name creator"
wt., 7 maj 2019, 08:25 użytkownik Lukas Gächter<EMAIL_ADDRESS>napisał:

@gchtr approved this pull request.
Yes, that’s how I would do it! Thanks for pushing this forward!
Naming is surely hard, here are some other names I could think of:
timber/get_posts/strict
timber/get_posts/match_wp
timber/get_posts/match_wp_get_posts
timber/get_posts/mirror_wp
timber/get_posts/mirror_wp_get_posts
As it is now, the filter probably won’t get picked up by the
documentation, because it’s in an if statement. But I’ll need to check
that. Here’s how it would be safely picked up:
/**

Filters whether Timber::get_posts() should mirror WordPress’s get_posts() function.

When passing true in this filter, Timber will set the following parameters for your query:

ignore_sticky_posts = true

suppress_filters = true

no_found_rows = true

@since 1.9.5
@example

add_filter( 'timber/get_posts/mirror_wp_get_posts', '__return_true' );

@param bool $mirror Whether to mirror the get_posts() function of WordPress with all its

                parameters. Default `false`.

*/
$mirror_wp_get_posts = apply_filters( 'timber/get_posts/mirror_wp_get_posts', false );
if ( $mirror_wp_get_posts ) {
add_filter('pre_get_posts', array('Timber\PostGetter', 'set_query_defaults'));
}
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/timber/timber/pull/1989#pullrequestreview-234327073,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAR34OXWADOH5DFVDT7LDJDPUEOD3ANCNFSM4HLEHKRQ
.

I see that there are travis-errors but I think they are related with #1990

@palmiak Oh yes! I opened #1994 to fix this.

This is a great solution, please resolve/merge 👍


Change number format button behavior

This issue has been reflected in v0.6.
https://github.com/shapoco/calctus/releases/tag/v0.6.8857.6956-beta


Tidy up the node passing a complex configuration object

remove the 8 input images
accept the the output from a configuration object
so that the node does not grow vertically in size and the input is more flexible (eg masks)

working on a different interface
learning cross-node frontend communication

the new interface is now complete

you can now pass masks they will be applied
the mask can come from the same image or any other source (have the same sizes)
width and height are not anymore interactive, but can be passed from other sources
the pause switch is now in the config but acts on the compositor (maybe I will change this again)
interface size is now properly working, once the node is executed the contents are sized correctly (red border is removed, the safe area around the composition controlled by padding is now touching the borders of the compositor node)


Ignite 2.5.1 p12 snap fix

PR is not associated with a ticket. Please see how to associate
https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-Creation
Closing PR (which seems to be test-only) due to inactivity. Feel free to reopen this PR if it is actual.


Mixin: False value being converted to empty string

I see here https://github.com/christianalfoni/formsy-react/blob/47dd80b67f9104ab98567fd5d9f5387f6c4b8722/src/Mixin.js#L3 that falsy values are being converted to '' when setting the value of a component using the mixin.
  getInitialState: function () {
    var value = 'value' in this.props ? this.props.value : '';
    return {
      _value: value,
      _isValid: true,
      _isPristine: true,
      _pristineValue: value
    };
  },

In my case I have a radio button with boolean values (true/false). False is being converted to '' and the API is rejecting it. I've worked around it by coercing in onSubmit but I was just curious if there was a reason why this is being done.

Hi @gpbmike ,
Do you set the initial value to false?
<MyCheckBox value={false}/>

If so it should work. The 'value' in this.props only checks if the key "value" exists in props, not if the value is "truthy".
The reason behind '' is that you can really create any element. If a checkbox has its value by default false, there is no way for Formsy to understand that. You kinda have to tell it by passing a default "false" value. What you get back though is lots of flexibility in what kind of form elements you want to build :-)
Example of checkbox:
var MyCheckbox = React.createClass({
  mixins: [Formsy.Mixin],
  changeValue: function (event) {
    this.setValue(!this.getValue());
  },
  render: function () {
    return (
      <div>
        <input type="checkbox" checked={this.getValue()} onChange={this.changeValue}/>
      </div>
    )
  }
});

<MyCheckBox name="foo" value={false}/>

My bad, I'm using an older version. My problem was fixed with these commits:
https://github.com/christianalfoni/formsy-react/commit/bade05b9cd2e3845ecc7814fe5d1516b05c82133
https://github.com/christianalfoni/formsy-react/commit/dca9f785248346431a32e0121d970b6a0a4a55b8
I thought I was linking to the erroneous line I found in my local version. I didn't look close enough. :)
Cheers.

Ah, cool, great :-)


Is this project still maintained?

Just out of curiosity, is this project still under active maintenance?

I am not actively developing the project at the moment, just simply due to other time pressures
But I am happy to accept pull requests

No pressure, but this project has seemingly gained a lot of steam on Nuget in the past couple years. https://nugettrends.com/packages?ids=StringToExpression&months=24
If you don't have time to review the outstanding PRs, maybe consider adding outside maintainers to the project? Just a suggestion. I think this project fills a very important niche in the .NET ecosystem. Thanks for your great work here!

@MgSam ill do some light maintenance on the project during the next week,

clear out the PRs
move the releases over to git actions
add target to net8.0

But overall happy to have some help maintaining the project, @MgSam are you volunteering?


retrieve invoice PDF

I don't seem to find a function to download the pdf file of an existing invoice. I can get back the Invoice class with the getInvoice function but I would like to download the pdf. I saw that the update function in the Receipt class has the option of saving unsaved PDF files. Is it possible to implement the same for the Invoice? And put the fix in the v1.2.1, too? I'm using Laravel 5.7.* and versions after v1.2.1 don't work with my app.

Hey gergotar,
My apologies, but the organization owner decided to exclude the package maintainers so we're not allowed to perform any hotfix / further development anymore. For now, the best I can advice to you is to clone the entire repository and make your desired changed.


[2.x] Update common utils version for integ tests

Description
Update default version of common-utils used by the integ tests for 2.x

Category (Enhancement, New feature, Bug fix, Test fix, Refactoring, Maintenance, Documentation)

Maintenance
Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

I've created a PR against main: https://github.com/opensearch-project/security/pull/3017


Log file size breaking goleveldb

As per: https://forum.syncthing.net/t/log-file-too-big-prevented-syncthing-from-starting/2532
leveldb.OpenFile returns
read /Users/andrew/Library/Application Support/Syncthing/index/010489.log: result too large

Seems to be OSX

This seems to be caused by filesystem corruption.
https://discussions.apple.com/thread/974231?tstart=0

Results too large basically means that the source file's indicated size won't fit on the destination, given the free space. Often, it also means the folder information on the source is damaged and should be repaired...


Doesn't show any keys

Problem
The window shows up, but when I type something, nothing gets updated, it remains as a blank window.
Steps to reproduce
Here is my config:
return {
  {
    "NStefan002/screenkey.nvim",
    config = function()
      local sk = require("screenkey")
      sk.setup()
      vim.keymap.set("n", "<leader>sk", sk.toggle)
    end,
  },
}

Expected behavior
Window should start showing last typed characters.
Terminal name/version
wezterm 20240203-110809-5046fc22

By the way, I know I haven't provided enough info for you to debug this by yourself, so I'm down to test stuff out for you. Also, there aren't any errors popping up, so it's not easy for me to tell what's going wrong.

Oh I just realized... my neovim version is out of date. My bad for creating this bug report, but, for the future I think you should add a neovim version input in the bug report template.

for the future I think you should add a neovim version input in the bug report template

Totally agree. Thanks for pointing that out. I will add it as soon as possible.


bazel fails to build java-tutorial project

Describe the bug
I tried running through the Bazel Java Tutorial, but the first bazel build command in it fails.
To Reproduce
$ rm -rf ~/.cache/bazel/

$ nix-shell --pure -p git -p cacert -p bazel -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/568a19b24e1720d58b9bc5644b724faf042079ef.tar.gz

[nix-shell:~/git/bazel]$ git clone https://github.com/bazelbuild/examples/
Cloning into 'examples'...
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (22/22), done.
remote: Total 1038 (delta 10), reused 11 (delta 4), pack-reused 1010
Receiving objects: 100% (1038/1038), 341.04 KiB | 3.31 MiB/s, done.
Resolving deltas: 100% (355/355), done.

[nix-shell:~/git/bazel]$ cd examples/java-tutorial/

[nix-shell:~/git/bazel/examples/java-tutorial]$ git rev-parse HEAD
b901a7c7dcb46377b8e72f73e6c9d1a81c009424

[nix-shell:~/git/bazel/examples/java-tutorial]$ bazel build --toolchain_resolution_debug --sandbox_debug --verbose_failures //:ProjectRunner
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
INFO: ToolchainResolution: Looking for toolchain of type @bazel_tools//tools/cpp:toolchain_type...
INFO: ToolchainResolution:   Considering toolchain @local_config_cc//:cc-compiler-armabi-v7a...
INFO: ToolchainResolution:     Toolchain constraint @platforms//cpu:cpu has value @platforms//cpu:arm, which does not match value @platforms//cpu:x86_64 from the target platform @bazel_tools//platforms:target_platform
INFO: ToolchainResolution:     Toolchain constraint @platforms//os:os has value @platforms//os:android, which does not match value @platforms//os:linux from the target platform @bazel_tools//platforms:target_platform
INFO: ToolchainResolution:   Rejected toolchain @local_config_cc//:cc-compiler-armabi-v7a, because of target platform mismatch
INFO: ToolchainResolution:   Considering toolchain @local_config_cc//:cc-compiler-k8...
INFO: ToolchainResolution:   For toolchain type @bazel_tools//tools/cpp:toolchain_type, possible execution platforms and toolchains: {@bazel_tools//platforms:host_platform -> @local_config_cc//:cc-compiler-k8}
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform, type @bazel_tools//tools/cpp:toolchain_type -> toolchain @local_config_cc//:cc-compiler-k8
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform,
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform,
INFO: ToolchainResolution: Looking for toolchain of type @bazel_tools//tools/cpp:toolchain_type...
INFO: ToolchainResolution:   Considering toolchain @local_config_cc//:cc-compiler-armabi-v7a...
INFO: ToolchainResolution:     Toolchain constraint @platforms//cpu:cpu has value @platforms//cpu:arm, which does not match value @platforms//cpu:x86_64 from the target platform @bazel_tools//platforms:target_platform
INFO: ToolchainResolution:     Toolchain constraint @platforms//os:os has value @platforms//os:android, which does not match value @platforms//os:linux from the target platform @bazel_tools//platforms:target_platform
INFO: ToolchainResolution:   Rejected toolchain @local_config_cc//:cc-compiler-armabi-v7a, because of target platform mismatch
INFO: ToolchainResolution:   Considering toolchain @local_config_cc//:cc-compiler-k8...
INFO: ToolchainResolution:   For toolchain type @bazel_tools//tools/cpp:toolchain_type, possible execution platforms and toolchains: {@bazel_tools//platforms:host_platform -> @local_config_cc//:cc-compiler-k8}
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform, type @bazel_tools//tools/cpp:toolchain_type -> toolchain @local_config_cc//:cc-compiler-k8
INFO: ToolchainResolution: Looking for toolchain of type @bazel_tools//tools/jdk:runtime_toolchain_type...
INFO: ToolchainResolution:   Considering toolchain @bazel_tools//tools/jdk:dummy_java_runtime...
INFO: ToolchainResolution:   For toolchain type @bazel_tools//tools/jdk:runtime_toolchain_type, possible execution platforms and toolchains: {@bazel_tools//platforms:host_platform -> @bazel_tools//tools/jdk:dummy_java_runtime}
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform, type @bazel_tools//tools/jdk:runtime_toolchain_type -> toolchain @bazel_tools//tools/jdk:dummy_java_runtime
INFO: ToolchainResolution: Looking for toolchain of type @bazel_tools//tools/jdk:toolchain_type...
INFO: ToolchainResolution:   Considering toolchain @bazel_tools//tools/jdk:dummy_toolchain...
INFO: ToolchainResolution:   For toolchain type @bazel_tools//tools/jdk:toolchain_type, possible execution platforms and toolchains: {@bazel_tools//platforms:host_platform -> @bazel_tools//tools/jdk:dummy_toolchain}
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform, type @bazel_tools//tools/jdk:toolchain_type -> toolchain @bazel_tools//tools/jdk:dummy_toolchain
INFO: ToolchainResolution: Looking for toolchain of type @bazel_tools//tools/jdk:runtime_toolchain_type...
INFO: ToolchainResolution:   Considering toolchain @bazel_tools//tools/jdk:dummy_java_runtime...
INFO: ToolchainResolution:   For toolchain type @bazel_tools//tools/jdk:runtime_toolchain_type, possible execution platforms and toolchains: {@bazel_tools//platforms:host_platform -> @bazel_tools//tools/jdk:dummy_java_runtime}
INFO: ToolchainResolution: Selected execution platform @bazel_tools//platforms:host_platform, type @bazel_tools//tools/jdk:runtime_toolchain_type -> toolchain @bazel_tools//tools/jdk:dummy_java_runtime
INFO: Analyzed target //:ProjectRunner (18 packages loaded, 253 targets configured).
INFO: Found 1 target...

FAILED: Build did NOT complete successfully

Expected behavior
Commands in the tutorial should succeed as expected.
Additional context
The line Fetching https://mirror.bazel.build/openjdk/azul-zulu11.2.3-jdk11.0.1/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz; 6,086,624b appears while the build is running, but is not present in the final output.  This is surprising since it seems like there is some special handling for pre-fetching and patching Java in pkgs/development/tools/build-managers/bazel/default.nix.  But I'm just learning about Bazel, so maybe I'm missing something!  :)
Metadata

system: "x86_64-linux"
host os: Linux 4.19.74, NixOS, 20.03.git.568a19b (Markhor)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3
channels(root): "nixos-16.03.1299.a8e0739"
nixpkgs: /home/matt/git/nixos/nixpkgs

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
    bazel
# a list of nixos modules affected by the problem
module:

cc @Profpatsch @kalbasit @guibou @uri-canva

Ah, hm ... I poked around a bit in pkgs/development/tools/build-managers/bazel/java-test.nix and figured out that this works:
$ nix-shell --pure -p git -p cacert -p bazel -p openjdk8 -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/568a19b24e1720d58b9bc5644b724faf042079ef.tar.gz

[nix-shell:~/git/bazel/examples/java-tutorial]$ bazel build --host_javabase='@local_jdk//:jdk' --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' --javabase='@local_jdk//:jdk' //:ProjectRunner
Extracting Bazel installation...
Starting local Bazel server and connecting to it...
INFO: Analyzed target //:ProjectRunner (17 packages loaded, 332 targets configured).
INFO: Found 1 target...
Target //:ProjectRunner up-to-date:
  bazel-bin/ProjectRunner.jar
  bazel-bin/ProjectRunner
INFO: Elapsed time: 17.140s, Critical Path: 7.09s
INFO: 5 processes: 3 linux-sandbox, 2 worker.
INFO: Build completed successfully, 9 total actions

I don't know enough about bazel and its integration w/ nixpkgs to say whether I should have to do that though.

That's how I've been using it as well. I think it's ok for it to be that way: for it to work out of the box for any particular build would require adding too many dependencies, and making it work out of the box only for java would make it more confusing when you want to use it for other languages. For example if you were to try to build python and it would fail because you didn't add the python derivation to your shell you'd be left wondering which dependencies you need to add and which are already included with it.

Yeah, bazel tries to be smart and fetch stuff you don’t have in your environment, but on NixOS that just doesn’t work (those binary executables can’t be run). We can’t really do anything about it, it’s a broken assumption on bazel’s side.

Okay.  It'd be nice if we could make a better error message, but I think I have to learn a lot more about Bazel before I can propose a way to do that.  Thanks for having a look!
In the meantime, I tested a bit more and found that only --host_javabase='@local_jdk//:jdk' and --java_toolchain='@bazel_tools//tools/jdk:toolchain_hostjdk8' are necessary, I can leave off --javabase='@local_jdk//:jdk' and the tutorial still builds.

Note that it can be solved with a custom hack as I did in https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/build-managers/bazel/default.nix#L106
I wonder if it may be interesting to force bazel in nixpkgs to set the --host_javabase and --java_toolchain flags by default.

I think I'm with @uri-canva that it'd be a slippery slope.  It'd be nicest if it could have a general failure message like:
$ bazel build ...
Error: the WORKSPACE and/or BUILD files you're trying to execute rely on tooling
that's normally obtained from the $PATH and/or downloaded from the network

Since neither of these works reliably on NixOS, we recommend you modify your build
to embed nix-based build tools, as in https://github.com/tweag/rules_nixpkgs.

If that's not an option, pass `--allow-impure-from-path` and use `nix-shell`
to manage the versions of build tools available in $PATH

tools needed:
  openjdk_8

I'm probably horribly butchering the Bazel terminology for things, but hopefully you get the idea.

@jerith666 That's a good idea but not feasible in practice (or I did not found the solution yet). I don't know how we can detect that the WORKSPACE uses direct (or indirect) repositories which contains pre-build binaries which are not compatible with nixos. We'll have to unpack all http_archive manually, look for binaries / libraries, and pass a sanity check on them.

Bummer :(


Intermitent modbus failure on state connected, all nodes

Which node-red-contrib-modbus version are you using?
5.13.3
What happened?
I am attaching a raspberry pi 3 to a CLICK PLC where the raspberry pi is writing and reading. I am using modbus TCP. I have found that at random, all the nodes will seemingly fail to connect, where they say they are connected for about 3 seconds, then say reconnecting for 2000 ms, but fail to contact and will give the error: modbus failure on state connected.
Writing fails, and often times out, and reading fails as well.
Strangely enough, nodes that worked previously will stop working, and even trying to add additional nodes identical (except in name) to working flows will cause all nodes to stop working. The first time this happened, I made all of the unit IDs 1, and that fixed it. After that, it stopped working after maybe an hour. It started working again after I made zero changes, and then stopped working after making zero changes as well.
Any help would be really appreciated. It is entirely possible that this is not a bug and just user error, but I have been trying for a long time with no success.
Also the error recommends to look at log, but looking at the log reveals nothing, as it was completely empty. I tried checking the boxes in options to show things in the log, but it was still empty.
Server
Other/External server
How can this be reproduced?
I do not know how to reproduce my issues, but I will attach code that was working flawlessly and then stopped working with zero changes.
flows (1).json
What did you expect to happen?
The flows shown in that json file were able to read and write to the PLC. They worked with no issues until they all stopped working.
Other Information
I am using older software, but I can't update because of issues with my pi. Here is the version:
Node: v12.20.1

Glad to hear that the issue has been resolved. I don't know the CLICK PLC but it can happen that devices send messages that are incomplete because the connection wasn't stable. This could lead to errors such as the one described!


fix: return-statement reachability analysis

Closes #268

[x] I have updated CHANGELOG.md
[x] I have added unit tests to demonstrate the contribution is correctly implemented
[x] I have run all the tests locally and no test failure was reported
[x] I did not do unrelated and/or undiscussed refactorings

Thanks @novusnota!

How could we fix the stmts-failed/case-41.tact in the future? Recursive descent of sorts?

It can be done for the simple case of Booleans, but not in general.
Consider the following example:
if belongs(x, aSetOfIntegers) {
    return 1;
}
if (belongs(x, anotherSetOfIntegers) {
    return 2;
}

if aSetOfIntegers \union anotherSetOfIntegers == Int then we have covered all the paths, but it's too expensive to try and solve it (or even undecidable). Btw, Rust solves this issue in the same way essentially, but it has if-expressions so it's a typechecking error.
You can try using SMT solvers (or your own custom solver) to do this, but it's not worth it in practice.


Should be able to use ceph config instead of /etc/ceph/ceph.conf for some options

Is your feature request related to a problem? Please describe.
Changing global configuration like osd deep scrub interval needs restarting all OSD.
Instead, we can use the Dashboard or ceph config to set it at once, without restarting the daemons.
Describe the solution you'd like
I'd like to be able to use ceph config in ceph-ansible, to have a unique central point of configuration.
Describe alternatives you've considered
One alternative is not to use ceph-ansible, but we will lose the central source of truth.
My env
I'm with Octopus an Ubuntu 18.04, ceph-ansible stable-5.0.

@GillesMocellin ideally we should drop the ceph.conf usage and use ceph config instead but that would need significant changes.
PR are welcome... 🙂


Update additonal instances of inline damage to new format

@TikaelSol  - @simonward has approved this one so it should be good to merge.


Firefox forces stop

Every time I try to open a Firefox browser, it forces close. This happens to Firefox and Firefox Developer Edition. Chrome works fine. I'm not really sure why this happens or if this happens to all.
I hope somebody looks into it!

Which Firefox version?

Version: 47.0
PS: I have checked this with recent updates only.

Can you check Selenium version too?
It looks like you need to update to Firefox 47.0.1: https://github.com/SeleniumHQ/selenium/issues/2110

Selenium Version: 2.47.1
Firefox Version: 47.0
I'll update both and let you know :)


Fixed regular expression parsing bug.

@OstrichProjects I added a test case for your example and got it working, but I didn't have any success with the longer regex.

Looks good.


Resource URL field in Portainer OAuth settings for Microsoft resets after saving

Bug description
The Resource URL field in Portainer OAuth settings for Microsoft resets after saving. On the back-end, the updated URL is saved but if the settings are saved again, such as when another setting is changed and needs to be saved, it reverts.
Expected behavior
Once the field is saved, it should remain so unless explicitly changed.
Portainer Logs
Checked container logs, nothing relevant found.
Steps to reproduce the issue:

Go to Portainer Web UI > Settings > Authentication > OAuth > Microsoft
Configure working OAuth settings with customized (non-default) Resource URL (such as required by this workaround: https://docs.portainer.io/faq/troubleshooting#groups-info-issue-with-oauth-using-microsoft-ad)
Save and test
Make change to above settings and save again, OAuth will now fail if the Resource URL needed to be customized. Can also expand "Override default configuration" in the OAuth settings and see it reverts after saving.

Technical details:

Portainer version: 2.14.2
Platform (windows/linux): Linux, EE version
Browser: Firefox
Using Portainer in a Commercial setup.
Have you reviewed our technical documentation and knowledge base? Yes

@dmt816
known issue, to be fixed in version 2.15 which is due soon.

@dmt816 known issue, to be fixed in version 2.15 which is due soon. #7000

Oh great, thanks! Sorry, did a search before posting but didn't see that.


Better exception handler

Something that can work well both on console and on Dolphin, maybe print symbol names too.

This is done.


Fix  Flato et al., 2013, IPCC, Fig 9.8

Modifications:

removed usage of HadCRUT4 climatology (1961-1990) file
added complete pre-processing as described in Jones et al., 2013
added documentation for the first part of the recipe_flato13ipcc.yml

removed usage of HadCRUT4 climatology (1961-1990) file

Can we then remove the HadCRUT4-clim dataset from our pool?
This has created some confusion (see #1248).

The recipe runs fine, but no provenance is written in the output
WARNING No provenance information was written to /mnt/lustre02/work/bd0854/b309057/ESMValTool/v2_output/recipe_flato13ipcc_20190916_093120/run/fig09-8/fig09-8/diagnostic_provenance.yml

removed usage of HadCRUT4 climatology (1961-1990) file

Can we then remove the HadCRUT4-clim dataset from our pool?
This has created some confusion (see #1248).

Yes, we can :) I don't need it anymore.

Yes, we can :-) I don't need it anymore.

But it's still mentioned in the recipe as alternative_dataset, although probably not used (?).

Yes, we can :-) I don't need it anymore.

But it's still mentioned in the recipe as alternative_dataset, although probably not used (?).

Sorry, I removed it.

Sorry, I removed it.

Did you push it? I can't see the changes...

If you could add the missing pieces to the documentation, otherwise please open an issue and assign to @schlunma for later.

The recipe runs fine, but no provenance is written in the output
WARNING No provenance information was written to /mnt/lustre02/work/bd0854/b309057/ESMValTool/v2_output/recipe_flato13ipcc_20190916_093120/run/fig09-8/fig09-8/diagnostic_provenance.yml

I tested it again and all provenance information is written. I have also the extended exif header of the png file in the end.

If you could add the missing pieces to the documentation, otherwise please open an issue and assign to @schlunma for later.

Done. See Issue #1320 .

Thanks for fixing it!


Window function on msq

This PR aims to introduce Window functions on MSQ by doing the following:

Introduce a Window querykit for handling window queries along with its factory and a processor for window queries
If a window operator is present with a partition by clause, pushes the partition as a shuffle spec of the previous stage
In presence of empty OVER() clause lets all operators loose on a single rac
In presence of no empty OVER() clause, breaks down each window into individual stages
Associated machinery to handle window functions in MSQ
Introduced a separate hidden engine feature WINDOW_LEAF_OPERATOR which is set only for MSQ engine. In presence of this feature, the planner plans without the leaf operators by creating a window query over an inner scan query. In case of native this is set to false and the planner generates the leafOperators

Atm, the insert queries on window functions on MSQ, only in the presence of a partition by, fails with an exception which is being investigated. (I have a possible fix but need to understand better from MSQ folks
). The rest of the PR is up for review
This PR has:

[ ] been self-reviewed.

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

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

Updated the code to handle leaf operators in window queries. Now on MSQ, window functions can be run without the group by.

@cryptoe I have addressed your comments. I'll appreciate it if you can take another look

Added guardrails with a context param, tests on Wikipedia datasets for replaces and selects with scans and group bys, not entertaining boosting in windows.

Updated the release notes taking into account the follow up PR as well https://github.com/apache/druid/pull/16229


calico-vxlan.yaml assumes AWS

It looks like calico-vxlan.yaml turns on the AWS source/dest check feature.  That, of course, fails if you're not running on AWS:
@fasaxc For me it seems to be the same issue. I do not use EKS at all in my case.
Steps to reproduce:

I created a new Kubernetes cluster without any CNI installed (on Exoscale but I guess any provider can be used).
I applied calico-vxlan.yaml from the latest Calico release (v3.21.0). The manifest contains:

            # Disable AWS source-destination check on nodes.
            - name: FELIX_AWSSRCDSTCHECK
              value: Disable

calico-node pods fail to start:
2021-11-18 10:06:28.555 [WARNING][87] felix/health.go 188: Reporter is not ready. name="aws-source-destination-check"
2021-11-18 10:06:28.566 [WARNING][87] felix/health.go 188: Reporter is not ready. name="aws-source-destination-check"
2021-11-18 10:06:28.566 [WARNING][87] felix/health.go 154: Health: not ready

I then removed the FELIX_AWSSRCDSTCHECK configuration from the manifest and reapplied it: calico-node pods are now running and ready.
Originally posted by @mcorbin in https://github.com/projectcalico/calico/issues/4154#issuecomment-972721208

Seems to have been added here: https://github.com/projectcalico/calico/pull/3812
Not sure why it's setting that for all VXLAN.

Looks like that flag used to be called "eks" instead of "vxlan": https://github.com/realgaurav/calico/commit/76e7800dbe61c1b45ad28e3a2c6ead77729a5ca1

Probably because it's used in this doc: https://docs.projectcalico.org/getting-started/kubernetes/managed-public-cloud/eks#install-eks-with-calico-networking
Seems to conflate VXLAN with EKS, which isn't the case.

This PR should do it: https://github.com/projectcalico/calico/pull/5107


SOKOL_LOG has been removed from sokol_app.h

It seems that recently SOKOL_LOG has been removed from sokol_app.h:
https://github.com/floooh/sokol/commit/0574a28e867754a3c7fa618f692f1cdccafab429#diff-42747840ac0dd5aaeaa9368919646cc57e72a0bb54c03ad85c7eac18956ea584L1879-L1896
This breaks the following line of sokol_gp.h:
https://github.com/edubart/sokol_gp/blob/master/sokol_gp.h#L693
It's easy enough for me to fix this in my local copy of sokol_gp.h but it might be good to provide a real fix for any newcomers here.  Perhaps sgp_desc should provider a logger configuration like sg_desc now does?

Was about to post this exact issue, just encountered this after updating my sokol_app version.


Add tilt for star power support

For tilting, we will have to extrapolate "tilt" out of the accelerometer data that the wiimotes give us. more info here


Fix match single unspecified characters hint page

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

before this commit explaining explanation mistakenly claimed that challenge does not require handling numbers above 99
also, 0-9 already matches all numbers in egexp and 0-99 is confusing, as repeating 9 is completely unnecessary

Thanks @matkoniecz for contributing to this repo! 👍
We're glad to accept your changes and look forward to more contributions from you! ✈


feat(client-cli): Support discriminator object

It'd be great to have support over discriminator objects (Open API reference) 😊

I didn't even know that existed. Anyway, +1.
Would you like to send a Pull Request to address this issue? Remember to add unit tests.

I think it'd be a bit tricky to handle (especially on nested objects), but if I find enough time I can work on that 😉

I can pick up this after #2024 lands since it will be easier to implement


[Bug] partition prune error when partition condition value has some function

Search before asking

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

Version
2.0.3   2.0.5
What's Wrong?
partition prune error when partition condition value with has function, such as:
where time_key = substr('20240301000000', 1, 8)
What You Expected?
fix
How to Reproduce?
CREATE TABLE test_event_log (
device_id bigint(20) NULL,
v1 double NULL,
v2 double NULL,
time_key int(11) NULL COMMENT 'yyyyMMdd',
) ENGINE=OLAP
DUPLICATE KEY(device_id)
COMMENT 'OLAP'
PARTITION BY RANGE(time_key)
(
PARTITION p202401 VALUES [("20240101"), ("20240201")),
PARTITION p202402 VALUES [("20240201"), ("20240301")),
PARTITION p202403 VALUES [("20240301"), ("20240401")),
PARTITION p202404 VALUES [("20240401"), ("20240501")))
DISTRIBUTED BY HASH(device_id) BUCKETS 16
PROPERTIES (
"replication_allocation" = "tag.location.default: 3",
"enable_single_replica_compaction" = "false"
);
insert into test_event_log VALUES (1, 1, 1, 20240101);
insert into test_event_log VALUES (2, 2, 2, 20240201);
insert into test_event_log VALUES (3, 3, 2, 20240301);
explain
select count(*) from test_event_log
where time_key = substr('20240301000000', 1, 8) -- can not partition prune
-- where time_key = cast('20240301' as bigint) -- can not partition prune
-- where time_key = '20240301'; -- ok
Anything Else?
No response
Are you willing to submit PR?

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

Code of Conduct

[X] I agree to follow this project's Code of Conduct

this issue happens when partition column is not a data/datatime type, such as bigint


Month date showing one day late in every dates of month.

Hi,
I am creating simple calendar application in which i create a buttons to change months. Whenever i change month didScrollToDateSegmentWith delegate method will call and in this method i get visibleDates.monthDates for current month. When i do print(visibleDates.monthDates as Any) i get below response
[2017-04-30 18:30:00 +0000, 2017-05-01 18:30:00 +0000, 2017-05-02 18:30:00 +0000, 2017-05-03 18:30:00 +0000, 2017-05-04 18:30:00 +0000, 2017-05-05 18:30:00 +0000, 2017-05-06 18:30:00 +0000, 2017-05-07 18:30:00 +0000, 2017-05-08 18:30:00 +0000, 2017-05-09 18:30:00 +0000, 2017-05-10 18:30:00 +0000, 2017-05-11 18:30:00 +0000, 2017-05-12 18:30:00 +0000, 2017-05-13 18:30:00 +0000, 2017-05-14 18:30:00 +0000, 2017-05-15 18:30:00 +0000, 2017-05-16 18:30:00 +0000, 2017-05-17 18:30:00 +0000, 2017-05-18 18:30:00 +0000, 2017-05-19 18:30:00 +0000, 2017-05-20 18:30:00 +0000, 2017-05-21 18:30:00 +0000, 2017-05-22 18:30:00 +0000, 2017-05-23 18:30:00 +0000, 2017-05-24 18:30:00 +0000, 2017-05-25 18:30:00 +0000, 2017-05-26 18:30:00 +0000, 2017-05-27 18:30:00 +0000, 2017-05-28 18:30:00 +0000, 2017-05-29 18:30:00 +0000, 2017-05-30 18:30:00 +0000]
This is 5th month and date start with2017-04-30 18:30:00 +0000 and ends with 2017-05-30 18:30:00 +0000. It should start with 2017-05-01 18:30:00 +0000 and ends with 2017-05-31 18:30:00 +0000.

Also i noticed the all the dates of any month including inDate, outDate, monthDate all these dates are one behind. Might be i am wrong some ware to implementation so i post below my code.
class CalendarVC: UIViewController {
@IBOutlet weak var calendarView: JTAppleCalendarView!

let white = UIColor(colorWithHexValue: 0x7a8a95)
    let darkPurple = UIColor(colorWithHexValue: 0x3A284C)
    let dimPurple = UIColor(colorWithHexValue: 0xcbd1d2)

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
calendarView.dataSource = self
        calendarView.delegate = self
        calendarView.registerCellViewXib(file: "CalendarCellView") // Registering your cell is manditory
        calendarView.cellInset = CGPoint(x: 1, y: 1)
    }

override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        calendarView.scrollToDate(Date())
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}

Are the dates one day behind when you print them on the debugger console?
Or are they one day behind when you look at them visually on the screen.
I think the problem you are experiencing is this -> https://github.com/patchthecode/JTAppleCalendar/issues/252
Let me know if your issue is resolved after reading it.

Actually there were two issue one is for visually and another for debugger console. The visual issue is resolved and that was my problem. I set wrong header of the week day, i set Sunday as a first day in configuration and set my week day header from Monday like Mon,Tue,Wed,Thu,Sat,Sun . So, it was mismatched. I change the start day as Monday in configuration according to my need and it was perfectly solved the issue.
But the second issue is when i scroll the calendar month didScrollToDateSegmentWith call and in this method i did print(visibleDates.monthDates as Any) and that gives me the console log as above mention in question.

Your second issue is resolved in that link i showed you here -> https://github.com/patchthecode/JTAppleCalendar/issues/252
Basically simply printing a date to console will give you misleading information.
Do not do it.
Although the date is correct, it might not be always displayed correctly if you simply print it with a print command.
You need to use a DateFormatter.

It's working !!! Thanks for the help.
People who face similar issue just don't depends on you console log. If you see wrong date in your console log just try with convert date to string with DateFormatter then check is it proper or not. Set you time zone to local when you convert date to string.
Super work @patchthecode , Thanks for very interactive and more custom calendar. Will post my calendar screen shot soon.


Storage Blob Data Contributor permissions was not enough.

"When performing the steps in the Assign the application to a role section of the article, make sure to assign the Storage Blob Data Contributor role to the service principal."
I ended up following a few different links on getting the Service Principal Object-ID instead of the App Registration object-Id, which I then used to give permissions directly to the blob container, using "Manage Access" in Azure Storage Explorer.
Link: https://deep.data.blog/2019/03/28/avoiding-error-403-request-not-authorized-when-accessing-adls-gen-2-from-azure-databricks-while-using-a-service-principal/

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

ID: d863ab39-0b6a-eb81-9dde-5eb25b46cc33
Version Independent ID: 655abadf-5f9e-a65b-0109-c5166f956c4d
Content: Tutorial: Perform ETL operations using Azure Databricks
Content Source: articles/azure-databricks/databricks-extract-load-sql-data-warehouse.md
Service: azure-databricks
GitHub Login: @mamccrea
Microsoft Alias: mamccrea

@emeria Thanks for the question! We will investigate this issue and get back to you soon.

@emeria  : We have assigned the issue to the content author . They will evaluate & update the document as appropriate.

Hi @emeria - Thank you for bringing this to our attention. I am going to test these methods.

Hi @emeria - when you say Storage Blob Data Contributor permissions was not enough, are you referring to the connection to ADLS Gen2? I am able to connect using the steps in our tutorial with no issues. The blog article does gives an alternate method. Can you please help me understand your scenario?

@mamccrea Yes. BMy colleague and I both had the same issue, trying to connect to ADLS Gen 2 from databricks.  I first gave the service principal Storage Blob Data Contributor permissions at the subscription level and waited up to 12 hours for propagation.  I then gave the permission directly on the Storage Account (following the note in the tutorial). We still had no luck at that point, getting the 403 error from databricks.  The only thing that worked was when I used that blog article to give access directly on the Gen 2 container.  Are there other variables that factor in here?
I would also like to note that the mentioned prerequisites are almost date, like the service principal guide is using the legacy app registration method, while there is a new blade for App Registration.  Not sure if that blade makes a difference, as the same settings aren't in the new App Reg blade, as in the legacy.

@emeria
Setting the application role to Storage Blob Data Contributor at the subscription level won't work, as you experienced. It must be set at the storage account level for the ADLS Gen 2 storage account. Note that this tutorial requires you to create two storage accounts: one for ADLS Gen 2 and another for Blob storage (for use with SQL DW).
This should work. If it doesn't, please double check that you set the Storage Blob Data Contributor role at the storage account level for the ADLS Gen 2 storage account, and not the blob storage account by mistake. Another possibility would be using the incorrect GUID for the application ID in the Spark configuration settings.
Up until recently, setting the Storage Blob Data Contributor role was a requirement. As you read in the blog article, this is no longer the case. I am going to add a note about the option to give more specific access control using the method outlined in the blog, which may be a better option for some use cases.
Also, the app registration article was updated earlier this week and should be up to date now.

@emeria I've updated the article. Please let me know if there's any way we can assist you further.
#please-close

@emeria We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Recursive Encryption [Enhancement]

Thanks for this great plugin .
Can we have feature wherein we rightclick a folder and recursively all file and folders are encrypted under it ?

Hi, sorry, but that's fundamentally different to the current design of the plugin, so it would mean taking it in a new direction (with it's own set of problems).   You might want to look into encrypting the whole vault with 3rd party software instead.


have callsign 2 optional

Describe the feature
its weird when i go to fill out my callsign and i have to put a space under callsign 2 because i dont have a second one. is there anyway to have callsign 2 optional because right now it's mandatory and i have to put a space to save my first callsign
Additional Context
No response

Callsign formats work perfectly and adjusting this behaviour would have massive repercussions across I suspect most users deployments. What is your callsign? If it is for example A56 then your callsign format should be Callsign 1: A, Callsign 2: 56.

1-A-56

You can always use the department/division's callsign symbol too.


Stream mode in reports download

Hello,
There are some sellers that in their reports (for example, the merchant listings report), have more than 1500000 products, which implies that they exceed the node memory.
In the previous library we used with MWS there was an option to download the reports in "stream" mode, to go through the content and incorporate it progressively. Is there any way to do it with this package?
Thank you very much!

Hi @jesusvalle,
no, there is currently no way of achieving that with the package. However we would be happy if you implement it and open  a PR, sounds like a good feature for cases such as yours.
In the meantime maybe you can increase the memory to make it work temporary?

Thank you, we will take it into account.
About increasing the memory, we will try as soon as we can and leave feedback.
Best regards!

I am interested too. @amz-tools how could it be implemented? I had a look at the code, to stream effectively the request every stage should be streamed. In order:

request: the code in request.js is not suitable, it is better to rewrite a new streamed-request.js module
crypto code is streamable
iconv-lite support stream
csvtojson support stream

to support options.file: filename the method should open a write stream and pipe stream into it.
Currently download() method return a string.
My propose is to completely change the download() code using stream internally, and:

if specified the option returns: "stream" a readStream is returned (async but almost immediate).
if specified the option returns: "none" and option.file is specified it resolve only after file is written and closed. (if option.file is not accessible, not specified, etc, the method throw immediately).
if not specified returns default to "string", and a string is streamed in and promise is fulfilled when the stream end.

So download() will works the same way (a part from sparing memory during write of options.file), and resolve with the same string as it is now. But if the option returns is specified it change its behavior.
download(report_document, {
    returns: "string" | "stream" | "none"
    json: true | false
   file: <pathname>
   charset: <charset>
}

Here "none" is usefull to synchronize and wait for file to be wrote (stream behind the scene), while "stream" is for in-house streaming code
Of course there is the upload() too to be streamed, here I would change only the way the feed.file will be read and the way the request is called.

Hi @danielecr,
this sounds like a very good way of achieving it! From the first look at it I wouldn't have any changes to propose. Would you be willing to give it a shot and implement the functionality yourself or is it meant as a proposal as to how we could implement it?

@amz-tools I am going to monkey patching the download method, then I will use in my app, and test. I am going to share it here.
There are some trickly things about stream and promise, and catching error using a context to avoid the crash of the nodejs app. So it would be better if it is testable before merging, then the PR will be just a step away.
I start with download()

@amz-tools I have a POC, I still need to shape the code, but surely I miss something on first sight: xml parsing
fast-xml-parser does not support stream.
Here https://github.com/NaturalIntelligence/fast-xml-parser/issues/347 is the discussion, at the end the suggestion is to use
https://www.npmjs.com/package/arraybuffer-xml-parser
I think it is ok to use fast-xml-parser for parsing error message ( res.code != 200), but the other feature is better served in stream way (I did not really get the point of "complex code using stream", I am cleaning things really, you will see)

Hello @jesusvalle @amz-tools , here https://github.com/danielecr/stream-amazon-sp-api is the patched download method.
It is a way to test the streamed version, and possibly compare also memory usage.
But first of all it should be used to find bug and define test-cases.
I just defined a simple test, I can use secrets + action to real test report download, but I do not know how long the report is keeped.
Is this repo already tested with some known secrets?

Hi @danielecr,
played around a bit with the code you provided. For now I can successfully receive the stream when passed in returns: "stream". So this works fine, however I have a couple of suggestions. Whenever I provide json or file option I will, of course, not be able to receive a stream. Looking at it from that perspective I don't really see the benefit from offering none or string as returns values.
I would suggest we just add a new option called stream that is false by default and will stream the content if set to true. In that case we only have to decide one thing, which can be done in three different ways:

We ignore json and file options when stream:true is set
We ignore stream when json and/or file is set
We throw an error when stream is used together with json and/or file

I think implementing it that way would make it less complicated: Either you stream it or you don't, as a basic choice.
What do you think?

Thank you for testing and feedback on the patch @amz-tools , I must say I partially agree, I feel a bit uncomfortable with returns-way too.
But still I see something good with returning a string.
I can exclude you are talking about complex code, because that is not the problem, I assume we are talking about interface/api complexity, together with feature provided.
You wrote "Whenever I provide json or file option I will, of course, not be able to receive a stream.", I hope you did not tested this, because this is possible, if you tested and you do not have a stream then there is a bug, at least from the point of view of the coder (that's me in this case).
I thought that one can always prefer to have the last result as 'string' or as 'stream', even if the file was written by providing 'file: whatever', and also when json: true is provided.
In any case the pipe order is:

charset
json
file
"returns" in stream, or in string, or none

to simplify more, maybe it is better to use an helper-something, maybe a transformer-helper to plug-in, maybe as an array of transformers to have the precedence choosen by the user.
These are naturally the stream transformer, and should provide just that interface, and this would be standard and understandable, but not so easy to use.
I also see a bug, maybe, the line https://github.com/amz-tools/amazon-sp-api/blob/main/lib/SellingPartner.js#L670:

  decrypted = this._decodeBuffer(decrypted, res.headers, options.charset);

In patched the headers is ignored: decode from what? I think it will work anyway, but is not formally correct.
The new interface:
await spApi.download(reportDocument, {
        transformers: ['charset:cp1252', 'json', 'file:'+targetFile, 'output:string', customstreamtransformer]
    });

this way the transfomers can be moved around, there are default provided, and is extendible by customstreamtransformer inserted in the wanted position.
There is a constraint in 'output:xxxx':

default is 'output:none'
it can be used only once
it can be 'output:string' or 'output:stream'

I understand that  'file:'+targetFile looks a bit strange, but I is versatile

Hi @danielecr,
sorry for being a bit slow in responding these days. Let me try to clarify what I mean:
When I simply use returns:'stream' it will return a stream (the basic goal of the enhancement) which I can work with by using .on('data') and .on('end'). However when i set json:true the call is not returning a stream but the final JSON. This is somehow expectable, as we would probably have to know the whole response to be able to transform it to JSON. So we can't really stream the transformed JSON object (correct me if I am wrong).
Concerning your res.headers question, I don't know if I understood the problem with it right. It is used to extract the charset from the response headers to use the right charset for decoding and it can optionally be set by the user resulting in ignoring the one from the response headers.
To sum up, I think we should always stream everything inside the module that is possible because it will make it more performant and this shouldn't even be possible to change by the user. The user should only have the option to decide if he/she wants a stream returned or the final string.

hi @amz-tools , sorry for this quick response, I need to check it exists a ndjson format (newline delimited json). But not sure, I have to elaborate and read better your points

Hi @amz-tools , I am used to reason graphically when I am confused about logic, so here is the flowchart in mermaid format, below are my points. I found this proceeding by considering input constraint and output desired processing or format.
I am not sure anymore about passing an array for specify options, anyway we will find a way.
First I should be sure there are no bias, and I need your help
flowchart TD;
    deflate{do deflate?}-->|YES| ocharset;
    deflate-->|NO| streampipein;
    ocharset-->iformat;
    iformat{is CSV or XML?}-->|XML| oformatjson;
    iformat-->|CSV| oformatjson2;
    oformatjson[[chunk oformatjson]]-->nostream;
    oformatjson2{is oformatjson?}-->|YES| streampipein;
    oformatjson2-->|NO| ndjson;
    ndjson[[ndjson]]-->streampipein;
    nostream(nostream)-->streaminfile;
    streaminfile[[streaminfile]]-->otype;
    streampipein[[streampipeinfile]]-->otype;
    otype{otype is stream or string?}-->|string| chunkinstring;
    otype-->|stream| streamout;
    streamout-->finaloutput;
    chunkinstring-->finaloutput;

I need to schematize the various options (those will be test cases, I suppose),
in a flowchart.
Here there is an input constraint and some output aims.
Input constraint:

is CSV or XML?
This the big question, just after deflate or ocharset.

The aims:

do deflate? if one want to deflate the input file or not
ocharset: desired output charset. It is a valid processing if
oformatjson: want json format?
write a file: streaminfile and streampipeinfile are actions that both returns a stream
otype is the output type (renaming returns)

At the end we have a finaloutput.
My points of view are:

otype (aka returns) is always selectable.
streaminfile is always possible if desired.
using stream to write file is better in anycase (but this is just for code simplicity)
oformatjson: well this is a new awareness, we need here 2 kind of xml2json library (I need to search)
there is a big input constraint: input is in CSV or is in XML format?

And finally:

the only option that exclude some postprocess is do deflate (unzip?) yes or not?

Hi @danielecr,
I find it a bit hard to give some qualified input without coding and testing it on our own. I am a fan of keeping it as simple as this:

We stream everything internally whenever possible, no matter if the user wants a stream returned or not
We return a stream to the user if he explicitly sets stream option
We throw an error when the user sets stream option and another option that isn't compatible with returning a stream to the user

One question that comes to me: Is there a possible case where we can't return a stream to the user although the user hasn't set any other option?

Sorry @amz-tools  I missed out that is of course technically impossible to stream an xml and transform to json, in stream format.
So is mandatory to use fast-xml-parser as dependency. This must be changed in my code, I am going to fix and send it in hour
The other path is anyway possible, tough ldjson format is almost the same as csv, I really do not understand the reason to implement such a thing, but people prefer different color for the same thing. (The ldjson format is in fact less efficient and more space consuming than csv, it is just algebrical calc, but you know, well, is a possible format)
I just propose to take away ldjson format from code, for now, until there are real request for such a thing.

Hi @danielecr,
I find it a bit hard to give some qualified input without coding and testing it on our own. I am a fan of keeping it as simple as this:

We stream everything internally whenever possible, no matter if the user wants a stream returned or not
We return a stream to the user if he explicitly sets stream option
We throw an error when the user sets stream option and another option that isn't compatible with returning a stream to the user

One question that comes to me: Is there a possible case where we can't return a stream to the user although the user hasn't set any other option?

I absolutely agree with you. I am going to code, so that you can review it.

Sorry @amz-tools I missed out that is of course technically impossible to stream an xml and transform to json, in stream format.
So is mandatory to use fast-xml-parser as dependency. This must be changed in my code, I am going to fix and send it in hour
The other path is anyway possible, tough ldjson format is almost the same as csv, I really do not understand the reason to implement such a thing, but people prefer different color for the same thing. (The ldjson format is in fact less efficient and more space consuming than csv, it is just algebrical calc, but you know, well, is a possible format)
I just propose to take away ldjson format from code, for now, until there are real request for such a thing.

I reply on this myself useless comment, sorry I did not refreshed the page, evidentely. Well I am busy with my business task and I mix the updates. Just ignore this

Hi @danielecr,
...
One question that comes to me: Is there a possible case where we can't return a stream to the user although the user hasn't set any other option?

Hi, just back to work. I miss to answer this. From the flow chart is always possible to return a stream, although when user choose XML 2 JSON conversion, returning a stream is a bit no-sense, and maybe not efficient as expected:
The point is that it is not possible to stream-convert an XML, at least in theory, so there are no available library that provide such feature. In practice with a known XML schema and regular format is possible to implement an XML2JSON stream-converter with some effort, I found this in StackOverflow
https://stackoverflow.com/a/52562921/250970
and https://www.npmjs.com/package/xml-flow https://www.npmjs.com/package/xml-stream so
https://www.npmjs.com/package/xtreamer
The example in xtreamer is simple enough to be used, so if amazon-sp-api one needs to transform from XML 2 json (s)he can install the dependency an use the stream as input.
Also considering this code (from https://github.com/amz-tools/amazon-sp-api/blob/main/lib/SellingPartner.js):
      if (options.json){
        // Transform content to json --> take content type from which to transform to json from result header
        try {
          if (res.headers['content-type'].includes('xml')){
            decrypted = this._xml_parser.parse(decrypted);
          } else if (res.headers['content-type'].includes('plain')){
            decrypted = await csv({
              delimiter:'\t',
              quote:'off'
            }).fromString(decrypted);
          }
        } catch(e){
          throw new CustomError({
            code:'PARSE_ERROR',
            message:'Could not parse result to JSON.',
            details:decrypted
          });
        }
      }

the plain (csv) case is inefficient for the same reason of XML (above I proposed NDJSON: newline delimited JSON format that chunk data line by line and export a regular json for each line, and not a big json)

I want to rollback to this idea:
....

I would suggest we just add a new option called stream that is false by default and will stream the content if set to true. In that case we only have to decide one thing, which can be done in three different ways:

We ignore json and file options when stream:true is set
We ignore stream when json and/or file is set
We throw an error when stream is used together with json and/or file

I think implementing it that way would make it less complicated: Either you stream it or you don't, as a basic choice.

But first we need to consider that:

csv to json is streamable (see [1]): so json and stream are partially compatible
and that stream way is the better option for writing file, no matter of what the download() method user prefer as return type

So things become complicated. And the better choice (from the three above) is to throw error when stream and json and content-type is xml`. The last condition is given from upstream content-type, and not from the library usage.
This would make library usage a bit "unstable" from programmer point of view. But really this is the way:
try {
  await SellingPartner.download(reportDocument, {
      //charset:'cp1252',
      json: true,
      returnType: 'stream',
      file: targetFile
  });
} catch (error) {
  console.log(error); // print "It is not possible XML to JSON and to stream together."
}

and that would be printed "sometimes": when upstream content type is 'xml'
for the second point, "stream way is the better option...", I would prefer to say that stream default to true, but in fact I must confirm the need of sync staff provided by 'none' option, staying with 3 states:

returns stream: user may use freely
returns string: it is a buffered (and memory consuming) option
return 'none': it make sense only for 'file' option, if no file is provided the method return immediately

[1] Note about csv.fromStream
csvtojson is more clever than one would expect, see https://github.com/Keyang/node-csvtojson/blob/master/src/Result.ts
In fact it adds a '[' at begin then it parse line by line adding a regular json for each line, separated by commas.
So, it really stream the content.

I updated the patched code here
https://github.com/starsellersworld/stream-amazon-sp-api
I changed the option from returns to returnType, still a three way option
I implemented upload also in stream, but the patching is commented

This will be soo helpful if implemented 🙏 to main. How can this be used on existing spapi setup? Refactor download function?

I updated the patched code here
https://github.com/starsellersworld/stream-amazon-sp-api
I changed the option from returns to returnType, still a three way option
I implemented upload also in stream, but the patching is commented

This will be soo helpful if implemented 🙏 to main. How can this be used on existing spapi setup? Refactor download function?

I am going to enable upload stream mode as soon I can test it by myself, for download stream, try
npm i stream-amazon-sp-api
We use this in production, but the more testa are welcome. Also I do not want to figure out various use cases, if nobody need xml to JSON in stream version then there Is no point to implement it

Thanks alot, managed to set it up and generate a local file.
Am currently trying to stream this report result onto S3 instead of generating a file locally. However not sure if you can assist me, but the error is :
[ERR_INVALID_ARG_TYPE]: The "list[0]" argument must be an instance of Buffer or Uint8Array. Received type string ({"reportSpecification":{...)`
This is my code:
`
let S3 = require("aws-sdk/clients/s3");
async function uploadReadableStream(stream) {
const params = {Bucket: BUCKETNAME, Key: Key, Body: stream};
return s3Client.upload(params).promise();
}
.....
let report = await SellingPartner.download(report_document, {
json: false,
// charset:'cp1252',
returnType: "stream",
// file: targetFile,
});
// report.pipe(process.stdout)
await uploadReadableStream(report)

`
piping the report promise streams correctly. So i presumed i could stream it into S3.

@shiowwj nothing is wrong from your side, I forgot to repeat, that still "I implemented upload also in stream, but the patching is commented".
So, now, and if you like to test, try by using https://www.npmjs.com/package/patch-package
the line to uncomment is 203:
https://github.com/starsellersworld/stream-amazon-sp-api/blob/main/index.js#L203
just remove the comment
If it works, please send a PR by forking
Thank you, and sorry for the misunderstood

@shiowwj nothing is wrong from your side, I forgot to repeat, that still "I implemented upload also in stream, but the patching is commented". So, now, and if you like to test, try by using https://www.npmjs.com/package/patch-package the line to uncomment is 203: https://github.com/starsellersworld/stream-amazon-sp-api/blob/main/index.js#L203 just remove the comment If it works, please send a PR by forking Thank you, and sorry for the misunderstood

Streaming works great! Thanks for this

Hello. I updated the patch enabling streaming on uploading, it has no special options because it just create a stream inside the function from the input file.
It may be required to pass a stream in feed parameter, so having the option to upload content, file or stream, in order, and stream must be of type ReadStream, it is not a big change, just 2 line of code or so.
I do not know if users are confortable with options. For example, I use stream download in this way:
  let filename = 'output.xml';
  let streamOnTarget = (targetFile) => (stream) => {
    const ostream = require('fs').createWriteStream(targetFile);
    return new Promise((resolve, reject) => {
      stream.pipe(ostream).on('end', resolve).on('error', reject);
      ostream.on('end', resolve);
      stream.on('end',resolve);
    });
  };
  let stream = await spApi.download(feedDoc, {returnType: 'stream'});
  await streamOnTarget(filename)(stream);

I think it would be good to add example in README too, if I propose a patch for this project.
Also request-stream.js is a new module, and there is no timeout management, like it is in upstream version of request.js, I do not know if it is needed, because stream should manage timeout by other mean, i.e. in target stream, but really I do not know if just a call to, say ostream.destroy(), in the example code above has the effect to destroy also the writing stream. But basically I do not agree on handling network error by this kind of over-structure, see for example
https://stackoverflow.com/a/9910413/250970
I mean the code:
req.on('socket', function (socket) {
    socket.setTimeout(myTimeout);
    socket.on('timeout', function() {
        req.abort();
    });
});

goes under and not over catching the network failure event from the lower layer available.
rif. #147  #148

release v1.0.6 of stream-amazon-sp-api enable a really working upload by stream.
There are 2 important things at least. First from Amazon SP API, that demand to have Content-Length header setted before the real upload, and this means that really the input must be a file with known length, and consequentially the applying a transformer stream that can change the size would be problematic.
The second element is the complexity of managing a duplex channel, that is send and receive, formally request and response. Both channel can be handled as stream, but depending from the http's method managing a channel as stream is more or less sensible. Given that I split the return type of requestStream in 2 cases:

POST/GET methods return a (Promise of) ReadableStream.
PUT method returns a (Promise of) object containing req (WritableStream), and a Promise of the response payload already digested (*)

(*) already digested means the json struct:
{
            body:body,
            chunks:chunks,
            statusCode:res.statusCode,
            headers:res.headers
          }

Because this is what the current of the code understand and expect to validate. Well, quite wrong here, the code expect to validate this for POST and GET too, but I can change this code to fall into the PUT-case by an option and then what SellingPartner code need is to let {req, res} = await ..., and req.write(body); req.end();, then let response = await res, and deal with response payload.
The other option is, of course, to let the 2 version of request and request-stream live together and includes both in the code.
What I would suggest for patch #148 is to be less invasive, I am going to comment on the PR for that

just to note, AES encrypted block length is:

cipherLen = (clearLen/16 + 1) * 16;
if additional IV block is used (and it is):
cipherLen = (clearLen/16 + 2) * 16;
where / is the integer division.


Add a flag that disables the Netty version warning

Motivation:
Sometimes, a user might want to suppress the warning message about
inconsistent or missing Netty versions emitted when loading the
TransportTypeProvider class.
Modifications:

Added a new flag warnNettyVersions which is true by default.
Added more details to the warning message:

Why this message is showing up.
How to turn the warning off.

Result:

Closes #3572

@mauhiz PTAL

just exclude the io.netty.versions.properties file ? Or somehow rename it in both places?

@mauhiz The shading tool should rename io.netty.versions.properties to some.shaded.package.io.netty.versions.properties

I see! I haven't found any easy way to do it with maven-shade-plugin so far
but it's certainly the clean way out.
On Thu, Aug 12, 2021 at 12:59 AM Trustin Lee @.***>
wrote:

just exclude the io.netty.versions.properties file ? Or somehow rename it
in both places?
@mauhiz https://github.com/mauhiz The shading tool should rename
io.netty.versions.properties to
some.shaded.package.io.netty.versions.properties
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/line/armeria/pull/3766#issuecomment-896948718, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAN34SZ4R3YE4GG7WU53Z7LT4KM5PANCNFSM5B6IEGIA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.


googleScript.js: modify the ftp server pages

changed the heading of the ftp server pages
removed the server name showed at the end of the ftp result pages
changed the styling of the page

There is one more thing can you do if you have time, add a button to download all links on the page. I will create a issue for this, It would be really great my friends are using extension and they feel the need for this.
https://github.com/NIT-dgp/chrome-search-extension/issues/61

@djmgit Sorry but this is obsolete now so will close this PR.


Review Chrome and WebUI print dialogs with new PPD settings

VendorCapabilities don't look quite right on Chrome and WebUI print dialogs. This affects the PIN-locked print option that I added last week, so follow up with the respective engineers.

@akorobkin I tested both Chrome and WebUI print dialogs. LGTM.


Handle SSL in connection string

By default Azure hosted postgres servers require SSL. Without these connection string settings you will get an exception when trying to query the server.

@danroth27,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

@danroth27 : Thanks for your contribution to the Azure documentation! The author, @jasonwhowell, has been notified to review your proposed change.

#sign-off


Fixed Process stopped

Fixed Process stopped

[This message is created by hyperf-bot]
Hi @zxyfaxcn, this is a READ-ONLY repository, please submit your Pull Request to hyperf/hyperf repository, this Pull Request will close automatically.


Asynchronous Insert

AsyncInserter is a new class that will create objects that will collect rows to insert in batches.
require "google/cloud/bigquery"

bigquery = Google::Cloud::Bigquery.new
dataset = bigquery.dataset "my_dataset"
table = dataset.table "my_table"

inserter = table.insert_async do |response|
  # this is called every time a batch is inserted
  log_insert "inserted #{response.insert_count} rows " \
    "with #{response.error_count} errors"
end

# insert multiple rows one at a time
inserter.insert row1
inserter.insert row2
inserter.insert row3
inserter.insert row4

inserter.flush # publish what was given so far

# insert multiple rows at once
inserter.insert [row5, row6, row7, row8]

# stop the inserter, wait for all threads to end
inserter.stop.wait!

@tswast Can you look this over and let me know if this satisfies the batch-and-flush enhancement described in #1736?

@quartzmo Remaining TODOs have been addressed. PTAL.

@jjolma Is this something you want to weigh in on?

Are retries handled the same as the plain insertAll call?

Yes, the inserter object calls the same insert method.

Is it possible to set the insert ID (basically a primary key for deduplication) for the rows?

We already set an insert_id for each row, which is an MD5 hash of the row contents.

We already set an insert_id for each row, which is an MD5 hash of the row contents.

That concerns me slightly. I can definitely imagine cases where the user inserts duplicate rows expects to see duplicates in the results. It's probably not great schema design on the part of the user, but we might want to allow a way to do it.

Not sure if it's something we should change, but it's different from what I expected and what I've seen in the other languages. We should start a discussion with some other folks on the BigQuery team to see if we should add similar behavior in the other language implementations.


Fix the issue of created ErrorValues getting replaced by GenericListenerError

Purpose
Fix the issue: https://github.com/ballerina-platform/ballerina-lang/issues/19055

Codecov Report

Merging #19072 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #19072   +/-   ##
=======================================
  Coverage    15.8%    15.8%
=======================================
  Files          47       47
  Lines        1259     1259
  Branches      196      196
=======================================
  Hits          199      199
  Misses       1047     1047
  Partials       13       13

Continue to review full report at Codecov.

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


Hello World example for STM32F746 make error

@tensorflow/micro
System information

Host OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10 x64
TensorFlow installed from (source or binary): pip
Tensorflow version (commit SHA if source): 2.1.0
Target platform (e.g. Arm Mbed OS, Arduino Nano 33 etc.): STM32F7

Describe the problem
I started following the guide here : https://github.com/tensorflow/tensorflow/tree/master/tensorflow/lite/micro/examples/hello_world#deploy-to-STM32F746
which required me to download TensorFlow's sources (I installed it previously using pip), and my goal is to deploy it to STM32F746. Except that the first step :
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=mbed TAGS="CMSIS disco_f746ng" generate_hello_world_mbed_project
doesn't work and throws me an error saying that it tried to download gemmlowp for some reason and that tensorflow is not recognized as an internal command... I get that I'm not supposed to run tensorflow outside of python but I'm just running make here... Shouldn't have any link whatsoever.
Please provide the exact sequence of commands/steps when you ran into the problem
Used the first command from the "Deploy to STM32F746" guide make -f tensorflow/lite/micro/tools/make/Makefile TARGET=mbed TAGS="CMSIS disco_f746ng" generate_hello_world_mbed_project
Encountered first an error with unam -m tied to my OS or architecture, had to manually delete the makefile code regarding that and write it in stone; then I ran it again and got this :
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=mbed TAGS="CMSIS disco_f746ng" generate_hello_world_mbed_project
tensorflow/lite/micro/tools/make/download_and_extract.sh "https://github.com/google/gemmlowp/archive/719139ce755a0f31cbf1c37f7f98adcc7fc9f425.zip" "7e8191b24853d75de2af87622ad293ba" tensorflow/lite/micro/tools/make/downloads/gemmlowp
'tensorflow' is not recognized as an internal or external command operable program or batch file
make: *** [tensorflow/lite/micro/tools/make/downloads/gemmlowp] Error 1

@Nithraniel,
Is this still an issue?
Could you please update TensorFlow to the latest stable version v2.4.1 and check if you are facing the same error. Thanks!


feat(skin search): improve searching by adding keyword filtering & comparators.

feature description
As discussed, the next search keywords should be added:
keywords with specific values

[ ] creator:username > useful to search for skins from specific creator
[ ] publisher:username > userful to search for skins from a specific publisher.
[ ] HD:true/false > search for skins with or without high quality assets
[ ] SD:true/false > search for skins with or without high quality assets
[ ] animated:true/false > search for skins with or without animated assets
[ ] extra:true/false > ..... with or without customization files
[ ] color:blue > specific color search
[ ] rating:safe/nsfw > yeah.

comparison operators
used with symbols such as: > >= < <= =

[ ] downloads > used with comparison.
[ ] views > used with comparison.
[ ] rating > used with comparison.

logical operators

[ ] exclude skins (could use - or !): -color:green / -minimalist / -rating:nsfw
[ ] this or that: color:blue||color:red / (color:blue || color:red) / ~color:blue ~color:red

others

[ ] fuzzy search: for tags, will search for anything that starts, ends, or contains that word. (for example: mini~ will search for skins that have tags that contain minimal, minimalist minion, etc.

added source code of sorting.js
https://github.com/cyperdark/osuck-skins/blob/main/sorting.js


Crash when opening folder containing () characters

Description
When I try to open a folder containing ( or ) I get the following error:
[telescope] ^I...ck/packer/start/telescope.nvim/lua/telescope/pickers.lua:484: in function <...ck/packer/start/telescope.nvim/lua/telescope/pickers.lua:450>

Neovim version
NVIM v0.8.1
Build type: Release
LuaJIT 2.1.0-beta3

Operating system and version
macOS 13.2.1
Steps to reproduce

Try to open a folder which contains () e.g ($lang). This is a new pattern supported by Remix optional segments file based routing

Expected behavior
Expect to be able to navigate to the folder
Actual behavior
Error
[telescope] ^I...ck/packer/start/telescope.nvim/lua/telescope/pickers.lua:484: in function <...ck/packer/start/telescope.nvim/lua/telescope/pickers.lua:450>

Minimal config
vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvim/site]]
local package_root = '/tmp/nvim/site/pack'
local install_path = package_root .. '/packer/start/packer.nvim'
local function load_plugins()
  require('packer').startup {
    {
      'wbthomason/packer.nvim',
      {
        'nvim-telescope/telescope.nvim',
        requires = {
          'nvim-lua/plenary.nvim',
          'nvim-telescope/telescope-file-browser.nvim',
        },
      },
      -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    },
    config = {
      package_root = package_root,
      compile_path = install_path .. '/plugin/packer_compiled.lua',
      display = { non_interactive = true },
    },
  }
end
_G.load_config = function()
  require('telescope').setup()
  require('telescope').load_extension('file_browser')
  -- ADD INIT.LUA SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
end
if vim.fn.isdirectory(install_path) == 0 then
  print("Installing Telescope and dependencies.")
  vim.fn.system { 'git', 'clone', '--depth=1', 'https://github.com/wbthomason/packer.nvim', install_path }
end
load_plugins()
require('packer').sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua load_config()]]

Thanks for the prompt response and all the work with this amazing plugin @jamestrew

Eg.
(foo)/ -> ok
$foo/ -> also ok
($foo)/ -> not ok

Confirm this is the case for me too 🙏🏼

Several things I should look into:

[ ] async_oneshot_finder -> cwd is being expanded prior to passing cwd to uv and the expansion is butchering the path
[x] regular "grouped" Job is fine
[ ] git status Job also fails passing in cwd
[x] plenary.scandir is ok
[ ] "File Previewer" also fails for both directory and file preview

@juanpprieto I've determined the cause of this bug (besides the File Previewer). I'll work with the maintainers upstream to figure out a fix but in the meantime, you should be able to do :Telescope file_browser use_fd=false git_status=false (or put those in your settings) to get most of the functionality back.

Amazing! Thanks @jamestrew use_fd=false git_status=false did the trick for the folder access (which was the most pressing issue). File preview is empty, but that less important 🥇

The problem most likely is that the path would have to be escaped for fd

[telescope]     args = { "--base-directory=/tmp/testing/($lang)", "--absolute-path", "--path-separator=/", "--maxdepth", 1 },

like so
fd --base-directory="/tmp/testing/(\$lang)" which seems to work in my case appropriately. This seems sensible, because fd by default uses a regex syntax.
We should be able to fix this I believe by passing -F or --fixed-strings which is also more appropriate since we don't want regex.

I tried the above mentioned fix of adding --fixed-strings but in my testing, it doesn't resolve the issue.
I believe for both the git_status plenary job and async_oneshot_finder use cases, the issue comes down to the passed cwd being expanded via vim.fn.expand. Altering both of these to just use the provide cwd resolves the issue (besides the File Previewer).
https://github.com/nvim-lua/plenary.nvim/blob/253d34830709d690f013daf2853a9d21ad7accab/lua/plenary/job.lua#L68
https://github.com/nvim-telescope/telescope.nvim/blob/a3f17d3baf70df58b9d3544ea30abe52a7a832c2/lua/telescope/_.lua#L24

Hi @jamestrew, just ran a PackerSync and it seems this issue has regressed. My guess is that it's telescope related but just wanted to let you know.
Now instead of showing an error message, file browser just freezes and I see a telescope messages saying something along the lines of "Nothing selected" when I try to open the ($lang) folder.
One more thing I noticed last week (before this latest changes) is that the following pattern was also breaking:
/app/routes/($lang)/__public/xyz
Thanks!

Amazing thanks @jamestrew - It's been great following this going upstream 🙏🏼


Refactored more code

Pull Request Test Coverage Report for Build 1029

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

Totals

Change from base Build 989:
0.007%

Covered Lines:
2777

Relevant Lines:
3193

💛  - Coveralls


OTR: name and definition of DNA topoisomerase I-TDRD3 complex

In working out what is needed for this request: https://github.com/geneontology/go-ontology/issues/15575, I think we need to fix the name and definition of this term:
id: GO:0140225
name: DNA topoisomerase I-TDRD3 complex
def: A protein complex that has DNA topoisomerase type I and RNA topoisomerase activities.
Tagging @liviap @bmeldal @pgaudet since you all commented on the original NTR ticket.
While I agree with the comments in https://github.com/geneontology/go-ontology/issues/15223, that use of Greek letters is problematic, the name of this term makes it really hard to understand what it is supposed to be. Both of the papers cited for this term call it topoisomerase III-beta. While it is true that topoisomerase III-beta is in the topoisomerase Type IA class, I think it is inconsistent with the published literature to say that the name of this complex is "DNA topoisomerase I-TDRD3 complex". It also seems that just calling this a "topoisomerase I" is misleading. Vertebrate topoisomerase III-beta is a member of the topoisomerase IA subfamily and shouldn't be referred to as a "topoisomerase I", which is generally used as the name of a specific bacterial enzyme which is also a member of the topoisomerase IA subfamily.
Here's a reformatted (web version is hard to read) summary table of topoisomerases from: https://en.wikipedia.org/wiki/Topoisomerase#Classes

Note: I've copied the data in this wiki table exactly, except that it is inconsistent with other sources on the Multiplicity of vertebrate (human) type II enzymes, so I've indicated that inconsistency.
Here are the names & synonyms I would suggest:
name: DNA topoisomerase III-beta-TDRD3 complex
synonym (EXACT?): Top3-beta-TDRD3 complex
synonym (RELATED?) - DNA topoisomerase type IA-TDRD3 complex I'm not committed to this one, but if you want to keep a name similar to the current term name, I think this is better than using the misleading name we are currently using. I could also skip this one entirely.
Regarding the definition, the existing definition: A protein complex that has DNA topoisomerase type I and RNA topoisomerase activities. seems like it is insufficient to distinguish the complex of the vertebrate Top3-beta complex with TDRD3 from any complexes that occur between bacterial topoisomerase III and whatever might help target them to appropriate substrates which also include both DNA and RNA substrates.
Ahmad et al. 2016. RNA topoisomerase is prevalent in all domains of life and associates with polyribosomes in animals. Nucleic Acids Res. 44(13):6335-49. PMID:27257063

Unlike the well-characterized DNA topoisomerases, RNA topoisomerases have received far less attention and their prevalence, function and mechanism of action are largely unknown. To date, only two proteins have been reported to possess topoisomerase activity for RNA–E. coli topoisomerase III (EcoTop3) (3) and human topoisomerase 3β (HumTop3β) (4). Both belong to the Type IA family of topoisomerases, hinting that this family may have dual activities for both DNA and RNA. However, two other members of the type IA family from identical species, E. coli topoisomerase I (EcoTop1) and human topoisomerase 3α (HumTop3α), lack RNA topoisomerase activity.

As the quote above indicates, there isn't really an obvious grouping class that this existing definition could easily be applied to in order to have a general parent class since only some of the Type IA topo enzymes possess RNA topo activity as well as DNA topo activity.
So, if this term is meant to be specific for the vertebrate topo III-beta-TRDR3 complex, and to exclude any complexes of bacterial topo III, then it seems we have to include composition info consistent with the name of the term, e.g.:
possible new def: A protein complex comprised of topoisomerase III beta and TDRD3 that has DNA topoisomerase type I and RNA topoisomerase activities.

Hi @krchristie,
Thanks a lot for handling that. your suggestion sounds fine to me.
Livia

The more I think about the idea of this synonym:
synonym (RELATED?) - DNA topoisomerase type IA-TDRD3 complex
I think we should NOT do this since it seems to imply a generic DNA topo of type IA, but this term was requested specifically for a complex that contains Top3beta and not Top3alpha.

I agree,

synonym (RELATED?) - DNA topoisomerase type IA-TDRD3 complex

would be misleading.
(Not that the different, historic, Roman numerals in names and subfamilies aren't misleading in the first place!)
Also in CP:
TDRD3-TOP3B type IA topoisomerase complex
RecQ helicase-Topo III complex


QC metric download buttons

Add some buttons to download the QC metrics to a file

file and button added
https://github.com/Psy-Fer/interARTIC/commit/5a65c2891130d5e2c3e46de120c09e1062ee13b2

works!


Rocketmq heavily use NetworkInterface to get ip which is not recommended use in kubernates

rocketmq use NetworkInterface.getNetworkInterfaces() to getIp in many places, for example,  in  brokerlive cache, in store msg used as msg tag, etc.  As Cloud Native standard and kubernates is popular more and more，in which “ip” is not recommended use, while dns is the mainstream. So,
why rocketmq not decouple these "ip"  hard coded by NetworkInterface.getNetworkInterfaces(),other than make it configurable(ip or dns or any other form),  if possible.

Good suggestion. RocketMQ is embracing cloud native, as you said, there are some issues at present, so PRs are welcomed to solve these issues.

since ip is marked as a tag for broker, and in cloud native, in k8s ,broker usually is set by statefulset, which we can use name+namespace as the unique tag, just like xx-xx-0-ns1, yy-yy-0-ns2. so we can configure it in our own broker statefulset, and that's the unique tag in k8s just as the "ip" in vm or node

@YJFinBJ good suggestions, but IP is used throughout RocketMQ as a unique identifier, including client differentiation (this is reflected in many issues), message storage formats(IPv4&IPv6), etc. This does cause a lot of issues in the container environment, so there is very much of the work that needs to be done, such as the compatibility of the non-k8s environment that also needs to be considered.
This change seems to be relatively large, so could you provide a more detailed design first so that more users from the community can participate?

about compatibility of non-k8s environment , I think make it configurable can resolve，default non-k8s support。
But just as mentioned, this does a really large work,  detailed design and also enough test needed, I think

Hi @YJFinBJ YJ you can submit a RIP if you have enough time to slove this issue. I am willing to be a shepherd for the RIP and solve this issue with you.


Toggle Gm needed

in order to use your sheets there needs to be a Gm on the map, can you please update this so it changes to
GM
Trial Gm
Trusted
NONE
as toggles in the settings please

Yes, please, this would be great. It's currently a pain for some users that require the GM to do shopping.

The requirement for a GM in the scene is gone.
A GM still needs to be online.
Handling it via other user levels as well would entail a lot of work as far as I can think through the implications.
We would have to check for each user if they can actually update the specific actor.
Just to prevent errors.
On top of that the logic to check which user permission level is sufficient and which levels are higher than others.
It can/could all be done. But at least my view is.

Part of the requested feature is now included
low prio on the other part from my end


USB data line powered while disconnected

When using several ODrives on an Raspberry Pi 4, the raspberry fails to boot. I've found some hints from other people mentioning USB problems, and it seems that cheap USB devices tend to pull the USB data lines when powered externally, back-powering the raspberry by the data lines and leading to a brownout condition before the raspberry supply sport enough power.
So I've checked my ODrive, and in fact it does power D+ (testpoint TP2) prior to being plugged.
So I guess this behaviour is causing the Raspberry to behave eratically. A single device doesn't seem to provide enough power, but multiple powered D+ lines finally powers the raspi power controller IC which then locks into brownout condition, preventing the raspberry from booting.
Is this just a software issue in the USB stack, or does this need a hardware fix?

It seems indeed that ODrive v3 is non-compliant to USB specs.
If I understand correctly, a compliant peripheral should monitor V_bus of the USB connector to know when to pull up D+. This pull-up is required to signal presence to the host.
The V_bus pin of the USB receptacle is not connected on ODrive v3 so we can't properly fix this in software. Maybe it's possible to work around this issue by floating D+ (PA12) most of the time and only once in a while (let's say for 100ms every second) switching the pin to USB mode.
Another (much simpler) workaround could be to connect the ODrive through a hub.

By using a hub for some of the drives, the bug is indeed remedied. Question is if that would add noticeable latency.

While there could be an increased latency in theory I don't think it's noticeable in practice.

The Transaction Translator takes high-speed split transactions and translates them to full-/low-speed transactions
when the hub is operating at high-speed and has full-/low-speed devices attached.

—USB Specification 2.0, Section 11.1.1
The Hub-to-ODrive connection operates at Full Speed (12Mb/s) while the Host-to-Hub connection operates at High Speed (480Mb/s) or even Super Speed (1Gb/s). The faster baudrates also come with shorter transmission time frames which also helps with latency. So my guess is that the added latency is negligible compared to the inherent bus-time-quantization-caused latency of the Host/Hub-to-ODrive connection.
Anyway, if you have hard real time constraints you may want to consider using a CAN shield on the Raspberry Pi.

A partially fix for the beginning would be (if possible by software) to delay the USB initalisation by some part of a second on power on, to allow the host pass it's power check if both devices are powered at almost the same time (eg. sharing the same supply).
Not sure how long this delay on power on is currently?

Currently there's no deliberate delay before USB is enabled. So I'd expect it to be on the order of tens of milliseconds.
If you want to try it out you can add osDelay(some_number_in_milliseconds); before MX_USB_DEVICE_Init(); in main.cpp (on the devel branch).


cflint ignore:line support for cfscript

I should have looked closer, as I thought this was an existing test that was failing, but it looks like it was something I was in the process of addressing and never committed.

Oh, this test I had was actually about an empty config I guess, tho there was a bug with ignore:line as well… hmm

https://github.com/tree-sitter/tree-sitter-html/blob/master/src/tag.h has pre listed in TAG_TYPES_NOT_ALLOWED_IN_PARAGRAPHS , is this correct ? is it invalid to do this ?

was this the issue you meant to ask that on?
It looks like pre is not in the list of "phrasing content" so I guess it is invalid inside a p tag
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p#technical_summary