E       NotImplementedError: properties has not been implemented yet.

../.tox/performance-tests/lib/python3.8/site-packages/braket/default_simulator/simulator.py:447: NotImplementedError
...
========================================================================================== short test summary info ===========================================================================================
FAILED performance/test_performance.py::test_grcs_simulation - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_qft[4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_qft[8] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_qft[12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_qft[16] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[2-4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[2-12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[2-20] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[6-4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[6-12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[6-20] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[10-4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[10-12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[10-20] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[14-4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[14-12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[14-20] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[18-4] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[18-12] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit[18-20] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit_result_types[results0] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit_result_types[results1] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit_result_types[results2] - NotImplementedError: properties has not been implemented yet.
FAILED performance/test_performance.py::test_layered_continuous_gates_circuit_result_types[results3] - NotImplementedError: properties has not been implemented yet.
============================================================================================= 24 failed in 3.44s =============================================================================================
ERROR: InvocationError for command /usr/bin/sh -c performance/compare_performance.sh (exited with code 1)
__________________________________________________________________________________________________ summary ___________________________________________________________________________________________________
ERROR:   performance-tests: commands failed

System information
A description of your system. Please provide:

Amazon Braket Python Default Simulator version: v1.2.1.dev0
Python version: 3.8.5

Fixed in #70


Design alert signals and thresholds

As a project developer, I want to predefine the set of telemetry signals and corresponding  thresholds that should trigger action, so that project developers can build the necessary supporting queries and IaC

[ ] Design doc created that outlines the list of telemetry signals that should be used in alerts, with associated thresholds, etc
[ ] Document references recommended alert rules for all supporting resources (e.g. https://learn.microsoft.com/en-us/azure/azure-monitor/vm/tutorial-monitor-vm-alert-recommended)

Mentioned in #337


flow: 0.122.0 -> 0.123.0

Motivation for this change
Changelog: https://github.com/facebook/flow/releases/tag/v0.123.0
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[X] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

@GrahamcOfBorg build flow


Add a list of false positives to reduce unjustified filtering

When a word contains a profanity, like assassins, the word could be the check inside a dictionary.

Yes, this flaw is mentioned in the README:

The downside is that words like assassin, which contain ass, would also be filtered as profane. So in the future, a list of false positives would have to be added.

However, I wouldn't go as far as to have a dictionary of words, as that would significantly impact the performance.

The Oxford English Dictionary has over 200k words listed, and assuming we add support for multiple languages, it'd definitely have a huge impact on the performance.
I don't think adding a whole dictionary is acceptable, but I do think that adding a list of all words that have a profanity in them but aren't necessary profane (e.g. assassins, as you mentioned) would be a great idea, and much more viable.


Implement the class function and expand the readme documentation

As this is my first pull request to this project, I thought it would be good to improve the documentation so that when someone new like me startsup, they can read the same documentation everyone else has read and learn more about the IEEE 754 revised floating point.
I implemented the class funtcion (more info: http://speleotrove.com/decimal/damisc.html#refclass).
A miscallaneous function that takes in a decimal and returns a string of 10 possibilities

"sNaN" (signaling NaN)
"NaN" (quiet NaN)
"-Infinity" (negative infinity)
"-Normal" (negative normal finite number)
"-Subnormal" (negative subnormal finite number)
"-Zero" (negative zero)
"+Zero" (non-negative zero)
"+Subnormal" (positive subnormal finite number)
"+Normal" (positive normal finite number)
"+Infinity" (positive infinity).

Also made a small minor change to printout from the test suite to make the logging spaced out.

Had code reviewed by @Joshcarp in person and take onboard suggestions:

refactored the class function to concatenate "+" or "-" instead of manually returning strings
Unpacked the decimal into decparts and called on private functions to avoid having to unpack it each time as we use public functions to check flavor.
Created a private function isSubnormal() for use with decparts, also reorganized them so that they are next to the other relevant private functions

I have made all the recommended changes suggested by @anzdaddy

The code in the documentation has been given syntax highlighting as well as minor fixups.
The comment for the class function is now complete, along with a link reference to more details.
Quickly fixed the way we pass parameters to the Class() function, is now matching the function in the documented standard

(Damn, I've got to stop doing reviews as @marcelocantos accidentally!)

Hey missed the pointer receiver thing. Change all the decParts methods from
func (dec decParts) name() ```` to  func (dec *decParts) name() ````
This means that the decParts instance won't be copied into the local namespace, but will use the existing memory allocation of dec
This means that its faster, but also means that the dec is mutable


Tangerine

Description
My entry for the Creative Racket Competition is a library I've been working on for creating art out of implicit surfaces, called Tangerine.
The primary feature of Tangerine is its renderer, which is incomplete, and is not ready to be incorporated into other projects or otherwise be judged.  However, the language for describing models by combining signed distance functions is quite powerful, and is likely to be attractive for other creative uses.
For this competition, I've reworked Tangerine to be functional as a stand alone library without the renderer, and added an export function so that models may be saved out as voxel models in the MagicaVoxel file format.  Additionally, I have also written documentation for this mode, which with the examples already in the repository should hopefully be suitable for people to actually use this to create novel 3D art.  This mode is called Tangerine "Miniscule", and it is available for AMD64 systems running Windows or GNU/Linux.
Beyond the scope of this competition, I am planning on expanding this mode further with other 3D model formats for export, support for color models, adding new functionality for robust model creation, and methods for spacial queries which may be useful for things like physical simulations.
Location for Entry
My entry link and the code link are the same.  The library and the documentation are found on the project's github page.  I will also add a few more example images as replies to this thread after I finish writing this post.
How you made your entry?
Both variants of Tangerine only uses Racket's standard library, and a C++ backend.  The #lang is racket/base.
Tangerine "Miniscule" use the C++ library MagicaWriter for exporting MagicaVoxel files.  Several other C++ libraries are also present in the repository, but are unused for this mode.
To use Tangerine "Miniscule", follow the installation instructions from the project's github page, and then the "Writing Your First Tangerine Model" section to produce a simple voxel model.

Racket Version used: 8.3 CS
What #lang and libraries/packages: #lang is racket/base, the library is tangerine
Operating System and version: Windows or GNU/Linux, AMD64

Licence
Licence for you image or media file:  CC0
Licence for you code: Apache 2
Contact details
I've submitted my address via the form, but please also reach out to me on the Racket discord.


WifiClient not connect

Hello, I found your project interesting, because I'll use a MAX9814 in the future, and I'm researching more about I2S too. However, I'm having problems connecting to my WIFI network. It's causing this error:
[E][WiFiClient.cpp:258] connect(): socket error on fd 54, errno: 113, "Software caused connection abort"
So far I don't know how I can solve it, if you can help I'll be grateful.

Hi there,
Couple of things to check

is the ESP32 connecting to the WiFi network? You should see a message: "Starting up"
Have you updated the IP-Address of the server it is trying to connect to? There are two lines of code that need to be modified in main.cpp and updated to the IP address of the machine you are running the server on.

// replace this with your machines IP Address
#define ADC_SERVER_URL "http://<IP_ADDRESS>:5003/adc_samples"
#define I2S_SERVER_URL "http://<IP_ADDRESS>:5003/i2s_samples"

And final check - are you running the server?

Thanks
Chris

All these steps have already been done, but the same error persists.
Tanks, David

Hi David,
I was stuck on the same problem. It's probably a firewall issue. I guess you could try messing with your firewall's settings or disable it completely.
A (probably more safe) workaround that worked for me was to create an access point (AP) on my laptop with the firewall zone set to 'trusted' (on GNU/Linux) and then connected the ESP32 to the AP.
Make sure set the correct the ip address since it'll be different in the AP network.
Best regards,
John

Thanks @johnkrmr that's very useful advice. I'm going to close this issue since it's gone quiet.


Bug:  Encountering error during deployments for GitOps-based applications.

📜 Description
When attempting to deploy a GitOps-based application, if the LAST SYNC RESULT is still in a syncing state within ArgoCD, and meanwhile another deployment is initiated, it results in an error.
Error on Devtron UI

Argocd last sync result.

However, the last deployment occurred after the LAST SYNC RESULT completed within the ArgoCD UI
👟 Reproduction steps

Deploy any Helm chart using GitOps.
Attempt to change some values in the values.yaml file for that Helm chart, ensuring that the last sync result is in progress.
At the same time, trigger the next deployment for that Helm chart.

👍 Expected behavior
It shouldn’t be through any error while trigger the deployments .
👎 Actual Behavior
Currently it shows above error as per SS shared in description .
☸ Kubernetes version
1.25
Cloud provider

AWS

🌍 Browser
Chrome
🧱 Your Environment
No response
✅ Proposed Solution
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find any similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

AB#8461

This issue requires design inputs. Hence removed from pager issue


fix: Fix IsValidMessage method adding a new exception for merge from master to the branch

What?
[Here goes your feature/bug-fix proposal](fix: Fix IsValidMessage method adding a new exception for merge from master to the branch)
Type of change?

[x] [fix]: A bug fix

Note: Remove the non-checked options
Why?
Avoid commit-lint breaking when it's a merge from the master to the developer branch.
How?
Adding a new pattern to IsValidMessage function.
How has this been tested?

[x] Unit tests

Before submitting a PR please make sure to check if:

[x] The code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented on my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] The changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and/or existing unit tests pass locally with my changes
[x] New and/or existing integration tests pass locally with my changes

Nice


Changing the logic to check dasStatsPublisherEnabled in login.jag

This p/r is to changing the logic to check dasStatsPublisherEnabled in login.jag

Closing this p/r as it is merged.


Ice Force Close

Hello,
I am attempting ICE for the first time.  I feel like I have things set up correctly.  However, ICE will not open.  I double click the .exe, the prompt very quickly opens, and then automatically closes.  I am running on Windows 8.1.  PLEASE help!!!

I'm not sure if I have to have a Steam Link.  I am attempting to do this on an Alienware Alpha.

@jelliszipwhip you do not have to have a Steam Link. I used to have a Alpha and had ICE running fine on it.  Where did you download ICE from? It should run if you have the windows install package and then stop to tell you the error. It will also stop when it completes successfully to tell you its done. If the window is closing then your probably dont have the right ICE files.

@HEspoke Sorry that I tagged you in the other post.  I wasn't paying attention to where I was :)
I downloaded ICE from https://scottrice.github.io/Ice/
It installed fine, and unzipped fine.  I was able to edit the config.exe, emulators.exe and roms.exe.  After completing those edits, I went to open ICE.exe, and it opens for a brief second, and then closes.  I fought with it until early into the morning this morning....

I was able to quickly time a screen shot when it opens, and then closes..

I was able to quickly pull a screenshot while it opened and closed..

I was able to grab the screen before it force closed.. Good timing.

I think I have it pinned down to something wrong in the "console.txt" file.  When I edit only "config" and "emulators" ICE launches with this error..

When I move my edited "console.txt" file into the ICE file, it force closes.  This is my "console.txt" file..

I really appreciate any help.

I was wrong.  It force closes when consoles.txt and config.txt are in the same ICE file together.  If I have any other combo (consoles, emulators or emulators and config) it opens with an error.  Whenever I get consoles and config in the same file, I get a force close.


Spark environment api

This change is for using spark environment API for getting Spark job configuration. Currently Dr. Elephant uses logs or rest api for logs and then parses that log. We have encountered following issues in the current implementation:

It only parses LZO4 log files. Many a times people uses other compression formats. In those cases Dr. Elephant fails to analyse those jobs.
If there is any failure on the driver side, Dr. Elephant is not able to fetch the logs because of the state of the job. Because of that it fails to analyse the job.

Spark history server has an environment API, which returns all the configurations.
Tests Done:
Compared configurations for many of the analysed jobs with old and new code. There was no difference.

LGTM


Invoicing balance section

Details

The PR introduces the invoice balance section and transfer page.
Fixed Issues

$ https://github.com/Expensify/App/issues/45179
PROPOSAL: N/A
Tests

Open the invoices page.
Verify that the new invoice balance section is displayed at the top.

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

Offline tests

Same as "Tests".
When bank accounts present

Open the invoices page.
Verify that the new invoice balance section is displayed at the top.
Verify that the "Transfer balance" button is displayed.
Open the transfer balance page.
Verify that the page's content is displayed.
Verify that the transfer button is disabled.

QA Steps

Same as "Tests".

[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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or 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 and/or tagged @Expensify/design 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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Looks like there are some CI/CD problems on the GH side.

@rezkiy37 When a bank account is added, I don't see the Transfer balance button displayed. Is it correct to assume that this button will also be hidden if the Invoice balance is $0.00?

@akinwale, actually, the flow was redesigned recently. I've updated the test steps. Basically, there is no option to transfer the balance. The app just shows the current balance. All other work will be done on the backend side.

@akinwale, FYI: https://github.com/Expensify/App/pull/46813#issuecomment-2388228488.

Reviewing again.

Reviewer Checklist

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

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

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

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

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or 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 and/or tagged @Expensify/design 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
https://github.com/user-attachments/assets/bc3a286e-9840-4f78-8558-04ab8d12cd1f

MacOS: Desktop

@rezkiy37 Not a blocker, but I think we should add the precondition for the test steps that the Invoices feature should be enabled for the workspace.


fix: fixed... the name!

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


more get_admin_display_title not honored

Same setup like #4353   with similar bug:
here and here and here
Bug:
page.get_admin_display_title
Fix:
page.specific.get_admin_display_title
Added fixes to existing PR #4354

Hi @Speedy1991 - are you sure these are needed? We already call specific() on the queryset, inside the view function (except for the 'reorder' view, where it's disabled for performance reasons):
https://github.com/wagtail/wagtail/blob/72e1491f393de6c579595433f4f962c9771ffc0f/wagtail/admin/views/pages.py#L85
(Calling specific() on a queryset is a bit more efficient than calling it on an individual page, as it means that multiple pages of the same type are combined into one query.)

well, i needed it in the reorder view, due to translated equal titles. E.g:
Github
Github
Github

I don't get different language codes (defined in get_admin_display_title) so i don't know which one is which.
With the fix i get something like this:
Github[en]
Github[de]
Github[es]

And i know what i just reordered
Github[de]
Github[es]
Github[en]

Fixing this for the reorder view is covered by the existing ticket #4300 - have now proposed a partial fix (avoiding the performance issue of calling specific() on very large querysets) in #4410.


SoR History update

closes https://github.com/onflow/flow-core-contracts/issues/414
still to do:

[x] figure out the extra field update
[x] update the init value of gapStartIndex for better initial performance
[x] add the backfill event + test
[x] add the minimum SoR length check + test
[ ] PR cleanup

Are you planning on doing this upgrade before or after Cadence 1.0? If the answer is after, I would prefer that you make these changes based on the stable-cadence branch instead of master

Are you planning on doing this upgrade before or after Cadence 1.0?

I don't know exactly when Cadence 1.0 will be on MN. This PR change should go as soon as the the PR is merged to fix a current on-chain issue, so I guess it's gonna be before Cadence 1.0

@joshuahannan can you please have a look? I think the PR can only be merged after your approval.

https://forum.flow.com/t/upgrade-coming-to-the-randomness-history-smart-contract/5903
https://github.com/onflow/flow-core-contracts/issues/421


Add Cert Ontology as an external Reference

The CERT ontology https://www.w3.org/ns/auth/cert# (draft only?) defines some concepts to link certificates and keys. SOLID (decentral social network by Tim Berners-Lee) also uses it here and there.

After a quick review this seems to be a focused, highly reusable model that addresses the IDS requirements w.r.t identity an trust.  +1 for integrating into the Connector and Participant descriptions.

I agree with @HaydarAk, this issue is not relevant anymore.


Pick up config file from $XDG_CONFIG_HOME if set

I'm on a Mac, but use the XDG dirs.
A lot of apps use these directories even though its not the default mac location.
My suggestion is to use the XDG_CONFIG_HOME env var if it exists and if not fallback to ~/.config.
If that also doesn't exist, you can fallback to Application Support.
I've seen that I can use the --config flag but that means I have to use the app with an alias.

I'll implement this over the weekend.
Just to check, the current behaviour is that it uses Application Support? I didn't manage to test on macOS so would like to confirm.

Yeah the current behaviour is using: "/Users/dolevh/Library/Application Support/keyb"


Exec tachikoma update<PHONE_NUMBER>3651

:hamster::hamster::hamster:   Strategy none
Powered by Interval Pull Request as a Service - Tachikoma.io Announcement: 2015-06-28 Updated permissions - Tachikoma.io

Coverage remained the same at 92.925% when pulling 71a90dc1b5ff44a0ba1fafdc19d40834f332d5e0 on pazjacket:tachikoma/update-20170411163651 into 09e8044c9df61ad512bfbeddaad6e0a82166ee8c on rike422:master.


A method or process to stop tracking but keep the gps active

This may be either code methods or maybe just an update to the docs. The use case is:

the map setView is either untilPan or untilPanOrView
the user has clicked the locate button is now tracking, icon is orange. Lets say they are in a car and moving fast
lets say they interact with the map, like they click a popup which opens in the center of the map. They are reading the popup. But they haven't panned or zoomed so the tracking is still active and the map keeps moving and the popup scrolls offscreen while they are reading it.

In this case I would want the location to remain active, the location would keep updating, but the following would be suspended, possibly temporarily.
I can see a couple potential solutions to address this directly or indirectly:
a) add more methods besides start() and stop() with something in the middle, perhaps something like stopFollowing() startFollowing() which is effectively like a zero-pan or zero-zoom but keeps the gps active.
on('popupopen', function(e) {
  lc.stopFollowing();
})

on('popupclose', function(e) {
  lc.startFollowing();
})

b) perhaps a more flexible approach (but possibly not as simple to explain) is that the start() method has an optional string argument which is the same as a setView string. This means you could set the control into a certain state independent of the state that clicking the control would put it into. So we would have the option.setView which is the state that the control is put into when the button is clicked, and we would also have an independant this._setView state which can be set directly.
This opens up lots of possibility such as:
The use case above, I want to keep active but stop following:
on('popupopen', function(e) {
  lc.start(false);
})

Another one I'd really like is on page load I want to get immediately be active and draw the location which may be outside the viewport, but not update the position and follow until I click the locate button. This could be done with:
lc = L.control.locate({
    setView: "untilPanOrZoom"
}).addTo(map);
lc.start(false);

I think I could probably get this behavior by watching a bunch of events and just changing the setView option but this seems brittle and prone to leaving it in the wrong state.
c) It would also be useful if the control fired some events so we can watch when we start or stop following,
this.fire('locationfollowstart', data);
this.fire('locationfollowend', data);

lc.stopFollowing() could just set _userPanned, I think. I'm open to adding the two functions you mentioned. a) and c) make sense to me. b) seems confusing to users.


MYSQL default value: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

It is not supported yet:
$table->addColumn('updated', 'datetime', array('default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))

Error:
  [PDOException]
  SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'updated'

That's a feature I'd like too.
In the meantime, you can do this:
$table = $this->table('my_table');
$table
    ->addColumn('updated_at', 'datetime')
    ->save();
 $this->execute('ALTER TABLE `my_table` MODIFY COLUMN `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP');

According to http://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

With neither DEFAULT CURRENT_TIMESTAMP nor ON UPDATE CURRENT_TIMESTAMP, it is the same as specifying both DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP.

So, technically, Phinx DOES support this. Just don't supply the default value for a timestamp type. But I've not tested that yet.
In addition to that though, Phinx also supports an 'update' option for timestamp : http://docs.phinx.org/en/latest/migrations.html#working-with-columns
So
$table->addColumn('updated', 'timestamp', array('default' => 'CURRENT_TIMESTAMP', 'update' => 'CURRENT_TIMESTAMP'));

may be more appropriate. Notice the column type is a timestamp and not a datetime.

We are seeing this issue now as well.  Is there any way we can help with resolving the issue?

@mamchenkov send a pull request if you know how to fix it :)

@lorenzo after digging a bit more into it, it seems the newer versions have the fix already applied:
https://github.com/cakephp/phinx/blob/v0.8.0/src/Phinx/Db/Adapter/PdoAdapter.php#L531-L532
If we could only get v0.8.0 into cakephp/migrations now. :)

@mamchenkov want to help making the changes there? I would like to focus on the code here directly for the next few months

@lorenzo yes, sure.  Let me have a look at it, and I'll send the PR :)

Thanks

OOI, if you have createdAt and updatedAt, should, at creation, updatedAt = createdAt?
For me, updatedAt = null means this is a row that hasn't been edited.
updatedAt TIMESTAMP(6) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(6) is what I would prefer.

@rquadling I think, the field can be populated by either the database engine or the application.  Making it portable across different database engines is not as easy as making it updated by the application.

For me, createdAt and updatedAt are not for the consumer of the table but for the DB to help provide built in row tracking. If the db provides the facility, it is much nicer to use it. Trying to do everything in code because of the lowest common denominator is just tedious.

If I use DB engine x, then I want to take as much advantage as possible of that engine.
So, MSSQL has pivots. Mysql doesn't. Won't stop me from using the native approach when I can and simulating them where I have to.
DBAL can only do so much and it should provide the best it can, not the lowest it can.

Are you able to provide a patch with your suggested changes as PR?

Hi @dereuromark, @lorenzo
Shouldn't  this ticket be closed.
$table->addColumn('updated', 'timestamp', array('default' => 'CURRENT_TIMESTAMP', 'update' => 'CURRENT_TIMESTAMP'));
works for me

@JRDuncan 's solution worked for me. For the convenience methods (i.e addTimestamps()) should CURRENT_TIMESTAMP on update be provided? v0.11.4
$table->addColumn('created_at', 'timestamp', array('default' => 'CURRENT_TIMESTAMP'));
$table->addColumn('updated_at', 'timestamp', array('update' => 'CURRENT_TIMESTAMP'));


system allowed a collective to have negative balance

just paid an expense, available balance showed ~580 and expense was 560 payment went though and now https://opencollective.com/lem is -1
Thank you for taking the time to report an issue 🙏
The easier it is for us to reproduce it, the faster we can solve it.
So please try to be as complete as possible when filing your issue.

URL:
Logged in as: (just provide your username or the url of your profile)
Error message if any:
Expected result:
Browser:
Bonus point if you can add a screenshot :-)
Thank you and have a wonderful day/evening!
(and sorry for inconvenience! We'll do our best to solve this ASAP)

This is because we estimate fees as 2.9% + $.30. In this case, the fees were 3.9% + $0.30. I'll increase the estimate on backend.

But wouldn’t this mean that we won’t be able to pay expenses that would be able to be reimbursed otherwise?

yes, in some cases it could mean that extra 1% estimated fee could hold back an expense. We need to decide which situation is worse: negative ledger or expense blocked until slightly more money comes in. I'd vote for avoiding negative ledger.

Will fix it on bug-fix friday

For now, I'm going to change this to 3.9% + 0.30. There is a way to get the fees from paypal - we can create the payment and then cancel it to get fees. It's clumsy and a couple of days of work to get right.


[RFC] Batch

This is a first attempt at creating a Batch overview system in Bernard. It implements some new concepts with fun names. Everything is open for change based on comments.
When you create a batch of messages first you create a Batch. This generates an id for the batch and also keeps track of its status (failed, total, successful).
I order to have messages be part of the batch they are assigned though Batch::assign(). At this point you have a Batch with assigned messages, theese have not yet been persisted. To persist them give the whole Batch to the producer.
$batch = new Batch;
$batch->assign(new DefaultMessage('Email'));

$producer->produce($batch);

It is also possible to assign messages to an already existing batch. This is done by creating a Batch using a specific id, or retrieving a batch for its storage. By producing the batch again its internal list of messages are flushed and the internal list is reset.
$batch = new Batch('existing-id');
$batch->assign(new DefaultMessage('Email'));

$producer->produce($batch);

As earlier mentioned it is possible to retrieve a Batch status from storage. Currently there is only a Redis implementation.
$storage = new RedisStorage($redis);

$batch = $storage->find('batch-id');
$batches = $storage->all();

// reload it status
$batch  = $storage->reload($batch);

// will block until all messages in batch is complete
while ($storage->reload($batch)->isRunning()) {
    continue;
}

Reloading will return a NEW batch object, so if you have assigned messages that are not yet been produced they will be lost.
Every batch is stored with its storage. This is done in events, one for the producer which updates the Batch total and one for the consumer wich increments failed and/or successful counts.
Theese are registered as event subscribers.
$storage = new RedisStorage($redis);
$eventDispatcher->addSubscriber(new BatchSubscriber($storage));

For bernard internals this is only possible by adding metadata to Envelope's which is called stamps. This is a hash of additional metadata given to an Envelope when created.
Does this make sense?

I think this is close to being done, if the thought behind it can be validated.


Setup SonarQube quality gate for pull requests

https://docs.travis-ci.com/user/sonarcloud/

It seems to be working, closing.


Page not found

Hi
I used the demo template.
When I use
<Route path="*">
    <NotFound />
</Route>

or
<Route>
     <NotFound />
</Route>

for Not found URLs it seems the component is showing in all routes. Also currently all undeclared URLs are going to  home page. What is the solution for Page not found ?

I can't be sure without more information, but it looks you need to use the  component:
<Switch>
  <Route path="/home">
    <Home />
  <Route>
    <NotFound />
  </Route>
</Switch>

hi
const App = () => (   <Router basename={process.env.PUBLIC_URL}>     <Route path={base} component={Header} />     <Switch>       <Route exact path={base} component={Home} />       <Route path={${base}/about} component={About} />       <Route path={${base}/topics} component={Topics} />       <Route>         <NotFound />       </Route>     </Switch>   </Router> );
not found works for home page when route is wrong but does not work for internal pages.
work: http://localhost:3000/dkfdfklhgg
not work: http://localhost:3000/about/grtggtrty

const App = () => (   <Router basename={process.env.PUBLIC_URL}>     <Route path={base} component={Header} />     <Switch>       <Route exact path={base} component={Home} />       <Route path={${base}/about} component={About} />       <Route path={${base}/topics} component={Topics} />       <Route>         <NotFound />       </Route>     </Switch>   </Router> );

 const App = () => (   <Router basename={process.env.PUBLIC_URL}>     <Route path={base} component={Header} />     <Switch>       <Route exact path={base} component={Home} />       <Route path={${base}/about} component={About} />       <Route path={${base}/topics} component={Topics} />       <Route>         <NotFound />       </Route>     </Switch>   </Router> );

const App = () => (   <Router basename={process.env.PUBLIC_URL}>     <Route path={base} component={Header} />     <Switch>       <Route exact path={base} component={HomePage} />       <Route path={${base}/about} component={About} />       <Route path={${base}/topics} component={Topics} />       <Route>         <NotFound />       </Route>     </Switch>     <Route path={base} component={Footer} />   </Router> );

const App = () => (
  <Router basename={process.env.PUBLIC_URL}>
    <Route path={base} component={Header} />
    <Switch>
      <Route exact path={base} component={HomePage} />
      <Route path={`${base}/about`} component={About} />
      <Route path={`${base}/topics`} component={Topics} />
      <Route>
        <NotFound />
      </Route>
    </Switch>
    <Route path={base} component={Footer} />
  </Router>
);

hi
const App = () => (
  <Router basename={process.env.PUBLIC_URL}>
    <Route path={base} component={Header} />
    <Switch>
      <Route exact path={base} component={HomePage} />
      <Route path={`${base}/about`} component={About} />
      <Route path={`${base}/topics`} component={Topics} />
      <Route>
        <NotFound />
      </Route>
    </Switch>
    <Route path={base} component={Footer} />
  </Router>
);

not found works for home page when route is wrong but does not work for internal pages.
work: http://localhost:3000/dkfdfklhgg
not work: http://localhost:3000/about/grtggtrty

@saaaaalll2020 I recommend reading the React Router documentation. Your issue is unrelated to react-router-i18n.
In this case the path /about matches. If you do not want /about/a/b/c/d/ to match, but only /about, then the route needs to contain an exact: <Route exact path={${base}/about} component={About} />


Badge stuck on "processing..."

When I navigate to https://tokei.rs/b1/github/fluo-lang/fluoc, the badge gets stuck "processing". It looks like this:

It seems to be a problem specifically with that repo (fluo-lang/fluo). In my testing, it seems to be a problem with this server-side code, because running tokei locally works.

Thank you for your issue! It seems to be fixed now.

Oh, awesome, thanks!


Fix serverbrowser filtering by gamemode

Closes #638

Requesting review (and hopefully merge) from fifty because I believe gecko is rather busy this week

(and hopefully merge)

Even if i were to merge it rn gecko is the one making releases and deciding what goes into them


Infer generics in is check for type promotion

Consider following code:
abstract class A<T> {}
abstract class B<T> implements A<T> {
  b();
}

void foo<T>(A<T> a) {
  if (a is B) {
    return a.b();
  }
}

It gives error message:

// The method 'b' isn't defined for the class 'A'.

so it seems the type promotion on a didn't happen inside the if block. To fix this I can change the condition to be: if (a is B<T>).
This somewhat makes sense, but it seems to me that in this case compiler could infer that B must be B<T>, if it's casted from A<T>. I guess it could be some subclass of T, but that would still be substitutable for B. Or maybe there are some other edge cases in general. If this is not possible then maybe compiler could give some hint why type promotion didn't happen?

I  don't think this belongs to core-l; it's a language request, correct?

I just ran into a similar issue:
abstract class I {
    int get value;
}

class X extends Route<dynamic> implements I {
  final value = 3;
}

void foo(Route a) {
    if (a is I) {
        print('${a.value}'); // Error: undefined_getter
    }
}

It also seem to be related to the fact that Route (from Flutter) has a generic type argument.
Is this the same underlying issue or should I file a new one?

Sorry, @tp I think this is unrelated.
In your example, Route is unrelated to I, so you the programmer know that the type of a, inside your if body, is Route & I, but there is no concrete type that represents that intersection, so no type promotion is performed. I think https://github.com/dart-lang/sdk/issues/35314 is related to your request.

I'm not sure if it's related, but a similar case:
class Foo {
  final int value = 42;
}

class Base<T> {}

class DerivedInt extends Base<int> {
  Foo get foo => Foo();
}

class Generic<T> {
  void f(Base<T> base) {
    if (base is DerivedInt) {
      print((base as DerivedInt).foo.value); // Works

      // The getter 'foo' isn't defined for the class 'Base<T>'.
      print(base.foo.value);
    }
  }
}

void main() {
  var derivedInt = DerivedInt();
  var instance = Generic<int>();
  instance.f(derivedInt);
}

In this case, the is check is fully qualified.  Why isn't the local variable base being promoted?

You can only promote to a subtype, and DerivedInt is not a subtype of Base<T>. For instance, T could be double or Widget. Given that you're never using T you could use void f(Base<Object?> base), and DerivedInt <: Base<Object?> does hold.

@eernstg Thanks for the explanation.  I guess I have the wrong mental model for how promotion works.  I had been presuming that a localVariable is T check would be syntactic sugar for an automatic localVariable as T cast.  That is:
if (localVariable is T) {
  localVariable.f();
  localVariable.g();
}

would be equivalent to:
if (localVariable is T) {
  var temporary = localVariable as T;
  temporary.f();
  temporary.g();
}

So that raises a question: why shouldn't it be that way?  It seems to me that it would be easier to understand and would work the way more people expect and want.
The "only promote to a subtype" rule also seems weird and arbitrary since I could just upcast to Object first:
void f<T>(Base<T> base) {
  Object object = base;
  if (object is DerivedInt) {
    print(object.foo.value);
  }
}

Promotion has been around in Dart at least since the language specification was added to the SDK repository in 2013, and it is required already in that 2013 version that the promotion changes the type of a local variable from a type S to a type T such that T <: S. This means that it would be a reversal of a very old decision to start promoting variables to anything other than a subtype of their previous type.
Promotion was made a lot more powerful in the version of Dart that supports null safety, but it still includes the requirement that the resulting type in a promotion is subtype related to the previous type. There is a list of 'types of interest' associated with the possible control flows up to the current location. We can promote to a subtype of the most recent one, and we can also demote to one of the earlier ones. Details here.
However, even though it would be a serious breaking change to promote to an unrelated type, it could still be a good design choice. So let's consider that design choice, as if we could just do it without worrying about existing software.
The rationale we've used to justify restrictions on promotions is that they make the code less readable: Anyone who is reading source code using local variables (that is, just about any function/method body which is more than a few lines of code) will need to take the type of each local variable into account, in order to understand why it was created, and how to use it correctly.
Consider a variable v with declared type T. As long as promotions will promote v from T to some type T1 <: T, then to T2 <: T1 and so on, the available members on v will be the ones on T plus a number of increments (some extras due to T1, some more due to T2, and so on). We may demote v by actions like v = T2(); along the way, but we are still only using v with a type which is navigating the subtype graph under T. In particular, if we do v.foo() where foo is a member of T then we can rely on the assumption that this method call "will do the kind of work that T.foo does".
If we allow the type of v to change to something completely unrelated then we could promote v to a type S such that S.foo exists, but it has no relationship to T.foo. So we can completely misinterpret the action taken at v.foo(), and we'll have to scan the control flow backwards (for instance, we may need to find all the if-statements encountered up to this point, and various other constructs) in order to detect that the promotion to S occurred.
In other words, this rationale is all about being able to read a small snippet of code in a function body and understand what it does, rather than having to scan the whole function body up to that point and memorize several completely different interfaces that the variable might have.
Of course, there have been many, many other discussions about the design of variable promotion in Dart, but this one seems particularly important to me.

Might wanna move this to lang, I did not find this issue then posted to stackoverflow.
In some cases it's worse for readability
   if( state is ReadStarted<Location, List<Restaurant>>) {

   }

vs
   if( state is ReadStarted) {

   }

I was expecting the property to be dynamic at least. But what would be better is if it was inferred from what's on the left side of the is
That is:
fn(ReadState<void, Location> readState) {
  if( state is ReadStarted) {
    // state is ReadState<void, Location>
  }

If you want dynamic you have to explicitely set it.


Issue finding debug_assert in no_std crates when std enabled

I tried this code:

#![no_std]

#[cfg(feature = "std")]
extern crate std;

fn foo() {
    std::debug_assert!(true, "text");
}

using the following command line invocation:
cargo kani --features std

with Kani version: 0.20.0
I expected to see this happen: verification should succeed

Instead, this happened:
I get an error:
error: cannot find macro `__kani__workaround_core_assert` in this scope
 --> src/lib.rs:7:5
  |
7 |     std::debug_assert!(true, "text");
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: this error originates in the macro `$crate::assert` which comes from the expansion of the macro `std::debug_assert` (in Nightly builds, run with -Z macro-backtrace for more info)

Error: "Failed to compile crate."
error: could not compile `playground` due to previous error
Error: cargo exited with status exit status: 101

Stack backtrace:
   0: anyhow::error::<impl anyhow::Error>::msg
   1: kani_driver::session::KaniSession::run_terminal
   2: kani_driver::call_cargo::<impl kani_driver::session::KaniSession>::cargo_build
   3: kani_driver::project::cargo_project
   4: kani_driver::main
   5: std::sys_common::backtrace::__rust_begin_short_backtrace
   6: std::rt::lang_start::{{closure}}
   7: std::rt::lang_start_internal
   8: main
   9: __libc_start_call_main
  10: __libc_start_main_impl
  11: _start

I initially ran into this while trying to compile a transitive dependency: unicode-bidi, which has a similar snippet (it's found at: https://github.com/servo/unicode-bidi/blob/master/src/implicit.rs#L494).
All of the following make the bug disappear:

removing #![no_std]
removing extern crate std
removing the std:: from std::debug_assert!(...)
removing the "text" from std::debug_assert!(true, "text")

All of the following have no effect:

adding #[cfg(feature = "std")] to the debug assert
adding #[cfg(kani)] to fn foo()
adding #[kani::proof] to fn foo()
changing the assert to std::debug_assert!(false, "text");

I've tried to reduce it further, but it's pretty bare at this point.
The key ingredients seem to be:

extern crate std; gated by a feature flag
std::debug_assert!
some actual text in the error message

I can't tell if this is caused by user error, or if there's a workaround I can use to verify my program even in the presence of this. I'm quite new to using kani, and am evaluating it for use at work, so apologies if there's some docs that explains this :sweat_smile:
Thanks in advance :grin:

Thanks for looking into it, love the project 😊

Re-opening as the fix has been reverted due to the issues it caused.

This is also affects the harness in lading (DataDog) if one runs cargo kani on the workspace root, but it's possible to work around it for the time being with cargo kani -p lading-throttle.


Still facing issue #78017 even on Flutter 2.0.5-stable release

Refer issue #78017

That issue was fixed on master after the Flutter 2.0 branch point. See https://github.com/flutter/flutter/wiki/Flutter-build-release-channels for a description of how code moves through channels.


Add selectors to config

This PR adds the selectors [data-gumshoe] a and [data-gumshoe-header] to the settings object as it's useful to be able to override these.
Thanks,
David

As an aside I had a fair amount of trouble with the build as a lot of packages fail to install under node 0.12.x. I had to upgrade the packages to get it to work and disable a few unneeded(?) gulp tasks. Happy to raise another PR to update the build dependencies if that would help.

Thanks for pointing out the build issues. I've been running the same build for so long, I hadn't even noticed. I'll update accordingly.
Any compelling reason to add this functionality? What's the use case here?
querySelector support is identical to querySelectorAll support, so I'm not sure this is a necessary change.

Any compelling reason to add this functionality? What's the use case here?

It's useful to be able to control what is used as the selector, gives a little more control over what elements are included (e.g., not all <a> elements in a container). Also has the benefit of being able to use it in cases where you don't control the markup for some reason (not my use case here, but still useful).

querySelector support is identical to querySelectorAll support, so I'm not sure this is a necessary change.

Doh! You are completely right, not sure where I'd got that from, will revert that change.

@cferdinandi Flattened down the PR to the bare minimum, only adding the selectors to the config. Are you happy with the value of the change as it is now?

@davidrapson Dude, this is perfect. Thanks! I'm going to update the version number, push a git Tag, and fix a small typo in the readme. but THANK YOU!
Most people don't both running the build or updating the readme, so major kudos for doing that!

No problem at all. Hah, yeah headerSelecto should probably have an r shouldn't it.

All good, man. Thanks for sticking it out. Appreciate the PR!


Fix incorrect code generation when using opcodes with larger parameters

There was having a problem with the Neo VM opcode generation when using opcodes that have equivalents with larger parameter

i. e. JMP and JMP_L have the same behavior
The only difference between the two is that JMP gets the next byte as its parameter and JMP_L gets the next four bytes

When using the larger opcodes, the address wasn't being updated correctly. It generated incorrect jumps because of it, resulting in engine faults when invoking the smart contract.

👏


Can we use a nvidia nvenc format?

I need to use a GPU accelered to make my project.
Have a way to this?
GPU: RTX6000
Formats: h264_nvenc or hevc_nvenc

see #27
NOTE: instead of Streaming\Format\Video, the class extends Streaming\Format\StreamFormat.


mzz.translate() much slower in 0.0.6

I'm helping a colleague use kerchunk to access GOES-16 satellite data on AWS. At first I was running Kerchunk 0.0.5 and combining 288 references took a few seconds, nothing special.
We updated to 0.0.6 because there was an issue with some of the coordinates and I figured we'd benefit from the MultiZarrToZarr update. Now it I let it run for over 10-15 minutes and it never finished. Not quite sure what's going on, or if I'm missing some important optimization somewhere.
Here is the notebook: https://nbviewer.org/gist/lsterzinger/37c035542f7fac8f7e02a7c736877b60

It's totally possible that the new MZZ is much slower than previous, I didn't make a great effort to optimise for performance. However, it's also quite likely that there's something else going on, for example maybe many <500byte chunks are being inlined, and fetching there is currently a serial process, so many such chunks really add up.
The thing to do would be to try with say 3 inputs, and then 10, and see the time it takes, and also of course to profile (snakeviz, and lprun on MultiZarrToZarr.second_pass), so we know where time is being spent.

3 files ~ 30 seconds
10 files ~ 1 min 30 seconds
So this appears to scale linearly.
Running a profile on mzz.second_pass() (second_pass.zip) shows that nearly all of the time is spent on ~:0(<method 'acquire' of '_thread.lock' objects>) which doesn't really tell us anything... I've run into this before and I don't really know how to investigate further

Oh, I see: 2071 calls, at about 43ms each - sounds like pure latency, so we can easily do 100 of these caslls simultaneously.

So this is actually with  an inline_threshold=0... reference.py:246(cat) is being called 2071 times

MultiZarrToZarr.second_pass only calls cat here, which only happens for a file-size smaller than the threshold. Are you sure you are passing it correctly?
In any case, the following, I think is enough to get one order of magnitude of concurrency:
--- a/kerchunk/combine.py
+++ b/kerchunk/combine.py
@@ -274,6 +274,7 @@ class MultiZarrToZarr:
         no_deps = None

         for i, fs in enumerate(self.fss):
+            to_download = {}
             m = fs.get_mapper("")
             z = zarr.open(m)

@@ -367,9 +368,13 @@ class MultiZarrToZarr:
                     key = key.rstrip(".")

                     if fs.info(fn)["size"] < self.inline:
-                        self.out[key] = fs.cat(fn)
+                        to_download[key] = fn
                     else:
                         self.out[key] = fs.references[fn]
+            if to_download:
+                bits = fs.cat(list(to_download.values()))
+                for key, fn in to_download.items():
+                    self.out[key] = bits[fn]
         self.done.add(3)

Even better would be to group these reads by "remote fs" (the .fs attribute of each of the mzz's fss).

I can confirm that using
mzz = MultiZarrToZarr(
    metadata_list,
    remote_protocol='s3',
    remote_options = {'anon' : True},
    concat_dims='t',
    inline_threshold=0
)

reduces processing time to a trivial 90ms for 10 inputs.

Yep that was my mistake... the initial individual reference list was generated with inline_threshold=0 but neglected to set the same in MultiZarrToZarr
Is the 90ms result from the release version or the changes from https://github.com/fsspec/kerchunk/issues/145#issuecomment-1095074674?

Correct - there were no cat fetches at all, so that code is not touched. It still should be done, though, since inlining is a good thing for write-once/read-many.

Is the value of inline_threshold the number of bytes? Do you have a value you usually use that balances processing time with read time?

Le 11 avr. 2022 à 07:08, Martin Durant @.***> a écrit :
Correct - there were no cat fetches at all, so that code is not touched. It still should be done, though, since inlining is a good thing for write-once/read-many.
—
Reply to this email directly, view it on GitHub https://github.com/fsspec/kerchunk/issues/145#issuecomment-1095100212, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABTH32TK3HB72FBWTEU4IZDVEQW7TANCNFSM5S22GY5Q.
You are receiving this because you authored the thread.

Yes bytes and ... it depends! The main bottleneck is usually the size of the output JSON, so for the end user, a balance of dataset open time versus access time.

So, in short, I don't think there'd a regression here, but there is more we can do to speed up inlining when it is desired. We can start with my diff, but should be able to do better.

Awesome, thanks! I'll try things out with your diff sometime this week

Finally got around to testing the changes you made to mzz @martindurant. Running this code from the notebook linked in the original issue:
%%time
mzz = MultiZarrToZarr(
    metadata_list,
    remote_protocol='s3',
    remote_options = {'anon' : True},
    concat_dims='t',
    inline_threshold=300
)

with open('combined.json', 'w') as outf:
    outf.write(ujson.dumps(mzz.translate()))

Prior to the changes in https://github.com/fsspec/kerchunk/issues/145#issuecomment-1095074674:
CPU times: user 2min 3s, sys: 11.5 s, total: 2min 15s
Wall time: 33min 51s

Including your changes:
CPU times: user 59.9 s, sys: 4.41 s, total: 1min 4s
Wall time: 4min 19s

So the time savings are significant!

Is this now comparable to before?
I have yet to implement a decent version of the concurrent fetching I made a POC of...

I don't have any data on what this would have looked like before, but my recollection is that it never took longer than 1 minute in any usecase I had, so this still feels slower


Texture with rounded corners without masks

Hi,
Can I display a sprite that uses a texture with rounded corners without applying a mask?
I need it because masks have a very bad perfomance on mobile devices (4 fps vs 60 with no masks). But the design requires rounded corners on photos.

PixiJS v5 Graphics beginTextureFill.

It looks good, thanks!


Logitech Harmony Hub unable to control HUE.

hi.
I have the logitech hub running f/w 4.14.123.
Currently using the logitech harmony android app to control the ESP hue emulator.
The logitech software is able to find and pair with the hue just fine.
But when I try and control it afterwards either turning in on/off or trying to dim +/- I get the same result.
Nothing happens.
Logitech says not connected in the UI.
I can control the hue from any number of android apps. including the official one.
Something in the protocol / comm. exchange apparently pisses off the logitech firmware.
I haven't looked at any logs from the ESP yet.
I could try and enable debug and capture some of it.
Otherwise it's time to capture the traffic using wireshark on a PC.
In order to capture all traffic I guess I have to install something like virtual router on a wifi enabled laptop.
https://archive.codeplex.com/?p=virtualrouter
then have both the ESP and the logitech hub/smartphone connect to the virtual router on the PC.
edit: added logs from the ESP.
ESP has ip: <IP_ADDRESS>
Smartphone ip: <IP_ADDRESS>
`.......Starting HTTP at <IP_ADDRESS>:80
Starting SSDP...
SSDP UUID: 38323636-4558-4dda-9188-a020a621c3b0
SSDP Started
FS Starting
initializeGroupSlots()
Sending Notify to
<IP_ADDRESS>:1900
initializeSceneSlots()
18:58:38 05/02/2018
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:37506
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:37506
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:37506
REJECT: upnp:rootdevice
MAN: "ssdp:discover"
Found unknown header 'User-Agent'
Value for unkown header: UPnP/1.0 DLNADOC/1.50 Kodi
Found unknown header 'Connection'
Value for unkown header: close
Found unknown header 'Host'
Value for unkown header: <IP_ADDRESS>:1900
Sending Response to <IP_ADDRESS>:3195
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:42362
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:42362
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:42362
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:45397
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:45397
Found unknown header 'SERVER'
Value for unkown header: JRiver DLNA
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:schemas-upnp-org:device:MediaRenderer:1
Found unknown header 'Date'
Value for unkown header: Mon, 5 Feb 2018 18:59:10 GMT
Sending Response to <IP_ADDRESS>:52100
10http://<IP_ADDRESS>:80/urn:schemas-upnp-org:device:Basic:1Philips hue (<IP_ADDRESS>)Royal Philips Electronicshttp://www.philips.comPhilips hue Personal Wireless LightingPhilips hue bridge<PHONE_NUMBER>226503http://www.meethue.coma020a621c3b0uuid:2f402f80-da50-11e1-9b23-a020a621c3b0index.html  image/png 48 48 24 hue_logo_0.png   image/png 120 120 24 hue_logo_3.png
Found unknown header 'SERVER'
Value for unkown header: JRiver DLNA
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:schemas-upnp-org:device:MediaServer:1
Found unknown header 'Date'
Value for unkown header: Mon, 5 Feb 2018 18:59:10 GMT
Sending Response to <IP_ADDRESS>:52100
10http://<IP_ADDRESS>:80/urn:schemas-upnp-org:device:Basic:1Philips hue (<IP_ADDRESS>)Royal Philips Electronicshttp://www.philips.comPhilips hue Personal Wireless LightingPhilips hue bridge<PHONE_NUMBER>226503http://www.meethue.coma020a621c3b0uuid:2f402f80-da50-11e1-9b23-a020a621c3b0index.html  image/png 48 48 24 hue_logo_0.png   image/png 120 120 24 hue_logo_3.png
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:36785
45996
[{"success":{"username":"api"}}]
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
46147
{"1":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 1","uniqueid":"A0:20:A6:21:C3:B0-1","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}},"2":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 2","uniqueid":"A0:20:A6:21:C3:B0-2","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}}}
Sending Response to <IP_ADDRESS>:36785
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:36785
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
Found unknown header 'USER-AGENT'
Value for unkown header: UPnP/1.0 DLNADOC/1.50 Platinum/<IP_ADDRESS>
MAN: "ssdp:discover"
46456
{}
46595
{}
47077
{"1":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 1","uniqueid":"A0:20:A6:21:C3:B0-1","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}},"2":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 2","uniqueid":"A0:20:A6:21:C3:B0-2","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}}}
Sending Response to <IP_ADDRESS>:62538
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:43975
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:43975
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:43975
58497
{"1":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 1","uniqueid":"A0:20:A6:21:C3:B0-1","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}},"2":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 2","uniqueid":"A0:20:A6:21:C3:B0-2","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}}}
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:54408
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:54408
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:48133
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:48133
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:54408
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:48133
10http://<IP_ADDRESS>:80/urn:schemas-upnp-org:device:Basic:1Philips hue (<IP_ADDRESS>)Royal Philips Electronicshttp://www.philips.comPhilips hue Personal Wireless LightingPhilips hue bridge<PHONE_NUMBER>226503http://www.meethue.coma020a621c3b0uuid:2f402f80-da50-11e1-9b23-a020a621c3b0index.html  image/png 48 48 24 hue_logo_0.png   image/png 120 120 24 hue_logo_3.png
68797
{"1":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 1","uniqueid":"A0:20:A6:21:C3:B0-1","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}},"2":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 2","uniqueid":"A0:20:A6:21:C3:B0-2","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}}}
REJECT: upnp:rootdevice
MAN: "ssdp:discover"
Found unknown header 'User-Agent'
Value for unkown header: UPnP/1.0 DLNADOC/1.50 Kodi
Found unknown header 'Connection'
Value for unkown header: close
Found unknown header 'Host'
Value for unkown header: <IP_ADDRESS>:1900
77251
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
77747
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
Sending Response to <IP_ADDRESS>:3195
78170
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
81067
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
81497
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
81917
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:55214
91017
{"1":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 1","uniqueid":"A0:20:A6:21:C3:B0-1","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}},"2":{"type":"Extended color light","manufacturername":"OpenSource","swversion":"0.1","name":"Hue LightStrips 2","uniqueid":"A0:20:A6:21:C3:B0-2","modelid":"LST001","state":{"on":false,"bri":0,"xy":[0.00000,0.00000],"colormode":"hs","effect":"none","ct":500,"hue":0,"sat":0,"alert":"none","reachable":true}}}
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:34664
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:34664
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Sending Response to <IP_ADDRESS>:34664
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:58105
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:58105
Found unknown header 'HOST'
Value for unkown header: <IP_ADDRESS>:1900
MAN: "ssdp:discover"
REJECT: urn:dial-multiscreen-org:service:dial:1
Found unknown header 'USER-AGENT'
Value for unkown header: Google Chrome/63.0.3239.132 Windows
Sending Response to <IP_ADDRESS>:58105
101318
`
yeah, sure enough each time I try to toggle the lights on/off I get this:
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
running latest ESP code and ino file without anything changed other than wifi pass and sid.
Ill try and log the erronous response out

Further logging added reveals that the Body content is indeed empty.
Thats why JSON parsing fails.
On working hue clients I get stuff like this:
{ "on": true }
case HTTP_POST:
case HTTP_PUT: {
fails here => aJsonObject* parsedRoot = aJson.parse( (char*) HTTP->arg("plain").c_str());
but apparently not on the logitech remote.

loaded fiddler with the capture file from wireshark.
interestingly the body does contain stuff.
in more details:
Request:
PUT /api/api/lights/1/state HTTP/1.1
user-agent: LuaSocket 2.0.2
content-length: 19
content-type: application/json
body:
{"on":true,"bri":0}
Response:
[{"error":{"type":2,"address":"/api/api/lights/1/state","description":"Bad JSON body in request"}}]
more debugging needed..

found issue.
It seems vers. 2.3 of the ESP8266 lib which I had installed is case sensitive when it comes to reading those header values.
Namely the content-length header.
The logitech harmony hub sends the header values as lower cased, which causes the ESP8266WebServer to not be able to pick up these values.
version 2.3 of ESP lib has this in parsing.cpp:
else if (headerName == "Content-Length"){
thus it being case sensitive
then we have the current master branch which have:
https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WebServer/src/Parsing.cpp#L172
case insensitive
Ive changed the the ESP lib to 2.4rc2.
fixed it :)
It's still useful info for the WIKI I think.
If you dont have the newer one installed its really up to the HUE device (in this case logitech) if it works or not. Some vendors send in lowercase while others dont.
Make sure you do use the ESP lib. of newer date. !! simple as that.
I have confirmed 2.4rc2 working.
Another nice tip is.
Once you have captured the wireshark logs, you can import those in fiddler for easier viewing.


isAutomaticRetryOnReason hardcoded to true

Currently there is no option to disable the auto retry on this step (isAutomaticRetryOnReason), doubling the build time for failing builds. A toggle would be appreciated.

Hi @gringoireDM ,
We designed the step, to automatically rerun the test, it it failed because of an issue, which is not related to the test run. We collect these issues and we call it to: Automatic retry reasons, these issues are related to the ios simulator (may its not booted yet, or not setup correctly yet). You can not trun off this retry, since your test would fail, even if its not because of your test cases...
Using (Experimental) Rerun test, when it fails? step input you can control if the step should rerun the test if it failed with any issue or not.
Do you think that an option to disabling Automatic retry reasons would be reasonable?

Hi, @godrei I think we already spoke on the Bitrise customer portal. Anyway this is causing the build on Xcode 9 to run twice regardless of success or failure conditions doubling the time for each build.

The step retries the test run if:

the xcodebuild test log contains one of the Automatic retry reasons
or the test run failed and (Experimental) Rerun test, when it fails? step input is set to true

I'll close this issue, but if you need more info/help just let us know and we'll reopen it!


AppConf injected settings dissapearing

Libraries that use AppConf to inject their specific settings into the global settings don't seem to work. The settings are injected successfully but at read time they're gone again resulting in AttributeErrors being raised.
I've tried, unsuccessfully, to find out where the issue is. Hopefully someone else can figure it out. I've resorted to just implementing all the settings they need myself, but that's not very pretty and a large compatibility issue in regards to updates.

Would be good if you could a PR with a failing test.

I created a PR #168.
Sorry it took a while, I've been pretty busy with my new child :)
Hopefully this helps. Let me know if something is unclear.

Hi, any news on this?

@codingjoe
Maybe help with #168?
I'm sorry, but I have no idea about it, and am not affected.

Yes, that seems to be related thx @blueyed
I am looking forward to try the patch (once there is one).

@bittner I tried to create a test for AppConf so at least we have something to check

This happens with django-axes settings, sadly :(

I went through some fruitless trial and error for this and here's what I've found. Note that I use django compressor as the AppConf client in this experiment, but the same should apply for other libraries that make use of AppConf.
The metaclass that django-configuration uses clashes with the django-appconf one, particularly the logic in the __new__'s.
It seems that both libraries traverse through any parent classes and try to populate data accordingly. So my expectation would be that to make this work we could do something like:
from compressor.conf import CompressorConf
from configurations.base import ConfigurationBase, Configuration
from appconf.base import AppConfMetaClass

class HyperMetaclass(ConfigurationBase, AppConfMetaClass):
    pass

class CoreConfiguration(Configuration, CompressorConf, metaclass=HyperMetaclass):
    pass

class Dev(CoreConfiguration):
    # ...

But there are some complications. from compressor.conf import CompressorConf hits some settings (e.g. settings.STATIC_ROOT) [The import triggers new_class._configure() of AppConfMetaClass.__new__() which ends up hitting CompressorConf.configure_url()]; and the settings have None values because they are accessed too early, and that ends up raising AttributeErrors in the configure methods (e.g. configure_url()).
As part of this experiment I went on to comment out all the configure_ methods of AppConf, which got rid of that error.
Then I realized that both libraries only consider setting classes of their own kind. For django-configuration's case, the metaclass only deals with parents of type ConfigurationBase (see 1st link above). So I tried to account for any AppConf parents in the __new__() by adding:
parents_appconf = [base for base in bases if isinstance(base,
                                                        AppConfMetaClass)]
if parents_appconf:
    for base in parents_appconf[::-1]:
        appconf_vars = {}
        for name in dir(base):
            prefixed_name = base._meta.prefixed_name(name)
            if isuppercase(name):
                appconf_vars[prefixed_name] = getattr(base, name)
        settings_vars.update(appconf_vars)

This made some progress but still results to an error, which is where I left it:
File "/opt/project/bsplatform/config/settings.py", line 623, in <module>
    class Dev(CoreConfiguration):
RuntimeError: __class__ not set defining 'Dev' as <Configuration 'config.settings.setup'>. Was __classcell__ propagated to type.__new__?

My understanding is that, if we can make this work somehow, we'll have to:

Update django-configurations to consider AppConf parents.
(For compressor's case) Maybe update CompressorConf to not hit settings when only simply imported.

Hope someone else will use this info and have better luck at figuring this out.


fix copy paste error in split

better unit test with direct check of split result

@ole108 will rewrite this properly with a testable method


Add possibility to show custom background under spotlighted view

I added this feature, because I needed to show a gradient background under spotlighted view.
Example of usage:
            controller.spotlightBackgroundView = gradientView
            controller.alpha = 1```

Gecco.SpotlightViewController is inherited UIKit.UIViewController. So, you can if you want to add subview to SpotlightViewController.view via view.addSubview(subview).
I will not accept this proposal to keep Gecco classes simple. Try the above method instead this proposal. Thank you


AnyWidget should work without access to external network resources

I'm building out some custom IPyWidgets using AnyWidget. All the files needed are installed with the packages for both AnyWidget and my custom widgets (via pip), yet Visual Studio Code fails if there is no network connection with the below:

From looking at the network trace, it would appear it's using a CDN for a couple of basic files (seems to be require.js, and the AnyWidget index.js that is already in the pip package).
By contrast, when using the jupyter lab web browser interface, everything works great with no network connection, and I can see it is fetching everything from the jupyter server running on localhost:

The actual custom widget JS and CSS files that AnyWidget loads seem to load fine via a blob URI in VS Code without issue, so it does seem to be only the AnyWidget files themselves which are failing.
It would be great is VS Code could support pip installs of AnyWidget - and custom widgets using it - without needing to hit external network resources.

Thanks for filing this issue.
Most liked already resoved by https://github.com/microsoft/vscode-jupyter/pull/14711
Please try installing the latest pre-release version of the Jupyter extension in VS Code insiders.

Works great for local Python environment. Still fails if connected to a Jupyter server kernel. That's lower pri for me though, so not sure if you want to track this here or elsewhere.

This works for Remmote Jupyter Notebook servers, but not for Remote Jupyter lab servers.

Verified by author.


Add uWsgi as an alternative option to Gunicorn

Currently, it is only possible, to deliver the production Django project via gunicorn. I would like to add one option, that let the user choose between uWsgi and Gunicorn.
I ok, I am happy to provide a PR.

I'm a huge uWsgi fan and would love to have this as an option in Cookiecutter Django. We have, however, a lot of platforms people using this project deploy to.
If we add uWsgi as an option we have to make sure it works on all platforms and continues to do so in the long run. Considering the time and effort to do this, it is unlikely that one of the maintainers is willing to do that at the moment.

Hm, maybe I underestimate the complexity. But in general, there are various (deployment) options, that do exclude each other. E.g. docker will not run on Heroku, or Procfile is not required for a lot of platforms.
Adding a uWsgi option, for those people who like to use it on their platform or within Docker should do no harm. Anybody could still opt for gunicorn.
And the code changes should not be to big.

Docker, which I presume is your target, works the same everywhere, right? Erm... not quite. Docker's behavior can have subtle differences on Windows, Linux, and Mac OSX. Which beggars the following questions:

Will the uWSGI modifications you submit be tested on Windows 10, Linux, and Mac OSX?
What assurances can you give that you will be able to support and help people with problems for 5-10 hours a week here and on Gitter for as long as Cookiecutter Django supports your uWSGI modifications? Is your place of employment willing to pay for your maintenance work on this project?

Submissions for new features in Cookiecutter Django are something we enjoy. However, we have to balance to additional maintenance work we (the maintainers) have to do in order to have that new feature.

Well, obviously I did underestimate the complexity, and requirements in terms of testing and platform support. Thanks for the detailed explaination.

@schacki django-init switched to uWSGI recently, our setup is based/tested only for ubuntu16 for production deployment using ansible ( https://github.com/Fueled/django-init/pull/191 ). You can try out if it helps you in anyways.
Having a less stacks to maintain it allows us to move fast. That's not the case with this project. I do see a substantial effort involved for the change.
My 2 cents.

In my fork at https://github.com/webspired/cookiecutter-django, I have added the option to serve the project via uWsgi and the static files via uWsgi static file handler.
I made sure that Gunicorn is still the default and added warnings to use uWsgi outside of Docker only at your own risk.
I will keep that branch open for anybody that is interested to use it.
Feedback welcome.


Native prisma database engine

Problem

From what I observed, prisma builds an abstract layer upon common database engines like MySQL, MSSQL, ...
This leads to the disadvantages:

Maintaining an isolated database server, database engine, or database file.
Increase the overall complexity of CI/CD management.
Can't experiment with new features that can't be transpiled to SQL.

Suggested solution

Build a prisma-based database engine that leverages no other common database engines but runs directly on NodeJS.
Alternatives

Additional context

I don't get your problem. Prisma is an ORM for multiple databases, so it's an abstraction that lets you write queries in simpler ways. The "engine" that it uses is just built for running queries and connecting to the database, it is not the database itself. You can also write raw queries in SQL if you want to. The reason the engine is separated is because it is built in Rust, and that gives better performance than NodeJS.


Added an actual ApiClient instance to be passed into chatClient.

Type: Bugfix

Fixes: #162

Adding a line that explicitly instantiates the API client makes the code actually conform to the interface and work.

As per the comment in #162, this is wrong; closing.


Plot tutorial

[NF] A plot tutorial has been added, using a Jupyter Notebook.
A bug with the plot axes has also been fixed and some plot parameters have been adjusted.

Thank you for your contribution :)