Universal SQL: Premature close mysql when building source

Steps To Reproduce
Steps we can take to reproduce the issue you're seeing. Sample data is helpful.
Environment

Node version (v21.4.0):
npm version (10.2.4):
OS: Docker
Browser: Chrome
Database: PostgreSQL
Packages version (updating to the newest on 2023-12-06):

    "@evidence-dev/bigquery": "usql",
    "@evidence-dev/core-components": "usql",
    "@evidence-dev/csv": "usql",
    "@evidence-dev/evidence": "usql",
    "@evidence-dev/faker-datasource": "usql",
    "@evidence-dev/mysql": "usql",
    "@evidence-dev/postgres": "usql",
    "@evidence-dev/sqlite": "usql",
    "@evidence-dev/usql-datatable": "1.0.2",

Expected Behavior
Build sources without error, or at least fail build - now it's silently skips that sources.
Actual Behaviour
I'm getting Premature close error when running evidence sources
# npm run build:sources

><EMAIL_ADDRESS>build:sources
> evidence sources --debug

(node:109) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Processing prd_mysql_XXX
  XXX1 ✖ Premature close
  XXX2 ✖ Premature close
  XXX3 ✖ Premature close
  XXX4 ✖ Premature close
  XXX5 ✖ Parquet error: Incorrect number of rows, expected 16 != 12 rows
  XXX6 ✖ Premature close
  XXX7 ✖ Premature close
  XXX8 ✖ Premature close
  XXX9 ✖ Parquet error: Incorrect number of rows, expected 10 != 8 rows

Workarounds
Nope

What is interesting is that LIMIT 17 is somehow magic number, when changing to 16 it's working correctly 🤷

Yeah that sounds bizzare, thank you for the detailed repro steps, we'll take a look at this!

I tested it with newest version after usql release, on new project generated by npx degit evidence-dev/template temporary, still failing with the same result.

Thanks Kamil, we'll take another look here.

Faced the same issue, removing the emit close event worked temporarily

@csjh Check in other connectors as well for any that don't handle the async iterable

@ItsMeBrianD I tested the newest version of<EMAIL_ADDRESS>and<EMAIL_ADDRESS>and I'm still getting the same error:
Processing prd_mysql_nyaprisjakt
  active_shops ✖ Premature close
  all_shops_with_additional_info ✖ Premature close
  foretag_market_agent_type ✖ Premature close
  fr_active_shops ✖ Premature close
  fr_group_by_type_and_fail_status ✖ Premature close
  legacy_agents_delimiter ✖ Premature close
  legacy_agents_xml_node ✖ Premature close
  legacy_feeds_parser_info ✖ Premature close
  sample_shops ✔ Finished. 10 rows

Faced the same issue, removing the emit close event worked temporarily

Worked for me too. Commenting out line 282 in node_modules/mysql2/lib/commands/query.js
// stream.emit('close'); // notify readers that query has completed
or replace the line with the following (see: https://github.com/sidorares/node-mysql2/commit/af4714845603f70e3c1ef635f6c0750ff1987a9e)
setImmediate(() => stream.emit('close')); // notify readers that query has completed
e.g.
sed -i "s/stream.emit('close');/setImmediate(() => stream.emit('close'));/g" node_modules/mysql2/lib/commands/query.js
Or update your node modules. Yesterday  there was a new release of mysql2: https://github.com/sidorares/node-mysql2/compare/v3.7.1...v3.8.0

@mario-toursprung-com thank you, I can confirm that adding
    "mysql2": "3.8.0"

To the overrides section in package.json seem to work.


⚠ Bofrost.be has degraded performance

In c15f9c4, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1624 ms

Resolved: Bofrost.be performance has improved in 61fb148.


Save personal datatables config in session

It might be useful, if my personal settings of the datatables, e. g. the table of all participants, i. e. my sorting and filtering may stay even if I reload the page. For this, the information has to saved somewhere, may be in the session.

In 2.0 we use no longer datatables... Closed


Zoom on a GIF/picture with mouse click

Why wontfix :( ?
It's really hard to read the code in some images, we have to drag & drop the image in a browser window to be able to see it in the real size.

I have to agree on this. I think we should have some feature to show a bigger version of an image.

I also agree, here is an example I just saw:


Risk score return value

Hi,
I'd like to ask if the current logic for returning risk score values is going to stay that way, or if there are any plans to change. I noticed that if the prompt is evaluated as valid, score is set to zero, which I found misleading. I saw this in the BanTopics scanner, but it's true for multiple scanners.

Going to bump this we are encountering the same issue with version 3.15.
def scan(self, prompt: str) -> tuple[str, bool, float]:
        if prompt.strip() == "":
            return prompt, True, 0.0

        output_model = self._classifier(prompt, self._topics, multi_label=False)
        label_score = dict(zip(output_model["labels"], output_model["scores"]))

        max_score = round(max(output_model["scores"]) if output_model["scores"] else 0, 2)
        if max_score > self._threshold:
            LOGGER.warning(
                "Topics detected for the prompt",
                scores=label_score,
            )

            return prompt, False, calculate_risk_score(max_score, self._threshold)

        LOGGER.debug(
            "No banned topics detected",
            scores=label_score,
        )

        return prompt, True, 0.0```

This method will always returns 0.0 which makes it harder for us to know how close certain topics where to being above the threshold (in our usecase this would be extremely helpful).

I think it would be a fairly straightforward change to return the `calculated_risk_score` on the last line instead of just `0.0`


Private Link Servcie Application Gateway Support

[Enter feedback here]
Do you have feature enhancement on your roadmap, besides standard load balancer, also support private link service which runs on Application gateway?
Thanks

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

ID: fb4b8145-27ae-8817-6d85-969aa85e601d
Version Independent ID: 00f897cd-5c20-cb3b-9c17-5f75eddd1715
Content: What is Azure Private Link service?
Content Source: articles/private-link/private-link-service-overview.md
Service: private-link
GitHub Login: @sumeetmittal
Microsoft Alias: sumi

https://docs.microsoft.com/en-us/cli/azure/network/application-gateway/private-link?view=azure-cli-latest

Replied on the main thread.
From: RonnieQuan<EMAIL_ADDRESS>Sent: Tuesday, September 15, 2020 12:57 PM
To: MicrosoftDocs/azure-docs<EMAIL_ADDRESS>Cc: Sumeet Mittal<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: [MicrosoftDocs/azure-docs] Private Link Servcie Application Gateway Support (#62690)
[Enter feedback here]
Do you have feature enhancement on your roadmap, besides standard load balancer, also support private link service which runs on Application gateway?
Thanks

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

ID: fb4b8145-27ae-8817-6d85-969aa85e601d
Version Independent ID: 00f897cd-5c20-cb3b-9c17-5f75eddd1715
Content: What is Azure Private Link service?https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fazure%2Fprivate-link%2Fprivate-link-service-overview&data=02|01|Sumeet.Mittal%40microsoft.com|c7adbc41a3d34880ab1908d859b18e41|72f988bf86f141af91ab2d7cd011db47|1|0|637357966481413616&sdata=6fd8FXv%2FN4csnw3zuEwAnvifZGM2ktN2Qrw5Yb77sk4%3D&reserved=0
Content Source: articles/private-link/private-link-service-overview.mdhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fblob%2Fmaster%2Farticles%2Fprivate-link%2Fprivate-link-service-overview.md&data=02|01|Sumeet.Mittal%40microsoft.com|c7adbc41a3d34880ab1908d859b18e41|72f988bf86f141af91ab2d7cd011db47|1|0|637357966481423614&sdata=l7y1vRuhfu4ZcH7YDmMLDIFLQrvpgdKgJmmaXIT%2F%2FzY%3D&reserved=0
Service: private-link
GitHub Login: @sumeetmittalhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fsumeetmittal&data=02|01|Sumeet.Mittal%40microsoft.com|c7adbc41a3d34880ab1908d859b18e41|72f988bf86f141af91ab2d7cd011db47|1|0|637357966481433607&sdata=0zPP2a6gj5lIflaolYIDrwNHsNA%2B%2BEjxc4vy2lC8gXM%3D&reserved=0
Microsoft Alias: sumi

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fazure-docs%2Fissues%2F62690&data=02|01|Sumeet.Mittal%40microsoft.com|c7adbc41a3d34880ab1908d859b18e41|72f988bf86f141af91ab2d7cd011db47|1|0|637357966481433607&sdata=qpEVEYN3vF%2FSHMoR2grsSs45n7mRc3vcyPnyMjhBuVM%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAFSOVH53G35AHGLSJPXQ6OLSF7BKBANCNFSM4RNVFJQA&data=02|01|Sumeet.Mittal%40microsoft.com|c7adbc41a3d34880ab1908d859b18e41|72f988bf86f141af91ab2d7cd011db47|1|0|637357966481443600&sdata=L7%2FfABNJinbSs3y1mN3kK08AICccHJt7DwDUA3OGsVc%3D&reserved=0.

@RonnieQuan Please let me know if you need any additional info. We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.

Is there a way to do this cross tenant?

Is there a way to do this cross tenant?


Update spec with future work and missing details

Reopening this issue because the related commit was temporarily lost while moving to issue/pr process.


Add an example on how to grant permissions to SP

Added the required AZ snippet to grant Kubernetes SP access to the Resource group that contains the IP.

@omerlh : Thanks for your contribution! The author, @iainfoulds, has been notified to review your proposed change.


Port STS and dependency bumps to release/1.49

This PR merges all recent changes from main to release branch, which is basically just the STS bumps to pickup fixes made in that component.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
30722

Relevant Lines:
68884

💛  - Coveralls


Build does not work

You README is not up to date. I can't get this project up and running with the instruction from the README.
npm run build is not present. If I use the commands from an earlies (closed) ticket it does not work either.

I see npm run build in example/package.json.
https://github.com/TypeFox/monaco-languageclient/blob/beca1e697bef460a721c2889d3b4afd5369b7ea7/example/package.json#L31-L40
Which folder are you in, @mariomurrent-softwaresolutions?

Yes, but the build fails with:
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>compile: tsc
npm ERR! Exit status 2

Could you post all commands which you run as well env information as yarn, npm, node, python versions?

I run npm install. I had to edit the cp command to copy on windows. Python version is 2.7, npm 5.6.0 node version is 8.11.2

I has similar problem, I has run npm i && npm run build in root, example and examples/browser, but only in root it succeeded.
# ~/projects/monaco-languageclient/example on git:master
$ npm i

><EMAIL_ADDRESS>prepare /Users/lzfxxx/projects/monaco-languageclient/example
> npm run clean && npm run build

><EMAIL_ADDRESS>clean /Users/lzfxxx/projects/monaco-languageclient/example
> rimraf lib

><EMAIL_ADDRESS>build /Users/lzfxxx/projects/monaco-languageclient/example
> npm run compile && webpack && npm run copy

><EMAIL_ADDRESS>compile /Users/lzfxxx/projects/monaco-languageclient/example
> tsc

src/client.ts(7,5): error TS2305: Module '"/Users/lzfxxx/projects/monaco-languageclient/lib/index"' has no exported member 'BaseLanguageClient'.
src/client.ts(7,25): error TS2305: Module '"/Users/lzfxxx/projects/monaco-languageclient/lib/index"' has no exported member 'CloseAction'.
src/client.ts(7,38): error TS2305: Module '"/Users/lzfxxx/projects/monaco-languageclient/lib/index"' has no exported member 'ErrorAction'.
src/client.ts(8,27): error TS2305: Module '"/Users/lzfxxx/projects/monaco-languageclient/lib/index"' has no exported member 'createConnection'.
src/json-server.ts(14,115): error TS2307: Cannot find module 'vscode-base-languageclient/lib/protocol'.
../lib/commands.d.ts(1,38): error TS2307: Cannot find module 'vscode-base-languageclient/lib/services'.
../lib/console-window.d.ts(1,48): error TS2307: Cannot find module 'vscode-base-languageclient/lib/protocol'.
../lib/console-window.d.ts(2,39): error TS2307: Cannot find module 'vscode-base-languageclient/lib/services'.
../lib/converter.d.ts(2,596): error TS2307: Cannot find module 'vscode-base-languageclient/lib/base'.
../lib/disposable.d.ts(1,28): error TS2307: Cannot find module 'vscode-base-languageclient/lib/services'.
../lib/index.d.ts(8,15): error TS2307: Cannot find module 'vscode-base-languageclient/lib/base'.
../lib/index.d.ts(9,15): error TS2307: Cannot find module 'vscode-base-languageclient/lib/connection'.
../lib/languages.d.ts(2,460): error TS2307: Cannot find module 'vscode-base-languageclient/lib/services'.
../lib/services.d.ts(1,36): error TS2307: Cannot find module 'vscode-base-languageclient/lib/base'.
../lib/workspace.d.ts(3,113): error TS2307: Cannot find module 'vscode-base-languageclient/lib/services'.
../lib/workspace.d.ts(4,31): error TS2307: Cannot find module 'vscode-base-languageclient/lib/base'.
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>compile: `tsc`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>compile script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/lzfxxx/.npm/_logs/2018-07-05T04_25_45_982Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>build: `npm run compile && webpack && npm run copy`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/lzfxxx/.npm/_logs/2018-07-05T04_25_46_013Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR<EMAIL_ADDRESS>prepare: `npm run clean && npm run build`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>prepare script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR!      /Users/lzfxxx/.npm/_logs/2018-07-05T04_25_46_047Z-debug.log

Can you try running npm install in both the main folder and the example folder? Then run npm run build and npm start or npm run start:ext
That's what worked for me.

@mariomurrent-softwaresolutions please reopen if running npm install in all packages did not help


Updated GCP SecretManager BulkGetSecret #590

Description
BulkGetSecret method now returns a map[string]map[string]string
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #590
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[x] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

@cmendible can you kindly update dapr/dapr with the latest version of components contrib? currently we are restricted from importing the latest version because it breaks daprd

@cmendible can you kindly update dapr/dapr with the latest version of components contrib? currently we are restricted from importing the latest version because it breaks daprd


added pressKey: TAB

Proposed Changes
Added pressKey: TAB
Testing
Completed :

Integration tests
Manual testing

https://github.com/mobile-dev-inc/maestro/assets/135650393/2bb16e94-4294-4fb8-bb8c-8f7234c1dea8
Issues Fixed
Feature suggested in Slack by https://mobile-dev-inc.slack.com/archives/C05EV48H5FB/p1699399670982379

@ZacharyKehlGEAppliances can you please also update the documentation?
https://github.com/mobile-dev-inc/maestro-docs/blob/main/api-reference/commands/presskey.md

@ZacharyKehlGEAppliances can you please also update the documentation?
https://github.com/mobile-dev-inc/maestro-docs/blob/main/api-reference/commands/presskey.md

https://github.com/mobile-dev-inc/maestro-docs/pull/34

Thanks for the contribution @ZacharyKehlGEAppliances  -- will merge your docs PR when the next release goes out!


[bottom_sheet] modal barrier color should be configurable

Use case
See this line: https://github.com/flutter/flutter/blob/e58dc16d7bec7199190f1408667e24e38328cc3b/packages/flutter/lib/src/material/bottom_sheet.dart#L373
This line hard-codes the modal barrier color to Colors.black54, which is not configerable and offers no way for users to change it.
Proposal
Simple solution:

Define and propagate another argument barrierColor just like barrierLabel.
If user provided a barrierColor, use that color, otherwise use Colors.black54 as fallback.

More proper solution
The barrier color should be a configerable part of the ThemeData (https://api.flutter.dev/flutter/material/ThemeData-class.html). That way we can avoid passing down parameters explicitly and only rely on the context.

I agree that.

Hi all
thank you for bringing this to my attention @athornz
Closing
if you disagree please write in the comments and I will reopen it
Thank you


Resource functions cannot have visibility qualifiers

Description:
$title.
The service constructor grammar is as follows.
service-constructor-expr := [annots] service service-body-block
service-body-block := { service-method-defn* }
service-method-defn :=
   metadata
   service-method-defn-quals
   function identifier function-signature method-body
service-method-defn-quals :=
   [explicit-visibility-qual | resource]

Steps to reproduce:
The following is still allowed though.
import ballerina/http;
import ballerina/log;

service hello on new http:Listener(9090) {

    // or public
    private resource function sayHello(http:Caller caller, http:Request req) {
        var result = caller->respond("Hello, World!");
        if (result is error) {
            log:printError("Error sending response", result);
        }
    }
}

Affected Versions:
1.0.0-alpha

Actually, it is allowed right? The spec defines explicit-visibility-qual as follows:
explicit-visibility-qual := public | private

Sorry, my bad. It's either a visibility qualifier or the resource qualifier.

Fixed with https://github.com/ballerina-platform/ballerina-lang/pull/17882.


get-outstanding-certificate-requests return value is a Python literal string

Describe the bug
Value stored in the result of the get-outstanding-certificate-requests action is a python literal as a string. This requires the ability to parse the string as Python to programmatically make use of the data.
Using a Python literal string isn't a common format for communicating data. Something like JSON would be a much better fit.
To Reproduce
juju deploy tls-certificates-requirer --channel edge
juju deploy tls-certificates-operator --channel edge
juju integrate tls-certificates-operator tls-certificates-requirer
juju run tls-certificates-operator/0 get-outstanding-certificate-requests --format=json 2>/dev/null | jq '."tls-certificates-operator/0".results.result'

Result is
[{'relation_id': 0, 'application_name': 'tls-certificates-requirer', 'unit_name': 'tls-certificates-requirer/0', 'unit_csrs': [{'certificate_signing_request': '-----BEGIN CERTIFICATE REQUEST-----<content>-----END CERTIFICATE REQUEST-----'}]}]"

which looks like JSON, but it isn't
juju run tls-certificates-operator/0 get-outstanding-certificate-requests --format=json 2>/dev/null | jq '."tls-certificates-operator/0".results.result | fromjson' # Get the result, parse it as JSON

The above throws an error.
Expected behavior
Expected a common format for the result output.
This data should likely be in JSON format, since the certificates data is already in JSON.
Environment

charm version: 50

Closed by #82


The type function is super slow

I was testing something related to backlinks and found it to be extremely slow. Like 90 seconds for 100k messages on my laptop. Quite a bit back and forth and it seems to be ref.type that is slow because it checks for these invite and address. Without those 2 checks, we go down to 7 seconds.
The reason why I'm opening an issue is because I want to know if they should be part of backlinks or not.

@staltz might be interesting for you related to manyverse.

Wow! Great find! It makes a lot of sense to me that ssb-backlinks doesn't need to index (pub) addresses and invites, and can focus instead on @, &, % only.

It doesn't seem like either ssb-server, ssb-db (makes sense as backlinks is plugin). Also ssb-invite and ssb-peer-invites doesn't use backlinks.


commands need to have quotes removed

When we issue a command (e.g., /bin/bash -c "echo hello-world; sleep 10") the quotes in cmdline are removed, so we should do the same otherwise wait will not find the process by name.

update: I might fix this on the level of the metrics operator - the characters seem to be removed there.


Improves CTLOG_STORE setters

Changes them to have clearer ownership semantics, as suggested in
https://github.com/openssl/openssl/pull/1372#discussion_r73232196.

+1

still +1 needs another reviewer.

+1

merged, thanks.  closing.


sum function in base is inconsistent with that in core

@jzstark @tptiplea The sum function in base.ndarray returns inconsistent result comparing to that in core. E.g. x has shape [2;3;4], sum axis:0 x returns an ndarray of [3;4] whereas the one in core returns an ndarray of [|1;3;4|].
Base.sum should not shrink the dimension. Please can you fix this?

Thank @jzstark for fixing this issue so quickly! 👍


[Snyk] Upgrade @typescript-eslint/parser from 6.16.0 to 6.17.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade @typescript-eslint/parser from 6.16.0 to 6.17.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 1 version ahead of your current version.
The recommended version was released 22 days ago, on 2024-01-01.

Release notes

Package name: @typescript-eslint/parser

6.17.0 - 2024-01-016.17.0 (2024-01-01)
Bug Fixes

eslint-plugin: [no-restricted-imports] prevent crash when patterns or paths in options are empty (#8108) (675e987)

Features

eslint-plugin: [no-floating-promises] flag result of .map(async) (#7897) (5857356)
eslint-plugin: [switch-exhaustiveness-check] add an option to warn against a default case on an already exhaustive switch (#7539) (6a219bd)

You can read about our versioning strategy and releases on our website.

6.16.0 - 2023-12-256.16.0 (2023-12-25)
Bug Fixes

eslint-plugin: [unbound-method] exempt all non-Promise built-in statics (#8096) (3182959)

Features

eslint-plugin: deprecate formatting rules (#8073) (04dea84)
typescript-estree: add allowDefaultProjectForFiles project service allowlist option (#7752) (7ddadda)

You can read about our versioning strategy and releases on our website.

    from @typescript-eslint/parser GitHub release notes

Commit messages

Package name: @typescript-eslint/parser

e566a5d chore: publish v6.17.0
675e987 fix(eslint-plugin): [no-restricted-imports] prevent crash when `patterns` or `paths` in options are empty (#8108)
cb5bac8 chore(deps): update dependency @ types/node to v20.10.5 (#8124)
d53f22e chore(deps): update dependency eslint-plugin-import to v2.29.1 (#8125)
c9df266 chore(deps): update dependency stylelint-order to v6.0.4 (#8128)
eb9d28c chore(deps): update dependency typescript to v5.3.3 (#8129)
5857356 feat(eslint-plugin): [no-floating-promises] flag result of .map(async) (#7897)
6a219bd feat(eslint-plugin): [switch-exhaustiveness-check] add an option to warn against a `default` case on an already exhaustive `switch` (#7539)
5ad1b76 docs: modify examples for explicit-module-boundary-types (#7404)
cde4d4d docs(eslint-plugin): [prefer-readonly-parameter-types] fix broken code samples (#8135)

Compare

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (7851343) 92.34% compared to head (f4773a2) 92.34%.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #56   +/-   ##
=======================================
  Coverage   92.34%   92.34%
=======================================
  Files           6        6
  Lines         418      418
  Branches       11       11
=======================================
  Hits          386      386
  Misses         32       32

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Application Logs

Short
From the dashboard/API we must be able to check the application logs
Proposal

We need to redirect the std output of running containers to a file, the file can then be transmitted to root and clusters.
When requested, we can spawn a routine from the node engine that redirects the output from the log file.
We must avoid dumping all the container logs of all the applications continuously to the cluster and root orchestrator, but this should be on demand.
As a default, the logs are available on demand from the node logs file and deleted upon undeployment. Then we should support plugins to forward the logs to platforms such as Prometheus if needed.
With a Developer flag, it should be possible to activate or de-activate application logs.

Ratio
Currently, the real-time application info is not available except for people with access to the NodeEngine shell. Therefore, we must provide app logs to the application providers.
Impact
Root & cluster managers, and Node Engine
Development time
2-3 weeks
Status
Searching for an elegant and efficient solution.
Checklist

[ ] Discussed
[ ] Documented
[ ] Implemented
[ ] Tested

As a temporary solution, I'll start by redirecting the application stdout and stderr to disk logfiles under the /tmp directory.

Also redirected the last 1024 bytes for each log file to the service model to enable some visibility at the root level as well.
Logs are now visible as part of instance.logs


The Dream Team | Week 9 Video Submission

Video here

I think your progress looks very promising, but you kind of missed the mark in terms of dividing your roles for this video. I'm sure you are all working on backend code but Collin had so little to talk about that I think it would have been a bit more balanced if the backend developer talked about the backend code. Seems there needs to be more discussion on this piece so that you are all on the same page.
Score 4.6


Help Wanted: The contribution docs should make it clear that the contributor should explicitly claim the ticket

There was recently a case where a contributor expressed interest in a ticket by asking questions for clarification, and it was pretty obvious that they wanted to work on the ticket, but I didn't assign them to the ticket since they didn't claim it. Soon afterwards, someone else submitted a PR and simultaneously claimed the ticket, without asking if they can work on it.
There are two important pieces here:

The contribution docs should state that the ticket should be claimed if you have desire to work on the ticket.
We should be proactive about asking to assign the ticket to the contributor if they have expressed interest, or 0/5 even assign them preemptively before they explicitly claim the ticket.

@BenLloydPearson do you have any ideas on where to include this change? We definitely want this front and center for new contributors.

@mickmister The Get Started page is probably the best place for this now, specifically, we could add sentence to this line that indicates that contributors should make sure the issue is assigned to them.

@cwarnermm I would like to take this up. I am thinking of including it somewhere on this page https://developers.mattermost.com/contribute/more-info/getting-started/contribution-checklist/. Please let me know if you think some other page would be a better fit. Thanks.

Thank you, @Rutam21! I agree with your approach.


Complex documentId fields in OpenSearch sink

Is your feature request related to a problem? Please describe.
Some events going to OpenSearch should have a document id (_id) set to a field within a sub-object. For example, info/id rather than id. Currently Data Prepper's document_id_field property only supports a field which is directly in the root of the event.
Describe the solution you'd like
Support the JSON Pointer syntax that Data Prepper is using throughout in the document_id_field property for Data Prepper.
Example configuration:
sink:
  - opensearch:
       hosts: ["https://my-opensearch"]
       document_id_field: info/id

Given the following event, Data Prepper will produce a document with _id set to json001:
"fieldA" : "arbitrary value",
"info" : {
  "id" : "json001",
  "fieldA" : "xyz",
  "fieldB" : "def"
}

Completed in #1966


Domain bidder.rtk.io seems to be serving Ad's

The domain Domain bidder.rtk.io ends up quite a bit in my logs now. As far as I can see this is a platform for serving Ads.

Here's one site it's on: https://www.lared.cl/

Does making a note of it here mean it will be added to the main blacklists?

Hi @wavesailor  – thanks for this input.
We're mostly an aggregator of hosts files from active and reputable curators of hosts files, and we package these amalgamated hosts files in various ways.
I'll add this one to my ad-hoc domain list before the next release.

That is at least added to https://github.com/BlackJack8/iOSAdblockList/blob/master/Hosts.txt#L587
And it is also confirmed here: https://urlscan.io/domain/bidder.rtk.io that it is used by BLIIP like www.marketrealist.com, shark007.net/forum/index.php etc.
Screenshot

Thanks for sharing this @wavesailor i've added it to my matrix :smile:
I also found these records other might be interested in
media.rtk.io
jita.rtk.io
sync.rtk.io
console.rtk.io
hexagram.rtk.io
login.rtk.io
bidder.rtk.io
thor.rtk.io
uk2.thor.rtk.io
nyc.thor.rtk.io
nj.thor.rtk.io
uk.thor.rtk.io
sfo.thor.rtk.io
bucket.rtk.io
grow.rtk.io
www.rtk.io

Done!  Thanks @wavesailor and @spirillen.  Closing.


Fix label fonts

Details
Fixed Issues
$ https://github.com/Expensify/App/issues/14208
Tests

Navigate to the following pages and confirm that the labels style (font, text color and size) looks the same as the image below:

Notifications and Test Preferences in Settings > Preferences
Email, Preferred pronouns and Local time in Chat header > user details
All currencies in + > Request money > Currency symbol
Recents and Contacts in + > Request money > Enter amount > Select participants
To in + > Request money > Enter amount > Select participants > Confirm page
Who paid? and Who was there? in + > Split bill > Enter amount > Select participants > Confirm page

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

Offline tests
N/A
QA Steps
Same as tests

[ ] Verify that no errors appear in the JS console

PR Author Checklist

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

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

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

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

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and 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] 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 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] 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

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 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 correct English and 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 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.
[ ] 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

Will leave to @shawnborton for final sign off (feel free to check my screenies in my comment)

This is so great! A couple more places we can tackle while we're at it:
Label above payment methods:

Transfer balance page:

For the profile page, I know we said we'd skip fixing this until we go back to Account Settings doc but if it's easy, why not fix the "Email address" label which should be smaller when there is an email address present:

Updated. Here are the new screenshots:
Payment methods

Transfer balance page

Profile page all states

Chatted 1:1 with Shawn and the input value text color should be white to match the other inputs.
Validate phone state

No phone state

Validate email state

No email state

Looks great, thanks Carlos!

False positive, tests were passing.

: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 @yuwenmemon in version: 1.2.55-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @AndrewGable in version: 1.2.55-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

Heyy, coming from where this issue https://github.com/Expensify/App/issues/14743 where this PR causing the regression—addressed by @fedirjh and here the explanation. Thank you!


additionalTextEdits support in auto completion

I believe this issue was also mentioned in #294 but it was optional so it didn't get addressed(if there were any other reasons, I couldn't see within the issue itself).
LSP supports additionalTextEdits field in completion items, and at least clangd makes use of it to provide user with include insertions. I was wondering if there was any particular reason for not supporting this. I believe it could be added in a similar way to resolve support.

It is a somewhat daunting task to start implementing this, because the ST API is simply not capable of arbitrary text replacements for a completion item. An initial (naive) thought on how to implement this would require a callback for which completion item the user selected from the ST completion widget, but currently we cannot attach a callback to that event. Thus we're limited to providing the ST completion widget one single textEdit (as its API demands).

I hope Jon and Will can one day find the time to re-think the completion widget a-la Atom/VSCode.

I see that auto completion lacks the functionality to do arbitrary insertions but it seems like you've a way to perform actions on the view after a completion item has been selected (https://github.com/tomv564/LSP/blob/master/plugin/completion.py#L110).
And it seems like there are replace/insert/erase functionalities at arbitrary positions https://www.sublimetext.com/docs/3/api_reference.html#sublime.View
Why these two cannot be combined?

I think this is doable.
Here is an example of what I think would work...
    def handle_resolve_response(self, response, view):
-        # replace inserted text if a snippet was returned.
-        if current_completion and response.get('insertTextFormat') == 2:  # snippet
-            insertText = response.get('insertText')
-            try:
-                sel = view.sel()
-                sel.clear()
-                sel.add(current_completion.region)
-                view.run_command("insert_snippet", {"contents": insertText})
-            except Exception as err:
-                exception_log("Error inserting snippet: " + insertText, err)

def handle_resolve_response(self, response):
+    view.run_command("example", {"response": response})

+ class ExampleCommand(sublime.TextCommand):
+    def run(self, edit, response):
+       # handle the response there

The advantage of calling our own TextCommand,
instead of running insert_snippet command
is that you get an edit token. With it you can insert, erase, replace.

I'm not sure how the cursor will respond to text replacements like that. The thing with the auto-complete widget is that it replaces text under the cursor, and so there is probably extra logic accounted for that. But, it is certainly good to try this approach anyway.

I would also be interested in additionalTextEdits support for Metals.
@predragnikolic did you try your example ? I am willing to help

@ayoub-benali no, I just shared my thought on how I would go about it... but I didn't try it.
Currently I am looking for a job and I can't really focus on open-source right now :)

Give it a go! Ideally the existing " apply (workspace) edits" logic can be re-used for this!

I will definitely give it a try
@tomv564 can you point me to the " apply (workspace) edits" code ?

but currently we cannot attach a callback to that event. Thus we're limited to providing the ST completion widget one single textEdit (as its API demands).

For what is worth I made a feature request in ST forum about this subject here ...

I found a way to detect the string that is added to the view right after a commit_completion command.
This way we can compare what is inserted with one of the user choices (state that is saved beforehand) and then check if that choice had any  additionalTextEdits by doing string comparaison.
I just have a small issue though:
The server can send such a string in CompletionItem.insertedText (which I save to do the comparison later)
override def visitFile(x$1: Path, x$2: BasicFileAttributes): FileVisitResult = ${0:???}

Once selected, added to the view and "interpreted" by sublime would become:
override def visitFile(x: Path, x: BasicFileAttributes): FileVisitResult = ???

The problem is that when we compare the two strings they are different because of the $ magic.
Is there a way to calculate what would a string be once "interpreted" by sublime to get the same result? Or any other idea to fix this issue ?

Given that doing string comparison, as shown above, to detected user input won't work I think we are blocked by the sublime API :(
Found this feature request https://github.com/SublimeTextIssues/Core/issues/2077 maybe I will be picked by @wbond if we show more interest, it is labeled as minor ...

I think this one can be closed see https://github.com/tomv564/LSP/pull/602


exec user process caused "exec format error"

When I attempt to run docker run jekyll/jekyll:latest I receive the error exec user process caused "exec format error".
This works for me on my Windows machine, but not on my Ubuntu 20.04 server.
Running Docker version 19.03.9

What architecture is your ubuntu server?
Can you post the output of uname -m

The output is aarch64 @gsp8181

We don't build our images for Arm, only x86/64

@envygeeks would you be open to adding arm support if someone else did the work?   I need to deploy to arm also.  I thought I would check here first before I go create my own solution.

Same here. We would like to use Jekyll images on M1 Mac without emulation.


fix #128

Extremely simple fix for #128.
Sorry if this Pull is wrong somehow, I've never done one before :/

Thanks, that looks good :)


Flip Agnostic Sequence Pair Search

Given a sequence pair, the flipped versions can either be automatically cached during search or the search algorithm could jump from one another before or after a random perturbation to explore more:
( pos , neg ) : original sequence
( neg , pos ) : floorplan mirrored along X axis
( gen , sop ) : floorplan mirrored along Y axis
( sop,  gen ) : floorplan mirrored both X and Y axis

where sop (gen) is the reversed version of pos (neg). This reduces the search space to one fourth as all of the versions have the same area and hpwl cost.

@854768750 , @srini229 fyi.

The above is not wrong if the objective is area minimization: you have the same bounding box even after flipping. It messes up wire length.
There are some old papers on compaction with wire length minimization. If these are easy to implement, they may help with wire length in general, in addition to providing the same/similar costs for HPWL under mirroring.
There's a simple "plowing" approach in this work:
https://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1954&context=cstech
Another heuristic is listed in:
https://ieeexplore.ieee.org/abstract/document/1585636
For completeness: as I recall, the precise formulation is a network flow (and I don't know what would happen to that with symmetry constraints). I don't recall the exact reference: I think it is ref [8] of this paper
https://dl.acm.org/doi/pdf/10.1145/240518.240660
Ref [8] should be available as a hardcopy in our library, but isn't online. I'm guessing we may want to go with something simpler anyway.

Closing this issue for now due to higher priority issues.


Add documentation of Rust examples

Add overview-of-optee-rust-examples.md in docs/.

Thanks. Will be rendered on the homepage soon.


apiVersion upgrade for kubernetes 1.16

Upgrade apiVersion of

deployment from extensions/v1beta1 to apps/v1,
add selector - matchLabels to deployment
Ingress from extensions/v1beta1 to networking.k8s.io/v1beta1

to support kubernetes 1.16
Related to: https://github.com/ministryofjustice/cloud-platform/issues/1943

The upgrade of the activesupport gem is not related to the kubernetes 1.16 content update, but until the activesupport gem is updated, no other user guide updates can be published (because version <IP_ADDRESS> of activesupport has been pulled, since it's not safe).
Please could you raise a separate PR for the activesupport gem change, and remove those changes from this PR?

Sure David. Let me raise seperate PR for that.
FYI: I have already build the image to include activeSupport <IP_ADDRESS> and pushed it to docker.


ARROW-10502: [C++/Python] CUDA detection messes up nightly conda-win builds

@github-actions crossbow submit conda-win*


ruby: respect gitignore

ruby: move example-specific ignored files to the root of the example
ruby: delete files that should be ignored
ruby: add receipt stages to generate bin files

@LinneyS, this PR is ready to merge.


Update config and run Detekt during the build

This changeset updates config and includes Detekt code analysis into the build.
Also, useJUnitPlatform() is configured for test tasks. I noticed tests were not actually run here.
The version is bumped to 2.0.0-SNAPSHOT.121.

@alexander-aleksandrov @armiol Please take a look.

@yevhenii-nadtochii also, please pay attention when commenting. You mentioned different Alexander.


BOOST_ROOT environment variable takes precedence over cmake -DBOOST_ROOT

Environment variables are ambient state, while the CMake command line is explicit direction. The latter should always take precedence in directing how the software gets configured.
Current behavior
$ BOOST_ROOT=garbage \
  cmake -S . -B build_spack \
     -DCMAKE_C_COMPILER=$(echo ~/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/gcc) \
     -DCMAKE_CXX_COMPILER=$(echo ~/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/g++) \
     -DBOOST_ROOT=$(echo ~/Code/spack/opt/spack/darwin-monterey-m1/gcc-12.2.0/boost-1.72.0-gnja7p54n42pwbjb5raqlvyqa6zk52yz/include/) \
     -DBoost_NO_SYSTEM_PATHS=ON \
     -DBoost_DEBUG=ON

-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/phil/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/phil/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boost root env: garbage
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1690 ] _boost_TEST_VERSIONS = "1.81.0;1.81;1.80.0;1.80;1.79.0;1.79;1.78.0;1.78;1.77.0;1.77;1.76.0;1.76;1.75.0;1.75;1.74.0;1.74;1.73.0;1.73;1.72.0;1.72"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1691 ] Boost_USE_MULTITHREADED = "ON"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1692 ] Boost_USE_STATIC_LIBS = "OFF"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1693 ] Boost_USE_STATIC_RUNTIME = "OFF"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1694 ] Boost_ADDITIONAL_VERSIONS = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1695 ] Boost_NO_SYSTEM_PATHS = "ON"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1727 ] BOOST_ROOT = "garbage"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1728 ] ENV{BOOST_ROOT} = "garbage"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1729 ] BOOST_INCLUDEDIR = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1730 ] ENV{BOOST_INCLUDEDIR} = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1731 ] BOOST_LIBRARYDIR = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1732 ] ENV{BOOST_LIBRARYDIR} = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1804 ] _boost_INCLUDE_SEARCH_DIRS = "garbage/include;garbage;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1805 ] _boost_PATH_SUFFIXES = "boost-1_81_0;boost_1_81_0;boost/boost-1_81_0;boost/boost_1_81_0;boost-1_81;boost_1_81;boost/boost-1_81;boost/boost_1_81;boost-1_80_0;boost_1_80_0;boost/boost-1_80_0;boost/boost_1_80_0;boost-1_80;boost_1_80;boost/boost-1_80;boost/boost_1_80;boost-1_79_0;boost_1_79_0;boost/boost-1_79_0;boost/boost_1_79_0;boost-1_79;boost_1_79;boost/boost-1_79;boost/boost_1_79;boost-1_78_0;boost_1_78_0;boost/boost-1_78_0;boost/boost_1_78_0;boost-1_78;boost_1_78;boost/boost-1_78;boost/boost_1_78;boost-1_77_0;boost_1_77_0;boost/boost-1_77_0;boost/boost_1_77_0;boost-1_77;boost_1_77;boost/boost-1_77;boost/boost_1_77;boost-1_76_0;boost_1_76_0;boost/boost-1_76_0;boost/boost_1_76_0;boost-1_76;boost_1_76;boost/boost-1_76;boost/boost_1_76;boost-1_75_0;boost_1_75_0;boost/boost-1_75_0;boost/boost_1_75_0;boost-1_75;boost_1_75;boost/boost-1_75;boost/boost_1_75;boost-1_74_0;boost_1_74_0;boost/boost-1_74_0;boost/boost_1_74_0;boost-1_74;boost_1_74;boost/boost-1_74;boost/boost_1_74;boost-1_73_0;boost_1_73_0;boost/boost-1_73_0;boost/boost_1_73_0;boost-1_73;boost_1_73;boost/boost-1_73;boost/boost_1_73;boost-1_72_0;boost_1_72_0;boost/boost-1_72_0;boost/boost_1_72_0;boost-1_72;boost_1_72;boost/boost-1_72;boost/boost_1_72"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1890 ] Boost_LIB_PREFIX = ""
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1891 ] Boost_NAMESPACE = "boost"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:953 ] _boost_COMPILER = "-gcc" (guessed)
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1927 ] _boost_MULTITHREADED = "-mt"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2005 ] _boost_ARCHITECTURE_TAG = "" (detected)
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2009 ] _boost_RELEASE_ABI_TAG = "-"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2010 ] _boost_DEBUG_ABI_TAG = "-d"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2070 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = "garbage/lib;garbage/stage/lib;Boost_INCLUDE_DIR-NOTFOUND/lib;Boost_INCLUDE_DIR-NOTFOUND/../lib;Boost_INCLUDE_DIR-NOTFOUND/stage/lib;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2071 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "garbage/lib;garbage/stage/lib;Boost_INCLUDE_DIR-NOTFOUND/lib;Boost_INCLUDE_DIR-NOTFOUND/../lib;Boost_INCLUDE_DIR-NOTFOUND/stage/lib;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
CMake Error at /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR) (Required is at least
  version "1.72.0")
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2377 (find_package_handle_standard_args)
  CMakeLists.txt:93 (find_package)

-- Configuring incomplete, errors occurred!

Expected behavior
The Boost path given on the command line should prevail over one in the environment.

I also confirmed that find_package(Boost) will respect the environment variable in the absence of a CMake setting of BOOST_ROOT from it
$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9f6ce5718..92f2e9846 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -68,7 +68,8 @@ set(Boost_USE_STATIC_RUNTIME OFF)

 if(DEFINED ENV{BOOST_ROOT})
     #set(Boost_INCLUDE_DIR $ENV{BOOST_ROOT})
-    set(BOOST_ROOT $ENV{BOOST_ROOT})
+    #set(BOOST_ROOT $ENV{BOOST_ROOT})
+    message(STATUS "Boost root env: $ENV{BOOST_ROOT}")
 else()
     # Look for version-specific Boost directory if available (known from Github Actions VM docs)
     if(DEFINED ENV{BOOST_ROOT_1_72_0})

$ BOOST_ROOT=garbage cmake -S . -B build_spack -DCMAKE_C_COMPILER=$(echo ~/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/gcc)   -DCMAKE_CXX_COMPILER=$(echo ~/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/g++) -DBoost_DEBUG=ON -DBoost_NO_SYSTEM_PATHS=ON
-- The C compiler identification is GNU 12.2.0
-- The CXX compiler identification is GNU 12.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/phil/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/phil/Code/spack/opt/spack/darwin-monterey-m1/gcc-13.1.0/gcc-12.2.0-tqtgol3haqk57nm2q7y55sfrb5min2cb/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boost root env: garbage
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1690 ] _boost_TEST_VERSIONS = "1.81.0;1.81;1.80.0;1.80;1.79.0;1.79;1.78.0;1.78;1.77.0;1.77;1.76.0;1.76;1.75.0;1.75;1.74.0;1.74;1.73.0;1.73;1.72.0;1.72"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1691 ] Boost_USE_MULTITHREADED = "ON"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1692 ] Boost_USE_STATIC_LIBS = "OFF"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1693 ] Boost_USE_STATIC_RUNTIME = "OFF"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1694 ] Boost_ADDITIONAL_VERSIONS = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1695 ] Boost_NO_SYSTEM_PATHS = "ON"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1727 ] BOOST_ROOT = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1728 ] ENV{BOOST_ROOT} = "garbage"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1729 ] BOOST_INCLUDEDIR = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1730 ] ENV{BOOST_INCLUDEDIR} = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1731 ] BOOST_LIBRARYDIR = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1732 ] ENV{BOOST_LIBRARYDIR} = <unset>
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1804 ] _boost_INCLUDE_SEARCH_DIRS = "garbage/include;garbage;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1805 ] _boost_PATH_SUFFIXES = "boost-1_81_0;boost_1_81_0;boost/boost-1_81_0;boost/boost_1_81_0;boost-1_81;boost_1_81;boost/boost-1_81;boost/boost_1_81;boost-1_80_0;boost_1_80_0;boost/boost-1_80_0;boost/boost_1_80_0;boost-1_80;boost_1_80;boost/boost-1_80;boost/boost_1_80;boost-1_79_0;boost_1_79_0;boost/boost-1_79_0;boost/boost_1_79_0;boost-1_79;boost_1_79;boost/boost-1_79;boost/boost_1_79;boost-1_78_0;boost_1_78_0;boost/boost-1_78_0;boost/boost_1_78_0;boost-1_78;boost_1_78;boost/boost-1_78;boost/boost_1_78;boost-1_77_0;boost_1_77_0;boost/boost-1_77_0;boost/boost_1_77_0;boost-1_77;boost_1_77;boost/boost-1_77;boost/boost_1_77;boost-1_76_0;boost_1_76_0;boost/boost-1_76_0;boost/boost_1_76_0;boost-1_76;boost_1_76;boost/boost-1_76;boost/boost_1_76;boost-1_75_0;boost_1_75_0;boost/boost-1_75_0;boost/boost_1_75_0;boost-1_75;boost_1_75;boost/boost-1_75;boost/boost_1_75;boost-1_74_0;boost_1_74_0;boost/boost-1_74_0;boost/boost_1_74_0;boost-1_74;boost_1_74;boost/boost-1_74;boost/boost_1_74;boost-1_73_0;boost_1_73_0;boost/boost-1_73_0;boost/boost_1_73_0;boost-1_73;boost_1_73;boost/boost-1_73;boost/boost_1_73;boost-1_72_0;boost_1_72_0;boost/boost-1_72_0;boost/boost_1_72_0;boost-1_72;boost_1_72;boost/boost-1_72;boost/boost_1_72"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1890 ] Boost_LIB_PREFIX = ""
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1891 ] Boost_NAMESPACE = "boost"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:953 ] _boost_COMPILER = "-gcc" (guessed)
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:1927 ] _boost_MULTITHREADED = "-mt"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2005 ] _boost_ARCHITECTURE_TAG = "" (detected)
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2009 ] _boost_RELEASE_ABI_TAG = "-"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2010 ] _boost_DEBUG_ABI_TAG = "-d"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2070 ] _boost_LIBRARY_SEARCH_DIRS_RELEASE = "garbage/lib;garbage/stage/lib;Boost_INCLUDE_DIR-NOTFOUND/lib;Boost_INCLUDE_DIR-NOTFOUND/../lib;Boost_INCLUDE_DIR-NOTFOUND/stage/lib;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
-- [ /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2071 ] _boost_LIBRARY_SEARCH_DIRS_DEBUG = "garbage/lib;garbage/stage/lib;Boost_INCLUDE_DIR-NOTFOUND/lib;Boost_INCLUDE_DIR-NOTFOUND/../lib;Boost_INCLUDE_DIR-NOTFOUND/stage/lib;NO_CMAKE_SYSTEM_PATH;NO_SYSTEM_ENVIRONMENT_PATH"
CMake Error at /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find Boost (missing: Boost_INCLUDE_DIR) (Required is at least
  version "1.72.0")
Call Stack (most recent call first):
  /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /opt/homebrew/Cellar/cmake/3.26.4/share/cmake/Modules/FindBoost.cmake:2377 (find_package_handle_standard_args)
  CMakeLists.txt:93 (find_package)

-- Configuring incomplete, errors occurred!

I think the right thing to do here is to only go looking at ENV{BOOST_ROOT_1_72_0} if neither the CMake variable nor the environment variable is defined.
@robertbartel


Consistent geometry height/extrudedHeight

Cleanup to help with #6434
CorridorGeometry, EllipseGeometry, PolygonGeometry and RectangleGeometry were all doing pretty much the same thing with height and extrudedHeight but in slightly different ways.  This makes all four geometry types handle those arguments the exact same way.
The only real change is how I'm checking whether we should actually compute the extrusion or just a flat geometry.  Ellipse was checking if the values were 1 meter apart, Rectangle was checking if the top and bottom heights were equal, and Polygon wasn't checking at all.  They now all check if the difference between the two is greater than EPSILON2 (1 cm).  Anything smaller than that is impossible to see in screen space so there's no point computing all the extra positions and attributes.

@hpinkos, thanks for the pull request! Maintainers, we have a signed CLA from @hpinkos, so you can review this at any time.
:warning: I noticed that CHANGES.md has not been updated. If this change updates the public API in any way, fixes a bug, or makes any non-trivial update, please add a bullet point to CHANGES.md and comment on this pull request so we know it was updated. For more info, see the Pull Request Guidelines.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

Fixing the specs now

This is ready now.  @bagnell do you want to review?

Looks good. Thanks @hpinkos.


Don't finish mechanism driver / ACL Manager audit until the initial GROUPUPDATEs have been sent

ACL Manager needs to be able to detect audit failures and retry, which it can't do if the driver returns the GETGROUPS response immediately.
This is an fix to https://github.com/Metaswitch/calico/issues/255

We're going to not merge this until Nick gives it a spin, because if it's insufficient to fix his problem it might not be worthwhile.

Looks like we can merge this now.

This had to be merged by hand because it played poorly with @neiljerram's refactor for transport-agnostic code.


Adding updateMany and deleteMany Methods to Remult repository

Description:
I would like to propose an enhancement to Remult by adding updateMany and deleteMany methods to the repository interface, which can be implemented across various database types.
Currently, developers are required to perform these operations individually using their IDs. This feature request aims to streamline the process by allowing developers to update or delete multiple entities in a single query.
Benefits:
Improved Performance: With the ability to update or delete multiple entities in a single query, performance improvements can be realized, especially when dealing with large datasets. This reduces the overhead of making multiple round-trips to the database.
Simplified Code: The addition of updateMany and deleteMany methods would lead to more concise and readable code. Developers would no longer need to write repetitive code for iterating through each entity and performing updates or deletions one by one.
Proposed API:

interface Repository<entityType> {
    ...
    deleteMany(where?: EntityFilter<entityType>): Promise<void>;
    updateMany(where?: EntityFilter<entityType>, item: Partial<OmitEB<entityType>>): Promise<entityType>;
}

Thanks. How would you handle lifecycle events such as validation, saving etc...
Also, in the updateMany - you indicated that you want to return an entity, I think it makes sense to return void, or number of rows affected

Thanks. How would you handle lifecycle events such as validation, saving etc...
Also, in the updateMany - you indicated that you want to return an entity, I think it makes sense to return void, or number of rows affected

In order to avoid breaking changes in the entity lifecycle, we can iterate through the rows and trigger the events one by one. The alternative will be to modify the event callback functions to receive an array of rows.

Regarding the return type, I meant Promise<entityType[]> (an array of the modified rows).  but maybe modifiedCount would be more efficient. If we want to take it a step forward we can create a dedicated type with multiple properties (matchedCount, modifiedCount, errors, etc)

I wanted to add my perspective to this conversation if I may.
update/delete in bulk would be an amazing feature, and having lifecycle events to reflect bulk CUD would really complete it.
Lets say i have this contrived example where i want to call an external service prior to the record being saved:
async saving(stock: Stock, e: LifecycleEvent<Stock>) {
    const { oldSync } = e.fields.find('sync');
    if(!oldSync && stock.sync) {
        // user has toggled sync option from off->on
        const [ticker, price] = await callExternalService(stock.tickerSymbol;
        entity.price = price
    }
}

whereas it would be great if i could perform it in bulk as part of the lifecycle:
async saving(payload: { stock: Stock, e: LifecycleEvent<Stock> }[]) {
    async saving(payload: { stock: Stock, e: LifecycleEvent<Stock> }[]) {
        const m = new Map(payload.filter(item=>{
            const { oldSync } = e.fields.find('sync');
            // user has toggled sync option from off->on
            return !oldSync && item.stock.sync
        }).map((item) => [item.stock.tickerSymbol, item.stock]);

        for(const [tickerSymbol, result] of await callExternalService(m.keys())) {
            m.get(tickerSymbol).price = result;
        }
    }
}

in terms of return type, i personally think it would be useful to have a list of success/failures, e.g
type SavingResponse = {
    id: any,
    success: boolean;
    error: string
}

So the whole thing might look like this:
@Entity("stocks", {
    async saving(payload: { stock: Stock, e: LifecycleEvent<Stock> }[]) {
        const m = new Map(payload.filter(item=>{
            const { oldSync } = e.fields.find('sync');
            // user has toggled sync option from off->on
            return !oldSync && item.stock.sync
        }).map((item) => [item.stock.tickerSymbol, item.stock]);

        for(const [tickerSymbol, result] of await callExternalService(m.keys())) {
            m.get(tickerSymbol).price = result;
        }
    }
})
export class Stock {
    @Fields.autoIncrement()
    id: number

    @Fields.number()
    price: number

    @Fields.string()
    tickerSymbol: string

    @Fields.boolean()
    sync: boolean = false
}

...
for(const result of await remult.repo(Stock).update([{id: 1, sync: true},{id: 2, sync: true},{id: 3, sync: true}])) {
    if(!result.success) {
        console.log(`Failed to get stock price for stock id ${result.id} with error ${result.error}`)
    }
}

(PS, I realise I can achieve all of this by structuring the code differently but am just trying to explain why i think it would be a useful feature)

Let me add a small thing as well: transaction.
No matter how it will be done (1 query, multiples, server checks, ...) if there is one issue in on place, would be nice to be back as before.
// was my 2 cents 😉

@jycouet maybe a additional boolean parameter to give the option to fail the whole batch if any in the batch fail?

We've implemented deleteMany and updateMany to be released in our next version. you can check it out now in the exp version:
npm i remult@exp

Please check it out and let me know if you have any comments.
Currently, it's defined as a transaction, so it all succeeds or all fails.

That's great!  Is it possible to add it to the API as well?
I think it would be very useful, just like we currently have separate routes for GET by ID and GET by filter.

Working on it

Hi @meni3a I've created a new exp version with documentation of deleteMany etc... in the OpenApi(swagger) and support for delete or put with search paramters.
There is also a safeguard against no filter.
Can you check it out and see if it's ok?
npm i remult@exp

Released in version 0.26.0:
https://github.com/remult/remult/releases/tag/v0.26.0


play-java-fileupload-example is broken

After upload file show Unauthorized page and the next lines in logs
WARN  p.filters.CSRF - [CSRF] Check failed because no or invalid token found in body for /upload
WARN  p.filters.CSRF - [CSRF] Check failed with NoTokenInBody for /upload

So, the issue was related with size of file. With files size of which is less then play.http.parser.maxMemoryBuffer upload successfully.


Implement RadioGroup::{row,column,for_axis} to allow layout customization

Trivial change to allow the user to set the Axis on which Radio's are laid out. Breaking change in that RadioGroup::new is now RadioGroup::column.
Builder methods column(), row(), for_axis() are consistent with the Flex widget.

Sure thing! I'll get on it this weekend :)

Done! please take a look :)

Looks great, thanks! We'll definitely want a changelog entry too (which I can do today if you don't have time).
(Note that the links in the changelog aren't automatic; they're all defined at the bottom)

Done, thanks!


Scroll soak

Codecov Report

Merging #646 (b3f898e) into main (9739552) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #646   +/-   ##
=======================================
  Coverage   41.97%   41.97%
=======================================
  Files           7        7
  Lines         455      455
=======================================
  Hits          191      191
  Misses        251      251
  Partials       13       13


Duplicated sort routine

SUMMARY
Duplicated routine for sorting small arrays replaced with reused one.
Automated Checks

[ ] I have run ./gradlew test and made sure that my PR does not break any unit test.
[ ] I have run ./gradlew checkstyleMain or the equivalent and corrected the formatting warnings reported.

This PR is currently empty https://github.com/RoaringBitmap/RoaringBitmap/pull/659/files

Changes are already included.


#159054008 User Should Receive Descriptive Validation Errors.

What does this PR do?
. Implements descriptive validation error messages.
How To Manually Test?

Pull ft-validators-159054008 branch.
git pull origin ft-validators-159054008
Checkout to ft-validators-159054008 branch
git checkout ft-validators-159054008
Start the server
python manage.py runserver
Test the endpoints on postman.

Affected Endpoints:
POST \api\users
{
  "user":{
    "username": "testuser",
    "email": "info",
    "password": "Pass123."
  }
}

RESPONSE
{
    "errors": {
        "email": [
            "Enter a valid email address."
        ]
    }
}

What are the relevant pivotal tracker stories?
#159054008 Users should receive descriptive signup/Registration validation errors

@dessHub are you still making changes on this PR?

@jacksono Done updating the PR

@jacksono Will look into it right away.

@jacksono I have fixed the bug.

@dessHub , I tested it with a wrong email and got the correct error message. It works as expected


frontsite: pagination for ResultsTable

(Closes #441)

Pagination message in the footer is now: Showing entries 1-5 of 17


Update types.py

Return to invoice expiration.
Changes.
https://github.com/lnbits/bolt11/blob/master/bolt11/types.py
Add
class LightningInvoice(NamedTuple):
    expiry: int

These changes are not necessary: expiry_time is already there if the tag exists:
https://github.com/lnbits/bolt11/blob/master/bolt11/types.py#L33

These changes are not necessary: expiry_time is already there if the tag exists:
https://github.com/lnbits/bolt11/blob/master/bolt11/types.py#L33


Lodash version in deps have security issue

Here is more info: https://snyk.io/vuln/npm:lodash:20180130
Solution: Upgrade lodash to version 4.17.5 or higher.

@deksden  thanks


Finalize renaming to secrets-app

Fixed in https://github.com/Nitrokey/trussed-secrets-app/pull/76


Make update(...) functions to return self

It would be über nice if signer.update(...) and verifier.update(...) were to return self so that methods could be easily chained like:
var signature = ursa.createSigner('SHA256')
                    .update('foo')
                    .update('bar')
                    .sign(...);

Should I submit a PR?

Yeah, that would be great :)

Pull request in #87


Create pkgci.yml and pkgci_build_packages.yml.

Progress on https://github.com/nod-ai/shark-ai/issues/584.
Summary

Added .github/workflows/pkgci_build_packages.yml that builds sharktank, shortfin, and shark-ai dev packages and upload them to GitHub artifacts.

With ccache configured and tracing disabled, this job takes around 2 minutes to run.

Added .github/workflows/pkgci.yml that just runs pkgci_build_packages.yml for now. Other jobs can be migrated to depend on that job and use/test the packages.

Other details

Experimented a bit with ccache. I'm seeing a ~30% cache hit rate but that still gets the shortfin build from 2m30s (test logs here) down to 1m30s on standard GitHub-hosted ubuntu-24.04 runners (test logs here).
Plumbed the SHORTFIN_ENABLE_TRACING setting through scripts / Docker. For dev packages we can keep tracing disabled (unless there is a clear reason to add it). If the cache hit rate improves then we might be able to enable tracing for low cost.
Dropped cache: "pip" from build_packages.yml since it is counterproductive for a job that only installs packaging. Multiple workflows seem to be writing to the same cache and I see no way to customize the cache key. That, or the cache is unnecessarily large and we just need to prune it manually.

Next steps with this:

Refactor at least one workflow to use the package artifacts
Put some more thought into how workflows can get different versions of the IREE / iree-turbine / etc. dependencies. Should they keep doing this? https://github.com/nod-ai/shark-ai/blob/e37b934a7eb3841f2a609cf94fa6b684838729ba/.github/workflows/ci-shark-ai.yml#L63-L72

Picking this back up now.


(selectdb-cloud) Use info level in recordCreatePartitionFailedMsg() due to intersection happens all the time

run buildall

run buildall

run buildall


Support for Pickle

This completes the work started long ago to support saving and loading of Java objects as part of a pickle file.
The implementation on this was actually simpler that I thought thus I was able to get this to work in the 0.7 series where I had just enough thunk support for the custom classes.  I needed to hack the dispatch table so that all Java classes could be routed to a serializer.  A custom Java class for encoding and decoding is then stored in our private jar which does the work.  Then loading required creating an extra resource.  Attempting to load a stored Java pickle file with the regular unpickler, gives an error.  I added documentation and some trivial test cases.
I feel positively dill about this one.  But lets hold it until the next release.

This one needs two changes before it will be usable.

We need an entry in changelog.
We need a method to convert a byte[] to bytes that does not involve going through numpy.

I completed the required tasks to get this to work without numpy and on Python 2.7.
Python 2.7 and Python 3.x are very different in the Pickler.  I had to hack into an entirely different table to do the work because there is no concept of a private extension dispatch_table in Python2.  Unfortunately, Python3 removed the dispatch table entirely as it is all internal to the cPickler implementation.  And the two tables require implementing different methods.
I think this one is ready for review and inclusion in 0.7.1

very well!


action: Improve porting checks

Improve the PR porting GitHub action by referencing a central script to
handle the checks rather than hard-coding them in the workflow YAML.
This ensures all PRs use the latest porting policy encoded in the
script and makes maintenance easier.
Related: https://github.com/kata-containers/kata-containers/issues/634
Fixes: #843.
Signed-off-by: James O. D. Hunt<EMAIL_ADDRESS>

/test

/test-ubuntu

/test

Ping @kata-containers/agent - a very quick PR to review and hopefully ack so we can get the last of these PRs landed...

This PR needs 1 more ack... today would be great folks!


satallax: use GCC 8

Motivation for this change
It does not build with gcc9
ZHF: #80379
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

Ping @NixOS/nixos-release-managers

Thanks for the suggestion. I’ve just applied it.

To quote gcc(1):
-fpermissive
    Downgrade some diagnostics about nonconformant code from errors to warnings.  Thus, using -fpermissive allows some nonconforming code to compile.

I'm wondering: is it really a good idea to allow nonconforming code to compile just to use a newer gcc? I may be totally wrong here, but I generally tried to find another solution if -fpermissive could've been used when I was fixing build regressions because of newer gcc versions. Also, gcc8 is still supported by upstream, so I don't think that it would hurt if we use gcc8 for now and wait for satallax-upstream to fix the issue.

You're right.
Unfortunately the project seems to have been stalled and we cannot wait for a fix from upstream.
But it was quite easy to fix. I made a new PR: #81796

Fixed in #81796


issue with iterators reading data out of the data source even after the iterator is flagged as done

The issue is seen when processing an iterator and applying a takeUntil action. If the iterator has more data in it after takeUntil is satisfied, further iterator.next calls would cause items to continue to be read causing other action sequences to get the wrong data from the iterator.
      function* getItemsAsync() {
        for (var i = 1; i <= 5; i++) {
          yield Promise.resolve(i);
        }

        return "YES!!";
      }

        asyncIterator = coseq(getItemsAsync())
          .takeUntil(value => value === 3)
          .asyncIterator();

      assertNextValue(1, false);
      assertNextValue(2, false);
      assertNextValue(3, false);
      assertNextValue(undefined, true);
      assertNextValue(undefined, true);

      // this right here fails because the iterator returns "YES!!"
      assertNextValue(undefined, true);

https://github.com/MiguelCastillo/coseq/pull/29


r in 2 days do something doesn't work

Just updated to the latest and trying to enter r in 2 days do something appears to do nothing (debug output shows an error even though it seems to think it's a valid command).
Here's the debug output:
[INFO: alfred.workflow.input.scriptfilter] <?xml version="1.0"?><items><item uid="add-reminder" arg="in 2 days do something" type="file" valid=""><title>Add Reminder</title><subtitle>Create a new reminder to do something on Saturday, December 5, 2015 at 12:22:07 PM</subtitle><icon>unchecked.png</icon></item></items>
[INFO: alfred.workflow.input.scriptfilter] Processing output 'alfred.workflow.action.script' with arg 'in 2 days do something'
[INFO: alfred.workflow.action.script] Processing output 'alfred.workflow.output.notification' with arg 'Could not understand command "in 2 days do something"

r in 2 days 0 hour something does work

bump

Currently only the following will work:
r in {X} days {Y} hours …
r in {X} days at {time} to …

Fixed in https://github.com/surrealroad/alfred-reminders/commit/2241da9e15bd6a16b90e10d71fec9e0a3f7d31ab
You can now do r in 2 days do something


expose Endpoints API for a Sandbox

Signed-off-by: Madhu Venugopal<EMAIL_ADDRESS>

LGTM pending CI green

LGTM


[v1.x][Feature] Add flag for disabling oneDNN BRGEMM implementation of FC

Description
In new oneDNN version there are BRGEMM kernels for FullyConnected - it require special memory format of weights.
This PR let user to decide if BRGEMM implementation should be used by flag - it can significantly speedup FC execution for large tensors (got 42% speedup on BERT with 64 batch size ) - feature disabled by default as it's not so efficient on small tensors.
Checklist
Essentials

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e. I finished coding on this PR)

@mxnet-bot run ci [unix-cpu]

@szha  Can you help with merge?

@mxnet-bot run ci [unix-gpu]

@mxnet-bot run ci [unix-gpu]


aqt: Add version 3.1.17

and drop support for signed versions as they're no longer produced

macOS fails with

cannot runv(aqt -h), Not access because it is busy
what could cause this error?

{
"aqt 3.1.17",
"aqt 3.1.6",
"aqt 3.0.2",
"aqt 2.0.6",
}

four aqt test processes?

that's because I removed the signed prefix on Windows, it shouldn't be a big deal except on macOS where those versions don't exist.
however I have a busy error on the existing version

After digging a bit it's a EACCES error, caused by a missing executable permission. how can I chmod +x using xmake?

os.exec + chmod https://github.com/xmake-io/xmake-repo/blob/c05eb260a8ff354b6226cdbbbb74c7e6ab313718/packages/b/bazel/xmake.lua#L36


viper.Watch() support

First: this is great; I'm glad I found it!
Every few years I do another attempt at using Viper and always end up finding it too miserable to make its structure support work reasonably well enough. I'm glad to have found your code where you went through all the hassle.
A feature request: It'd be great to have support for viper's configuration reloading feature ("viper.Watch()").

Thanks, I'm glad you found it useful!
I implemented Watch in #15  for config files only. It's a bit more complex with environment variables mainly because it goes against the env vars design. However, If that is a demand for that then I don't see the reason for not implementing it.

fixed by #15


Support postgres do update with EXCLUDED keyword

Current do_update with postgres doesn't support EXCLUDED keyword.
Without specific value, use EXCLUDED option with do_update
fixed: #443

Coverage remained the same at ?% when pulling 8bd7e9dd4b5da8a1a514379937ab5e56f07e1bf3 on lntuition:support_postgres_excluded into cb28b93e9c1159e490c3559e8467c7cfebb0ec5a on kayak:master.


adding '&' while running python script via the run button on top left

Issue Type: Bug
Ideally it should run it like this
C:/Users/bhati/anaconda3/python.exe "c:/Users/bhati/OneDrive - Maharaja Surajmal Institute Of Technology/Desktop/JAVA/duplicate.py"
but instead it is running it like this
& C:/Users/bhati/anaconda3/python.exe "c:/Users/bhati/OneDrive - Maharaja Surajmal Institute Of Technology/Desktop/JAVA/duplicate.py"
This causes the script to fail.
VS Code version: Code 1.56.2 (054a9295330880ed74ceaedda236253b4f39a335, 2021-05-12T17:13:13.157Z)
OS version: Windows_NT x64 10.0.19042

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-8300H CPU @ 2.30GHz (8 x 2304)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
7.85GB (2.35GB free)

Process Argv
--crash-reporter-id db2e837e-445b-44e7-9e40-401347523fc2

Screen Reader
no

VM
0%

Edit: It works with power shell but incase of command promt in shows this error.

I have this problem as well and in the environment I use VS Code + Python (High School) I cannot use PowerShell (python is blocked in power shell by our org. antivirus). It also breaks debug, because it does not respect the setting a tries to run in PowerShell.
I noticed that when using deprecated method to switch to CMD (because initially it didn't happen to me, who had it set for a long time now, but only to my students, who are freshly out of corona lockdown) it starts to work again, just add to settings.json:
"terminal.integrated.shell.windows": "${env:windir}\\System32\\cmd.exe"

/extPython


Twin merge & redirect

When twins get uploaded & discovered in SynBioHub, it should be possible to merge them. For a starting point, we might just have the curator pick the "best" of the two.
dc:alternate can then be used to remember the old name, and a redirection triple can be added to allow SynBioHub to redirect and load the right page (like Wikipedia does).

will look at this again for sbh3


Is it possible to use prefixes with templates?

When working with turtle serialisations, it would be great if it was possible to replace the URI of the subject template with its prefix. But I couldn't work it around. Is this even possible in RML?
Tks.

Could you provide a minimal example, just to make sure we're on the same page? :)

For example, we'd like to have an outcome of the type:
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix ex: <http://example.org#>

ex:paula a foaf:Person ;
foaf:givenName "Paula"
foaf:familyName "Keen"

instead of:
@prefix foaf: <http://xmlns.com/foaf/0.1/>
@prefix ex: <http://example.org#>

<http://example.org#paula> a foaf:Person ;
foaf:givenName "Paula"
foaf:familyName "Keen"

instead of

As far as I know, this is out of scope of [R2]RML. Instead, I created a new issue in the mapping challenges repository of the Knowledge Graph Construction Community Group: https://github.com/kg-construct/mapping-challenges/issues/34


Fix bugs

Fix some bugs, most notably in CostBalancerStrategy, RocketMQFirehoseFactory and GoogleDataSegmentPusher. Other are performance/redundancy fixes, not logical bugs.

@leventov can you split these out into other PRs? they touch a lot of random pieces in code and seem to be missing related tests.

@drcrallen I don't see the point of splitting this into 5 different PRs, it increases noise for no benefit. Added a test to GoogleDataSegmentPusher. Only change in RocketMQFirehoseFactory is also theoretically testable, but I don't know how to use it.

Because its easier to merge quickly small PRs instead of having them all blocked on all of them passing code review.

And the commit history for extensions vs core becomes cleaner. So when the history of extensions is viewed, the changes for that extension are well isolated and clear.
I'm more interested in the logical separation of

Druid core
Extensions
When looking at the commit history affecting a file, does it make sense, or does it seem like it was changed in a bunch of random pull requests?
Anything that has API changes that can affect extensions.

I think 1, 2, and 3 come into play here.


Add es6 module support

This change allows 24a2 to be used as a node module. All this changes is exporting the public enums and interfaces in src/engine.ts. It also updates the package.json to specify that it is a module, and to point to the types and main files.
These are the same changes I made to 24a2 to use it on my own site, which uses Gatsby, so these changes should work. You can see an example of importing and using the 24a2 interfaces here.
#5

Also, I did not add it in here because I wasn't exactly sure how it worked, but the Typescript build step should be automated in the package.json file, rather than done manually and committed to git. I believe you can just set the 'postinstall' script to 'tsc', which would automatically generate the build folder when the package is installed via npm, but I'm not exactly sure.


A cancel button for the 'Select IED for function...' dialogue box

Opportunity for great UX
When using the stencils, I sometimes click an abstract IED that already has an IED assigned to it. The only option is then to 'Reset' the IED connection, then click it again to reselect the appropriate IED.
Describe the solution you'd like
A cancel button on the IED selection dialogue box.
Requirements
A cancel button that does nothing except close the dialogue 🫤

Thanks for the report. I'm not sure I've entirely understood your meaning.

If you have an IED selected you should be able to go "Reset" to remove the selected IED.
If you want to restart from scratch you should be able to go "Clear IEDs".
If you already have an IED selected you can just select another one "on top of" the existing one.
If you click an abstract IED and you don't want to select an actual IED you should be able to select "Reset".

I think this gives the ability to select, remove a selection, and start over. Is there something else we need?
I think "Reset" here is the equivalent of "Cancel"?
Here's a little video:
https://github.com/user-attachments/assets/c607ee89-947b-436c-a5d7-59e8fe1806bc
We could have a cancel button. At present the dialog that opens is not a two-step dialogue (click IED, click OK) and so we don't have the ability to bring in a new option (click IED, click cancel) unless we change that work flow. I like that a single click is all you need to select an IED at present.

Obviously it cannot be a great UI if this is not intuitive, so we must make some improvement, I am just not clear on what it is :stuck_out_tongue_winking_eye:


Update Installation instructions header text

Description
Fixes #000.

TODOs
Read the Gruntwork contribution guidelines.

[ ] Update the docs.
[ ] Run the relevant tests successfully, including pre-commit checks.
[ ] Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable.
[ ] Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)

Added / Removed / Updated [X].
Migration Guide

Thanks for review! Going to check this in now.


No module named 'gymnasium.vector.utils.spaces

Hello, when I complete the installation step by step, and I try to run the " python scripts/train.py --config-name dummy +experiments/obstacle_avoidance=train_prodmp_transformer". But I got error, and I can't find the solution. Can you give the gymnasium's version or solve this error? Thanks a lot.
Traceback (most recent call last):   File "/home/lxc/movement-primitive-diffusion/scripts/train.py", line 14, in <module>     from movement_primitive_diffusion.utils.setup_helper import setup_train, setup_wandb_metrics, get_group_from_override   File "/home/lxc/movement-primitive-diffusion/movement_primitive_diffusion/utils/setup_helper.py", line 17, in <module>     from movement_primitive_diffusion.workspaces.base_vector_workspace import BaseVectorWorkspace   File "/home/lxc/movement-primitive-diffusion/movement_primitive_diffusion/workspaces/base_vector_workspace.py", line 16, in <module>     from movement_primitive_diffusion.utils.gym_utils.async_vector_env import AsyncVectorEnv   File "/home/lxc/movement-primitive-diffusion/movement_primitive_diffusion/utils/gym_utils/async_vector_env.py", line 37, in <module>     from movement_primitive_diffusion.utils.gym_utils.vector_env import VectorEnv   File "/home/lxc/movement-primitive-diffusion/movement_primitive_diffusion/utils/gym_utils/vector_env.py", line 11, in <module>     from gymnasium.vector.utils.spaces import batch_space ModuleNotFoundError: No module named 'gymnasium.vector.utils.spaces'

Hi @lidaken ,
Thanks for raising the issue!
I have updated the correct import path in this commit e378d873bda16471080e721d026c5e672d055485 .
Could you update your local repo and try again?
Best,
Paul