Standard default output should be a valid JSON array

I just spotted list-buckets has the same not-quite-newline-delimited JSON output format, which is a bad default. I should fix that too.

Originally posted by @simonw in https://github.com/simonw/s3-credentials/issues> /28#issuecomment-1014838721

The current documented display options are:

Add --nl to collapse these to single lines as valid newline-delimited JSON.
Add --array to output a valid JSON array of objects instead.

Defaulting to pretty-printed invalid newline-delimited JSON was a weird design choice that I made!
% s3-credentials list-buckets
{
    "Name": "aws-cloudtrail-logs-462092780466-f2c900d3",
    "CreationDate": "2021-03-25 22:19:54+00:00"
}
{
    "Name": "simonw-test-bucket-for-s3-credentials",
    "CreationDate": "2021-11-03 21:46:12+00:00"
}

Fixing this would require a major version bump if I had hit 1.0 already.

In that case I think the safest default would be to turn the above into a pretty-printed streaming JSON array:
% s3-credentials list-buckets
[
  {
    "Name": "aws-cloudtrail-logs-462092780466-f2c900d3",
    "CreationDate": "2021-03-25 22:19:54+00:00"
  },
  {
    "Name": "simonw-test-bucket-for-s3-credentials",
    "CreationDate": "2021-11-03 21:46:12+00:00"
  }
]

Getting this right will mean I can pipe into sqlite-utils insert easily to create a SQLite database, which would be fun.

Here's how the current list-buckets implementation works:
https://github.com/simonw/s3-credentials/blob/aa690245e39ba2139ce9c0267ed34e61100037d8/s3_credentials/cli.py#L556-L564
I need a new abstraction I can call that knows how to turn an iterator of rows into one of the desired formats.

Most interesting new implementation here will be the code that knows how to output something like this in a streaming fashion, without buffering it all in an array first:
[
  {
    "Name": "aws-cloudtrail-logs-462092780466-f2c900d3",
    "CreationDate": "2021-03-25 22:19:54+00:00"
  },
  {
    "Name": "aws-sam-cli-managed-default-samclisourcebucket-1ksajo4h62s07",
    "CreationDate": "2020-06-16 23:13:34+00:00"
  },
  {
    "Name": "blah-bucket-blah",
    "CreationDate": "2021-11-10 23:50:08+00:00"
  }
]

Trick will be to output [ at the start, then two-space indented (with textwrap) json.dumps(..., indent=2) rows with commas after each except the last one - and then a ] at the end.

Good code to imitate from sqlite-utils: https://github.com/simonw/sqlite-utils/blob/74586d3cb26fa3cc3412721985ecdc1864c2a31d/sqlite_utils/cli.py#L1589-L1623

Actually I probably want to use csv.DictWriter here:
writer = csv.DictWriter(sys.stdout, headers)
dict_writer.writeheader()
dict_writer.writerows(iterator_of_dictionaries)

This outputs 2-indented JSON in a streaming fashion:
def output_rows_json(iterator):
    # We have to iterate two-at-a-time so we can know if we
    # should output a trailing comma or if we have reached
    # the last row.
    current_iter, next_iter = itertools.tee(iterator, 2)
    next(next_iter, None)
    first = True
    for row, next_row in itertools.zip_longest(current_iter, next_iter):
        is_last = next_row is None
        data = row
        line = "{firstchar}{serialized}{maybecomma}{lastchar}".format(
            firstchar="[\n" if first else "",
            serialized=textwrap.indent(json.dumps(data, indent=2, default=repr), '  '),
            maybecomma="," if not is_last else "",
            lastchar="\n]" if is_last else "",
        )
        yield line
        first = False
    if first:
        # We didn't output any rows, so yield the empty list
        yield "[]"

Demo:
print("\n".join(output_rows_json([{"id": 1, "name": "Simon"}, {"id": 2, "name": "Cleo"}, {"id": 3, "name": "Azi"}])))

[
  {
    "id": 1,
    "name": "Simon"
  },
  {
    "id": 2,
    "name": "Cleo"
  },
  {
    "id": 3,
    "name": "Azi"
  }
]

Turned that into a TIL: https://til.simonwillison.net/python/output-json-array-streaming

Ran into a problem applying this to list-users:
% s3-credentials list-users --csv
Path,UserName,UserId,Arn,CreateDate
... many rows follow ...
Traceback (most recent call last):
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/bin/s3-credentials", line 33, in <module>
    sys.exit(load_entry_point('s3-credentials', 'console_scripts', 's3-credentials')())
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/lib/python3.10/site-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/lib/python3.10/site-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/lib/python3.10/site-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/lib/python3.10/site-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/simon/.local/share/virtualenvs/s3-credentials-J8M1ChYK/lib/python3.10/site-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/Users/simon/Dropbox/Development/s3-credentials/s3_credentials/cli.py", line 495, in list_users
    output(iterate(), nl, csv, tsv)
  File "/Users/simon/Dropbox/Development/s3-credentials/s3_credentials/cli.py", line 789, in output
    writer.writerows(itertools.chain([first], iterator))
  File "/Users/simon/.pyenv/versions/3.10.0/lib/python3.10/csv.py", line 157, in writerows
    return self.writer.writerows(map(self._dict_to_list, rowdicts))
  File "/Users/simon/.pyenv/versions/3.10.0/lib/python3.10/csv.py", line 149, in _dict_to_list
    raise ValueError("dict contains fields not in fieldnames: "
ValueError: dict contains fields not in fieldnames: 'PasswordLastUsed'

CSV output failed because one of the later rows had a new unexpected column.

Options for fixing this:

Silently ignore columns that were not in the first record. Easiest fix.
For CSV mode load everything into memory first to check for the maximum set of headers. This breaks the goal of having this work efficiently with the streamed data.
Figure out the full set of possible columns and hard-code that into the application. Probably the best solution?

I considered an option where it spots the error, runs to the end to capture all possible headers, then runs the entire command again - but that wouldn't work because we would already have outputted headers and previous rows to stdout.

I'm going to hard-code in the list of known columns. This also gives me control over the order in which they are output.
For list-users that's https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iam.html#IAM.Client.list_users

Path
UserName
UserId
Arn
CreateDate
PasswordLastUsed
PermissionsBoundary
Tags

Fun trick with this:
% s3-credentials list-users --tsv | sqlite-utils memory stdin:tsv 'select * from stdin' -t
UserName                                               UserId                 Arn                                                                                Path    CreateDate                 PasswordLastUsed           PermissionsBoundary    Tags
-----------------------------------------------------  ---------------------  ------------------------------------------------------------------------------------  ------  -------------------------  -------------------------  ---------------------  ------
custom-policy                                          AIDAWXFXAIOZNQQMEOHUA  arn:aws:iam::462092780466:user/custom-policy                                          /       2021-11-03 18:31:22+00:00
dogsheep-photos-simon-read                             AIDAWXFXAIOZKDDGOUY5H  arn:aws:iam::462092780466:user/dogsheep-photos-simon-read                             /       2020-04-18 19:56:54+00:00
dogsheep-photos-simon-read-write                       AIDAWXFXAIOZHYXFF3NA

OK, this is done for list-users and list-buckets and list-bucket.
list-user-policies doesn't output JSON at all, it has a weird custom output - so I'm leaving it for the moment.


Migrate from go dep to go modules

This PR also includes k8s version upgrade to 1.15.2 in order to correctly work with go modules

Codecov Report

Merging #102 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #102   +/-   ##
======================================
  Coverage    78.3%   78.3%
======================================
  Files          33      33
  Lines        1964    1964
======================================
  Hits         1538    1538
  Misses        399     399
  Partials       27      27

Continue to review full report at Codecov.

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


Fix random seed used in test_3d_similarity_estimation

This MR fixes the random seed used in test_3d_similarity_estimation to avoid a stochastic test failure observed both locally and on CI. While fixing the seed, the test case is also updated to use the newer style RandomGenerator API.

Thanks Greg! 🙏

@gpucibot merge

/merge


OSX can't find SDL2_image

I have installed SDL2, SDL2_image and SDL2_ttf into /Library/Frameworks but for some reason ccl can't find it... However, SBCL can find it but of course sbcl has issues with the rendering.

@z3t0 Same issue here. If you are anything like me, you might be using the
32-bit x86 version ccl. Switch to the x86_64 version ccl64 works for me:
$ lipo -info /Library/Frameworks/SDL2_image.framework/SDL2_image
Non-fat file: /Library/Frameworks/SDL2_image.framework/SDL2_image is architecture: x86_64

I did brew install sdl2 sdl2_image sdl2_ttf and it seems to load sketch after that.


fixed #4

Thanks for this! Helped fix the issue I was dealing with when repos were named com.somedomain.another

Fix worked for me too

Thanks for your contribution 🥇


Reopen with picker stays open

have the MD notebook extension configured as default
open a MD file (see the notebook editor being used)
from the title context menu select open with and pick an editor
:bug: the picker doesn't close when editors have changed

When verifying, also confirm that right arrow opens the file but keeps the picker open

When verifying, also confirm that right arrow opens the file but keeps the picker open


Is it possible to use cellranger V(D)J compatible reference

Hi liulab,
A small doubt, is it possible to use  Cell Ranger V(D)J compatible reference (/opt/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0) in -f option to run Trust4?
Does the Trust4 references hg38_bcrtcr.fa or human_IMGT+C.fa already include cell ranger-vdj human reference in it?
Many thanks

I checked the header from 10X vdj reference genome, and it is incompatible with TRUST4's reference file. Though you can convert the header to just contain the gene name just as the human_IMGT+C.fa file.
TRUST4 and CellRanger both used the sequences from IMGT, so the content should be the same. hg38_bcrtcr.fa is based on the GENCODE annotation, and it is most useful when the input is BAM file. So if you want to use VDJ's reference, you can rename their sequence headers and run TRUST4 with FASTQ input.

Many thanks for quick response and clarification. I will give it a try

It's working with VDJ reference as advised. I could create database.fa using your BuildDatabaseFa.pl  for a reference version which I needed
Thanks a lot for help and support!! Much appreciated!


Do not submit (yet): Initial metrics dashboard

Dashboard for displaying postcommit metrics at http://<IP_ADDRESS>/

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

It will help us expedite review of your Pull Request if you tag someone (e.g. @username) to look at it.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---
---
---
---
---

Java

Python

---

---
---
---
---

@Ardagan PTAL

Thank you for sharing this Alan.
For everyone: please, keep this PR open as part of sharing common logic.

Updating just in case: right now dashboard UI is html, ultimate goal is to utilize some generic dashboarding tool (service/library).


add resources block

Issue #, if available:

#102

Description of changes:

adding resources block

Testing:

Tested locally and saw resources request/limits take effect:

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

LGTM 👍


Fixes problem that messages with unicode symbols are ignored

My testing suggests that this has been fixed, most likely by the move to using requests (see e0c621b3a354dfc5f71e31dc274020ba075848d7).


Remove kerthcet from approver

What type of PR is this?
/kind documentation

What this PR does / why we need it:
Because I have little time focused on this project right now, so I'd like to remove myself from the maintainer list, but I'm still part of this project. I will back oneday.
/assign @sanposhiho @codefromthecrypt
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?

NONE

What are the benchmark results of this change?

Look forward to seeing you still, even if not maintainer role for a while @kerthcet!
/lgtm


fix: external links new tab

Description
Open external links in new tab inside of articles (hcrc fix)
Issues
Closes
DEV-XXX:
Related
Testing
Automated tests
Manual testing
Screenshots
Additional notes

Codecov Report

Merging #54 (e9561dc) into main (9ae3f93) will decrease coverage by 0.23%.
The diff coverage is 33.33%.

@@            Coverage Diff             @@
##             main      #54      +/-   ##
==========================================
- Coverage   66.25%   66.02%   -0.24%
==========================================
  Files         240      120     -120
  Lines        5655     2802    -2853
  Branches     1232      611     -621
==========================================
- Hits         3747     1850    -1897
+ Misses       1748      872     -876
+ Partials      160       80      -80

Impacted Files
Coverage Δ

...i/src/common-events/utils/headless-cms/service.tsx
0.00% <0.00%> (ø)

...i/src/domain/nextApi/graphql/generated/graphql.tsx
61.29% <ø> (ø)

...lsinki/src/domain/search/eventSearch/constants.tsx
100.00% <ø> (ø)

...search/eventSearch/filterSummary/FilterSummary.tsx
76.11% <ø> (+0.75%)
:arrow_up:

...ts-helsinki/src/domain/search/eventSearch/query.ts
0.00% <ø> (ø)

...s-helsinki/src/domain/search/eventSearch/utils.tsx
89.25% <ø> (-0.97%)
:arrow_down:

...i/src/domain/search/eventSearch/AdvancedSearch.tsx
91.58% <100.00%> (-0.38%)
:arrow_down:

...i/src/common-events/utils/headless-cms/service.tsx

...arch/eventSearch/filterSummary/PublisherFilter.tsx

apps/hobbies-helsinki/src/domain/event/types.ts

... and 117 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


[pkg] enable sourceMap option on Gruntfile.js to enable debugging minified file in production enviromnent.

[pkg] enable sourceMap option on Gruntfile.js to enable debugging minified file in production enviromnent.
fixes #4186

Coverage decreased (-0.07%) to 88.336% when pulling 20d5473fe1a3136b51ef6fdb5ae54d12d7a45176 on harkue:develop into 13a61b285c095bda7ea8e33156090ea5ccfeaef1 on moment:develop.

Coverage decreased (-0.07%) to 88.336% when pulling 20d5473fe1a3136b51ef6fdb5ae54d12d7a45176 on harkue:develop into 13a61b285c095bda7ea8e33156090ea5ccfeaef1 on moment:develop.

You also need to update Moment.js.nuspec

Merged in 01e9feb818843872cea53406c3d011420ed8eb18


Add option for indexing ZIP files

The CLI does not support passing an argument to indicate that the ZIP file being uploaded should be indexed as per
https://learn.akamai.com/en-us/webhelp/netstorage/netstorage-http-api-developer-guide/GUID-75696F3E-39E7-49F0-90FC-CDC2FACBBEAB.html

index-zip=1: Include this to enable az2z processing of an uploaded “.zip” archive file, this will index the archive for use with the “Serve from Zip” feature. Serve from Zip requires each archive to have an index, and have a “.zip” extension.

The way that Akamai is running their open source projects is, frankly, embarrassing and reflects poorly on the whole organization. The repositories are abandoned or poorly maintained, with open issues dating back years. If you can't get funding or priority to maintain these, you are much better off taking everything off of GitHub and offering it as a downloadable binary instead.


[A11y] Toast: Focus is placed on the close button and not the link

When a toast with a link is presented to the user, the focus is placed on the button to close out the toast. The user is then not able to tab immediately to the link -- pressing tab moves them to other components on the page.

I am not currently working on this issue
To reproduce, place the toast with a link in your page and attempt to tab and place focus on the link text.
Story created - W-5986014

@stamizharasu As a workaround, can you auto focus the link on render or does the close button focus grab back again from the link?
I'm not sure what the best way is to focus on dynamic content is, since LDSR doesn't know anything about your link or which DOM node it is.
One way forward, may be to allow disabling of LDSR controlling the focus and you grabbing the focus on render of your link. Do you think that would work for you?

@interactivellama thank you for following up!

can you auto focus the link on render
I'm not positive what you mean by this -- on render callback use a DOM selector to focus the link?

I mean <a ref={(c) => c.focus();}>ACME-100<a> --although I think @kevinparkerson tried this in a recent meeting and said the focus goes to the close button again.
Adding a hasNoAutoFocus may be the best route if you can't do the line of code above.

There is update on this one. We moved back to focusing on the container of the Toast, so that all the text of it's contents is read.


Skip cookie disclaimers for all cypress tests

unifies cookie disclaimers handling for local/console.dev/CI env - by completely skipping them

/retest

/lgtm


Added option to eject removable device

Fixes #84
Bugs:

Device cannot be ejected after visiting to it and closing the tab. (help needed)
Missing menu icon
Missing translation(will be added after fixing the first issue)

Previous PR with the same issue: #1810

"Device cannot be ejected after visiting to it and closing the tab. (help needed)"
We are not properly calling CloseHandle in this function:
ItemViewModel -> CheckFolderForHiddenAttribute
Last time we had this issue, closing all pending handles solved it

Icon proposal, i moved it before "Properties"

@XPoppyX What code of this icon?

@gave92 You're absolutely right about the redundant calls to FindFirstFile. We certainly don't need to use that parent method to find the hidden attributes there. That was my mistake 😳

@tsvietOK  It is a custom icon that I added now, if you like the icon I can add a PR in your repository, Also, if you agree, with the change about moving it above properties

@XPoppyX Agreed with both changes.

@tsvietOK Done

@tsvietOK Can you make sure we exlude the eject option in process.cs that is detected from File Explorer?

@yaichenbaum There is no eject option in File Explorer(in regular folders). there only two way to eject device: through tray and in My computer.

@tsvietOK It's program.cs, you can find it over here https://github.com/gave92/files-uwp/blob/master/Files.Launcher/Program.cs#L369.

@yaichenbaum Sorry, i don't understand what are you talking about. Where is connection between Program.cs and Sidebar context menu, which is not taken from Explorer context menu?

@tsvietOK Add "Eject" to the known items list, otherwise the context menu will have two eject options.

@yaichenbaum There is only one eject option.

@tsvietOK There is another one if you right click inside the root path of a drive.

@yaichenbaum In context menu of the drive such option exists, but it is not duplicated. It is two ways to eject device.


Custom plugin is not imported into the production mode

Hello, I have two plugins that I made in the project, registered it as a package of npm and installed as a dependency, but when I run the  npm run build pops up the error:
Unexpected token (Acl)

ACL is one of those plugins. I copied the plugins to a folder within the src and I imported the plugin that folder then it worked, but how do I import from npm and work?
The problem is definitely in the plugin, follow the link of the two (the file are in the src folder):
MultiLanguage plugin
Acl plugin
Thank

Hello @leonardovilarinho
Thank your for your interest in this project.
However, your issue is a usage/support question, and the issue tracker is reserved exclusively for bug reports and feature requests (as outlined in our Contributing Guide).
We encourage you to ask it on the forum  , Stack Overflow or on gitter and are happy to help you out there.

Hint: it has probably to do with the fact that babel-loader doesn't convert files from node_modules to ES5, and your plugins use in ES6 classes. That's why it works when the files are in /src


[Storage] Merge hotfix 12.13.1 to main

Merging the hotfix that was released as version 12.13.1 to main.
Previous PR to hotfix branch: #25522

API change check
API changes are not detected in this pull request.

/azp run python - storage - ci

Not sure why this started ALL the ci. I re-ran just Storage, and it passed so will override.

/check-enforcer override


Misleading comment on Text rotation

https://github.com/bevyengine/bevy/blob/9d453530fac9202691c797184ad0b220b2ea37b3/crates/bevy_text/src/text2d.rs#L58 is no longer correct following the addition of non-UI text.
See https://github.com/bevyengine/bevy/blob/main/examples/2d/text2d.rs.

Looks like the current main branch no longer contains the function in question: https://github.com/bevyengine/bevy/blob/main/crates/bevy_text/src/text2d.rs. I'd say this can be closed.

Good eye, thank you!


Develop to main

Codecov Report

Merging #359 (4f27b94) into main (75132a0) will decrease coverage by 0.58%.
The diff coverage is 55.17%.

@@            Coverage Diff             @@
##             main     #359      +/-   ##
==========================================
- Coverage   83.11%   82.52%   -0.59%
==========================================
  Files          21       22       +1
  Lines        1356     1379      +23
==========================================
+ Hits         1127     1138      +11
- Misses        229      241      +12

Impacted Files
Coverage Δ

...unk_connect_for_snmp/common/custom_translations.py
86.66% <ø> (ø)

splunk_connect_for_snmp/common/inventory_record.py
97.45% <ø> (ø)

splunk_connect_for_snmp/common/schema_migration.py
100.00% <ø> (ø)

splunk_connect_for_snmp/poller.py
0.00% <0.00%> (ø)

splunk_connect_for_snmp/traps.py
0.00% <0.00%> (ø)

splunk_connect_for_snmp/__init__.py
100.00% <100.00%> (ø)

...nnect_for_snmp/common/customised_json_formatter.py
100.00% <100.00%> (ø)

splunk_connect_for_snmp/inventory/loader.py
93.97% <100.00%> (+0.46%)
:arrow_up:

Continue to review full report at Codecov.

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


Changes /ping route to return status code 200 instead of 204.

Closes #9772

[x] Sign CLA (if not already signed)

Since the /ping route returns a content type of application/json, this should probably return either {} in the body or something like {"status":"ok"}.

@jsternberg this is a good point. What about changing the endpoint to return a content type of text/plain? This seems more appropriate to me than returning application/json.

@timhallinflux can you weigh in on this behavior change?
I reckon there are existing user scripts that expect a 204 return code. If we need to preserve existing behavior, we can have the status default to 204 and add support for something like /ping?status=200 to get a 200 return code.

@mark-rushakoff @timhallinflux thank you guys for your feedback! I've updated the PR per your suggestions.

Can you change the query parameter to verbose=true and make it so it returns a JSON body like this?
{"version": "1.5"}

This information is already included in a header, but I do want some JSON text output and this seems like something that could be added.

The original repository doesn't exist anymore so I'm going to modify this and make a new PR.

@jsternberg will you allow me to create a new PR since I was the original author of this one? I deleted the original repository as part of some housekeeping on my repos and wasn't seeing any movement on this PR.

That's fine. I was going to ensure you stayed as the author on the actual commit (I just end up showing up as the committer). Here's a modified diff of your original that I was going to apply and commit.
commit c93068794f9e72d2aa3daa2cf25c4baeb49c0df4 (HEAD -> pr-9784)
Author: Ryan Coleman<EMAIL_ADDRESS>Date:   Wed May 2 16:34:57 2018 -0500

    Changes the functionality of /ping to return a status code of 200 when /ping?verbose=1 is used

diff --git a/services/httpd/handler.go b/services/httpd/handler.go
index 7bf44498a..6e7253f2a 100644
--- a/services/httpd/handler.go
+++ b/services/httpd/handler.go
@@ -784,8 +784,16 @@ func (h *Handler) serveOptions(w http.ResponseWriter, r *http.Request) {

 // servePing returns a simple response to let the client know the server is running.
 func (h *Handler) servePing(w http.ResponseWriter, r *http.Request) {
+       verbose := r.URL.Query().Get("verbose")
        atomic.AddInt64(&h.stats.PingRequests, 1)
-       h.writeHeader(w, http.StatusOK)
+
+       if verbose != "" && verbose != "0" && verbose != "false" {
+               h.writeHeader(w, http.StatusOK)
+               b, _ := json.Marshal(map[string]string{"version": h.Version})
+               w.Write(b)
+       } else {
+               h.writeHeader(w, http.StatusNoContent)
+       }
 }

 // serveStatus has been deprecated.

If you want to apply it locally and submit a PR for github stats, I can merge that one instead. I don't really have a preference on that.


fix bug #475

I made a test to verify the bug #475. I think we should fix the bug and include the test into the dev branch. I am trying to recreate the bug

Ok now the test fails and we should be able to fix and test the bug

This patch needs to be tested a bit more before it could get merged!

@aurri @tipiirai can we merge this safely and make a new release? It seems to be quite a big bug fix

Thanks. I'll make a release today.


console logging output in latest version of three-mesh-ui (6.5.3)

Hello,
Let me begin with thanking you for this excellent library :)
I recently upgraded to the latest stable version 6.5.3 and started noticing a lot of console log output from this library, looks like there's an extra console.warn located here which probably should be removed?:
https://github.com/felixmariotto/three-mesh-ui/blob/24fd2b7760842a7fa67768a39762c5c491691ead/src/components/core/InlineManager.js#L264
An example of what we are seeing in console logs:

Best regards
Lars

Hi Lars,
Thank you for pointing this out.


Support for promises

Right now, runInTransaction supports only synchronous code with fibers.
Initially, I thought that adding support for promises would be achievable with async_hooks by using AsyncLocalStorage. However, it looks like that because of the fibers executionAsyncId() always returns 0 which means that AsyncLocalStorage is not working as expected.
Workaround is:
runInTransaction(() => Promise.await(fnReturningPromise));

The workaround looks promising: Does it actually work? Any gotchas?
Because the README suggests to use hacks like Meteor._sleepForMs  etc.
I can imagine that the combination of both fibers and promises might whats problematic.

Handling promises mentioned here is not the same case as in Readme, though. Here you only have a function returning the promise, and you have to wrap it in Promise.await. You don't need Meteor._sleepForMs here.
In Readme, we have a promise in a callback of .insert method, which is more complicated since we cannot control it. You could use _sleepForMs, but you should also estimate how many secs you want to wait, depending on how much time will the callback take.
PR #4 works around that issue, so you won't have to use sleep anymore. I've tested it for more than two months now and it appears to be working well.
Just to note that this is a band-aid on top of a band-aid solution (fibers). However, if you do find any problems with the package, please report and I'll try to find a solution.

Thanks for the quick answer! I will try the PR.
Althought maybe my usecase is already possible: Is it possible to use promise based async code within a runTransaction callback?
e.g:
async function doSomething() {
  const promisesAndFibersMixed = async () => {
     Collection1.insert({ ... })
     await somethingElse()
     Collection2.insert({ ... })
   }
   runInTransaction(() => Promise.await(promisesAndFibersMixed()))
}

(mixing fiber and async/await... )

Just to note that this is a band-aid on top of a band-aid solution (fibers)

Yes, sure. I just have a Meteor App which would benefit from safety provided by db transactions - and replacing the fibers-based MongoDB wrapper in a grown Meteor app would be painful :D

Yes, your use case should work already without the PR.


Resolve cibuildwheel failures

In PR #1047 halotools removed dependency on the astropy-helpers and began using extensions-helpers to handle the automation of the cython extensions. In the current master branch, the cibuildwheel github action in current master branch fails to successfully build a wheel to upload to pypi. This PR attempts to resolve this failure.

The build wheel failures were due to an older version of cython. This was resolved by updating cython from 0.29.14 to 0.29.32


Fix error props being incorrectly accessed in components

Details
errors props were being incorrectly accessed in IOUCurrencySelection, ReportScreen, and MoneyRequestAmountPage. This fixes that by getting the errors from the report object using a new function to keep code DRY.
Fixed Issues

$ https://github.com/Expensify/App/issues/23373
PROPOSAL: https://github.com/Expensify/App/issues/23373#issuecomment-1646244687
Tests

Open the app in two tabs.
On first tab, open settings and click on force offline.
On second tab, go to search and enter a long email like<EMAIL_ADDRESS>Now, send some messages in the chat and open emoji picker from composer.
Go to first tab and toggle force offline to come back online.
Verify that both composer and emoji picker automatically hide in the second tab and chat shows the error that email address is invalid.

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

Offline tests

Same as above.
QA Steps

Same as above.

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

PR Author Checklist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Hey @mollfpr @marcaaron, here's how you can test the fix is working -

Before fix -
https://github.com/Expensify/App/assets/31413407/9ef73991-8b93-49f9-8382-7f184c0c2540
After fix -
https://github.com/Expensify/App/assets/31413407/c2864c2f-70e7-4aa8-828d-313794da5245

I just wanted to confirm the expected behaviour here before I proceed. If there is an error and the request money/split bill/assign task modal is opened, is it okay that we are redirected to concierge chat?

I'm okay with that.

If there is an error and the request money/split bill/assign task modal is opened, is it okay that we are redirected to concierge chat?

That sounds like a bug to me caused by the PR you mentioned. I would expect to see some error on the page itself and not to get redirected.

Mind directing that question to @mollfpr? I'll jump in here when this is looking ready to merge. Thanks!

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] 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 included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

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

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] 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 the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] 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 is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] 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 other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] 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 */
[ ] 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 any new file was added I verified that:

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

[ ] 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 code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] 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.
[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

@Nikhil-Vats The behavior on the IOU pages is different; sometimes, the RHN is closed and shows the reported error, and sometimes keep, the RHN and showing the not found page.
https://github.com/Expensify/App/assets/25520267/a5c92e0f-8e53-450f-9c34-563012150ee7
https://github.com/Expensify/App/assets/25520267/4b01e645-0150-4593-8fde-fe2302a3a45c

@Nikhil-Vats I constantly got the not found page on the Desktop while testing the IOU flow. I'm afraid the QA team will bump into this issue, and the QA will fail.
https://github.com/Expensify/App/assets/25520267/ded84cee-04b5-4bdc-bbe2-2904b4f9c0ea

Ideally, we should get the same expected result on all platforms. So if the attached PR needed to be deployed first, we should wait.

@Nikhil-Vats I agree with Marc's explanation here. We can skip the test case on the IOU flow for the platform constantly showing the issue.
What do you think?

@Nikhil-Vats Could you resolve the conflicts? I'll test all the platforms and let you know. Thanks!

Sorry for the delay, I'll give you an update shortly regarding the test.

@Nikhil-Vats The test on IOU flow only works for Web and mWeb. On Desktop, iOS, and Android, it redirects to the not found page after online.
We can skip the test on IOU flow and just put the test case for the emoji picker to be closed after being back online.

@Nikhil-Vats Looks good to me. I need to finish the test for Android.

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

🚀 Deployed to staging by https://github.com/marcaaron in version: 1.3.53-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.3.53-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Clean up scanner service to use server side conf only

First, help us help you by providing the following information when opening an issue.

[ ] Which version of Forseti Security you're using (look in google/cloud/security/__init__.py in your installation).
[ ] Which module(s) (inventory, scanner, enforcer, explain) you're having trouble with.
[ ] Include errors, log output, and host operating system, including installed packages.
[ ] Note how you deployed (via Deployment Manager, local system, etc.).

Secondly, if the issue is a feature request, be descriptive regarding what needs to be changed and why.
Finally, be sure to see the FAQ and Community for assistance.
Thanks!

fixed:
https://github.com/GoogleCloudPlatform/forseti-security/pull/1065


[JS] Using tableFromIPC().toString() results in invalid stringified JSON when containing dates

For reference, let's use the following code sample where we have a single row table:
const tableAsArray = tableFromIPC(someSource).toArray();

console.log(tableAsArray);
// [{ id: 'foo', name: 'bar', dob: Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time) }]

Considering the dob property above is a date object, this should be the JSON string:
const tableAsString = tableFromIPC(someSource).toString();

console.log(tableAsString);
// '[{"id":"foo","name":"bar","dob":"2000-12-15T11:00:00.000Z"}]'

Unfortunately, that's not what happens. Instead this is how the string looks like:
const tableAsString = tableFromIPC(someSource).toString();

console.log(tableAsString);
// '[{"id":"foo","name":"bar","dob":Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time)}]'

Note that not only the date has not been converted to JSON (dateObject.toJSON()) but also, it is an unquoted string. This is of course a problem as one cannot parse back this string to JSON as the parser will throw an exception.
Component(s)
JavaScript

Great @arteconceito, thank you for reporting and contributing!
I will look at the PR and request a review from a developer working on this part of the codebase.

I don't think I agree that this is a bug. toString should return a human-readable representation for debugging more than a JSON-readable representation. That's what toJSON is for. We should make sure toJSON works correctly, though.

Following the current implementation, the .toString() methods actually behaves as the .toJSON() an that's why it to me classifies as a bug. In any case I do agree with you @domoritz, as I already wrote here.
Question: should I refactor those .toJSON() methods to actually behave as expected (cc @trxcllnt)?
Actually if we do that, then those .toString() could use .toJSON() to generate the string output.

I am not fully following the proposal. toString can produce strings that are not JSON and I think that's okay. This looks good to me actually
const tableAsArray = tableFromIPC(someSource).toArray();

console.log(tableAsArray);
// [{ id: 'foo', name: 'bar', dob: Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time) }]

But it would probably make sense to make it consistent with
const tableAsString = tableFromIPC(someSource).toString();

console.log(tableAsString);
// '[{"id":"foo","name":"bar","dob":Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time)}]'

toJSON has the challenge that we use it to produce js objects rather than actual JSON strings (for performance reasons and we can consider alternatives). But we should expect JSON.stringify(X.toJSON()) to work and if it doesn't I would consider that a bug.

Before the conversation goes into a different path other that the main point of why this issue was raised, let me add a bit of context to why I opened this issue as a bug.
As in the example I gave on my OP above, the output of table.toString() is too similar to a JSON string. Similar enough to induce one to take it as a "helper" method for getting the actual table as a serialised JSON string.
This is exactly what happened with two other devs on my team that authored the code I was assigned to fix. Once we started having dates on those tables, the app broke as I then figured why. It was exactly due to the fact that .toString() was used to get the table as JSON and because the .toString() method does not quote the date strings (as also mentioned in my original OP).
So, as per the MDN's definition of Object.prototype.toString(), the .toString() should not only be used to return a string representation but is also meant to be overridden for custom type conversion. Below is an example of a "native" string representation (yes, it's not that helpful),
const arrayOfObjects = [{ name: 'John', dob: new Date() }, { name: 'Jane', dob: new Date() }];

console.log(arrayOfObjects);
// "[object Object],[object Object]"

Compared to this, the current Table.toString() implementation does a good job already and is actually following the "meant to be overridden for custom type conversion" part of the recommendation. I only meant to "adjust" it in a way that it would be backwards compatible, continue being human readable while also being JSON parseable as a nice addition.
Regarding the part where you write...

toJSON has the challenge that we use it to produce js objects rather than actual JSON strings

... I get it that's how you intended it to be in the first place but it for sure, at least to me, makes one think it will return a JSON string, as its name suggests, and also because JSON on its most basic definition is a string. I know introducing changes here would be a breaking change but just in case, my suggestion would be .valueOf() following MDN's definition on Object.prototype.valueOf().
Anyway... going back to the basics.
The current Table.toString() already returns a JSON parseable string, why not also support Date() values ?

Thanks. I appreciate the deep dive.

The current Table.toString() already returns a JSON parseable string, why not also support Date() values ?

I think because we don't want toString to be relied on as serialization format. If we create the impression that it works, we will get subtle issues (as you encountered). Maybe we should remove the key quoting and use ' instead of " so it looks like the first example from your OP.

Then this issue can be be closed and I will abandon de PR as well.
Thx anyway for discussing this 👍 .

I think you brought up a good point how
const tableAsString = tableFromIPC(someSource).toString();

console.log(tableAsString);
// '[{"id":"foo","name":"bar","dob":Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time)}]'

should look more like
const tableAsArray = tableFromIPC(someSource).toArray();

console.log(tableAsArray);
// [{ id: 'foo', name: 'bar', dob: Fri Dec 15 2000 12:00:00 GMT+0100 (Central European Standard Time) }]

to avoid the confusion your team member ran into. What do you think about making that change?

toString() and toJSON() are actually really subtle. JS will invoke an instance's toString() method when implicitly converting a type to a string representation, and will use toJSON() when running through JSON.stringify().
I know toJSON() sounds like it should return a string, but according to the docs toJSON() should return the value to be serialized, not a string:

If the value has a toJSON() method, it's responsible to define what data will be serialized. Instead of the object being serialized, the value returned by the toJSON() method when called will be serialized.

For example:
# Implicitly converting an Array to a string:
> `${[new Date(), 5, {}, {foo:1, bar: 'baz'}]}`
'Thu Dec 22 2022 19:02:07 GMT-0800 (Pacific Standard Time),5,[object Object],[object Object]'

# Stringify'ing JSON
> JSON.stringify([new Date(), 5, {}, {foo:1, bar: 'baz'}])
'["2022-12-23T03:00:46.440Z",5,{},{"foo":1,"bar":"baz"}]'

We can override this via custom toString() and toJSON() implementations:
> `${[new Date(), 5, {}, {foo:1, bar: 'baz', __proto__: {toString() { return JSON.stringify(this); }}}]}`
'Thu Dec 22 2022 19:00:16 GMT-0800 (Pacific Standard Time),5,[object Object],{"foo":1,"bar":"baz"}'

> JSON.stringify([new Date(), 5, {}, {foo:1, bar: 'baz', __proto__: {toJSON() { return {foo: this.foo}; }}}])
'["2022-12-23T03:01:35.003Z",5,{},{"foo":1}]'

The implementations we provide in Arrow are intended to follow these semantics. If you want stringified JSON, why not add a Table.toJSON() method that returns an Array, then call JSON.stringify(table.toJSON())?

Thanks for the well supported clarification @trxcllnt.
In any case, for our use case we are all set. Using JSON.stringify(table.toArray()) also works fine because then JSON.stringify()will use the Vector.toJSON() method for the serialisation.

Closing as this turns out not to a bug. Just wrong assumptions taken towards the Table.toString() method.


onConflictOption DoUpdates should be aligned to refactored UpdateAll

Describe the feature
This section
 should be aligned to the changes of this commit

Motivation
As the same reason of the refactor UpdateAll, while the models are associations of the other models, we need to specify the conflict columns instead of using the primary keys.

Related Issues
https://github.com/go-gorm/gorm/commit/27bb9137d3ad1751e47ceb6e325fb5d17b0eb7aa

When saving associations, it should not use the main object's OnConflict option.

When saving associations, it should not use the main object's OnConflict option.

Of course it should not use the main object's OnConflict option, the issue is there should be a way to specify the columns in associations.
Imagine that a model which use the refactored UpdateAll, and another model have association with it. There is a necessary for columns specified, otherwise the refactored UpdateAll will be unnecessary too.
Let me try to clarify it more, let's say we have a situation we need to do something with
`
type Bar struct {
ID uint
A string
B string
....
}
item := model.Bar{}
db.Clauses(clause.OnConflict{
Columns:   []clause.Column{{Name: "a"}, {Name: "b}},
UpdateAll: true}).Create(&item)
Then of course we can predicable imagine we will have situation with
type Foo struct {
BarID uint
Bar *Bar
}
`
And we need to save the Bar respecting the constraints with 'a' and 'b' columns too. So we should have a proper way to implement that.

@jinzhu please check the update


HVS 490 Support

Is support for the HVS 490 model possible?

It will depend if the 490 is using a similar protocol to the 110 and 2000. If you can get me a network log I will be able to tell if the protocol is similar, or if it would need to be an entirely different module.
Here is the process if you are using Chrome:

Go to the switcher's web interface and open the Bus/Trans page, or whatever the equivalent page is on the 490.
Open the web inspector's (ctrl+shift+I) network tab and refresh the page.
Change a few things to get some data. (pgm source, cut transition, keyer, etc.)
Right-click on any line in the inspector and select "Save all as HAR with content".
Upload that file here so I can take a look at how the web interface is talking to the switcher.

Here is a HAR file from our HVS-490. If there is anything else, I would be happy to help!
HVS490-Log.zip

Hi!
Has anyone delved any deeper into seeing if the existing module will work with the HVS-490? I asked in the Slack channel and someone pointed out that the 490 requires the user name and password to authenticate entering the builtin webserver and thought that might be the stumbling block. The only counterpoint I'd make is that I'm already logged into the machine on the same computer...wouldnt that have satisfied the login requirement?
Thanks in advance!

Having issues with limited functionality using Companion 3.2.0 and connecting to the HVS-490. E.g. keyers work on MEs but no aux source control. Does anyone have insight into this?

Try creating a macro on the switcher to change the Aux, then call the macro
from companion.
Sent from my iPhone
On Sun, Feb 4, 2024 at 10:26 AM sce28335 @.***> wrote:

Having issues with limited functionality using Companion 3.2.0 and
connecting to the HVS-490. E.g. keyers work on MEs but no aux source
control. Does anyone have insight into this?
—
Reply to this email directly, view it on GitHub
https://github.com/bitfocus/companion-module-fora-hvs/issues/10#issuecomment-1925818867,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AGLVZUSXAXWUCYZQOTHWQEDYR6ZDDAVCNFSM4UZXCLW2U5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOJSGU4DCOBYGY3Q
.
You are receiving this because you commented.Message ID:
@.***>


Update get-clients.md

In the following article we call out that Windows 10 LTSC does not Teams web but in this article we dont mention it which causes confusion to customers on support for Teams web on Windows 10 LTSC.
https://docs.microsoft.com/en-us/microsoftteams/hardware-requirements-for-the-teams-app

@dstrome PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Sync Project with BUILD files fails with Error: Unrecognized option: --aspects_parameters=optimize_building_jars=enabled

Description of the bug:
OS: macOS 14.6.1, Apple M3 Pro
Details:
Using Bazelisk to manage bazel cli version.
Project Bazel version: 5.4.0
I am trying to sync and run application with Bazel in Intellij IDEA.
I am able to build and run application using terminal but it does not work with Intellij IDEA.
Which category does this issue belong to?
No response
What's the simplest, easiest way to reproduce this bug? Please provide a minimal example if possible.
Intellij IDEA Tool Bar -> Bazel - > Sync -> Sync Project with BUILD files
Sync task output:
Command: bazel build --tool_tag=ijwb:IDEA:ultimate "--override_repository=intellij_aspect=/Users/oleksandr.rozlyvanov/Library/Application Support/JetBrains/IntelliJIdea2024.2/plugins/ijwb/aspect" --keep_going --build_event_binary_file=/var/folders/1l/cqh02nws4bvf8xd9qrkzl11m0000gn/T/intellij-bep-5fa41135-b8fc-40c6-a39c-d234e7377c46 --nobuild_event_binary_file_path_conversion --curses=no --color=yes --progress_in_terminal_title=no --noexperimental_run_validations --aspects=@intellij_aspect//:intellij_info_bundled.bzl%intellij_info_aspect --aspects_parameters=optimize_building_jars=enabled --output_groups=intellij-resolve-java-direct-deps,intellij-info-generic,intellij-info-java-direct-deps -- //backend:app_lib //backend:java_deps //backend:sage_integration_lib //common/accounting-client-lib:java_deps //common/accounting-model-lib:java_deps //com...
ERROR: --aspects_parameters=optimize_building_jars=enabled :: Unrecognized option: --aspects_parameters=optimize_building_jars=enabled

Which Intellij IDE are you using? Please provide the specific version.
Build #IU-242.20224.387, built on August 13, 2024     Runtime version: 21.0.3+13-b509.4 aarch64 (JCEF 122.1.9)     VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
What programming languages and tools are you using? Please provide specific versions.
Bazelisk (bazel)
What Bazel plugin version are you using?
2<IP_ADDRESS>.1-api-version-242
Have you found anything relevant by searching the web?
No response
Any other information, logs, or outputs that you want to share?
No response

See https://github.com/bazelbuild/intellij/pull/5515#issuecomment-2297677294.

We'll provide a hotfix for that


chore(plugins/tidy-html): add default to jsdoc param

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:
562

Relevant Lines:
562

💛  - Coveralls

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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 ?%

Totals

Change from base Build<PHONE_NUMBER>:
0%

Covered Lines:

Relevant Lines:
0

💛  - Coveralls


How to get object through stenciljs routes

From @kchetans on June 4, 2018 11:13
I was trying to pass data through stencils routes
e.g...
this.history.push(/detail,{detail_data:docs});
when I check their interface I found
push: (path: string | LocationSegments, state?: any) => void;
so my object is state how would I access these object to /detail page
I tried
Prop() detail_data: object;
but it's not working
Copied from original issue: ionic-team/stencil#836

You can actually access it through history.location.state
Here is an example in the codebase.
https://github.com/ionic-team/stencil-router/blob/master/src/components/__tests__/test-demo-three.tsx#L40
@Component({
  tag: 'test-demo-three'
})
export class TestDemoThree {
  @Prop() history: RouterHistory;

  render() {
    return (
      <div>{history.location.state}</div>
    );
  }
}


[Fix] fix deserialization error for QueryPlan exception

Proposed changes
Issue Number: close #65
Problem Summary:
Deserialization error on QueryPlan with exceptions.
Checklist(Required)

Does it affect the original behavior: (No)
Has unit tests been added: (No Need)
Has document been added or modified: (No Need)
Does it need to update dependencies: (No)
Are there any changes that cannot be rolled back: (No)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

Thank you for your pr, is it also possible to add @JsonIgnoreProperties(ignoreUnknown = true) directly to the entity class of QueryPlan ?

Yes. Do you mean adding the annotation alone or also with the exception field? I think the exception msg is helpful and should be exposed to users properly.

However, the response of queryPlan has been judged in RestService.getQueryPlan, and an exception is also thrown when an error occurs, so is there no need to record the exception in queryPlan?


deis config:set VAR="value with spaces"

The deis cli seems to have an issue with configuration values that contain spaces via config:set according to some reports.
It was possible to work around this issue by using config:push

#hacktoberfest I don't seem to have permission to add labels in the Team Hephy org...

$ deis config:set SPECIAL_VAR="my special variable"
Creating config... done

=== materialize-jekyll Config
SPECIAL_VAR      my special variable

I could not reproduce on a fresh minikube deis


Notebook cell execution blocks on notification action when no pip is available

Testing #174637

Create a codespace for microsoft/vscode, the kitchen sink image will not have pip in it
Try to run a Jupyter notebook cell
Get an error notification saying that there's no pip
:bug: the kernel and cell are in a pending state until the notification is actioned. This is weird as an end user because when I see this error message, my first move is to go to the terminal to install the missing dependencies, and subsequently it wasn't clear what I needed to do to unblock the cell execution. IMO if a kernel dependency is missing and the only action available in the notification is to open the docs, the cell execution should fail immediately

/duplicate of https://github.com/microsoft/vscode/issues/175044

@rebornix it's possible that a user has a Linux machine which doesn't have pip so I'm not sure that this is a complete duplicate of  https://github.com/microsoft/vscode/issues/175044. This issue is purely about the way that Jupyter handles the notification about missing pip within the kernel execution.


chore(Analysis/NormedSpace/QuaternionExponential): extract helper lemmas

Besides being split in three, this proof is largely untouched.

bors merge


Add readme

Added a readme to include

How to run
How to run tests
How to style the frontend

Codecov Report

Merging #4 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #4   +/-   ##
=======================================
  Coverage   86.66%   86.66%
=======================================
  Files           3        3
  Lines          45       45
=======================================
  Hits           39       39
  Misses          6        6

Continue to review full report at Codecov.

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


ConcurrentModificationException when pushing API project

Amplify CLI Version
v4.18.1
I've been increasingly getting this error when pushing my project - on average about one in three deployments fail.   There doesn't seem to be any pattern or cause, the error occurs randomly with Query/Mutation/Subscription resolver updates for any model.
It's also not related to the actual changes in the schema - it happens randomly to models that haven't been updated as well.
A push will fail, and the next push (without any changes to the schema) will succeed.
My schema has about 75 models.
The errors typically look like this:
UPDATE_FAILED               QuerylistReservedTimeslotsByTransactionResolver                                                AWS::AppSync::Resolver     Fri Aug 07 2020 08:59:36 GMT+0000 (Coordinated Universal Time) Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: xxxxxxxxxxx; Proxy: null)
1233

Resource Name: arn:aws:appsync:eu-west-1:xxxxxxxxxxx:apis/xxxxxxxxxxxx/types/Subscription/resolvers/onUpdatePayment (AWS::AppSync::Resolver)

Event Type: update

Reason: Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: xxxxxxxxxxxxxx; Proxy: null)

Resource Name: arn:aws:appsync:eu-west-1::xxxxxxxxxxx:apis/:xxxxxxxxxxx/types/Mutation/resolvers/createServiceSubscription (AWS::AppSync::Resolver)
Event Type: update
Reason: Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: :xxxxxxxxxxx; Proxy: null)

Hi @mdw2000
Thanks for reporting this. We are taking with the service team regarding issue and will provide the updates for this issue soon.

@mdw2000 would it be possible to share some request id so we can look into the logs and see what is happening

@yuth - here are 3 examples from different builds
Build 429a2879-e853-4af6-ae65-3b43b889322e
UPDATE_FAILED               GetBookingResolver                                                                 AWS::AppSync::Resolver     Mon Jun 22 2020 04:53:05 GMT+0000 (Coordinated Universal Time) Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: a317b3fd-a0bc-4c05-9670-d951f08c2ffd)
968

Build b9dc80d0-d8a4-4257-ab10-06a19c0822d3
UPDATE_FAILED               SubscriptiononTicketTypeResolver                             AWS::AppSync::Resolver      Thu Jun 11 2020 07:54:09 GMT+0000 (Coordinated Universal Time) Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: d4e65a6e-5243-4e90-b717-ccbd7c20bceb)

Build abef58be-1bd5-49f9-a01e-3ef14a0b840b
UPDATE_FAILED               SubscriptiononCreateProductCategoryResolver                                               AWS::AppSync::Resolver     Tue Jun 16 2020 05:39:28 GMT+0000 (Coordinated Universal Time) Schema is currently being altered, please wait until that is complete. (Service: AWSAppSync; Status Code: 409; Error Code: ConcurrentModificationException; Request ID: 871ff324-f5d5-43aa-82d3-87968cb75145)


Stepsequencer demo: set note values for bass track

After fixing note values, add note input fields for bass sounds. See #32, #33.

Done


content of page overflows bottom browser window

please see:

not using any setting for footer in the config:
hide_config: true
compact_mode: true
button_text:
  options: >-
    {{ hours24 }}:{{ minutesLZ }} - {{state_attr('weather.home_darksky','temperature') }}°

show_tabs: >
  {% if not is_state('input_select.mode','Developer') %}0 to 21, 26 to 28
  {% else %} 0 to 28
  {% endif %}

Hassio Rpi4, 103.0 CH version 1.0.4

No errors?

no really sorry, checked home-assistant.log and inspector
dont have a debug setting on the custom-header though, should I set it to something?

nope, probably just no error. Will investigate, but havent been able to recreate it yet.

I now see it on IOS also, will upload from the device:

Can you share your resources section, want to see what all custom add-ons you've got and if custom header doesn't play nice with one.

sure:
# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/dnguyen800/air-visual-card
- url: /local/lovelace/resources/air-visual-card.js?v=0.9.7
  type: js

# https://github.com/thomasloven/lovelace-auto-entities
- url: /local/lovelace/resources/auto-entities.js?v=1.9
  type: module

# https://github.com/custom-cards/bar-card
- url: /local/lovelace/resources/bar-card.js?v=1.0.0
  type: js

# https://github.com/custom-cards/bignumber-card
- url: /local/lovelace/resources/bignumber-card.js?v=0.0.2
  type: js

# https://github.com/custom-cards/button-card
- url: /local/lovelace/resources/button-card.js?v=3.0.0
  type: module

# https://github.com/thomasloven/lovelace-card-mod
- url: /local/lovelace/resources/card-mod.js?v=11
  type: module

# https://github.com/custom-cards/decluttering-card
- url: /local/lovelace/resources/decluttering-card.js?v=0.2.0
  type: module

# https://github.com/thomasloven/lovelace-card-tools
- url: /local/lovelace/resources/card-tools.js?v=0.4.2
  type: js

#https://github.com/maykar/compact-custom-header/wiki/Installation
#- url: /local/lovelace/resources/compact-custom-header/compact-custom-header.js?v=1.4.8
#  type: module

# https://maykar.github.io/custom-header/#intro/intro
- url: /local/lovelace/resources/custom-header.js?v=1.0.5
  type: module

# NOT USED https://github.com/custom-cards/config-template-card
- url: /local/lovelace/resources/config-template-card.js?v=1.0.1
  type: module

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/iammexx/home-assistant-config/tree/master/ui/darksky
- url: /local/lovelace/resources/dark-sky-weather-card.js?v=7.1.6
  type: module

# https://github.com/custom-cards/entity-attributes-card
- url: /local/lovelace/resources/entity-attributes-card.js?v=0.1.2
  type: js

# https://github.com/thomasloven/lovelace-fold-entity-row
- url: /local/lovelace/resources/fold-entity-row.js?v=f17ac20
  type: js

# Ha Cards : https://www.home-assistant.io/lovelace/gauge
# https://github.com/custom-cards/gauge-card
- url: /local/lovelace/resources/gauge-card.js?v=0.2.02
  type: js

# https://github.com/custom-cards/group-card
- url: /local/lovelace/resources/group-card.js?v=0.0.3
  type: js

# https://github.com/custom-cards/list-card
- url: /local/lovelace/resources/list-card.js?v=0.1.1
  type: js

#- url: /local/lovelace/resources/useful-markdown-card.js?v=dfc268
#  type: js

# DEPRECATED https://github.com/thomasloven/lovelace-markdown-mod
#- url: /local/lovelace/resources/markdown-mod.js?v=1.1
#  type: module

# https://github.com/kalkih/mini-graph-card
- url: /local/lovelace/resources/mini-graph-card-bundle.js?v=0.8.2
  type: module

# https://github.com/kalkih/mini-media-player
- url: /local/lovelace/resources/mini-media-player-bundle.js?v=1.3.0
  type: js

# https://github.com/custom-cards/monster-card
- url: /local/lovelace/resources/monster-card.js?v=0.2.4
  type: js

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/gurbyz/power-wheel-card
- url: /local/lovelace/resources/power-wheel-card.js?v=0.0.9
  type: module

# https://github.com/custom-cards/secondaryinfo-entity-row
- url: /local/lovelace/resources/secondaryinfo-entity-row.js?v=0.31
  type: module

# https://github.com/kalkih/simple-weather-card
- url: /local/lovelace/resources/simple-weather-card-bundle.js?v=0.5.0
  type: module

# https://github.com/thomasloven/lovelace-slider-entity-row
- url: /local/lovelace/resources/slider-entity-row.js?v=2c430ce
  type: module

# https://github.com/rodrigofragadf/lovelace-cards/tree/master/tiles-card
- url: /local/lovelace/resources/tiles-card.js?v=0.2
  type: js

# https://github.com/custom-cards/vertical-stack-in-card
- url: /local/lovelace/resources/vertical-stack-in-card.js?v=0.2
  type: js

# https://github.com/royto/waze-card
- url: /local/lovelace/resources/waze-card.js?v=1.3.0
  type: js

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/sgttrs/lovelace-weather-card-chart
- url: /local/lovelace/resources/weather-card-chart.js?v=0.3.1
  type: module

I can confirm I have the same issue:

Here's a copy of my resources as well if it is helpful:
resources:
  - url: /community_plugin/custom-header/custom-header.js
    type: module
  - type: module
    url: /customcards/github/custom-cards/tracker-card.js?track=true
  - type: module
    url: /community_plugin/swipe-card/swipe-card.js
  - type: js
    url: /community_plugin/fan-control-entity-row/fan-control-entity-row.js
  - url: /community_plugin/mini-graph-card/mini-graph-card-bundle.js
    type: module
  - url: /community_plugin/lovelace-card-mod/card-mod.js?
    type: module
  - url: /community_plugin/weather-card/weather-card.js
    type: module
  - url: /community_plugin/lovelace-auto-entities/auto-entities.js
    type: module
  - url: /community_plugin/lovelace-card-tools/card-tools.js
    type: module
  - url: /community_plugin/button-toolbar/button-toolbar.js
    type: module

@ThePicklenat0r  what does your config look like for custom header?

updated the list of custom-cards used, deleted a few in the resource list, no change.
do note that you need a theme with a dark background to notice the effect. Change to a light one few moments ago and thought version 1.06 had solved it.
Then my night theme kicked in, and the overflow was visible again...
# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/dnguyen800/air-visual-card
- url: /local/lovelace/resources/air-visual-card.js?v=0.9.7
  type: js

# https://github.com/thomasloven/lovelace-auto-entities
- url: /local/lovelace/resources/auto-entities.js?v=1.9
  type: module

# https://github.com/custom-cards/bar-card
- url: /local/lovelace/resources/bar-card.js?v=1.6.2
  type: js

# https://github.com/custom-cards/bignumber-card
- url: /local/lovelace/resources/bignumber-card.js?v=0.0.2
  type: js

# https://github.com/custom-cards/button-card
- url: /local/lovelace/resources/button-card.js?v=3.0.0
  type: module

# https://github.com/thomasloven/lovelace-card-mod
- url: /local/lovelace/resources/card-mod.js?v=11
  type: module

# https://github.com/thomasloven/lovelace-card-tools
- url: /local/lovelace/resources/card-tools.js?v=2.3
  type: js

# NOT USED https://github.com/custom-cards/config-template-card
#- url: /local/lovelace/resources/config-template-card.js?v=1.1.1
#  type: module

# https://maykar.github.io/custom-header/#intro/intro
- url: /local/lovelace/resources/custom-header.js?v=1.0.6
  type: module

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/iammexx/home-assistant-config/tree/master/ui/darksky
- url: /local/lovelace/resources/dark-sky-weather-card.js?v=7.1.6
  type: module

# https://github.com/custom-cards/decluttering-card
- url: /local/lovelace/resources/decluttering-card.js?v=0.2.0
  type: module

# https://github.com/custom-cards/entity-attributes-card
- url: /local/lovelace/resources/entity-attributes-card.js?v=0.1.2
  type: js

# https://github.com/thomasloven/lovelace-fold-entity-row
- url: /local/lovelace/resources/fold-entity-row.js?v=a00f7c9
  type: js

# Ha Cards : https://www.home-assistant.io/lovelace/gauge
# https://github.com/custom-cards/gauge-card
- url: /local/lovelace/resources/gauge-card.js?v=0.2.2
  type: js

# https://github.com/custom-cards/group-card
- url: /local/lovelace/resources/group-card.js?v=0.0.3
  type: js

# NOT USED https://github.com/thomasloven/lovelace-layout-card
#- url: /local/lovelace/resources/layout-card.js?v=2.3
#  type: module

# https://github.com/custom-cards/list-card
- url: /local/lovelace/resources/list-card.js?v=0.1.1
  type: js

# NOT USED  https://github.com/gadgetchnnel/lovelace-card-templater
#- url: local/path/to/file/lovelace-card-templater.js?v=0.0.6
#  type: js

# https://github.com/kalkih/mini-graph-card
- url: /local/lovelace/resources/mini-graph-card-bundle.js?v=0.9.0
  type: module

# https://github.com/kalkih/mini-media-player
- url: /local/lovelace/resources/mini-media-player-bundle.js?v=1.5.1
  type: js

# https://github.com/custom-cards/monster-card
- url: /local/lovelace/resources/monster-card.js?v=0.2.5
  type: js

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/gurbyz/power-wheel-card
- url: /local/lovelace/resources/power-wheel-card.js?v=0.0.9
  type: module

# https://github.com/custom-cards/secondaryinfo-entity-row
- url: /local/lovelace/resources/secondaryinfo-entity-row.js?v=0.3.1
  type: module

# https://github.com/kalkih/simple-weather-card
- url: /local/lovelace/resources/simple-weather-card-bundle.js?v=0.5.0
  type: module

# https://github.com/thomasloven/lovelace-slider-entity-row
- url: /local/lovelace/resources/slider-entity-row.js?v=f9064d6
  type: module

# NOT USED https://github.com/rodrigofragadf/lovelace-cards/tree/master/tiles-card
#- url: /local/lovelace/resources/tiles-card.js?v=0.2
#  type: js

# https://github.com/custom-cards/vertical-stack-in-card
- url: /local/lovelace/resources/vertical-stack-in-card.js?v=0.2.1
  type: js

# https://github.com/royto/waze-card
- url: /local/lovelace/resources/waze-card.js?v=1.3.0
  type: js

# TAKE CARE!! MANUAL CHANGES IN SOURCECODE
# https://github.com/sgttrs/lovelace-weather-card-chart
- url: /local/lovelace/resources/weather-card-chart.js?v=0.3.1
  type: module

@maykar custom header config:
custom_header:
  hide_tabs: '5'
  hide_unused: true
  hide_config: true
  hide_help: true
  header_text: 'Home'

So the only custom resource you both have that I would think might cause the conflict is card-mod. Would you both try temporarily removing card-mod from your resources and seeing if the issue persists?

will do!
just to be sure, I tested it without CH, (could have been there before unnoticed, caused by HA 103.0) after all. Is not the case though. Without CH all is playing nicely:

re-entering CH immediately shows:

now I'll take out Card-mod:

as is mentioned by @aFFekopp on the community: having a background makes difference:

I believe I've found the issue, but can you confirm that this only happens in compact_mode?

@maykar I found similar results to @Mariusthvdb when disabling card-mod. I tried specifying compact_mode: false and it doesn't seem to make a difference.

unfortunately no, taking out compact_mode, and having the config default to false doesnt solve the issue either.

This is actually a feature. Couple of places I've explained it in more detail:
https://github.com/maykar/custom-header/issues/41
https://community.home-assistant.io/t/custom-header/155399/30

oops, my pardon ;-)
it's just that it looks somewhat differently here:

If you hide tab chevrons you'll see one more icon in there. There's probably something I could do with the smoothness of the animation as well, but I imagine it's rare that anyone scrolls that slowly :)

If you hide tab chevrons you'll see one more icon in there. There's probably something I could do with the smoothness of the animation as well, but I imagine it's rare that anyone scrolls that slowly :)

haha, maybe, was trying to keep up with your speed ;-))
but, in all honesty, compact mode feels much tidier and, as I mentioned earlier, more 'native'. The header and the rest of the screen are much tighter.

Is this still an issue on the latest release?

no!
as confirmed on the community https://community.home-assistant.io/t/custom-header/155399/148?u=mariusthvdb
thanks for the quick fix!

Saw the bit about the tab indicator, but totally missed that this was fixed. Thanks!

Fixed here also!


function any_value doesn't support array

StarRocks > select id,any_value(value) from anyvalue;
ERROR 1064 (HY000): Getting analyzing error from line 1, column 10 to line 1, column 25. Detail message: No matching function with signature: any_value(array<map<varchar(65533),int(11)>>).

StarRocks > desc anyvalue;
+-------+--------------------------------+------+-------+---------+-------+
| Field | Type                           | Null | Key   | Default | Extra |
+-------+--------------------------------+------+-------+---------+-------+
| id    | int                            | YES  | true  | NULL    |       |
| value | array<map<varchar(65533),int>> | YES  | false | NULL    |       |
+-------+--------------------------------+------+-------+---------+-------+
2 rows in set (0.00 sec)

StarRocks > show frontends;
+---------------------------------+--------------+-------------+----------+-----------+---------+--------+-----------+------+-------+-------------------+---------------------+----------+--------+---------------------+-----------------------+
| Name                            | IP           | EditLogPort | HttpPort | QueryPort | RpcPort | Role   | ClusterId | Join | Alive | ReplayedJournalId | LastHeartbeat       | IsHelper | ErrMsg | StartTime           | Version               |
+---------------------------------+--------------+-------------+----------+-----------+---------+--------+-----------+------+-------+-------------------+---------------------+----------+--------+---------------------+-----------------------+
| ddf52d2f144f_9010_1690797268042 | ddf52d2f144f | 9010        | 8030     | 9030      | 9020    | LEADER | 666604267 | true | true  | 94895             | 2023-08-04 01:44:48 | true     |        | 2023-07-31 09:54:36 | 3.1.0-rc01-64ca37e863 |
+---------------------------------+--------------+-------------+----------+-----------+---------+--------+-----------+------+-------+-------------------+---------------------+----------+--------+---------------------+-----------------------+
1 row in set (0.01 sec)
``

Just in case it wasn't clear, this problem is not just for arrays of maps, but for any array.  And not just this function, but many other aggregate functions (like max_by, that could be used in place of any_value if it was implemented).
Use-cases include rollup tables or materialized views where columns are arrays, but the contents don't change from row to row, and I can't figure out another way to solve this.
Easy steps to recreate this:
create table test_table (
 `id` int NOT NULL,
 `batch` int NOT NULL,
 `vals` ARRAY<int> NOT NULL
 ) ENGINE=OLAP
PRIMARY KEY(`id`)
DISTRIBUTED BY HASH(`id`);

insert into test_table values (1,1,[2,3]);
insert into test_table values (2,1,[2,3]);

Test Case 1 (any_value)
select batch, any_value(vals) from test_table group by batch;

Expected:
# batch, any_value(vals)
'1', '[2,3]'

Actual:
Error Code: 1064. No matching function with signature: any_value(ARRAY<int(11)>).

Test Case 2 (max_by)
select batch, max_by(vals,id) from test_table group by batch;

Expected:
# batch, max_by(vals,id)
'1', '[2,3]'

Actual:
Error Code: 1064. No matching function with signature: max_by(ARRAY<int(11)>, int(11)).

An update for anyone finding this: as of at least 3.2.3 (and perhaps sooner) ANY_VALUE does support arrays now (my Test Case 1 above).  MAX_BY and MIN_BY unfortunately do not yet.


Timeline UX Proposals

### Browsing activities and resources, customizing rows and layers
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/593
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1138
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1168
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1139

### Improve activity display for large plans
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1170
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/459
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1140
- [ ] https://github.com/NASA-AMMOS/aerie-ui/issues/1169

Addresses related problems

https://github.com/NASA-AMMOS/aerie-ui/issues/600
https://github.com/NASA-AMMOS/aerie-ui/issues/669
https://github.com/NASA-AMMOS/aerie-ui/issues/1004
https://github.com/NASA-AMMOS/aerie-ui/issues/634

Related improvements that aren't directly addressed

Add ability to pin rows for better comparison https://github.com/NASA-AMMOS/aerie-ui/issues/1103
https://github.com/NASA-AMMOS/aerie-ui/issues/908
https://github.com/NASA-AMMOS/aerie-ui/issues/911

Design assets

Figjam overview of research and synthesis https://www.figma.com/file/W5Y00u6RWFib7FLi6vtzFn/Aerie-Timeline-Filtering-%2B-Customization?type=whiteboard&node-id=0-1&t=3aGK3xuKte8hGkAA-11
Figma file with UI directions (needs cleanup): https://www.figma.com/file/gsWLcy9UuqSQVqbyHf4Lw6/AERIE-Filtering%2C-Activity-UX%2C-Timeline-Density?type=design&node-id=552-127946&mode=design&t=ktcNVYRvwpyNyk0c-11

Notes from wip dev cc @AaronPlave

How do we label groups? How do we manage trees of stuff?
What happens when theres a big flat bottom list?
Zoom to button? Jump forward or back button. Cursor to highlight?
Modifier to recursively expand node? Hide all others / solo mode? Add as new row?
What are the right defaults?
How do we handle color? Can we render spans and directives with different hue / saturation/ opacity? Is it important to disambiguate spans vs directives?
Waterfall vs packed modes?
What is the click / hover interaction?
Can I transfer a filter to the table in the bottom?
Show number of activities at top level?
Ability to pin row?

Notes from feedback with brad. 04/15/24
Click interactions:

What happens when you click a span? can you see directive info?
Seeing directive and span together is valuable. Could be a toggle to prevent the need to to mix types together.

Feedback

Could be valuable to have the toggle for grouped vs not grouped in the left panel rather than just in the row details. Could be useful on a per hierarchy (group) basis as well. Overlap + auto pack on a per group. same view as default activity that respects labels.
How can you disambiguate overlapping lines? Can you add transparency to the colors? Would be useful when lines overlap, but could also be helpful with building complex rows. Transparency could also be combined with dashes? Different line styles?

Would like to be able to search resources and activity types together, then add those based on their data type. Default should probably be line for a new layer.

Minor:

Row highlight being blue might add visual noise.

Questions:
How do we handle the mix of y axis legends and collapsable hierarchy?

Notes from @ewferg:

Primarily interested in two modes but more so the first:

1: Current aerie packing mode but with the updated simple boxes and directive+span combo with the ability to turn labels on/off/auto. Useful primarily for smaller sets of activities, need to be able to filter by type on both directives and spans. RAVEN has the ability to show the immediate or all children of a particular directive on new rows, consider how we might replicate this behavior or support the goal in some other way.
2: hierarchy mode

Would be nice to be able to change the icon style for directives on the timeline from a box/line to a dot to better represent "events"
Interested in drawing areas under line charts

Would be good to support a simple waterfall mode in this design too.

V1 release ideas

[ ] Default to group by type.

[ ] Control menu: clean up icons and naming. Mirrored in layer settings? Add labels?

[ ] How to handle iconography? Folder icons to show groups? Do we need to show if its a folder of directives, or folder of spans?

[ ] Padding and icons for stacked layer types.

[ ] Guardrails

[ ] Show badge for "too many activities to render — zoom in"
[ ] Pagination for grouped mode. "Show more?" "Bin 0-49... 50-99..."

[ ] Clean up

Stretch ideas:

[ ] Repack after drag as opposed to during drag

[ ] Bring tooltips back

Open questions

[ ] How do we handle directive + span combination. Click interaction? Can we punt the combo view? Link back to parent directive? Link from directive to spans?
[ ] Filter affects both spans and directives. Is that a good for the first cut? An improvement? Previously spans weren't filtered.
[ ] Can directives be dragged to move? What happens when you drag a combo span+directive. Do we need to highlight these stale spans

Future timeline considerations
[ ] Think through grouping and filtering. Can you group by parameter or filter by parameter?
[ ] Is there sub grouping? How would that work? How do we apply groups? Do you group top group then have a default grouping for sub items? First by scheduling goal, then by type?
[ ] How to improve stacked layer types
[ ] How to handle colors for directives vs spans. Update default colors for directives and spans? Should color picker change?
[ ] Zoom to button? Jump forward or back button. Cursor to highlight?
[ ] Modifier to recursively expand node? Hide all others / solo mode? Add as new row?
Future supporting panel considerations
[ ] Mixing span and directive info in details
[ ] Layer filtering and selection. Filtering by parameters, etc

Notes from catch up with Steve to try and iron out some last open issues:


Add acknowledge indicator for processing Slack messages

Overview
With the current release, we will introduce some commands that may take longer (e.g. flux install/chat gpt reponse/etc).
We should user know that we received the request and we are processing it.
Acceptance Criteria

[x] For each message that Botkube starts processing, add “:eyes:” as “ack” and replace with “:heavy_check_mark: ” once the message is sent

[x] Cover only Socket and Cloud slack platforms

[x] Update documentation for Socket Slack about new scope (reactions:write)

[x] Update Cloud Slack app and add reactions:write

[ ] [UX] Add a note to the UI for already existing cloud slack deployments to “re-install” Bot in their workspace to get the token refreshed with a new scope.

[ ] Mattermost/Discord/Teams are out of scope - double check @brampling

Reason
We don’t have an option to stream executor response yet, so the user doesn’t know whether the command is processed or not.
UX Design
https://www.figma.com/file/QNcHtrYHsRdjOhTfClMmmE/Botkube-SaaS?type=design&node-id=2278-27459&mode=design&t=mhZm0mx5aaSsPdVk-4
Demo
https://github.com/kubeshop/botkube/assets/17568639/0992c7bf-30cf-4cb7-9403-8fc43aee4207

I spent ~0.5MD more to establish designs and implement them in a new way. We need to pay attention to have designs before estimations :)


Exception System.MissingMethodException

Hey Egor,
i got this error when I want to use the toast.
Android 4.4/5.0
Xamarin Forms <IP_ADDRESS>41
Toasts.Forms.Plugin <IP_ADDRESS>
public static void Error(string text, string description = null, int duration = 3)
{
    DependencyService.Get<IToastNotificator>().Notify(
       ToastNotificationType.Error,
       text,
       description,
       TimeSpan.FromSeconds(duration)
    );
}

{System.MissingMethodException: Default constructor not found for type Toasts.Forms.Plugin.Droid.ToastNotificatorImplementation
at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
at Xamarin.Forms.DependencyService.Get[IToastNotificator] (DependencyFetchTarget fetchTarget) [0x00000] in <filename unknown>:0
at Foo.Common.Views.Toast.Error (System.String text, System.String description, Int32 duration) [0x00002] in /Users/armintelker/git/universal-app/Foo/Common/Views/Toast.cs:21
at Foo.Green.Search.Pages.ScannerSearchPage+<searchBarcode>c__async0.MoveNext () [0x000d9] in /Users/armintelker/git/universal-app/Foo/Green/Search/Pages/ScannerSearchPage.xaml.cs:111 }
System.MissingMethodException

Do you have maybe a idea?
Thanks :)

@armintelker, looks like the linker removed that constructor. Do you use "Linking: Sdk and User Assemblies"? Add "new ToastNotificatorImplementation()" to your LinkerPleaseInclude.cs as a temporarily workaround.

Can not reproduce. If it is still occurring, please comment with some more information and I will reopen the issue.

I'm experiencing this on Nexus 7, Android 4.1.1 with XForms 2.0.1 and Toasts.Forms.Plugin 2.0.0. Fixed using LinkerPleaseInclude with "new ToastNotificatorImplementation()" as per @armintelker .

In Linker if I select 'SDK and user assemblies' I'm getting this error.

@trevoriancox @EgorBo Could you please elaborate on this? I am experiencing this issue on a Xamarin.Forms PCL project, using Sdk and user assemblies for my android linker options.
Am I supposed to create a class named LinkerPleaseInclude on the android project? Is "new ToastNotificatorImplementation() supposed to go inside the constructor of the LinkerPleaseInclude class like this?:
namespace RCS0500Mobile.Droid {     [Android.Runtime.Preserve(AllMembers = true)]     class LinkerPleaseInclude     {         public LinkerPleaseInclude()         {             new ToastNotificatorImplementation();         }     } }

Any solution?


RTDS should be fully warmed before ClusterManager initialization

Today, RTDS warms at the same time as the ClusterManager, on the server InitManager. There may be resources in the first CDS response that require RTDS override. In eventually consistent systems, this makes initialization non-deterministic when override is intended. We should probably add another server init warming stage where we only start CDS after RTDS has succeeded/failed/timed out.
CC @alyssawilk @mattklein123 @rfaulk

/cc stevenzzzz


Remove k8sClusterManagement.py

Coverage decreased (-8.08%) to 51.347% when pulling 5baca997c74a352a32526080968d6606382b694c on yuye/paictl-kubectl-prepare into fbf5acac5752825328b0d4eb7c942bbd69a1530e on master.


[Bug] https://doris.apache.org cpu usage is very high

Search before asking

[X] I had searched in the issues and found no similar issues.

Version
doris version unrelated
Chrome Version 130.0.6723.59 (Official Build) (arm64)
MacOS version 15.0 (24A335)
What's Wrong?
https://doris.apache.org consumes unusually high CPU

What You Expected?
normal cpu consumption
How to Reproduce?
open https://doris.apache.org and stay for minutes
Anything Else?
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@freejool The accordion component keeps the browser rendering process working, we will fix it, thanks for your feedback!


[WIP] Project init

@sethvargo @bharathkkb could you please take a look once more?
I have updated the action. So, for now we do not generate ssh keys and do not update any project metadata. User should set public and private key as input params and we save it to the folder and then delete this folder in post-action. Basic readme with examples has been added.
Also, IAP proxy is mandatory for now.
If the logic is OK, I can start to write the tests and expand the readme with full data.