[CP Staging] fix: wait for navigation ready state before signing in

Details

This PR fixes an issue were user gets stuck on an infinite loop while trying to sign in using deep link on native devices.
Fixed Issues

$ https://github.com/Expensify/App/issues/35745
PROPOSAL: https://github.com/Expensify/App/issues/35745#issuecomment-1926981185
Tests

Open the app on an iOS or Android device
Enter the email and tap "Continue"
Tap on the link received in email to sign in to the app
Verify that sign-in is successful

For Developer testing, follow below steps.
iOS
xcrun simctl openurl booted 'new-expensify://v/xxx/yyy'

Android
adb shell am start -a android.intent.action.VIEW -d "new-expensify://v/xxx/yyy"

[x] Verify that no errors appear in the JS console

Offline tests

Sign in needs active internet connection

QA Steps

Open the app on an iOS or Android device
Enter the email and tap "Continue"
Tap on the link received in email to sign in to the app
Verify that sign-in is successful

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/6880914/72c906ee-dc95-4b77-9d9b-1cb71c4ba435

Android: mWeb Chrome

https://github.com/Expensify/App/assets/6880914/e1e6b2a4-10e1-49fd-bd48-fbbec16d6ca4

iOS: Native

https://github.com/Expensify/App/assets/6880914/fcc3f3a8-6503-4ff8-8856-13c6fa96128b

iOS: mWeb Safari

https://github.com/Expensify/App/assets/6880914/2975b4eb-76a4-4608-bfc7-876f37467e80

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/6880914/498771b0-3eb2-4c07-945d-3109c312dabd

MacOS: Desktop

https://github.com/Expensify/App/assets/6880914/61d18d5f-a962-479e-b8eb-470ee03e68bd

The code change affects only native platforms so I think it's fine to test only android and iOS deeplinks.

Please add Tests step
iOS deeplink test:
xcrun simctl openurl booted 'new-expensify://v/xxx/yyy'

android deeplink test:
adb shell am start -a android.intent.action.VIEW -d "new-expensify://v/xxx/yyy"

Please add Tests step

Updated test cases.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/108292595/3a67c049-d472-4342-b6a3-b9caf6645dd1

Android: mWeb Chrome

iOS: Native
https://github.com/Expensify/App/assets/108292595/6a145d0e-390f-4807-afe3-41d4b84ad52f

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@aswin-s I am still getting infinite loading when invalid link is entered
i.e. change last number (yyy) to incorrect one
https://github.com/Expensify/App/assets/108292595/85f2792f-869c-4cc4-825e-265b5e395f1b

Checking

@situchan Looks like this situation was never handled on native platform? I could see the same scenario handled for web though.
https://github.com/Expensify/App/blob/a1b33ef57861c5b35090c786bfce581f72843d38/src/pages/ValidateLoginPage/index.website.tsx#L55

Can you check playstore/appstore apps? If it's not reproducible on production, I think it should be fixed

@situchan Fixed the issue. I've made it just like how it used to be on production.
https://github.com/Expensify/App/assets/6880914/22476eeb-d2f3-4adb-8bf2-17ffb824e054

waiting for @situchan I'll take over the internal review for @Gonals since they are probably offline by now.

🚀 Cherry-picked to staging by https://github.com/marcaaron in version: 1.4.36-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/marcaaron in version: 1.4.36-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


idea: should unify results act as memory variables saved to test env?

(tests
  (PlaidClient (-> (env!) (select-keys [:plaid/client-id :plaid/secret])))
  := ?plaid)

(tests
  ((create-sandbox-token ?plaid "ins_129571") ! !)
  % := {:public_token ?token :request_id _}

  (println ?plaid ?token))

(tests
  (->> (m/? (query! '[:find (pull ?tx [:db/id :db/txInstant])
                     :where [?tx :db/txInstant]] db))
       (take 5))
  := [[#:db{:id _, & ?kvs}] & ?rest])


BUG: Fixed warped widgets in ctkVTKSliceView overlay

Default camera for overlay layer in ctkVTKSliceView was a default VTK camera with perspective projection.
This caused widgets appear tilted/warped when displayed near the edge of the render window.
This was particularly visible in vector text rendered by VTK seed widget (markup fiducials in 3D Slicer).
Before the fix:

After the fix:

👍

I've done some more testing with this patch in Slicer and found issues with placing ruler and ROI annotations. Somehow the mapping between display and world coordinate system is impacted. There were some workarounds in the code, so maybe there were some underlying issues earlier that this change uncovered. I continue to investigate this.

Setting all slice view renderer cameras to use parallel projection solved the issue. Probably the issue is that widget point placer may find a different renderer than the widget's renderer. The behavior is now correct and I cannot spend more time on investigating how this could be made more robust/future-proof.

That seems reasonable to me. Thanks Andras.


Polish docs for tieredstore configuration

Ⅰ. Describe what this PR does

Polish docs for tieredstore configurations
Update TOC

Ⅱ. Does this pull request fix one issue?

NONE
Ⅲ. List the added test cases (unit test/integration test) if any, please explain if no tests are needed.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #562 (21dbd18) into master (a104b30) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #562   +/-   ##
=======================================
  Coverage   19.45%   19.45%
=======================================
  Files          59       59
  Lines        2385     2385
=======================================
  Hits          464      464
  Misses       1872     1872
  Partials       49       49

Continue to review full report at Codecov.

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


ignorerFiles cannot ignore folders recursively (?)

What version of Hugo are you using (hugo version)?

$ hugo version
0.75.1

Does this issue reproduce with the latest release?
Yes
Some of my content needs to be knitted using R.
To streamline the process, I set up an Rproject inside the content folder.
As part of this workflow, I also use revn to manage packages,
which means I have several files/folders inside content/blog
that need to be ignored before rendering.
One of the folders has multiple levels, i.e., folder/subfolder/subsubfolder/....
I could not figure out how to ignore all of them using ignoreFiles inside config.toml.
So far, I have tried:
ignoreFiles = [ ...,  "folder", ...]
ignoreFiles = [ ...,  "folder/.*", ...]
ignoreFiles = [ ...,  "folder/\\*\\*/\\*", ...]
ignoreFiles = [ ...,  "folder/\\*\\*/\\.\\*", ...]

Sadly, none of them worked.
Each time, Hugo would try to render some files within this to-be-ignored folder
and crash.
I have searched online and came across several mentioning of issues related to ignoreFiles,
but none of them mentioned explicitly a folder with multiple layers.
Any suggestion would be greatly appreciated!!

Hey, @chunyunma. I was trying to reproduce the problem and have failed. Could you provide a slice of your site's source code for testing?
Further I describe how I tested. I created file hugo-site-root/content/post/folder/subfolder/index.md containing:
---
title = "Some title
---

On rebuilt I've got an error:
ERROR 2020/10/04 17:25:36 "/home/vitkhab/hugo-site-root/content/post/folder/subfolder/index.md:2:1": failed to unmarshal YAML: yaml: unmarshal errors:
  line 1: cannot unmarshal !!str `title =...` into map[string]interface {}

The problem was fixed when I did put any of options below in config.toml:
ignoreFiles = [ "subfolder" ]
ignoreFiles = [ "folder" ]
ignoreFiles = [ "index.md" ]

Hi @vitkhab , thank you very much for the detailed reply!  I may have identified the problem but have yet to find a solution (sad face).
I was able to reproduce the error and solution you described, which led me to look more closely at the folder I was trying to ignore previously. It turns out that the original folder (renv) has some symbolic links in addition to regular files. Here is a simplified structure of my Hugo folder:
|-- Hugo-site-root
|----- Content
|-------- blog
|----------- renv
|------------- symbolic link1
|------------- symbolic link2
...
All the symbolic links point to /Users/chunyun/Library/Application Support/renv/cache/...
When I run "hugo server", I get the following message:
Watching for changes in /Users/chunyun/{Documents,Library}
Watching for config changes in ... /config.toml
fatal error: pipe failed
Even though I already specified in my config file ignoreFiles = ["renv"],
it seems that Hugo still gets "distracted" by these symbolic links
and try to watch for changes in /Users/chunyun/{Documents,Library}.
In contrast, when I remove the renv folder, and run hugo server,
I would get the usual & normal message:
"Watching for changes in /Users/chunyun/Documents/hugo-site-root/{archetypes,content,data,layouts,static}".
Does this mean I cannot have a folder like renv co-exist with hugo content?
Thank you again!

I tried moving folder with faulty file outside hugo-site-root and making symlink to it. ignoreFiles worked well when I specified symlink name or symlinked folder name. I still can't reproduce.
I'll try later with renv.

I've initialized renv inside hugo-site-root/content/post folder. I've installed some random packages. I can see symlinks inside hugo-site-root/content/post/renv/library/R-4.0/x86_64-pc-linux-gnu leading to /home/vitkhab/.local/share/renv/cache.
Some packages have good-enough README.md with them and Hugo compiles them well. Some packages have broken README.md and after their installation Hugo site broke. ignoreFiles = [ "renv" ] "fixed" issue. As I understand, renv using basic symlinks.
But I tested on Ubuntu 20.04 running on WSL2 on Windows 10. And I see you are using MacOS. It might be OS-specific problem. Like hugo doesn't have permissions to Library folder in MacOS and it crashes trying to read files from it (as a suggestion, I don't know what the real problem is). I'm thinking how to test it. Luckily I've also have Mac =)

Thank you so much for the update!!
It's very intriguing that Hugo worked fine on your machine.
BTW, I am running Hugo on macOS Catalina.
Should have mentioned that at the beginning.
My apology if I was not being thorough, but the error message I received
also has a large chunk after fatal error: pipe failed.
I did not include them in my previous message because they made no sense to me.
They read something like:
goroutine 1 [running]:
runtime.throw(0x5c92adc, 0xb)
	/usr/local/Cellar/go/1.15.2/libexec/src/runtime/panic.go:1116 +0x72 fp=0xc001389860 sp=0xc001389830 pc=0x4039332
runtime.sigNoteSetup(0x6d7c740)
	/usr/local/Cellar/go/1.15.2/libexec/src/runtime/os_darwin.go:98 +0xc5 fp=0xc001389888 sp=0xc001389860 pc=0x4036085
os/signal.signal_enable(0x3e64303d00000002)
	/usr/local/Cellar/go/1.15.2/libexec/src/runtime/sigqueue.go:198 +0xa5 fp=0xc0013898a8 sp=0xc001389888 pc=0x406dc05
os/signal.enableSignal(...)
	/usr/local/Cellar/go/1.15.2/libexec/src/os/signal/signal_unix.go:49
os/signal.Notify.func1(0x2)
	/usr/local/Cellar/go/1.15.2/libexec/src/os/signal/signal.go:144 +0x88 fp=0xc0013898c8 sp=0xc0013898a8 pc=0x55ae748
os/signal.Notify(0xc0010854a0, 0xc001389ae0, 0x2, 0x2)

On a hunch, I ran brew info Hugo and noticed a x in
==> Dependencies
Build: go x

If I understood this correctly, my Hugo install thinks that I do not have go (?)
However, when I ran brew info go,
it did show that I already had go installed on my machine.
Could this have anything to do with the error I've been getting?
Thank you again for all your help so far!

When I symlinked to folder without permissions I've got an error on the start:
ERROR 2020/10/05 19:49:04 walker:  walk: open "post/renv/renv-test" (""): open /Users/vitkhab/hugo-site-root/content/post/renv/renv-test: operation not permitted

It's very different from your problem. I've tried with hugo installed using brew and downloaded binary from github with and without ignoreFiles. The result was the same. So I don't know how to reproduce the problem.
But hugo version caught my eye. If you download binary from GitHub it should tell:
Hugo Static Site Generator v0.75.1-A4A7BAB7 darwin/amd64 BuildDate: 2020-09-15T06:47:14Z
When I've installed it using brew, I've got:
Hugo Static Site Generator v0.75.1/extended darwin/amd64 BuildDate: unknown
But you have 0.75.1. Is it possible that you are using hugo built in some strange way? Or you just trimmed output? Can you try to use hugo binary downloaded from GitHub (you might need to double click on it and give permissions to run)?
Also can you attach full log from hugo startup?

I previously installed Hugo using brew.
I uninstalled and replaced it with the binary as you suggested (confirmed with hugo version).
I also created a dummy site from scratch using the binary install Hugo.
I made the following changes and tested Hugo at each step:
hugo new site ./hugo-site-root
hugo server --- normal output
Created an R project inside content folder
hugo server --- normal output
renv::init()
hugo server --- normal output
Install.packages("tidyverse")
hugo server --- error
Below is the full output from the last hugo server
Start building sites …

                   | EN
-------------------+-----
  Pages            |  6
  Paginator pages  |  0
  Non-page files   |  1
  Static files     |  0
  Processed images |  0
  Aliases          |  0
  Sitemaps         |  1
  Cleaned          |  0

Built in 6 ms
Watching for changes in /Users/chunyun/{Documents,Library}
Watching for config changes in /Users/chunyun/Documents/hugo-site-root/config.toml
fatal error: pipe failed

goroutine 1 [running]:
runtime.throw(0x2ae8165, 0xb)
	/usr/local/go/src/runtime/panic.go:1116 +0x72 fp=0xc000d99860 sp=0xc000d99830 pc=0x1036712
runtime.sigNoteSetup(0x3b859e0)
	/usr/local/go/src/runtime/os_darwin.go:98 +0xc5 fp=0xc000d99888 sp=0xc000d99860 pc=0x1033465
os/signal.signal_enable(0xa256d17700000002)
	/usr/local/go/src/runtime/sigqueue.go:198 +0xa5 fp=0xc000d998a8 sp=0xc000d99888 pc=0x106aea5
os/signal.enableSignal(...)
	/usr/local/go/src/os/signal/signal_unix.go:49
os/signal.Notify.func1(0x2)
	/usr/local/go/src/os/signal/signal.go:144 +0x88 fp=0xc000d998c8 sp=0xc000d998a8 pc=0x25a0508
os/signal.Notify(0xc001233500, 0xc000d99ae0, 0x2, 0x2)
	/usr/local/go/src/os/signal/signal.go:164 +0x162 fp=0xc000d99940 sp=0xc000d998c8 pc=0x259ff22
github.com/gohugoio/hugo/commands.(*commandeer).serve(0xc0009248f0, 0xc0004c97c0, 0x749, 0xa00)
	/root/project/hugo/commands/server.go:480 +0x625 fp=0xc000d99b60 sp=0xc000d99940 pc=0x25d8be5
github.com/gohugoio/hugo/commands.(*serverCmd).server(0xc0004c97c0, 0xc0001e2dc0, 0x3b853f8, 0x0, 0x0, 0x0, 0x0)
	/root/project/hugo/commands/server.go:274 +0x2b6 fp=0xc000d99ca8 sp=0xc000d99b60 pc=0x25d73b6
github.com/gohugoio/hugo/commands.(*serverCmd).server-fm(0xc0001e2dc0, 0x3b853f8, 0x0, 0x0, 0x0, 0x0)
	/root/project/hugo/commands/server.go:131 +0x52 fp=0xc000d99cf0 sp=0xc000d99ca8 pc=0x25e7592
github.com/spf13/cobra.(*Command).execute(0xc0001e2dc0, 0x3b853f8, 0x0, 0x0, 0xc0001e2dc0, 0x3b853f8)
	/go/pkg/mod/github.com/spf13/cobra@v0.0.7/command.go:838 +0x47c fp=0xc000d99dc0 sp=0xc000d99cf0 pc=0x11ef95c
github.com/spf13/cobra.(*Command).ExecuteC(0xc0002e7340, 0xc000412dc0, 0x8, 0xc00043b000)
	/go/pkg/mod/github.com/spf13/cobra@v0.0.7/command.go:943 +0x336 fp=0xc000d99e98 sp=0xc000d99dc0 pc=0x11f0496
github.com/gohugoio/hugo/commands.Execute(0xc0000ba010, 0x1, 0x1, 0x1005fe5, 0xc000094058, 0x0, 0x0)
	/root/project/hugo/commands/hugo.go:90 +0xb9 fp=0xc000d99f28 sp=0xc000d99e98 pc=0x25c4259
main.main()
	/root/project/hugo/main.go:23 +0x76 fp=0xc000d99f88 sp=0xc000d99f28 pc=0x25e8cd6
runtime.main()
	/usr/local/go/src/runtime/proc.go:204 +0x209 fp=0xc000d99fe0 sp=0xc000d99f88 pc=0x1038ee9
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc000d99fe8 sp=0xc000d99fe0 pc=0x106eaa1

goroutine 21 [select]:
go.opencensus.io/stats/view.(*worker).start(0xc00001e870)
	/go/pkg/mod/go.opencensus.io@v0.22.0/stats/view/worker.go:154 +0x105
created by go.opencensus.io/stats/view.init.0
	/go/pkg/mod/go.opencensus.io@v0.22.0/stats/view/worker.go:32 +0x57

goroutine 57 [syscall]:
syscall.syscall6(0x122f740, 0x8, 0x0, 0x0, 0xc000484688, 0xa, 0x3b856a0, 0x0, 0x0, 0x0)
	/usr/local/go/src/runtime/sys_darwin.go:85 +0x2e
golang.org/x/sys/unix.kevent(0x8, 0x0, 0x0, 0xc000484688, 0xa, 0x3b856a0, 0x0, 0x0, 0x0)
	/go/pkg/mod/golang.org/x/sys@v0.0.0-20200501145240-bc7a7d42d5c3/unix/zsyscall_darwin_amd64.go:292 +0xa6
golang.org/x/sys/unix.Kevent(0x8, 0x0, 0x0, 0x0, 0xc000484688, 0xa, 0xa, 0x3b856a0, 0x0, 0x0, ...)
	/go/pkg/mod/golang.org/x/sys@v0.0.0-20200501145240-bc7a7d42d5c3/unix/syscall_bsd.go:413 +0x71
github.com/fsnotify/fsnotify.read(0x8, 0xc000484688, 0xa, 0xa, 0x3b856a0, 0xc000484688, 0x0, 0xa, 0x0, 0x0)
	/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:511 +0x6e
github.com/fsnotify/fsnotify.(*Watcher).readEvents(0xc000d32d80)
	/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:274 +0x831
created by github.com/fsnotify/fsnotify.NewWatcher
	/go/pkg/mod/github.com/fsnotify/fsnotify@v1.4.9/kqueue.go:62 +0x199

goroutine 59 [select]:
github.com/gohugoio/hugo/commands.(*commandeer).newWatcher.func1(0xc000e02500, 0xc0009248f0, 0xc00048d458, 0xc0005fcd50)
	/root/project/hugo/commands/hugo.go:873 +0xe5
created by github.com/gohugoio/hugo/commands.(*commandeer).newWatcher
	/root/project/hugo/commands/hugo.go:871 +0x2ac

goroutine 58 [select]:
github.com/gohugoio/hugo/watcher.(*Batcher).run(0xc000e02500)
	/root/project/hugo/watcher/batcher.go:53 +0x174
created by github.com/gohugoio/hugo/watcher.New
	/root/project/hugo/watcher/batcher.go:42 +0x125

goroutine 61 [select]:
github.com/gohugoio/hugo/livereload.(*hub).run(0x3b481c0)
	/root/project/hugo/livereload/hub.go:39 +0x1e9
created by github.com/gohugoio/hugo/livereload.Initialize
	/root/project/hugo/livereload/livereload.go:98 +0x45

@vitkhab  After days' agony, I finally found a reasonable solution!
It is actually quite simple.
All I did was to add one line to the .Renviron file inside content/blog/:
RENV_PATHS_LIBRARY_ROOT = "/Users/chunyun/Documents/renv/hugo/"
This environment variable effectively places all the symlinked packages
in a folder outside of hugo-site-root.
This way, there are no symlinks inside folder renv and
ignoreFiles = [ "renv" ] worked as expected, i.e., recursively.
BTW, prior to my lucky success, I also tried setting another environment variable
RENV_PATHS_ROOT to a folder inside $HOME,
effectively placing all the cached R packages somewhere accessible to Hugo.
This attempt did not solve the problem though.
I used this documentation from renv to come up with this solution.


webapp: az webapp up improvements

Node default version for Linux updated to 10.14
Added support to enable and view streaming logs using --logs argument (thank you @yugangw-msft )
the default naming convention for RG & ASP uses the logged in user name instead of appsvc as the prefix
Updated the help text for az webapp up
Zip deployment automatically enables logs & displays log (not streaming) before marking the deployment as Failure

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR has modified HISTORY.rst describing any customer-facing, functional changes. Note that this does not include changes only to help content. (see Modifying change log).

[ ] I adhere to the Command Guidelines.

TODO:

Update history.rst,
noticed that for Linux apps the HttpLogging is not getting enabled using the CLI command - investigating to check if this is an SDK API issue or CLI command issue, since enabling this directly from resources.azure.com is successful
received feedback from Linux crew to enable Always On by default for better performance on re- deployment scenarios

@yugangw-msft since you have the most context of this command - can you take a look at this PR once the build is Green. Thanks!

This has the SDK changes merged to this branch as well. Will rebase to DEV once the sdk PR is approved & checked-in.

@yugangw-msft ping


When right prompt is hidden by a history suggestion, completion menu messes up the terminal

Description
When right prompt is hidden by a history suggestion, completion menu messes up the terminal
Expected behavior
History suggestion is removed, right prompt is redrawn correctly, completion menu appears below
Actual behavior
Screencast
Steps to Reproduce

Enable sorin theme
Enter long command that covers right prompt
Type prefix to that long command so the right prompt is hidden by the history suggestion
Press tab several times

Versions

Prezto commit: 3001028
ZSH version: 5.4.2
OS information: Confirmed on mac and linux

I don't know if there's a way around this - it may be worth filing upstream though, since it's most likely an issue with or without an rprompt.
https://github.com/zsh-users/zsh-autosuggestions


Implement move up and move down in result sets

[ ] Move up
[ ] Move down

The current data structure and UI library makes it too difficult to implement.


mysql-workbench cannot be built after bcrypt update

Describe the bug
Trying to use mysql-workbench I am served with the error message:
error: bcrypt-3.2.0 not supported for interpreter python2.7

To Reproduce
Steps to reproduce the behavior:

Make sure you are using latest nixos-unstable
Run nix-shell -p mysql-workbench

Expected behavior
Having mysql-workbench in my environment
Additional context
mysql-workbench uses Python2 paramiko. Paramiko uses bcrypt, however, it does not support Python older than 3.6 since 87371b8f6338af8398410443868c1f7750840c4b.
Notify maintainers
@domenkozar - bcrypt's maintainer

Also breaks syncthing-gtk

This is fixed, closing.


"Create subnet with a delegation" example doesn't actually contain and delegations

File: themes/default/content/registry/packages/azure-native/api-docs/network/subnet/_index.md
"Create subnet with a delegation" example doesn't actually contain and delegations.  Can you add an example of creating a subnet with delegations

Just noticed this is a duplicate of https://github.com/pulumi/registry/issues/245


CI: Improvement to speed up compilation and reduce download errors.

Summary
The simple improvement is designed to speed up compilation and reduce download errors on github and local.
.github\workflows\build.yml:
Added -S option. Enable storaged to the nxtmpdir folder for third-party packages.
For now I added in the folder this package
ESP_HAL_3RDPARTY_URL = https://github.com/espressif/esp-hal-3rdparty.git
ARCH
arch/xtensa/src/esp32/Make.defs
arch/xtensa/src/esp32s2/Make.defs
arch/xtensa/src/esp32s3/Make.defs
arch/risc-v/src/common/espressif/Make.defs
arch/risc-v/src/esp32c3-legacy/Make.defs
but other packages can also be added.
Impact
None
The simple improvement is designed to speed up compilation and reduce download errors on github and local.
Testing
CI GITHUB
see https://github.com/apache/nuttx/pull/13301

Configuration/Tool: stm32f4discovery/nsh,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2024-09-20 09:35:04
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
make: *** [olddefconfig] Error 1
  Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
make: *** [olddefconfig] Error 1
  Building NuttX...
make[1]: *** No rule to make target `context'.
make: *** [libs/libm/.context] Error 2
make: Target `all' not remade because of errors.
/Users/runner/work/nuttx-apps/nuttx-apps/sources/nuttx/tools/testbuild.sh: line 385: /Users/runner/work/nuttx-apps/nuttx-apps/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  Normalize stm32f4discovery/nsh
make: *** [olddefconfig] Error 1
make: *** [savedefconfig] Error 1
make: *** [olddefconfig] Error 1

It does not depend on this PR.
I will rebase to see if this can fix the CI error.

https://github.com/apache/nuttx-apps/pull/2591/files also fails at macOS :-(
Does this come from runners limit or problem with macOS runner?
As -S flag is used in the other PR shall we close this one or just testing?

As -S flag is used in the other PR shall we close this one or just testing?

@cederom  yes it is right I close PR


Fixed 3D Printing Admin Frontend

Resolves #267 . Fixed column bugs and scalability for smaller screens (mobile)

@ThaiQ do any further refactorings in another PR

@realCalvin After this I'll approve, any further changes won't be done in this PR.


Coul you share the link for that "DGP" letters dataset?

I think it's sitting in a folder that I no longer have access to, I'm afraid, but I made it simply by taking a screenshot of the text from the paper and opening it using PIL.

Hi, Salimbeni,
I think in the paper you did mention the number of data: 73419. Could you illustrate to me how to pick this particular number?


Table can't use ul/ol

// in table.js
const List = Quill.import('formats/list')
const Block = Quill.import('blots/block')
...
TableCell.allowedChildren = [..., List.requiredContainer, Block]

List.requiredContainer can make you add ul, and Block can preserve the TableCell after cancel ul format

// in table.js
const List = Quill.import('formats/list')
const Block = Quill.import('blots/block')
...
TableCell.allowedChildren = [..., List.requiredContainer, Block]

List.requiredContainer can make you add ul, and Block can preserve the TableCell after cancel ul format

@WongYAQi It's not enough for adding ul/ol in table cell.
To achieve it, the listItem blot and listContainer blot need to be modified accordingly (like table cell line). Currently there is no support for ul/ol in table cell.

@WongYAQi It's not enough for adding ul/ol in table cell.
To achieve it, the listItem blot and listContainer blot need to be modified accordingly (like table cell line). Currently there is no support for ul/ol in table cell.

yes, I found that there was problem when merge two list cell, and checkMerge function would throw error.
So I realized that "add ui in table" would be a long-term job.But this may be helpful when just show the ul element with this little change.

// in table.js
const List = Quill.import('formats/list')
const Block = Quill.import('blots/block')
...
TableCell.allowedChildren = [..., List.requiredContainer, Block]

List.requiredContainer can make you add ul, and Block can preserve the TableCell after cancel ul format

I'll do as you say, It's half done, The other half is the problem of setting, Didn't you solve it?

The setContents will go wrong


Default values for configs?

It's currently not possible to create a SwaggerPlugin or ReDocPlugin without passing a configuration. This could be a default argument (with @JvmOverloads).
Edit: Same goes for OpenApiPlugin.

🎉


Getting  NotImplementedError: PythonReplTool does not support async when trying to use arun on CSV agent

System Info
langchain==0.0.195
python==3.9.17
system-info==ubuntu
Who can help?
@agola11
Information

[ ] The official example notebooks/scripts
[X] My own modified scripts

Related Components

[X] LLMs/Chat Models
[ ] Embedding Models
[ ] Prompts / Prompt Templates / Prompt Selectors
[ ] Output Parsers
[ ] Document Loaders
[ ] Vector Stores / Retrievers
[ ] Memory
[X] Agents / Agent Executors
[X] Tools / Toolkits
[X] Chains
[ ] Callbacks/Tracing
[X] Async

Reproduction
Copy paste this code:
async def csv_qa(question):
  agent = create_csv_agent(OpenAI(temperature=0),
                           'path_to_csv',
                           verbose=True)

  answer = await agent.arun(question)

  return answer

response = await csv_qa("question_about_csv")

Expected behavior
Will return the same response as using run:
def csv_qa(question):
  agent = create_csv_agent(OpenAI(temperature=0),
                           'path_to_csv',
                           verbose=True)

  answer = agent.run(question)

  return answer

response = csv_qa("question_about_csv")

@dosu-beta can you link the relevant issues and PRs regarding implementing async for various tools?

Do we have a timeline when this will be supported?


Module array instances get unrolled during elaboration

Test: ArrayInst
Issue: Both arrays q and flop_instances get unrolled during elaboration losing the original context.
Expected: Unrolled instances of modules would retain some context of original source. Also, need to track the original Range and corresponding location information.

Surelog primary concerns is to create a model that is executable by Synthesis (Yosys) and Simulation (Verilator). Elaboration has to happen to achieve that goal.
Preserving the original source code representation only happens when it does not get in the way of Elaboration. Loop and instance unrolling will happen during elaboration.
You can retrieve (reconstruct) the ranges from the instance indexes. Location information is present in UHDM.

Preserving the original source code representation only happens when it does not get in the way of Elaboration. Loop and instance unrolling will happen during elaboration.

Agreed. But why is the non-elaborated model storing elaborated data. Shouldn't the non-elaborated model hold original source? Shouldn't the substitution and unrolling happen as part of elaboration process?
This is just one such instance but elaboration seems to be seeping into the non-elaboration side. ArianeElab is a good example. Compare the attached file with dut.v from ArianeElab. Attached file is generated from using the location information stored in the UHDM model and you can see how much of the data doesn't actually show up in non-elaborated model.
Without this information none of the tools like Language Server, Lint, and alike would be possible.

You have to use both non-elaborated and elaborated model and you should have 99% of what you are looking for.
Adding the missing information to the non-elaborated model is double work (engineering work) and double the memory in UHDM.
BTW, you are welcome to contribute the engineering work if it is required by your project, but if you navigate both non-elaborated and elaborated, I think you are going to find most of the things you are looking for, if not, simply add to the non-elaborated model the non-elaborated part closer to source code.

if you navigate both non-elaborated and elaborated, I think you are going to find most of the things you are looking for

This would be more work (having to roll back what has been unrolled during elaboration process) than just adding the necessary information to the non-elaborated tree.

simply add to the non-elaborated model the non-elaborated part closer to source code

We will do the engineering work to get the necessary information in the non-elaborated tree.
Specific question - In the non-elaborated tree would the specific instance in this test ArrayInst be a module_array? There are no other examples among any of the regression tests for this specific model. AFAIK none of the XXX_array are used in any of the regression tests.

Could you please provide some clarification/guidance on way forward for design. I am working on adding the missing pieces in non-elaborated model #2684 (instantiation of modules, gates, arrays, etc). Want to make sure I follow the committed path and not the abandoned one.
UHDM models have specialization for variables based on type (bit_var, byte_var,int_typespec, etc) and each of those specialization has the corresponding specialization (bit_typespec, byte_typespec, int_typespec, etc) for typespec.  Isn't this duplicating the type information? Is the typespec the way forward?

I'm about to check in an interface_array example with interfaces being sub elements of the array.


Add get Metadata Info for iOS (Convert from Swift)

@nthammarchee have you tested it with your flutter branch after all changes? Does it work as expected?

@nthammarchee have you tested it with your flutter branch after all changes? Does it work as expected?

Yes, it worked as expected (right now the flutter branch pull code from this)


Monitoring Plan API updates

Simera to refactor some code for the Monitoring Plan API
@mosesdeeCVP to perform a regression test

This ticket was regression tested and all test cases passes. The following test cases were run:
TC55
TC56
TC57
TC81

Testing completed and passed - Ticket Closed


Does DatabaseConnection::exec() need to be &mut self ?

Life gets much better if I change this to:
pub fn exec(&self, sql: &str) -> SqliteResult<()>

The consistency-based argument here is that exec() and prepare() should be the same.
The not-very-compelling argument is that exec(&mut self) means that I can only call exec() from one reference and that's a huge pain.
But I'll admit that whenever I think about the boundary between "safety assurances provided by SQLite" and "additional safety assurances provided by Rust", I get myself tied up in knots.

I wrote it that way because I didn't have any assurance that sqlite3_exec didn't mutate the underlying sqlite3. @PeterReid, thoughts?
I suppose that applies to prepare() as well, though I thought of prepare() as creating a new sqlite3_stmt without modifying the sqlite3.
Care to elaborate on "huge pain", @ericsink?

I'm just not sure what "mutating the underlying sqlite3" means.
Is it different from "mutating one or more of the database files which are attached to that sqlite3"?  Thinking about trying to express that in Rust's type system seems hopeless.

I'll get back to you on "huge pain".  I'm still trying to get my story straight.

tldr: hellifino
I tried to consult the gods in the #rust IRC channel, but they're not handy just now.
thinking out loud...
by "mutating the underlying sqlite3" I mean: updating that data structure or any memory it refers to, directly or indirectly. So in the case of an in-memory database, yes, database changes count.
You saw the suggestion in #37 to use thread-safe connections. Something tells me that would take me into Arc<RefCell<X>> territory, which I have been avoiding. Maybe there should be 2 core APIs: one Sync and one not Sync? Ugh. I dunno.

Yeah, I got no clue what the right answer is here.  I'm going to keep going forward, trying stuff, and see what gets me into trouble.
For now, a little more thinking out loud:
The issue with mut in Rust is that it doesn't just block other mutators (writers).  It also blocks all readers.  That's great, but it doesn't match SQLite's semantics.
Actually, for SQLite's "delete" journal mode, this matches fine.  But for WAL mode, it does not.  In WAL mode, there can be only one writer, but writers do not block readers, and readers do not block writers.  AFAIK, Rust doesn't have a pointer which works this way.  But I should probably re-read this yet again:
http://manishearth.github.io/blog/2015/05/27/wrapper-types-in-rust-choosing-your-guarantees/
Anyway, I'm just stewing about how much database locking semantic stuff can or should be mapped onto the Rust type system.

This is now Somebody Else's Problem :)
See #46


The thread_state data for RenderThread of com.miui.home has been incorrectly assigned to an unknown process.

I have noticed that the thread_state for RenderThread in the process com.miui.home is missing data from a certain point in time.
Upon further investigation, I discovered that this thread_state error has occurred in a separate process named Process 10646.
I would like to know the reason behind this issue and if there are any possible solutions. Thank you for your response.

Please share a trace. This issue not debuggable without it.

https://drive.google.com/file/d/1kPcIjF_f_PqwcOB5yBwzMne-Oqd7-J2p/view?usp=drive_link
the trace is too big, I upload it on google cloud,is that ok?

I took a look: the size of the trace and the huge number of data sources makes it very difficult to deal with. My very strong suspicion is that these extra processes are coming from the heapprofd and Java heap dumps which have been added to the config. Both of these data sources can cause forks of the processes being profiled and this will show up as different processes. Specifically, please remove these sections and try collecting traces:
data_sources {
  config {
    name: "android.heapprofd"
    target_buffer: 0
    heapprofd_config {
      sampling_interval_bytes: 4096
      shmem_size_bytes: 8388608
      block_client: true
    }
  }
}
data_sources {
  config {
    name: "android.java_hprof"
    target_buffer: 0
    java_hprof_config {
    }
  }
}

Moreover, your config has several other problems which makes it non optimal:

Your buffer sizes are huge for no reason which can cause system health impact. You are already writing to file, there is no reason to have such big buffers.
You have specified write_into_file but not file_write_period_ms. This is usually a bad idea: setting that to 1-5s would be a good starting point.
You have not enabled compact_sched. This is usually a good idea to minimize the size of the trace. See https://perfetto.dev/docs/data-sources/cpu-scheduling#traceconfig

Note that in the future, we will be unable to perform consultative services like this. Our bug tracker is really intended to be used to file minimal repros which demonstrate real bugs. The bug report and the trace provided do not meet the bar for this. While I've helped out in this case, in future situations, we would be unable to do this and we'll close bugs like this and restate this information.


refactor: align render module arguments with webpack

Summary
Align module requirements and render module arguments with webpack
Test Plan
Require Documentation?

[x] No
[ ] Yes, the corresponding rspack-website PR is __

!eco-ci

!eco-ci


Page remains cached after publishing new version

Issue Summary
When I'm modifying and publishing a page, as long as I'm still logged in, the live version is still the old one.
Steps to Reproduce

Start a new project and use a cache backend. I use Redis.
Create a page and publish it.
View live page in browser.
Edit page and publish again.
View live page again in browser. The old version appears.

I expect that after publishing a page, the cached version would be invalidated and the new version would be available right away. The new version only appears after 10 minutes or more.
Things that I tried:

Refreshed the live page. It didn't work.
Cleared the browser cache and refreshed the page. It didn't work.
Opened the page in incognito mode. It worked. Refresh the page in non-incognito mode. It didn't work.
Logged out from admin. It worked.

It seems that the caching of the old version happens only when I'm logged in.
Technical details

Python version: 3.8.6
Django version: 3.1.3
Wagtail version: 2.11.2
Browser version: Chrome 86

To make things easier to reproduce, here's the content of a few files I had to modify starting with a clean Wagtail site.
home/models.py
from django.db import models

from wagtail.core.models import Page
from wagtail.core.fields import RichTextField
from wagtail.admin.edit_handlers import FieldPanel

class HomePage(Page):
    text = RichTextField(null=True)

    content_panels = Page.content_panels + [
        FieldPanel('text'),
    ]

home/templates/home/welcome_page.html
{% load i18n wagtailcore_tags %}

<main>
  {{ page.text|richtext }}
</main>

mysite/settings/base.py
...

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',

    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'django.middleware.security.SecurityMiddleware',

    'wagtail.contrib.redirects.middleware.RedirectMiddleware',

    'django.middleware.cache.FetchFromCacheMiddleware',
]

...

mysite/settings/dev.py
from .base import *

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '4nnd3qi5h@ia$((@9^)$d(nf@a^@v7z-m0w_65dl_cfalpgb=z'

# SECURITY WARNING: define the correct hosts in production!
ALLOWED_HOSTS = ['*']

EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://<IP_ADDRESS>:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        }
    }
}

try:
    from .local import *
except ImportError:
    pass

Am I doing anything wrong?

It looks like you've added Django's per-site cache middleware, and that it's behaving in the way that the docs describe:
https://docs.djangoproject.com/en/3.1/topics/cache/#the-per-site-cache
I'd recommend https://github.com/coderedcorp/wagtail-cache as an alternative, with built-in invalidation.

In that sense Django's per-site cache middleware works in the way it's supposed to work. But also, when I publish a new page version in Wagtail and open it in incognito mode, Django also knows to invalidate the previous version. The question is: why doesn't Django know to invalidate the previous version if I'm logged in? Does Wagtail have to instruct it to do so?

I am closing this issue, as I'm pretty sure Wagtail is not at fault here. Wagtail makes no promises about invalidating Django's per-site cache middleware, and nor should it really. The per-site cache middleware is not really designed to be invalidated piecemeal in this way.

I am closing this issue, as I'm pretty sure Wagtail is not at fault here. Wagtail makes no promises about invalidating Django's per-site cache middleware, and nor should it really. The per-site cache middleware is not really designed to be invalidated piecemeal in this way.


[Bug] raise ValueError("Cannot detect local CUDA GPU target!")  Could you please tell me how did you solve the problem with more details. Thank you!

Hi @gaonkar-dinesh , I met the same error. Could you please tell me how did you solve the problem with more details. Thank you!
@ys-2020 have you compiled mlc with cuda support?

@ys-2020  For me recompiling MLC with appropriate cuda version solved the issue


Cube map comparison with idiff always fails

Steps to reproduce:

check out and build my DDS branch (https://github.com/inequation/oiio/tree/dds),
iconvert any cube map (e.g. this one: http://www.speedyshare.com/files/29882163/Animus128.dds) from DDS back to DDS,
compare images with idiff - always FAIL.

Also using a "proxy" format for comparison (e.g. converting both images to PNG and comparing those) results in a PASS.
Difference image is somewhat weird - the first cube face is totally black (i.e. no difference), but the others are there unchanged, as if we were comparing the original image with a black one.
It may be a bug of mine. The fact that the first face passes comparison suggests that it might have something to do with the fact that a DDS cube map's full_width/height is the size of the cube map, while the spec.width/height are dimensions of the entire map.

I'm going to assume that if 13 years whizzed by without anybody else complaining, nor with anyone feeling the need to propose a PR to fix it, that this (while possibly a bug) isn't on anybody's radar as worth spending time on. Closing.


Importing an account loses my old one

I don't understand I imported one account and after I imported the second one the first one is gone.
This is very disappointed.

did you import a wallet? there is a warning when importing a wallet that your existing wallet will be overwritten

did you import a wallet? there is a warning when importing a wallet that your existing wallet will be overwritten

Yes, it was a wallet. I found it is only a way to import another account.

Yes, it was a wallet. I found it is only a way to import another account.

There are two huge warnings when you import a wallet with another one already configured:

When you want two wallet at the same time use different browser profiles or a different browser.

There are two huge warnings when you import a wallet with another one already configured:

When you want two wallet at the same time use different browser profiles or a different browser.

Ok. Thanks. I was actually using an app.

Ok. Thanks. I was actually using an app.


WhereDate has some weird behaviour

SQLKata v2.2.0
Oracle 11g
I was trying to build a query against Oracle and encountered a problem. The given query is not working as expected (Error: ORA-01722: invalid number) The MyDate is TIMESTAMP.

I cannot understand why SQLKata converts the datetime into a Char instead just compare like the example bellow:
SELECT * FROM "Users"
WHERE "Name" = 'Sami'
  AND (
   MyDate <= '2020-10-12 08:35:59'
    OR "Country" = 'France'
  )

Does the method WhereDate suppose to compare dates without time? If it does why the SQL query in MSSQL looks like this:

instead of this?
SELECT * FROM  [Users]
WHERE [Name] = 'Sami'
  AND (
    CAST([MyDate] AS DATE) <= '2020-10-12' -- No time
    OR [Country] = 'France'
  )

My solution was to use Where instead. But I guess the WhereDate is for date only comparison without time which is still not correct I think.

@fairking the WhereDate assumes that you pass a valid date (without a time), and it casts the target column as date for the comparison, here in the case of Oracle it does an extra job which is casting also the value, and this will be removed in future versions.
so it's the developer's responsibility to pass a valid date.
if you have any suggestions for improvement please let me know.

Alright. I see what you mean. I should always cast to date to give the right result.

Closing the ticket then.


StartScanningForDevicesAsync with Service GUID issue

The StartScanningForDevicesAsync with Service GUID will never return any result in Android 4.4.  The bluetooth device is OK as it is tested with Device running Lollipop and Marshmallow.  Scanning without the Service GUID will result in all discoverable bluetooth devices in Android.  Could it be due the the lack of API from the KitKat BLE implementation as indicated in the following site?
https://github.com/iDevicesInc/SweetBlue/wiki/Android-BLE-Issues
Steps to reproduce

(plain vanilla Android implementation)

 try
            {
                edText.Text = "Start Scanning ";
                await _bleAdapter.StartScanningForDevicesAsync(new[] { Guid.Parse("00000af0-0000-1000-8000-00805f9b34fb") });

            }
            catch (DeviceConnectionException ex)
            {
                Toast.MakeText(this, "Device Connection Exception :"  + ex.Message, ToastLength.Short).Show();
            }

Expected behavior
Find the Device with the Service GUID
Actual behavior
on Android 4.4 it will not be able to locate the device.  Works Ok on lollipop and Marshmallow
Crashlog
not crash occur
Configuration
Version: 1.1.0
Platform: Android..
Device:  Lenovo A6000

This might be a Android 4.3/4.4 issue ...
As a workaround you can always filter devices by advertisement data...

Thanks.  End up filtering the Device.Name for KitKat.  While not ideal but works for now.

@alberk8 you can filter by advertisement data which contains the service guid. Might be better than name.

This happens on iOS as well

Can verify the issue for android 8.1...

Same issue for android 8.0


Small iterator improvement

Just a tiny improvement I thought I could make. I noticed this while working on the previous PR.

Thanks!


Searching for a type in javadoc leads to a 404 with "undefined" in URL

When using the searchbox at http://line.github.io/armeria/apidocs/ if I click on a package result it's fine, but if I click on a type result, it goes to a 404 URL like this one
http://line.github.io/armeria/apidocs/undefined/com/linecorp/armeria/client/HttpClient.html

It's fixed at master but not released. :smile:

Cool thought that might be the case :)

New web site has been deployed and the search box works now.


Update rhel.md

Corrected sytemctl calls and added hint about how to configure a proxy.

Proposed changes

Unreleased project version (optional)

Related issues (optional)

I do not thing it is wise that i modify documentation regarding distributions i am not hands on personally.
As for the proxy config, please feel free to replace it with a link to the appropriate paragraph.

The proxy server settings are already covered in the postinstallation topic.


Support for OPT

Hi,
Would it be possible to support new OPT models (a suite of GPT-like models)?
Here's the official doc:
https://huggingface.co/docs/transformers/model_doc/opt
Thanks for your great work!

Could you update the library using pip install --upgrade?


Long protein names cut off info in hovertext box

I've noticed that proteins with super long names mess up how the pop up box is displayed in the interactive plots, which cuts off most of the useful information. I've tried shrinking and expanding my window, as well as zooming in and out of the plot itself, but none of those have fixed it.

Thanks for letting us know about this issue! We're considering solutions to this and will let you know if this is resolved by a future release.

Our most recent release should address this issue. Let us know if you have any questions!


Error when simplifying a trajectory with DOFs that are not a subset of ActiveDOFs

Currently if a trajectory contains DOFs that are not currently active, the simplifier can produce a trajectory that is in collision.

After implementing #95, I think we should retain this behavior. We explicitly set the DOFs in the trajectory as active in PostProcessPath. This is also similar to the behavior of the retiming code in planningutils.
If this becomes too inconvenient, we can add a helper function to util that sets the DOFs in the trajectory as active.
@jeking04 feel free to re-open this if you disagree. :smile:

Wait a second, @mkoval can you explain why producing an output that is in collision is a valid thing to do here?
I could understand only modifying certain DOFs when simplifying, returning an exception, or returning an unmodified path.

The smoother only modifies the active DOFs. It only should collision check the links that are affected by the active DOFs. If other links are in collision in the input trajectory, then it's perfectly reasonable for the output to have the same collisions.
Or do you think that the simplifier is actively pushing those links in collision? I don't know which simplifier this is referring to (OMPLSimplifier, ParabolicSmoother, HauserParabolicSmoother?), so I can't replicate.


Fix large-dates ambiguity by creating a repr:four modifier

This is linked to #683
Tests have still to be written for this PR, thus it's not ready to be merged, but I opened this pull request anyways so that someone else might write them.
Namings and comments might also need to be discussed.
(I'll make a rebase of the commits when this PR is ready to be merged)

...what's up with the failing tests?

And there should probably be an accompanying merge request on https://github.com/time-rs/book to clarify how to resolve the large-dates ambiguity, update the [year] component diagaram, etc in https://time-rs.github.io/book/api/format-description.html#components

Not sure about the formatting check; it appears that the cargo fmt in the Github Action is only complaining about a different order of some imports. I tried running cargo fmt --all on my repo but sadly it doesn't appear to fix it; I guess it's a version mismatch problem between my cargo fmt version and the one used in Github Actions

@dennisorlando it looks like the CI is using rust nightly (at least for that step):
  fmt:
    name: Formatting
    runs-on: ubuntu-latest
    if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork) || github.event_name == 'push'

    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          components: rustfmt

      - name: Check formatting
        run: cargo fmt --all -- --check
        env:
          RUSTFLAGS: --cfg bench

@dennisorlando it looks like the CI is using rust nightly (at least for that step):
  fmt:
    name: Formatting
    runs-on: ubuntu-latest
    if: (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork) || github.event_name == 'push'

    steps:
      - name: Checkout sources
        uses: actions/checkout@v4

      - name: Install toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          components: rustfmt

      - name: Check formatting
        run: cargo fmt --all -- --check
        env:
          RUSTFLAGS: --cfg bench

Thanks! I rerun cargo fmt with an updated nightly installation and it worked.
Should a "cargo fmt --version" be added to the formatting workflow or is it unnecessary? e.g.
      - name: Install toolchain
        <...>

      - name: Print version
        run: cargo fmt --version

      - name: Check formatting
        run: cargo fmt --all -- --check
        env:
          RUSTFLAGS: --cfg bench

Overall, nice work! I have a few nits. More generally, I would prefer this be named repr:narrow with the corresponding YearRepr::Narrow variant. I feel this better captures the intent when combined with the large-dates feature.
Finally, can you remove the formatting commit and rebase instead? It was something I hadn't kept up to date with on nightly, hence the issue.

On it;
I just wanted to double your thoughts about the "Narrow" naming as I feel like it might be unintuitive, especially when googling it with a query  like "time.rs force year to be four digits long".
Perhaps something like "Standard" would be a better fit? When large-dates is disabled, people reading Narrow might associate it to something which is narrower then the standard 4 digit format, and thus skipping to read it's documentation

"standard" works for me.

After some more recent work, namely adding repr:century, I think it would be best if this were actually its own modifier. If that were the case then it could apply to either repr:century or repr:full.
I don't believe it's documented how to add a new modifier, so let me know if you need any guidance. If you prefer, I can also tackle it myself.

After some more recent work, namely adding repr:century, I think it would be best if this were actually its own modifier. If that were the case then it could apply to either repr:century or repr:full.
I don't believe it's documented how to add a new modifier, so let me know if you need any guidance. If you prefer, I can also tackle it myself.

Hmm I have a hard time decoupling it from repr: It is, after all, a representation of the year.
How do you think it should be called? Something along the lines of [year force-4-digits:true] ?

With the addition or repr:century, I'm viewing it as a way to control the range of supported values rather than a dedicated repr of its own volition. Otherwise we'd need to have a repr:full_standard and repr:century_standard, likewise for any further unforeseen variants.
My thought was range:extended and range:standard, with the former being default for backwards compatibility. That would be changed in the next breaking release, bringing behavior in line with most people's expectations.

With the addition or repr:century, I'm viewing it as a way to control the range of supported values rather than a dedicated repr of its own volition. Otherwise we'd need to have a repr:full_standard and repr:century_standard, likewise for any further unforeseen variants.
My thought was range:extended and range:standard, with the former being default for backwards compatibility. That would be changed in the next breaking release, bringing behavior in line with most people's expectations.

how should range:standard affect the different representations (e.g. when used with repr:century or repr:last_two)?
(P.S: I should be able to work on this this weekend)

For repr:century, it should output two digits if and only if the year is in 0..=9_999, failing otherwise. It would have no effect on repr:last_two.

P.S: I should be able to work on this this weekend

Awesome! :slightly_smiling_face:


Improve ContextTask XML comments for docs

The top-level summary and remarks of ContextTask is a bit jargony. Additional description, external links, or dumbing-down might help.

oni.Context or oni.Frame don't seem to be valid cref values.
https://github.com/open-ephys/onix-bonsai-onix1/blob/7ac700fb8a696d4d9f8d97c9d1b85765b9951ca6/OpenEphys.Onix1/ContextTask.cs#L12-L20
Don't repeat Clock as an example for the oni.Frame.Clock and its derivatives.

https://github.com/open-ephys/onix-bonsai-onix1/blob/7ac700fb8a696d4d9f8d97c9d1b85765b9951ca6/OpenEphys.Onix1/ContextTask.cs#L121-L125

<see cref="BufferedDataFrame.Clock"/> is rendered into the data model by docfx as:
<xref href="OpenEphys.Onix1.BufferedDataFrame.Clock" data-throw-if-not-resolved="false"></xref>
which is subsequently converted to html as:
Clock
I know the ideal solution is to not make any edits to the comments and somehow just keep the class name, so I made an issue for this in the docs repo. This is a more long-term issue though because I'm not immediately sure how to hook into the <xref> =>  conversion build step.
The workaround for this in the meanwhile would be to explicitly state what text you want to be in there by wrapping it in tags:

<see cref="BufferedDataFrame.Clock">BufferedDataFrame.Clock</see>
<see cref="DataFrame.Clock">DataFrame.Clock</see>


docs: fix layout

✅ Checklist

[x] I have followed every step in the contributing guide (updated 2022-10-06).
[x] The PR title follows the convention we established conventional-commit
[x] I performed a functional test on my final commit

Changelog

fixes docs layout at all screen sizes
fixes weird layout shift on everything that was introduced in a recent pr
simplifies the dom quite a bit

Screenshots

no screenshots, you should use the test deployment and see if the layout is broken at some sizes or not

💯

Eeerhm something weird's going on

🤬
will try to reproduce/fix tomorrow
i also noticed a new issue when opening the hamburger menu on the landing page

Eeerhm something weird's going on
figured this one out, it was safari not respecting h-full 🫥

Can't figure out how to set to draft on my phone, but please don't merge yet. Found one more issue (ToC overflows the bottom of the screen on mobile)

Is this what you're trying to fix?
https://user-images.githubusercontent.com/51714798/201400658-87e49194-aaad-412d-bff1-f168d7a922f4.MOV

It's working for me now in mobile safari.

It's working for me now in mobile safari. Do you still have this big on your phone?

Yep that's fixed 👌👌

Now it's just on the entire left navbar, not the "nav"

Sorry, I must be annoying but the search bar isn't centered 😜

Hey, not sure if you've noticed these issues yet and are already working on a fix.

Also, the T3 Collection button is gone.

nit: Other Recommendations looks dangerously/uncomfortably close to the scrollbar

Previously:

note to self: custom scrollbar behavior is completely broken in firefox (on macos) - but same is true on beta.create.t3.gg

Also, the T3 Collection button is gone.

This is on purpose - the navbar is already cramped at md

we were putting `break-all` on every li in markdown, i changed it to only be on `` elements

This looks good on my end, tested on a 14 inch laptop and galaxy s9+

uurgh this layout shift is kinda bad https://share.cleanshot.com/ci5v6j

We can cache the font once it has loaded. I'll push a commit wait

Better I think https://this-vegetable.is-from.space/brave_bK9eDEMC0o.mp4

Also fixed the other pop-in issue on the landing page
Before:
https://user-images.githubusercontent.com/8353666/201514798-f2ea9658-52b8-4782-9272-04b12c1db015.mov
After
https://user-images.githubusercontent.com/8353666/201514802-fdc7e00d-9b8c-4bce-bc83-4463537462cd.mov

right sidebar icon alignment
before:

after:

Aligned Navbar vertically with the stuff below it at md and above. xs/sm is unchanged.
Before:

After:

We good to merge?

We good to merge?

i think so.
there's many things left to improve of course, but this pr is already bigger than it should be


inserting '&' before running .py file in terminal

Issue Type: Bug
Open .py file and click run (play symbol). Returns error '& was unexpected at this time.' This issue is reminiscent of (or the same as): https://github.com/microsoft/vscode-python/issues/5916.
VS Code version: Code 1.62.0 (b3318bc0524af3d74034b8bb8a64df0ccf35549a, 2021-11-03T15:23:01.379Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No
Extensions (5)

Extension
Author (truncated)
Version

python
ms-
2021.11.1422169775

vscode-pylance
ms-
2021.11.0

jupyter
ms-
2021.10.1001414422

jupyter-keymap
ms-
1.0.0

jupyter-renderers
ms-
1.0.3

Update. No longer get '& was unexpected at this time' when using the 'run' button.


ASGD training and parallel data loader

Would be easy to add this

Easy-ish...

Doesn't seem to bad from these links at least
https://github.com/Theano/Theano/wiki/Using-Multiple-GPUs
https://gist.github.com/albertz/4177e40d41cb7f9f7c68

Function initialization from weights shows one way forward for this


Stacked columns bar chart combined with line chart dual axis,

Hi All,
I'm a new user to Chart.js api. My requirement is, I want to show Stacked column bar chart with X-axis and Y-axis overlapped with Line chart. Please refer the image link below that something I want. I managed to generate stacked bar chart using Chart.StackedBar.js plugin but I need Line chart overlapped with stacked barchart along with Y axis (Dual axis). Please someone help.
Thanks
Jitender

Closing since this is supported natively in v2. To do so, combine the stacked bar sample and the combo chart sample
Documentation is available at http://nnnick.github.io/Chart.js/docs-v2/


update: standardize async/meta events and support them in the plugin system

What type of PR is this?
/kind feature
Any specific area of the project related to this PR?
/area libscap
/area libsinsp
/area tests
Does this PR require a change in the driver versions?
/version driver-SCHEMA-version-minor
I guess? But we already bumped it for the next tag.
What this PR does / why we need it:
Inside libsinsp, we have the notion of "meta" event, which is a special kind of event that gets produced asynchronously by some metadata enrichment components (e.g. container manager, k8s client, etc...) and injected in the main event stream during a capture. This kind of events is not part of the real stream of events produced by libscap, but are instead injected and enqueued in a live capture. Properties and purposes:

Register a state change o notify about new data in a way that can be dumped and reproduced in capture files
Notify about new data coming from an asynchronous job or thread in a thread-safe way by enqueueing it in the main event stream
These events are by nature very low in throughput compared to kernel event streams

In the past, support for this events has not been standardized, and the only way for implementing them was to add a new event in the drivers' event table, which sort of violates the vertical boundaries of libsinsp and libscap and is also not optimal for maintainability.
This PR attempts to standardize this kind of events by introducing a general purpose "async event" that can be used for representing arbitrary binary data events to be injected asynchronously in live event captures. This new event can be used both by libsinsp's native event source and by plugins with event sourcing capability. The plugin API and the libs support has been updated accordingly by adding a new capability orthogonal and composable with the already-existing ones.
On top of this, few new filter fields have been made available for all event sources:

evt.is_async -> which is a boolean that allows checking whether an event is async or not (this also matches the old meta-events for coherence)
evt.asynctype -> which returns the name of the async event (compatible with the legacy ones as well).
The evt.type field native in libsinsp for the syscall source has been updated as an alias of evt.asynctype in case an event is a meta-event for legacy compatibility purposes.

Abundant tests have been added to cover the plugin API changes involved.
Which issue(s) this PR fixes:
Special notes for your reviewer:
Half of the LOC are test-related.
Does this PR introduce a user-facing change?:
update: standardize async/meta events and support them in the plugin system

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/milestone 0.11.0

LGTM label has been added.  Git tree hash: 462e655896b8c90eec8e9d08da7aeb57f4f77789

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, FedeDP, jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,FedeDP,jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


resize main window content only if content is set

An attempt to fix #313

confirmed fixes the crash I had


another strategic yield between slow things

Sparse_ledger.of_ledger_subset_exn is slow, and synchronous.
So is apply_transaction_and_get_statement. Yield immediately
after each of these to give the scheduler a chance to run some
other code.
Tested by looking at the tracing output (PR forthcoming) and
noticing that the large "proposer" block gets split into three pieces.

(soon enough these will be much faster, but still synchronous, so I think we should keep the yields permanently)


Look and feel of https://data.ocean-sampling-day.org

suggested changes to make for https://data.ocean-sampling-day.org/OSD2018/ (and clearly all the other similar folders)

[ ] in the dark blue left-side menu, the filenames can be long: I'd like to be able to see the full name, perhaps that can pop up when you hover over it with a mouse?
[ ] the README.md is centre-formatted, please do left-side or even-length-lines formatting
[ ] The lists in these READMEs are for some reason with a shorter sentence length, could they please instead be just the same as the rest of the text
[ ] we see that when http's are in the text in the readme, in the github view they come up as links, but not here: can this be fixed or should we instead convert the text to explicitely be links (if that is even possible)?
[ ] the "i" and the "map" symbol at the top right of all pages, could a popup be used when the mouse is over them to say what they are? i seems to send you back to the README for that folder, the map is a general github search link
[ ] and instead of being an "all GitHub" search link, can this just be a search in the current space (i.e. OSD here)?
[ ] on https://data.ocean-sampling-day.org/OSD2018/#./QualityControlledData/ the readme text goes way below the pale blue box it is located in. that should not be

this issue will be taken over by https://github.com/vliz-be-opsci/rocrate-to-pages/issues/12


Clarify how a claim value injection is handled for SessionScoped beans

Fixes #183.
I've restored the bit related to DeploymentException and SessionScoped beans with some minor restructuring. Also dropped some old note, there is no much point to keep it just to keep promising the exp grace may be added, we can add it anyway.
CC @radcortez
Given the update I do think we'd be better off with just dropping a SessionScoped baggage, a warning is good enough. If it works for some other bigger scopes whatever they are (where NPE etc may also happen) then it works for SessionScoped.
Thoughts ?

@radcortez @rdebusscher How does it look now ?

Looks good!

@radcortez @rdebusscher thanks


The slider control skips some numbers

When moving the slider control for the ratio input it skips the number 11 and the number 1.

This issue was fixed with commit f6b26ea


Update README.md

"DATAPLANE_TOTAL_NODES" didn't work for me and it created only a single node.

/retest


Feature request: move NDArrayiter to Core API

The Core API's IO isn't being updated to incude NDArrayIter, which forces developers for the other languages to write equivalants. If NDArrayIter were in the Core API like CSVIter, ImageRecordIter, MNISTIter, etc, then it would be called by all languages through each language's MXDataIter wrapper.
NDArrayiter was first introduced as NumpyIter by @sneakerkg in 2015, but evolved into a general numeric vector iterator that is useful in languages other than Python, such as in R, which defined but doesn't implement an R NDArrayIter as seen in the comments:
/*!
 * \brief data iterator that takes a NumericVector
 *  Shuffles it and iterate over its content.
 *  TODO(KK, tq) implement this when have time.
 *  c.f. python/io.py:NDArrayIter
 */

It would make more sense to have NDArrayIter in the Core, so it can be called by R's MXDataIter wrapper. Then it could also be accessed by Scala's MXDataIter wrapper. But instead, they had to code and test their own Scala NDArrayIter. The C++ API doesn’t even mention NDArrayIter and only has the C++ MXDataIter wrapper.

You make a good point. Is this just legacy code waiting to be fixed or is there any strong reason for not doing this ? @piiswrong

@piiswrong I want this feature enough to actually implement it, but would like guidance on how to do so. How would this impact the Python code?

This seems to be related to MXNet backend, not C++ API. This request seems to suggest to refactor Python API, extract NDArrayIter implementation from it and move it into MXNet engine itself so that all language APIs could access it and don't need to reimplement like it currently is in Python.
@nswamy, could you please update labels of this issue: remove "C++" and add "Backend"? Thanks!

Can I take this up ?

@saisiddhant12 thanks for offering to help. @zhreshold recently worked on moving the python dataloader to the backend and can suggest on how to proceed.


Version 3.0.0 comments thread

Hi Everyone. I just pushed a wide-sweeping refactor. The main motivation behind it was to provide a way to "inject" metadata into each Exchange. This metadata is data associated with exchanges that is somewhat static, but does tend to change over time. Examples include, currency pairs, max polling rates, scaling factors, etc.
This new feature works by having each exchange module provide a json file in resources that matches the exchange name in the ExchangeConfiguration. During creation of the exchange, the file is loaded into an object called MetaData. I will be expanding this object over the next days to include more parameters. I plan to add a way to specify an override file from any local path.
The metadata is available at the top of the class hierarchy: BaseExchange. This makes the metadata available to all services, including streaming now.
I was also motivated to do this because of the upcoming release I want to do. I always try to "clean things up" before each release. While going through the code, I noticed that many of the implementations have gone a bit of track. That's OK, but it's my job to try to keep everything consistent, and I changed a few things for the sake of consistency. For example, where Collections, List and Sets were, I picked List. Sometimes synchronized was used, and I removed it. Gasp!
Please voice your opinions and report anything that I broke. Also, if you have anything general to say about any part of XChange, now would be a good time. I'll be working through stuff over the next week, trying to get 3.0.0 released.

Had to revert to 2.1.0 as polling account info seemed to be locking. Didn't really dig into it - sorry.

@hbar-digital what exchange has the problem? What method call? Thanks.

16:59:08.476 [default] [main] DEBUG com.xeiam.xchange.ExchangeFactory - Creating exchange from specification
16:59:08.718 [default] [main] WARN  com.xeiam.xchange.BaseExchange - An exception occured while loading the metadata file from the classpath. This may lead to unexpected results. com.fasterxml.jackson.core.JsonParseException: Unexpected character (']' (code 93)): expected a value
at [Source: sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@4ee91125; line: 7, column: 5]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1419) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:508) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:437) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2329) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:794) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:690) ~[jackson-core-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:226) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:206) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:25) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:538) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:348) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1058) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:268) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3051) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2192) ~[jackson-databind-2.4.0.jar:2.4.0]
at com.xeiam.xchange.BaseExchange.applySpecification(BaseExchange.java:89) ~[xchange-core-3.0.0-SNAPSHOT.jar:na]
at com.xeiam.xchange.okcoin.OkCoinExchange.applySpecification(OkCoinExchange.java:30) [xchange-okcoin-3.0.0-SNAPSHOT.jar:na]
at com.xeiam.xchange.ExchangeFactory.createExchange(ExchangeFactory.java:91) [xchange-core-3.0.0-SNAPSHOT.jar:na]
at com.cnbit.common.main.BalanceTask.main(BalanceTask.java:27) [classes/:na]
Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
at com.xeiam.xchange.okcoin.service.polling.OkCoinBasePollingService.(OkCoinBasePollingService.java:34)
at com.xeiam.xchange.okcoin.service.polling.OkCoinMarketDataServiceRaw.(OkCoinMarketDataServiceRaw.java:28)
at com.xeiam.xchange.okcoin.service.polling.OkCoinMarketDataService.(OkCoinMarketDataService.java:23)
at com.xeiam.xchange.okcoin.OkCoinExchange.applySpecification(OkCoinExchange.java:43)
at com.xeiam.xchange.ExchangeFactory.createExchange(ExchangeFactory.java:91)
at com.cnbit.common.main.BalanceTask.main(BalanceTask.java:27)

I just updated to 3.0,then PollingAccountService and PollingMarketDataService encountered error.I don't know why.thanks

I see,should add okcoin.json to the classpath,but I konw OKCoin's currency_pairs,but the site‘s poll rate limitions,I'm not quite sure.

@DISSIDIA-986 I just pushed a fix. Please try it now.

Maybe it would be better to release 2.2.0 first as the SNAPSHOT was around for quite some time? There are a lot of fixes/changes in there I depend on without wanting to refactor to include 3.0.0 changes (which are definitely good and I'll comment on it later on as well).

bitvc.json has an extra ","

@DISSIDIA-986 Fixed. Thanks.
@jheusser I think if I had to do it over from the beginning I would do it that way, but right now I just want to move forward with 3.0.0, as I don't have the extra time to think about a 2.2.0 release. I foresee pushing a 3.0.0 release very soon actually. I hope everyone can upgrade, test, and give the thumbs up for a release. For your point of view, you'll need to change import namespaces, and besides testing functionality, there shouldn't be too much more to change. Functionally, it should all be the same.

@timmolter ok thanks, makes sense

I am struggling with BitStamp account fees in 3.0.0. I used to use:
Exchange bitStamp = BitStampAccount.createExchange();
PollingAccountService accountServiceBS = bitStamp.getPollingAccountService();
// BitStamp fees are charged on a sliding scale based on trading over last 30 days. Get current fee.
feesBS = accountServiceBS.getAccountInfo().getTradingFee().movePointLeft(2);

I can't find in the re-factored Exchange.getMetaData() or in examples.
How should I access this dynamic info now?
NB I tried staying on snapshot 2.2.0 but it appears to be re-factored in there so I would rather upgrade to 3.0.0 rather than downgrade to the last release. Any assistance much appreciated.

@Panchen This was removed as described in issue #838. I still need to add it back into the metadata, as proposed. I'll do that ASAP and report back here.

feesBS = accountServiceBS.getAccountInfo().getTradingFee().movePointLeft(2);

Would be nice if all the fees be normalized to fractions.

@Panchen The latest snapshot should have the function back in place. I reverted my previous changes for AccountInfo.

Perfect - works again. Thanks.

@Panchen would you be willing to provide a sample Bitstamp AccountInfo raw JSON document for our unit tests? I think the one we have is now somewhat outdated. You can and should of course redact your personal info from it. You can get it by setting the log level to TRACE in logback.xml.

@timmolter questions abound fields in MetaData class:
While I understand the need for maxPrivate/PublicPollPerTime, why are there four of each?
What *CurrencyMultiplier fields hold?
Could you please add some javadocs?

@timmolter I checked the raw JSON returned from accountServiceBS.getAccountInfo() in my code above versus the XChange/xchange-bitstamp/src/test/resources/account/example-accountinfo-data.json file. The parameter+value pairs currently returned by BitStamp are identical to the existing canned data test file, even though it is 2 years old. Let me know the location / format of the existing unit test file if you need more test data.

Thanks @Panchen !

@timmolter since the list of currency pairs available at the exchange is accessible from the MetaData, are we removing BasePollingService.getExchangeSymbols() ?

@rafalkrupinski Yes, I'll add JavaDocs. To answer your question, some exchanges (ANX) have different rates for different time windows:

API Usage Control
We have implement control on API usage to provide a stable environment for everybody to use.
Currently all users and IP addresses are throttled to 30 request of any type per second. You will get an error result if you are throttled.
Additionally there is a max of 60 requests per ten seconds and 50,000 requests per hour.
Information queries - such a get depth/results/ticker are throttled to 5 per second.
Finally there is a maximum of 50 open orders at any one time, with a total of 50 adds per hour.

I put it in there for now, but it's a work in progress. Your thoughts are welcomed.
I think BasePollingService.getExchangeSymbols() must stay and should stay as it provides an important function even with MetaData. Say the exchange provides an API endpoint from which we can poll the CurrencyPairs. For that exchange implementation, we would implement that method to call the REST API. For others with no such endpoint, we pull in the MetaData. See what I mean?
I'd also like to do something similar in the TradeService for a method like getTradeMetatData. Maybe parts of that object would be populated from one or more REST API calls, and/or fully or partially from the MeatData. That's my idea for now anyway. I think it will work out well.

To answer your question, some exchanges (ANX) have different rates for different time windows

From what I see across xchange DTOs, xchange doesn't support an union of all possible return values from all the exchanges, but a reasonably common subset. There might be 5 or 15 seconds or minutes counters - you want add them all? I hope not.

See what I mean?

I see what you mean, but I'm still not sure about keeping getExchangeSymbols. Maybe we could replace it with getMetaData method that would return current remote information supplemented with local data from $exchange.json.


Payment type 6

I would like to implement payment type 6 because we need to make payments to foreign countries (in other currencies than CHF). Can you tell me if it's correct to implement just V3 (Name and address of
FI International)?

Disclaimer: I haven't used payment type 6 in production yet.
As far as I read the corresponding business rules, payment type 6 is indeed quite similar to type 3. I spotted the following differences:

The name and address of the creditor agent (the foreign bank) can be provided in case the BIC is not known
The charge bearer (DEBT, CRED, SHAR, SLEV) can be indicated
Support for all account numbers (not just IBAN)

You could implement this type by extending from Z38\SwissPayment\TransactionInformation\CreditTransfer and building the message in a similar manner as in BankCreditTransfer. In case you are interested, I could implement these additions within the next few days.

Thank you for your answer.I'll check again if type 6 is really the one we need. I will make a PR if you like, so you don't have to bother..


Do not assume index 0 for boot medium

When booting the HassOS VMDK appliance disk image on QEMU with OVMF UEFI
firmware, barebox numbers devices differently from other environments.
This patch makes the barebox sh implementation expand a pathname
wildcard at runtime, so that assigned disk indices != 0 will also work.
This fix introduces a potential (but most likely irrelevant)
bug/problem: If there is more than one disk connected to the system with
a matching name assigned, the wildcard will expand to two or more
pathnames, breaking the resulting mount command.

Hi @jtru,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!

This should fix #151 under most circumstances.

Thanks


else unnecessary in this snippet

else condition within that method of yours is either unnecessary or redundant.

@geekcom Tests is failing now..

In short, there is nothing 'unnecessary or redundant' about this else.