iOS MapView fires onPress() even if the press target is a Polygon

Hello everyone,
When I use Google Maps provider for iOS (running fine), onPress doesn't fire for Polygon.
Also, onCalloutPress doesn't fire for markers. I though there was a PR fixing this, am I wrong?
I'm using RNM 16.3.
Edit:
It does fire actually. onPress={() => console.log("123")} does log correctly but when I call my function which does this.setState(), it doesn't set any state....
Problem: iOS MapView fires onPress() even if the press target is a Polygon.
Platform: iOS
RNM Version: 0.16.3

I would love to be able to easily toggle this functionality. For our use-case we need our users to see polygons on their turf, but then be able to tap a location and pull up the address.
This is working on iOS due to this bug, but it is not working on android as the polygon onPress fires.


Llama2 13B chat config and code improvements

Added Dev Container for quick start in fresh env
Added Llama2 13B chat config
Moved merge to separate script due to memory issues after training
Made some code improvements

Thanks a lot for your PR! There were some helpful changes to the code organization for sure. However, since this repo is still a personal tinkering space for me, I don't want to hard-code the device map to 2 GPUs for example (e.g. I'm running on a single GPU for now, maybe a 4-GPU machine in the future, or 8-GPU, etc.). Also I haven't set up a Docker container to run this so I can't test the Dockerfiles, but it's a great idea!
You can make a fork of this repo for your use cases though. Again, thanks for the PR, there were some very good ideas here I may incorporate in the future.

No problem! :)


Version of the Key

Hi!
I have added the function version in the Key class to retrieve the version of the key directly (exactly the same idea of the fingerprint function).
:)
Best Regards
Mattia Pini

now should be ok

The version function is fine. I just don't see the need for show_time_format

I need that function for another project (I need the time in a specific format) and I thought that maybe it can be useful for somebody else.

Merged a972e4eccbf33907e348bdf7dfc310dab2b84e3f, ca9d8302861add445a2595fa10ed038b354f0def, and e619cbe081a56a5c0bf0c7da12045983cfe6cd23


Target element using Hover Method

Problem Description
We can change the hover text color right now on the recent Divi version however it's targeting the module class etc et_pb_sample_module:hover p
How do we target the element instead? etc et_pb_sample_module p:hover using get_hover_value and add_hover_to_selectors
I was able to do this:
ET_Builder_Element::set_style( $render_slug, array(
				'selector'    =>  '%%order_class%% p:hover',
				'declaration' => sprintf(
					'color: %1$s;',
					esc_html( $content_text_color_hover )
				),
			) );

I can see it is targeting the element right now, but when I view the inline styles, it's still rendering et_pb_sample_module:hover p and also the one I used above.
Steps To Reproduce

Screenshot and/or gif

managed to use other method. Closing this


Lat/longitude values not changing

I am ROS Humble and have installed gps_umd using apt install. I ran the command
ros2 component standalone gpsd_client gpsd_client::GPSDClientComponent -p use_gps_time:=false -p check_fix_by_variance:=false -p frame_id:="gps" -p publish_rate:=5 -p host:="<IP_ADDRESS>" -p port:=2947 on terminal 1 and on another terminal I ran gpsmon.  Please see the result in the attached video. The gpsd_client version shows no change in lat/long values whereas the other shows some changes in the 4th or 5th decimal point (as I was not moving much).
I tried  check_fix_by_variance:=true as well but the same.  Is this expected?
ros_vs_gpsmon.webm

same issue, i am running ros-iron.
build from src.
I am testing on my table. after a few messages, the gps is not publishing anymore, the header timestamp doesnt change.

Quick update:
The lat long values dont change. I looked at the source code and also the performance of my GPSD process. with RTCM corrections, there seems to be issues in the socket and on the source code, there is not provision to attempt to reconnect. could this be the reason?


fix: [CDS-84847]: Pipeline resource update filters

Describe your changes
Comment Triggers

PR Check triggers

Build: trigger build
Sub Category Field Check: trigger subcategoryfieldcheck
gitleaks: trigger gitleaks

internal/service/platform/pipeline_filters/resource_pipeline_filters.go line 89 at r1 (raw file):

							Description: "Pipeline identifiers to filter on.",
							Type:        schema.TypeList,
							Optional:    true,

Is this optional?

internal/service/platform/pipeline_filters/resource_pipeline_filters.go line 349 at r1 (raw file):

		if attr := filterProperties["pipeline_tags"].([]interface{}); len(attr) > 0 {
			var hPipelineTags []nextgen.NgTag
			for _, v := range attr {

nit: can be extracted into common utility.

internal/service/platform/pipeline_filters/resource_pipeline_filters.go line 89 at r1 (raw file):

							Description: "Pipeline identifiers to filter on.",
							Type:        schema.TypeList,
							Optional:    true,

Is this optional?

yes, this is a filter on the identifiers.

trigger gitleaks


[wait for #1487] [manager] Add execution-order and lifespan of tensors

This patch adds the execution order and lifespan of all the requested tensors in the manager.

Create a lifetime and usage list for all the tensors which have been
requested by the manager in the form of weights/inputs/outputs/trainable
tensors.
A tensor name based map is used as each tensor has the name identifier.
Further, the restriction of the name to be unique is added for the
tensors which are requested by the manager.
TensorLifespan enum values are updated to be of the form of bit wise
enabling. This allows checking and upgrading lifespan of an existing
tensor.
Add the constraint of the output tensors of a node with the input
tensors of the next nodes. This allows memory pool to understand the
manager that these two inputs/outputs must use the same tensor and
enables tensor sharing.
This is acheieved by requesting already creating tensors with the given
name.

See Also #1127
Signed-off-by: Parichay Kapoor<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #1489. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnstreamer.mooo.com/.

:octocat: cibot: @kparichay, nntrainer/tensor/memory_pool.h does not include Doxygen tags such as @file @brief @author @bug. You must include the Doxygen tags in the source code. Please refer to a Doxygen manual at http://github.com/nnstreamer/TAOS-CI/blob/main/ci/doc/doxygen-documentation.md

:octocat: cibot: @kparichay, A builder checker could not be completed because one of the checkers is not completed. In order to find out a reason, please go to http://nnstreamer.mooo.com/nntrainer/ci/repo-workers/pr-checker/1489-202109231242310.92687892913818-888f15330424616e8e01c7d401d13cd17826fd87/.


added http protocol to log entry

Coverage increased (+0.007%) to 92.511% when pulling 7084fd180e6b630228a9881d96c0c03f6542c734 on log-http-protocol into 9adbe65c8719942ccb88f807b28e78a354003d18 on master.

Approved


Allow setting BaseURL for streaming server

The cri config only allows setting host:port for the streaming server, but I need to also set BaseURL.  This is a situation in which the listen address does not match the callback URL that should be sent to the client.

Is this the same with https://github.com/containerd/cri/pull/1093 and https://github.com/containerd/cri/issues/1011?


7307 send vector flag true in the editor when number of features is less than 10k

This is the backend side of #7307. It enables vector based on the statistic of row number. Since it's an statistic it's not always up-to-date and might enable vector if the table has recently grown beyond the threshold.
We still need to disable vector if user adds a layer. @xavijam can any frontend take care of it or should I dive into it?
@javitonino CR this, please.
cc @javisantana

I left a minor comment. Implementation seems reasonable. Stats are updated based on number of inserts or other operations (not time). so this should be fairly accurate even if the table grows suddenly. :+1:

Closing for the moment, as this is blocked and it won't be merged anytime soon.


pipenv: add lockfile

Add lockfile for reproducible build

Thanks @chenrui333, can you explain a bit the reason of this change? I see you are maintatiner of Homebrew, is that somehow related?

Thanks @chenrui333, can you explain a bit the reason of this change? I see you are maintatiner of Homebrew, is that somehow related?

Yeah, totally
Ideally, it would be great to leverage the lockfile to build from the source as it is (which I intended to bring it to the homebrew side), but I run into some issue (I will post it later on this).
But in general, I think it is preferred to have lockfile version controlled along with the source code.

Could you please point me to some documentation to better understand what you are willing to do? Thanks.

Since I haven't had more information about this I'll close it. Please feel free to reopen it and provide more information about packaging Prowler for Homebrew.


Internal type error when using manifest from 0.18.0 in 0.19.1

Describe the bug
A clear and concise description of what the bug is. What command did you run? What happened?
Running the command pipenv run dbt run --state /tmp/dbt.iMpUubo --defer -m state:modified --threads 10
with the previous dbt cloud run's (of version 0.18.0 I believe) manifest.json being downloaded into that tmp directory.
+ pipenv run dbt run --state /tmp/dbt.iMpUubo --defer -m state:modified --threads 10
Running with dbt=0.19.1
Encountered an error:
Field "exposures" of type typing.Mapping[str, dbt.contracts.graph.parsed.ParsedExposure] is missing in dbt.contracts.graph.manifest.WritableManifest instance

Steps To Reproduce
In as much detail as possible, please provide steps to reproduce the issue. Sample data that triggers the issue, example model code, etc is all very helpful here.
See above
Expected behavior
A clear and concise description of what you expected to happen.
This error message left me with little to do other than dig into the dbt source code, ideally we can provide a more informative message here.
Screenshots and log output
If applicable, add screenshots or log output to help explain your problem.
System information
Which database are you using dbt with?

[ ] postgres
[ ] redshift
[x] bigquery
[ ] snowflake
[ ] other (specify: ____________)

The output of dbt --version:
0.19.1

Although as mentioned the manifest is for an older version.  I suspect this is the cause of the failure.
The operating system you're using:
Ubuntu 18.04.5 LTS
The output of python --version:
3.8.5
Additional context
Add any other context about the problem here.

Hey @walshie4, thanks for opening! Your instincts here are all right on.
Field "exposures" of type typing.Mapping[str, dbt.contracts.graph.parsed.ParsedExposure] is missing in dbt.contracts.graph.manifest.WritableManifest instance

That's a pretty gross error (though I've seen grosser). The issue here is that state comparison requires comparison between the current manifest (your project, being run, right now) and the state manifest (the file passed to --state). A manifest produced by v0.18.0 and a manifest produced by v0.19.1 have different and incompatible schemas. In particular, v0.19.1 uses the v1 manifest schema, whereas v0.18.0 uses a pre-v0 (unversioned, uncontracted, undocumented) schema, and there were breaking changes between them.
Going forward, now that artifact schemas are versioned and contracted, we'll raise a much more helpful error if there's a mismatch:
https://github.com/fishtown-analytics/dbt/blob/26fb58bd1b08218781b182918f5ed4dec3f735d9/core/dbt/exceptions.py#L277-L285
Something like:
  Expected a schema version of "https://schemas.getdbt.com/dbt/manifest/v1.json" in
.state/manifest.json, but found "https://schemas.getdbt.com/dbt/manifest/v2.json".
Are you running with a different version of dbt?

That error is not guaranteed every time the dbt versions are different—only if there was a breaking change to the artifact schema between them, making comparison impossible.
I'm going to close this issue, since we'll have a more helpful error message going forward, so long as the state artifact and the current dbt invocations are both produced with versions >= 0.19.0.


Perf optimizations

Codecov Report

Merging #613 into master will decrease coverage by 0.05%.
The diff coverage is 81.81%.

@@             Coverage Diff              @@
##             master     #613      +/-   ##
============================================
- Coverage     82.54%   82.48%   -0.06%
- Complexity      905      911       +6
============================================
  Files            63       63
  Lines          4101     4122      +21
  Branches        511      514       +3
============================================
+ Hits           3385     3400      +15
- Misses          472      478       +6
  Partials        244      244

Impacted Files
Coverage Δ
Complexity Δ

...namodbv2/mt/util/CachingAmazonDynamoDbStreams.java
84.07% <100%> (+0.41%)
49 <0> (+4)
:arrow_up:

.../mappers/sharedtable/impl/TableMappingFactory.java
84.7% <64.7%> (-5.71%)
12 <4> (+2)

Continue to review full report at Codecov.

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


.fetch doesn't return headers

I'm doing this:
    const oQueryResponseList = await odata(
      url
      getDefaultRequestConfig()
    )
      .get(endpoint)
      .fetch(someQuery);
    const myHeader = response.headers.get('x-some-header');

When I do this, I don't get any headers back, just null. Is this supposed to be not supported?

Basically, it's the fetch response. So yes this should be supported. Your sure this header is set by your server? Also what happens if you ask for some default header like content-type?


chore(deps): update terraform terraform-ibm-modules/base-ocp-vpc/ibm to v3.35.2

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/base-ocp-vpc/ibm (source)
module
patch
3.35.0 -> 3.35.2

Release Notes

terraform-ibm-modules/terraform-ibm-base-ocp-vpc (terraform-ibm-modules/base-ocp-vpc/ibm)
v3.35.2
Compare Source
Bug Fixes

deps: update terraform-module (#549) (19d4415)

v3.35.1
Compare Source
Bug Fixes

deps: update terraform-module (#553) (7f9783b)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

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


Depend on matplotlib-base to avoid pyqt dependency

Checklist

[x] Used a fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[in progress] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

For my personal motivation, see this comment

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

license_file entry is missing, but is expected.

@conda-forge-admin, please rerender

Sorry, I am new to this. I'm just trying to fix a stray dependency. I might have misunderstood something about the license file. Any guidance would be appreciated. (Also, I am traveling at the moment, so my availability may be limited.)

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.
I do have some suggestions for making it better though...
For recipe:

license_file entry is missing, but is expected.

There's apparently no license file in the source, so I had to revert.  Sorry about the noise.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

Thanks @maresb!


Encoding of DateTime is inconsictent and maybe wrong

.net knows three kinds of DateTime values: Unspecified, Local and Utc
When encoding DateTime values of these kinds, Encode.datetime and Encode.Auto.toString produce different results. That was very unexpected to me.
The following code
    let local = DateTime(2000,1,1,0,0,0,0, DateTimeKind.Local)
    Logger.log "local"
    Logger.log (Thoth.Json.Encode.Auto.toString (1, local))
    Logger.log (Thoth.Json.Encode.datetime (local))

    let un = DateTime(2000,1,1,0,0,0,0, DateTimeKind.Unspecified)
    Logger.log "unspecified"
    Logger.log (Thoth.Json.Encode.Auto.toString (1, un))
    Logger.log (Thoth.Json.Encode.datetime (un))

    let utc = DateTime(2000,1,1,0,0,0,0, DateTimeKind.Utc)
    Logger.log "utc"
    Logger.log (Thoth.Json.Encode.Auto.toString (1, utc))
    Logger.log (Thoth.Json.Encode.datetime (utc))

produces this output (Running in Chrome on a machine with the german time zone)
	local
	"1999-12-31T23:00:00.000Z"
	2000-01-01T00:00:00.000+01:00

	unspecified
	"1999-12-31T23:00:00.000Z"
	2000-01-01T00:00:00.000

	utc
	"2000-01-01T00:00:00.000Z"
	2000-01-01T00:00:00.000Z

I expected at least for each kind that both encodings represent the same value. From my point of view the result of Encode.datetime is the right way to represent the different kinds of DateTime value. (The "Z" for UTC, no postfix for unspecified and the correct date and time with "+01:00" as time zone for local time).
A third party component created values of Kind.Unspecified am Midnight (e.g. 2000-01-01T00:00) for me, that where processed by Thoth / Fable to a JSON with "1999-12-31T23:00:00.000Z".
As a backend we use ASP.NET core and this value was decoded to a DateTime in the year 1999 without timezone (since there is no timezone in the DateTime type).

Hello @irgendwienet ,
sorry for the delay, I have been busy with the Fable.Core v3 updates lately.
In theory, this problem has been solved in Thoth.Json v3 so if you make the update it should be fine.
Here is the output I get:
local
"2000-01-01T00:00:00.000+01:00"
2000-01-01T00:00:00.000+01:00

unspecified
"2000-01-01T00:00:00.000"
2000-01-01T00:00:00.000

utc
"2000-01-01T00:00:00.000Z"
2000-01-01T00:00:00.000Z

Before Thoth.Json v3, auto coders where using another implementation than manual coder. Now they are using manual coder under the hood to garantee the same behavior when using one or another.
Please feel free to re-open, if the issue still exist in your case.


Mockoon DOWN

🚨 Service Alert: Check the details below
Monitor Details

Monitor Name: Mockoon
Incident Status: TRIGGERED
Severity: critical
Monitor Status: DOWN
Monitor Health Checks: 1
Monitor Failure Threshold: 1

Actions

View Monitor

[start_datetime:1732952220] [end_datetime:1732932421]

The incident has been auto resolved
Total downtime: 0 minutes


Autocomplete for dm-aware :FindFirstChild() calls break after 2nd child

The test case for #685 didn't check for this.

That test case should be the same as this one. I just added another test case and it also passes with the existing setup, so not sure what could've been different here.
In any case, maybe the fix for #699 will also fix this.

Can you confirm whether this got fixed in the recent update?

Yeah, it was fixed:


[Query] Does Ponzu support run on my existing DB(Mysql)

@nilslice i already have an API system, i expect the CMS system can connect to my existing DB(mysql), and take the existing tables(models) as the entities, to manage the content. Seems Ponzu doesn't support this after checked the your documentation. Is my understanding correct? Thanks!

Correct, Ponzu does not work as you had expected. That is an interesting idea though! :+1: You could use Ponzu, but would need to implement the editor.Editable interface on your models (as Content types in Ponzu), as well as register them to the item.Types map in their init() func. Then, the admin routes would need to talk to a different db.
Ponzu is responsible for both the DB (Bolt, an embedded data store), and the API to interact with its data.

Hi Nilslice, thanks your explanation, look forward your further release, believe there're more interesting feature available, cheers!

@garyyao - thanks, and feel free to join us on the #ponzu slack here: https://gophers.slack.com/messages/C3TBV356D/
and if you have ideas for features please let me know :)


List of hooks

This looks great. However, where can I find a list of hooks to attach to?

I tried adding this, but nothing prints.
serverless.yml
plugins:
  - serverless-scriptable-plugin

custom:
  scriptHooks:
    - before:package:initialize: npm run pre-packaging
    - after:package:finalize: npm run post-packaging

package.json
{
  "scripts": {
    "pre-packaging": "sh scripts/pre_packaging.sh",
    "post-packaging": "sh scripts/post_packaging.sh",
  },
}

scripts/pre_packaging.sh
#!/bin/sh
echo "Hello World"

scripts/post_packaging.sh
#!/bin/sh
echo "Hello World"

The hooks are different to providers, here's a reference of AWS hooks:
https://gist.github.com/HyperBrain/50d38027a8f57778d5b0f135d80ea406#file-lifecycle-cheat-sheet-md

The hook names you added to the serverless.yml are correct, but need a little bit changes (remove - before hook name):

plugins:
  - serverless-scriptable-plugin

custom:
  scriptHooks:
    before:package:initialize: npm run pre-packaging
    after:package:finalize: npm run post-packaging

Thank you for the help!
As someone new to serverless, the impact of these tiny differences in the yaml is quite astonishing..


Add support for commands to exit apps

MacOs - cmd + q
Win - alt + f4
Unix?

Seems it is already supported and closing was blocked by popup confirmation, which was removed.


http://localhost:9446/carbon can't access

Hi everyone!
I installed  wso2 iot  ,but http://localhost:9446/carbon can't access
it is  display "403 Forbidden ".

OS  IS    WINDOW 2007  X64.

We have blocked the broker UI intentionally, since there aren't any UI to view mqtt topics.

why??

There were few security issues that we found on the carbon console and since there weren't any valid use cases to enable the UI, we disabled it. Is there any reason why you wanted to access the node ?

i want to  test  broker cluster.

If you any more question, please reopen.


Signing with localhost:12537 inexplicably changes txns from net999 to net2999 (?)

Describe the bug
When I attempt to sign & send a transaction using the built-in network settings for Localhost 12537, after clicking "confirm", it fails to sign the transaction with an error about "net2999", even though the to/from addresses in my transaction are both "net999".
To Reproduce

Run a conflux devnet on localhost:12537 with netId 999
Fund an account and add that account to Conflux Portal
Open this html in a browser with ConfluxPortal installed:

<html>
<head>
<script type="text/javascript">
async function transfer(from, to, value) {
  value = '0x' + BigInt(value).toString(16)
  console.log({from, to, value});
  return new Promise((resolve, reject) => {
    conflux.sendAsync({
      method: 'cfx_sendTransaction',
      params: [{from, to, value}],
      from,
      value,
    }, (err, data) => {
      if (err) { reject(err); } else { resolve(data); }
    })
  });
}

async function go () {
  const from = (await conflux.enable())[0];
  const to = document.getElementById('to').value || from; // default: send to self
  const amt = parseInt(document.getElementById('amt').value) || 10; // CFX
  const value = amt + '0'.repeat(18); // Drip

  await transfer(from, to, value);
}
</script>
</head>
<body>
  <input id="amt" type="number" value=10 style="width: 3em" /> CFX
  to <input id="to" placeholder="paste address here" />
  <button onClick="go()">Send</button>
</body>
</html>

Choose "Localhost 12537" from the ConfluxPortal network options
Select any address that you want to send devnet CFX to
Click "Send"
Choose the address to send from, if prompted
Click "Confirm" from the ConfluxPortal dialogue

Expected behavior
sendAsync should transfer the funds on the devnet running at localhost:12537. (It works on TestNet.)
Browser details (please complete the following information):

OS: macOS Big Sur
Browser: Firefox 89.0.2
ConfluxPortal Version: 0.6.8

Additional context
Sometimes it will not let you click Confirm, claiming that there is no balance (even on accounts with a balance on your localhost devnet.) Other times, it will fail with the following error:
ConfluxPortal - RPC Error: Error: [ethjs-query] while formatting outputs from RPC '{"value":{"code":-32603,"message":"Invalid parameters: address","data":"\"network prefix unexpected: ours net999, got net2999\"","stack":"Error: Invalid parameters: address\n    at s (chrome-extension://opafkgfpaamecojfkaialabagfofilmg/background.js:1:398023)\n    at Object.internal (chrome-extension://opafkgfpaamecojfkaialabagfofilmg/background.js:1:398412)\n    at l (chrome-extension://opafkgfpaamecojfkaialabagfofilmg/background.js:1:393516)\n    at chrome-extension://opafkgfpaamecojfkaialabagfofilmg/background.js:1:392727"}}'

This is nonsense. See the output of the console.log included in the html snippet above, which will indicate that the transaction being sent is for net999 as it should be.

Note that if you create a "custom rpc" network option, and point it at <IP_ADDRESS>:12537 (it will not allow you to do localhost:12537), then everything works as expected. I have no idea why the built-in localhost:12537 settings are misbehaving.


Configure Vector Database

Summary
Adding the ability to configure vector database.
Fixes
#510 (API part)

[x] My code follows the code style of this project and passes make format.
[x] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ]  My change has adequate unit test coverage.

This pull request includes changes to several files in the codebase. Here's a summary of the changes:

In libs/superagent/app/agents/base.py, the get_agent function now includes an additional level of nesting for the "datasources" field, including the "VectorDb" field.
In libs/superagent/app/agents/langchain.py, the _get_tools function now includes the "options" and "provider" fields from the "VectorDb" object in the metadata.
In libs/superagent/app/api/datasources.py, the create function now checks if the provided vector database provider is valid and raises an exception if it's not. It also includes logic to retrieve the vector database based on the provider and create a datasource with the vector database ID.
In libs/superagent/app/api/datasources.py, the delete function now retrieves the vector database associated with the datasource and includes the vector database options and provider in the run_delete_datasource_flow function.
A new file libs/superagent/app/api/vector_dbs.py has been added, which includes endpoints for creating, listing, getting, and updating vector databases.
In libs/superagent/app/datasource/flow.py, the vectorize and handle_delete_datasource functions now include the vector database options and provider in the VectorStoreBase initialization.
In libs/superagent/app/models/request.py, a new model VectorDb has been added to represent the vector database object.
In libs/superagent/app/models/response.py, new response models VectorDb and VectorDbList have been added.
In libs/superagent/app/routers.py, the vector_dbs router has been included in the API routers.
In libs/superagent/app/tools/datasource.py, the _run and _arun functions now include the vector database options and provider in the VectorStoreBase initialization.
In libs/superagent/app/utils/env.py, a new function get_first_non_null has been added to return the first non-null value from a list of arguments.
In libs/superagent/app/vectorstores/base.py, the VectorStoreBase class now includes the vector database options and provider in the initialization and passes them to the appropriate vector store class.
In libs/superagent/app/vectorstores/pinecone.py, the PineconeVectorStore class now includes the vector database options and provider in the initialization.

Overall, these changes introduce support for vector databases in the codebase, including creating, listing, getting, and updating vector databases, associating vector databases with datasources, and using vector databases in the vector store functionality.

@homanp what's the purpose of the second URL? can I remove it?
https://github.com/homanp/superagent/blob/main/libs/superagent/app/vectorstores/qdrant.py#L19C1-L23C1


Error while installing RSS Reader App : Cannot have installation setting values for app settings that are marked as global settings

Failure
Cannot have installation setting values for app settings that are marked as global settings

Update: After the error, app is installed by proceeding.

Fixed by Pavel .


add user defined barrels to system-config.ts

In system-config.ts the barrel configuration is component specific and projects as if it is controlled only or could be altered by the cli pursuant the the comment in the file.
////////////////////////////////////////////////////////////////////////////////////////////////
/***********************************************************************************************
 * Everything underneath this line is managed by the CLI.
 **********************************************************************************************/

As with the option for the user to define relative paths and packages above this line, we should be able to define custom barrels.
such as:
const mybarrels : string[] : ['app/materialdesign'];

and then have these merged in
const cliSystemConfigPackages: any = {};
barrels.concat(mybarrels).forEach((barrelName: string) => {
  cliSystemConfigPackages[barrelName] = { main: 'index' };
});

alternatively add command to cli ng barrel materialdesign which adds the folder name to the barrels[]
@Brocco @johnpapa

I agree it can be confusing, just not certain which approach would make the most sense. There's an internal module in the CLI which handles registering barrels, so implementing ng barrel would be relatively painless, but not sure how common the use case will be.

+1
Just ran into this issue. Had to edit 2 files to add material design components:
Both angular-cli.json
  "packages": ["@angular2-material/core", "@angular2-material/button"],

And src/system-config.ts
/***********************************************************************************************
 * User Configuration.
 **********************************************************************************************/
/** Map relative paths to URLs. */
const map: any = {
  '@angular2-material': 'vendor/@angular2-material'
};

/** User packages configuration. */
const packages: any = {
  '@angular2-material/core': { main: 'core' },
  '@angular2-material/button': { main: 'button' }
};

Also angular-cli-build.js
<EMAIL_ADDRESS>

The angular-cli.json does not have packages support right now. That part doesn't end up being used.

Hi, first thanks for this tool.
What about making generating components by default with barrels, unless a --no-barrels flag was provided?
this way we have two pattern of generating components/routes/pipes... with or without barrels, maybe later it could be added as a param in the .ember-cli file or angular-cli.json this will make adding barrels to the system-config.ts file automated by the cli no need for user defined barrels at least not for all new generated component, maybe for some cases.

why would you not want a barrel? its a convenience.

@johnpapa , I do want them, but I thought this tool doesn't generate barrels all the time, this is related to this issues #513 #585 #586.
My case is when I created created a custom class under the shared folder I didn't get barrels, like this:
ng g class shared/helpers/url helper

I run that command after I had to create the shared/helpers folder manually I got under it only the 2 url.herlper.ts & url.herlper.spec.ts no index.ts file & in the shared/index.ts the url.helper.ts file was exported instead of the shared folder, so related to this issue I thought if the barrels generation became a convention for all generated folders (after adding the ability to make folders too) this would make it easier to manage the cli addition of barrels into the system-config.ts file and also remove the burden of adding them into a user defined barrels not that it is a bad idea to have user defined barrels variable in the system-config.ts file but I think it should not be used so much for adding barrels that could be inserted by the cli, what you think?

Made obsolete by #1455.


[ENG-3423] Version metadata updates

Ticket: ENG-3423
Feature flag: n/a

Purpose

Clean up some weirdness around registrations with one approved schemaResponse (the original) and another in-progress

Summary of Changes

Update the diffManager to only get the responses from the latest approved revision when no revisionId is specified
Update the condition to show the version metadata box, so the box no longer shows up when there is only one approved response and one response in progress (2 or more responses need to be public before the version metadata box appears)

Screenshot(s)
Side Effects
QA Notes

this is primarily concerned with the case where a registration has only had its original answers approved, and has 1 update in progress.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 73.14%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
5172

Relevant Lines:
6805

💛  - Coveralls


refactor-node-test-runner

Replace tap library by node test runner

@all-contributors please add @clbcky for test


[BUG] unsupportedoperators.csv shows stageID=-1 for certain unsupported operator

Describe the bug
unsupportedoperators.csv shows stageID=-1 for certain unsupported operator.
Does it mean Qual tool could not figure out which stage is associated with certain unsupported operators?
As a result, Qual tool thinks the % of unsupported duration is very low which could be wrong.

After taking a look at the eventlog.
The get_json_object appears as an expression of project
Currently, we can link project to a stageID iff it is contained inside WholestageCodeGen because the ltter has metrics that can be linked into stageID.
There is no clear path to work around this. We can try adding some heuristics that link an exec to a stage based on the neighboring expressions, but then we need to come up with a well defined strategy for that. Otherwise, it will be come a big mess of heuristics that's hard to understand.

We need to investigate further by checking the SHS code that parses the RDD information inside a stage.
There might be some further information about linkage between the execs and their stages.
This concern has been raised before in https://github.com/NVIDIA/spark-rapids-tools/issues/794

Bug identified in the tools code

The heuristics that looks at stageIDs of the neighbours node (getStageToExec link ) does not update the ExecInfo objects. As a result, the final output report won't show the linked stages.
The implementation of the heuristics flatten the entire execs into a sequence without taking into considerations the (sink-source) nature of the edges. This leads to looking into pairs of nodes using indices even though they have no edges.
The heuristics introduce extra overhead as it reprocesses everything which has been already processed in previous steps.
The Profiling tool also has a bug that it does only stageID assignments based on accumulatorIDs. This affects the logic but it is invisible to the user because the profiling tool only generates reports related to metrics.

The suggested plan to fix this bug is:

Create a standalone Parser to the SparkGraph that can build the map between nodes to stages. The implementation should be a very simple Graph Traversal
The new code should be usable by both Qual/Profiling tools to be consistent with the logic.
ETA (2-3 days to account for removing dead code across both tools)

CC: @mattahrens


MatBlazor TypeAhead control

First off, well done on this control set. All the contributors are making great work at this, I'm looking forward for the next version.
I have been evaluating MatBlazor for a project and found that there is one control to we need to implement the requirements effectively. A TypeHead control for selecting a value from a large data source based on user input or filtered text.
We did currently attempted to use the MatAutoComplete with some success by hooking into the OnTextChanged event and filtering/updating the bound collection.
`@if (Values != null)
{
<MatAutocompleteList ShowClearButton="true"
CustomStringSelector="@(i => $"{i?.Name}")"
@bind-Items="@Values"
OnTextChanged="OnSearchTextChanged"
@bind-Value="@SelectedValue">
</MatAutocompleteList>

}
@code{
public SomeObject[] Values { get; set; }

public SomeObject SelectedValue { get; set; }

public SomeObject[] DataStore { get; set; }

protected override void OnInitialized()
{
	this.Values = new SomeObject[0];

	this.DataStore = new SomeObject[] {
	new SomeObject() { Id = 1, Name = "Item 1", Reference = "Quisque ", Description = "Lorem ipsum dolor sit amet, consectetur adipiscing elit." },
		new SomeObject() { Id = 1, Name = "Item 2", Reference = "Mauris", Description = "Phasellus malesuada dui arcu, aliquet mattis libero tempus ac." },
		new SomeObject() { Id = 1, Name = "Item 3", Reference = "Suspendisse", Description = "Nullam imperdiet justo at elementum interdum." },
		new SomeObject() { Id = 1, Name = "Item 4", Reference = "Nullam", Description = " Etiam porta dapibus purus." },
		new SomeObject() { Id = 1, Name = "Item 5", Reference = "Proin", Description = "uisque elit risus, rutrum id venenatis mollis." }
	};

	base.OnInitialized();
}

void OnSearchTextChanged(string value)
{
	this.SelectedValue = null;
	this.Values = this.DataStore.Where(i => i.Name.Contains(value) || i.Reference.Contains(value) || i.Description.Contains(value)).ToArray();
}

public class SomeObject
{
	public int Id { get; set; }

	public string Name { get; set; }

	public string Description { get; set; }

	public string Reference { get; set; }
}

}`
The issues we ran into where the following:

When searching on fields that are not displayed as part of the CustomStringSelector are not being showed in the selection list.

When searching in typeahead controls there is usually a de-bounce time or character limiter that can be configured to prevent the data store to be hit too often.

I was hoping that the contributors would consider implementing a a typeahead similar control in the future releases.
Some example controls:
https://github.com/twitter/typeahead.js

@Christoffleroux
This may be a great initial PR from you to the project. 🙂


A manual command for comparing contract sizes

Closes #881
Changes
I made the following backwards-compatible changes to existing bash build scripts:

contract-builder docker containers spawned by build scripts now include a hash of their workdir in their names - this means you can work on two workdirs with different paths without unexpected behavior
docker build scripts get the --cargo-cache-dir parameter - if provided, they bind .cargo cache directories to host fs so they can be persisted as needed
docker builds are internally performed by the same user UID as the one running the script - this means all resulting artifacts are owned by that user and don't require root permissions to clean up.

I chose Python for this new script because I know it, it's convenient and popular, and has better abstractions than bash.
Usage
In a PR, post a comment with /compare as the body and wait a few minutes. After a while a comparison should be posted in a new comment.
You can also run the script locally, as long as you're not on the master branch and the master branch is available in git. master will be checked out to a tempdir and later cleaned up, so no worries about polluting your local fs.
ci/compare_sizes/compare_sizes.py

See it in action here.
Notes
The workflow file needs to be on the default branch to be usable.

I suspect the buildkite failure is related to it persisting old root-owned artifacts. I'll try to clean its cache once I get the permissions!

@uint Here is the error message:

Nothing jumps to my head immediately. Do you know what I can do there?

@uint I don't see any cache setup on BuiltKite. Here is the whole workflow config there:
steps:
  - command: " source ~/.cargo/env && rustc --version && cargo --version && rustup update 1.69 && rustup default 1.69 && rustup target add wasm32-unknown-unknown && ./ci-test.sh"
    label: "run tests"
    artifacts:
    - "examples/*/res/*/*.png"
    agents:
    - "distro=amazonlinux"
    timeout: "180"

Any clues?

Any clues?

@frol No idea. Instead of trying to figure that out, I reverted my changes to the bash scripts and made it so that the new Python one doesn't need them. We're back to green CI.
How's this?


[Question]: Cannot load a summary index when using remote chroma db

Question Validation

[X] I have searched both the documentation and discord for an answer.

Question
I do all the usual persisting of embeddings in chroma db and have the DocumentSummaryIndex working:

        chroma_collection = self.chroma_db.get_or_create_collection(collection)
        vector_store = ChromaVectorStore(chroma_collection=chroma_collection)

        # check if persist_dir exists
        # if persist_dir and not os.path.exists(os.path.join(persist_dir, "docstore.json")):
        #     os.makedirs(persist_dir, exist_ok=True)
        #     logging.info(f"Created persist dir: {persist_dir}")

        storage_context = StorageContext.from_defaults(
            vector_store=vector_store,
        )

        response_synthesizer = get_response_synthesizer(
            response_mode="tree_summarize", use_async=True, llm=self.llm
        )
        splitter = SentenceSplitter(chunk_size=1024)
        embed_model = get_embedding_model(embed_model_name, self.embed_model_finetuned_root_dir)

        self.documents = documents

        doc_summary_index = DocumentSummaryIndex.from_documents(
            documents,
            llm=self.llm,
            transformations=[splitter],
            response_synthesizer=response_synthesizer,
            show_progress=True,
            embed_model=embed_model,
            storage_context=storage_context,
        )

However, when I finally try to load from the summary index :
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)

storage_context = StorageContext.from_defaults(
    vector_store=vector_store,
)

# loaded_summary_index = load_index_from_storage(storage_context, llm=llm, embed_model=embed_model)
loaded_summary_index = VectorStoreIndex.from_documents(
    documents=documents,
    storage_context=storage_context,
    embed_model=embed_model,
)

retriever = DocumentSummaryIndexEmbeddingRetriever(
    loaded_summary_index,
    embed_model=embed_model,
    vector_store=vector_store,
    # docstore=docstore,
    # similarity_top_k=1,
)
from llama_index.core.query_engine import RetrieverQueryEngine

# configure response synthesizer
response_synthesizer = get_response_synthesizer(response_mode="tree_summarize", llm=llm)

# assemble query engine
query_engine = RetrieverQueryEngine(retriever=retriever, response_synthesizer=response_synthesizer)

# query
response = query_engine.query(
    """look up the following"""
)

I keep getting the error:
AttributeError: 'IndexDict' object has no attribute 'summary_id_to_node_ids'
Thiss happening when I do the query_engine.query
It is barking here:
DocumentSummaryIndexEmbeddingRetriever._retrieve(self, query_bundle)
    [183]results = []
    [184]for summary_id in top_k_summary_ids:
--> [185]     node_ids = self._index_struct.summary_id_to_node_ids[summary_id]
    [186]     nodes = self._docstore.get_nodes(node_ids)
    [187]     results.extend([NodeWithScore(node=n) for n in nodes])

AttributeError: 'IndexDict' object has no attribute 'summary_id_to_node_ids'

what am i doing wrong?

A document summary index needs more than just a vector store -- you need to manage the docstore and index store as well
You can setup a remote docstore and index store (mongodb, redis, postgres, firestore) or just save to disk
Here's an example saving to disk
doc_summary_index.storage_context.persist("index")

from llama_index.core import load_index_from_storage
from llama_index.core import StorageContext

# rebuild storage context
storage_context = StorageContext.from_defaults(vector_store=vector_store, persist_dir="index")
doc_summary_index = load_index_from_storage(storage_context)

Thanks @logan-markewich ,
Can you please show me the everything how you would save the doctstore to disk? I've tried that and it does not work.


Update GDI spec version

Do we actually satisfy this new version?

Yep - there were no changes for instrumentation libraries (maybe except RUM) from 1.1


fix: Improve input handling for input_signature

Description

Improve error messaging for input signature arguments by verifying the nesting depth of the object is within the bounds specified in the TorchScript compiler
Throw user-error more quickly to avoid less-interpretable error messages later on

Relevant GraphInputs code:
https://github.com/pytorch/TensorRT/blob/5fa63743fc4448e38b1e6b01e7403c0d74717158/core/ir/GraphInputs.cpp#L42-L54
Fixes #1595
Type of change

Improved input handling + error messaging

Checklist:

[ x ] My code follows the style guidelines of this project (You can use the linters)
[ x ] I have performed a self-review of my own code
[ x ] I have commented my code, particularly in hard-to-understand areas and hacks
[ x ] I have made corresponding changes to the documentation
[ x ] I have added tests to verify my fix or my feature
[ x ] New and existing unit tests pass locally with my changes
[ x ] I have added the relevant labels to my PR in so that relevant reviewers are notified

Is 2 arbitrary or is there some sort of technical depth limit?

The choice of maximum depth of 2 is based on the data structure used to store the inputs: std::vector<std::vector<Input>>. While this structure could be expanded via adding more nested vector structures, a more robust solution would be desirable (supporting arbitrarily complex collections).


Increased Events = Increased Lag

Describe your problem here.
I'm making a BETADCIU mod and already have everything ready. But when I swap between the characters, the more "Change Character" events I use, the more my computer lags. My computer is an Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz   1.80 GHz. Is there any workaround to the lag?
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
No

You are storing a ton of graphics, your PC probably isn't very strong so it will lag
Best you can do is remove empty space from spritesheets to reduce memory

the delays more than due to the event is due to the size of the sprites that you are using, both characters and scenarios, etc., they occupy a lot of device resources, unless you know how to do this type of thing there is no good solution, I recommend you to install versions optimized of the mods that you will use in question

You are storing a ton of graphics, your PC probably isn't very strong so it will lag Best you can do is remove empty space from spritesheets to reduce memory

that works but not very effective as it still takes too much space on big sprites, its better to remake the sheets with the fla file or look for low end optimized versions
I am an optimizer and the difference is noticeable
I attach an example

:

the delays more than due to the event is due to the size of the sprites that you are using, both characters and scenarios, etc., they occupy a lot of device resources, unless you know how to do this type of thing there is no good solution, I recommend you to install versions optimized of the mods that you will use in question

Do you mean psych ports? Because that’s what I’ve been doing. I’ve also turned on Low Quality to see if it would do anything. I even tried my other computer, and that was still outputting low frames. The cover is Madness with 35 characters, is it possibly too much for Psych Engine?


Semantics of time_units/generation_time unclear in MDM

It's reasonably clear what the semantics for time_units and generation_time are from the perspective of the human data model. However, I'm not clear what the semantic are  in the parsed output. One straightforward thing we could do is to get the parser to resolve to generations, but I think that's probably too reductive.
So, it's up to the simulator to check what the time units are, and to see if it likes these units, raising an error if it doesn't?
Also, it's not clear why we allow "null" as an input value here:
  generation_time:
    type: ["number", "null"]
    exclusiveMinimum: 0
    exclusiveMaximum: .inf
    default: null

Why default to null, and not simply be empty?

So, it's up to the simulator to check what the time units are, and to see if it likes these units, raising an error if it doesn't?

It's up to the simulator to convert to generations if that is needed. The generation_time field must be specified if time_units aren't generations, so this shouldn't be a problem in practice.

Also, it's not clear why we allow "null" as an input value here:
  generation_time:
    type: ["number", "null"]
    exclusiveMinimum: 0
    exclusiveMaximum: .inf
    default: null

Why default to null, and not simply be empty?

I'm not sure what you mean by empty. Part of the beauty of haing the MDM is that code no longer needs to check if a field exists, because it is guaranteed to be present. Maybe we could avoid having this null in the MDM schema by resolving "not specified" to the value 1?

Sorry, I meant why do we support null in the HDM

I don't think there's any reason for that, other than null being somewhat synonymous with None, or "not set". Probably it can just be removed from the HDM schema with zero code changes needed anywhere.


Sort key CSV prototype

Adds functionality to load a CSV file containing lines, each of which is a set of filters plus a target value in the last (rightmost) column. The first line for which all the filters match on a feature will set the target value as a property.
@rmarianski could you review, please?

:+1:


apache and modsecurity

I have been trying to build modsecurity 3.0.5 and modsecurity-apache 0.0.9-beta1 and am really struggling.
I have seen a comment from zimmerle saying that "currently modsecurity-apache supports modsecurity 3.0.4" - but I don't know what version of modsecurity-apache "currently" refers to. Is it still the case as at today? or have things changed.
Subsequently I have tried to build 3.0.4 and am seeing issue 2519 - which is really not an ideal start.
Further, I am seeing people commenting on modsecurity-apache issues saying it's "unstable" and asking "what is planned for future?" for the connector - and there is absolutely no response from the developers
...all of which is really worrying.
Against this backdrop, my questions are really as follows:
Has apache been abandoned from a modsecurity 3.0.x connector perspective?
Is modsecurity-apache 0.0.9-beta1 stable for an apache production environment, or should I be installing modsecurity v2.9.4 ? And if so, what is the future of the modsecurity 2.9 series?

Hi @rickyrocker ,
It is not recommended to use ModSecurity v3 with Apache. There are still enough portions of functionality that do not work correctly that it is not considered production-ready.
With Apache, ModSecurity v2.9.x is still the recommended version to use.
Re:

Further, I am seeing people commenting on modsecurity-apache issues saying it's "unstable" and asking "what is planned for future?" for the connector - and there is absolutely no response from the developers

There is a response here at least:
https://github.com/SpiderLabs/ModSecurity-apache/issues/77
The Apache connector has not been abandoned.  The lack of progress there is simply a matter of prioritization.
ModSecurity v2.9.x continues to be a solid implementation.  There are no plans to discontinue the v2.9.x line while a fully functioning v3 implementation for Apache is still unavailable.

Hi @rickyrocker ,
It is not recommended to use ModSecurity v3 with Apache. There are still enough portions of functionality that do not work correctly that it is not considered production-ready.
With Apache, ModSecurity v2.9.x is still the recommended version to use.
Re:

Further, I am seeing people commenting on modsecurity-apache issues saying it's "unstable" and asking "what is planned for future?" for the connector - and there is absolutely no response from the developers

There is a response here at least: SpiderLabs/ModSecurity-apache#77
The Apache connector has not been abandoned. The lack of progress there is simply a matter of prioritization.
ModSecurity v2.9.x continues to be a solid implementation. There are no plans to discontinue the v2.9.x line while a fully functioning v3 implementation for Apache is still unavailable.

Currently,
Some restriction from usage Modescurity v3 in production with Apache?

@willyamcts ,
There is no change in status. For use with Apache, ModSecurity v2.9.x is the recommended version.


How do I set actionBarHidden?

With NativeScript we can hide the ActionBar with the page-attribute actionBarHidden=true, in nativescript-angular we have to use:
import {Page} from "ui/page";

@Component({
// ...
})
class MyComponent {
  constructor(page: Page) {
    page.actionBarHidden = true;
  }
}

But that won't work on web or electron, since we won't be able to import "ui/page" from nativescript on web.
What's the best way to do this?

There's actually a custom root component for the {N} app here:
https://github.com/NathanWalker/angular2-seed-advanced/blob/master/nativescript/app/pages/app/app.component.ts
You can inject Page there.
There's some other ways you could go if you need to inject Page in other components or other services: a) use an OpaqueToken which could be provided for in either platform, using ui/page for {N} app, and an empty object for web, b) use a service would could also be provided for in both platforms.
Angular 2 provides a multitude of ways to handle this sort of thing :)

Thanks for you reply.
I think I need to use a service, since the nativescript-angular router injects the Page-object.

I've just added a PR for this: https://github.com/NathanWalker/angular2-seed-advanced/pull/247


Track replaced data in changes

Hi! Thank you for such awesome library.
I have a question regarding workflow with old data. I have a lot of records in database already and don't want to lose any changes history.
So my problem is: when I'll integrate Carbonite into existing table and it will track first change (eg record updated) - I'll don't know what data I had before this update. (since there it no initial insert transaction).
I saw in earlier versions you stored both new and old data so it was possible to make DIFF based on it. But then you deleted old data for some reason.
So what I suggested workflow here? Should I backfill my transactions/changes from existing data? Or there any better options?
Thank you!

Hi @ssbb Thanks for your kind words.
TBH I don't quite remember the exact reasons for changing new/old into data/changed - waste of storage space perhaps.  Let me see if I can fix this.

Hi @ssbb Thanks for your kind words.
TBH I don't quite remember the exact reasons for changing new/old into data/changed - waste of storage space perhaps.  Let me see if I can fix this.

Oh thank you, it looks fantastic! Looks like much better solution than backfilling transactions/changes from existing data. Had no idea you will just do it ❤
Just thinking - do you think it will make sense to add same option for delete as well? I can try to prepare PR later

@ssbb :thinking: For DELETE we already record the entire record in data - or maybe I don't get what you mean?

Yeah sorry my fault :)
Thank you a lot again!


WIP CSLC quality assurance

This PR adds:

computation of min, mean, max of CLSC rasters and corrections
determine number of invalid pixels in geocode raster (Very slow!)

To do:

[x] browse image
[ ] debug slowness or remove feature

Initial take on CSLC browse image

WRT to the browse image, have you interacted with @nemo794? We do want to have the browse image in EPSG:4326 and with a gray color scale. We need to iterate whether we want to use linear or dB scale and other nits ...

Plots linear and log in grayscale

@LiangJYu the CSLC-S1 images look cool. Can we improve the contrast by doing some histogram stretching? I have a function to do that if needed

@LiangJYu the CSLC-S1 images look cool. Can we improve the contrast by doing some histogram stretching? I have a function to do that if needed

@vbrancat please share! Thank you!

@LiangJYu the CSLC-S1 images look cool. Can we improve the contrast by doing some histogram stretching? I have a function to do that if needed

Do something like this?
 found linked from SO here

@LiangJYu the CSLC-S1 images look cool. Can we improve the contrast by doing some histogram stretching? I have a function to do that if needed

Do something like this?  found linked from SO here

If you want something simpler, I might just try  gamma correction + clipping at a percentile threshold. It's only a few lines (e.g. like this function) and can look better than log scaling.

On the subject invalids/nans in image, this is probably best done in the isce3 core module by throwing in an isnan accumulator while loop through all the valid pixels.

@LiangJYu ready to be reviewed?

@LiangJYu ready to be reviewed?

In a couple hours. Need to test reorg and add documentation.

Code is untested but barring anything seriously wrong this is pretty close to final implementation.
TODO:

testing
more documentation

@seongsujeong do you have time to go through this? We need it for the Gamma delivery!


Update chocolateyInstall.ps1

By having an valid exit code line. Chocolatey seems to think it needs a 'url64bit' expression. It is the only real change made to the install besides the checksums.
@gep13 this seems to be a interesting bug in chocolatey.

@gep13 The file should pass verification now.

@RedBaron2 was the Valid Exit Codes something you added as part of your recent modifications to this package?  @ferventcoder are you aware of any bugs around the valid exit codes?

It's not necessary to pass unless it needs to be more than 0. Possibly a
bug otherwise.
On Saturday, August 6, 2016, Gary Ewan Park<EMAIL_ADDRESS>wrote:

@RedBaron2 https://github.com/RedBaron2 was the Valid Exit Codes
something you added as part of your recent modifications to this package?
@ferventcoder https://github.com/ferventcoder are you aware of any bugs
around the valid exit codes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chocolatey/chocolatey-coreteampackages/pull/271#issuecomment-238045784,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAD4DkjWH9561mMsKj-R_U4V4RbakPCmks5qdOaZgaJpZM4JeS96
.

--
Rob
"Be passionate in all you do"
http://codebetter.com/robreynolds
http://ferventcoder.com
https://twitter.com/ferventcoder

@gep13 @ferventcoder I will make whatever changes is necessary to make the package work correctly with chocolatey

@gep13 @ferventcoder made changes that should work the best. Chocolatey will determining bitness, and install the correct version for the system. If this works out would be a good template for future packages maybe.

getting ERROR: Cannot process argument transformation on parameter 'url64bit'. Cannot convert value to type System.String.

If this works, it could be a good template for future packages maybe.

I'd suggest running choco new chromium from latest choco and looking at the output. Most of what you added is already templated (without issues).

@ferventcoder Thanks for the guidance Rob.
I will go back to reading over the functions of chocolatey more before making anymore edits to code.

@gep13 @ferventcoder Thanks 👍


npm test - Uncaught ReferenceError: describe is not defined

Hello! I was trying to put together a PR for fix the fact that the adapter doesn't follow the mocha reporter spec, but I can't get the tests for the repo to run, which is annoying :(
Does anyone know what I'm doing wrong or has the repro just have bitrot. That said the test:lib pure mocha script works fine. It also appears mock-fs dependency is so out of date it doesn't support node 8 as well...
>$ npm install
>$ npm test

><EMAIL_ADDRESS>test /Users/XXXXX/Code/Karama/karma-mocha
> grunt test

Running "karma:adapter" (karma) task
13 10 2017 22:05:59.370:WARN [watcher]: Pattern "/Users/XXXXX/Code/Karama/karma-mocha/lib/adapter.js" does not match any file.
13 10 2017 22:05:59.399:INFO [karma]: Karma v1.7.1 server started at http://<IP_ADDRESS>:9876/
13 10 2017 22:05:59.399:INFO [launcher]: Launching browser Chrome with unlimited concurrency
13 10 2017 22:05:59.405:INFO [launcher]: Starting browser Chrome
13 10 2017 22:06:00.019:INFO [Chrome 61.0.3163 (Mac OS X 10.12.6)]: Connected on socket 5xqb-Hn_15fRzgx8AAAA with id 87474646
Chrome 61.0.3163 (Mac OS X 10.12.6) ERROR
  Uncaught ReferenceError: describe is not defined
  at test/src/adapter.spec.js:23
Chrome 61.0.3163 (Mac OS X 10.12.6): Executed 0 of 0 ERROR (0.147 secs / 0 secs)
Warning: Task "karma:adapter" failed. Use --force to continue.

Aborted due to warnings.
npm ERR! Test failed.  See above for more details.

@dignifiedquire @maksimr

I have the same problem

@jason-krypton @changqing1989
I could not reproduce it.

I had the same problem. But I built package with npx grunt command and all is work.
@maksimr, it's easy to reproduce at clean repository. Just run npm install, then npm test. And you will see error.


Jobs: Job to run multiple Pods in parallel

In your documentation
https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-patterns
there are several comments point to the following statement:
You can also use a Job to run multiple Pods in parallel.
I do not see this possibility when looking at the Job spec. Also the following thread is coming to the conclusion that a single job cannot control multiple pods via its spec:
https://stackoverflow.com/questions/63160405/can-a-single-kubernetes-job-contain-multiple-pods-with-different-parallelism-def
I understand that a Job can create one pod that can create multiple pods. But one Job IMO can only create one pod and so either the documentation is confusing (incomplete) or I am missing something.
Can you please clarify?
Thanks

Ok, I see this is covered as follows in the doc:
If you do specify .spec.parallelism and .spec.completions both greater than 1, then there may be multiple pods running at once.
I am closing the ticket. Thanks!


Articles that don't contain enough info to make them into paragraphs

[ ] https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/Concepts/Ten-minute-hack-vs-one-day-work.md
[ ] https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/Concepts/Start-with-passsing-tests.md
[ ] https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/Concepts/Using-appsec-to-measure-quality.md
[ ] https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/For-developers/Risk-profile-of-frameworks.md
[ ] https://github.com/DinisCruz/Book_SecDevOps_Risk_Workflow/blob/master/content/2.Risk-workflow/For-developers/Test-lifecycle.md

Thx @Ambg05 , btw check out how I did the check-boxes in the markdown text
That makes it easy to manage which ones have been done


[Discussion] Path to composability

Preface
Hey! Thought I'd open an issue to discuss something that I would like to implement. It should also help me with anything I may be missing.
Please note that this is a huge wishlist. The goal of posting it is to discuss the idea and decide a path forward (or decide against). Also, disclaimer: the way I present it is the 'ideal' way I think makes sense, but I also didn't fully research how everything could actually be implemented in python.

TLDR: Can/should we implement something similar to reactpy?

The issue
Perhaps the main 'blocker' I have right now to scale up a full fledge app with the library is composing UIs. While it allows to create simple windows super easily (btw I love the with _: syntax for making it declarative!), it becomes cumbersome (IMO) more complex UIs. Think of the 'example' window. The layout takes ~100 lines of code, which is not much, but it's hard to navigate and match different elements with their event handling.
Instead, I would like to be able to create standalone 'components' and 'hooks' (a la React) where I could do something like this:
from collections.abc import Callable

import guitk as ui

from components import TextEntry

class MainWindow(ui.Window):
    text: str
    set_text: Callable[[str], None]

    def __init__(self):
        super().__init__()

        self.text, self.set_text = self.use_state("Initial text")

    def config(self):
        self.title = "Main Window"

        with ui.VLayout():
            TextEntry(text=self.text, set_text=self.set_text)
            ui.HSeparator()
            ui.Label(f"Text is {self.text}")

Now, I am not 100% of how this can be achieved. I see a few things for sure to be done.
Components
We would need a Component class (or something similar). Currently we have BaseWidget, but that is highly tied to tk/ttk widgets. The components would instead use the widgets (or simply wrap them) to compose a piece of UI. In my mind the usage would be something similar to Window. Here's a super simple example of a TextEntry component that's backed by guitk.Entry:
from collections.abc import Callable

import guitk as ui

class TextEntry(ui.Component):
    _text: str
    _set_text: Callable[[str], None]

    def __init__(self, text: str, set_text: Callable[[str], None]):
        super().__init__()

        self._text = text
        self._set_text = set_text

    def config(self):
        ui.Entry(key="text_entry", default=self._text)

    @ui.on("text_entry")
    def _on_text_entry(self):
        self._set_text(self["text_entry"])

Now, these components should also be composable. Once we have a text entry, we could also create a FormField:
from collections.abc import Callable

import guitk as ui

from . import TextEntry

class FormField(ui.Component):
    _label: str
    _text: str
    _set_text: Callable[[str], None]

    def __init__(self, label: str, text: str, set_text: Callable[[str], None]):
        super().__init__()

        self._label = label
        self._text = text
        self._set_text = set_text

    def config(self):
        with ui.VStack(vexpand=False, halign="left"):
            ui.Label(self._label)

            TextEntry(self._text, set_text=self._set_text)

Containers
A special kind of components would be those that can contain other components/widgets. Here's where my mind goes to following the example and building a Form:
from collections.abc import Callable

import guitk as ui

from . import FormField

class Form(ui.ContainerComponent):
    _title: str

    def __init__(self, title: str):
        super().__init__()

        self._title: title

    def config(self):
        with ui.VStack(vexpand=False, halign="left"):
            ui.Label(self._title)

            *self.children # this property would be a list that we can unpack here, maybe?

We could then use this component and pass 'children' to it:
from collections.abc import Callable

import guitk as ui

from components import Form

class FormWindow(ui.Window):
    name: str
    set_name: Callable[[str], None]

    surname: str
    set_surname: Callable[[str], None]

    def __init__(self):
        super().__init__()

        self.name, self.set_name = self.use_state("")
        self.surname, self.set_surname = self.use_state("")

    def config(self):
        self.title = "Form Window"

        with Form("My form"):
            FormField("Name", text=self.name, set_text=self.set_name)

            FormField("Surname", text=self.surname, set_text=self.set_surname)

Go functional?
Another thing that came to mind (I use React a lot) is creating functional components. After all, not everything needs to be a class.
Now, I haven't put much thought into what this would mean in Python wrt implementation. Thise would perhaps need to be something similar to the current widget_class_factory.
import guitk as ui

@ui.container_component
def Form(title: str, children: list[ui.Component]):
    with ui.VStack(vexpand=False, halign="left"):
        ui.Label(title)

        *self.children

State
The second thing we need is state management. The current approach is using events and handling them in the window class. I think this is still valid and components that use widgets should be able to use a similar approach.
However, windows and containers should be able to have other mechanisms to 'automatically' handle state. For this I was thinking of something similar to React's hooks (the examples above use it). With this, windows/components could have 'hook' methods that support the mechanism. Under the hood, this could still use the current event system for updates, but one main thing is that the view needs to know when to redraw component/widgets based on state changes.
This needs thinking...

References we can use
Now, I went and look around for similar usecases where people implemented React-ish features in Python. I found two notable things:
python-hooks
This is a somehwat simple library that provides a couple implementations of hooks similar to React's (e.g. use_state or use_effect). The library hasn't seen updates in a while and it seems like the project comes from academic work. May be useful as a reference.
reactpy
I just found this after I had written my original ideas, but it looks pretty much like what I was looking for.
This focuses on web development, but looking around the repo it may be possible to either implement something very similar or straight up build a backend for the library. The docs are still under construction, so I am not 100% sure how everything works. Will keep investigating.

For reference, here are the docs on how state management works in reactpy: ReactPy - Adding Interactivity.

Hey, sorry it took me some time to get back to this.
I totally get it, and I didn't mean to seem pushy or anything like that! I wasn't sure of what the status of this as a project was, but it makes sense to me 🙂. GUITk is really useful as is for small utilities, that much is clear and I will continue to use it (and maybe contribute if I find areas where I can). Re: layout code, etc. Makes sense. Let's keep it as the experiment it is and use it for what it's worth.
About PySimpleGUI... Yeah. That's the initial reason I stumbled across this library in the first place. I was looking for alternatives after learning the news... It was really saddening to see, agreed. But alas 🤷🏽♂ .
In any case, thank you for taking the time to read and answer! 😀
PS: Doing some more digging around declarative UIs in Python, I found pyedifice, which uses Qt as a backend, and is more or less what I had in my mind. Here some examples for reference.

pyedifice looks interesting --I'll take a look! Always happy for any contributions for GUITk!


feat | added support for AWS_SESSION_TOKEN

Description
This PR adds support for the AWS_SESSION_TOKEN variable, which is used when using shortlived AWS IAM credentials. The logic added will only add this variable if the value is defined, otherwise it will be skipped. This should hopefully not cause any issues for installations not using the sessionToken.
I did not find any tests related to connecting to AWS S3 so I wasn't able to improve test coverage; should I try and investigate how to test this particular feature or can I just leave the PR as is?
Docs
Implemented based on these SDK docs.

Hej. Thanks for the PR. It would be nice to test this, but I am unaware too of how we do it. :/

If I have some time in the next weeks I'll see if I can use nock / msw to test the requests the AWS SDK is making and verify the changes are applied.

@wdalmijn can you please fix the conflicts?

@all-contributors add @wdalmijn for code

@wdalmijn I resolved some conflicts, but I have a hunch that the new codebase differed too much from your feature. Could you please check? Also, please update the documentation that you can found here https://github.com/ducktors/turborepo-remote-cache/blob/main/docs/supported-storage-providers.md


(ffmpeg) Release site has shutdown, needs new release source

Current Behavior
ffmpeg.zeranoe.com, the source for new releases for this package, has shutdown as mentioned here
Possible Solution
Get static builds from either www.gyan.dev or https://github.com/BtbN/FFmpeg-Builds

Looks like there will be no support for 32 bit. Both the build are for 64 bit,


"Publisher Support" link is no longer valid

The first link of the article ("Publisher Support"), used to open a Security Event ticket with Microsoft, is pointing to the Support Services Hub page on a problem type that doesn't exist anymore.
This documentation page needs to be updated to adapt to the changes that have been implemented to the Services Hub last year.
Repro steps:

navigate to https://support.microsoft.com/en-us/getsupport?wf=0&tenant=ClassicCommercial&oaspworkflow=start_<IP_ADDRESS>&locale=en-us&supportregion=en-us&pesid=16230&ccsid=636450758943226673 as pointed by the doc at https://docs.microsoft.com/en-us/azure/security/fundamentals/event-support-ticket?source=docs
PROBLEM 1: the services hub page opens, showing a message "The selected product is invalid or no longer supported. Please select a different product"
PROBLEM 2: the drop down list in Step 1 doesn't allow for selecting "Security Event" as a Problem Type, like indicated in the doc, instead it is now prompting the user to select a product family

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

ID: 9c8e019f-8959-ff7c-2f99-092f81ab7f11
Version Independent ID: 5487b191-236a-98af-f8d6-b9914066be6d
Content: How to Log a Security Event Support Ticket - Azure
Content Source: articles/security/fundamentals/event-support-ticket.md
Service: security
Sub-service: security-fundamentals
GitHub Login: @DavidBosland
Microsoft Alias: terrylan

@vincentbfx
Thanks for your feedback! I've assigned this issue to the author who will investigate and update as appropriate.

@vincentbfx - Thank you for your interest in improving our documentation. This article is being updated with more accurate information.
#please-close


[CT-1091] [Feature] Add Lookback Attribute for Metrics

Is this your first time submitting a feature request?

[X] I have read the expectations for open source contributors
[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion

Describe the feature
The metrics package is looking to expand the types of metrics that it can operate on and one consistent piece of feedback we've received is that people want to be able to define metrics that have a concept of time included in their definition. IE 14 Day Average, etc.
This functionality has an open PR here for the metrics package. We've proven that it works but want to move the definition of this metric aspect into the metric itself instead of meta.
Describe alternatives you've considered
Not including it.
Who will this benefit?
Anyone who wants to use metrics that are cumulative or lookback.
Are you interested in contributing this feature?
Yep!
Anything else?
I am not married or even really attached to the name of lookback. It is a placeholder while we work on the functionality.

Thanks for the issue and the PR @callum-mcdata! Adding support for rolling lookback windows is cool and good. Let's add this into the v1.3 initiative around improvements to metrics.
Very open to suggestions from the world (or just @dbeatty10) about what we'll want to call this thing. I don't mind lookback personally.

Love any opportunity for a good brainstorming session!
Some quick ideas for nomenclature:
lookback
window
offset
lead/lag
start/end
window_bounds

Some of these might be able to be dismissed quickly.
window is probably my favorite so far. Not because I've spent a sufficient amount of time understanding the context though! 😅  Mainly because after some brief googling, learned that window is the only required parameter of Series.rolling() within Pandas (which return Rolling objects that support a variety of aggregation functions). Learn more here.
Example usage:
In[1]:
s = pd.Series(range(5))

s.rolling(window=2).sum()
Out[2]:
0    NaN
1    1.0
2    3.0
3    5.0
4    7.0
dtype: float64

I think @dbeatty10 convinced me that window is a better descriptor of what we're working with.


It is validating against rules but not syntax.

Hello,
I am using this in a project and noticed that it is validating against rules written only when XML is valid but considering reallife scenarios people make syntax error. but in that case it is returning undefined.

@gautam-jha can you please share the sample code? In which scenario you feel error is not being thrown.
    it("Syntax error in rules XML data", async function(){
        assert.throws(() => {
            new Validator(errData);
        }, "Attribute '<name' is an invalid name.:9");
    });

Closing as an old issue. Please reopen is you still find this issue.


mypy plugin reports error on class definition line, not on exact error line

Bug
Output of python -c "import pydantic.utils; print(pydantic.utils.version_info())":
             pydantic version: 1.4
            pydantic compiled: False
                 install path: /Users/andreisemakin/.local/share/virtualenvs/popapi-7C7w-VGz/lib/python3.7/site-packages/pydantic
               python version: 3.7.6 (default, Dec 30 2019, 19:38:26)  [Clang 11.0.0 (clang-1<IP_ADDRESS>)]
                     platform: Darwin-19.3.0-x86_64-i386-64bit
     optional deps. installed: ['typing-extensions']

from pydantic import BaseModel, Field

class RecordModel(BaseModel):  # <- error is raised here
    key: str
    record_key: str = Field(..., alias="key")  # <- and not here as I expected

mypy check:
$ mypy file.py
Loading .env environment variables…
file.py:3: error: Name 'key' already defined (possibly by an import)

My setup.cfg config:
[mypy]
plugins = pydantic.mypy
namespace_packages = True
ignore_missing_imports = True

[pydantic-mypy]
init_forbid_extra = True
init_typed = True
warn_required_dynamic_aliases = True
warn_untyped_fields = True

I know that my code is wrong and I probably shouldn't do this, but I have to to keep compatibility.
I can just put # type: ignore on the class definition line, but this way I can miss extra errors that  I would like to see. I would prefer to put # type: ignore exactly on the line with error.

PR welcome to fix this, no idea how difficult it would be.

I'm confused by this example -- what does this implementation even accomplish? Is the same value getting stored in multiple fields? Could this not be implemented via a property rather than an alias?

Regarding the mypy issue, it looks like if you use
from pydantic import BaseModel, Field

class RecordModel(BaseModel):  # <- error is raised here
    key: str
    key: str

mypy raises two errors -- one on the line for the class, and one on the line for the second definition. My guess is the problem is that we aren't explicitly testing for a conflict with the alias, and could be.
Given the error message is fairly unambiguous I think fixing this is a relatively low priority, but if someone else wanted to I'd be happy to review a PR to the mypy plugin.

closing for tidiness, but happy to accept a PR if someone really cases


fix(MD-3898): background for none text cells & fix potential crash

:tada: This PR is included in version 1.1.0-alpha.111 :tada:
The release is available on:

npm package (@alpha dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Migrated Media Package to View Binding

Description (required)
Fixes #4664
What changes did you make and why?
Tests performed (required)
Tested {build variant, e.g. ProdDebug} on {name of device or emulator} with API level {API level}.
Screenshots (for UI changes only)

@psh Resolved the merge conflict , Please Review

@psh Made the required changes


Remove enableMultiInstanceInvalidation for databases where it is not necessary

Task/Issue URL: https://app.asana.com/0/1202552961248957/1203276170799080/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

Current dependencies on/for this PR:

develop

PR #2497   👈

This comment was auto-generated by Graphite.


feat: Introduce onInputValueChange prop to SelectBox and MultiSelectBox components

Closes #444
What - This** PR exposes a new onInputValueChange prop to the SelectBox and MultiSelectBox components. As noted in the above issue, these components currently only have the onValueChange prop, which only fires when a menu item is selected. But, this prop does not fire when the user types into the search box, which prevents the developer from being able to capture user search input.
Why - Because of this missing prop, I was unable to use the SelectBox and MultiSelectBox in my application and had to create my own versions of these components as a workaround. In my application, there are tens of thousands of menu selection items, which cannot be loaded into the SelectBox all at once for performance reasons. I need to be able to listen to the user input so I can dynamically refresh the SelectBox menu options.
How - Mimicked the behavior of the onValueChange prop

hi @rebasedming, thanks for the work! We are currently migrating all our input elements to headlessui for our v3 release coming by next week hopefully. Until then we would like to avoid pushing related changes. Happy to implement this from then on though :)

hi @rebasedming, thanks for the work! We are currently migrating all our input elements to headlessui for our v3 release coming by next week hopefully. Until then we would like to avoid pushing related changes. Happy to implement this from then on though :)

Oh, cool! I wasn't aware of a v3 release...is this going to deprecate v2 that just came out a few months ago?

Yup, it will involve some breaking changes that will enable theming and we will be using headlessui under the hood for input components.

Migrated to HeadlessUI in V3.


Room notification preference updates after changing the room name

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to URL https://staging.new.expensify.com/
Create a workspace from the green plus (if needed)
Create a workspace room from the green plus (if needed)
Click the header of the workspace room to open the room details page
Click "Settings"
Rename the room and hit save

Expected Result:
Only the name should be changed when you press the save key
Actual Result:
Сhanges the name and status of notifications to immediately when pressing the save key
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers): any applause account
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/185254155-b32fa7e5-0f29-44ec-ae52-d0fd7b9c3d75.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Looks related to the recent changes to rename policy room cc @neil-marcellini https://github.com/Expensify/App/pull/10237
From some testing, it seems like pressing the save button triggers the Picker onInputChange
I looked through the API changes and it touch any of the notification stuff so it seems like a bug in App, making it external

The title of the issue confused me a bit, I think we should update it to something like: Room notification preference updates after changing the room name - what do you think?
Also to confirm, is this issue actually isolated to Web only like the title suggested? The Platform section of the OP suggests otherwise.
Lastly, user-created rooms are behind a beta still, so can this actually go external?
Thanks, @thienlnam!

Room notification preference updates after changing the room name

This issue update sounds good to me

Also to confirm, is this issue actually isolated to Web only like the title suggested? The Platform section of the OP suggests otherwise.

I've just tested this on desktop and it appears to be happening there as well so it doesn't seem to be isolated to web

Lastly, user-created rooms are behind a beta still, so can this actually go external?

Good catch on this, I didn't know this was behind a beta - this will have to be internal then
Thanks!

Cool, sounds good. Updating the issue title and removing my assignment as a CM isn't needed.

Been focusing on N7, haven't looked into this yet

Same as above

Any luck here, @thienlnam? The Guides are now in #admins being assigned leads through the #121-assigned project, and some of them are trying to update their room notification preference to immediately to make sure they don't have a delay in seeing a customers message in the room.

Hey @neil-marcellini - I don't suppose you could help us out here while Jack is out? It's impacting the Guides agents that are    being assigned customer deals 121 in NewDot now as of the go live yesterday.

Yeah I can take a look.

Awesome, thank you so much Neil!

This is a weird one. I'm out of time for today, but it looks like somehow the notification preference is getting set to "2" in Onyx, and that is getting save on the back end since it comes back in the OpenReport command. Idk why immediately is displayed, maybe because it's the default. Either way there's definitely something wrong here.

I think there are two problems here. I put up a draft PR for the first issue where the notification preference picker is updating when the component updates, which happens after the room name saves. However, I'm still seeing the issue occur even when the UpdateReportNotificationPreference api command is not called, so I think there's a backend problem as well.

I thought I found the problem on Web, but it looks like there's more to it. I'll keep working on this tomorrow.

Thank you, Neil!

Oh man, this one is weird. I added one failing test today and did a bunch of digging around in the code.
Here's the summary of the problems on the backend:

We don't set a notification preference on policy rooms when creating them. CreatePolicyRoom.cpp calls Report::createChatReport and NVP_NOTIFICATION_PREFERENCES is not set along with other NVPs here.
We force the notification preference to 'always' when renaming reports. updatePolicyRoomName calls ReportAPI::rename, which calls ReportUtils::notifyParticipants, which calls buildOnyxDataForNewAction here without passing in a notification preference, meaning that it defaults to 'always'.
In OpenApp we default the notification preference to 'daily' for all reports here.

If we fix 1 then 3 won't be a problem for newly created rooms. After that we can pass the room notification preference to fix 2. For already existing rooms we could write a CQ to add the NVP to fix them. It would also be good to align our defaults, I think the default should always be 'always' / immediately. Lots to think about.

Thanks, Neil! On this one:

It would also be good to align our defaults, I think the default should always be 'always' / immediately. Lots to think about.

There's a bit of background here on why policy rooms were designed to start as Daily, mimicking what you would expect of buoyant company channels like #general, #engineering-chat etc where you would opt-in for Immediately.
That said, you'll also see in that linked issue that we're looking to change the default for the #admins room specifically, given that its primary purpose has evolved to be the central place to communicate with your Expensify assigned agent for onboarding (and later, on-going account management).

@neil-marcellini I saw you were working on a similar issue, any input on this one?

Today I worked on an Auth PR for step 1. The test I added is still failing because I'm setting the notification preferences only for the admin. I think it will be a quick fix tomorrow and I hope to get that up for review. I can also probably put the App PR up for review because I don't think anything else has to change on the front end.

I thought of a new approach. In PHP when we notify participants, if there are no notification preferences set on the room then I'll call a function to set the default for the room and save it in the NVP. Then I will use the NVP notification preferences when notifying participants. I think that will fix all existing rooms when renaming. We won't need a custom query in that case. Then I can put up some other PRs to fix the notification preference for rooms when they get created, such as that Auth PR I worked on yesterday.

I just added a failing test that proves that room notification preferences are also changed when you send a message (addComment) in a room.

Right now I have passing tests that confirm that the room notification preference is not changed for the acting user when renaming rooms and commenting.
I also wanted to test that the notification preference for other room members remain the same, but when I invited another policy member in the test they didn't get included in the participantAccountIDs here. The member was only a participant in the announce room, but from front end testing it looks like they should be part of the expense chat too. I'll ask for some help with this on Monday.

After some more digging in the code this morning I learned that the #announce room is shared with a newly invited workspace member here and that the admin's policy expense chat is not shared with the newly invited member. Instead, when a member is added they get their own unique policy expense chat between themself and the policy admins which is created here. Then we also return that chat to the admin here in SharePolicy.cpp.
Now that I have that straightened out I've been able to move forward with the testing. I found two issues that should be fixed as well.
First, in the original design doc we said that the workspace chat notification preference should be 'immediately' but right now it's 'daily'. https://github.com/Expensify/Expensify/issues/230454.
Second, the workspace member's view of the policy expense chat does not show the admin as a member. I plan to fix the first issue in this PR, and I'll leave the second issue for later. https://github.com/Expensify/Expensify/issues/230457

My Web-PR is in review and I learned that it's unnecessary to save the default notification preference at all, which means the Auth PR won't be necessary. I think it would still be a good idea to update the default notification preference in the optimistic data in App so I'll add that to the App PR tomorrow.

I made some updates to the Web-PR which fix the default notification preference when the app is opened / reconnected.

Sorry this is taking so long! I battled against some flaky tests for the last two days, but I finally got that straightened out. I really think we can get the Web-PR merged on Monday, then then the App PR will follow and fix the issue. The App PR is almost ready; I'm working my way through the author checklist.

Thanks for persevering, Neil!

I'm waiting on one last approval on the Web-PR and the App PR is also up for review now.

Web-PR is on staging so I'll take the App PR off of hold.

I created a tiny follow up issue to set the default room notification preference in the optimistic data.

Nice - thanks so much Neil! 🎉
Quick question on the fix just merged. Once deployed, will it update the notification preference to Always for the #admins rooms already created, or just new ones going forward?

You're welcome 😄

Quick question on the fix just merged. Once deployed, will it update the notification preference to Always for the #admins rooms already created, or just new ones going forward?

Good question. Yes if they refresh / reopen the app the default will be set correctly. Or if there is any action taken on the room the default will also be set properly. They can also manually update the notification preference and their change will be saved properly. Please let me know if there are any other issue with this, after the Web and App PRs are on prod.

Nice, that's handy - the Guides are covered then as they're in app daily.

Or if there is any action taken on the room the default will also be set properly.

If a Guide sends a follow-up message in the room, will that action update the room notification preference for all participants of the room?


Support for additional/missing custom properties and capabilities within the citrix_machine_catalog resource

Specifically, I focused on the azure_machine_config context, to address the following:
LicenseType
UseSharedImageGallery
SharedImageGalleryReplicaRatio
SharedImageGalleryReplicaMaximum
UseEphemeralOsDisk
DiskEncryptionSetId
As previously stated, the associated code is not fully tested or documented. While it serves my intended concept or use case, there may be unknown issues, and its applicability in all scenarios is not guaranteed. However, I have made efforts to align with the established coding practices and overall theme as outlined, wherever possible.

Hi @j7lloyd,
We have these features implemented in release-v0.5.5. Closing this PR.
Thanks,
Aneesh

OK, @aneeshk-citrix, this is great news! I was hoping for an honorary mention, but no worries :wink: I will get testing tomorrow. In the meantime, do you have a release timeline for the other PR (#53) that I created at the end of last month?

We have it in our roadmap but no ETA for it.


add note to docs re. setting xres/yres/metadata

Should explain xres/yres/set plus copy somewhere.

Done.


Add check for OpenStack metadata

Hi team,
Adding check for OpenStack metadata endpoints 😃

Nikita Stupin
Advanced Software Technology Lab
Huawei

thanks!


Shows certifications in a table.

User's certifications are showed in a table when running setup
There are some topics that I need help with:

Sort the table by ID.
Is it OK to build the table from the certifications.body? I tried to do it from certsDetails but I couldn't.

Thanks for your comments. I addressed them in the last commit.
The setup is looking very good. :smile:


feat: prioritize ruff over black in formatter, requirements, and documentation

📝 Summary
prioritize ruff over black in formatter, requirements, and documentation
🔍 Description of Changes
as discussed in this discord thread, changes were made to prioritize ruff over black.

ecd1279fb85eee7c4bbfd9b4dbce79dbd4a17d12 formatter.py prefers ruff over black. warnings updated to reflect this.
7d01256a79af5c42016482973e4e504251ca101e ruff required instead of black
a3747e22e58a9d17ee18a3cf8dd61a91633a9e20 readme and tutorials mention ruff instead of black

tested changes with environments ± ruff and ± black, and an editable install and custom ruff configuration.
♾ Limitations
marimo/_utils/format_signature.py and frontend/src/core/pyodide/worker/worker.ts not updated
📋 Checklist

[x] I have read the contributor guidelines.
[x] For large changes, or changes that affect the public API: this change was discussed or approved through an issue, on Discord, or the community discussions (Please provide a link if applicable).
[ ] I have added tests for the changes made.
[x] I have run the code and verified that it works as expected.

📜 Reviewers
@mscolnick

I have read the CLA Document and I hereby sign the CLA


[hi] Translate Blue Green Deployment into Hindi

Blue Green Deployment localization for Hindi needs to be added.
https://glossary.cncf.io/blue_green_deployment/

hello @starlightknown, I have created a PR https://github.com/cncf/glossary/pull/632 can you review it.

@starlightknown Sorry but we'll have to close this PR as this term is already localized and under review on #632. To avoid conflicts like this, please always make an issue first and wait for maintainers triage before starting to work