[SPARK-44279][BUILD] Upgrade word-wrap

What changes were proposed in this pull request?
This PR proposes a change in the package.json file to update the resolution for the optionator package to ^0.9.3.
I've added a resolutions field to package.json and specified the optionator package version as ^0.9.3.
This will ensure that our project uses optionator version 0.9.3 or the latest minor or patch version (due to the caret ^), regardless of any other version that may be specified in the dependencies or nested dependencies of our project.
Why are the changes needed?
CVE-2023-26115
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA

https://github.com/jonschlinkert/word-wrap/issues/40
@sarutak and @srowen
$ npm install
added 1 package, removed 1 package, changed 2 packages, and audited 119 packages in 525ms
15 packages are looking for funding
run npm fund for details
3 moderate severity vulnerabilities
To address all issues, run:
npm audit fix
Run npm audit for details.
(base) [bjorn@amd7g dev]$ npm audit fix
added 1 package, removed 1 package, changed 2 packages, and audited 119 packages in 731ms
15 packages are looking for funding
run npm fund for details
found 0 vulnerabilities

@bjornjorgensen
Thank you fixing this issue.
How about adding "optionator": "^0.9.3" to package.json rather than using forked repo?
Also, could you please fill out the description because it's recorded  as commit log.

(base) [bjorn@amd7g dev]$ npm install

up to date, audited 119 packages in 495ms

15 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

Oh wait, ESLint v8.44.0 seems to be already released, which includes the CVE fix.
https://github.com/eslint/eslint/releases/tag/v8.44.0
https://github.com/eslint/eslint/commit/cf884390ad8071d88eae05df9321100f1770363d
@bjornjorgensen It's better to upgrade ESLint right?

hmm.. https://github.com/eslint/eslint/pull/17319 yes, eslint v8.44.0 have this fix.
ok, I can try to upgrade eslint.
I have never used this so I can tell whats better or not. :)

(base) [bjorn@amd7g dev]$ npm install

added 22 packages, removed 44 packages, changed 21 packages, and audited 97 packages in 37s

23 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

but now we get "node_modules/@aashutoshrathi/word-wrap" witch is the forked repo.

@bjornjorgensen The change SGTM.
Could you update the title and description so that we can easily understand this PR upgrades ESLInt to v8.44.0?

but now we get "node_modules/@aashutoshrathi/word-wrap" witch is the forked repo.

I think it's no problem because Spark doesn't depend on the forked word-wrap and not need to maintain it.

yes, and I have updated the JIRA ticket for eslint.

@bjornjorgensen
Please mention which change in the release note fixes the CVE in the description to justify this change.
For example
The following change in the release note fixes the CVE.
[cf88439](https://github.com/eslint/eslint/commit/cf884390ad8071d88eae05df9321100f1770363d) chore: upgrade<EMAIL_ADDRESS>(https://github.com/eslint/eslint/pull/17319) (Milos Djermanovic)

We got an error
Run ./dev/lint-js
  ./dev/lint-js
  shell: sh -e {0}
  env:
    LC_ALL: C.UTF-8
    LANG: C.UTF-8
    PYSPARK_DRIVER_PYTHON: python3.9
    PYSPARK_PYTHON: python3.9
    GITHUB_PREV_SHA: c63[2](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:2)b[3](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:3)11e9f66eb5ec6[4](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:4)49779fd6164fc698a91b
    APACHE_SPARK_REF: d9248e83bbb3af49333608bebe7149b1aaeca738
    JAVA_HOME: /__t/Java_Temurin-Hotspot_jdk/8.0.372-7/x64
    JAVA_HOME_8_X64: /__t/Java_Temurin-Hotspot_jdk/8.0.372-7/x64
npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it!
added 96 packages in 1.261s

Oops! Something went wrong! :(

ESLint: 8.44.0

TypeError: Module.createRequire is not a function
    at Object.<anonymous> (/__w/spark/spark/dev/node_modules/@eslint/eslintrc/dist/eslintrc.cjs:239[5](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:5):2[6](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:6))
    at Module._compile (internal/modules/cjs/loader.js:[7](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:7)7[8](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:8):30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:78[9](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:9):[10](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:10))
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:[12](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:12))
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:[17](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:18))
    at require (internal/modules/cjs/helpers.js:25:[18](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:19))
    at Object.<anonymous> (/__w/spark/spark/dev/node_modules/eslint/lib/cli-engine/cli-engine.js:33:5)
    at Module._compile (internal/modules/cjs/loader.js:778:[30](https://github.com/bjornjorgensen/spark/actions/runs/5534166744/jobs/10100472963#step:20:31))
lint-js checks failed.

The error message TypeError: Module.createRequire is not a function suggests that the version of Node.js you are running is not compatible with the version of ESLint you're trying to use (v8.44.0 in this case). The Module.createRequire function is a method in Node.js that was added in version 12.2.0.
ESLint 8.x requires Node.js ^12.22.0 || ^14.17.0 || >=16.0.0. If your Node.js version is below these, you may encounter the error. To solve this issue, you need to upgrade your Node.js to a compatible version.
You can check your Node.js version by running node -v in your terminal. If the version is below 12.22.0, you will need to upgrade it. Here are the general steps to upgrade Node.js:

Clear npm's cache: npm cache clean -f
Install n (Node's version manager): npm install -g n
Install latest Node.js version: n stable or a specific version n 12.22.0

After upgrading Node.js, try running ESLint again. If you still get errors, you might want to delete your node_modules folder and package-lock.json file (if you're using npm) or yarn.lock (if you're using yarn), and then run npm install or yarn install to reinstall your packages.
Please make sure to update your CI/CD scripts as well to use a compatible Node.js version if they are also running ESLint.
As the log seems to be from a GitHub Actions run, you might need to specify the Node.js version in your GitHub Actions configuration (the .github/workflows/*.yml files), using something like the actions/setup-node action with the node-version parameter.

@bjornjorgensen
Hmm, the container image for the CI seems based on Ubuntu 20.04, which provide an old version of nodejs.
So, let's just add "optionator": "^0.9.3" to package.json for now.

Merging to master. Thank you @bjornjorgensen !

NOTE: Once we upgrade ESLint to +v8.44.0 in the future, we can remove this change.

Hi @sarutak I did run docker build spark/dev/create-release/spark-rm
/Dockerfile and then I get this
Processing triggers for libc-bin (2.31-0ubuntu9.12) ...

================================================================================
================================================================================

                              DEPRECATION WARNING

  Node.js 12.x is no longer actively supported!

  You will not receive security or critical stability updates for this version.

  You should migrate to a supported version of Node.js as soon as possible.
  Use the installation script that corresponds to the version of Node.js you
  wish to install. e.g.

   * https://deb.nodesource.com/setup_16.x — Node.js 16 "Gallium"
   * https://deb.nodesource.com/setup_18.x — Node.js 18 LTS "Hydrogen" (recommended)
   * https://deb.nodesource.com/setup_19.x — Node.js 19 "Nineteen"
   * https://deb.nodesource.com/setup_20.x — Node.js 20 "Iron" (current)

  Please see https://github.com/nodejs/Release for details about which
  version may be appropriate for you.

  The NodeSource Node.js distributions repository contains
  information both about supported versions of Node.js and supported Linux
  distributions. To learn more about usage, see the repository:
    https://github.com/nodesource/distributions

================================================================================
================================================================================

Continuing in 20 seconds ...

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

                           SCRIPT DEPRECATION WARNING

  This script, located at https://deb.nodesource.com/setup_X, used to
  install Node.js is deprecated now and will eventually be made inactive.

  Please visit the NodeSource distributions Github and follow the
  instructions to migrate your repo.
  https://github.com/nodesource/distributions

  The NodeSource Node.js Linux distributions GitHub repository contains
  information about which versions of Node.js and which Linux distributions
  are supported and how to install it.
  https://github.com/nodesource/distributions

                          SCRIPT DEPRECATION WARNING

================================================================================
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
================================================================================

TO AVOID THIS WAIT MIGRATE THE SCRIPT
Continuing in 60 seconds (press Ctrl-C to abort) ...

Should we try to upgrade node.js to version 18 for spark 4.0.0 ? also cc @dongjoon-hyun

Thank you for ccing me, @bjornjorgensen .

@bjornjorgensen
Thank you for pinging me and sorry for the late reply.
I reproduced this issue and I'm OK to upgrade Node.js and NPM.
@dongjoon-hyun
BTW, if we upgrade them in spark/dev/create-release/spark-rm/Dockerfile, should we upgrade them in dev/infra/Dockerfile for the consistency?


remove unused imports with generated contracts

Result:
tsconfig with noUnusedLocals is not compiling because of IPayableTxParams and ITxParams are not used sometimes but they present inside the compiled source.
Expected:
ITxParams and IPayableTxParams to not present inside build
Really good work !! Thank you for this repository :)
Regards,
Kristiyan Tachev

@krzkaczor @Stradivario I'm working on a fix

@desfero thank you man!!! You are more than welcome introducing this "shiet" :D

Released in<EMAIL_ADDRESS>Thanks for help!


Revert grafana data source

While preparing #29151 it seems like the UI changed the data source for some reason. This reverts all panels to the original data source and undoes some of the unnecessary change from that PR.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @Abacn


Windows support added to setup.py

Closes #42

@ant6 can you review and merge when ready ?

Ok

BTW - travis is slow again: https://www.traviscistatus.com/incidents/nf3tg08pqg2d

This build won't end -.-'

Be patient - by tomorrow should be ready. In the meantime you can try to make some tests with wercker (#67)

Ugh, test passed but I miss-clicked... now they won't, because we don't have wercker.yml here :/ Can I just merge it...? Test passed, really :P

I'd like to avoid merging stuff that don't pass tests.
What if first wercker is added in other branch (with proper PR), then this PR can be rebased (--force) and tomorrow should pass tests, as travis will be faster then.

Ok, maybe we should merge wercker with minimal config, like 'run pytest and do nothing more'? They we could rebase this branch on new master.

@ant6 I've just rebased and squashed. Please merge if all tests are OK.

I don't get it - it was squashed and now it seems it's not - looking at commits: https://github.com/DataMedSci/beprof/commits/master Was it supposed to look like this or I have to squash again when merging?

After merging PR #79 only following commits have appeared:

e2a59fcb961988b5ec4e26ae1ec04dc3415a2574 - the change
08547da6cc0093d7e2754fac69f2d8ecaaa1f5ef - merge commit

Which commits (paste here SHAs) seems strange to you ?

I just thought it should look more like this commit:
https://github.com/DataMedSci/beprof/commit/a6f1eede1bee508d3d15811fded1a0a0c4e87331
But I have another question - when merging - should I use Squas merge Github suggests? Or the typical?

I prefer to use:

"squash merge" when there are many commits AND it is not necessary to keep all of them\
"normal merge" when there is single commit OR many commits and makes sense to keep their history (changes come in few steps and they are well described)

But still it is better to read more about it.


Bluetooth: controller: split: Fix assert in PDU Rx quota increment

Directed advertising timeout released PDU Rx quota which it
should not be.
Relates to assert in #21006.
Signed-off-by: Vinayak Kariappa Chettimada<EMAIL_ADDRESS>

Fixed author and signed-off (was different email ids).


Split subscription_types.py into smaller modules

The subscription_types.py file contains definitions of subscription types for all modules in one file, which makes it hard to maintain. We should split the file into smaller ones that would be organized similarly to the structure of GraphQL modules:
subscription_types/
    __init__.py
    base.py  # for any common classes/functions
    account.py
    app.py
    attribute.py
    ...

Closing in favor of #12583.


How to NOT Remove Special Characters from Filenames

Checklist

[x] I'm asking a question
[x] I've looked through the README and FAQ for similar questions
[x] I've searched the bugtracker for similar questions including closed ones

Question

WRITE QUESTION HERE...
i'm using youtube-dl in the Terminal on a Mac (Catalina) to download all my videos from YouTube.
seems to be working fine, except...
for ? question marks, it removes them,
for " quotes, it changes them to apostrophes.
i get changing : colons to - dashes, but the rest of them, the Mac file system can totally handle.
so is there a way to make it keep these as-is?
note: i have NOT set the "--restrict-filenames" option.
note: it keeps ! exclamation points (yay!) and it keeps & ampersands (yay!).
and for reference, in case i'm doing something wrong, here is the line i'm putting in the Terminal to make this happen...
youtube-dl --ignore-errors --write-thumbnail -f '(bestvideo[width>=1920][ext=mp4])+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '/Volumes/LaCie/DUMPSTER/%(upload_date)s %(title)s.%(ext)s' https://www.youtube.com/playlist?list=XXXXXXXXXXXXXXX

They are removed because other operating systems do not allow them. Afaik, there is no option in youtube-dl to change this behavior.

thank you @pukkandan


Python 3 support?

Any luck?

Sadly I don't have time to maintain this project anymore :( If you contribute and implement python 3 support I'd be more than happy to merge.


Even if most of the host address bind configurations are set to wlan interface in the iot-server, during the ios registration, the iPhone try to connect to the docker network interface

All the given configurations (according to docs) are modified so that the iot-server will bind to the wlan ipaddress (<IP_ADDRESS>) of the machine.
The machine have several network interfaces including the docker interface. (<IP_ADDRESS>)
During the device registration, the iPhone will try to connect to the docker interface and it fails.
A fix needs to be introduced to configure all the network interfaces the iot-server connects to be configured to the desired network interface.

Did you add the IP to the hostname element in carbon.xml?, This field is used to bind to the correct interface.

This is fixed in https://github.com/wso2/carbon-devicemgt-proprietary-plugins/pull/151/commits/6f04e6c67d15231f5561bdc8365c34626430e07c


Trying to get a token

Prerequisites

[X] Put an X between the brackets on this line if you have done all of the following:

Followed all applicable steps in the debugging guide
Checked the FAQs on the message board for common solutions
Checked that your issue isn't already filed?

Description
trying to get a token using Github and teletype
Steps to Reproduce

click on the antenna icon
click on the link to get a token
open my browser and ask me to login with my github account

Expected behavior:
get a token
Actual behavior:
huuuu... get a 404 not found at this page https://teletype.atom.io/login/oauth/authorize
Reproduces how often:
I tried like 5/6 times
Versions
I don't think this come from Atom but more from your website

Thanks for letting us know about this issue. I'll try to help. Can you give this a try:

Log out of github.com (https://github.com/logout)
Then, go to https://teletype.atom.io/login and follow the prompts

Does that resolve the issue for you?

not at all, I logged out and tried to login 3 times with my pseudo and my email, checked 4 time the password and I still get a 404 not found

@KurtC0ba1n: Would you mind sharing a gif or video of the behavior you're seeing? I'm hoping that it might help us better understand the exact flow so that we can diagnose the issue.

I also have a similar issue. On accident, I used someone else's token during setup. How do I overwrite or clear the token? Thank you

@coinGuyBri: From the command palette, run the Teleteype: Sign out command.


Qualification docs - add detail how user would apply potential problems, nested, and unsupported types

Describe the bug
We could add more detail to the qualification docs about how a user should use the fields potential problems, nested and complex types and unsupported types.

I'm going to close this in favor of https://github.com/NVIDIA/spark-rapids/issues/4937 which should have more information and no reason to do it twice.


Any TCP only solution?

My Uni will block all outgoing UDP by default. Anyway to convert UDP to make TCP likes to bypass firewall?

Hi,
I started with a TCP version and it was very hard to get a smooth TCP connectivity.
We could pretend to be a TCP session (like this) but it is a lot of work and not the current target.
Regards

It is maybe not so hard to pipe glorytun with udp2raw-tunnel to get what you want.

angt I am confused about tcp, openmptcprouter uses glorytun tcp as the default VPN tunnel. In the default configuration this would be for any traffic other than TCP (udp, icmp etc.) When the router is using glorytun tcp it is unstable, connection speeds are typically 250 kbps even on fast wan connections and it disconnects often. If tcp not supported at all?
There is an option to use glorytun udp, should I?


OpenCV error on Raspberry Pi 3

Hi,
I installed the package on raspberry pi 3 with TOOLCHAIN=linux-gcc-armf-neon-vfpv4. There is no error during complilation. I can succefully install it.
However, when I tried to run it with "./acf-detect --input=lene512color.png --output=/tmp/ --model=drishti_face_gray_80x80.cpb --nms --annotate --calibration=0.00001", I got the following OpenCV error
"OpenCV Error: One of arguments' values is out of range (The total matrix size does not fit to "size_t" type) in setSize, file /home/ubuntu/.hunter/_Base/57d0748/f2f4970/0352f92/Build/OpenCV/Source/modules/core/src/matrix.cpp, line 309 Exception: /home/ubuntu/.hunter/_Base/57d0748/f2f4970/0352f92/Build/OpenCV/Source/modules/core/src/matrix.cpp:309: error: (-211) The total matrix size does not fit to "size_t" type in function setSize".
I didn't do any change to the code. I thought the image size might be too large for Pi since the memory of Pi is only 1GB. So I also tried to use Lena256. Unfortunately, I had the same error.
Have you ever met this problem before?
Thanks,
Xing

I haven't tried it on Raspberry Pi yet, but I would be curious to know where it is failing.
"lene512color.png" should be "lena512color.png".  Was that a typo?
Can you try to isolate the issue via gdb or logging?  If you are using polly.py you can specify --config=Debug for a debug build.  I haven't seen this issue before, so without additional context it is hard for me to help.

TODO: QEMU Raspberry Pi Emulator for testing https://github.com/hunter-packages/gauze/issues/4

The "lene512color.png" was a type. It has nothing to do with the error. Thanks for your suggestion. I'll try to use gdb to find where the error happened.

Thanks for the update, and thanks for testing on Raspberry Pi.  I'd love to confirm end-to-end behavior is OK on this platform.  It really should work.  I did purchase a Raspberry Pi for tinkering, but it is still in the box.  I will try to set it up.

Ok, this is an update of this issue.
I digged into the code and found the problem happened where the model .cpb file was loaded. For some reason, the provided face.cpb file can not be loaded. Then, I downloaded some pretrained mat files from the toolbox and loaded these mat files instead of cpb files. Everything is working perfectly.

I'm glad it is working.  Can you run the exact same build command but with a toolchain for your desktop system and then try running the command line application with the same arguments?  I guess it is possible there is some problem with the cereal portable binary archives on Raspberry Pi devices.  If the same commands work fine for you on a "desktop" device that would be a useful data point.

@xingwangsfu : I was able to reproduce the issue on a Raspberry Pi 3 B.  The problem was introduced with the wget command I provided in the README.  The github URL for downloading binary files should use raw and not blob.  If you run wget again with this syntax it should work fine.  Sorry for the confusion:
new/correct:
wget https://github.com/elucideye/drishti-assets/raw/master/drishti_face_gray_80x80.cpb

old/broken:
wget https://github.com/elucideye/drishti-assets/raw/master/drishti_face_gray_80x80.cpb


Supporting SFML 3 Development

Hi, Elias! I've been working on SFML 3 for the past few months and recently started a new project that is using SFML 3 with ImGui-SFML. So far it's been working just fine with SFML 3 but a recent SFML PR finally broke compatibility with ImGui-SFML.
What is propose is that ImGui-SFML adopt SFML's branching strategy. This means that the master branch is where most development effort is focused and this is kept in sync with SFML 3's master branch. A 2.6.x branch is made which contains ongoing 2.6.x work and will remain compatible for those who still want to use SFML 2.
I already have one fix planned for SFML 3 compatibility pending feedback on how you may want to approach this versioning problem. Thanks!

You have more clarity into future sfml developments than I do but from what I gather it may be possible to retain compatibility with both 2 and 3 on the master branch.
I assume the breaking change you are referring to is the removal of arguments (int x, int y) in favor of sf::vector2's? If so then fixing shouldn't break compatibility with 2
Not sure if there are any other planned changes which could break things.

I assume the breaking change you are referring to is the removal of arguments (int x, int y) in favor of sf::vector2's?

Yes, it's one of many API changes already merged into SFML 3. In this case the problem is sf::Texture::create which in SFML 2 has one overload of bool create(unsigned int width, unsigned int height); which changed to [[nodiscard]] bool create(const Vector2u& size); in SFML 3. There is no common subset of APIs between the two versions we can use. Even if there was a common API to use for now, it's only a matter of time before more API breaks get merged in further increasing the need for ImGui-SFML to maintain two branches that target either major version.

(Note that I am not an owner of this project, just been lurking for quite a while.)
I would strongly suggest to avoid branches. I just don't see the advantage. Why should every improvement to imgui-sfml need to be ported to another branch?
One can just add compile-time conditionals and be done. For example:
diff --git a/imgui-SFML.cpp b/imgui-SFML.cpp
index bbea0eff4..9238d4920 100644
--- a/imgui-SFML.cpp
+++ b/imgui-SFML.cpp
@@ -784,9 +784,15 @@ bool UpdateFontTexture() {
     io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height);

     sf::Texture& texture = s_currWindowCtx->fontTexture;
+#if SFML_VERSION_MAJOR >= 3
+    if (!texture.create({width, height})) {
+        return false;
+    }
+#else
     if (!texture.create(width, height)) {
         return false;
     }
+#endif

     texture.update(pixels);

means that the master branch is where most development effort is focused and this is kept in sync with SFML 3's master branch

There is very little developer time available for imgui-sfml as is, why should effort be focused on supporting something unstable?
I'd suggest to keep SFML 3 support best-effort: fixes are welcome as long as they don't touch SFML 2 support.

Oh yeah I forgot we can use the preprocessor. That's definitely the easier solution and will get us pretty far. We can reevaluate if maintaining the preprocessor code gets too cumbersome in the future. So far it's not a problem but one other thing to keep in mind is how ImGui-SFML links to sfml-graphics but the SFML 3 target names are styled as SFML::Graphics so we might later need to modify the build to use the new target name when SFML 3 is detected.

There is very little developer time available for imgui-sfml as is

For what it's worth I'm volunteering to do the labor myself to support my use case. I won't require anyone else to make these changes.

I definitely agree that using #ifdefs is a right way to do it.
As for the CMake stuff - I feel like adding IMGUI_SFML_USE_SFML3 would be a great start (and then putting everything specific to SFML 3 in if/else branches to make everything explicit about SFML 2 and SFML 3 differences)


Es2018

Fixes #14

@markw65 please look

Looks good to me - but I'm not sure how to actually test this change against peggy...

Eh, we'll just land it and publish a version, then you can update the version in your branch and do an npm install.  If it doesn't work, we'll do another version quickly here.
I assume I'm the only one using this on non-peggy projects, so I'm not worried about side-effects.

@markw65 ready for you to give it a shot.

Yes, it works for me. I changed this clone method to return { ...object }, and lint was happy, and the tests passed.
Also, npm run lint and npm run ts report no errors (changing the versions might have caused an issue).

Should I put up a pull request to pull this into peggy? Or I could add it to eg https://github.com/peggyjs/peggy/pull/425 and update the pull request to use it?

Yeah, just add it to 425.  If you could update all dependencies in one commit (including the updated lock file after doing an npm install), that would be best.


StackOverflow for JsonBodyFilter

Using a debugger, I built a function that will reproduce it (this is inside com.monese.card.service.config.logbook.JsonBodyFilters#replace inside delegate lambda):

public static void main(String[] args) {
    //com.monese.card.service.config.logbook.JsonBodyFilters#replace
    String STRING = "(?:\"(?:[^\"\\\\]|\\\\.)*\")";
    String value = STRING;
    final Pattern pattern = compile("(?<key>\"(?<property>.*?)\"\\s*:\\s*)(" + value + "|null)");
    String body = "{\"variables\":{},\"query\":\"\\n    query IntrospectionQuery {\\n      __schema {\\n        queryType { name }\\n        mutationType { name }\\n        subscriptionType { name }\\n        types {\\n          ...FullType\\n        }\\n        directives {\\n          name\\n          description\\n          locations\\n          args {\\n            ...InputValue\\n          }\\n        }\\n      }\\n    }\\n\\n    fragment FullType on __Type {\\n      kind\\n      name\\n      description\\n      fields(includeDeprecated: true) {\\n        name\\n        description\\n        args {\\n          ...InputValue\\n        }\\n        type {\\n          ...TypeRef\\n        }\\n        isDeprecated\\n        deprecationReason\\n      }\\n      inputFields {\\n        ...InputValue\\n      }\\n      interfaces {\\n        ...TypeRef\\n      }\\n      enumValues(includeDeprecated: true) {\\n        name\\n        description\\n        isDeprecated\\n        deprecationReason\\n      }\\n      possibleTypes {\\n        ...TypeRef\\n      }\\n    }\\n\\n    fragment InputValue on __InputValue {\\n      name\\n      description\\n      type { ...TypeRef }\\n      defaultValue\\n    }\\n\\n    fragment TypeRef on __Type {\\n      kind\\n      name\\n      ofType {\\n        kind\\n        name\\n        ofType {\\n          kind\\n          name\\n          ofType {\\n            kind\\n            name\\n            ofType {\\n              kind\\n              name\\n              ofType {\\n                kind\\n                name\\n                ofType {\\n                  kind\\n                  name\\n                  ofType {\\n                    kind\\n                    name\\n                  }\\n                }\\n              }\\n            }\\n          }\\n        }\\n      }\\n    }\\n  \"}";
    pattern.matcher(body).find();
}

This is proably the same proablem as the one reported in #686

The sample input has no double quotes. So I'm kind of lost why this one fails, especially since I can't reproduce it.

@Sam-Kruglov I added your test input as an additional test case in #712 (aiming to fix #686). It already passed with on my machine before the changes though. Maybe you could verify if that branch builds locally for you. I'm out of ideas how to reproduce that, to be honest.

I'm using jdk11, are you? I will try tomorrow

Usually not, but I just tried and current master works as well with 11.

@Sam-Kruglov Did you have a chance to try?

I tried using open jdk 11.0.1 and 11.0.3 that I have installed. I launched it from intellij and got the stack overflow. Not sure how it works for you...

oracle jdk 1.8.0_192 on a clean project with no dependencies - same stack overflow. Try copy-pasting the main method from my first message

I took your code snippet and turned it into a test case without changing
the values. It's linked above and already in the master.
On Fri, 14 Feb 2020, 16:40 Sam Kruglov<EMAIL_ADDRESS>wrote:

oracle jdk 1.8.0_192 on a clean project with no dependencies - same stack
overflow. Try copy-pasting the main method from my first message
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/zalando/logbook/issues/689?email_source=notifications&email_token=AADI7HO24XJFTJEJKU3WMZTRC23NPA5CNFSM4KHHV3LKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELZNYOI#issuecomment-586341433,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADI7HLOUZMNWWCAPWLYHFDRC23NPANCNFSM4KHHV3LA
.

So I took another look and your code sample inlined patterns that are no longer in use.
There is a test case in the master that covers your sample input and it passes :heavy_check_mark:
https://github.com/zalando/logbook/blob/54054d6d147a55f06d0f9ca484d24478657c046a/logbook-json/src/test/java/org/zalando/logbook/json/JsonBodyFiltersTest.java#L173-L182
https://github.com/zalando/logbook/blob/54054d6d147a55f06d0f9ca484d24478657c046a/logbook-json/src/test/resources/huge-json-value.json#L1-L4

Thanks for taking a deep look


docs(config): deterministic in optimization.chunkIds

added deterministic in optimization.chunkIds

ref https://github.com/webpack/webpack/blob/master/schemas/WebpackOptions.json#L1111
ref https://github.com/webpack/webpack/pull/8477

What does it mean it is dertiministic?

I think it means that chunk ids are determine based on previous or initial instead of random .
Not sure though

Yeah, hard to know unless we read the code, but from an user perspective, reading just "deterministic" doesn't tell you anything, it is determined by what?

Yeah, hard to know unless we read the code, but from an user perspective, reading just "deterministic" doesn't tell you anything, it is determined by what?

I am not 100% sure about that that's why didn't add that.
Is there a way we can get to know that ?

Reading the code

deterministic ids is like hashed ids, but using a numeric id.
So: deterministic means a short numeric id that is based on module/chunk name, so it's unlikely to change between compilations which is useful for long term caching.

thanks @sokra for the clarification.
I will change this soon 👍

cc @sokra @montogeek . is the current one fine ?

Thanks!


Failed to click because of overlapping element with background image

We have two section elements overlaying each-other. The one on bottom has a background image and the one on top has a button.
This is the element on bottom's style:
.bottom-element {
  background-attachment: fixed;
  background-image: url(example.jpg);
  background-position: bottom center;
  bottom: 0;
  display: block;
  left: 0;
  padding-top: 8em;
  position: fixed;
  right: 0;
  top: 0;
}

This is the top element's style:
.top-element {
  position: fixed;
  top: 0px;
  right: 0px;
  left: 0px;
  background: #20292f;
  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.5);
  display: none;
  padding: 2em;
  z-index: 99;
}

When we remove the background image from the bottom element or run the test in selenium it passes. But with the background image there in capybara-webkit, it fails to click the button because of the 'overlapping element'. Any thoughts?

Hey @brysgo, I'm sorry we have not yet responded to this issue. Are you still seeing these issues with the latest version of capybara-webkit? If so, could you provide a minimal failing example?

@calleerlandsson - Do you have a base example people clone to reproduce errors?

@brysgo As far as I know, we don't. @jferris, do you know more?

The way I reproduce errors is to add another group to spec/driver_spec.rb in capybara-webkit. There's a decent amount of infrastructure in there to make it easier to add base cases.
You could also put together a small Sinatra app if you want to start with something smaller.

I also have a small app which I use to reproduce some issues.

Thanks @calleerlandsson @jferris and @mhoran -- I will try and use Matt's example app to reproduce the issue I was having.

I just wrote a minimal test for what I was experiencing when I opened this and everything works fine. I no longer have access to the code that was breaking so I'm going to say this is fixed.

Thanks @brysgo!


AIMA4e implement Fig 25.9 Monte-Carlo-Localization from AIMA3e branch

Dear All,I will try the Monte Carlo localization problem


WIP: add config for display mode (native/xvfb)

Closes #218
Added probe.driver.display config.
Note: full description for this config will be added within the https://github.com/VirtusLab/ide-probe/issues/262https://github.com/VirtusLab/ide-probe/issues/262 related PR

For now not adding unit tests for the probe.driver.display as expected value differs. Now, by deafult we would have:

"native" for local tests
"xvfb" for CI tests on Github Actions (see CI.generateTestScript)

Generally looks good... actually, why are the tests failing on Caused by: java.util.concurrent.CompletionException: java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.? is the change non-compatible?

Generally looks good... actually, why are the tests failing on Caused by: java.util.concurrent.CompletionException: java.awt.AWTError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.? is the change non- compatible? (I'd expect the same behavior wrt. display mode for all cases as it was before, with IDEPROBE_DISPLAY set or not)

Looks like the display = ${?IDEPROBE_DISPLAY} part of config might not be working as expected and in result
val overrideDisplay =
  if (Display.Mode(config.display) == Display.Xvfb) Map("DISPLAY" -> s":${Display.XvfbDisplayId}")
  else Map.empty

evaluates to Map.empty ... ? I'm not sure - just pushed a debug log for testing

Ok, these changes need to wait for https://github.com/VirtusLab/ide-probe/pull/268 to be merged. As for now 3 out of 4 test cases from SingleRunFixtureTest do not use reference.conf but default values from scala code

Tests are successfull now

@lukaszwawrzyk merge?

Sorry, forgot to merge. Done now 👍


[Question] How are we supposed to known the version since 0.4.7?

Question
Since v0.4.7/#304/#305 the tag/version was removed from the regctl version output and replaced with the git revision, e.g.:
VCSRef:     f43ada160d953317c51e7d9170afa2a316f4b9be
VCSCommit:  f43ada160d953317c51e7d9170afa2a316f4b9be

But, how, as a user, am I supposed to quickly known the version?
Version
VCSRef:     f43ada160d953317c51e7d9170afa2a316f4b9be
VCSCommit:  f43ada160d953317c51e7d9170afa2a316f4b9be
VCSState:   clean
VCSDate:    2023-02-26T02:43:41Z
Platform:   linux/amd64
GoVer:      go1.20.1
GoCompiler: gc

Right now I don't have a good solution for this without comparing the commit hash to the tags in the git repo:
$ git show f43ada160d953317c51e7d9170afa2a316f4b9be
commit f43ada160d953317c51e7d9170afa2a316f4b9be (tag: v0.4.7, upstream/releases/0.4, releases/0.4)
Author: Brandon Mitchell<EMAIL_ADDRESS>Date:   Sat Feb 25 21:37:17 2023 -0500

    Release v0.4.7

    Signed-off-by: Brandon Mitchell<EMAIL_ADDRESS>
...

We're currently waiting on a solution from https://github.com/golang/go/issues/50603. If it looks like this won't ever be fixed upstream, then it's possible to go back to injecting tag details with compiler flags.

I agree with @rgl, I don't think it's a good idea to wait on something that may never come. It's a perfectly reasonable expectation to be able to run the-program --version and get the actual version number of the software.


Fixes Connection Dialog from Notebook not closing properly on first click

This PR addresses #13837

Pull Request Test Coverage Report for Build 561974751

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage increased (+0.003%) to 43.471%

Files with Coverage Reduction
New Missed Lines
%

extensions/import/src/wizard/pages/fileConfigPage.ts
1
73.46%

src/sql/workbench/contrib/notebook/browser/notebookActions.ts
1
48.46%

Totals

Change from base Build 561665330:
0.003%

Covered Lines:
24935

Relevant Lines:
52527

💛  - Coveralls

@chlafreniere If we plan to change the select the method in selectBox we should definitely not take this during ask mode. Since I would assume a lot of other methods call select and therefore the potential side effects would be far greater than the current fix.

@chlafreniere If we plan to change the select the method in selectBox we should definitely not take this during ask mode. Since I would assume a lot of other methods call select and therefore the potential side effects would be far greater than the current fix.

@VasuBhog oh certainly shouldn't change any default behaviors for selectbox; adding an optional parameter is one way to mitigate that sort of risk to guarantee that the fix is localized.

We'll use #14283 to fix this. Thanks @VasuBhog!

Sounds good!


EnqueueAction.REPLACE_EXISTING not working

I'm trying to redownload an existing file but getting "UNKNOWN" error from fetch.enqueue.
I'm creating a new request with the same url and file path. If I delete the file first using fetch.delete before calling enqueue it's working fine.
 Request request = new Request(url, getFilePath(url, fileName));
        request.setGroupId(grpId);
        request.setEnqueueAction(EnqueueAction.REPLACE_EXISTING);
        return request;

Just to clarify the both requests are having same url and file path but the request objects are different with exact same properties, I mean all the fields have same value.

Can you share sample code so I can recreate the issue?.

This is the Fetch global config
final FetchConfiguration fetchConfiguration = new FetchConfiguration.Builder(SpaceApp.applicationContext)
                .setDownloadConcurrentLimit(MAX_CONCURRENT_DOWNLOADS)
                .enableAutoStart(false)
                .enableLogging(false)
                .enableRetryOnNetworkGain(false)
                .setProgressReportingInterval(PROGRESS_INTERVAL)
                .setHttpDownloader(new OkHttpDownloader(Downloader.FileDownloaderType.PARALLEL))
                .setNamespace(FETCH_NAMESPACE)
                .build();
        mFetch = Fetch.Impl.getInstance(fetchConfiguration);
         mFetch.setGlobalNetworkType(NetworkType.ALL);
        mFetch.addListener(mFetchListener);

This is how I enqueue the request. here error.toString() returning "UNKOWN"
public void enqueueAndStartDownload(String url, String fileName, int grpId) {
        mFetch.enqueue(getFetchRequest(url, fileName, grpId, true),
                updatedRequests -> {

                },
                error -> {
                    Toast.makeText(this, this.getResources()
                            .getString(R.string.download_err)+". "+error.toString(), Toast.LENGTH_SHORT).show();
                }
        );
    }

    @NonNull
    private Request getFetchRequest(String url, String fileName, int grpId, boolean autoStart) {
        Request request = new Request(url, getFilePath(url, fileName));
        request.setGroupId(grpId);
        request.setEnqueueAction(EnqueueAction.REPLACE_EXISTING);
        request.setDownloadOnEnqueue(autoStart); //true by default.
        return request;
    }

will EnqueueAction.REPLACE_EXISTING remove and start downloading a file that has been already downloaded? Or is it just to control the queue, meaning if an item is queued and not downloaded/started yet then it will replace that item?

@abdurahmanadilovic My understanding was it will override any existing download but instead its failing to enqueue and throwing "UNKNOWN" error

The existing request whether downloading or queued will be removed first and the new request will be enqueued.

@tonyofrancis But it is not replacing the existing download. It is failing to enqueue and giving "UNKNOWN" error. Am I missing something?

found the bug working on a fix

@tonyofrancis It's not working this time the downloaded file is getting deleted then its throwing same "UNKNOWN" error. I uninstalled the app and cleared all previously downloaded files and installed the new apk with updated library.

@tuhin10 are you testing on a device or emulator?

@tonyofrancis on device Samsung S8 and Huawei Honor 8.

@tuhin10 just released a new version of Fetch. 2.2.0-RC7 with loads of fixes. Please let me know if it fixes this issue for you.

@tonyofrancis Thanks for the update. I'm getting the same error response with the latest update(RC8). EnqueueAction.INCREMENT_FILE_NAME is working fine it's creating a new file with a incremented name but EnqueueAction.REPLACE_EXISTING is throwing "UNKNOWN" error. Is the new updated working for you?
If I delete the existing download before en queuing its working fine
        mFetch.delete(existingDownloadedId);
        mFetch.enqueue(getFetchRequest(url, pageUrl, fileName, grpId, false),
                updatedRequests -> {

                },
                error -> {

                }
        );

@NonNull
private Request getFetchRequest(String url, String fileName, int grpId, boolean autoStart) {
        Request request = new Request(url, getFilePath(url, fileName));
        request.setGroupId(grpId);
        request.setEnqueueAction(EnqueueAction.REPLACE_EXISTING);
        request.setDownloadOnEnqueue(autoStart); //true by default.
        return request;
    }


NVDA | Fails Accessibility Prospective

Describe the bug
We are using the "react-datepicker": "^4.2.1", this is working perfectly fine on Windows/Chrome/Jaws. The Calendar is able to be navigated with keyboard and has proper focus order as expected.
It fails for NVDA, a user is not able to choose every next date, focus for them is missing.
To Reproduce
Steps to reproduce the behavior:

Open NVDA to validate
Open the Calendar.
Navigate between dates.
At times, it's skipping the dates. Suppose moving from 16 to next date is taking the navigator to 22 and then 25.

Expected behavior
It shouldn't skip the dates while reading through NVDA.
Desktop (please complete the following information):

OS: Windows
Browser: Chrome NVDA
Version:

NVDA Datepicker issues. Any luck with this yet?

@assach19 It seems that I found the solution. Just use alt + arrow when you select you date.

thanks @JablDouble. That's how we closed our issue and got it closed by third party vendor accepting that alt+arrow key should be fine.
Closing this thread.


Fixes #4; Firefox Nightly Renders Properly; Chromium Does Not Crash

Working off of the gh-pages and git bisect-ing to a solution, this resolves making Firefox work on master in the smallest way. It looks like calling on screen.orientation functions without checking to see if it exists first were the issue.
Note that while the gh-pages also has this fix, that branch still fails for Chromium. This appears due to a problem with handling SVG in the Chromium build I was using (Brandon's latest build).
In breaking out this fix I hope it can help move the boilerplate forward until the reasons for the Chromium errors with SVG could be addressed.
Thanks!

Thanks Rudy. I've made a couple of changes to the boilerplate which make this obsolete. master and gh-pages should be working in FF nightly.

Great! Also works for Chromium? That was crashing out on the gh-page branch as I mentioned.
Thanks again!
-RJ
On Mon, Mar 9, 2015 at 9:05 PM, Boris Smus<EMAIL_ADDRESS>wrote:

Thanks Rudy. I've made a couple of changes to the boilerplate which make this obsolete. master and gh-pages should be working in FF nightly.
Reply to this email directly or view it on GitHub:
https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-77992649

I will test it on the Chromium build when a new one is pushed out. Did you
test on desktop or Android?
On Mon, Mar 9, 2015 at 9:11 PM, Rudy Jahchan<EMAIL_ADDRESS>wrote:

Great! Also works for Chromium? That was crashing out on the gh-page
branch as I mentioned.
Thanks again!
-RJ
On Mon, Mar 9, 2015 at 9:05 PM, Boris Smus<EMAIL_ADDRESS>wrote:

Thanks Rudy. I've made a couple of changes to the boilerplate which make
this obsolete. master and gh-pages should be working in FF nightly.
Reply to this email directly or view it on GitHub:

https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-77992649
—
Reply to this email directly or view it on GitHub
https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-77993086
.

Desktop chromium (the dec 2015 build). Only Android tests were done with the standard chrome browser in Cardboard.
-RJ
On Wed, Mar 11, 2015 at 7:55 PM, Boris Smus<EMAIL_ADDRESS>wrote:

I will test it on the Chromium build when a new one is pushed out. Did you
test on desktop or Android?
On Mon, Mar 9, 2015 at 9:11 PM, Rudy Jahchan<EMAIL_ADDRESS>wrote:

Great! Also works for Chromium? That was crashing out on the gh-page
branch as I mentioned.
Thanks again!
-RJ
On Mon, Mar 9, 2015 at 9:05 PM, Boris Smus<EMAIL_ADDRESS>wrote:

Thanks Rudy. I've made a couple of changes to the boilerplate which make
this obsolete. master and gh-pages should be working in FF nightly.
Reply to this email directly or view it on GitHub:

https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-77992649
—
Reply to this email directly or view it on GitHub
https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-77993086
.

Reply to this email directly or view it on GitHub:
https://github.com/borismus/webvr-boilerplate/pull/5#issuecomment-78415216

Am also seeing crashes in Chromium, on Mac. Latest Dec 2015 build. Crash reporter indicates Crashed thread is "17  Chrome_IOThread", if that helps.

@borismus Like @jcarpenter this crashes out on the latest Chromium WebVR from Brandon (again Dec 30th, 2014), on page load. When I did a git bisect to figure out when the error was introduced, it seemed related to SVG icons. Chrome doesn't seem to have an issue, so probably more an issue with Brandon's build than the boilerplate code. I am going to close this and se if another workaround is possible.

@borismus Found the issue. webkitFilter and filter are NOT supported on SVG elements for Chrome and Safari; if you open the bootstrap in those browsers no icon is present, even the "Incompatible" variation. Unfortunately in Chromium, it causes a crash out if you use the webkitFilter. I filed an issue with Chrome WebVR.
As a side-note, if you use filter instead of webkitFilter, the crash out behavior is prevented, but like Chrome and Safari no icons are present.


[joiner] check for non-zero joiner UDP port before electing a joiner router

An invalid Discovery Response that carries no Joiner UDP Port TLV will be accepted by the joiner, but we shouldn't qualify it as a valid joiner router since we can only open a connection with a non-zero port.

cc @jwhui @abtink @edmont @JaneFromSilabs @romacdon

@EskoDijk and I had a discussion on the Thread Group JIRA where I opened an issue with TC 5.2.4.
TC 5.2.4 is going to be waived / removed from the test specification as it tests for CCM-network capabilities which OpenThread does not provide anymore (AE / NMKP port TLVs etc.).
The spirit of this PR was to ensure that a non-CCM joiner cannot join a CCM network. But we discussed that we can never actually make that decision based on the joiner UDP port. Rather it should depend on whether the steering data allows us to join. The decision to remove or clear the steering data should be made by the commissioner and not if we're a CCM network or not. In this case, it would be the test harness that would make such a decision on the commissioner role -- however this test is going to be removed anyway.
I reduced the scope of this PR to a simple change -- only initiate joining / accept a joiner router if they include a valid (non-zero) joiner UDP port TLV.
cc @jwhui @abtink

@suveshpratapa Agree with the proposed update (single line) in joiner.cpp. As I understand it, the member var mJoinerUdpPort will be initialized with 0 when creating a new ScanResult. Only when an actual Joiner UDP Port TLV is received, with a >0 value, will the value mJoinerUdpPort be set to > 0. So this looks correct. I can't change my review result it seems, but it's Approved.

Thank you @EskoDijk !

Can we merge this now?


zuul proxy changes order of query params

When forwarding requests using the SimpleHostRoutingFilter query parameters are first parsed to a map and afterwards reconstructed when forwarding. This leads sometimes to re-ordering and the query ?edit&p1=v1 may accidentally be changed to ?p1=v1&edit.
This should usually not be a problem, but some legacy applications expect the parameters in the query string to have a certain order. The patches re-uses the original query string when forwarding requests to ensure compatibility with these applications.

I had to revert this change because it caused some test failures. Can you look into it please?

Hi,
sorry for the long reply time. I have looked into the issue and there is a conflict between the "classic" behaviour (parse and filter the query parameters) and the behaviour required in this use case (pass the query string through as it is).
I'm currently working on a proposal, which should be done next week.
Greetings,
Nicolas

ping @nbyl

@spencergibb Sorry for the delay. I have checked the code but the problem is currently not solvable. The parameters are mixed together inside the netflix stack. They are passed back as a map containing no information about the original order. So there is currently no way to solve this in SimpleHostRoutingFilter as I have tried here.
We have solved this using custom zuul filter that bypasses all filtering done insinde the current code and forwards the stuff directly to the target. Are you interested to have this feature in the project?

Related to my last comment here https://github.com/spring-cloud/spring-cloud-netflix/issues/971

Closing

there is currently no way to solve this in SimpleHostRoutingFilter as I have tried here


Docs for upgrades between minor and major versions

Thank you for maintaining this repo.
I am looking for steps/recommendations for upgrading between minor versions and major versions.
I am guessing that upgrading between minor versions is as simple as changing the container image, i.e. postgres:13.2 -> postgres:13.4.
Now that the official image for Postgres 14 is available, are there any steps that need to be followed to go from postgres:13.2 -> postgres:14.0 ?
Cheers.

Ok, I have noted these steps and will keep an eye out for availability of the automation.
Once again, thank you for maintaining this repo.

@alex-arica , sorry for re-opening this issue but wanted to clarify something for upgrading between minor versions.
The steps provided above is that for both major and minor version upgrades?
I tried to upgrade from 14.0 -> 14.1.
These are the steps I followed:

Upgraded operator from 1.12 to 1.13.

kubectl apply -f https://raw.githubusercontent.com/reactive-tech/kubegres/v1.13/kubegres.yaml

I changed the image name to 14.1

# my-postgres.yaml

apiVersion: kubegres.reactive-tech.io/v1
kind: Kubegres
metadata:
  name: mypostgres
  namespace: default

spec:

   replicas: 3
   image: postgres:14.1

   database:
      size: 200Mi

   env:
      - name: POSTGRES_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: superUserPassword

      - name: POSTGRES_REPLICATION_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: replicationUserPassword

kubectl apply -f my-postgres.yaml

Only 1 of the replicas got upgraded. Did I miss something or are the steps the same as upgrade for major version?

The upgrade of minor version should work. Postgres allows to upgrade between minor versions.
In our  use case, what may have happened is the 1st Pod which was upgraded had an issue and Kubegres did not continue the upgrade. For safety reason, Kubegres upgrades a replica first, if it does not work, it will stop the upgrade and log that the failing pod should be investigated manually.
Do you you have the logs of the Kubegres controller?
To read the logs, you can follow those steps:
kubectl get all -n kubegres-system
kubectl logs pod/kubegres-controller-manager-[to replace] -c manager -n kubegres-system -f

kubectl get all -n kubegres-system

NAME                                               READY   STATUS    RESTARTS   AGE
pod/kubegres-controller-manager-6887874b9d-f7c4m   2/2     Running   0          41h

NAME                                                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/kubegres-controller-manager-metrics-service   ClusterIP   <IP_ADDRESS>   <none>        8443/TCP   34d

NAME                                          READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/kubegres-controller-manager   1/1     1            1           34d

NAME                                                     DESIRED   CURRENT   READY   AGE
replicaset.apps/kubegres-controller-manager-6887874b9d   1         1         1       41h
replicaset.apps/kubegres-controller-manager-75b6765589   0         0         0       34d

Logs are too big when I run kubectl logs pod/kubegres-controller-manager-6887874b9d-f7c4m -c manager -n kubegres-system -f. Pasting only the error that I see a lot in the logs.
ERROR   controllers.Kubegres    Last Spec enforcement attempt has timed-out for a StatefulSet. You must apply different spec changes to your Kubegres resource since the previous spec changes did not work. Until you apply it, most of the features of Kubegres are disabled for safety reason.     {"StatefulSet's name": "postgres-3", "One or many of the following specs failed: ": "Resources: &ResourceRequirements{Limits:ResourceList{cpu: {{1 0} {<nil>} 1 DecimalSI},memory: {{1073741824 0} {<nil>} 1Gi BinarySI},},Requests:ResourceList{cpu: {{5 -1} {<nil>}  DecimalSI},memory: {{524288000 0} {<nil>} 500Mi BinarySI},},}", "error": "Spec enforcement timed-out"}

I made sure there is enough CPU and memory.
I also reduced CPU to 200m and re-applied just to see what would happen:
DEBUG   controller-runtime.manager.events       Normal  {"object": {"kind":"Kubegres","namespace":"postgres","name":"postgres","uid":"7af18b13-af77-4271-81e6-1e2b6c29dd9c","apiVersion":"kubegres.reactive-tech.io/v1","resourceVersion":"32256132"}, "reason": "StatefulSetOperation", "message": "The Spec is NOT up-to-date for a StatefulSet. 'StatefulSet name': postgres-3, 'SpecName': Resources, 'Expected': &ResourceRequirements{Limits:ResourceList{cpu: {{1 0} {<nil>} 1 DecimalSI},memory: {{1073741824 0} {<nil>} 1Gi BinarySI},},Requests:ResourceList{cpu: {{2 -1} {<nil>}  DecimalSI},memory: {{524288000 0} {<nil>} 500Mi BinarySI},},}, 'Current': &ResourceRequirements{Limits:ResourceList{cpu: {{1 0} {<nil>} 1 DecimalSI},memory: {{1073741824 0} {<nil>} 1Gi BinarySI},},Requests:ResourceList{cpu: {{200 -3} {<nil>} 200m DecimalSI},memory: {{524288000 0} {<nil>} 500Mi BinarySI},},}"}

Please let me know if you need more info.
Thanks for helping out.

Thank you for those details.
Looking to the logs it seems like the issue is not because Postgres image was upgraded but because of the contents of the field "resources" in the YAML of "kind: Kubegres".
Could you please share the contents of the YAML containing the configuration of the Postgres cluster?
Could you please share the logs of the Pod "postgres-3" ?

I used the same resource values below when I first set it up.
apiVersion: kubegres.reactive-tech.io/v1
kind: Kubegres
metadata:
  name: postgres
  namespace: postgres

spec:

  replicas: 3
  image: postgres:14.1

  database:
    size: 20Gi
    storageClassName: postgres-nfs

  resources:
    limits:
      memory: "1Gi"
      cpu: "1"
    requests:
      memory: "500Mi"
      cpu: "0.5"

  failover:
    isDisabled: false

  backup:
    schedule: "45 */1 * * *"
    pvcName: postgres-backup
    volumeMount: /var/lib/backup

  env:
    - name: POSTGRES_PASSWORD
      valueFrom:
          secretKeyRef:
            name: postgres
            key: superUserPassword

    - name: POSTGRES_REPLICATION_PASSWORD
      valueFrom:
          secretKeyRef:
            name: postgres
            key: replicationUserPassword

Logs from postgres-3
kubectl logs -f postgres-3-0 -n postgres

PostgreSQL Database directory appears to contain a database; Skipping initialization

2021-11-16 20:57:11.240 GMT [1] LOG:  starting PostgreSQL 14.1 (Debian 14.1-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
2021-11-16 20:57:11.240 GMT [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
2021-11-16 20:57:11.240 GMT [1] LOG:  listening on IPv6 address "::", port 5432
2021-11-16 20:57:11.242 GMT [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
2021-11-16 20:57:11.267 GMT [25] LOG:  database system was shut down in recovery at 2021-11-16 20:57:06 GMT
2021-11-16 20:57:11.269 GMT [25] LOG:  entering standby mode
2021-11-16 20:57:11.280 GMT [25] LOG:  redo starts at 1/137D3828
2021-11-16 20:57:11.280 GMT [25] LOG:  consistent recovery state reached at 1/137D3910
2021-11-16 20:57:11.280 GMT [25] LOG:  invalid record length at 1/137D3910: wanted 24, got 0
2021-11-16 20:57:11.281 GMT [1] LOG:  database system is ready to accept read-only connections
2021-11-16 20:57:11.296 GMT [29] LOG:  started streaming WAL from primary at 1/13000000 on timeline 1

Thank you for those details.
From those log details, I am not able to find the root cause of the issue that you are experiencing.
I will try reproducing this issue on my local environment by reusing the YAML that you shared. I will let you know once I have more info.
The steps that I will follow will be:

using Kubegres release a cluster of Postgres with the YAML that you shared but setting the image to 14.0
once the cluster is running, I will update the YAML by setting image to 14.1

Please let me know if the steps above are the ones that you followed before experiencing this issue.

@alex-arica ,
I Installed operator Kubegres 1.12 and Postgres 14.
I upgraded operator to 1.13 and changed Postgres to 14.1.
After deploying 14.1 since I ran into the issue, I modified CPU values from 0.5 to 0.2 and back to 0.5.

I released a cluster of 3 Postgres pods with the following YAML :
apiVersion: kubegres.reactive-tech.io/v1
kind: Kubegres
metadata:
  name: mypostgres
  namespace: default
spec:

  replicas: 3
  image: postgres:14
  #port: 5432

  database:
    size: 200Mi

  env:
    - name: POSTGRES_PASSWORD
      valueFrom:
        secretKeyRef:
          name: mypostgres-secret
          key: superUserPassword

    - name: POSTGRES_REPLICATION_PASSWORD
      valueFrom:
        secretKeyRef:
          name: mypostgres-secret
          key: replicationUserPassword

Once the 3 pods were running as expected, I updated the YAML above by setting:  image: postgres:14.1. Kubegres has upgraded all pods from version 14 to 14.1. Looking to the logs all pods are running fine.
I could not reproduce the issue that you reported about version upgrade.
I suggest that you try using the minimum configuration, as the YAML above. Then you can add more options in the YAML by steps, until it fails. That way you can identify the specific configuration which fails.
Please let me know if you need any help.

@alex-arica , ok, so the upgrade from 14.0 to 14.1 worked as soon as I got rid of the resources section in the yaml.
Hmmm, looks like a bug which causes the upgrade to fail if the resources section is present?

Thank you for reporting this. I've spent few hours to understand why when a field ''resources'' contains a decimal point, it would be an issue when updating it.
For example, when creating a resource of kind: Kubegres, if the following value for cpu contains a decimal point:
...
requests:
      cpu: "0.5"
      memory: "500Mi"

Then when creating the resource of kind: Kubegres, Kubernetes would reformat that decimal point value to:
...
requests:
      cpu: "500m"
      memory: "500Mi"

Which is fine and works ok. However, after the creation of the resource, when we edit that cpu value to another decimal value, such as:
requests:
      cpu: "0.4"
      memory: "500Mi"

Kubernetes would keep the cpu value as above with 0.4 rather than 400m for the resource of kind: Kubegres. However, when Kubegres operator sets that new cpu value to the StatefulSet they get formatted as follows:
requests:
      cpu: "400m"
      memory: "500Mi"

So the equality comparaison fails.
I made a change whith the equality check and the changes are available with Kubegres version 1.14. I have not released it officially yet.
To install it and test it please run:
kubectl apply -f  https://raw.githubusercontent.com/reactive-tech/kubegres/main/kubegres.yaml

Please let me know if it works for you with your parameters. Once you confirmed it, I will release the version 1.14 of Kubegres.


update examples

Description
Core part of https://github.com/inmanta/lsm/pull/816
closes Add ticket reference here
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Merged into branches master in 168c10034555011029c4567fd23de0d942e3c51d

Processing #8160.


Add Accordion component

:tada: This issue has been resolved in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Add AMP support

After a little research I will decide against this. The trade-offs are too big and my page is very fast nevertheless.


simplified sample's interface (remove odd "no processing" branch, add…

… print to screen for processing mode)

@alalek @SergeySivolgin please take a look on some minor changes in dx-interop samples

closed, due to mistake with branch


404 Errors in Windows

I've installed python-influxdb on my windows machine running python 2.7.9.  Installation was successful, but issuing any influxDB command results in a 404 page not found error.  The server is accessible and commands work using python-influxdb on Linux, but failed on two different windows PCs, one running Win 8.1 and the other running Windows Server 2008.
C:\InfluxDB>python
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.

from influxdb import InfluxDBClient
json_body = [
... {
...     "name" : "cpu_load_short",
...     "tags" : {
...             "host": "server01",
...             "region": "us-west"
...     },
...     "timestamp":"2009-11-10T23:00:00Z",
...     "fields": {
...             "value": 0.64
...     }
... }
... ]
client = InfluxDBClient('<IP_ADDRESS>', 8086, 'root','root','example')
client.create_database('example')
Traceback (most recent call last):
File "", line 1, in
File "build\bdist.win-amd64\egg\influxdb\client.py", line 305, in create_database
File "build\bdist.win-amd64\egg\influxdb\client.py", line 227, in query
File "build\bdist.win-amd64\egg\influxdb\client.py", line 191, in request
influxdb.client.InfluxDBClientError: 404: 404 page not found

What version of InfluxDB are you using?
The README should fix your problem. It looks like you are using InfluxDB 0.8 with the wrong InfluxDBClient. If you are using InfluxDB 0.8, you should use influxdb.influxdb08.InfluxDBClient.

Wow. Guess I was in the wrong place, right time. My Linux python influx was the old version and both windows PCs were the new version. That fixed it, thanks!
-----Original Message-----
From: "Alexandre Viau"<EMAIL_ADDRESS>Sent: 3/27/2015 11:33 AM
To: "influxdb/influxdb-python"<EMAIL_ADDRESS>Cc: "fowie"<EMAIL_ADDRESS>Subject: Re: [influxdb-python] 404 Errors in Windows (#137)
What version of InfluxDB are you using?
The README should fix your problem. It looks like you are using InfluxDB 0.8 with the wrong InfluxDBClient. If you are using InfluxDB 0.8, you should use influxdb.influxdb08.InfluxDBClient.
—
Reply to this email directly or view it on GitHub.

Have a good day :)


Cannot compile standalone example on macOS

Hi,
I am interested in using the Yggdrasil library for a C++ project, but I am having issues compiling the dylib on macOS.
In fact, I am not even able to compile the standalone example provided. Given the latest commit (as of Dec 18), I have tried modifying the compile_and_run.sh file so that line 29 reads:
bazel build --config=macos //:beginner_cc

Nevertheless, I get an error related to @org_tensorflow being unresolvable:
(...)
[1 / 1] checking cached actions
 665   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 666   │     Fetching repository @@rules_java; starting
 667   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 668   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 669   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 670   │ ERROR: no such package '@@org_tensorflow//tensorflow/core': The repository '@@org_tensorflow' could not be resolved: Repository '@@org_tensorflow' is not defined
 671   │ Analyzing: target //:beginner_cc (109 packages loaded, 663 targets configured)
 672   │     currently loading: @@com_google_protobuf//
 673   │ [1 / 1] checking cached actions
 674   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 675   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 676   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 677   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 678   │ ERROR: /private/var/tmp/_bazel_c.cardona/e5bb2b2198d9d78378b014e5c1a97558/external/ydf/yggdrasil_decision_forests/dataset/tensorflow/BUILD:8:15: no such package '@@org_tensorflow//t
       │ ensorflow/core': The repository '@@org_tensorflow' could not be resolved: Repository '@@org_tensorflow' is not defined and referenced by '@@ydf//yggdrasil_decision_forests/dataset/t
       │ ensorflow:tensorflow'
 679   │ Analyzing: target //:beginner_cc (109 packages loaded, 663 targets configured)
 680   │     currently loading: @@com_google_protobuf//
 681   │ [1 / 1] checking cached actions
 682   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 683   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 684   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 685   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 686   │ ERROR: Analysis of target '//:beginner_cc' failed; build aborted: Analysis failed
 687   │ Analyzing: target //:beginner_cc (109 packages loaded, 663 targets configured)
 688   │     currently loading: @@com_google_protobuf//
 689   │ [1 / 1] checking cached actions
 690   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 691   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 692   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 693   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 694   │ INFO: Elapsed time: 58.465s, Critical Path: 0.14s
 695   │ Analyzing: target //:beginner_cc (109 packages loaded, 663 targets configured)
 696   │     currently loading: @@com_google_protobuf//
 697   │ [1 / 1] checking cached actions
 698   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 699   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 700   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 701   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 702   │ INFO: 1 process: 1 internal.
 703   │ Analyzing: target //:beginner_cc (109 packages loaded, 663 targets configured)
 704   │     currently loading: @@com_google_protobuf//
 705   │ [1 / 1] checking cached actions
 706   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 707   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 708   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 709   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 710   │ ERROR: Build did NOT complete successfully
 711   │ FAILED:
 712   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 713   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 714   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 715   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz
 716   │ FAILED:
 717   │     Fetching repository @@bazel_tools~cc_configure_extension~local_config_cc; starting
 718   │     Fetching https://github.com/boostorg/math/archive/refs/tags/boost-1.83.0.tar.gz
 719   │     Fetching https://github.com/protocolbuffers/protobuf/archive/refs/tags/v3.19.6.zip
 720   │     Fetching https://github.com/bazelbuild/rules_java/releases/download/6.0.0/rules_java-6.0.0.tar.gz

I saw that in line 19 of WORKSPACE there is a flag that seems to exclude tensorflow from the workspace, so I tried removing that. Unfortunately, it did not solve the issue and a similar error related to tensorflow popped up. I have admittedly little idea of how bazel works and would appreciate any help you could provide. Thank you!

Hi, thanks for reporting this, that's a documentation bug / a bug in the compile_and_run script.
If you do not need TensorFlow support (i.e. TFRecord files), you can compile with
# running from the top directory of the repository
bazel build --config=macos  --define=use_ydf_tensorflow_proto=1 //examples:beginner_cc
./bazel-bin/examples/beginner_cc   --dataset_dir=yggdrasil_decision_forests/test_data/dataset   --output_dir=/tmp/yggdrasil_decision_forest

If you need TensorFlow support, you need to override the WORKSPACE file with WORKSPACE_WITH_TF, i.e.
# running from the top directory of the repository
cp WORKSPACE_WITH_TF WORKSPACE
bazel build --config=macos  //examples:beginner_cc
./bazel-bin/examples/beginner_cc   --dataset_dir=yggdrasil_decision_forests/test_data/dataset   --output_dir=/tmp/yggdrasil_decision_forest

Compilation with TensorFlow support will take more time (just downloading TF + dependencies probably takes a few minutes).
I'll keep this open until the documentation and script are updated.


Request for the documentation of a typical ViewModel/Controller implementation

As the title says would like to have an official example how to implement a typical view model/controller implementation. Basically Creator version of this documentation: https://riverpod.dev/docs/providers/state_notifier_provider/
This is to facilitate easier transition (by having reference documentation) for people wishing to refactor from other state management solutions (eg bloc).
Aside: I keep automatically trying to access creator via a non existing .value getter as if it was a hook or observable.

Hi @Kypsis , the way I typically do it is by using a logic file to represent the ViewModel / controller layer. Using Decremental counter as an example, if we change increment to addTodo, then it is exactly what StateNofifierProvider does in your link.
Another example would be the DartPad. If using bloc, I would probably put loading and news inside one NewsState object, then either use freeze or define copyWith to mutate the object. I feel that's a little bit boilerplate without real gain.
Let me know what you think. If you are happy with these, I can make the doc more obvious.
As for .value getter, did you use mobx or getx? To implement that, I guess we need some kind of global state to track which observable is under recreation. You can check out the "Use subscription" section in my article here. I don't feel creator could/should do that, but happy to hear what is in your mind.

From my pov the bigger issue is namespaces. I've been to React/RN projects where these atomic state enablers (useState/proxy/create/whatever) usually mean you have singular values bound to singular identifier. And unless you enforce a very strict naming schema it becomes very messy fast, especially with complex interconnected domains. So I guess my question is using an example from Valtio from JS land: https://github.com/pmndrs/valtio/wiki/How-to-organize-actions If we can do the first example and probably second, how can we achieve the 5th result (last one with class, 3rd and 4th are undoable since Dart has no anonymous objects like JS or Kotlin).

If the namespace is a concern, how about just wrapping them into a class and using static variables?
class News {
  static final _page = Creator.value(0);
  static void fetchMore(Ref ref) => ref.update<int>(_page, (n) => n + 1);

  // Loading indicator.
  static final loading = Creator.value(true);

  // News fetches next page when _page changes.
  static final news = Emitter<List<String>>((ref, emit) async {
    ref.set(loading, true);
    final next = await fetchNews(ref.watch(_page));
    final current = ref.readSelf<List<String>>() ?? [];
    emit([...current, ...next]);
    ref.set(loading, false);
  });
}

... News.fetchMore(ref)

If you don't like static variables, then you can make it plain variables and then create an instance:
class News {
  final _page = Creator.value(0);
  void fetchMore(Ref ref) => ref.update<int>(_page, (n) => n + 1);

  // Loading indicator.
  final loading = Creator.value(true);

  // News fetches next page when _page changes.

  late final data = Emitter<List<String>>((ref, emit) async {
    ref.set(loading, true);
    final next = await fetchNews(ref.watch(_page));
    final current = ref.readSelf<List<String>>() ?? [];
    emit([...current, ...next]);
    ref.set(loading, false);
  });
}

final news = News();

... news.fetchMore(ref)

In either approach, it is just how to organize Dart code. There is no magic behind it.

Though I might miss something about hook like usability. I'm not super familiar with the React hooks.

Hah the static field one is brilliantly simple way to address namespace. It very well exemplifies how it is sometimes very hard to get out of the mindset that everything has to be instantiated when doing OOP.
For the second example, how do you optimally watch for say the loading or data value in Watcher. At the moment I have
final news = Creator.value(News());

...
Watcher((context, ref, _) => Text(ref.read(news.map((state) => ref.watch(state.data)[0]))))

which seems kinda clunky way to access the field and have it rebuild the widget. This is the use-case I meant when I said it would be nice to have .value getter eg ref.watch(news.value.data)[0].

The example above, I use a global variable final news = News();. The reason is that news object doesn't really need to interact with the graph. Testability is also fine, since in the test, you can do something like ref.set(news.loading, false).
If you really want to put that in the graph, use the graph as a service locator.
final newsCreator = Creator.value(News(), keepAlive: true);

...
Watch ( (context, ref, _) {
  // Just get it, no need to watch it. It doesn't change anyway.
  final news = ref.read(newsCreator);

  // Watch the list of news, then render the data somehow, e.g. into a list view.
  final data = ref.watch(news.data);

  return ListView(...);
});

Now I see where I went wrong and why I asked hopefully not too obvious questions. I was trying to do:
Widget build(BuildContext context) {
final levelStateCreator =
        Creator((ref) => LevelState(ref, onWin: _playerWon, goal: widget.level.difficulty));

...
Watcher((context, ref, child) {
  return Slider(
    label: 'Level Progress',
    autofocus: true,
    value: ref.watch(ref.read(levelStateCreator).progress) / 100,
    onChanged: (value) => ref.read(levelStateCreator).setProgress((value * 100).round()),
    onChangeEnd: (value) => ref.read(levelStateCreator).evaluate(),
  );
}),
...

and wondering why on earth is the slider not updating. Adding keepAlive fixed it. There is also a subtle "bug" with using the class version and instantiating it that way. On route change the slider resets to 0. That bug is not present when using the non service locator pattern variants.
Overall the issues I've had so far seems to be of the pbkac kind. I see great potential for this library as it is I think the only state management one for Flutter that truly allows for bottom-up state management (as described in this article: https://frontendmastery.com/posts/the-new-wave-of-react-state-management/). I think with some effort one could create a solution using Creator that covers the use-cases that the hugely popular react_query solves in the React land and other ways to effectively create black-box abstractions to cover repetitive use-cases (looking at you ddd with bloc where you can potentially write over 1k lines and touch/create 10s of files just for a simple API call over and over again).
Maybe the only real suggestion to give would be to align the documentation with what Zustand, Recoil, Jotai and Valtio in JS land are doing as it seems Creator can potentially fill the same problem space niche in Flutter.

As for the example, it seems you put a creator variable inside the build function. If that's the case, be really careful and read the https://github.com/liangxianzhe/creator#creator-equality section.
As for the bottom-up, I'm not so sure how to improve doc since I'm not familiar with all these :) If you have more actionable ideas, let me know. Though from what I know, vuejs and solidjs also work similarly, meaning they also use a fine-grain reactive model.


Add missing state "Uninstalling"

I missed this state in #43

You forgot to expand the tests! :)

Oops you're right, I forgot that statehas package tests 😓
That being said, test TestDistroState (in distro_test.go) cannot be expanded because the state comes and goes too fast. So I'll limit miself to the parsing and the String tests.


What we do

https://www.merative.com/healthcare-analytics
https://www.merative.com/clinical-decision-support
https://www.merative.com/clinical-development
https://www.merative.com/clinical-development/case-studies
https://www.merative.com/social-program-management
https://www.merative.com/social-program-management/case-studies
https://www.merative.com/real-world-evidence
https://www.merative.com/merge-imaging
https://www.merative.com/merge-imaging/imaging-case-studies
https://www.merative.com/merge-imaging/cardiology
https://www.merative.com/merge-imaging/radiology
https://www.merative.com/merge-imaging/partner-innovations

@VladimirZaets did you finish building out all these pages?

@amol-anand no, I working on they

@VladimirZaets - While you are building the What we do section , Could you please validate couple of things ?

The Teaser List component is not rendering as expected
The grid layout is adding white space which is adding a horizontal scroll for the page in the breakpoint > 768

Update:
Volodymyr Zaiets
[@amol]
hi, please take a look on my PR. I completed all 12 pages from this ticket https://github.com/hlxsites/merative/issues/126 (


Forward/backward search with f/F

For me the most useful vim commands are f and F for quickly moving to a specific part of the line. Would be great if these could be added!

@MilesCranmer e245867 adds support for f, F, t and T!
I'll close this issue once these motion commands work with operators, e.g. cfx or dtf

Awesome, thanks!


Remove wee_alloc dependency

wee_alloc has a security advisory (RUSTSEC-2022-0054). It looks like you recently removed it from the examples, this just finishes the job by removing it from the leptos_dom cargo.toml since it's not actually in use.

Great catch, thanks!


frum cannot set local / global version

I'm not having any success with setting either a local or global version of frum. After going through the installation process detailed here, setting by .bashrc to initialize frum, and installing ruby 3.1.1, I try to set the global version, but still get the system ruby:
$ frum global 3.1.1
$ frum versions
  3.1.1
$ ruby -v
  ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17]

When trying to set the local version, I get this:
$ frum local 3.1.1
  error: We can't find the necessary environment variables to replace the Ruby version.

My machine is a mid-2009 Macbook Pro, running High Sierra 10.13.6
What am I doing wrong here? Thanks!

I had this happen aswell.
If I manually called eval "$(frum init) immediately after calling frum local <version>, it would work.
I also noticed that this behaviour only happened when I didn't manually set the global ruby version with frum global. I suspect there's some logic that implicitly depends on there being a global ruby version.

Restarting the shell is very important here. If you don't, ruby -v will still give the old version.


Elements of markdown not supported by Text layout Element

Hello,
with Superset 3.1.1 (and previous), the layout element "Text" does not support markdown syntax for:
• syntax highlighting of code blocks
• the borders of a table
Screenshot

Markdown
The markdown source is joined
source.md
Regards

I think we use the python markdown lib, on the main branch that's currently markdown==3.6. We would support what they support, and while our requirements/base.txt pins the lib at a specific version, you're free to upgrade to another version ahead of the pinned one. Our pyproject.toml says "markdown>=3.0", meaning you can pip upgrade markdown in your local builds

Much of this can be styled as well, so you can (re)add the borders on tables and things like that with dashboard css templates. There are a few examples here.

See their changelog here -> https://python-markdown.github.io/changelog/ . If there are features you'd like to see in Superset around markdown support, it has to go through that library.

Thanks for yours responses.
I test a markdown file with the library :
import markdown

with open("my_markdown.md", "r", encoding="utf-8") as input_file:
    text = input_file.read()
html = markdown.markdown(text, extensions=['tables', 'fenced_code'])

with open("my_markdown_output.html", "w", encoding="utf-8", errors="xmlcharrefreplace") as output_file:
    output_file.write(html)

The rendering is identical to that of Superset. For visual customization, I'll look at the CSS. Thanks again


Add option to select unpin behavior

Add user option to specify the behavior when the selected note is unpinned from the tabs.
Selectable values:

KEEP_SELECTED - current behavior, selected note is unpinned and replaces temporary tab
SELECT_LAST_ACTIVE - selected note is completely removed from tabs and the last edited note is selected
SELECT_ADJACENT - same behavior for current selected note  as SELECT_LAST_ACTIVE, but new selected note will be either the left or right adjacent note. Depending on which exists. Where the left one is preferred.

Waiting for this discussion.

Waiting for this discussion.

can we have a option to do like this,  when I click a note not in the tabs, it can create a new tab and show it (like chrome)...
currently it always replaces the last unpinned one.

@pianoboysai: I'm not quite sure if I understood you correctly. Do you know the command Tabs: Pin note? This is used to pin a note directly to the tabs. It can be called from the context menu for any note (must not be the selected one). However, it does not automatically select (open) the note.
Is this what you mean? When selecting a note, pin it directly and not open it as a temporary tab?

@pianoboysai: I'm not quite sure if I understood you correctly. Do you know the command Tabs: Pin note? This is used to pin a note directly to the tabs. It can be called from the context menu for any note (must not be the selected one). However, it does not automatically select (open) the note.
Is this what you mean? When selecting a note, pin it directly and not open it as a temporary tab?

Hi benji300, what I mean is, when I select a note in sidebar, directly open it in a new tab （just like chrome）, do not replace content in current pined tab.

I've created a new ticket #35 for this.


Indexing symbol packages and URL for Symbol file locations in Visual Studio

Hi,
I am currently testing SymbolSource on localhost at - https://localhost/SymbolSource.Server/
I can push the packages using source URL - https://localhost/SymbolSource.Server/api/v2/package
Pushing packages created some folder and files. The nupkg files names had some Guid value and running 'nuget list -prerelease -allversions -source https://localhost/SymbolSource.Server/,all,new' gave me result as:
47bdf8da-30d3-4bc1-b3bc-8eb2019f0fd9 1.0.0-unknown
c7a283fb-ea53-4344-8a7c-6c331a8a402a 1.0.0-unknown
ded1f2b2-6e08-44dd-9d7b-eb6e0f34a738 1.0.0-unknown
Based on #1 , it seemed like I needed to run SymbolSource.Processor.Console. I set the FileStorage.RootPath, PackageProcessor.ServerUrl and PackageProcessor.BatchSize before running the console app. After that, running the nuget list command 'nuget list -prerelease -allversions -source https://localhost/SymbolSource.Server/,all,original' gave me the result as:
AssemblyNameRemoved1 1.5.0-at-2ECAMH
AssemblyNameRemoved2 1.5.0-at-2ECAMH
AssemblyNameRemoved3 1.18.0-at-2ECAMH
I have purposely removed the assembly names here. Can you please let me know what I need to do so they get indexed successfully? If there is any documentation, can you please point me to that?
Can you also please confirm the final URL I can use in Visual Studio to add the symbol file location?
Will I have to run the SymbolSource.Processor.Console everytime a new symbols package is pushed?

Hi,
I tried running the console application again with newly uploaded package and noticed that I get an error as:
Error while indexing package AssemblyNameRemoved/1.18.0-at-2EGCMR:
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
at Microsoft.Cci.Pdb.MsfDirectory..ctor(PdbReader reader, PdbFileHeader head, BitAccess bits)
at SymbolSource.Processor.Legacy.SymbolStoreManager.ReadHashInternal(String pdbFileHash) in SymbolSource.Processor\Legacy\SymbolStoreManager.cs:line 28
at SymbolSource.Processor.Legacy.StreamExtensions.Execute[T](Stream stream, Func2 action, String fileName) in SymbolSource.Processor\Legacy\StreamExtensions.cs:line 43    at SymbolSource.Processor.Legacy.StreamExtensions.Execute[T](Stream stream, Func2 action) in SymbolSource.Processor\Legacy\StreamExtensions.cs:line 30
at SymbolSource.Processor.Legacy.SymbolStoreManager.ReadHash(Stream stream) in SymbolSource.Processor\Legacy\SymbolStoreManager.cs:line 12
at SymbolSource.Processor.Legacy.Projects.AddInfoBuilder.BuildBinaryInfo(IList1 fileInfos, IPackageEntry binaryFileInfo) in SymbolSource.Processor\Legacy\Projects\AddInfoBuilder.cs:line 66    at SymbolSource.Processor.Legacy.Projects.AddInfoBuilder.<>c__DisplayClass4_0.<Build>b__1(IPackageEntry b) in SymbolSource.Processor\Legacy\Projects\AddInfoBuilder.cs:line 29    at System.Linq.Enumerable.<>c__DisplayClass7_03.b__0(TSource x)
at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext()    at System.Linq.Buffer1..ctor(IEnumerable1 source)    at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
at SymbolSource.Processor.Processor.PackageTask.d__72.MoveNext() in SymbolSource.Processor\Processor\PackageTask.cs:line 87 --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Runtime.CompilerServices.TaskAwaiter1.GetResult()
at SymbolSource.Processor.Processor.IndexPackageTask.d__7.MoveNext()
Has anyone else encountered the same issue?
Thanks,


Adding event_streams to autovacuum list

It was included in the original maintenance but was lost when the table was renamed from ems_events to event_streams. This PR adds it back.
https://bugzilla.redhat.com/show_bug.cgi?id=1669541
/cc @carbonin

Backported to Hammer via https://github.com/ManageIQ/manageiq/pull/18411


Add reek as dependency and config.reek

:+1:

@kruszczynski Can you also update this file https://github.com/codequest-eu/codeguard/blob/master/HELP.md ?

@michal-samluk I've updated Help.md


Add validations for create account page

Resolves #318
Description
I added model format validations for the phone_number and postal_code columns on the User table.
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?
I verified all tests were passing after adding my code.

Screenshots

@cato-hga Thank you!


Closes: #1

Updated validations.py python script.
Fixed the behavior of validate_user function in validations.py.
x
Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@googlebot I signed it!


feat: add paginated logs

Closes #954

Motivation
Solution
Implement a new stream that breaks requested block range into smaller pages that are loaded one at a time and streamed to the user.
Note: this only solves block limitations, if an rpc provider limits to 1000 blocks for instance, you could set page size to 1000 to solve it. However, if the limitation is on the number of logs(infura), this can't solve it automatically or completely, can try smaller page sizes but because number of logs in arbitrary block ranges is also arbitrary it can be hard to decide on a page size.
PR Checklist

[ ] Added Tests
[x] Added Documentation
[x] Updated the changelog

looks good - i think we need a test to ensure it works appropriately, either with a local node or with a large mainnet/testnet query?

Ah actually i tested with an example seems like i missed committing.

Yeah, no real benefits of using get_log, didn't change it to not break things

Would give the follow-up a try, I think this is a good enough change that it's worth breaking, and we can include in the changelog


Gradle bundles an old version of HikariCP

Environment
HikariCP version: 2.7.2
JDK version     : 1.8.0_111
Database        : Oracle

I have my gradle script as follows,
compile group: 'com.zaxxer', name: 'HikariCP', version: 2.7.2
But, when I checked the bundled version it is 2.5.1.
com.zaxxer:HikariCP:2.7.2 -> 2.5.1
What is the reason for the gradle to bundles an old version?

Are you sure another dependency is not pulling in the older version of HikariCP?

I have not purposely specified any Hikari version.
But I am using spring-boot-gradle-plugin, which seems causing the issue when I google.

The plugin itself depends on the correct version but it also pulls in hibernate-hikaricp which depends on the older version. You can probably force override it in gradle but this is not a bug with hikariCP in any way.


Update to Golang 1.13

Update to using goland 1.13 with go modules.
This also updates the deps to there latest version which should fix some issue we have with the latest MySQL version.

@boekkooi-fresh I tested with the following docker-compose.yml
version: "3.1"

services:
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: example

create empty db bob_local_us
build the pr changes

$ /Users/bahjat/go/src/github.com/hellofresh/klepto/dist/klepto_darwin_amd64/klepto steal --from='api-v2-us:XXXXX@tcp(intfood-db-us000.staging.hellofresh.io:3306)/bob_staging_us' --to='root:example@tcp(localhost:3306)/bob_local_us'

• MYSQL dumper forcing multistatements! help=https://github.com/go-sql-driver/mysql#multistatements
• Stealing...
⨯ Error while dumping       error=failed to dump structure: Error 1050: Table 'abilita_api_logs' already exists

@Bahjat I think you have an issue with the db you created can you try using the following docker-compose.yml and not create a db your self. Another option is that you ran the command twice without removing the already added table structures.
version: "3.1"

services:
  db:
    image: mysql:8.0.16
    command: --default-authentication-plugin=mysql_native_password
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: example
      MYSQL_DATABASE: bob_local_us

I did find another issue with mismatching SQL_MODE's which I fixed in the last commit.

started to do what is expected, great @boekkooi-fresh 👍

+1

+1


Add an option to minimize to system tray

This would be very useful on desktops.

I suppose you're on Linux, right? I'll add support for Linux. Minimize to tray feature was recentry added but only for Windows.
For Mac, having dynamic menulets is uncommon, according to Apple HIG:

Users, and not apps, place menu bar extras in the menu bar..

Yes this is on Linux, thanks!

It is connected with the #169. I think that after adding a KeeWeb.desktop entry problem may be marked as fixed.

According to Electron Documentation, for Linux distributions a user has to install a special package, libappindicator1, I'm still thinking how to detect if it's installed and show/use and option depending on it, that's why this feature is harder to add specifically for linux.

As long as minimizing is now working on Ubuntu without any additional packages, it will be enabled in the upcoming hotfix.

@aroumeliotis I believe this would be the issue to follow for that request: https://github.com/keeweb/keeweb/issues/448