Configurable keyboard shortcuts

Pre-defined configurable shortcuts

F2 - Quick save
A - Add a table
F - Add a field in the selected table
Space - edit the selected the table
Space - edit the selected field
M - toggle the menu

pardon the numerous commits, able to squash them all into 1 when pulling?

I have another PR that is based off this PR https://github.com/bilogic/wwwsqldesigner/tree/reordering-fork-configurable-shortcuts, i.e. it's being blocked until this is cleared :)

I have constraint all commits here to keyboard shortcuts, the changes in the 6 files are quite clean to me. Thank you.

@ondras don't mean to rush you, but possible to accept this so I can plan my other PRs? Thank you.


Add spec for 'PickerDay: disabled' to clarify its spec

I've modified README and added test cases since the README and specs didn't tell about disabledDates's boundary conditions.

Coverage remained the same at 100.0% when pulling 1dd3ad3398c55c624f1ff4da2a2f5c096fa7ce6c on ayumitamai97:add-spec-pickerday into de0fc75fe6f6572eebf47f94da20716ab7690cff on charliekassel:master.


resultsets fetch implementation

Is the resultset FETCH implemented based on this concept https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search-scrolling.html or is it restricted by the greatest of index.max_result_window and fetch.size ?
Currently I can't find a way to get the entire result set from a SELECT query if the result contains more than fetch.size (or index.max_result_window) rows because offsets are currently not implemented in sql4es.
Any hints/workarounds or plans for the future? :)

The fetch is implemented as a scroll and it will put fetch.size number of results within a single ResultSet. More results (if they exist) can be fetches using the Statement's getMoreResults() function which is part of the JDBC specification. SQLWorkbench for example will execute this automatically and show a tab for each ResultSet (Result 1, Result 2, ..., Result N).

Got it, but it can't be achieved by means of SQL, which makes the feature inaccessible for a non-programmable client (simple SQL data source).

What exactly do you mean by 'means of SQL'? The getMoreResults is part of the JDBC specification and clients can use it (SQLWorkbench does).
Maybe better to approach it from another side, what are you trying to achieve using which client? Understanding this will enable me to help more efficiently i think :)
As a side node, implementing OFFSET or LIMIT X, Y is not planned atm. The SQL parser used (from the Presto project) does not even support parsing these I think.

I have added an option (results.split) which can be used to control how results from Elasticsearch are put in ResultSet objects. The current default is that all results, no matter the fetch size, are put in a single ResultSet. Setting results.split to true will split the ResultSet into multiple ResultSet objects each containing at most fetch.size number of records.
I understand that it is not really an answer to your issue as it does not implement a way to use offset (which Elasticsearch does not support either). But I hope it helps :)

Sounds great! That's what I actually wanted.
The idea is to be able to get all records from a select into a single ResultSet - what you've said now is the default case.

In ESQueryState, I think the limit is not calculated correctly in lines 138-148.
If no fetch size and limit has been provided, the default value for limit is used, which is -1 - I guess this is what causes Drill to return 10 results, since 10 is the default number of results ES returns unless specified otherwise (and -1 is not a valid number).
When using WorkbenchJ, I see that it is calling the method setMaxRows with 0, which then causes determineLimit to return 0...

Whow, good call on this issue. I have implemented a fix to avoid setting the number of results to -1. If there is no limit or maxResults specified the driver will fetch Integer.MAX_VALUE rows.
I have explored the option to use OFFSET using query.setFrom(N) and it turns out that its use is limited because Elasticsearch throws an exception when offset + limit > 10000. Given this limitation I have chosen not to implement OFFSET at this time. Offsetting a result will have to be done by the client by iterating over the results. Obviously this is not efficient but ES does not really provide the support for this scenario at this point.

Looks like there is another issue - when not specifying results.split/fetch.size in the URL, and with no limit provided in the query, I am getting IndexOutOfBoundException, in Squirrel/WorkbenchJ/Drill.
There's no stack trace though, so I'm not sure where it is coming from yet, but I'll try to dig around some more.

Workbench's logs (help -> view logfile) could provide some information on the Exception.
One way this can happen if when your documents have more than 250 fields (including nested objects) which does not fit in the default array initialised to hold results. If this is the case you can increase the number of fields by setting the 'default.row.length' parameter

I wonder if this is maybe coming back from ES itself? When I set a limit of 10,000 or 20,000, it doesn't happen and I get all results correctly. It only happens when the limit is really big (MAX_INT)...
I've also found this thread which seems related:
https://discuss.elastic.co/t/getting-java-lang-arrayindexoutofboundsexception-while-searching/35756
--Dan
From: Corne Versloot<EMAIL_ADDRESS>Sent: Thursday, September 22, 2016 09:13
To: Anchormen/sql4es<EMAIL_ADDRESS>Cc: Markhasin, Dan<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [Anchormen/sql4es] resultsets fetch implementation (#22)
Workbench's logs (help -> view logfile) could provide some information on the Exception.
One way this can happen if when your documents have more than 250 fields (including nested objects) which does not fit in the default array initialised to hold results. If this is the case you can increase the number of fields by setting the 'default.row.length' parameter
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/Anchormen/sql4es/issues/22#issuecomment-248820913, or mute the threadhttps://github.com/notifications/unsubscribe-auth/APcOgeBMHourYUBwSmzFdKvZeu3O9Vjpks5qshxdgaJpZM4J90sK.
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

Seems very likely. I actually assumed ES would fetch the MAX_INT results using the scroll in 10.000 increments but I do not think it is the case. Setting the size to 10.000 and executing the scroll in the driver until the LIMIT number of results or the end of the result has been reached should fix this.

I have rebuild this part and results are always fetched in batches using a scroll. Search results are added to a single ResultSet or to multiple if configured to do so (setting results.split or using setMaxRows(...) on the Statement). Splitting results is generally speaking the better approach since it avoids loading all results before handing it to the client. Tested up to 3.6M rows with and without specifying a limit. I must say it is not particularly fast, at least not on my laptop. In the end Elasticsearch is not really build to just serve large number of records.
Feel free to use the latest <IP_ADDRESS> release to test it

Yep, seems to be OK now :)
--Dan
From: Corne Versloot<EMAIL_ADDRESS>Sent: Sunday, September 25, 2016 15:19
To: Anchormen/sql4es<EMAIL_ADDRESS>Cc: Markhasin, Dan<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [Anchormen/sql4es] resultsets fetch implementation (#22)
I have rebuild this part and results are always fetched in batches using a scroll. Search results are added to a single ResultSet or to multiple if configured to do so (setting results.split or using setMaxRows(...) on the Statement). Splitting results is generally speaking the better approach since it avoids loading all results before handing it to the client. Tested up to 3.6M rows with and without specifying a limit. I must say it is not particularly fast, at least not on my laptop. In the end Elasticsearch is not really build to just serve large number of records.
Feel free to use the latest <IP_ADDRESS> release to test it
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/Anchormen/sql4es/issues/22#issuecomment-249418781, or mute the threadhttps://github.com/notifications/unsubscribe-auth/APcOgbp8erfhOSojVOsEtEKbrPfQJ040ks5qtmbNgaJpZM4J90sK.
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

ES support offset since v0.9, I have added mysql style limit with offset support both in my fork of presto-parser and es4sql, maybe this would be helpful.


Add support for Dropbox

Fixes #25. The styles need to be modified to fit another nav entry in there.

Looks good!

Okay, I'll switch /save_temp to AWS API proxy later as well.


initial troubleshooting guide.

A first pass at troubleshooting guide based on a handful of issues that I had getting the json db integrated.

Oh, I see we have a wiki - is that a better place for this?  Probably...

Oh, I see we have a wiki - is that a better place for this?  Probably...

https://github.com/seattle-uat/universal-application-tool/wiki/Troubleshooting

https://github.com/seattle-uat/universal-application-tool/wiki/Troubleshooting


Update cli-core dependency and don't shrinkwrap while packing

Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

[x] I acknowledge that all my contributions will be made under the project's license.

Seemed like a silly dependency for the same number of chars.


Make checkboxes and radios accessible/tabbable

Resolves #275

👍
defer to @Snugug

@poofichu Your branch needs to be updated

w/r/t your emoji usage, as this was resolving a bug, it's not new functionality (:new: :new:), it's a bug fix (:bug: :bug:)

Noted about the bug emoji.  Habit of doing 🆕

Even a @Snugug can make a mistake every now and then 😛
Now MERGE PLZZZZZZZZZ

@poofichu Out of date again


jabref: 3.8.1 -> 5.1

This still feels a bit hacky, so feel free to give it a try with gradle2nix and an openjdk-14 sans openjfx. Meanwhile, this is a step forward to get this overdue version bump.
Motivation for this change
Closes https://github.com/NixOS/nixpkgs/issues/86331
Closes https://github.com/NixOS/nixpkgs/issues/90850
Closes https://github.com/NixOS/nixpkgs/pull/72423/files
Things done

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

[X] NixOS
[ ] 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.

@luxferresum can you try/review?
@ckauhaus can you also put the securiy tag here?

/marvin opt-in
/status needs_reviewer

BTW you should consider adding yourself as a maintainer 😉. You can just send that PR directly to me.

@wamserma Hi, thanks for the awesome contribution of bringing JabRef up to 5.1! I just thought I'd mention that I've found that if I use this then opening external files (e.g. attaching a PDF to an entry an opening it, or opening any clickable URL in JabRef) does not work (I'm on NixOS 20.09). With errors such as java.io.IOException: Cannot run program "xdg-open": error=2, No such file or directory. I have found a workaround which is to use @tyrion's approach (using the .deb) mentioned here https://github.com/NixOS/nixpkgs/issues/86331#issuecomment-636693631 - changing it to 5.1 (and the hash of course) works fine. I'm not sure how easy/hard fixing that issue with 5.1 in nixpkgs would be but just thought I'd mention it. I'm happily using @tyrion's approach for now :slightly_smiling_face:

@Coda-Coda Thanks for reporting. I can reproduce this, when running from a pure nix-shell. The reason seems xdg-utils is missing from the runtime deps. I'll pick this up and bump to 5.2.

Could it be backported to NixOS 20.09?

@alexeymuranov No, as this is not perfectly working (see discussion above and in https://github.com/NixOS/nixpkgs/pull/112028). It will be in 21.05, though.


[SDK-72]: Cleaning Up Code

Using CodeMaid, cleaned up code and made more consistent - removing unnecessary lines, consistent curly bracket placements, reordering of using statements, naming of regions.

@echarrod Did you run the tests to make sure it doesn't break anything?

Ran tests after getting latest from Master, all still passing


Click on the database table to display "Some Error Occurred"

Click on the database table to display "Some Error Occurred"

near "ORDER": syntax error (code 1 SQLITE_ERROR): , while compiling: SELECT * FROM ORDER

I found that my table name is a problem caused by keywords, and changing the table name solved it


Protect from potentially undefined function call

CC @marcaaron
Details

Simply add a protective condition to a NetworkConnection function that may be causing this mobile Exception.
Fixed Issues

$ https://github.com/Expensify/Expensify/issues/206552
Tests

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

PR Review Checklist

Contributor (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 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 included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[X] MacOS / Chrome
[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 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 was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named “index.js”. All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] 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)
[ ] 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)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose and it is

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

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

[ ] 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)
[ ] 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.

PR Reviewer Checklist

[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] 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)
[ ] 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)

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

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] 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)
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] 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).
[ ] I verified that comments were added to code that is not self explanatory
[ ] 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.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by tagging the marketing team on the original GH to get the correct copy.
[ ] 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.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] 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
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] Any functional components have the displayName property
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] 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)
[ ] 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)
[ ] All JSX used for rendering exists in the render method
[ ] 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

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

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

[ ] 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)
[ ] 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.

QA Steps

[ ] Make sure you manually enable/disable network connectivity to attempt to trigger the newly protected code (it's unlikely, but worth trying)
[ ] Verify that no errors appear in the JS console

Screenshots

Web

Mobile Web

Desktop

N/A - please test Desktop while reviewing the PR!
iOS

Android

LGTM if I had to guess I'd say we are calling stopListeningForReconnect() (on sign out) and setting this to undefined
https://github.com/Expensify/App/blob/c237f3659d843850662d728824aeff6a1a3d587f/src/libs/NetworkConnection.js#L98-L99
then either a request times out which triggers the recheck
https://github.com/Expensify/App/blob/c237f3659d843850662d728824aeff6a1a3d587f/src/libs/Network/NetworkEvents.js#L17-L21
OR we got a "Failed to fetch" error after we logged out somehow and forced a "recheck" via this code
https://github.com/Expensify/App/blob/27ddbdd1229775fc775333584e8f72820dbd2275/src/libs/Network/index.js#L131

🚀 Deployed to staging by @marcaaron in version: 1.1.56-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @francoisl in version: 1.1.56-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Update for indent/javascript.vim

Almost a rewrite, though the logic and the results are the same as before. this gets better speed and should be more readable, though there is more code now

Thanks.  I hope you have some way of testing the script.  We should
actually have some recommended way for that.

I have a few files of different test cases: one with a lot of edge cases; a giant file to test performance; and a really 'dense' file which has ~1500 lines. though i tested manually diffing the results


MPU fault with mcumgr bluetooth FOTA started whilst existing FOTA is in progress

Describe the bug
We have a ncs 1.6.1 (zephyr 2.6) application and part of that is being able to upgrade the firmware via bluetooth. The mobile app being used to test isn't great and allows for starting a FOTA upgrade whilst an existing FOTA is in progress, however this seems to cause a hard fault and crash the zephyr application (running on an nRF52840 with mcuboot, it crashes because it seems it is attempting to access address 0xc which is part of mcuboot and protected by the ACL). Output is as follows:
[00:07:33.777,618] <inf> mcuboot_util: Swap type: none
[00:07:33.824,768] <inf> mcuboot_util: Swap type: none
[00:07:33.827,301] <inf> mcuboot_util: Swap type: none
[00:07:33.854,919] <inf> mcuboot_util: Swap type: none
[00:07:33.857,421] <inf> mcuboot_util: Swap type: none
[00:07:33.945,251] <err> os: ***** MPU FAULT *****
[00:07:33.945,281] <err> os:   Data Access Violation
[00:07:33.945,281] <err> os:   MMFAR Address: 0xc
[00:07:33.945,312] <err> os: r0/a1:  0x00000008  r1/a2:  0x000000f3  r2/a3:  0x000000f3
[00:07:33.945,343] <err> os: r3/a4:  0x20026650 r12/ip:  0x00000000 r14/lr:  0x00057c87
[00:07:33.945,404] <err> os:  xpsr:  0x01000000
[00:07:33.945,404] <err> os: s[ 0]:  0x00000000  s[ 1]:  0x00000000  s[ 2]:  0x00000000  s[ 3]:  0x00000000
[00:07:33.945,434] <err> os: s[ 4]:  0x00000000  s[ 5]:  0x00000000  s[ 6]:  0x00000000  s[ 7]:  0x00000000
[00:07:33.945,465] <err> os: s[ 8]:  0x00000000  s[ 9]:  0x00000000  s[10]:  0x00000000  s[11]:  0x00000000
[00:07:33.945,465] <err> os: s[12]:  0x00000000  s[13]:  0x00000000  s[14]:  0x00000000  s[15]:  0x00000000
[00:07:33.945,495] <err> os: fpscr:  0x00000000
[00:07:33.945,526] <err> os: r4/v1:  0x20026d71  r5/v2:  0x000000f3  r6/v3:  0x20006cd8
[00:07:33.945,526] <err> os: r7/v4:  0x00000000  r8/v5:  0x0004bc15  r9/v6:  0x00000000
[00:07:33.945,556] <err> os: r10/v7: 0x00000014  r11/v8: 0x20020292    psp:  0x20020160
[00:07:33.945,587] <err> os: EXC_RETURN: 0xffffffed
[00:07:33.945,587] <err> os: Faulting instruction address (r15/pc): 0x00057c10
[00:07:33.945,648] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:07:33.945,678] <err> os: Current thread: 0x20006ae8 (BT RX)
[00:07:34.181,732] <err> fatal_error: Resetting system
uart:~$ *** Booting Zephyr OS build v2.6.0-rc1-165-ga4af4e75e8a0  ***

Address 0x57c10 is in a net buffer function:
00057c0c g     F text   00000064 net_buf_simple_add

To Reproduce
Not tried to reproduce out of this application as it's tied to a specific mobile app. Also not tested with zephyr 2.7/ncs 1.7
Expected behavior
An error to be emitted or the second update to be prevented or something other than a crash
Impact
Annoyance
Environment (please complete the following information):

OS: linux
Toolchain: Zephyr SDK 0.13.0
Commit SHA or Version used: Part of ncs 1.6.1 using zephyr 2.7

Breakpoint placed where it happens:
#0  net_buf_simple_add (buf=0x8, len=len@entry=243) at /zephyr/subsys/net/buf.c:801
#1  0x00057b8e in net_buf_simple_add_mem (buf=<optimized out>,
    mem=0x2002a4f1 <net_buf_data_hci_rx_pool+275>, len=243) at /zephyr/subsys/net/buf.c:820
#2  0x000565d6 in net_buf_add_mem (len=243, mem=0x2002a4f1 <net_buf_data_hci_rx_pool+275>, buf=0x0)
    at /zephyr/include/net/buf.h:1494
#3  smp_bt_chr_write (conn=0x20006cd8 <acl_conns>, attr=<optimized out>,
    buf=0x2002a4f1 <net_buf_data_hci_rx_pool+275>, len=<optimized out>, offset=0, flags=2 '\002')
    at /zephyr/subsys/mgmt/mcumgr/smp_bt.c:58
#4  0x0004bb16 in write_cb (handle=<optimized out>, user_data=0x20023a4c <rx_thread_stack+16204>,
    attr=0x200029c8 <smp_bt_attrs+40>) at /zephyr/subsys/bluetooth/host/att.c:1661
#5  write_cb (attr=0x200029c8 <smp_bt_attrs+40>, handle=<optimized out>,
    user_data=0x20023a4c <rx_thread_stack+16204>)
    at /zephyr/subsys/bluetooth/host/att.c:1639
#6  0x0004deb0 in gatt_foreach_iter (start_handle=<optimized out>, end_handle=<optimized out>, uuid=0x0,
    user_data=<optimized out>, func=0x4bad9 <write_cb>, num_matches=0x200239fa <rx_thread_stack+16122>,
    attr_data=0x0, handle=18, attr=0x200029c8 <smp_bt_attrs+40>)
    at /zephyr/subsys/bluetooth/host/gatt.c:1522
#7  gatt_foreach_iter (attr=0x200029c8 <smp_bt_attrs+40>, handle=<optimized out>,
    start_handle=<optimized out>, end_handle=<optimized out>, uuid=0x0, attr_data=0x0,
    num_matches=0x200239fa <rx_thread_stack+16122>, func=0x4bad9 <write_cb>,
    user_data=0x20023a4c <rx_thread_stack+16204>)
    at /zephyr/subsys/bluetooth/host/gatt.c:1491
#8  0x0004f158 in foreach_attr_type_dyndb (user_data=0x20023a4c <rx_thread_stack+16204>,
    func=0x4bad9 <write_cb>, num_matches=<optimized out>, attr_data=0x0, uuid=0x0, end_handle=18,
    start_handle=18) at /zephyr/subsys/bluetooth/host/gatt.c:1554
#9  bt_gatt_foreach_attr_type (start_handle=<optimized out>, end_handle=<optimized out>,
    uuid=uuid@entry=0x0, attr_data=attr_data@entry=0x0, num_matches=<optimized out>, num_matches@entry=0,
    func=func@entry=0x4bad9 <write_cb>, user_data=user_data@entry=0x20023a4c <rx_thread_stack+16204>)
    at /zephyr/subsys/bluetooth/host/gatt.c:1603
#10 0x0004b878 in bt_gatt_foreach_attr (start_handle=start_handle@entry=18, end_handle=end_handle@entry=18,
    func=func@entry=0x4bad9 <write_cb>, user_data=user_data@entry=0x20023a4c <rx_thread_stack+16204>)
    at /zephyr/include/bluetooth/gatt.h:397
#11 0x0004ca4e in att_write_rsp (offset=0, len=243, value=0x2002a4f1 <net_buf_data_hci_rx_pool+275>,
    handle=18, rsp=0 '\000', req=0 '\000', chan=0x20028ba0 <_k_mem_slab_buf_chan_slab>)
    at /zephyr/subsys/bluetooth/host/att.c:1704
#12 att_write_rsp (chan=chan@entry=0x20028ba0 <_k_mem_slab_buf_chan_slab>, req=req@entry=0 '\000',
    rsp=rsp@entry=0 '\000', handle=<optimized out>, value=0x2002a4f1 <net_buf_data_hci_rx_pool+275>,
    len=243, offset=0) at /zephyr/subsys/bluetooth/host/att.c:1673
#13 0x0004cb3a in att_write_cmd (chan=0x20028ba0 <_k_mem_slab_buf_chan_slab>,
    buf=0x20029650 <net_buf_hci_rx_pool+24>) at /zephyr/subsys/bluetooth/host/att.c:1935
#14 0x0004c99e in bt_att_recv (chan=0x20028ba8 <_k_mem_slab_buf_chan_slab+8>,
    buf=0x20029650 <net_buf_hci_rx_pool+24>) at /zephyr/subsys/bluetooth/host/att.c:2449
#15 0x0004b42a in l2cap_chan_recv (buf=0x20029650 <net_buf_hci_rx_pool+24>, chan=<optimized out>)
    at /zephyr/subsys/bluetooth/host/l2cap.c:2328
#16 bt_l2cap_recv (conn=conn@entry=0x20006cd8 <acl_conns>, buf=0x20029650 <net_buf_hci_rx_pool+24>)
    at /zephyr/subsys/bluetooth/host/l2cap.c:2362
#17 0x00049e04 in bt_conn_recv (conn=conn@entry=0x20006cd8 <acl_conns>, buf=<optimized out>,
    buf@entry=0x20029650 <net_buf_hci_rx_pool+24>, flags=flags@entry=2 '\002')
    at /zephyr/subsys/bluetooth/host/conn.c:982
#18 0x00045488 in hci_acl (buf=0x20029650 <net_buf_hci_rx_pool+24>)
    at /zephyr/subsys/bluetooth/host/hci_core.c:404
#19 hci_rx_thread () at /zephyr/subsys/bluetooth/host/hci_core.c:3458
#20 0x00030b0a in z_thread_entry (entry=0x453a1 <hci_rx_thread>, p1=<optimized out>, p2=<optimized out>,
    p3=<optimized out>) at /zephyr/lib/os/thread_entry.c:29
#21 0xaaaaaaaa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

So from having a look at the code it seems that the mcumgr library will grant resources whenever they are asked for, this means you can initiate many firmware updates at once. For this, it uses the mcumgr memory pool, and doesn't check if it was allocated successfully or not, then proceeds to use it as a buffer and put the data there. So in theory I guess it would be possible to fault any MPU-protected zephyr device by initiating enough FOTA updates to use up all the mcumgr allocated memory, and on devices without MPU-protection, cause a buffer overflow

Seems the NULL check was fixed by https://github.com/zephyrproject-rtos/zephyr/commit/36cf48464060bfcbf66cf325732c655584fe4b9d#diff-3a9db6d030e61f42affda8473c246646c3267765ebc87858631d2dc08c6517d6 but that leaves the other issue of SMP seemingly allowing a firmware update whilst a firmware update is already in progress

Thinking that issue might just be the 'quality' mobile app, closing.


operator awx-operator (2.11.0)

Thanks for submitting your Operator. Please check the below list before you create your Pull Request.
New Submissions

[ ] Are you familiar with our contribution guidelines?
[ ] Are you familiar with our operator pipeline?

[ ] Have you tested your Operator in all supported installation modes?
[ ] Have you considered whether you want to use semantic versioning order?
[ ] Is your submission signed?
[ ] Is operator icon set?

Your submission should not

[ ] Add more than one operator bundle per PR
[ ] Modify any operator
[ ] Rename an operator
[ ] Modify any files outside the above mentioned folders
[ ] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[ ] Description of the managed Application and where to find more information
[ ] Features and capabilities of your Operator and how to use it
[ ] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[ ] Human readable name and 1-liner description about your Operator
[ ] Valid category name1
[ ] One of the pre-defined capability levels2
[ ] Links to the maintainer, source code and documentation
[ ] Example templates for all Custom Resource Definitions intended to be used
[ ] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/pipeline restart community-hosted-pipeline

/retry

The tests just need to be re-run because the 2.10.0 PR merged. On re-run, the operator will no long have a dangling version ref

what does community-release-pipeline/failed tag means?

/pipeline restart community-release-pipeline


[CP] Fix TextPainter's caret position calculation for text containing full-width spaces

Issue Link
https://github.com/flutter/flutter/issues/149099
Target
stable
PR Link
https://github.com/flutter/flutter/pull/149698
Changelog Description
Fix the logic for caret position calculation when full-width spaces are present in the text
Impacted Users
end-customers
Impact Description
The cursor does not move when entering full-width spaces
Workaround
none
Risk
low
Test Coverage
yes
Validation Steps

Enter full-width spaces in TextFormField
This fix works if the cursor position changed

@yqritc please follow the cherry-pick instructions by opening a cherry-pick to the stable branch and updating the pr link in this issue before it can be accepted into the queue.

@itsjustkevin sorry, I updated the pr link

@yqritc beta is the current priority, your request has not been forgotten.

closed this issue since the fix is included into 3.24.0


Add temperature for MCCGQ11LM door/window sensor

... and not to the older door/window sensor model
Replaces pull request #562!
Note that the temperature reading is nog very accurate. The temperature_calibration setting can compensate for the higher reading, but not for the slow/limited response to temperature changes. I suspect the response is probably limited by the enclosure of the door/window sensor and it was never really intended to be used as a temperature sensor. Still a nice feature that offers a usable indication of temperature changes.

Perfect!

Implemented in #458


Can I compile Scryer Prolog with beta channel

I tryed to obtain rust via, on Ubuntu:
$ sudo apt install rustup
$ rustup default beta
$ rustc -V
rustc 1.82.0-beta.5 (6a3b69c6b 2024-09-27)

Compiling Scryer Prolog gives me this warning:
warning: unnecessary `unsafe` block
  --> src/ffi.rs:92:9
   |
92 |         unsafe {
   |         ^^^^^^ unnecessary `unsafe` block
   |
   = note: `#[warn(unused_unsafe)]` on by default

Should I be worried?

It seems that is a very light warning. I don't think it affects the behavior of the code.


agent panic

time="2017-05-23T17:09:35Z" level=error msg="read tcp <IP_ADDRESS>:58788-><IP_ADDRESS>:8080: use of closed network connection"
panic: send on closed channel

goroutine 167084 [running]:
panic(0x96d600, 0xc42156a5f0)
    /usr/local/go/src/runtime/panic.go:500 +0x1a1
github.com/rancher/agent/service/hostapi/stats.(*HostStatsHandler).Handle.func2(0xc4202d02c0, 0x24, 0xc420929d40, 0xc4236e6a30)
    /go/src/github.com/rancher/agent/service/hostapi/stats/host_stats.go:64 +0x1a0
created by github.com/rancher/agent/service/hostapi/stats.(*HostStatsHandler).Handle
    /go/src/github.com/rancher/agent/service/hostapi/stats/host_stats.go:69 +0x266
INFO: Starting agent for 36FE4EBFA653FA564389

The reason is that if web-socket connection is dropped, we closed the channel used to deliver the message. But at the same there could be several go-routines still writing to that channel and then panic happens. The safest way is to not close the channel if we don't explicitly require them to do.

Tested with rancher-server v1.6.15-rc3 and rancher agent version - rancher/agent:v1.2.10-rc3 .
Tried the following steps multiple times and did no see a panic in agent logs:

Have the host stats page open in UI , so there is active connection and data exchange .
Kill the websocket proxy process .
This results in status in the UI not shown for sometime and then when  websocket proxy process gets recreated , UI get   to "connecting" state and the shows the stats eventually.
In the agent log , there is no panic noticed. Agent restarts successfully.


Support aliased controlled gates via their base operation

Small improvements to the gate decomposition strategy with the new device API.
Controlled operations defined via specialized classes (like Toffoli or ControlledQubitUnitary)
are now implemented as controlled versions of their base operation if the device supports it.
In particular, MultiControlledX is no longer executed as a QubitUnitary with Lightning.
[sc-65228]

Looks good! Seems like the test failures are just tests that need to be updated, but let me know when its passing and I'll give it a final look-through and approve :)


Level.destroyBlock(false); doesn't work

Well, just try this:
function destroyBlock(x,y,z,blockId,itemId){
var blockId = Level.getTile(x,y,z);
if(blockId==1){
Level.destroyBlock(false);
clientMessage(":v);
}
}

You're... trying to destroy a block while destroying a block? Destroyception?

function destroyBlock(x,y,z,blockId,itemId){
if(blockId==1){
Level.destroyBlock(false);
clientMessage(":v);
}
}
It's just that with destroyBlock(false) in the code still drops it

thanks - will fix.

Fixed in latest beta.


Xdebug support in PHPStorm

Hi,
This is an initial proposal to add PHPstorm xdebug integration.
Current situation is that, you can debug behat as long as calls are direct, however, once http requests are involved like When I am on "\" then the debugger will no longer continue as no cookie is set.
This pull requests solves this by checking if the xdebug_config server variable is set, if that is the case, the session will receive the xdebug cookie allowing the debugger to work.
I have included internations/http-mock to mock a php webserver, we could update the other feature to use this as well. But let's handle that separate.
Travis is failing because internations/http-mock requires php7.. I'll see if I can test this in a different way.
Http mocking was not needed, still it is weird to use an online domain to do this.
Suggestions are welcome.

Tests are failing because of external dependency's, I would drop php 5.3 support.

You should not use short array syntax to get compatible with php 5.3

Hello @spolischook,
Changes are made.
As for your second comment, there is no short array syntax used anywhere in my commit.

Hello @stof,
Thanks for the review, makes sense.
Changes have been applied.

@haringsrob any way you need to fix tests before merge your impruvement https://travis-ci.org/Behat/MinkExtension/jobs/240659573#L350
Also, please remove hhvm from travis.yml, because it's not supported by travis-ci any more.
https://travis-ci.org/Behat/MinkExtension/jobs/240659577

@spolischook I will remove the hhvm.
For the other part I don't agree,
PHP Parse error:  syntax error, unexpected '[' in /home/travis/build/Behat/MinkExtension/vendor/behat/behat/src/Behat/Testwork/Argument/MixedArgumentOrganiser.php on line 288 As behat is no going to support php 5.3 anymore, why should we?
Also php 5.3 is already EOL for some time, http://php.net/eol.php, keeping on using it might give developer the wrong idea that it is ok.


Groups gives an empty set back

Hi,
it seems like the groups section doesn't work anymore, it always return an empty set.
Tried corrected code to:
  @groups ||= @page.search('#groups .groups-name').map do |item|
    name = item.text.gsub(/\s+|\n/, ' ').strip if item.at('strong')

    { :name => name }
  end

Not working so far ..
thanks

Please check if you can see the groups in the public profile(without signing up). I checked and it is working.
If possible can you paste the link and rawhtml

Yatish, thanks but i am not following -
if i log out of Linkedin and go to https://www.linkedin.com/in/jeffweiner08 , i cannot see his groups; i only see them when i log in.
Either way when i run the code from my machine, it doesn't utilize the cookies from the browser to know whether I am logged in or not to LI (and i tried either way);
$ linkedin-scraper http://www.linkedin.com/in/jeffweiner08
i always get:
...
"picture": "https://media.licdn.com/mpr/mpr/shrink_200_200/p/6/005/07c/31e/153cdd3.jpg",
"linkedin_url": "http://www.linkedin.com/in/jeffweiner08",
"education": [
],
"groups": [
],
"websites": [
"http://www.linkedin.com/"
],
"languages": [
], ..
thanks,
Matt

This code works only for public profiles, So it won't work if you can't see the details in public view. It collects only  public profile details


Cannot get final name for export 'PromptTemplate' of ./node_modules/langchain/dist/prompts/index.js

When building a project in Next.js version 13.4, getting this error:
Cannot get final name for export 'PromptTemplate' of ./node_modules/langchain/dist/prompts/index.js
It's breaking the build, and not able to deploy it to Vercel.

It's not solving it, also tried this one:
`const nextConfig = {
webpack: (config, { isServer }) => {
if (!isServer) {
config.resolve.fullySpecified = false;
}
config.module.rules.push({
  test: /node_modules\/langchain/,
  resolve: {
    fullySpecified: false,
  },
});

return config;

},
};`

Bug is coming because of this part:
experimental: {
    serverActions: true,
},

When serverActions is removed, it's compiling fine.

It happened to me on NextJS 14.1 where the server actions should be stable... It was caused by importing a type for something totally unrelated to langchain.

It happened to me on NextJS 14.1 where the server actions should be stable... It was caused by importing a type for something totally unrelated to langchain. I gave up on trying to figure what it was, it's dark magic.

Haven't tested it yet, I thought new Next.js 14.0 is going to fix it. Better luck next time! 😃

I also have this issue. Does anybody have a fix already?

Also having this issue

I have this issue but for a different lib. Upvoting here so it gains traction

Not the solution you want but...

This works,

Thanks @KarloAldrete

Not the solution you want but...

Just tried it out! Working!

My eyes hurt, but it really works.

Hi! Like @hnykda said it's still happening on #5235
That's the same bug happening on latest Next.js version. We can leave one issue on GitHub until it's fixed.

expercing same issue when trying to deploy next js langachin app .Cannot get final name for export 'BaseMemory' of<EMAIL_ADDRESS>im trying the solution above but i experience same issue


Skip searching by ID

Hello,
When creating toSearchableArray for a specific model, if there isn't ID included in final array, I can't import the data using php artisan scout:import "App\Book". But if I include ID, then it becomes available to search by ID also, which is behaviour I would like to escape. What is the right way to disable searching by ID?
Example code:
    public function toSearchableArray()
    {
        $array = $this->toArray();

        foreach(array_keys($array) as $key) {
            //if I unset ID also, I won't be able to import table data
            if(in_array($key, ['id', 'title', 'name'])) continue;
            unset($array[$key]);
        }

        return $array;
    }

Hey @milosevicn,
the ->toSearchableArray() defines the stored data within MeiliSearch for a specific document (object). Omitting the id will result in non-discoverable elements within the search because by default the id is the primary key used for identifing a document.
To prevent MeiliSearch from searching through  all fields, consider extending the functionallity of this package and setting the searchAttributes within MeiliSearch. You can find a tutorial to do this here.

@mmachatschek Sorry to disturb you, but I didn't want to open new issue for this. It might be related to my question up there.
When I'm adding documents using php artisan scout:import command, everything works as it's supposed to, but when I am doing the same using /indexes/:index_uid/documents route (->addDocuments()) it does not respect toSearchableArray() rules. So if I try adding the whole model, all columns are going to be added.
I would probably be able overcoming this by selecting specific columns while doing query, but is there a way to make the function addDocuments() itself be aware of toSearchableArray()?

Hi @milosevicn,
this package basically is a wrapper for the MeiliSearch PHP library and extends Laravel Scout.
When adding documents "manually", all the magic that Scout provides e.g. adding new objects to the index or updating existing ones with specific fields etc. gets lost because you skip that steps.
Is there a specific intention you have by adding documents manually?

Thanks for replying @mmachatschek
I have multitenancy app -  two separate apps (landlord and tenant). Because of this, I am not able to use predefined Laravel Scout functionality to update docs automatically once something is added to database. That's why I'm using a webhook to inform my tenant app when something happened in database actually on landlord (on created/updated/deleted). I want to add those docs once I catch a webhook on tenant

@milosevicn I think you could just do a $model->touch(). This updates the updated_at column of the model and the updated event will be triggered on the tenant app. The Scout event listener will then trigger a update on the index. Would this work out for you?


Removed the second condition for unix sockets (redis)

Removed the second condition of connectivity for unix sockets in Redis::__construct() method.
It is unnecessary because we can use host and port parameters.

If you would approve it, I will remove the #4520 .

We still need different connect calls depending on the socket type ... you have to check if the first character of $config['host'] is a slash for that.
And 'socket_type' needs to be removed from the documentation as well.
Also, please don't open 2 pull requests and wait to see which one (if any) is accepted. Pick only one route ... I'm closing #4520.

you have to check if the first character of $config['host'] is a slash for that.

I think it's a bad idea. Why do we need to check it?

And 'socket_type' needs to be removed from the documentation as well.

Ok, removed.

Also, please don't open 2 pull requests and wait to see which one (if any) is accepted. Pick only one route

Ok.

What do you mean why? You shouldn't pass port and timeout values for a unix socket.

What do you mean why? You shouldn't pass port and timeout values for a unix socket.

Ok. We have only one restriction for using it: the port must to be zero. See my commit.

Why do you insist on using the timeout value? The phpredis manual shows no such usage for unix sockets.
Also, you shouldn't be using curly braces - i.e. $config['host'][0] instead of $config['host']{0}.

Why do you insist on using the timeout value? The phpredis manual shows no such usage for unix sockets.

Yes, but the manual doesn't deny the timeout value. There is only one restriction for the timeout value: it must be greater than (or equal) to zero.

From https://github.com/phpredis/phpredis

Also more than one persistent connection can be made identified by either host + port + timeout or host + persistent_id or unix socket + timeout.

Maybe it would be better if we will save the timeout value for unix socket?

I don't get it ... you're still insisting on (and giving arguments in favor of) using the timeout for UNIX sockets, yet you've set it to 0 in the latest commits. Do you stand by your suggestions or not?
Also, I don't care about the timeout itself ... I want to avoid the unnecessary variable assignments. That is, you could just do this:
$this->_redis->connect($config['host'], ($config['host'][0] === '/' ? 0 : $config['port']), $config['timeout'])

It's less code and we're both happy.

It's less code and we're both happy.
Ok.


Get messages before the specified date.

Add one of the filter or narrow for the date which give the message of the before or after supplied date or timestamp.

Hi @RohitSopankar  Can you guide me more about the enhancement. I am new to the Zulip Organisation. Can you tell me where do you want this?Also do we have any UI for this?

Thanks for the suggestion! I think #23995 should address the use case here, but let me know if it wouldn't work for what you'd like to do.

Sorry for the late reply.
This implementation requires an api.
You don't need Ui now but you can keep it if you need it in future.
My suggestion for this implementation is:
Whenever we call the api using timestamp then we should get all the
messages before that timestamp.
On Tue, 21 May, 2024, 11:41 Mukul1235, @.***> wrote:

Hi @RohitSopankar https://github.com/RohitSopankar Can you guide me
more about the enhancement. I am new to the Zulip Organisation. Can you
tell me where do you want this?Also do we have any UI for this?
—
Reply to this email directly, view it on GitHub
https://github.com/zulip/zulip/issues/30006#issuecomment-2121823765, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ASD3BK2DOUBSL4PGMWJVT3DZDLQSTAVCNFSM6AAAAABHMIGWH2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMRRHAZDGNZWGU
.
You are receiving this because you were mentioned.Message ID:
@.***>

Yes, that's included in the work for #23995 / #25014; that project just continues with exposing it in the UI.


install the flash-attention

hello, i run the pip install flash-attn, but it fails. the gpu i used is tesla m40, can the flash attn be installed on m40?

No, m40 is of Maxwell generation (sm_52). FlashAttention right now supports Ampere (sm_80) and after.

@tridao
Can you explain why it does not support maxwell? Are there any technical limitations?

@tridao
Can you explain why it does not support maxwell? Are there any technical limitations?

Because it takes work. Maxwell does not have tensor cores. Someone would need to implement a version that doesn't use tensor cores.


typeof cannot be used as a type discriminant

TypeScript Version:  3.8.0-dev.20200107

Search Terms: typeof union type discriminant
Code
type UnsavedObject = { name?: string };

type SavedObject = UnsavedObject & { _id: string };

const getId = (x: UnsavedObject | SavedObject): string | null => {
  if (typeof x._id === 'string') {
    return x._id;
  } else {
    return null;
  }
}

Expected behavior:
Return the _id property if it's a string
Actual behavior:
Property '_id' does not exist on type 'UnsavedObject | SavedObject'.
  Property '_id' does not exist on type 'UnsavedObject'.(2339)

Playground Link: https://www.typescriptlang.org/play/?ts=3.8.0-dev.20200107#code/C4TwDgpgBAqgdgZwIYDcIBMDyAjAVhAY2CgF4oBvKOJAWwgH4AuKBYAJwEs4BzKAXwDcAKCGhIUAMqoMOfEVKxE0rHkLEAZBSgB9DumatOPfsKEEA9omLcIwAJLoFACgAezeMjQq5xAD6TlWTUASgN2Ll5-OABXABtY0gA+CiEoKA4AMygnMQhzLJcAOl1HEjKoAHJDCIrglLS0tltotjgoIpLhNL4RNMzsipKK9LaXKHVNXPz24r1Scqrwnlr6hqbgFtHZ9C7+Xqh1zao42OEeoA
Related Issues: https://github.com/Microsoft/TypeScript/issues/28138
However that issue mentions testing for typeof foo.prop != 'undefined' which is less specific.
The workaround is to test for the property to be in the object first, but that's completely redundant:
  if ('_id' in x && typeof x._id === 'string') {
    return x._id;
  }

Wouldn't it be possible to automatically Pick the subset of keys that typeof tests for and work with that partial type?
If there was a way to inline type guards (like flow %checks) I wouldn't mind writing a predicate based on typeof that does it, but without inlining, we're basically back to adding extra runtime fluff just to satisfy the type checker.


Custom sound is gibberish

ca.mp3 in CustomSounds.zip is 12 second track of gibberish. I'm guessing it's not supposed to be like that.

Thank you letting me know, I will look into it and fix it.

Updated. Look for v.1.0.3.


Create README for Static GUE Encapsulation

Add test details for Static GUE Encapsulation.
Added a new topology for running the tests.

Pull Request Functional Test Report for #3482 / 28bc7a450eaf1056f1211213602c3edcd045d89b
No tests identified for validation.
Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>4
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 55.268%

Totals

Change from base Build<PHONE_NUMBER>2:
0.0%

Covered Lines:
1983

Relevant Lines:
3588

💛  - Coveralls


Update Excel.WorksheetFunction.Match.md case 0

Case insensitive search caveat

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/Excel.WorksheetFunction.Match.md
:white_check_mark:Succeeded
View

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

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

@HansSchulze Thanks for your contribution. However, you need to sign the CLA in order for me to merge it. Let me know if you have any questions.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

api/Excel.WorksheetFunction.Match.md
:white_check_mark:Succeeded
View

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


Method to cancel deployments

Does this occur consistently?
Repro steps:

From Visual Studio Code, using the latest Azure extension as of June 2020
Deploy an app to Azure App Services.

The deployment takes forever and there is no option to stop it.
Action: appService.Deploy
Error type: 409
Error Message: There is a deployment currently in progress. Please try again when it completes.
Version: 0.17.0
OS: win32
OS Release: 10.0.18363
Product: Visual Studio Code
Product Version: 1.45.1
Language: en

Call Stack
extension.bundle.js:309:399343extension.bundle.js:309:399343
retryCallback extension.bundle.js:225:116429
retryCallback extension.bundle.js:157:31051
extension.bundle.js:157:32664extension.bundle.js:157:32664
handleRedirect extension.bundle.js:171:7747
extension.bundle.js:157:29836extension.bundle.js:157:29836
Request._callback extension.bundle.js:1:584775
Request.r._callback.r.callback.r.callback extension.bundle.js:201:4468
Request.emit events.js:203:13
Request.<anonymous> extension.bundle.js:201:17577
Request.emit events.js:208:15
IncomingMessage.<anonymous> extension.bundle.js:201:16367
Object.onceWrapper events.js:291:20
IncomingMessage.emit events.js:208:15
endReadableNT _stream_readable.js:1168:12
processTicksAndRejections task_queues.js:77:11

According to the API, there is a cancel deployment endpoint: https://docs.microsoft.com/en-us/rest/api/resources/deployments/cancel
Maybe we can do something to let users cancel an on-going deployment (especially if we see this error message)

Ok interesting. Ideally, an option inside VCS would be great, in a context
menu.
I have a more relevant and severe error. Can you help with an error
deploying angular app in azure ?
On Fri, 12 Jun 2020 at 04:48, Nathan<EMAIL_ADDRESS>wrote:

According to the API, there is a cancel deployment endpoint:
https://docs.microsoft.com/en-us/rest/api/resources/deployments/cancel
Maybe we can do something to let users cancel an on-going deployment
(especially if we see this error message)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode-azureappservice/issues/1589#issuecomment-642865321,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH3JQPZM4GL34U6D54DB5KTRWERGJANCNFSM4N2AJR2Q
.

--
Rob Voto
Project Manager, Scrum Master, Business Analyst
0491 982 547

Deploying an Angular app to Azure Web Apps is a little bit more complicated than hitting the deploy button, unfortunately.  Specifically you  have to set up virtual routes.
You can follow this guide here:  https://levelup.gitconnected.com/deploy-angular-application-on-azure-web-service-960e441bb13d
But I recommend checking out Azure Static Web Apps Extension  This was built to deploy SPAs, so it should be a lot easier to configure and get running!

@nturinski I think the API you linked to is for deploying an ARM template, not for deploying to a web app

@EricJizbaMSFT Nuts, you're right 🐿

Guys,
I do appreciate your time.  I already set up an Angular hello world app
without setting up virtual directories. I am using a Node Js configuration,
with code (no docker) selected on a linux system.
I am finding the management of this Angular app from VCS very complicated.
the deployments may be immediate or take forever (hang)
Most of the time I end up DELETING the whole configuration in Azure and
starting again to make it work.
It often happens that I deploy and then nothing changes (no code
replacement) so again I have to delete and rebuild.
I need to try the proposed solution yet :
https://management.azure.com/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Resources/deployments/{deploymentName}/cancel
What is the deployment name? The name of the project I set up in Azure?
Since when I deploy I don't set any name from VSC.
I am trying to give @azure/ng-deploy - npm but this also fails, issue #55
in your bug list. Solution on #55 doesn't work for me so I am basically
stuck with this Azure trial.
Summing up:
Main goal is to manage an Angular (on NodeJs) app via VCS deployed in Azure
App Services.
On Sat, 13 Jun 2020 at 09:06, Nathan<EMAIL_ADDRESS>wrote:

@EricJizbaMSFT https://github.com/EricJizbaMSFT Nuts, you're right 🐿
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode-azureappservice/issues/1589#issuecomment-643516128,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AH3JQP7WAUCVUU77IKZ65JLRWKYJDANCNFSM4N2AJR2Q
.

--
Rob Voto
Project Manager, Scrum Master, Business Analyst
0491 982 547

@hernanvoto Unfortunately I think the cancel API is for ARM templates, and not web app deployments.
Yeah, unfortunately Azure Web Apps wasn't really built to handle Angular apps that well. I recommend checking out Azure Static Web Apps Extension  This was built to deploy SPAs, so it should be a lot easier to configure.  It uses GitHub, so any change you commit to your repo will go live to your app as well.

any news on this issue?

Looking at the Kudu documentation, I don't see an API call that can cancel the zip deployment yet:
https://github.com/projectkudu/kudu/wiki/REST-API#zip.  I spent some time looking at the documentation and didn't see anything.  I posted an issue on their repo so we can continue to track that here: https://github.com/projectkudu/kudu/issues/3320

Was this ever solved? I have a deployment that is permanently hung and can't even cancel through the portal. Is the only solution really to DELETE the app service and start from scratch?

Hello, I'm a complete newb at Azure and trying to deploy a node app coming from Heroku.
I'm just +1 this issue and the aforementioned 3320 issue to get the API route.


New persistence strategy for better cross-version compatibility

Note - This issue originally called for the use of Json, which was determined be unfeasible due to the lack of a good full-featured Json serializer that is compatible with Unity.
Describe your idea
In TMPE's current persistence strategy, the introduction of a new type into the persistent data will break backward compatibility. Although old versions are not supported, players reverting from alpha to stable should not lose savegame data needlessly.
The same issue also affects forward compatibility in ways that restrict future development choices. Ideally, the save data would not be bound to specific types. A move away from strongly typed serialization would give everyone more flexibility moving forward.
Requirements

This is an opt-in change. All existing serialization will remain untouched until there is a reason to do it the new way, as determined feature by feature.
A manager-based persistence mechanism in which SerializableDataExtension enumerates a collection of managers and calls LoadData() and SaveData() methods basically like the ones we have today.
SerializableDataExtension will save the data from each manager separately, to isolate them and minimize the risks associated with changes to persistent data.
A manager will have a means of identifying other managers upon which its data depends. This will determine the enumeration order during load and save.
Linq to XML will be used for persistence.

TrafficLightSimulationManager will be the first converted to the new persistence strategy, since displaced lane support was the breaking change that prompted this issue. Its conversion to the new persistence strategy will be delivered separately from and prior to displaced lane support.
Tasks

[x] Persistence framework
[x] Add a DOM to the serialized data and make a mechanism for opt-in transition away from the old serialization strategy (SerializableDataExtension)
[x] Update timed traffic lights to be saved into the DOM (half-baked persistable model)
[x] Update junction restrictions to be saved into the DOM (fully persistable model)
[x] Compress XML data, with fallback to uncompressed if it fails (especially on some Linux distros)
[x] Test versioning in a relevant feature branch such as https://github.com/Elesbaan70/TMPE/tree/lane-grouping
[x] Final code cleanup
[ ] Wiki articles for future development
[ ] Mark #1559 ready for review

is json better than xml?

binary serialization is possible in theory but is clunky in practice specially with this old version of mono.

is json better than xml?

Json's simplicity tends to mean less setup and tweaking to get the results you need, which I think makes it better for small applications like TMPE. For large and complex data models I tend to lean toward XML, but in smaller applications like this, XML done right could end up being one of the most complex parts of the code.
I also prefer XML for files intended to be manually edited. Json can be manually edited, but in my opinion it is a slightly less friendly format for that.
(If you're wondering, I think XML is a better fit for AN, both because your long-term plans involve much more complex data, and because it's intended to be manually editable.)

binary serialization is possible in theory but is clunky in practice specially with this old version of mono.

There's actually a binary version of Json, unsurprisingly called Bson, and the version of mono is a non-issue as far as that goes. But text serialization is easier to troubleshoot, and I don't think we're talking about enough data for file size to be a concern.

is json better than xml?

Also, System.Xml.Serialization has a lot of weird limitations, like you can't use it to serialize dictionaries. So we'd have to either live with the limitations, or else find a third-part XML serializer. Newtonsoft.Json is technically third-party, but it's a very pervasive standard, especially on older .NET/Mono versions.

Json sounds great.
We already use XML in TMPE to store global config. i hope using several different standards does not cause confusion.

in AN ppl manually modify pops so I think XML is good

XML allows saving more complex data structures which will be way more readable for the user if he wants to edit something.
The main problem with the current implementation.
I'll remind that we are talking about serialization of all TM:PE data in the savegame not just simple configs. The problem now is we store everything into one single binary which cannot be deserialized if you don't have fully compatible classes. Just like @Elesbaan70 mentioned, literally any change in the data model makes it unloadable when you try to use previous version of the mod.
Example: when you add boolean field to one of serialized classes (you don't need to even use it anywhere) the new data after serialization will be 100% incompatible with previous version of the mod because of how binary serialization work - chunk of bytes, requires a class which work as a form of template describing how data should be read.
Having a JSON or even XML will make it at least editable -> you can dump the binary data into  (JSON/XML) string and modify it at worst case or prepare small migration function which could automatically fix/transform things in case we make a mistake somewhere.
With binary you can't even see what's inside. Also one bonus of JSON/XML or any string based serialization -> you can easily write data migration code and most importantly unit/integration tests for that (some time ago I tried loading TMPE binary data and deserialize in unit test - impossible).
We are limited with size of binary array which can be saved by SerializableDataExtension (~16MB), so splitting data by managers will solve that problem.
Anyways I asked @Elesbaan70 about other ways for serialization since I also want to introduce changes to TMPE savegame data.
I need to store "airplane size restrictions" somehow, so just an addition to what we have without changing anything else. When I push that change to my draft PR it will break compatibility because non of previous version will be able to load data once saved with new version. Since it would be additional thing I don't see why it couldn't be completely skipped when loading while running previous version of the mod (data itself has no use if there is no code which could interpret it and do something later).
I hope migration out of binary serialization will solve that problem at least partially. Obviously the current (de)serialization code needs to stay where it is to allow loading data from older savegames.

We already use XML in TMPE to store global config.

Completely different because it's a standalone file and theoretically editable. Although in practice it's not a good implementation for manual editing--you can't even tell which switches are which, except by counting from the top.
XML should be considered for any future standalone TMPE files.

the new data after serialization will be 100% incompatible with previous version of the mod because of how binary serialization work - chunk of bytes, requires a class which work as a form of template describing how data should be read.

It's worth noting, in case it's relevant to the choices we're making, that binary serialization doesn't have to be this way. Bson doesn't behave this way. It's a question of how the binary serialization is accomplished.
System.Runtime.Serialization's basic serialization is strongly typed and wants to deserialize and figure out what to do with every element, and so any change breaks backward compatibility. This can probably be overcome with custom serialization, but there's no good reason to make it so complicated when alternatives are available.

@aubergine10 The "Settings" label is incorrect for this. It should be labeled "serialization" and "lifecycle". I would fix it, but I don't have any permissions here. :-)

It's worth noting, in case it's relevant to the choices we're making, that binary serialization doesn't have to be this way. Bson doesn't behave this way. It's a question of how the binary serialization is accomplished.

Yes I know, but I meant BInaryFormatter we currently use for (de)serialization. I think it won't make much of a difference if we convert JSON string as binary array or do similar with Bson. Whatever we select it need to end up as binary array.

you can't even tell which switches are which, except by counting from the top.

tell me about it! I do that all the time! I was thinking about overriding the Serializer but I think its easier to just add something in the maintenance tab.

I think it won't make much of a difference if we convert JSON string as binary array or do similar with Bson. Whatever we select it need to end up as binary array.

As I'm currently implementing it (a bit different from the demonstration code I showed you before), manager data is saved in a Dictionary<string, string> where the key is the full name of the saved data type (not of the manager type), and the value is the Json-serialized data. (The key is not strictly type-bound, it's only a naming convention.) I chose text serialization for easier troubleshooting.
The dictionary itself is also serialized as Json, which is converted to a byte array using StreamWriter. It could be serialized as Bson instead, but there wouldn't be much savings since the data is text anyway, and staying with Json saves us from having to bring in a second external dependency for the Bson library.

After all this discussion, it turns out that we will have to go with XML anyway. The Unity port of Newtonsoft.Json doesn't really work, and it hasn't been maintained in several years. *sigh*

Lets use a port of XML that is less problematic. I suspect this old version of mono does not have very good XML. I see some other mods have provided their own xml dll.

Linq to XML is a DOM, not a serializer. I haven't look at it in a while, so I'll take a fresh look, but working with a DOM basically means you're assembling and interpreting the XML elements manually, so it ends up being a lot of work.
Maybe I'm just being naïve, but I'm not very worried about Mono's System.Xml.Serialization. It's just that it's a pain to work with, but still probably better than doing it all ourselves.

It's just that it's a pain to work with

If I recall properly lists are a pain to work with.

but still probably better than doing it all ourselves.

doing it ourselves? why not to just use 3rd party library?

If I recall properly lists are a pain to work with.

I guess I don't have context for that, because I'm not sure what you're referring to.

doing it ourselves? why not to just use 3rd party library?

I meant "doing it ourselves" in the sense of processing all the elements manually, like MacSergey is apparently doing since he uses Linq to XML.
If you know of third-party serialization that will work under Unity and has a solid track record and active development, I'm all for it. But the Unity port of Newtonsoft.Json being nonfunctional and abandoned is an example of where this can eventually lead if we're not careful.

I don't know I have to do some tests. i think I had to convert list to array for it to work.

I was struggling with xml here: https://github.com/Quboid/CS-MoveIt/blob/da6d67d770ff013162f931f01b3e88949ee7b3cc/MoveIt/Moveable/Instance.cs#L120
I don't know if there was an issue with dictionary or list or both but I had to use array.

Yes, that's one of the annoying limitations I mentioned in System.Xml.Serialization is that dictionaries are not supported. Another is that it's hard to make enums backward-compatible.
After sleeping on it, I'm starting to warm up to the idea of using Linq to XML like MacSergey appears to be doing (I'm assuming this based on the presence of System.Xml.Linq.dll.) I'm going to try going down that path for a little bit, and see how it plays out. (Since TMPE already converts to/from separate objects for the serializable model, and I was continuing that practice, I'm not sure that processing the elements directly is really that much more work.)

If anyone wants to follow the progress in code, it is here: https://github.com/Elesbaan70/TMPE/tree/xml-persistence

@aubergine10 please assign to me

As I've mentioned before (maybe elsewhere, since I don't see it here), the ideal persistable architecture involves having a set of semi-stable data objects that are maintained by the application, which can be serialized, then later deserialized and submitted to the application. These data objects then act as a kind of persistence API, integral to the implementation yet having a discreet definition that gives them some independence from the program logic.
Currently, TMPE builds an entirely separate object model for persistence, using a combination of public and private APIs to convert to and from this object model. This might be a good approach if the persistent model were independently defined, but as things stand now, it puts too much work on the persistence logic.
There's no clear path out of this, since moving to distinctly defined data objects at the implementation level would be a huge amount of work. But for now, I'm attacking this with a hybrid approach. Here's how it works:
I define a "model" of sorts with interfaces, which are in turn implemented internally.
See https://github.com/Elesbaan70/TMPE/tree/xml-persistence/TLM/TLM/TrafficLight/Model
This model accomplishes two things:

It gives the persistence code a clearly defined reference point for understanding what data it needs to save and how it should name things.
It gives the program logic a way to clearly and consistently define persistable data.

What I will not attempt to do at this time is to make this object model work both ways. Loading will work as it always has, except that the new object model interfaces will be used as a reference point for knowing what the saved data looks like.

I am removing the compression task since this apparently causes issues on some Linux distros. But we really should come back to it later, because the size of the DOM will balloon on bigger cities. We'll need to pay attention to file size when testing this on larger cities, to make sure the hit is acceptable.
And I am adding a task to test the versioning in the displaced lanes project prior to release. We wouldn't want to deploy this and then find out that it doesn't work as advertised!

We will certainly get issues because even with the existing system some users have so much traffic config that it's too big. XML will vastly exacerbate that because now we'll be using, I dunno, 30 bytes where previously we'd  use 1? We need the compression.
If it's a problem for linux, then we should disable compression on Linux only rather than forcing the majority of users to live without it for no reason.

A possible (ugly) solution: Attempt to save with compression, and if there is an error, fall back to no compression before finally giving up.

Yup, that would be OK imo, so long as it doesn't make code utterly heinous.
What's the issue with zipping stuff on linux btw? Is it just some distros don't include required libs or have non-standard libs?

I'm not sure. @krzychu124 could probably provide more details. He referenced MacSergey/NodeMarkup#96, which I skimmed but didn't study closely enough to really understand what was going wrong.

This comment has workaround: https://github.com/MacSergey/NodeMarkup/issues/96#issuecomment-670970107

Yup, but do we want to require a manual install of Mono? I think Linux users would generally be more comfortable with this kind of requirement than on other platforms, but it still seems less than ideal.

whats the point of using xml if we are going to compress it? its no longer human readable.

The primary purposes of this project are a persistence strategy less prone to breaking when enhanced, and smoother versioning when a breaking change is necessary. To the extent that there is human readability, it is an added bonus.
It is human-readable in logging
The compression can be disabled for debugging
Human readability in the final savegame is only theoretical anyway, since it's a binary format. I mean, you can see the XML in there, but it gets weird reading it that way.
XML and other text-based formats are easier to develop and maintain because they represent data as a hierarchy of key-value pairs. It's more than just human readability.

@Elesbaan70 we don't need to compress the global config though.

I haven't even touched the global config yet.

I mean, we're talking about global config, so it's not part of this anyway, right?

yeah

@Elesbaan70 we don't need to compress the global config though.

I think you didn't notice why compression might be required. The reason is simple. We still save data as byte[] in the savegame and there is a limit (~16MB IIRC) for a value.
Global config is stored on disk and has known size, there is no dynamic data which can vary between versions unlike TM:PE data where almost all data is stored as collections (mostly limited to things we changed skipping default values to save memory)

JunctionRestrictionsManager has been updated to use the new persistence framework. @krzychu124, I think you will find this to be a much simpler and more straightforward case than traffic lights! 😅
https://github.com/Elesbaan70/TMPE/blob/xml-persistence/TLM/TLM/Manager/Impl/JunctionRestrictionsManager.Persistence.cs
It uses a super-lightweight serializer I built on top of Linq to XML, that lets you serialize stable types but doesn't assume you've built a serializable model of your entire dataset. It's not intended to do that kind of heavy lifting, so it's stupid-simple and fits well in how Linq to XML does things.

Keeping the compression is definitely the right move. Looks like for 2 timed traffic lights and junction restrictions on 4 nodes, compression saves us about 8k. That's enough to make one's head spin.

I think we will/could follow the idea of splitting "managers" into separate containers

This change is now complete.

@Elesbaan70 what does that mean? did you move lane arrow flags inside lane arrow manager?

to detect if you are in linux you can check UnityEngine.Application.platform == LinuxPlayer

@Elesbaan70 what does that mean? did you move lane arrow flags inside lane arrow manager?

Huh? This issue is about how we store things in a savegame.

to detect if you are in linux you can check UnityEngine.Application.platform == LinuxPlayer

Cool, now how do I know if mono is installed? Or better yet, how do I detect the condition that causes the game crash?
I will not knowingly merge code that causes someone's game to crash. A workaround that can be implemented in code is absolutely necessary.

@Elesbaan70

I think we will/could follow the idea of splitting "managers" into separate containers
This change is now complete.

what change is complete? what does it mean to separate containers?

Cool, now how do I know if mono is installed? Or better yet, how do I detect the condition that causes the game crash?

you can look at original harmonys code. it has checks for mono version and stuff. which version of mono crashes? which version of mono works? are we talking bout dnSpy mono?

@Elesbaan70

I think we will/could follow the idea of splitting "managers" into separate containers
This change is now complete.

what change is complete? what does it mean to separate containers?

The change history is on the draft PR associated with this case.
The new code isolates the logic for each manager in such a way that failing to load one manager's data does not prevent the others from loading. (That's one of the problems with the current code.) From my point of view, this was just a logic problem, but @krzychu124 understood it to mean that I was actually putting each manager's data in a separate container under SerializableData. But that was not initially the case. They were just separate elements in a single XML document.
But then @krzychu124 pointed out that it may be useful to use separate containers, since the container has a size limit. So now I've changed it to work the way he expected.

Cool, now how do I know if mono is installed? Or better yet, how do I detect the condition that causes the game crash?

you can look at original harmonys code. it has checks for mono version and stuff. which version of mono crashes? which version of mono works? are we talking bout dnSpy mono?

On some Linux distros, the Mono bundled with the game does a hard crash if you try to use compression. Installing Mono independently of the game resolves this.

Exactly, more info about crashing mono and solution you can find here: https://github.com/MacSergey/NodeMarkup/issues/96 (already mentioned in this thread)
Honestly I have no idea how to detect if it's installed or not. It's not C# library but external one (let's name it: "native").
Since we have limited size to be stored, @Elesbaan70 have you measure worst case scenario, how much data we really need to store - assuming we use container per manager? We usually use arrays of known size so we could calculate if generated xml will fit without compression or not

we can ask in the harmony discord about this. they probably know something.

Since we have limited size to be stored, @Elesbaan70 have you measure worst case scenario, how much data we really need to store - assuming we use container per manager?

Two-step light on a 4-way node without complex lane groupings: 2309 bytes, or about 7,000 total stoplights of this configuration.
The more I think about this, the more I realize it's all or nothing. Otherwise we end up with savegames that some people can't read.
Here's a possible ugly way of addressing the issue:

Immediately before doing a compression operation, write something into the global options that says we're doing compression stuff.
Clear it in a finally block.
Check this flag at startup, and if it is set, explain to the user what happened and provide a link to the installer they need.

This code is basically ready to go. But the Linux compression issue needs to be worked out.

I am reluctant to rely on an external library for a core feature. Also, a third-party compression library will be managed code, and so it will be slower, and compression is the kind of thing where that matters.
So, what I'm looking at for the compression issue is:

Run some tests to verify zlib's compatibility with .net's built-in compression.
Add an option that let's you pick native (.net) or managed (zlib) compression, with managed being the default on Linux, and native the default on all other platforms.
Test that both work and are fully compatible with each other.
Have someone verify that zilb works on Linux.

its not like we have a better option.

@krzychu124 finally got around to mentioning that there's a compression library distributed with CS. Wish I'd know that earlier! LOL

Here is the wiki page. I'll improve this based on feedback.
Loading and Saving Data


How to change the frame_id of the topic “/imu/nav_sat_fix” without changing the frame_id of other topic?

Hi.
How to change the frame_id of the topic “/imu/nav_sat_fix” without changing the frame_id of other topic?
Thank you very much!!!!

Hello in order to change the frame_id you have to use ROS package tf that contains different topics so it's applies a transformation on a hole node that will publish  on the tf topic. So in conclusion, you can't change a frame_id in only one topic. However, you can create a subscriber node and subscribe to one topic only and then change the frame_id for just that topic. This web page can maybe help you to understand the process http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29#roscpp_tutorials.2FTutorials.2FWritingPublisherSubscriber.Writing_the_Subscriber_Node

Ok,
Thank you，I think i know what should i do.
Best regards.


Creating routing-integrated middleware missing attribute consumption example

In the section Creating routing-integrated middleware there is no example of checking for the attribute metadata. The doc shows how to create a proper attribute, but I'm left wondering how do I check the attribute value in my custom middleware.
Also there is a typo in the last C# example in this doc: RequrireAuthorization();

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

ID: 32374077-e02e-d6a6-1cea-05e58447b7cd
Version Independent ID: 86aeab13-1c25-9fc1-4e56-0390cb40c242
Content: Routing in ASP.NET Core
Content Source: aspnetcore/fundamentals/routing.md
Product: aspnet-core
Technology: aspnetcore-fundamentals
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

I don't see a typo in RequrireAuthorization in the two examples.
Thanks for contacting us.
We don’t have the resources to invest in this area, so we are closing the issue. Should your request generate enough  👍 responses, we’ll reconsider. We'll also reconsider this issue in the next doc update.

Don't see typo "Requrire" 🤷

@serpent5  added label GII


[web] On hot restart _canvasKitVariant isn't initialized

Error being thrown:
The following LateError was thrown during performLayout():
LateInitializationError: Field '_canvasKitVariant' has not been initialized.

This is because we only set that variable when we download CanvasKit. On hot restart, we don't re-download CanvasKit so we never set the variable again, and it remains uninitialized.

So I haven't changed anything, on my old laptop it works fine I can hot restart.
Got a new laptop and on this one, it gets the same error. For me, it says that 'Icon'  is the problem.

It is only on the master channel that this error occurs. Switching to 'stable' fixes this issue for anyone that might run into this problem.

Switch Flutter Channel to stable by running
Flutter channel stable
Flutter upgrade
Fixed the '_canvasKitVariant' has not been initialized. issue

I am on beta channel, and I see this issue.


Cookies & parse_response issues with V1

V1 works the same using the v0 functionality, but when I try the new formatting for the get_flights, two issues:

the cookies=Cookies.new() line, the Cookies reference is not working
the parse_response function is breaking somehow, it's trynig to split a none value.

I'm testing it in an isolated environment with a simple main script, and installed it with pip only here is my test code
from fast_flights import FlightData, Passengers, create_filter, get_flights
Create a new filter
filter = create_filter(
flight_data=[
# Include more if it's not a one-way trip
FlightData(
date="2024-09-02",  # Date of departure
from_airport="RSW",
to_airport="DCA"
),
# ... include more for round trips and multi-city trips
],
trip="one-way",  # Trip (round-trip, one-way, multi-city)
seat="economy",  # Seat (economy, premium-economy, business or first)
passengers=Passengers(
adults=1,
children=0,
infants_in_seat=0,
infants_on_lap=0
),
)
Get flights with a filter
result = get_flights(
filter,
dangerously_allow_looping_last_item=True,
cookies=Cookies.new().to_dict(),
currency="USD",
language="en"
)
The price is currently... low/typical/high
print("The price is currently", result.current_price)
Display the first flight
print(result.flights[0])

Hey there,
Could you please clarify what "Cookies reference is not working" mean? As for the broken parse_response() function, could you please provide an error log pointing where the error occurred or what type of error was it?
P.S. I was in a rush so I wasn't aware of my code being that broken, thanks for pointing this out. I'll look into the code tomorrow (if possible). Thanks!
Best

Yes, I'll confess I'm a novice with Github, and by no means any expert coder.
For the cookies thing actually it looks like I just needed to add an import line:

Ope, tack that back, when I do that it gives this error:
C:\Users\jobel\PycharmProjects\pythonProject\venv\Scripts\python.exe "C:\Users\jobel\PycharmProjects\pythonProject\Flight Helper\main.py"
Traceback (most recent call last):
File "C:\Users\jobel\PycharmProjects\pythonProject\Flight Helper\main.py", line 2, in
from fast_flights.cookies_impl import Cookies
File "C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\cookies_impl.py", line 5, in
from .cookies_pb2 import Cookies as SOCS, Information, Datetime  # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ImportError: cannot import name 'Cookies' from 'fast_flights.cookies_pb2' (C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\cookies_pb2.py)
Process finished with exit code 1

But anyways this is the error code for running it without the cookies line, that is the issue with parsing the response which seems to be the bigger problem (I haven't encountered any need for the cookies thing yet anyway):
Traceback (most recent call last):
File "C:\Users\jobel\PycharmProjects\pythonProject\Flight Helper\main.py", line 28, in
result = get_flights(
^^^^^^^^^^^^
File "C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\core.py", line 119, in get_flights
results = parse_response(
^^^^^^^^^^^^^^^
File "C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\core.py", line 70, in parse_response
departure_time = dp_ar_node[0].text(strip=True)
~~~~~~~~~~^^^
IndexError: list index out of range
Process finished with exit code 1

Now you mentioned a log file? I'm assuming you mean adding code that saves out errors like this to a log / txt file so that I don't have to copy past efrom the output screen? That is a good idea I should do that.

Hi there,
I've updated fast-flights to v1.2.
Cookies couldn't be imported because of the missing import in __init__.py. As for the IndexError, I assume it's because the departure time is not present sometimes.
pip install -U fast-flights

Let me know if I made other silly mistakes!
Best,
AWeirdDev

Alright new, and even wierder, parse response error. Old ones seem to to be resolved
using same modified example code, updated to 1.2 and got the following error:
Traceback (most recent call last):
File "C:\Users\jobel\SynologyDrive\PycharmProjects\pythonProject\flights_package_test.py", line 28, in
result = get_flights(
^^^^^^^^^^^^
File "C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\core.py", line 127, in get_flights
results = parse_response(
^^^^^^^^^^^^^^^
File "C:\Users\jobel\PycharmProjects\pythonProject\venv\Lib\site-packages\fast_flights\core.py", line 103, in parse_response
"stops": 0 if stops == "Nonstop" else int(stops.split(" ", 1)[0]),
^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: ''
Process finished with exit code 1
But here's what's wierd I went in and added some print statements to the nonstop parse / code and got this for this same code / result:
1 stop
['1', 'stop']
1 stop
['1', 'stop']
1 stop
['1', 'stop']
2 stops
['2', 'stops']
2 stops
['2', 'stops']
1 stop
['1', 'stop']
2 stops
So I have no clue how it's parsing / splitting out an empty string? '' Freaking wierd.
Here is my code just to be sure:
from fast_flights import FlightData, Passengers, create_filter, get_flights, Cookies
Create a new filter
filter1 = create_filter(
flight_data=[
# Include more if it's not a one-way trip
FlightData(
date="2024-08-21",  # Date of departure
from_airport="IAD",
to_airport="JFK"
),
# ... include more for round trips and multi-city trips
],
trip="one-way",  # Trip (round-trip, one-way, multi-city)
seat="economy",  # Seat (economy, premium-economy, business or first)
passengers=Passengers(
adults=1,
children=0,
infants_in_seat=0,
infants_on_lap=0
),
)
Get flights with a filter
result = get_flights(
filter1,
dangerously_allow_looping_last_item=True,
cookies=Cookies.new().to_dict(),
currency="USD",
language="en"
)
The price is currently... low/typical/high
print("The price is currently", result.current_price)
Display the first flight
print(result.flights[1])

Tried a few different dates and airports

Hey! What's the latest release, still 1.2? Paused testing for awhile but I
can take a look at it this weekend. I believe it was resolved or I figured
out a fix for it. Thx!
On Thu, Oct 31, 2024 at 12:10 PM dosubot[bot] @.***>
wrote:

Hi, @JobeOneKenobi https://github.com/JobeOneKenobi. I'm helping the
flights team manage their backlog and am marking this issue as stale.
You've raised concerns about two main problems with the V1 functionality:
the Cookies.new() line not working and an IndexError occurring in the
parse_response function. AWeirdDev suggested updating to version 1.2,
which resolved some errors but introduced a new ValueError related to
parsing stops. I see that you're actively testing different scenarios and
providing detailed error logs to assist in troubleshooting.
Could you please let the flights team know if this issue is still relevant
to the latest version of the repository? If it is, a comment from you would
be appreciated. Otherwise, feel free to close the issue yourself, or it
will be automatically closed in 7 days. Thank you!
—
Reply to this email directly, view it on GitHub
https://github.com/AWeirdDev/flights/issues/3#issuecomment-2450266916,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BDGRANBSL3OV4DWIO7EVFGLZ6JI5XAVCNFSM6AAAAABK3NF4AKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJQGI3DMOJRGY
.
You are receiving this because you were mentioned.Message ID:
@.***>


Changed "fork me" link target.

This might have been intended, but the link on the fork-me banner was pointing to your personal github account, not the repository.
I changed it, it's pointing to the repo now.
The rest is automatic whitespace removal by the editor. I was too lazy to uncommit it :D

Done :)

Thanks @JustusAdam


[Bug]: Text file input - unable to read data with line breaks in them

Apache Hop version?
2.9.0
Java version?
openjdk version "21.0.2" 2024-01-16
Operating system
Linux
What happened?
(Possible known issue, see #2329)
The Text file input transform can't parse data correctly if there is a line break in them.
In Hop GUI the option to specify this feature is permanently disabled, whilst in Metadata Injection view there is a row labeled Is a break allowed in an enclosure? (Y/N) thats seems to be ignored by Hop.
A workaround would be to use the CSV file input transform, however it only works with plain text files (if they are inside a tar.gz archive you need to uncompress them, see this users ML topic), and also has some other issues (see #4021)
Issue Priority
Priority: 2
Issue Component
Component: Hop Gui, Component: Transforms

I hope this will also get implemented at some point soon.  There is a CSV input step that does have the ability not to get screwed up by line breaks in the cells.  I had to use that instead of text input and it worked.

Does not work for me, the CSV input step, does not support wildcard for files, nor get file from previous step and no output fields (last modification date). Well maybe I can use a metadata injection to mimic wildcard ;-)

The CSV File input transform accepts file names as input.


Image location

Hi,
where can I find the images? Your script is running and the images are created in Discord, but how can I get them from Python?
Thank you & Best regards
levmel

Got it now ;) Thank you m8! Very good work 👍

Please share how you addressed this with the community as well for the sake of completeness.