{Mysql} az mysql flexible-server: Update cli for breaking changes in latest sdk

Related command

Description

This PR contains updates to models like SKU and Identity so that it will work for latest version of sdk.
Tests related to the sdk change have also been rerun.

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

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Mysql

Please fix CI issues.

@yonzhan I am trying to update sdk version in this PR but I am not able to access this Regression Pipeline clink mentioned in the doc: https://github.com/Azure/azure-cli/blob/dev/doc/how_to_bump_SDK_version_in_cli.md


code style in CSS overrides syntax highlighting in code-fenced blocks

Hi Morph,
I really love this theme -- thanks for creating it! I've noticed an issue with syntax highlighting for code-fenced sections. It seems that the black background inherited from code in style.css is overriding the background color rendered by Hugo for highlight blocks.
Here's an example of a python code-fenced block with the default highlight theme:

It's more obvious when changing to a lighter highlight style, like "friendly" (as opposed to the default "monokai"):

I've tried switching on pygmentsUseClasses=true and generating corresponding CSS, per the Hugo docs, but no luck. If I comment out the code line in the CSS, that fixes the issue for the code-fenced blocks, but obviously then I lose the highlighting for all the inline code snippets.
Any ideas? Am I missing something obvious?

Hey @benghancock - thanks for opening this issue! @pfandzelter has fixed it before I could even do anything.
The reason for this bug in the first place is that I have no idea what I'm doing when it comes to frontend things (or theme development, or Hugo). Good to see that other people do :) I didn't even know syntax highlighting was possible, I only ever intended and tested codeblocks with plain white text on a black background.


ESP32: Re-organise the different heap regions

Summary
This PR re-organises the ESP32 heaps:

Move the internal heap to "region 2", region 1 could end up with too little memory if static allocation is too large.
Part of the ROM bootloader memory at the end of 0x3ffae6f0 is not used.  This is can be added to the static memory space.
Other regions in the middle of DRAM that are not used by the ROM bootloader were added as heap regions.

Impact
Impacts ESP32 only:

More heap available, ~10KB for non-SMP and ~35KB for SMP.
Internal heap can be configured to a larger value.

Testing
Testing on different boards and QEMU with and without SMP.

@yamt for the docs, I'm not aware of anything public, but most of the information can be found here.  These values just came from analysing the binaries of the ROM bootloader.

@yamt can you merge it please?

@Ouss4
I noticed that ostest with esp32-devkitc:smp (QEMU) is unstable, although I added CONFIG_ESP32_QEMU_IMAGE=y.
sender_thread: mq_send succeeded on msg 9
receiver_thread: mq_receive succeeded on msg 9
sender_thread: returning nerrors=0
xtensa_user_panic: User Exception: EXCCAUSE=001d task: ostest
xtensa_dumpstate: CPU1:
xtensa_registerdump:    PC: 400d47ad    PS: 00060430
xtensa_registerdump:    A0: 800d453b    A1: 3ffe3c90    A2: 3ffb1330    A3: 3ffe0858
xtensa_registerdump:    A4: 3ffafe40    A5: 00060423    A6: 00060423    A7: 000000ff
xtensa_registerdump:    A8: 3ffe3f08    A9: 00000000   A10: 00000000   A11: 3ffe3ee8
xtensa_registerdump:   A12: 00060420   A13: 00000002   A14: 00000009   A15: 00000007
xtensa_registerdump:   SAR: 0000001f CAUSE: 0000001d VADDR: 00000008
xtensa_registerdump:  LBEG: 4000c46c  LEND: 4000c477  LCNT: 00000000
xtensa_registerdump:  TMP0: 400807da  TMP1: 3ffe3a70
xtensa_btdump: Backtrace0: 400d4e4f:3ffe3a10
xtensa_btdump: Backtrace1: 400d4f5d:3ffe3a30
xtensa_btdump: Backtrace2: 400d4ddf:3ffe3a50
xtensa_btdump: Backtrace3: 400807f4:3ffe3a70
xtensa_btdump: Backtrace4: 40020:3ffe3a90
xtensa_btdump: Backtrace5: 400d5130:3ffe0858
xtensa_btdump: Backtrace6: 3ffb132d:2
xtensa_btdump: BACKTRACE CORRUPTED!
xtensa_dumpstate: sp:         3ffe39c0
xtensa_dumpstate: stack base: 3ffe3dd0
xtensa_dumpstate: stack size: 00002020
...

@masayuki2009 I have seen some instability in QEMU before but I've fixed them, or at least so I thought.
This can be another case of the differences in bootloader image used in QEMU and hardware.
I'll check again.


Add EIS Swot Team to VEDA

Onboard the EIS Swot team to the VEDAhub instance the same way EIS Fire already has access so that EIS Owners can manage specific users.
https://github.com/NASA-IMPACT/veda-analytics/issues/103

cc: @batpad

Thanks for the PR, @wildintellect!


Optimize StringUtils#matchesGlob()

This Glob matching utility was using Ant's SelectorUtils#match() method, which uses String#toCharArray(). Often it is however faster to work with String#charAt(). Performance measurements indicate that the implementation is now more than twice as fast and since it is used very intensively in rewrite-maven (to match GAVs), the boost will be visible in some recipes.

I did a search across the codebase and couldn't find any references to the packages provided by the Ant module, so I now also removed this 2 MiB dependency from rewrite-core.

I think we should probably split matchesGlob() into two versions: One for file globs (where we replace "wrong" path separators) and one for general purpose matching. The latter could be made a whole lot faster.

@knutwannheden, I think I'm going to implement the directory matching separately now. I'm running into a case where the current matching has some issues for #3067.
I'm seeing just a single case of path matching from FindSourceFiles, so at the moment in considering adding a StringUtils#matchesGlob(Path, String) to handle directory globs, then update StringUtils#matchesGlob(String, String) to only handle string globs as described here. WDYT?

Yes, that sounds about right. I haven't checked all the callers of this utility yet, but as I remember it, there are quite many. So we will carefully have to check that the other callers indeed don't match file paths.
If we change the first parameter to Path we should then probably also move the implementation to org.openrewrite.PathUtils which already has some methods along these lines.

Yeah, I checked over at least the openrewrite/* org and it appeared that all of the uses for StringUtils#matchesGlob(String, String) outside of FindSourceFiles are using actual string glob matches, so I think we're safe at least that far. Like you said, a vast majority of them are within rewrite-maven which is doing things like matching on groupId and artifactId by and large. Since I'm fixing up FindSourceFiles, that would be addresses as part of this.


Fix: Wrong referral link after updating primary contact

Details

This PR fixes the issue that referral link is wrong after updating primary contact.
Fixed Issues

$ https://github.com/Expensify/App/issues/32292
PROPOSAL: https://github.com/Expensify/App/issues/32292#issuecomment-1835390293
Tests

Add a secondary contact method and set it as default
Go to Search >> Referral banner >> Copy invite link >> Paste it somewhere
Verify the contact in referral link is correct

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

Offline tests

NA
QA Steps

Add a secondary contact method and set it as default
Go to Search >> Referral banner >> Copy invite link >> Paste it somewhere
Verify the contact in referral link is correct

[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/113963320/96fe3e0b-39f0-461e-8a66-1493a95946b1

Android: mWeb Chrome

https://github.com/Expensify/App/assets/113963320/85f680ef-e353-48b6-a816-f15c6f9d254d

iOS: Native

https://github.com/Expensify/App/assets/113963320/8abceeb2-1f32-420a-ac86-e1826d695f3b

iOS: mWeb Safari

https://github.com/Expensify/App/assets/113963320/d62826eb-232c-4262-b74a-b88935a6bcc6

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/113963320/4f3ebe2d-da3f-4dd1-8e4c-0fac0b4c761d

MacOS: Desktop

https://github.com/Expensify/App/assets/113963320/4f3ebe2d-da3f-4dd1-8e4c-0fac0b4c761d

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
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] 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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Please add OP in Tests / QA Steps as well. Also include google / apple signin cases

@tienifr how's it going?

Having problem making Google/Apple sign in work in dev env. Resolving it now.

Not sure how you're resolving it but to test google signin locally, follow https://github.com/Expensify/App/blob/main/contributingGuides/APPLE_GOOGLE_SIGNIN.md#hostport-requirements thanks to @roryabraham

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 1.4.44-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 1.4.44-13 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


onBeforeRouteLeave triggered by router.replace({ query: {...} }) since v3.12.3

Environment
------------------------------
- Operating System: Linux
- Node Version:     v18.20.3
- Nuxt Version:     3.12.2
- CLI Version:      3.12.0
- Nitro Version:    2.9.7
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      compatibilityDate, devtools
- Runtime Modules:  -
- Build Modules:    -
------------------------------

Reproduction
https://stackblitz.com/edit/github-piu9n3?file=pages%2Findex.vue

This example uses 3.12.2.
Click the buttons and observe console. There is no "onBeforeRouteLeave called" in the console.
Stop dev server and run npx nuxi upgrade --force to set the project to 3.12.3 and run npm run dev to restart.
Click the buttons and observe console again. Now "onBeforeRouteLeave called" can be seen in the console.

Describe the bug
In 3.12.2, onBeforeRouteLeave did not get triggered by router.replace({ query: { test: 'A' } });. In 3.12.3 it does. Note that I'm using the pages directory in the repro.
Additional context
I saw some other tickets related to onBeforeRouteLeave and this version, but since this specific thing wasn't mentioned, I created a new one.
Logs
No response

Hello :wave: this is probably fixed in the nightly channel. can you try adding this piece of code in a module ?
    nuxt.hook('imports:sources', (sources) => {
      const routerImports = sources.find(s => s.from === '#app/composables/router' && s.imports.includes('onBeforeRouteLeave'))
      if (routerImports) {
        routerImports.from = 'vue-router'
      }
    })

or try with nuxt-nightly

Hello 👋 this is probably fixed in the nightly channel. can you try adding this piece of code in a module ?
    nuxt.hook('imports:sources', (sources) => {
      const routerImports = sources.find(s => s.from === '#app/composables/router' && s.imports.includes('onBeforeRouteLeave'))
      if (routerImports) {
        routerImports.from = 'vue-router'
      }
    })

or try with nuxt-nightly

Tried both suggestions and both seem to work.

Closing as fixed in nightly


HDDS-11031. Merge BaseApprover abstract class with the DefaultApprover.

What changes were proposed in this pull request?
Currently we have only one CertificateApprover implementation, the DefaultApprover, though speculatively we have an abstract class called BaseApprover.
This PR simplifies this hierarchy, and pushes down all methods and fields from BaseApprover to the DefaultApprover, then eliminates the BaseApprover class.
This PR is part of an effort to shrink down BouncyCastle usage and make it easy to move crypto related code to the hdds-crypto modules, but also classifies as a code cleanup. Further on if we have additional approver implementation, we may abstract out some base functionality, but atm we don't need any such abstractions.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11031
How was this patch tested?
This change is almost fully done with automated refactoring, so no additional tests are needed, the DefaultApprover related tests should cover us.

Thanks @fapifta for the patch, @Galsza for the review.

Thank you for the review @Galsza and also for merging this one @adoroszlai!


The Sway Language Server server crashed 5 times in the last 3 minutes

Hey guys!!!
I have run into a problem with the language server, autoformat does not work
My code you can find it here
https://github.com/sway-gang/sway-lend/blob/master/contracts/market/src/main.sw
To open the file you can use these commands
git clone https://github.com/sway-gang/sway-lend
cd sway lend
git checkout
git checkout fe2508784f7dc11e6878dfd83136b81cb52e2701
code ./contracts/market/src/main.sw

Here is screenshot

Sway language server output
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Char index out of bounds: char index 32982, Rope/RopeSlice char length 32749', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.5.0/src/rope.rs:345:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Info  - 1:54:55 PM] Connection to server got closed. Server will restart.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Char index out of bounds: char index 32982, Rope/RopeSlice char length 32749', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.5.0/src/rope.rs:345:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Info  - 1:54:59 PM] Connection to server got closed. Server will restart.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Char index out of bounds: char index 32982, Rope/RopeSlice char length 32749', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.5.0/src/rope.rs:345:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Info  - 1:55:30 PM] Connection to server got closed. Server will restart.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Char index out of bounds: char index 32982, Rope/RopeSlice char length 32749', /Users/runner/.cargo/registry/src/github.com-1ecc6299db9ec823/ropey-1.5.0/src/rope.rs:345:41
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[Info  - 5:39:30 PM] Connection to server got closed. Server will restart.

Sway LSP Client output
INFO [1/4/2023, 7:27:10 PM]: Starting the Sway Language Client and Server
INFO [1/4/2023, 7:27:10 PM]: Extension version: 0.2.7
INFO [1/4/2023, 7:27:10 PM]: Using configuration {
  trace: {
    server: 'off',
    extension: false,
    'fuel-core': { logfile: '/tmp/fuel-core_sway-vscode-plugin.log' }
  },
  debug: { showCollectedTokensAsWarnings: 'off' },
  logging: { level: 'error' },
  inlayHints: { renderColons: true, typeHints: true, maxLength: 25 }
}
INFO [1/4/2023, 7:27:10 PM]: Client has Connected to the Sway Language Server Successfully!
INFO [1/4/2023, 7:27:10 PM]: Starting the Sway Language Client and Server
INFO [1/4/2023, 7:27:10 PM]: Extension version: 0.2.7
INFO [1/4/2023, 7:27:10 PM]: Using configuration {
  trace: {
    server: 'off',
    extension: false,
    'fuel-core': { logfile: '/tmp/fuel-core_sway-vscode-plugin.log' }
  },
  debug: { showCollectedTokensAsWarnings: 'off' },
  logging: { level: 'error' },
  inlayHints: { renderColons: true, typeHints: true, maxLength: 25 }
}

I think perhaps the server is disturbed by the logo, which is located on lines 3-10

Hi @chlenc thanks for reporting this. I just checked out your commit following the steps you posted above. The language server seems to be running fine for me.
Can I ask what version of forc lsp you have installed? See below for my installed version:
forc lsp --version
forc-lsp 0.32.2

Hi @JoshuaBatty, I'm also running into this issue in the last few days and i have version 0.31.1 installed. I will update and let you know if that fixes it for me.

Thanks @Rodarus. Please let us know how it goes after updating.

The issue still persists for me.
I ran "forc update -d lsp" but it's still at 0.31.1; did i miss something?
This is the error:
[Info  - 7:29:04 AM] Connection to server got closed. Server will restart.
thread 'main' panicked at 'called Option::unwrap() on a None value', sway-parse/src/parser.rs:33:18
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace
[Error - 7:29:04 AM] The Sway Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.

I would recommend installing forc and i's plugins (include LSP) using fuelup.
Then to update, you just need to run fuelup self update.
Feel free to see this guide
In the meantime, if you want to send me a link to your project that's causing the error I can see if I can find what the cause is.

 Will close this issue if so. Thanks.

closing as the issue has become inactive.


SPONSOR: Remove deleting option for the attachments once the order is initiated

Once the order is created and the Sponsor later accesses it to view, the attachments can be downloaded but cannot be deleted.

@klivit it is ok to delete attachments that may mattered in the making the decision that an order should be approved or canceled? I was thinking that an version control may be introduced in the future. Please discuss this with business people. Otherwise a deleted file will be lost forever and no tracking could be made on it.  For example a sponsor added File A with some terms and conditions. CMO accepts its, and after that the Sponsor  delete File A and reupload it with some different terms.

The desired behavior already exists

the issue still exists. it will be handled in #180


Added virtual keywork to totalSupply() function

When the contract inherits from this one or any other than inherits from this and uses ERC721Enumerable from openzeppelin, the totalSupply function needs to be override and that can not be done without the virtual keyword

Awesome, thanks!


Communicate with players in parallel.

At present, players are told the current game sequentially and then asked for their move sequentially. Given 5 seconds timeout for moves, this means a potential time-per-turn of n(snakes)*5s.
Hopefully this can be done in a pretty manner rather than requiring nontrivial code changes.

Believed resolved with https://github.com/sirpent-team/sirpent-rust/commit/edfbbcfad009037341a478763cf201f70d0a1b69. A test would be helpful before closing.


Use savagegus.consul instead of trumant.consul

trumant.consul uses bintray which seems to have had its consul packages pulled and moved to releases.hashicorp.com. savagegus.consul's the upstream role and already fixed this back in December.
This just resolves the consul_exporter test.

Thanks.
Your PR is merged into https://github.com/William-Yeh/ansible-prometheus/commit/954a4310f69981b116dd9a84b00d2eaa3224556d

For easy maintenance, I've moved the consul_exporter part to another role: williamyeh.consul_exporter.


pasted content changes in ssh terminal

version: 1.0.90 mac
when i open a ssh connection and paste a command like du -d 1 -h /home , it becomes 0~du -d 1 -h /home1~, making the command can't to be executed, it's so wired!! it's all ok when using iterm2 to open the ssh connection

It's likely that your shell doesn't support bracketed paste - you can disable it in Settings.


Center page title inside tabs

Great work on this theme! A minor detail I noticed is that the page titles inside the tabs are not centered, which does seem to be the case with actual GTK tabs, such as used in epiphany.

Thanks! Tab labels should be centered now, like in Epiphany.

Thanks, already looks better!
Also, not sure if this is desired or even possible, but I noticed in Epiphany the (fav)icons are centered as well, next to the centered tab title.

You're right. I just spent an hour trying to figure it out, but nothing works. Either everything is centered, including the close button and tab mute icon, or the icon isn't. I'm out of ideas so I'll label this issue as "help wanted" and maybe someone figures it out.

I have spent my sunday trying to solve this XD.
Apparently works fine, but maybe is broken in some case, let me know.
/* Center all inside tab */
.tab-content {
	display: flex;
	justify-content: center;
	align-items: center;
	min-width: 100% !important;
}

/* Prevent favicon size breaking */
.tab-icon-image {
	min-width: 16px;
}

/* Adjust tab label width */
.tab-label-container {
	min-width: 0 !important;
}

/* Put close button and icon sound to the right  */
.tab-icon-sound[soundplaying="true"] {
	margin-left: auto !important;
}
.tabbrowser-tab:not([soundplaying]) .tab-close-button {
	margin-left: auto !important;
}

/* Force favicon to the center */
.tab-throbber, .tab-throbber-fallback {
	margin-left: auto;
}
.tabbrowser-tab:not([bussy]) .tab-icon-image {
	margin-left: auto;
}

/* If favicon is not present, force tab label to the center */
.tabbrowser-tab .tab-label-container {
	margin-left: auto !important;
}

.tabbrowser-tab[image] .tab-label-container, .tabbrowser-tab[bussy] .tab-label-container  {
	margin-left: 0px !important;
}

/* If close button is not present, don't force favicon to the center */
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected="true"]) .tab-throbber,
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected="true"]) .tab-throbber-fallback,
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected="true"]):not([bussy]) .tab-icon-image,
#tabbrowser-tabs[closebuttons="activetab"] .tabbrowser-tab:not([selected="true"]):not([image]) .tab-label-container {
	margin-left: 0 !important;
}

That's pretty cool! Just tested it on FF 57, 58 and 59, seems to work nicely. I haven't found any bugs and the code looks solid. It's a standard GTK behavior to center tab labels and it doesn't depend on any specific FF version (unlike client-side decorations), so I think you can add it directly to the theme.css file. Also you can remove what I added in 2a9708ac7fd8cde2ebfbb09630fde1d50573c305, we don't need it anymore.


⚠ Bofrost.at has degraded performance

In 03ae826, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1577 ms

Resolved: Bofrost.at performance has improved in dd7446a after 6 minutes.


structuredClone is not defined (electron)

Attach (recommended) or Link to PDF file here:
Configuration:

Web browser and its version: "electron": "^13.0.0"  / Node.JS 16.13.0
Operating system and its version: Windows 11 64 bits
PDF.js version: "pdfjs-dist": "^2.14.305"
Is a browser extension: no
Installation method: yarn add pdfjs-dist
Steps to reproduce the problem:

Load a PDF using the code below:
  const loadingTask = PDFJS.getDocument(reader.result);      loadingTask.promise.then(function(pdf) {})

Run the code using node

What is the expected behavior? (add screenshot)
No error should be reported ,As the browser runs
What went wrong? (add screenshot)
When the browser is running

When the electronis running

Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):
There is no problem running in the browser, but the following errors will appear when running in electron
ReferenceError: structuredClone is not defined at LoopbackPort.postMessage (pdf.js?7aa6:2240) at MessageHandler.sendWithPromise (pdf.js?7aa6:8555) at _fetchDocument (pdf.js?7aa6:1356) at eval (pdf.js?7aa6:1302)
I saw the same problem before #14729 , but I didn't get help. Maybe I should try to reduce the version
I think it may have something to do with electron or my installation

Web browser and its version: "electron": "^13.0.0"  / Node.JS 16.13.0

Sorry, but we cannot provide support specifically for "electron" since we don't know anything about that framework here.

Load a PDF using the code below:
  const loadingTask = PDFJS.getDocument(reader.result); loadingTask.promise.then(function(pdf) {})
Run the code using node

Please see https://github.com/mozilla/pdf.js/blob/master/.github/CONTRIBUTING.md (emphasis mine):

If you are developing a custom solution, first check the examples at https://github.com/mozilla/pdf.js#learning and search existing issues. If this does not help, please prepare a short well-documented example that demonstrates the problem and make it accessible online on your website, JS Bin, GitHub, etc. before opening a new issue or contacting us in the Matrix room -- keep in mind that just code snippets won't help us troubleshoot the problem.

I saw the same problem before #14729 , but I didn't get help.

Did you actually follow https://github.com/mozilla/pdf.js/issues/14729#issuecomment-1082831050, by importing from the legacy/-folder, since that's required in Node.js environments?

Maybe I should try to reduce the version

Using anything except the latest PDF.js version is neither recommended nor supported.
Duplicate of #14729


"RESUME TRAINING" WONT WORK - same errors as before.

Session found, loading the trained model ...
Converting to Diffusers ...
Traceback (most recent call last):
File "/content/convertodiff.py", line 1107, in
convert(args)
File "/content/convertodiff.py", line 1076, in convert
key_count = save_stable_diffusion_checkpoint(v2_model, args.model_to_save, text_encoder, unet,
File "/content/convertodiff.py", line 1013, in save_stable_diffusion_checkpoint
torch.save(new_ckpt, output_file)
File "/usr/local/lib/python3.8/dist-packages/torch/serialization.py", line 422, in save
with _open_zipfile_writer(f) as opened_zipfile:
File "/usr/local/lib/python3.8/dist-packages/torch/serialization.py", line 309, in _open_zipfile_writer
return container(name_or_buffer)
File "/usr/local/lib/python3.8/dist-packages/torch/serialization.py", line 287, in init
super(_open_zipfile_writer_file, self).init(torch._C.PyTorchFileWriter(str(name)))
RuntimeError: Parent directory /content/models does not exist.
Conversion error, if the error persists, remove the CKPT file from the current session folder

there is a problem with the CKPT, either it's corrupt, or it was converted with a previous script that was broken

there is a problem with the CKPT, either it's corrupt, or it was converted with a previous script that was broken

this was done 2 days ago, i trained 6000 steps, tested it and decided to RESUME training the next day, i did all as requested in the instructions for resuming training and boom, error. nor sure how can it be corrupted if it worked well, just needed more training, it was not broken, it loads well in automatic 1111 with its proper YAML file... the problem is every time i try to resume LATER ON, not on the same session.

I do it all the time, never had an issue, make sure you choose the right version in the Load/Create session cell

I do it all the time, never had an issue, make sure you choose the right version in the Load/Create session cell

ok then. thanks


multiple v-slot with same name broken

Version
2.6.2
Reproduction link
https://jsfiddle.net/0e17wumz/
Steps to reproduce
With new syntax it's not possible to use multiple v-slot with same name.
What is expected?
Display the slots
What is actually happening?
Nothing is displayed

With deprecated slot it works: https://jsfiddle.net/odvyztgw/

keep in mind v-slot:partLeft is transformed to v-slot:partleft by the browser which prevents us to use camel cased names for slots. Maybe we should transform the kebab case to camelCase as we do with props

Why would you do that anyway?

So if you fix the casing it works: https://jsfiddle.net/yyx990803/zwm91b3x/
Note that with v-slot the slot name ends up in the attribute name so it is normalized to all-lowercase by the browser if you write the template inside the DOM.

I have some components like this custom select. Inside I want to display option slot.
 <BaseSelect slot="formGroupField" v-model="selected1">
  <BaseOption slot="option" :value="1">Option 1</BaseOption>
  <BaseOption slot="option" :value="2">Option 2</BaseOption>
</BaseSelect>

I guess it's possible to do something like this:
 <BaseSelect slot="formGroupField" v-model="selected1">
  <template slot="options">
    <BaseOption :value="1">Option 1</BaseOption>
    <BaseOption :value="2">Option 2</BaseOption>
  </template>
</BaseSelect>

(This component can expect other slots).
By the way even if the casing is fixed, only the last "instance" of the same slot is displayed (Left (2) Right (2), I expect Left (1)Left (2) Right (1)Right (2))

In the new syntax you must group elements that belong to the same slot under the same template.


Check the package.xml dependency to roslaunch

The test dependency should only be added if the package contains a test, which means the following line has to be removed or commented:
https://github.com/ipa320/ros-model/blob/master/plugins/de.fraunhofer.ipa.rossystem.xtext/src/de/fraunhofer/ipa/rossystem/generator/RosSystemGenerator.xtend#L315
Remember that the test resources have to be also updated https://github.com/ipa320/ros-model/tree/master/plugins/de.fraunhofer.ipa.rossystem.xtext.tests/resources

solved: https://github.com/ipa320/ros-model/commit/495184396fd9aa0329bfef2374321747ffbb5f55


[Feature] Offline PWA / offline mode

I think it would be great if we can have a PWA ( mainly for desktop )  for appsmith so that users can open appsmith without the need to open the browser at all.
 Front conversations

I definitely support this feature request.
As Appsmith already stores data in a database, the service worker needed by the PWA will be very simple.
The hosted instance already serves the app under https.
Hosted and self-hosted appsmith instances can be made PWA with very little burden.

And it's worth navigating in the code to see that there already is a service worker https://github.com/appsmithorg/appsmith/blob/release/app/client/src/serviceWorker.js

@jibe-b thank you for upvoting this. Could you tell us a bit about your motivation for this feature?

@jibe-b thank you for upvoting this. Could you tell us a bit about your motivation for this feature?

I am often interacting with clients and the mobile version will be very useful to prototype something with them while discussing.
A PWA makes the experience more stable when the connexion is erratic and the cache enables to continue prototyping and have it deployed later.

I am often interacting with clients and the mobile version will be very useful to prototype something with them while discussing.
A PWA makes the experience more stable when the connexion is erratic and the cache enables to continue prototyping and have it deployed later.

Another request for this
Discord chat:
fountainheadYesterday at 10:15 AM
just wondering ... is there any possibility to do offline apps with Appsmith?

Abhishek NayakYesterday at 10:48 AM
How would the experience work? Like save form data offline till internet comes back on?

fountainheadYesterday at 4:15 PM
Yes, that would be fantastic. Basically, I got a requirement for a simple CRUD project for doctors who are inside a hospital with no network. If they can sync up when online, it would be awesome. Simple use-cases with single user crud operations (with no concurrency conflicts) is fine. I am not sure how the app would be stored / refreshed ... but  I am hoping a wrapped up app in a cordova shell or something should hopefully work.

I also support this feature request, but I'd prefer just having a desktop-based client for Appsmith, than full offline capabilities.
I currently use Unite whilst building apps - which lets me focus on an app, without having multiple tabs on my main browser. It also enables Appsmith to appear like a native application within the macOS operating system. I'm unsure what alternatives Windows have, other than using Chrome's Shortcut feature.

I think an integration with PouchDB is a good option to fully support offline first apps and automatically sync centralize database when network available.

In the mean time isn't possible only add a manifest... so we are able to change it?
As of today is already possible "install an appsmith app"  as a browser app... but as manifest dossn't exist if something change (for example start url) we must unsintall the app and install it again

+1

Interesting. Sure making the PWA could provide offline capabilities. But what about just having the fancy shortcut? It might be just a matter of providing the right <meta> tags? Me, as an Appsmith developer, would enable something in the "App Settings" (e.g. PWA settings) to define an icon, default name, etc. The app would still behave the exact same but without the phone's browser headers (internet access still required).
Attaching images of current behavior.


ID for Luatos Core-ESP32C3 board for use with Circuitpython

All the documentation is in chinese but these boards seem to now be pretty widely sold by the usual suspects: https://wiki.luatos.com/chips/esp32c3/board.html

Made the changes. Do you also want me to move the ESP32-CAM id out of espressif, as Ai-Thinker is not espressif either?


Handle an edge case in the rich embed filter.

https://google.com produces an embed with a url https://google.com/. Since those two don't compare equal, the embed filter thinks the embed wasn't auto-generated from a url. We should ignore trailing slashes in urls to reduce false positives.

Was this fixed in #1937?


Upgrade TypeScript to v5 in React-scripts

React-scripts currently relies on TypeScript up to v4, despite the availability of v5 since March. It would greatly benefit developers if the library were also compatible with TypeScript v5, ensuring that those of us already utilizing v5 can avoid any potential dependency conflicts

Are there any plans to move this forward? It's been an issue in one of our projects for a while, and it's looking more and more like we'll have to drop create-react-app.

CRA is pretty much dead. I advise switching to vite. I have done this for a few projects, and it is really straight forward.
See https://github.com/facebook/create-react-app/issues/13289 for reference.

despite two at least two PRs still not resolved. I second @jpgoelz view that it might be best to switch to vite. See https://vitejs.dev/ for more details.


v-tea-redirects

CI 106600
CI 103422

Docs Build status updates of commit b13b14e:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

Line 0: [Error] Two or more files output to the same path 'windows/mixed-reality/environment-considerations-for-hololens.raw.page.json': 'environment-considerations-for-hololens.md', 'environment-considerations-for-hololens.md [redirection]'

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

Docs Build status updates of commit e90641f:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

Line 0: [Error] Two or more files output to the same path 'windows/mixed-reality/hololens-status.raw.page.json': 'hololens-status.md', 'hololens-status.md [redirection]'

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

Docs Build status updates of commit 8690280:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

mixed-reality-docs/environment-considerations-for-hololens.md
:white_check_mark:Succeeded
View

mixed-reality-docs/hololens-status.md
:white_check_mark:Succeeded
View

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


speculative unparse with partial replace

@penberg @mstanichenko what I'm trying to do here is to partially unparse changed fields of the FIX message.
the idea is to prepare message template and then instead of full unparse replace certain changeable fields (like order price, seq num, checksum, etc).
this commit is incomplete because I need to also hack somehow a way to save buffers (head & body) instead of using fix_session's rx buffers. but could you please review the proposed code changes? i'd love to hear your feedback & suggestions.
in terms of performance i've updated fix_perf.c to have one more case:
denis@dc3arb-12:libtrading$ taskset -c 7 ./tools/fix/fix_perf 100000
format/replace 100000 0.189658 µs/message
format     100000 0.371124 µs/message
parse      100000 0.144354 µs/message

@mstanichenko could you please give me your impression / suggestions here? thx!

@divaykin, I am still looking into the code. But if you wish I can start with my thoughts.

I like the idea which you try to implement and the library should support this in one or another way
As far as I can see it, messages' templates are all about handling buffers. If you knew FIX fields' order in advance then you would fill information in the most optimal way. The problem is that we have very limited knowledge of an ongoing message's structure. It is the user should know everything about it. Hence, it is the user who can fill the buffers optimally.
Therefore, we could allow a user to send buffers directly. Such an interface does not exists at the moment but it would allow a user to have templates on their side and safely send buffers in such a 'naked' way. The library can provide helper functions which allow to fill in certain fields (e.g. required by FIX protocol specification)
I am a little bit uncomfortable with the fact that you are trying to implement an interface which is hidden from user's perspective. I can imagine that in certain cases a user knows better what fields are really fixed and what have to be changed. So, I would go from an opposite way as described. Initially, make a user responsible for filling in all fields and accepting just a buffer to send. The next step is to provide some simple functions to fill in certain fileds (fixed or variable). These have to be as simple bricks that help users but not do work for them. That is how I feel this.
I do no like certain assumptions in the code ;)
https://github.com/divaykin/libtrading/blob/speculative-unparse/lib/proto/fix_message.c#L696

@mstanichenko
Yes of course we'd provide a way to send a buffer.
What I'm trying also to provide easy way of building such a buffer for the user. fix_message_pre_unparse_fixed is effectively helper to build a buffer template including all the fields not just FIX protocol specific.
And then there would be a helper method to update the buffer.
There may be a confusion here, by fixed I mean "fixed length" not constant. Perhaps I can use better wording? User now will have macro for building fixed length and variable length fields. Fixed length fields would be automatically updated (variable length you can't update as these would screw the buffer).

@penberg would be great to have your view on this relatively complicated new feature if possible. highly appreciated.

@divaykin What is the exact use case for this?
If there are some fields that are always constant, can't we introduce a struct fix_message_template which you can format once and attach to a struct fix_message which contains the variable fields. The template object would just hold a buffer that's always appended to a formatted FIX message. That way there's no need for new field types (i.e. FIX_INTEGER_FIXED), no?

@penberg the use case - typically trader changes only 2-5 fields in the order, rest (10-15 fields) are constant. the idea is to do faster unparse by using template. what's typically is changed: MsgSeqNum, Checksum, Price, Side, OrderQty.
why we need a new field types - because Price could have variable length (100 is len 3, 99 is len 2). Also MsgSeqNum could become 2-3-4-5 digit long over time. The idea is to zero pad all the integer and float fields what can be changed during template's life time. So we can remember buffer position of fields what we need to change and just update some buffer bytes.
does above help?

@penberg, the fact is that fixed fields do not necessarily go in sequence within a message i.e. it is not always possible just to append a buffer to a formatted FIX message. Moreover, the order which fields go in is of certain importance. It all depends on the underlying exchange and their pecularities.
Some general thoughts probably unrelated to the topic under discussion:
We must admit the fact that users know much better of their internal needs. There are two things that distinguish algorithmic trading nowadays: hard optimization and secrecy. The former inevitably leads to specialization, the latter prevents one from comparing things properly. People are not willing to share much of their experience as it makes them disclose internal details in order to analyze reported results properly. We should keep in mind that developing such a library has its own pecularities and we'd better be very carefull when introducing nontrivial features as it might not be suitable for someone's needs as they have very different setup. In short, we should realize that a new feature makes two opposite forces to act: we attract new users as library becomes more general and distract existing users as generality introduce nonoptimality. If a library is too general it just becomes 'yet another algo-trading library' which is very difficult to be tailored to someone needs. Is there a way to keep a balance? I believe there is. We should keep the library core as thin (trivial/highly optimized) as possible but provide users with certain suggestions how the library can be used to achieve nontrivial logic. We should say something like this. "Hey User, here is the library. Do you need some functionality? Sure, we support that. Here is our way of implementing it. Doesn't suit you? No problem, you are always free to go deeper. Hack the library? No, there is no need to hack the library. It is too small to be hacked :) Just use its interface. If you find something inefficient just send a patch ;) " So, I hope that at some day 'tools/' directory would be dominant. That's how I see it. I apologize for the verbosity.
Back to our topic. I'd start with a custom buffer support i.e. add a possibility for a user to safely pass their own buffers to FIX transferring functions. We can implement additional functionality (if needed) to help users fill in certain FIX fields or manage buffers in a special way but it is user's responsibility to keep buffers consistent internally. We can just help a user to do that. I consider it a first step. We could also provide some examples (under 'toos' direcory) how such templates can be used and what are the performance gains we could expect. Nevertheless, I can't say that such functionality won't appear in the core some day.
Does it make sense to you? What do you think guys?

@divaykin, one more observation. Don't you think that all formatting in general (and zero padding in particular) should be tunable. Certain exchanges might expect a well defined price format for example and you are not allowed to pad anything.

@mstanichenko thanks a lot for your thought, highly appreciated indeed. we've already a patch applied allowing to send a raw buffer.
but the great value of the library is taking a bit of care of session level (i.e. sequence numbers, checksum at least + a bit of headers). would be great to have something what would still take care of session level to certain extent.
basically what we have to do is to zero pad FIX session specific stuff such as MsgSeqNum at least. also it does not make much sense to unparse Sender/TargetCompIDs / other fields again and again.
even more value for me is more or less east / seamless parsing and unparsing of FIX. i really like the libtrading for exactly that.

would be great to have something what would still take care of session level to certain extent.

There is no doubt that the library should support as many features as possible. But even session level could be taken care of in a dozen of possible ways. All I want to say is that we should make a user realize that there are primitives that are somehow optimized and some nontrivial logic which is present but a user is free to implement his own version out of library primitives. I just do not want to end up with a library which implements a complicated and somehow general logic but you have no idea how to adjust it. That was my idea to distinguish between the 'core' and 'tools' parts. The latter is just a suggestion how things could be done while the former contains of aforementioned primitives.

also it does not make much sense to unparse Sender/TargetCompIDs / other fields again and again

Couldn't agree more. It just need to be tunable not to allow anything to happen behind user's back.

even more value for me is more or less east / seamless parsing and unparsing of FIX

Could you please elaborate on this a little bit?
Back to your patch again, so far there was not a particular relation between a fix_field and a buffer structure. That is to say, we were free to change the underlying buffer structure and it would not hurt fix_field semantics. By introducing extra fields (e.g. buf_off) you somehow bind a field and a particular buffer hence making things less flexible.

even more value for me is more or less east / seamless parsing and unparsing of FIX
Could you please elaborate on this a little bit?

Well just sending a buffer to the socket - you don't need libtrading, just use send(2) and that's it. Handling session layer, assigning automatically MsgSeqNum and Checksum is nice but I'd not bother with libtrading to do that either. However fix_message_parse and fix_message_unparse are already valuable abstractions. It's just standard unparse (even though it's very fast already) could be made better. But if during process of improvement unparse would become suddenly much lower level half of the library value would be gone.

Back to your patch again, so far there was not a particular relation between a fix_field and a buffer structure. That is to say, we were free to change the underlying buffer structure and it would not hurt fix_field semantics. By introducing extra fields (e.g. buf_off) you somehow bind a field and a particular buffer hence making things less flexible.

Let's say I don't care at the moment about field ordering (apart from header and Checksum). How about introducing third buffer in the fix_message (head, body1 and body2) where body1 is sort of a constant buffer?
Could you please also propose interface for tuning header fields (zero padding)? And how then we can make the core to not unparse constant header fields each time? Yet another buffer (head1, head2)?

AFAICT, I like the idea of body1 (which could be called template_body or const_body). @mstanichenko, thoughts?

@divaykin,

However fix_message_parse and fix_message_unparse are already valuable abstractions

Exactly, this is the core functionality! I would say that these are the functions that have to be optimized as much as possible. It's a primary thing. Handling a session level is very nice to have indeed but it doesn't have to be as perfect as core functionality. Although it doesn't have to be bad as well ;) I am glad that existing functionality serves your needs to certain extent
@penberg,

AFAICT, I like the idea of body1 (which could be called template_body or const_body)

We can only support 'append'-like operations on the structure. For example, we cannot effectively insert a buffer in the middle of the other buffer. If a single const buffer can suit all our needs I am all in. But I doubt that it is really the case. So, if it is implemented I don't have any objections against. I just don't want to lose an ability to fully control the buffer that I want to transfer.

@mstanichenko what's the best way to tune header fields - MsgSeqNum zero padding specifically? perhaps a flag in fix_unparse_flags?

I should admit I don't know a good answer right now :)
Padding is not bad by itself. It just implies the following:

It make you have assumtions i.e. MsgSeqNum is not greater than say 1000000 because we allocate exactly six digits for it. Assumptions is not always good as they tend to be broken.
Exchange specifics might prevent you from doing that. I don't know if it is the case with MsgSeqNum but Price can be an example. Some might expect the exact number decimal places which depends on the contract you trade

I'll try to come up with some design


InvalidStateError raised

Description
TL;DR I think there is a race condition in setting the future's result using get_loop(future).call_soon_threadsafe(future.set_result, result) causing the InvalidStateError to be raised if the future is already cancelled/timeout
I am running sqlite on my embedded PC for pulling messages from the SQLite database
    async def get_all_unsent(self, query_batch: int = 100) -> typing.AsyncGenerator:
        _id = 0
        while True:
            results_q = await self.conn.execute(
                "SELECT * from mqtt WHERE mqtt.id > ? ORDER BY id LIMIT ?",
                (_id, query_batch),
            )
            headings = [desc[0] for desc in results_q.description]
            results = await results_q.fetchall()
            if not results:
                break
            for res in results:
                res = {key: value for key, value in zip(headings, res)}
                _id = res.pop("id")
                yield res

In my logs I got the following errors
handle: <Handle Future.set_result(<sqlite3.Curs...at 0xa0e887a0>)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
asyncio.base_futures.InvalidStateError: invalid state
2020-09-02 23:37:41,690 MainThread      ERROR    base_events    :1604     Exception in callback Future.set_result(<sqlite3.Curs...at 0xa0da0b60>)
handle: <Handle Future.set_result(<sqlite3.Curs...at 0xa0da0b60>)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
asyncio.base_futures.InvalidStateError: invalid state
2020-09-02 23:44:08,571 MainThread      ERROR    base_events    :1604     Exception in callback Future.set_result(<sqlite3.Curs...at 0xa0da9460>)
handle: <Handle Future.set_result(<sqlite3.Curs...at 0xa0da9460>)>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
asyncio.base_futures.InvalidStateError: invalid state

Looking through the code I noticed that there is a possible race condition due to the main run loop running in a thread. If the future is cancelled before the threadsafe call_soon sets it, we would get an InvalidStateError.
def run(self) -> None:
        """
        Execute function calls on a separate thread.
        :meta private:
        """
        while self._running:
            try:
                future, function = self._tx.get(timeout=0.1)
            except Empty:
                continue

            try:
                LOG.debug("executing %s", function)
                result = function()
                LOG.debug("returning %s", result)
                get_loop(future).call_soon_threadsafe(future.set_result, result)
            except BaseException as e:
                LOG.exception("returning exception %s", e)
                get_loop(future).call_soon_threadsafe(future.set_exception, e)

One unanswered question I have is that I didn't do anything to explicitly cancel or set the future's result and so I'm not sure how it got into this InvalidState.
Details

OS: Debian 8
Python version: 3.7.4
aiosqlite version: 0.15.0
Can you repro on 'main' branch? Hard to reproduce
Can you repro in a clean virtualenv? Hard to reproduce

I looked into it further and it is not my query to get all unsent messages but my insert query. I have a delayed insert that I can cancel before the query completes.
I'm now pretty sure that the issue is with the call_soon_threadsafe directly calling future.set_result and future.set_exception.


add 'hide replies mentioning blocked user'

i know there's the 'Hide tweets quoting accounts you've blocked or muted' option which i have enabled, but I still see tweets in reply to someone who has me blocked and who i block in return. it's driving me nuts only seeing half a conversation. I dont want to see any of the conversation if possible!

Is this in the timeline or in tweet threads elsewhere?
If you could provide a screenshot of what it looks like (and redact names/messages if you don't want to share those) I could have a look at this, as I don't think I've ever been in a conversation with someone I've mutually blocked on here.

it's on my timeline, but it's not a conversation i'm involved/mentioned in. it's people i follow who are replying to or mentioning the mutual blocked account and i can see the people i follows replies.
example of mutual block being mentioned on my timeline

I can't scroll back further than 5 hours on my timeline at the moment for some reason, so I haven't been able to get an example of my timeline showing replied to the mutually blocked account.

Tweak New Twitter doesn't know anything about your block list and can only work with whatever tweets Twitter loads into the timeline, if they're showing you this in the open there's not much I can do about it.


Filament document small issue

Maybe here https://google.github.io/filament/Filament.md.html#materialsystem/clearcoatmodel
"...the clear coat layer will always be isotropic and dielectric ..." you mean conductor?

No the clear coat layer is not a conductor. It is not a metallic layer.


Fix spelling error.

Automated message from Dropbox CLA bot
@sup95, it looks like you've already signed the Dropbox CLA. Thanks!

I changed the commit message to provide some clarity about where the spelling error was, and merged this.  Thanks @sup95!


port mapping for LFS missing

Syncing LFS objects to my DataHUB instance was not possible. When Syncing with ARC commander and a LFS file present in the ARC I got the following error message:
GIT: LFS: Put "some address": dial tcp <IP_ADDRESS>:80: connect: connection refused
I used the docker compose method described in this repository on my laptop using the docker-compose file listed in the README. As external address I used localhost.
I am not sure if this simply a problem because it is a local installation or if the port mapping is missing in the docker-compose file or if this could be an issue of arccommander.
Current Solution
add the mapping for port 80 to the docker compose file in the ports section:
- '<IP_ADDRESS>:80:80'

this seams to be a problem of the local installation


Unable to compile Unity Android plugins

Hello,
I submitted this through the Cycling 74 support, and they asked me to also post this here.
I’m struggling to get RNBO plugins to properly compile for Unity Android. I’ve been able to compile for Mac and PC (on respective platforms) but am unable to compile the same patches for Unity Android. I’ve been following along with the github docs but keep running into the same issue where it appears as though all of the files are created properly in the initial step, but then when building I get a number of errors that appear to be related to the RNBOWrapper.cpp. I’ve included the output errors below, which hopefully you can make sense of. I also fully understand that this repo is still in an experimental stage, so mainly want to draw attention to the issues and see if there is a current solution, or if perhaps there was some issue with my approach.
Thanks!
steps : Following the build steps on the RNBO Unity Audio Plugin repo, specifically for Android building
notes : This is console output, including the commands I inputted to start the build process:
PS E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build> cmake .. -DANDROID_ABI=arm64-v8a -DCMAKE_TOOLCHAIN_FILE="C:\Program Files\Unity\Hub\Editor\2022.2.0f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\build\cmake\android.toolchain.cmake" -DPLUGIN_NAME="MyChorus" -DANDROID_PLATFORM=29 -DPLUGIN_UNITY_PLATFORM_NAME=Android
-- Building for: Visual Studio 17 2022
-- Android: Targeting API '29' with architecture 'arm64', ABI 'arm64-v8a', and processor 'aarch64'
-- Android: Selected unified Clang toolchain
-- The CXX compiler identification is unknown
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Unity/Hub/Editor/2022.2.0f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe - skipped
-- building for Android with bit depth 64 for CPU ARM64
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done (3.2s)
-- Generating done (0.0s)
-- Build files have been written to: E:/Repos/RNBO Unity Plugins/RNBO Build SRC/build
PS E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build> cmake --build .
MSBuild version 17.5.0+6f08c67f3 for .NET Framework
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
ANDROID_SDK_ROOT=C:\Program Files (x86)\Android\android-sdk
ANT_HOME=
JAVA_HOME=C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08
NDK_ROOT=C:\Microsoft\AndroidNDK\android-ndk-r23c
Checking Build System
ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
ANDROID_SDK_ROOT=C:\Program Files (x86)\Android\android-sdk
ANT_HOME=
JAVA_HOME=C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08
NDK_ROOT=C:\Microsoft\AndroidNDK\android-ndk-r23c
Building Custom Rule E:/Repos/RNBO Unity Plugins/RNBO Build SRC/CMakeLists.txt
RNBOWrapper.cpp
In file included from :380:
(1,9): warning : 'ANDROID_API' macro redefined [-Wmacro-redefined] [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
#define ANDROID_API 29
^
(370,9): note: previous definition is here
#define ANDROID_API ANDROID_MIN_SDK_VERSION
^
In file included from E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp:7:
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\export\rnbo\src\3rdparty\readerwriterqueue/readerwriterqueue.h(93,6): error : cannot use 'throw' with exceptions disabled [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\R
NBOUnityPlugin.vcxproj]
throw std::bad_alloc();
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\export\rnbo\src\3rdparty\readerwriterqueue/readerwriterqueue.h(108,5): error : cannot use 'throw' with exceptions disabled [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build
RNBOUnityPlugin.vcxproj]
throw std::bad_alloc();
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(22,23): error : no type named 'shared_mutex' in namespace 'std'; did you mean 'timed_mutex'? [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityP
lugin.vcxproj]
using rw_mutex = std::shared_mutex;
timed_mutex
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\mutex(235,24): note: 'timed_mutex' declared here
class _LIBCPP_TYPE_VIS timed_mutex
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(23,42): error : no template named 'shared_mutex' in namespace 'std'; did you mean 'shared_ptr'? [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUni
tyPlugin.vcxproj]
using write_lock = std::unique_lock<std::shared_mutex>;
~~~~~^~~~~~~~~~~~
shared_ptr
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\memory(3698,28): note: 'shared_ptr' declared here
class _LIBCPP_TEMPLATE_VIS shared_ptr
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(23,42): error : use of class template 'std::shared_ptr' requires template arguments [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcx
proj]
using write_lock = std::unique_lock<std::shared_mutex>;
^
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\memory(3698,28): note: template is declared here
class _LIBCPP_TEMPLATE_VIS shared_ptr
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(24,24): error : no template named 'shared_lock' in namespace 'std' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
using read_lock = std::shared_lock<std::shared_mutex>;
~~~~~^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(24,41): error : no template named 'shared_mutex' in namespace 'std'; did you mean 'shared_ptr'? [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUni
tyPlugin.vcxproj]
using read_lock = std::shared_lock<std::shared_mutex>;
~~~~~^~~~~~~~~~~~
shared_ptr
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\memory(3698,28): note: 'shared_ptr' declared here
class _LIBCPP_TEMPLATE_VIS shared_ptr
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(246,33): error : copying variable of type 'std::atomic<Callback *>' invokes deleted constructor [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUni
tyPlugin.vcxproj]
static std::atomic<Callback *> globalTransportCallback = nullptr;
^ ~~~~~~~
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\atomic(1774,7): note: copy constructor of 'atomic<(anonymous namespace)::Callback *>' is implicitly deleted because base class '__atomic
_base<(anonymous namespace)::Callback *>' has a deleted copy constructor
: public __atomic_base<_Tp*>
^
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\atomic(1649,5): note: '__atomic_base' has been explicitly marked deleted here
__atomic_base(const __atomic_base&) = delete;
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(254,49): error : copying member subobject of type 'std::atomic<Callback *>' invokes deleted constructor [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build
\RNBOUnityPlugin.vcxproj]
std::atomic<Callback *> mTransportCallback = nullptr;
^~~~~~~
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\atomic(1774,7): note: copy constructor of 'atomic<(anonymous namespace)::Callback *>' is implicitly deleted because base class '__atomic
_base<(anonymous namespace)::Callback *>' has a deleted copy constructor
: public __atomic_base<_Tp*>
^
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\atomic(1649,5): note: '__atomic_base' has been explicitly marked deleted here
__atomic_base(const __atomic_base&) = delete;
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(373,5): error : unknown type name 'write_lock' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
write_lock wlock(instances_mutex);
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(409,4): error : unknown type name 'write_lock' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
write_lock wlock(instances_mutex);
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(508,3): error : use of undeclared identifier 'read_lock'; did you mean 'realloc'? [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxpr
oj]
read_lock rlock(RNBOUnity::instances_mutex);
^~~~~~~~~
realloc
C:\\Microsoft\AndroidNDK\android-ndk-r23c\toolchains\llvm\prebuilt\windows-x86_64\sysroot\usr\include\malloc.h(61,7): note: 'realloc' declared here
void* realloc(void* __ptr, size_t __byte_count) __BIONIC_ALLOC_SIZE(2) __wur;
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(508,12): error : expected ';' after expression [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
read_lock rlock(RNBOUnity::instances_mutex);
^
;
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(508,3): warning : expression result unused [-Wunused-value] [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
read_lock rlock(RNBOUnity::instances_mutex);
^~~~~~~~~
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(508,13): error : use of undeclared identifier 'rlock' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
read_lock rlock(RNBOUnity::instances_mutex);
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(525,2): error : unknown type name 'write_lock' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
write_lock wlock(RNBOUnity::instances_mutex);
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(549,2): error : unknown type name 'write_lock' [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
write_lock wlock(RNBOUnity::instances_mutex);
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(581,7): error : use of class template 'std::lock_guard' requires template arguments [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcx
proj]
std::lock_guard guard(localmutex);
^
C:\\Microsoft\AndroidNDK\android-ndk-r23c\sources\cxx-stl\llvm-libc++\include\__mutex_base(80,1): note: template is declared here
lock_guard
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(587,3): error : cannot use 'try' with exceptions disabled [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
try {
^
E:\Repos\RNBO Unity Plugins\RNBO Build SRC\src\RNBOWrapper.cpp(625,4): error : cannot use 'try' with exceptions disabled [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
try {
^
CLANGCOMPILE : fatal error : too many errors emitted, stopping now [-ferror-limit=] [E:\Repos\RNBO Unity Plugins\RNBO Build SRC\build\RNBOUnityPlugin.vcxproj]
2 warnings and 20 errors generated.

system : Windows 10, Dell G5 Desktop, MaxMSP 8.5.4

expected : Should produce an arm64 android plugin for Unity
actual : Several errors are thrown in relation to eh RNBOWrapper.cpp (included below)

I'm going to look into this further but it looks like Visual Studio was getting in the way on my end.. I switched the generator to "Unix Makefiles" and built successfully
C:\Users\xnor\dev\rnbo.unity.audioplugin\build>cmake .. -DANDROID_PLATFORM=29 -DANDROID_ABI=arm64-v8a -DCMAKE_TOOLCHAIN_FILE="C:\Program Files\Unity\Hub\Editor\2021.3.16f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\build\cmake/android.toolchain.cmake" -DRNBO_EXPORT_DIR="Z:\Documents\export\sync-cycle" -DRNBO_CPP_DIR="Z:\Documents\export\sync-cycle\rnbo" -DPLUGIN_NAME="Sync Cycle" -G"Unix Makefiles"
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Unity/Hub/Editor/2021.3.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- building for Android with bit depth 64 for CPU ARM64
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/xnor/dev/rnbo.unity.audioplugin/build

C:\Users\xnor\dev\rnbo.unity.audioplugin\build>cmake --build .
[ 20%] Building CXX object CMakeFiles/RNBOUnityPlugin.dir/src/RNBOWrapper.cpp.o
[ 40%] Building CXX object CMakeFiles/RNBOUnityPlugin.dir/src/AudioPluginUtil.cpp.o
[ 60%] Building CXX object CMakeFiles/RNBOUnityPlugin.dir/Z_/Documents/export/sync-cycle/rnbo_source.cpp.o
[ 80%] Building CXX object CMakeFiles/RNBOUnityPlugin.dir/Z_/Documents/export/sync-cycle/rnbo/RNBO.cpp.o
[100%] Linking CXX shared module SyncCycle/Assets/Plugins/Android/arm64-v8a/libSyncCycle.so
[100%] Built target RNBOUnityPlugin

for future reference: https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling-for-android
and the examples for calling cmake on the commandline for NDK builds on windows use Ninja
https://developer.android.com/studio/projects/configure-cmake#call-cmake-cli

@BrianTopp interesting, I added some notes RE my experience with building for Android on windows: https://github.com/Cycling74/rnbo.unity.audioplugin#notes-for-cross-compiling-for-android-on-windows
I am also running VS 2022 and I don't see those same issues RE the locks. Here is my commandline for reference:
C:\Users\xnor\dev\rnbo.unity.audioplugin\build-vs>cmake .. -DANDROID_PLATFORM=29 -DANDROID_ABI=arm64-v8a -DCMAKE_TOOLCHAIN_FILE="C:\Program Files\Unity\Hub\Editor\2021.3.16f1\Editor\Data\PlaybackEngines\AndroidPlayer\NDK\build\cmake/android.toolchain.cmake" -DRNBO_EXPORT_DIR="Z:\Documents\export\sync-cycle" -DRNBO_CPP_DIR="Z:\Documents\export\sync-cycle\rnbo" -DPLUGIN_NAME="Sync Cycle" -DANDROID_CPP_FEATURES=exceptions
-- Building for: Visual Studio 17 2022
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Unity/Hub/Editor/2021.3.16f1/Editor/Data/PlaybackEngines/AndroidPlayer/NDK/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- building for Android with bit depth 64 for CPU ARM64
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/xnor/dev/rnbo.unity.audioplugin/build-vs

C:\Users\xnor\dev\rnbo.unity.audioplugin\build-vs>cmake --build .
MSBuild version 17.5.0+6f08c67f3 for .NET Framework

  ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
  ANDROID_SDK_ROOT=C:\Program Files (x86)\Android\android-sdk
  ANT_HOME=
  JAVA_HOME=C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08
  NDK_ROOT=C:\\Microsoft\AndroidNDK\android-ndk-r23c
  Checking Build System
  ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
  ANDROID_SDK_ROOT=C:\Program Files (x86)\Android\android-sdk
  ANT_HOME=
  JAVA_HOME=C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08
  NDK_ROOT=C:\\Microsoft\AndroidNDK\android-ndk-r23c
  Building Custom Rule C:/Users/xnor/dev/rnbo.unity.audioplugin/CMakeLists.txt
  RNBOUnityPlugin.vcxproj -> C:\Users\xnor\dev\rnbo.unity.audioplugin\build-vs\SyncCycle\Assets\Plugins\Android\arm64-v8a\libSyncCycle.so
  ANDROID_HOME=C:\Program Files (x86)\Android\android-sdk
  ANDROID_SDK_ROOT=C:\Program Files (x86)\Android\android-sdk
  ANT_HOME=
  JAVA_HOME=C:\Program Files\Android\jdk\jdk-8.0.302.8-hotspot\jdk8u302-b08
  NDK_ROOT=C:\\Microsoft\AndroidNDK\android-ndk-r23c
  Building Custom Rule C:/Users/xnor/dev/rnbo.unity.audioplugin/CMakeLists.txt

Thanks!  Yeah, after your previous comments I switched to using Ninja, and that seems to have solved all build issues on my end.  I'm not sure what the issue with VS 2022 was.  It looks like the only difference in what you've just posted is the "-DANDROID_CPP_FEATURES=exceptions", but I've tried recompiling with that argument and am still getting the same lock errors.  I'll continue to use Ninja as that works well.  Thanks for your help!


Wrong "No Error Handler" conversion

Testing a simple Camel route with a "no error handler" is resolving in the following code:
- errorHandler: {}

However it seems this is wrong, as it doesn't run. The correct way to handle this seems to be:
- errorHandler:
    noErrorHandler: {}

Tested with Camel 4.9.0

Hi @squakez, thanks for raising this issue. What environment did you use? VS Code or the online version?
By default, when adding an errorHandler, it's not configured until you open the config panel and pick your desired errorHandler.

That being said, we could instantiate an errorHandler with noErrorHandler preselected, but I'm wondering what would be the difference between having noErrorHandler vs not having an errorHandler at all :sweat_smile:
As far as I can see, in the online version, selecting noErrorHandler serializes
- errorHandler:
    noErrorHandler: {}

but it looks like it's not the case in VS Code

It seems it's the same situation for Ref Error Handler

Hello. I've used the online tool. I didn't test in VSCode.


Incorrect joint when inflating with a 180 degree turn

Hello again :)
This is somewhat a "sequel" to #366. I've got to updating the library and ran the tests again. The issue I've had with the holes got fixed, but another one popped up. If the line goes right and then snaps to the left, the joint is created correctly, but if it goes left and snaps to the right, the round joint is missing.
Here is a comparison between Clipper 1, previous version of 2 and current main:

If I check building of the joint, it looks like it is getting built on the wrong side:

And then the hole just gets "closed" on the reverse pass.
Below is the test code:
#ifdef HAVE_CLIPPER2

#include <clipper2/clipper.h>

#include <iostream>
#include <sstream>
#include <string>

std::string ToString(const Clipper2Lib::Paths64 & obj)
{
	std::ostringstream ss;
	ss << "Paths: '";
	for (size_t i = 0; i < obj.size(); ++i) {
		for (size_t j = 0; j < obj[i].size(); ++j) {
			ss << (j == 0 ? "M " : " L ") << obj[i][j].x << " " << obj[i][j].y;
		}
		ss << (i == obj.size() - 1 ? " Z" : " Z ");
	}
	ss << "'";
	return ss.str();
}

int main(int argc, char * argv[])
{
	const Clipper2Lib::Paths64 paths{
	    {{30, 0}, {40, 0}},
	    {{60, 0}, {70, 0}},
	    {{90, 0}, {94, 0}, {88, 0}},
	    {{68, 0}, {58, 0}},
	    {{38, 0}, {28, 0}},
	    {{8, 0}, {0, 0}, {10, 0}},
	};

	Clipper2Lib::ClipperOffset offset;
	offset.AddPaths(paths, Clipper2Lib::JoinType::Round, Clipper2Lib::EndType::Butt);
	const Clipper2Lib::Paths64 result = offset.Execute(10);

	std::cout << ToString(result) << '\n';

	return 0;
}

#else

#include <clipper/clipper.hpp>

#include <iostream>
#include <sstream>
#include <string>

std::string ToString(const ClipperLib::Paths & obj)
{
	std::ostringstream ss;
	ss << "Paths: '";
	for (size_t i = 0; i < obj.size(); ++i) {
		for (size_t j = 0; j < obj[i].size(); ++j) {
			ss << (j == 0 ? "M " : " L ") << obj[i][j].X << " " << obj[i][j].Y;
		}
		ss << (i == obj.size() - 1 ? " Z" : " Z ");
	}
	ss << "'";
	return ss.str();
}

int main(int argc, char * argv[])
{
	const ClipperLib::Paths paths{
	    {{30, 0}, {40, 0}},
	    {{60, 0}, {70, 0}},
	    {{90, 0}, {94, 0}, {88, 0}},
	    {{68, 0}, {58, 0}},
	    {{38, 0}, {28, 0}},
	    {{8, 0}, {0, 0}, {10, 0}},
	};

	ClipperLib::ClipperOffset offset;
	offset.AddPaths(paths, ClipperLib::jtRound, ClipperLib::etOpenButt);
	ClipperLib::Paths result;
	offset.Execute(result, 5);

	std::cout << ToString(result) << '\n';

	return 0;
}

#endif

Yep, another bug. I'll fix it ASAP.

in clipper.offset.cpp in OffsetPoint() ~line 284, replace...
  else if ((reversing && AlmostZero(cos_a + 1, 0.01)) ||
      (sin_a * group_delta_ < 0)) // is concave

with
  else if (!AlmostZero(cos_a + 1,  0.01) && (sin_a * group_delta_ < 0))

Hmm, this way the joints are fixed, but the hole returned, though it looks a bit different:

try this ...
void ClipperOffset::DoRound(Group& group, const Path64& path, size_t j, size_t k, double angle)
{
	Point64 pt = path[j];
	PointD offDist = PointD(norms[k].x * group_delta_, norms[k].y * group_delta_);
	if (j == k) offDist.Negate();
	group.path.push_back(Point64(pt.x + offDist.x, pt.y + offDist.y));

	if (angle > 0.01 - PI)	// avoid 180deg concave
	{
		int steps = std::max(2, static_cast<int>(
			std::floor(steps_per_rad_ * std::abs(angle))));
		double step_sin = std::sin(angle / steps);
		double step_cos = std::cos(angle / steps);
		for (int i = 1; i < steps; ++i) // ie 1 less than steps
		{
			offDist = PointD(offDist.x * step_cos - step_sin * offDist.y,
				offDist.x * step_sin + offDist.y * step_cos);
			group.path.push_back(Point64(pt.x + offDist.x, pt.y + offDist.y));
		}
	}
	group.path.push_back(GetPerpendic(path[j], norms[j], group_delta_));
}

With both patches it looks correct now:

Don't see any issues popping up in my other tests either.
Thank you for a quick fix!


date parsing: "Thu, 17 Dec 2015 02:14:42 EST" doesn't parse but apparently it should

utop # Syndic_date.of_rfc822 "Thu, 17 Dec 2015 02:14:42 CEST";;
Exception:
Invalid_argument "Syndic.Date.of_string: cannot parse \"Thu, 17 Dec 2015 02:14:42 CEST\"".
utop # Syndic_date.of_rfc822 "Thu, 17 Dec 2015 02:14:42 +0500";;
- : Syndic_date.t = <abstr>

according to http://www.w3.org/Protocols/rfc822/ section 5.1, it's Syndic_date.of_rfc822 that's in the wrong.

I'll probably suggest a patch...

Reading https://github.com/Cumulus/Syndic/blob/master/lib/syndic_date.ml#L55-L67 I wonder if my bug report matches the semantics of the current version of Syndic (I suspect not). However, it doesn't affect the fact that those American timezones are not handled correctly since it's done in https://github.com/Cumulus/Syndic/blob/master/lib/syndic_date.ml#L38-L47.

https://github.com/Cumulus/Syndic/pull/64 should fix this.


release request

Hi there,
do you have a roadmap for next release? I would love to get the overlap parameter configurable :)

Hi Tommaso, we've released v0.0.11 with the overlap parameter now. Enjoy :)


rspec example loses the to_return portion of a stub?

Please check the stackoverflow issue here:
https://stackoverflow.com/questions/40688496/stub-request-method-loses-the-to-return-portion
I'm not good enough to get you an entirely separate app with just this test - you can see what rspec tells me to stub, if you stub it out, then run a spec, it appears to forget about the "and_return" portion of the stub.  Then it fails for obvious reasons.  I can't see what I'm doing wrong - I've copied / pasted the message directly from the terminal that rspec suggests.

This appears to be happening with multiple such stub_reqeusts in different specs.
Here is a list of the rspec related gems in Gemfile.lock:
rspec (3.5.0)
      rspec-core (~> 3.5.0)
      rspec-expectations (~> 3.5.0)
      rspec-mocks (~> 3.5.0)
    rspec-core (3.5.4)
      rspec-support (~> 3.5.0)
    rspec-expectations (3.5.0)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.5.0)
    rspec-mocks (3.5.0)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.5.0)
    rspec-rails (3.5.2)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      railties (>= 3.0)
      rspec-core (~> 3.5.0)
      rspec-expectations (~> 3.5.0)
      rspec-mocks (~> 3.5.0)
      rspec-support (~> 3.5.0)
    rspec-support (3.5.0)

stub_request is not provided by RSpec.  It is provided by webmock.  If you're having problems with it, please report them to the webmock maintainers.  We don't have the capacity to help RSpec users troubleshoot issues they are having with other gems.


add Blue Dolphin theme

Here is a nice theme for those who is tired from solarized ))

Thank you!!


"Force Blinn over GGX" option not useful anymore

The optimized GGX merged in #22483 is faster than Blinn (which uses exp2 and pow), so this option should be removed, or at least should be disabled by default in GLES2.
An alternative and useful option would be to force low-quality approximation for GGX over the usual one.

@reduz Similar optimization (from Filament docs) for the anisotropic case was also adapted in that same PR so it's now too slow now. Maybe anisotropy can be enabled in GLES2 now (assuming there aren't any other limitations)?

I went ahead and refactored the calculation of H, L.H and N.H #22639 to avoid double calculations

This has been completed correct?

Yes

Solved by #22639.

Ah, no, it's not solved. What I mean is everything required for obsoleting forced Blinn+Lambert is done.
This issue is about actually making them obsolete (or removing them altogether) which hasn't been done


gradle: Increase jaxb_api version to 2.2.2

To match the documentation in blackbox/docs/admin/discovery.txt and
the version used in
es/upstream/plugins/discovery-azure-classic/build.gradle

Codecov Report

Merging #6699 into master will decrease coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #6699      +/-   ##
============================================
- Coverage     82.89%   82.89%   -0.01%
- Complexity    13347    13350       +3
============================================
  Files          1527     1527
  Lines         49705    49705
  Branches       5959     5959
============================================
- Hits          41205    41204       -1
- Misses         5658     5668      +10
+ Partials       2842     2833       -9

Impacted Files
Coverage Δ
Complexity Δ

...in/java/io/crate/lucene/match/CrateRegexQuery.java
43.47% <0%> (-30.44%)
4% <0%> (-4%)

...main/java/io/crate/data/CollectingRowConsumer.java
69.23% <0%> (-15.39%)
4% <0%> (-1%)

.../java/io/crate/planner/node/dql/join/JoinType.java
64.7% <0%> (-5.89%)
6% <0%> (ø)

...ration/reference/doc/lucene/IpColumnReference.java
72.72% <0%> (-4.55%)
5% <0%> (+1%)

...rc/main/java/io/crate/analyze/symbol/Function.java
94.11% <0%> (-2.95%)
17% <0%> (-1%)

...crate/executor/transport/TransportShardAction.java
73.68% <0%> (-2.64%)
8% <0%> (ø)

...aggregation/impl/StandardDeviationAggregation.java
64.7% <0%> (-1.97%)
11% <0%> (ø)

.../java/io/crate/protocols/http/HttpBlobHandler.java
66.41% <0%> (-1.53%)
48% <0%> (-1%)

...o/crate/executor/transport/ShardUpsertRequest.java
88.55% <0%> (-1.21%)
31% <0%> (-1%)

...executor/transport/TransportShardUpsertAction.java
85.43% <0%> (-1%)
76% <0%> (-2%)

... and 20 more

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 12b51ca...11dde94. Read the comment docs.


Prefix and IPAddress ip_version filters are not multivalue

Proposed Changes
In #3954 these filters were changed to django_filters.NumberFilter to work around an error in the dynamic groups edit form. Single value filters are inconsistent with the rest of the filters in Nautobot. This should be reverted back to a multi value filter and the dynamic groups form fixed.

Justification
Consistent filter behavior

django_filters.NumberFilter should default o multi-value globally.

Hey team! Please add your planning poker estimate with Zenhub @bryanculver @gsnider2195 @HanlinMiao @jathanism


Fix #44776 - Error on "Undo Last Commit" if executed against the initial commit

Fix for the issue #44776. Why I fixed this way is written in https://github.com/Microsoft/vscode/issues/44776#issuecomment-378942407.
Please have a look 😉

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

@ryu1kn While tests are great, I'm not too happy in having stubs in the git tests. Either make them not use stubs, or remove them.

Repository’s getCommit and deleteRef are not pure function and make side effects; so i need to stub dependency or record the call from the repository. If you don’t want stub, i think i have to remove the tests i wrote...

@joaomoreno Can you think of better way of writing those tests? I believe those tests, especially the ones for Repository#getCommit are showing what you can expect from the method and so valuable. I wonder if we want to keep them.

Or I can test not the whole Repository#getCommit but only the logic of parsing git output by extracting it as an exported function. I usually don't export things from a module only for testing purpose, but looks like this is how we do it.

@joaomoreno Haven't had a chance to look at it again?

Thanks! 🍻


Tracing support

When debugging an issue, we could use more information about API call stacks.
E.g.
A)
FUSE calls 'open' which in turn can make many calls to GetFile ... it would be great if we could associate that single FUSE request to the subsequent many GetFile requests.
B)
Internally within PPS, within CreateJob we make several calls to PFS API methods StartCommit ... etc
It would be helpful to be able to trace these types of requests through.

Not sure if these will turn out to be useful, but we had a system at Google that was broadly used for similar kinds of tracing called Dapper. There are a few open-source systems that look like they're trying to do the same thing:
http://opentracing.io/
http://zipkin.io/  (just based on the screenshots, this looks very similar to dapper)
http://htrace.incubator.apache.org/
http://www.x-trace.net/wiki/doku.php

gRPC integration with OpenTracing: https://github.com/grpc-ecosystem/grpc-opentracing/tree/master/go/otgrpc

@sjezewski @msteffen Is this relevant?

Yea, this is some outstanding tech debt. We haven't gotten to it, but it would up level our debug tools.

Initial solution to this implemented in https://github.com/pachyderm/pachyderm/pull/3541
Still to do:

Trace HTTP calls (e.g. put-file <url>).

Right now the time spent waiting for an HTTP response shows up as a huge unexplained stretch in the span

Tag RPCs

Right now we have generic spans reported by a gRPC interceptor, but if we implemented tracing versions of each of our clients, then we could tag spans (e.g. GetFile and PutFile could include the name of the file being gotten/put).
We've already done this in a limited way with src/server/pkg/obj/tracing.go

At this point we have tracing that seems to satisfy our needs in that when we need to get a closer look at what's going on in a user's cluster we turn on tracing and we get the info. I'm going to close this issue since I don't think it's tracking anything specific, if you want to see improvements to tracing feel free to reopen and clarify or open more specific issues.


Add functions Join and Unwrap

This PR adds functions Join and Unwrap. In go1.13+ it delegates the implementations to the stdlib, in older versions the current stdlib implementations are copied over into this library.
It also cleans up the comments on some of the functions and runs gofmt which adds the updated build constraints.
Closes #42.

Thanks!


Releases thud/sumo v2019.12 - docs master

@kacf  I haven't pushed the tags yet; do you want to have a look?


Add flaky for tests seen as failing

Let's instead use a more integrated solution: pypi.org/p/pytest-rerunfailures / pytest-dev/pytest-rerunfailures. I saw it being used in the pip's CI and it's trusted.

I checked it and you are welcomed to repurpose this PR and use that plugin instead, it seems as a maintained one.

Do we still need this?

I moved it to draft as to make it it clear that we need to wait until we have some tests randomly failing. Those that are in current PR are not longer doing this.