Deployment reviewers disappearing

Expected Behavior
When I manually add a reviewer to an environment in the modernisation-platform-environments repository, that reviewer should remain able to review deployments to that environment.
Actual Behavior
After manually adding a collaborator to review deployments to ppud-development, or any other ppud environment, the collaborator is later removed through an unknown method.
Steps to Reproduce the Problem
Unknown - but I suspect that when new accounts are created, the automation in place also corrects any manual changes to environments.
Other information
ppud-preproduction

I think this is happening when the git-create-environments.sh runs as part of the .github/workflows/terraform-github.yml action.

PR - https://github.com/ministryofjustice/modernisation-platform/pull/4725/

Work in progress...
create_environment() {
  environment_name=$1
  github_teams=$2
  echo "Creating environment ${environment_name}..."

  # Function to add a maximum of 6 reviewers (individuals and teams)
  function add_reviewers {
    local reviewers_to_add=$1
    if [ -n "$existing_reviewers" ]; then
      updated_reviewers="${existing_reviewers},$reviewers_to_add"
    else
      updated_reviewers="$reviewers_to_add"
    fi
  }

  # Fetch existing reviewers for the environment
  existing_reviewers=$(curl -L -s \
    -H "Accept: application/vnd.github.v3+json" \
    -H "Authorization: Bearer ${secret}" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    https://api.github.com/repos/${repository}/environments/${environment_name} | jq -r '.reviewers | map(.login) | join(",")')

  # Fetch existing teams for the environment
  existing_teams=$(curl -L -s \
    -H "Accept: application/vnd.github.v3+json" \
    -H "Authorization: Bearer ${secret}" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    https://api.github.com/repos/${repository}/environments/${environment_name}/teams | jq -r '.teams | map(.slug) | join(",")')

  # Check if the total number of reviewers exceeds 6 (teams + individuals)
  reviewers_array=()
  while IFS=',' read -ra reviewers_list; do
    for reviewer in "${reviewers_list[@]}"; do
      reviewers_array+=("$reviewer")
    done
  done <<< "$github_teams"

  reviewers_count=${#reviewers_array[@]}
  total_reviewers=$(( reviewers_count + $(echo "$existing_teams" | tr ',' ' ' | wc -w) ))

  # If there are more than 6 reviewers, set to default behavior and overwrite reviewers
  if [ $total_reviewers -gt 6 ]; then
    echo "Warning: Total reviewers exceed 6 (teams + individuals). Defaulting to overwrite reviewers."
    updated_reviewers=""
  else
    # If the total number of reviewers is within the limit, process both individuals and teams
    # Process GitHub teams first
    if [ -n "$github_teams" ]; then
      IFS=',' read -r -a teams_array <<< "$github_teams"
      for team in "${teams_array[@]}"; do
        add_teams="team:$team"
        if [ -n "$existing_teams" ]; then
          updated_teams="${existing_teams},${add_teams}"
        else
          updated_teams="$add_teams"
        fi
      done
    fi

    # Process individual reviewers
    for reviewer in "${reviewers_array[@]}"; do
      add_reviewers "$reviewer"
    done
  fi

  if [ "${env}" == "preproduction" ] || [ "${env}" == "production" ]; then
    payload="{\"deployment_branch_policy\":{\"protected_branches\":true,\"custom_branch_policies\":false},\"reviewers\": [${updated_reviewers}],\"teams\": [${updated_teams}]}"
  else
    payload="{\"reviewers\": [${updated_reviewers}],\"teams\": [${updated_teams}]}"
  fi

  echo "Payload: $payload"
  echo "Repository: ${repository}"
  echo "${payload}" | curl -L -s \
    -X PATCH \  # Change PUT to PATCH to update reviewers instead of replacing them
    -H "Accept: application/vnd.github+json" \
    -H "Authorization: Bearer ${secret}" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    https://api.github.com/repos/${repository}/environments/${environment_name}\
    -d @- > /dev/null 2>&1
}

The PR (Deployment Reviewers Disappearing Fix #4725) to update reviewers will be closed (not merged) and a new issue has been raised 4761 to create a new feature for managing deployment reviewers in code.


Merge for bias calculations.

Pull request to merge that includes Fisher Formalism Bias calculations.

It looks like you changed the file mode of everything under notebooks/ from 100644 to 100755, i.e., adding the execute bit.  Was that intentional?  I don't think this bit should be set.

Have you checked that the TutorialIntroduction notebook runs and gives the same output in your branch?

Just ran the tutorial and I get the same output in my branch. Should be ready to merge!

It doesn't look like your file permission changes had any effect.  Can you try this recipe?

Recipe does not seem to work. Or maybe I am missing something when I execute it. Thanks!

I think I just got it by running:
 git update-index --chmod=-x *

You missed notebooks/.gitignore (since * ignores dot files).

Thanks! just changed it, hadn't realized this.

I have done the merge now, but there are some problems with the sphinx docs that I am troubleshooting now...

@ismael2395 You added the following import to render.py which is causing problems:
import matplotlib.pyplot as plt

It looks like this is never used so I can safely remove it?

Yeah! I think you can safely remove that line - I probably added to debug at some point.


Made nonce and autoGenerateNonce optional, like the comments suggests they are

If autoGenerateNonce is not set to optional (like the comment suggests), and I don't specify it, I get this error at auth time:
Expression 'undefined' used with directive 'oauth2' is non-assignable!

Thanks.


HDDS-7722. Fix TestOMKeyCommitRequest

What changes were proposed in this pull request?
Fix an incorrect test check
What is the link to the Apache JIRA
HDDS-7722
How was this patch tested?
This is a test-only change.

Cause and fix LGTM, can you just fix the CI @jojochuang ?

Hey turns out this is more involved than i thought. There's even a bug in the production FSO code. So not just a trivial test fix.

I'll close this PR for now and raise a new PR. I'm also reviewing other part of production code looking for bugs.


Support OIDC back channel logout

Spec: https://openid.net/specs/openid-connect-backchannel-1_0.html

Following feature documentation [1] is not in a production ready state, hence I'm reopening this issue. Please find some of main issues below.
About Doc
"OpenID Connect back-channel logout feature enables logging out users from a client application/relying party (RP) by directly communicating the logout requests between the RP and authorization server/OpenID Provider (OP). This approach is more reliable as it does not require communicating the logout requests through a user agent/browser and maintain active RP browser sessions for the communication to succeed. "
IMO above description is not enough to introduce the feature, we should cover following points ...

Start with mentioning available logout mechanisms supported in OIDC.

it's not clear for readers what does this mean as "directly communicating ", spend few lines to explain the concept with clear examples.

Explain why we believe this method is more reliable

"does not require communicating the logout requests through a user agent/browser and maintain active RP browser sessions " then how it track sessions with IDP, explain the underline logic.

Include possible use cases where back-channel logout is much preferable than front-channel logout.

Add a note saying front channel logout feature is not yet supported but it's a prioritized feature of the product roadmap.

About Sample
Use of OAuth2 Playground sample to "demonstrate" a logout feature is way too odd for me, we can justify the decision in case we don't have proper samples but here we have 2 well designed samples which are ideal to demonstrate propagation of logout messages.

Replicating same app and asking to think them as separate apps is not a good demonstration strategy specially when we have proper samples in place.

Why somebody has to install/deal-with  Maven and Git in order to try IS samples ? we have passed these points during last year.

Why somebody has to install and deal-with Tomcat, again  we have passed these points during last year.

This sample instructions contains more then 20 steps but if we use correct samples we can cut down around 10 steps, that is a great UX improvement.

[1] - https://docs.wso2.com/display/IS580/OpenID+Connect+Back-Channel+Logout

Doc is addressed with [1]
Reported [2] to get new samples fixed
Resolving the feature as it is completed with further improvements being tracked
[1] https://github.com/wso2/product-is/issues/4650
[2] https://github.com/wso2/product-is/issues/5248


Client doesn't accept resolved AWS RDS instance from Gateway

Gateway version: 1.1.0
Client version: 1.0.5
{"time":"2024-06-23T19:42:54.146176Z","target":"hickory_proto::udp::udp_client_stream","logging.googleapis.com/sourceLocation":{"file":"/Users/runner/.cargo/git/checkouts/hickory-dns-30907398b6d78cdf/a3669bd/crates/proto/src/udp/udp_client_stream.rs","line":"404"},"severity":"WARNING","message":"dropped malformed message waiting for id: 37307 err: rdata length too large for remaining bytes, need: 4 remain: 0"}
{"time":"2024-06-23T19:42:55.187541Z","target":"hickory_proto::udp::udp_client_stream","logging.googleapis.com/sourceLocation":{"file":"/Users/runner/.cargo/git/checkouts/hickory-dns-30907398b6d78cdf/a3669bd/crates/proto/src/udp/udp_client_stream.rs","line":"404"},"severity":"WARNING","message":"dropped malformed message waiting for id: 9939 err: rdata length too large for remaining bytes, need: 4 remain: 0"}
{"time":"2024-06-23T19:42:55.346808Z","target":"hickory_proto::udp::udp_client_stream","logging.googleapis.com/sourceLocation":{"file":"/Users/runner/.cargo/git/checkouts/hickory-dns-30907398b6d78cdf/a3669bd/crates/proto/src/udp/udp_client_stream.rs","line":"404"},"severity":"WARNING","message":"dropped malformed message waiting for id: 32896 err: rdata length too large for remaining bytes, need: 4 remain: 0"}
{"time":"2024-06-23T19:42:56.275268Z","target":"firezone_tunnel::client","logging.googleapis.com/sourceLocation":{"file":"connlib/tunnel/src/client.rs","line":"694"},"severity":"WARNING","message":"DNS query failed"}
{"time":"2024-06-23T19:42:57.221208Z","target":"hickory_proto::udp::udp_client_stream","logging.googleapis.com/sourceLocation":{"file":"/Users/runner/.cargo/git/checkouts/hickory-dns-30907398b6d78cdf/a3669bd/crates/proto/src/udp/udp_client_stream.rs","line":"404"},"severity":"WARNING","message":"dropped malformed message waiting for id: 40383 err: rdata length too large for remaining bytes, need: 4 remain: 0"}
{"time":"2024-06-23T19:42:57.289543Z","target":"firezone_tunnel::client","logging.googleapis.com/sourceLocation":{"file":"connlib/tunnel/src/client.rs","line":"694"},"severity":"WARNING","message":"DNS query failed"}
{"time":"2024-06-23T19:42:58.261905Z","target":"hickory_proto::udp::udp_client_stream","logging.googleapis.com/sourceLocation":{"file":"/Users/runner/.cargo/git/checkouts/hickory-dns-30907398b6d78cdf/a3669bd/crates/proto/src/udp/udp_client_stream.rs","line":"404"},"severity":"WARNING","message":"dropped malformed message waiting for id: 52856 err: rdata length too large for remaining bytes, need: 4 remain: 0"}
{"time":"2024-06-23T19:42:59.109703Z","target":"firezone_tunnel::client","logging.googleapis.com/sourceLocation":{"file":"connlib/tunnel/src/client.rs","line":"694"},"severity":"WARNING","message":"DNS query failed"}

The host in question is an AWS RDS instance with a very long CNAME record.
I think hickory doesn't like it?
Marking as high priority since it's a common setup on AWS.

Issue manifests as dns timing out in the client.

I was able to narrow this down to a problem where the DNS response is too big and thus gets truncated:

2024-06-24T01:43:22.679089Z DEBUG hickory_resolver::name_server::name_server_pool: truncated response received, retrying over TCP
2024-06-24T01:43:22.679093Z DEBUG hickory_resolver::name_server::name_server_pool: no TCP connections available

Actually, to be precise: I wasn't able to reproduce the exact problem of an RDS on AWS but I could reproduce a problem of truncated messages by trying dig 2048.size.dns.netmeister.org.

The issue here most likely turned out to be an IP conflict with the resolved address and the same address added as a Resource.
See https://github.com/firezone/firezone/pull/5507#issuecomment-2187174304


Added ping function

Closes https://github.com/findmypast-oss/mssqlex/issues/1

Coverage decreased (-34.009%) to 53.279% when pulling a4ef217d71b17449676dacd93b26b9f87ea7eb0a on ping into 5a3ad434caa846dfdb90196f81f9b776ab9a5732 on master.


Can't build package is installed from Github

build
node --version
v10.0.0
npm --version
6.0.1
nvm --version
0.33.11

npm run build

><EMAIL_ADDRESS>build /home/user/node_modules/angular2-token
> rimraf dist && ng-packagr -p ng-package.json

Building Angular Package
Building entry point 'angular2-token'
Cleaning build directory
Rendering Stylesheets
Rendering Templates
Compiling TypeScript sources through ngc
Bundling to FESM15

BUILD ERROR
Could not resolve './a2t-ui/a2t-ui.module' from .ng_pkg_build/angular2-token/out/public_api.js
Error: Could not resolve './a2t-ui/a2t-ui.module' from .ng_pkg_build/angular2-token/out/public_api.js
    at error (/home/user/node_modules/angular2-token/node_modules/rollup/dist/rollup.js:170:15)
    at /home/user/node_modules/angular2-token/node_modules/rollup/dist/rollup.js:19580:25

test
npm test

><EMAIL_ADDRESS>test /home/user/node_modules/angular2-token
> karma start

START:
(node:11200) DeprecationWarning: Tapable.plugin is deprecated. Use new API on `.hooks` instead
⚠ ｢wdm｣:
ℹ ｢wdm｣: Compiled with warnings.
ℹ ｢wdm｣: Compiling...

[at-loader] Using<EMAIL_ADDRESS>from typescript and "tsconfig.json" from /home/user/node_modules/angular2-token/tsconfig.json.

[at-loader] Checking started in a separate process...

[at-loader] Ok, 1.192 sec.
⚠ ｢wdm｣:
ℹ ｢wdm｣: Compiled with warnings.
18 05 2018 23:12:12.543:INFO [karma]: Karma v2.0.2 server started at http://<IP_ADDRESS>:9876/
18 05 2018 23:12:12.545:INFO [launcher]: Launching browser Chrome with unlimited concurrency
18 05 2018 23:12:12.633:INFO [launcher]: Starting browser Chrome
ℹ ｢wdm｣: Compiling...

[at-loader] Checking started in a separate process...

[at-loader] Ok, 0.004 sec.
⚠ ｢wdm｣:
ℹ ｢wdm｣: Compiled with warnings.
ℹ ｢wdm｣: Compiling...
18 05 2018 23:12:40.588:INFO [Chrome 66.0.3359 (Linux 0.0.0)]: Connected on socket qfKp6xrqQFsqXnULAAAB with id 23799729
  Angular2TokenService
    ✔ validateToken should call signOut when it returns status 401
    ✔ validateToken should not call signOut when it returns status 401
    ✔ Methods should send to configured path
    ✔ signOut method should clear local storage
    ✔ signIn method should receive headers and set local storage
18 05 2018 23:12:58.115:WARN [Chrome 66.0.3359 (Linux 0.0.0)]: Disconnected (1 times), because no message in 10000 ms.
Chrome 66.0.3359 (Linux 0.0.0) ERROR
  Disconnected, because no message in 10000 ms.
Chrome 66.0.3359 (Linux 0.0.0) ERROR
  Disconnected, because no message in 10000 ms.

Finished in 15.373 secs / 0.192 secs @ 23:12:58 GMT+0300 (MSK)

=============================== Coverage summary ===============================
Statements   : 100% ( 0/0 )
Branches     : 100% ( 0/0 )
Functions    : 100% ( 0/0 )
Lines        : 100% ( 0/0 )
================================================================================

[at-loader] Checking started in a separate process...

[at-loader] Ok, 0.004 sec.
18 05 2018 23:13:05.733:WARN [launcher]: Chrome was not killed in 2000 ms, sending SIGKILL.
npm ERR! Test failed.  See above for more details.

Could you try again? Should be fixed by now.


coordinates of start point

Hi @anseki ,
is there any way to calculate coordinates of the point from where the arrow starts:

thanks in advance

Hi @dsandul, thank you for the comment.
The coordinates point at the center of a side of the element.
You can get rectangle of the element by DOM#getBoundingClientRect method.

Hi @anseki ,
at the moment I have circles as element 1 and 2 and both elements with drag and drop, so the start point is changing it position when element 2 is moving. I've also tried to use getBoundingClientRect of DOM node, but the position of moving start point is not so accurate. I've also tried a way when it's possible to add a marker at the start of the arrow but in this case it's not possible to get the coordinates of the svg marker.
Or may be there is a way to determine somehow on which side of element the start point is placed? (f.e. top, bottom, right, left etc)

Yes, you can determine side of element by startSocket/endSocket options.

Hi @anseki ,
yes, but it's an input parameter and is it possible to get it after leader-line was rendered, without limiting it position? Something like:
const line = new LeaderLine({...});
line.getStartPosition();

or maybe you have an idea from where I can get it on the library side

Sorry, my English is poor.
Do you mean that you want to get the chosen side when startSocket/endSocket options are 'auto'?

yes, exactly

When startSocket/endSocket options are 'auto', LeaderLine just only chooses the closest side of element to the another element.

thanks a lot for your quick replies,
can you please reference on how you calculate this closest side?

You can calculate that easily by Math.sqrt.

For example: https://jsfiddle.net/xnp4hoj3/

For example: https://jsfiddle.net/xnp4hoj3/
great, that is what I need, thanks again!

I'm glad if I could help you. :smile:
So, could you close this issue if it was solved?


UnicodeEncodeError: 'charmap' codec can't encode characters

When I press execute in 1.5.1 I get the following error, 1.4.11 still works for me
使用语言/Use language:  en_US
2024-07-11 13:52:45.2121084 [W:onnxruntime:Default, onnxruntime_pybind_state.cc:1983 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.
{'OPEN_IN_WEB': True}
NiceGUI ready to go on http://localhost:8001
RUN
Traceback (most recent call last):
File "main.py", line 13, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils_init.py", line 3, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils\adb_utils.py", line 5, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils\log_utils.py", line 86, in
File "modules\utils\log_utils.py", line 24, in init
File "encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to
Traceback (most recent call last):
File "main.py", line 13, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils_init.py", line 3, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils\adb_utils.py", line 5, in
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "PyInstaller\loader\pyimod02_importers.py", line 419, in exec_module
File "modules\utils\log_utils.py", line 86, in
File "modules\utils\log_utils.py", line 24, in init
File "encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-3: character maps to
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 51, in
File "encodings\cp1252.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode characters in position 21-27: character maps to
[25200] Failed to execute script 'main' due to unhandled exception!
Process finished.

Yes, running directly from BAAH.exe works.

Yes, running directly from BAAH.exe works.

OK, I will add another button in GUI to run BAAH in a new terminal (just like before in 1.4.11).

You can download 1.5.2 and find "save and execute (terminal)” button in the gui.
Please leave this issue open, I'm figuring on proper encoding method of running BAAH in GUI.

@somnaewq Hi, can you try to click 'Execute in GUI' button of version 1.8.0 and see if it works

Hi @somnaewq, can you update to version 1.8.1 and check that if running BAAH in GUI works in your computer now?

Hi @somnaewq, can you update to version 1.8.1 and check that if running BAAH in GUI works in your computer now?

Yes it works perfectly now, thank you.


Integrate articulatory features

find a framework to estimate articulatory from acoustic features and integrate

Reason: they can be important for explainability


Workspace - Sensitive information is visible when deleting a workspace and creating a new

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: Y
Reproducible in production?: Unable to check the Plaid connection in prod
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Navigate to https://staging.new.expensify.com/
Log in with an expensifail account
Create a workspace
Start adding a bank account (Connect with Plaid)
Fill most of the details but don't complete the flow
Delete the workspace
Create a new workspace
Start adding a bank account (Connect with Plaid)

Expected Result:
Private, sensitive information shouldn't be shared between workspaces
Actual Result:
Uncomplete bank account details, company and personal information are saved when deleting the workspace and creating a new
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

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

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/9a3bd525-6641-491d-a8c4-4c15b5aaac60
View all open jobs on GitHub

@mountiny This should be fixed with VBBA refactor (not 100% sure)

I agree this does not seem like a blocker. Additionally its the same user who is inserting this data, the problem would be if the data is shared across sessions


Pr l1 slew

See https://github.com/PX4/ecl/pull/485

Rebased, good to go after CI

Rebased again to resolve conflict.

Rebased again, let's see if it fits.


Gather consent during profile creation

During the profile creation, we need to add checkboxes (and store the timestamp for when this consent was given) to ensure that people:

[ ] are older than 16
[ ] allow us to transfer their data outside of the EU

@fmichonneau  Should this be in the instructor training application? Profiles are often created from there.
Should we also be asking about all the other consents in the instructor training application?

Tagging @lauryndbrown  as this is connected to consents project.

checking in @fmichonneau

The consents are asked after profile creation now. Issue around instructor training application tracked in https://github.com/carpentries/amy/issues/2162

@fmichonneau  what about when we create a person's profile (such as a workshop host)?

they are being asked when people log in for the first time, but ideally, we'd want to let the person know we create a profile for them. We don't have a workflow for this yet as far as I know.


PHP8.4 build runs and rector for easier migrations

@brecht-vermeersch i think we can add php 8.4 support on all these repos right? The feature freeze is already there so technically only bugfixes should occur on which it would be good that we remain compatible.
The first RC will be there 29th of august


[T2A2][T15-A3]Lam Jouq Hang Hendersen

Ready for review

Ready for review

@takukou

Good work on naming the commits using the imperative verb.
Try using a branch for an activity where you may want to undo commits.

Overall good start.


Changed whitelist to ignorelist and blacklist to denylist.

Skipped all api names and example api responses.
I'm submitting this PR in response to this Issue:
https://github.com/kubernetes/kubernetes/issues/90277
I don't know what the proper channel for doing this is or if this idea needs to get approved first.
I tried to be as conservative as possible here. I didn't touch any api names or places where these words are used in example api responses.

I signed it

I signed it

Typically we prefer the original committer squash when there's not a reason to keep individual commits (like a refactor followed by a discrete change) so they show up as the committer instead of the github bot, but I'll let the docs reviewer verify that

I recommend against rewriting blog posts in this PR:

blog posts usually have an author byline. If amending, check that the author is OK with the change.
blog posts are dated content from a moment in time. It's OK for a blog post to have outdated wording and even incorrect facts if the reason for the difference is that things have moved on.
as policy, SIG Docs avoids revising older blog posts at all

If the blog post were in breach of community guidelines, that would be another matter of course. In this case I don't feel that applies and so I recommend omitting the blog wording change.
(In this specific message I'm not commenting on the rewording outside of the blog section).

I remove the blog post changes and squashed the commits.

/remove-area blog

/uncc @cstoku
/cc
because he seems busy at his main business
As asked by @kbhawkey , this should be discussed at #sig-docs channel on Slack in advance.
I think this is sensitive and deeply historical thing, each person who lives each country has each perspective, maybe.

General question @scottstout:
Why ignorelist instead of allowlist?
"ignorelist" and "denylist" are potentially too similar in meaning.
I would strongly prefer if we used "allowlist" instead of "ignorelist". In this case, our imaginary bouncer is explicitly either allowing someone into the club or denying them entry – far clearer.
I would strongly prefer if we used allowlist instead of ignorelist.

I've updated to modify the english localization.

/assign @sftim

@liggitt I think I have addressed everone's concerns by narrowing to just the English localization. What do I need to do to move this to get this approved?

@scottstout I'm reviewing now, thanks for your patience.

@scottstout Thanks for this PR. Fixes look good: I'm approving this PR. I'm also placing a hold on it for specific action that needs to happen prior to merge.
Notes
Open an issue before opening a PR.
Issues are for strategy. PRs are for tactics. By opening a PR without an attached issue, we're engaged in two separate conversations simultaneously--about what to do and how best to do it. While it's clear that we need to remove racist language, it's better to identify the full scope of necessary changes outside of a specific PR that addresses only some changes.
My fear is that valuable discussion may pass out of easy reach once this PR merges. To that end, I'd like to ask you, @scottstout to open an issue describing changes before this PR merges. The goal isn't to delay this PR, but to make sure we don't stop here.
This PR is a patch on deeper issues in the codebase.
As @liggitt notes, API references are generated from upstream source. Thanks to @liggitt also for feedback about scoping changes to one language at a time. 👍
As @celestehorgan notes in k/k, merely patching concept descriptions does nothing to change problematic architecture.
This discussion should be happening in an issue, not a PR.
How to proceed

[ ] @scottstout Open an issue for removing racist language from the docs.
[ ] @kubernetes/sig-docs-en-owners review and merge

/approve
/hold

@zacharysarah are you aware of this issue: https://github.com/kubernetes/kubernetes/issues/90277
I realize it is in another repo, but I wanted to see if this addressed the need or if we need one in this repo? You are right in that there are many places in APIs, etc that these terms still exist but I felt like it would be a longer term process to work them through the system. Let me know if you still prefer me to open an issue.

@scottstout Thanks for the link. Yes, I'm aware of the issue--have you read @celestehorgan's comment?
Yes, please do open an issue here in k/website. It's important because we need to make sure this guidance makes into the style guide, and to identify other possible instances of racist language, not limited solely to "whitelist"/"blacklist". Linking to the issue in k/k would be helpful. 👍

General question @scottstout:
Why ignorelist instead of allowlist?
"ignorelist" and "denylist" are potentially too similar in meaning.  In that scenario, to ignore someone and to deny them entry are almost the same thing: neither are getting into the club, but one person is being explicitly denied entry.
I would strongly prefer if we used "allowlist" instead of "ignorelist". In this case, our imaginary bouncer is explicitly either allowing someone into the club or denying them entry – far clearer.
I would strongly prefer if we used allowlist instead of ignorelist.

@celestehorgan I had the title inconsistent with what was actually done. Changed to "Changed whitelist to allowlist and blacklist to denylist". In most cases we just reworded so that none of those words were used.

/lgtm
/approve

/hold cancel

/wg naming


Support replacing custom resources

This method allows resources to have their spec fields entirely replaced, rather than simply patched.

Your change looks good, but why does this PR have (my) commits that are already merged into the main?


Passed all test cases but failed CodeCrunch because of Floating Point Precision Error

Not an issue, just a heads up that can hopefully help someone.
So my code passed all provided test cases. But when I uploaded it to CodeCrunch, it failed a test case. Spent 2 hours debugging only to realise it was caused by a floating point precision error.
I set a threshold of 1e-15 which is fine for all the provided test cases. However, CodeCrunch has a test case that uses 1000 customers. For my code, the threshold of 1e-15 was too small and this caused it to produce incorrect behaviour. Changing the threshold fixed the issue.
The test case I failed was 5_16.
Inputs: 2 3 2 10 1000 7.0 1.0 1.0 1.0 0.5
Outputs: 5_16.txt
Please refer to #170 for instructions on how to automate validation of the test results. (credit to @RussellDash332)

Hmmm interesting, I used a precision of 1e-9 and it was fine for CodeCrunch.

Hmmm interesting, I used a precision of 1e-9 and it was fine for CodeCrunch.

Yes, 1e-9 seems sufficient. For me, changing to 1e-10 was enough to pass CodeCrunch.

You used precision? 😕

I used 1e-15 too but no problem tho...

I used 1e-15 too but no problem tho...

oh, dat's interesting. I guess it depends on how the code is written. Perhaps my code does more mutable operations on double variables which increases the chance of such an error occurring. The appropriate threshold likely varies depending on how the code is written and how much precision is needed.

Can I check which part did y'all use precision threshold for? Didn't seem to need to include it when I was working on the Project!

Can I check which part did y'all use precision threshold for? Didn't seem to need to include it when I was working on the Project!

I sorted all my events by timings and use the threshold to check if two events are suppose to execute at the same time. If they are, then I execute the one with the lowest customer ID. The precision error caused my events to execute out of order.

Just completed the project, I did not seem to need this too. I guess it's just because of the difference in the direction we took to implement the simulator.

I have done the project. I don't think there is a need to use precision. Instead, you can try non-strict inequality to test something. I did it and it was fine


Cartography for water bodies vs. SLR planning Area

Avoid blues, as it is confused with waterbodies.
Hard to see where layer is overlapping land or water in some areas.

New 4 class cartography will not use blues. Final color scheme TBD, but we will avoid blues.


A guide for running it in a remote machine

Ned a guide for running it in a remote machine because Docker desktop absolutely kills my CPU for some reason. I have been running it on a remote EC2 machine with SSH port forwarding and it works perfectly. We need a guide on this so that others with less powerful machines can follow it.

I like this idea. It really make sense when you look at some of the ephemeral environment tools out there. Uffizzi was one that I had looked at recently. https://github.com/UffizziCloud/uffizzi


Suggestion: Simpler, more helpful color scheme for graph view

The current scheme seems like it works really well with tree-structured notes, because each branch gets colored in neat groups and leaf nodes get the same color as their twigs, etc.
But in a highly interconnected network, which (org-)roam encourages, with few leaf nodes and many connections (see attached screenshot), the current coloring scheme -- even if it is very pretty -- is not very helpful and actually makes my work navigating the network graph harder rather than easier.
So I suggest a coloring policy more in line with e.g. obsidian.
My wish list is a scheme that:

Has one color (e.g., gray) for all non-highlighted nodes,
Dims inactivte nodes slightly when a node is highlighted,
Highlights currently hovered node and all first-order connections, as well as the connecting edges, by a not too strong color and thicker lines,
If possible activates labels of all first-order connections as well as the selected/hovered node itself,
Perhaps has different highlight colors for selected (by click) nodes and hovered nodes, but all others are a neutral gray.

Cool suggestion!
The way it's implemented right now, groups are created and colors are assigned using it. So if you try to define the color using the variable org-roam-server-vis-options, it won't change.
To play with your suggestion, I've commented the following code from the index.html file to stop assigning groups to the nodes:
              // Group the nodes
              let group = 0;
              const keys = Object.keys(nodes).sort(compareNodeValues);
              // for (let i = 0; i < keys.length; i++) {
              //     const k = keys[i];
              //     if (!nodes[k].group) {
              //         const connectedNodes = tempNetwork.getConnectedNodes(k);
              //         if (connectedNodes.length > 0) {
              //             const node = connectedNodes.max(compareNodeValues);
              //             if (!nodes[node].group) {
              //                 nodes[node].group = group;
              //                 group += 1;
              //             }
              //             nodes[k].group = nodes[node].group;
              //         } else {
              //             nodes[k].group = group;
              //             group += 1;
              //         }
              //     }
              // }

Then I could change the color using the vis options, this is my config:
	org-roam-server-network-vis-options "{\"physics\": {\"enabled\": false, \"stabilization\": {\"enabled\": false, \"iterations\": 100}}, \"edges\": {\"physics\": false, \"length\": 5, \"hidden\": false, \"smooth\": {\"enabled\": true, \"type\": \"continuous\"}, \"color\": {\"border\": \"#2B7CE9\", \"background\": \"#97C2FC\", \"highlight\": \"#3f308e\", \"hover\": \"#3f308e\"}}, \"nodes\": {\"mass\": 3, \"font\": {\"size\": 32}, \"color\": {\"border\": \"#D6D5D3\", \"background\": \"#161616\", \"highlight\": \"#3f308e\", \"hover\": \"#3f308e\"}}, \"options\": {\"highlightNearest\": {\"enable\": true, \"degree\": 2}}}"

You don't need all of them, just the edges and nodes color option. And this is the result:

I liked the result but then searching on how to highlight the neighbors I've found this example, which would be cool to implement here.

@lgmoneda Cool! I played a bit with your suggested settings and got this, where the selected node and its connecting edges are green, and the hovered one is yellow.

I think this already makes the graph much more useful in terms of localizing connections, but would totally love to also get:

Highlighting of the first degree connected nodes (although perhaps only the border, to distinguish them from the central one?)
More subdued highlighting of second degree connections like in the example you linked.

Cool! I'm happy it was useful.
I've been playing with the example provided, here's what I have so far:

So it highlights the first connection in green and the second connection in pink. It also excludes the labels from the not selected nodes. It becomes really close to the idea of the buffer network, but this option is cool because you can just keep exploring the large graph while you highlight different parts of it. In the buffer network, there's "disruption" by changing the nodes' positions.
I also created a button to enable and disable it. I could totally keep developing this feature and open a PR, but I'd need some directions from @goktug97 to know how to deal with the group stuff, to polish the idea a little bit, and so on.

Wow! It looks awesome!!
Maybe something like this can be implemented?
(defcustom org-roam-server-options nil
  "Options TODO: Better Docstring"
  :group 'org-roam-server
  :type 'string)

(defcustom org-roam-server-color-scheme "default"
  "Color scheme TODO: Better Docstring"
  :group 'org-roam-server
  :type '(choice
          ("default" :tag "Default color scheme")
          ("test" :tag "Test color scheme")
          (function :tag "Custom color scheme function")))

(defun default-color-scheme ()
  ;; Revert everything to default (Colors, Options etc.)
  )

(defun test-color-scheme ()
  (setq org-roam-server-network-vis-options "{\"color\": {\"border\": \"#2B7CE9\", \"background\": \"#97C2FC\", \"highlight\": \"#3f308e\", \"hover\": \"#3f308e\"}}, \"nodes\": {\"mass\": 3, \"font\": {\"size\": 32}, \"color\": {\"border\": \"#D6D5D3\", \"background\": \"#161616\", \"highlight\": \"#3f308e\", \"hover\": \"#3f308e\"}}, \"options\": {\"highlightNearest\": {\"enable\": true, \"degree\": 2}}}"
        org-roam-server-options (json-encode (list (cons 'disable_grouping t)))))

(defun org-roam-server-color-scheme-fn ()
  (pcase org-roam-server-color-scheme
    ("default" default-color-scheme)
    ("test" test-color-scheme)
    ((pred functionp)
     (funcall org-roam-server-color-scheme))))

(defun org-roam-server-change-color-scheme (color-scheme)
  (setq org-roam-server-color-scheme color-scheme)
  (org-roam-server-color-scheme-fn))

(defservlet* server-options application/json (token)
  (if org-roam-server-authenticate
      (if (not (string= org-roam-server-token token))
          (httpd-error httpd-current-proc 403)))
  (insert (or org-roam-server-options "{}")))

and in .html
var serverOptions = {}
$.ajax({
    async: false,
    type: 'GET',
    url: `/server-options?token=${token}`,
    success: function(data) {
         serverOptions = data;
    }
});

// ...
          if (!serverOptions.disable_grouping) {
              for (let i = 0; i < keys.length; i++) {
                  const k = keys[i];
                  if (!nodes[k].group) {
                      const connectedNodes = tempNetwork.getConnectedNodes(k);
                      if (connectedNodes.length > 0) {
                          const node = connectedNodes.max(compareNodeValues);
                          if (!nodes[node].group) {
                              nodes[node].group = group;
                              group += 1;
                          }
                          nodes[k].group = nodes[node].group;
                      } else {
                          nodes[k].group = group;
                          group += 1;
                      }
                  }
              }
          }
// ...

@goktug97 I haven't checked your code yet, but I guess your idea is to give us a direction to adapt this feature to play along with the existing code, right?

That's the result of a highlight that makes the selected node yellow, the first connections green (nodes and edges), and the second connections pink (nodes and edges). I'm also excluding all the other edges and node names to make it more readable.
I had to iterate on edges since I didn't want to colorize the second-order connections that are not connected to the first order nodes, so I couldn't inherit color from the nodes. So it makes it a little bit slow.
https://user-images.githubusercontent.com/3893078/103312517-16eab980-49fc-11eb-9816-f84682686eab.mov
In the end, as said, it becomes like the "buffer network" but visualized on top of the whole network the user might get used to. I liked the colors to show the connection degree, I'd love to have it in the buffer network.

@lgmoneda That looks really good!
I was thinking something: I really like that the central node has the same color as the edges, as in my screenshot higher up.
As far as I can see, we have both the face and the edge color of the nodes to play with. How about something like this:

Central node gets Color1 on both edge and face
First-degree edges get Color1
First-degree connection nodes get face Color1, edge Color2
Second-degree edges get Color2
Second degree connection nodes get face and edges both in Color2

As far as I can see superficially, this would also solve the problem of having to iterate over the edges.
Unfortunately I don't have the lisp/JS/JSON skillz to code my example.

@goktug97 I haven't checked your code yet, but I guess your idea is to give us a direction to adapt this feature to play along with the existing code, right?

That's the result of a highlight that makes the selected node yellow, the first connections green (nodes and edges), and the second connections pink (nodes and edges). I'm also excluding all the other edges and node names to make it more readable.
I had to iterate on edges since I didn't want to colorize the second-order connections that are not connected to the first order nodes, so I couldn't inherit color from the nodes. So it makes it a little bit slow.
org-roam-short.mov
In the end, as said, it becomes like the "buffer network" but visualized on top of the whole network the user might get used to. I liked the colors to show the connection degree, I'd love to have it in the buffer network.

It looks visually appealing!! Yeah, above code is for integration.

@goktug97 yes, I'm doing this:
// get the second degree nodes
for (i = 1; i < degrees; i++) {
    for (j = 0; j < connectedNodes.length; j++) {
        allConnectedNodes = allConnectedNodes.concat(
	    globalNetwork.getConnectedNodes(connectedNodes[j])
        );
    }
}

Considering degrees here is set to 2.
So should I invest in creating it as a feature? Should we use a button to activate this "highlight mode" or create the option as a param in the elisp code? Or would we make it the default behavior when someone clicks a node to highlight it?

Well if you have time and want to contribute I think this is a really good feature.

Well if you have time and want to contribute I think this is a really good feature.


Discovered a great feature: recursive narrow

Not a bug report, just a comment/Idea.
I've run narrow: line on an existing narrow buffer. Works as intended =D. There's some potential here!
The use-case was to narrow down on foo and see if there's any bar on the same line. I search for foo first then open narrow: line on the narrow buffer to search for bar, then jump and jump back to the original code).
Maybe there can be first-class support of this, or maybe it doesn't need one for now.
Also, it'd be great to see the context around a line, e.g. some shortcut to expand around the line (and heck, edit in-place!)

Technically possible.
But why just input bar on the result UI of narow:search  is not enough?

narrow:search for foo
input bar to find line which include bar from the narrow:search result.

That'd work too.
I personally don't use narrow:search because I like narrow:line for its incrementality. Feels like a superset of narrow:search.

OK, you find matching line in the file.
So type foo  bar is not enough? why search 2nd bar in different narrow:line buffer?

Oh, I didn't realize space was treated differently, even with fuzzy off!
Is that a desirable behavior? I think it should have searched the literal "foo bar" with fuzzy off. Then again I haven't needed searching for the literal space, yet.
I'll close this for now then; sorry for the trouble!

I want to remove fuzzy search for the time being.
Current status of narrow package is result of short-time-experiment, so included confusing feature without much consideration.

Is it because of perf concern of useless-ness? I've turned it on and tried it a bit, then turned it off too. Fuzzy hasn't been that useful, surprisingly.
(Same for lazy-motion... I thought I'd use fuzzy more.)

It's counter-intuitive and even if I re-introduce fuzzy, I want postpone other more important part was polished.
What confuse normal user is when fuzzy was enabled, matching highlight was not correctly rendered. I too misunderstood narrow:line have bug(I've forgotten that I have enabled fuzzy).

Is that a desirable behavior? I think it should have searched the literal "foo bar" with fuzzy off. Then again I haven't needed searching for the literal space, yet.

Good point, but I don't know.
I have to remember how I created and designed original narrow.
I completely step off from narrow for several months, need to re-cache the context of narrow into my brain!! 😄

Yeah the highlighting was part of why I turned it off at the moment. There are probably some performance consideration for disabling it too.
Thanks for working on this, as always =).


Add default ruleset documentation for API Governance

Purpose

Related task: https://github.com/wso2-enterprise/choreo/issues/31077

Goals

Describe the solutions that this feature/fix will introduce to resolve the problems described above

Approach

Describe how you are implementing the solutions. Include an animated GIF or screenshot if the change affects the UI (email<EMAIL_ADDRESS>to review all UI text). Include a link to a Markdown file or Google doc if the feature write-up is too long to paste here.

Release note

Brief description of the new feature or bug fix as it will appear in the release notes

Samples

Provide high-level details about the samples related to this feature

Related PRs

List any other related PRs

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


Podcast: add 230 recap

Im ok to merge it (even if we are waiting on 230), if you are @murchandamus

Ah, so the transcription is there, but we don’t have the audio track?

Sorry, I meant Im good to push 230 even if we are waiting on 231.

Ah yeah, it’s over half a year anyway, I don’t think it matters if one is missing in the order.


Docker desktop port collision issue

On the current main, running bucc up --lite --cpi docker-desktop resulted in the following error:
	Deploying:
	  Creating instance 'bosh/0':
		Creating VM:
		  Creating vm with stemcell cid 'bosh.io/stemcells:img-3882f5a4-1b35-4d41-7579-fdc16dcb1cc0':
			CPI 'create_vm' method responded with error: CmdError{"type":"Bosh::Clouds::CloudError","message":"Creating VM with agent ID '{{ee0d0ab5-10a4-405a-7fbd-f87eca948cca}}': Starting container: Error response from daemon: Ports are not available: listen tcp <IP_ADDRESS>:22: bind: address already in use","ok_to_retry":false}

Currently running on MacOS 11.6.2 (20G314). I do have a local ssh enabled - but I'm not expecting the container to bind the hosts ssh port.

Nope - it gets further, but then gets stuck and eventually gives up at:
Failed deploying (00:14:26)

Stopping registry... Finished (00:00:00)
Cleaning up rendered CPI jobs... Finished (00:00:00)

Deploying:
  Received non-running job state: 'starting'

Exit code 1

Presumably, because something somewhere else assumes port 22 and not 10022. Going to switch to VirtualBox for now, see if I get more luck with that.

The docker desktop cpi indeed assumes it can bind to local port 22 on the host. Which is not compatible with MacOS remote login.

stale issue please reopen if nesccary


ECADD precompile: input points can be equal

the ECADD precompile uses the Add() method which makes the assumption that the input points are different and nonzero. We use Add() in places where we are guaranteed of this assumption (ScalarMul() and ScalarMulBase()) but the precompile does NOT make this assumption.

Actually even ScalarMul and ScalarMulBase need to use AddUnified for the last addition. We suppose top bit is 1 and continue and subtract the input point at the end if it was 0. If the scalar is 0, the last addition is Add(input, -input) which fails so we use AddUnified which captures this edge case in #631.


Drag&drop custom nodes from filesystem to visual shader

And better loading of custom nodes - no need to restart the editor to add them to graph tree - scene must be reloaded to apply tool scripts - after next focus of visual shader graph the changes will be applied
Drag and drop is simple:

You're on a roll lately! It's great seeing more shader editor improvements from you :slightly_smiling_face:

If someone could donate me a few dollars I would be happy :)


[sksupport] Remove unused old TSC argument parsing code

Fixes deprecation warnings while building sourcekit-lsp. We haven't used
this code since we switched to swift-argument-parser, so just delete it.

@swift-ci please test


APPINT-2377 Utilize passenger commands to restart app

Capistrano needs updated so that it will restart the application at the end of the deploy again. It is currently not doing that.

Coverage increased (+36.0%) to 92.015% when pulling 295dbc2d52c930effeafbb2677d91b6476633312 on appint-2377-passenger into 4fa80caefbfb1370d9b99c5abc020ebce83557e7 on develop.

Coverage increased (+36.0%) to 92.015% when pulling 295dbc2d52c930effeafbb2677d91b6476633312 on appint-2377-passenger into 4fa80caefbfb1370d9b99c5abc020ebce83557e7 on develop.


fix BZ69492, Conditional requests comply rfc9110

preconditions evaluation implementation comply  spec, as rfc 9110 section 13.2.2. defined.
fix BZ69492;

I applied the PR with some modifications (and the edge case).


Battery discharge at boot?

When I looked into this, I found someone who tested 2x and 3x discharge rate of small cells. It still works, but may affect overall battery life, though not significantly. The discharge rates that manufacturers (brand names like Panasonic) guarantee are best practice that ensures long life.
I don't think voltage sag will be an issue here. it can of course be mitigated with capacitors.


unjank the partial evaluator

The current partial evaluator is very eager with what it does, expanding and inlining as much as it can, as soon as it can. Additionally, it is implemented as essentially a tree-walking interpreter.  Not great!
A better approach would

not stack overflow on infinite loops, instead actually looping forever (and informing the user of where the loop occurs with Driver::report_eval)
only eagerly evaluate things when all inputs are known (including effect handlers)
be able to use heuristics to determine when to inline and when to leave alone a function call with none or only some known inputs

I've been puzzling around with a design inspired by Rust's const evaluator, and I think I have the general mechanism down.  This means that we can represent a kind of instruction pointer by naming the block and the index of the instruction (or the branch, if it is a branch).
I'm pretty unhappy with the first attempt introduced in fcccecc84ac164c8af9b84756eadc382d300bd22. I got the general skeleton of it down, with Places and Frames representing instruction pointers and call frames, respectively, and the ability to execute things in a step-by-step fashion. The code is pretty botched and hard to debug, however (evidenced by me introducing some debugging configs in fcccecc84ac164c8af9b84756eadc382d300bd22; oh C#, how I miss your debugger).
So for now I'll be rewriting the ugly bits.

Anyway, the core of the partial evaluation algorithm is something like this
do_step:
  get current instruction/branch at place
  evaluate the arguments
    if the argument is an unbound name, leave it as is
    otherwise, replace it with its bound value
  evaluate the operation with the evaluated arguments
    if the operation cannot fully proceed,
      push the instruction with the evaluated arguments
    otherwise, bind the result to the targets

where an instruction consists of arguments to an operation, with the result bound to a target. eval 1.0 did this in a very "direct" style, walking trees, producing lambdas, and recursively evaluating them. With the new evaluator, I'm not directly producing lambdas anymore. One consequence of this is that the "push the instruction" step isn't valid if we're evaluating a function call, for instance, since its arguments may be bound "more tightly". That is a tricky thing to keep in mind, and I do think this and a few other things means that the evaluator needs to do one of

keeping track of whether it is partially evaluating a function (with unbound parameters)
being very careful with what values are included in the instruction it pushes (e.g. data depending on parameters cannot be included)
doing something fancy to specialize a function for the given call

I'm excited about the possibility of specialization, though I do think monomorphized implicits are the more reliable way (from the user's side) to do this. I'm also not entirely sure how that would happen (does the caller determine whether the function should specialize or not?) and it might just be the same as the first idea anyway.

So with ccdb4cffc18b1b1450c98347f465ca8b48614a0d, I declare the partial evaluation unjanking process a success! There are a couple of tidbits here and there still missing for eval 2.0 to be up to feature parity with the old evaluator, but its core functionality seems to be working.
A couple of benefits of this rewrite:

Evaluation is flat, being a simple while loop around a step function, which means it will no longer stack overflow in deeply recursive functions or highly nested code.
Because it only evaluates a single instruction or branch at a time, extending the evaluator with, say, debugging capabilities will be much easier
Function calls in particular now have access to a lot more information, which means it can make better and smarter decisions about when to actually do a call and so on
As a result of that, extending the partial evaluator with things such as a function specializer should be fairly easy
Values keep track of scope information (in a possibly buggy way?) which means the partial evaluator should be much more resilient to scope issues (no more will local variables "leak" out of functions)

Overall, I am very happy with this.


babel-preset-env

It's about the deprecated warnings in npm install. I think they are self-explanatory, straight forward and simple enough to solve, so here's a copy:

npm WARN deprecated<EMAIL_ADDRESS>💥  preset-latest accomplishes the same task as babel-preset-env. 🙏  Please install it with 'npm install babel-preset-env --save-dev'. '{ "presets": ["latest"] }' to '{ "presets": ["env"] }'. For more info, please check the docs: http://babeljs.io/docs/plugins/preset-env 👌. And let us know how you're liking Babel at @babeljs on 🐦
npm WARN deprecated<EMAIL_ADDRESS>We're really excited that you're trying to use ES2017 syntax, but instead of making more yearly presets, Babel has a better preset that we recommend you use instead: npm install babel-preset-env --save-dev. Give us a follow @babeljs to get more updates
npm WARN deprecated<EMAIL_ADDRESS>We're really excited that you're trying to use ES2016 syntax, but instead of making more yearly presets, Babel has a better preset that we recommend you use instead: npm install babel-preset-env --save-dev. Give us a follow @babeljs to get more updates

It's something minor and provably not urgent, but I searched the issues and there was nothing about it, so I decided to post it.

Can you open this on the template repository showing this warning, please?

It's not a template, this shows when installing the CLI with 'npm install -g vue-cli' on bash on Windows.

Ah, I see. It seems to be happening in one of the dependencies. I don't see which one though 🙁

Oh, that makes sense. Well, I don't think it's very critical, and I suppose most packages will make the change soon enough. Thanks for the replies.


add analytics to page, and event-specific analytics events

we kind of need to have production analytics and dev/QA, so that we can test the events are happening on dev. Assuming we can do that, events (bold are must haves):

[ ] hovered over wally trends
[ ] button clicks for GDD pattern (reset, finished, skip)
[ ] tried to draw GDD pattern (any dots)
[ ] value of GDD guess
[ ] hovered over sankey
[ ] clicked on map button
[ ] within map, clicked on a lake
[ ] viewed chapter (all chapters, yes/no). Each chapter is an event
Others?

Have a bunch of these in #117 , but will want some feedback on whether or not this is a good way to do events.

For some reason these events aren't sent in Safari

@jiwalker-usgs can you add the link click event tracking that you mentioned?

and the chapter views?

should we treat the map button like an outbound link?

yes


Proxy locations and fetched prices

I come from insideairbnb.com where it says "Tom Slee regularly scrapes the Airbnb site .." and in your readme I see "I run the script using a number of proxy IP addresses to ...".
Assuming that insideairbnb.com data was scraped using code from your repository, what are your thoughts on airbnb.com returning different results depending on your proxy's location?
To test this idea, I've used VPN to switch to different countries and checked prices for the same listing. Results are returned in local currency so if multiple proxies scrape single city, the resulting csv will also have prices with mixed currencies.
If you agree it's an issue, fetching currency symbol could be partially helpful. Example: One of the listings I've tested, when accessed from USA has price $55, from China ￥377 but from Canada $74.

Hi @bartgras. Inside Airbnb has their own code, separate from (and probably better than) what's on here. I know they collect a lot more data per listing, for example.
I've used proxies in a single country, so I haven't seen the mixed problem you see. The script does retrieve the currency, and if you have a column named "currency" in the "room" table it should be filled in.

Thank you Tom. That explains what I wanted to know.


test/fail_compilation/lexer2.d: Use __VENDOR__ instead of __VERSION__

__VERSION__ will change often (every release), and having to fix this test
every time is an useless maintenance cost.  Instead, we use __VENDOR__, which
is a token that won't change.
See D-Programming-Language/dmd#5378 for the problems it can create
Ping @WalterBright

And won't pass with the other D compilers?

And won't pass with the other D compilers?

Good point, though I doubt they take the test suite / front end verbatim anyway.

GDC too - except for assembler related things.

@ibuclaw @klickverbot So for clarity, are you against this change ?
I don't really mind closing it, I just saw the previous P.R.s and thought it was not a very scalable approach.

Thinking about it, can't you use LINE or something like that instead?

__LINE__ is a funny one too, because I insert comments at the start of every test in order to interface with Dejagnu.  See #5355 for two other kinds of examples.

We'd have less trouble if we just deleted that test.


[USMON-1135] discovery module skeleton

What does this PR do?
Creates a new system-probe module (linux only) to collect information for the new discovery initiative.
The current module is empty and does not perform logic, the actual collection will be done in a separate PRs.

Motivation
Setting the baseline for the new discovery module.

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Enable module
Run system-probe with the following environment variable DD_DISCOVERY_ENABLED=true, or
Add the following entry to the system-probe configuration file:

discovery:
  enabled: true

Run system-probe
Query status of the new module

curl --unix /opt/datadog-agent/run/sysprobe.sock http://unix/discovery/status

expect to see

Discovery Module is running

/merge


unable to save with some block lists

Using Doogie 0.6.1, I'm unable to save the profile's preferences for some lists. I've noticed that when a list fails to populate the name, homepage, and expiration policy in the UI, the preferences won't save.
For example, while EasyList works, Peter Lowe's List and the Estonian Ad-block list  do not.

Thanks for the report. Will fix. Dumb thing on my part:
Failed to exec query:  "NOT NULL constraint failed: blocker_list.name Unable to fetch row"

Not sure why I'm not using an empty string here. I need to set these default values in the constructor of the BlockerList.


Implement Flynt's static string join transforms

Fixes https://github.com/charliermarsh/ruff/issues/2102 😄

"{'Finally'}, " + f"{greeting}" + f"{subject}" causes an autofix syntax error, but I'm not quite sure what's happening in particular – what's the easiest way of seeing the autofixed-but-broken code?

Sadly the best way to debug is to print out transformed where you see the {}: Autofix introduced a syntax error. Reverting all changes. error logging.

We should change it to print the syntax-erroring code in debug mode, since I find myself doing this a lot.

Autofix introduced a syntax error. Revertin

I made some changes to our test infra so that should help you narrow down the issue #4202


Fix changelog entry for KeywordParametersOrder

Style/KeywordParametersOrder was introduced in #8563, not #8562.
/cc @fatkodima

Before submitting the PR make sure the following are checked:

[x] Wrote good commit messages.
[-] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[-] Added tests.
[x] Added an entry to the Changelog if the new code introduces user-observable changes. See changelog entry format.
[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Run bundle exec rake default. It executes all tests and RuboCop for itself, and generates the documentation.

Good catch 👍


CSV Export: Modal redesign

Overview
We are updating the experience to export the CSV file from the transactions section of the Fiscal Host dashboard...

The option to select a custom set of export fields is stressful for end-users:

There are many fields and it can feel overwhelming to review them all as they are currently presented.
Some fields are unclear and potentially confusing to users (eg: short ID’s and long ID’s?, amount & netAmount, isRefund, is Refunded), etc.).
There is no clarifying documentation.
Fields are not clearly organized/grouped.
We need to be able to add more fields and the form is already very long.
If a user does make an effort to select fields there is no way to save their selection for reuse in the future.

Solution
Scope 1: Improvements to the existing UI

Better organize the fields on the screen (fields order, groups).
Adding tooltips to the fields.
Adding platform export presets (selected sets of fields) that enable us to provide multiple pre-saved configurations: eg:
“Accounting 2023” would represent our current set
“Accounting 2024” could be a modified version to account for the change in payment processor fees and taxes).
and perhaps in the future other useful sets.
Enable fiscal host admins to select output sets and save them as a fiscal-host set that all admins of the same fiscal host can use when exporting transactions.

Scope 2: Improved field selection
Enable a grouped-fields UI where:

The groups themselves provide guidance and context.
Focusing on group shows a limited set of fields (”hiding” all the other fields from view) that have shared context and are easier to navigate and select.
The set of selected fields is clearly displayed and managed (remove fields).
Optional:  change field order

Design update
After the first two team workshops, this is the current state of the design proposal:
https://www.loom.com/share/b69da52b69e24a3f9ec79109ec5adb06?sid=04f57439-51e0-43a2-abdb-8ea74166868e
@iamronen @znarf @kewitz

Coda reference: https://coda.io/d/Make-Open-Collective_dnHLKv7oLV0/Currently_suFhs#CurrentProjects_tu75U/r145&view=modal

Todo:

[ ] Check if there's any necessary UI component missing
[ ] Check existing implementations of reordering fields

@kewitz About the pending design input:
1. Placement of the separate as columns switch

Below the "Selected fields for export"

2. Exporting action feedback

Loading state of the Export button
Reference from https://ui.shadcn.com/docs/components/button

3. File is too large

Lock the modal to take any action until different filters are set.

Figma file link

attn @Memo-Es copy for the backwards compatibility option:

Delete the first part: Separate transactions compatibility
Leave only: Export taxes and payment processor fees as columns.
Add tooltip: Before 2024 payment processor fees and taxes were columns in transaction records. Since January  2024 they are separate transactions. Enable this option to transform separate payment processor fees and tax transactions into  columns in the export.

implementing the proposal from @kewitz to turn this on by default when selecting the 2023 platform preset (with the ability to turn it off).

Loading state of the Export button
Reference from https://ui.shadcn.com/docs/components/button

Just a reminder that this export button is, in fact, a link that opens the download in a new tab. It does not export or generate anything.

Just a reminder that this export button is, in fact, a link that opens the download in a new tab. It does not export or generate anything.

Yes, the loading state is to have visual feedback on our platform parallel to the browser download

@kewitz ok I see. Then we could use a toast notification saying something like: "Your export has started"


Benchmark Sample not working with webassembly

I tried building the Benchmark sample from https://github.com/konsoletyper/teavm/tree/master/samples/benchmark but I'm getting this error message in Chrome 70:
Error loading WebAssembly RuntimeError: memory access out of bounds     at ju_HashMap_findNonNullKeyEntry (wasm-function[256]:25)     at ju_HashMap_putImpl (wasm-function[259]:272)     at ju_HashMap_put (wasm-function[258]:25)     at jnc_Charset__clinit_ (wasm-function[157]:202)     at initclass_jnc_Charset (wasm-function[984]:29)     at jnc_Charset__init_ (wasm-function[154]:51)     at jnci_UTF8Charset__init_ (wasm-function[153]:83)     at ji_PrintStream__init_ (wasm-function[89]:203)     at jl_System__clinit_ (wasm-function[35]:145)     at initclass_jl_System (wasm-function[976]:29)
I used mvn clean package for the build. Is there something I'm missing?

I haven't tried the WASM support yet, but I have read that Chrome 70 had major WASM changes:
https://developers.google.com/web/updates/2018/10/wasm-threads


Moving the station causes all players inside it to gain noclip

It also seems to not consider where the station has moved to, as you have control over your movement for longer than expected when moving out onto space.

I'm working on this by rewriting the entity + physics trees.
Problem is the WorldAABB for entities isn't updated when the station moves despite fps dropping to 0.1 to update the station's children.

Isn't/Won't be a problem.


not working on windows

can you try some basic tests of your library on windows? no matter what you use for paths, it ends up with that error : https://github.com/jonschlinkert/glob-fs/issues/10
g

@gbaumgart This isn't anything new. All of @jonschlinkert repos doesn't work on windows and the author doesn't seem to won't to fix it either. Instead of giving replies, he lock thes the issue for collaborators only and doesn't reply.
And be aware if you write any issues @jonschlinkert doesn't like, he blocks you!!
See this issues as well:
https://github.com/jonschlinkert/bash-glob/issues/1
https://github.com/jonschlinkert/nanomatch/issues/1
@jonschlinkert @doowb Any progress on this issue??

@nowindowsowrking I've reported your account to github. I blocked you because you made insulting comments on another issue. Your comments will always be deleted on my projects.

@gbaumgart This isn't anything new. All of @jonschlinkert repos doesn't work on windows and the author doesn't seem to won't to fix it either. Instead of giving replies, he lock thes the issue for collaborators only and doesn't reply.
And be aware if you write any issues @jonschlinkert doesn't like, he blocks you!!
See this issues as well:
jonschlinkert/bash-glob#1
jonschlinkert/nanomatch#1
ok, good to know. time to move to something else then.

@gbaumgart @doowb @jonschlinkert
Hi.
I have followed this issue ticket and many others a bit on the sideline. And I began to wonder after your frontal attack on this user.  I do not know what he wrote in some of the other messages it has been referred to, but I have read the message that you have deleted.
And it is your right. And also delete other messages from this user.  As long as these are inappropriate. I am a lawyer by profession and reminds you of the Fifth Amendment.
We all have freedom of speech.  But we will not tolerate abusive messages or harassment.
There you got a point!  But nothing in the message that I was reading is in this category.
He links to various other issues.  That's one thing. And look at the headline on this issue?
Someone else opened a issue ticket regarding your code didn't work on windows . You didn't block that user?
And the issue ticket linked too in this tread as well. You didn't block all this users.
Github staff now  monitors this issue ticket. I reported it. And I reported you. For me this is clearly a personal attack. There is nothing in the message that you deleted here as harassment.  If you dislike that  others are commenting on open source - and it's not harrassement - you shouldn't publish that code then.
I don't like a bad culture on Github.  But by all means. Delete this message even if you will. I've taken a screenshot. So Github management.
My point is only a personal attack will be taken outside the public domain. Whether it's you or the other user. I also reported the other user. Not because of the harassment, but because his nickname is clearly designed to provoke.
Think about it.  What do you know about him? Are you sure he did not check all your repo?
Maybe he - as I have done too - was reading similiar issue tickets regarding same problems and made a conclusion based on that without checking the files in depth.
You don't know!
Again I remind you of the fifth Amendment. As you clearly have prohibition against.

same here. doesn't work on windows. looks pretty childish what's going on here. i guess its better to switch package just

yes, it is childish. please stop.


Add dockerized ARM64 tests (bazel C/C++, C#, PHP, ruby, python)

https://github.com/grpc/grpc/pull/28963 is also required to make the ARM64 tests pass (but it's blocked).

add arm64 docker images for C#, PHP, ruby, python and bazel.
support running arm64 tests for C#, php, ruby and python in run_tests.py (and add corresponding run_tests.py invocations into run_tests_matrix.py)
adjust tools/dockerfile/push_testing_images.sh to be able to transparently build arm64 images on glinux by using qemu.

@veblush @apolcyn  this is now ready for review.
CC @nicolasnoble

@jtattermusch This is great! and did you have a chance to get performance result? I'm interested in how fast these tests are done using QEMU.

Known failures:

node interop test build is failing on master as well
the mac C/C++ test failures is an unrelated flake: https://source.cloud.google.com/results/invocations/f98bc294-5b2a-4283-88d0-4fc627041427/targets/github%2Fgrpc%2Frun_tests%2Fc_macos_dbg_native/tests

@jtattermusch This is great! and did you have a chance to get performance result? I'm interested in how fast these tests are done using QEMU.

Responded offline.


The training loss on tensorboard is half of the one on progbar when accumulate_grad_batches=2

🐛 Bug
The training loss on tensorboard is half of the one on progbar when accumulate_grad_batches=2
I guess it's because training loss is divided by accumulate_grad_batches instead of average over accumulate_grad_batches batches, but I'm not sure
To Reproduce

Expected behavior
The training loss on tensorboard should equal to the one on progbar
Environment

PyTorch Lightning Version (e.g., 1.3.0): 1.5.0dev
PyTorch Version (e.g., 1.8)
Python version:
OS (e.g., Linux):
CUDA/cuDNN version:
GPU models and configuration:
How you installed PyTorch (conda, pip, source):
If compiling from source, the output of torch.__config__.show():
Any other relevant information:

Additional context

Hey @quancs
I will double check your observation. But we only log to the logger on optimizer steps (so at the end of accumulation phases) while the progress bar shows every update (although a smoothed value over a window of a few steps).
If I understand correctly:
self.log("train_loss", loss, logger=True, prog_bar=True)
return {"loss": loss}

Will do two things:
Logger will show the values in a plot "train_loss" as they are logged there on every optimizer step, no modifications done.
Progress bar will show: a) "train_loss" as logged by you but updated not only on optimizer steps but each backward b) will show "loss" what you returned from training_step and there compute the running average over the accumulation phase.

@awaelchli
For my case, the training loss on tensorboard is approximately 6, the training loss on prog bar is approximately 12, the validation loss on tensorboard is approximately 12, the test loss is approximately 12. (PL version 1.5.0dev)
Hope this will help

@awaelchli When I use two GPUs training, the loss on progbar becomes as twice as the metric on tensorboard (accumulate_grad_batches=1, sync_dist=True) and the training loss on tensorboard is at the same level with val loss on tensorboard now...
This is very annoying. Can you give me two breakpoints for observing the metrics logged on tensorboard and on progbar (the pytorch_lightning is big, I'm not sure where are they)

This does no longer happen after Lightning 2.0, because we no longer automatically log the loss to the progress bar. The user would log it themselves with self.log and so the exact value is shown in the bar. This means also the loss value in the logger will be the exact same. Closing the issue.


Terraform Error in main.tf

Following last PR update, issues have been introduced with the main.tf file in AzureTRE repository.
Log Output
Initializing the backend...
Successfully configured the backend "azurerm"! Terraform will automatically
use this backend unless the backend configuration changes.
Initializing provider plugins...

Finding hashicorp/azurerm versions matching "3.12.0"...
Using previously-installed hashicorp/azurerm v3.12.0

Terraform has been successfully initialized!
data.azurerm_client_config.current: Reading...
azurerm_resource_group.mgmt: Refreshing state... [id=/subscriptions//resourceGroups/]
data.azurerm_client_config.current: Read complete after 0s [id=2022-09-23 15:40:41.813769401 +0000 UTC]
azurerm_storage_account.state_storage: Refreshing state... [id=/subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts/]
azurerm_container_registry.shared_acr: Refreshing state... [id=/subscriptions//resourceGroups//providers/Microsoft.ContainerRegistry/registries/]
azurerm_storage_container.porter_container: Refreshing state... [id=https://***.blob.core.windows.net/porter]
╷
│ Error: alpha numeric characters only are allowed in "name": ""
│
│   with azurerm_container_registry.shared_acr,
│   on main.tf line 43, in resource "azurerm_container_registry" "shared_acr":
│   43:   name                = var.acr_name
│
╵
╷
│ Error: "name" cannot be less than 5 characters: ""
│
│   with azurerm_container_registry.shared_acr,
│   on main.tf line 43, in resource "azurerm_container_registry" "shared_acr":
│   43:   name                = var.acr_name
│
╵
make: *** [/home/vscode/AzureTRE/Makefile:32: mgmt-deploy] Error 1
Error: Process completed with exit code 2.

Dear @daemel ,
Having a look at the log output, we believe the errors are very descriptive:
Error: alpha numeric characters only are allowed in "name": ""  - please make sure the value contains only alpha numeric characters.
Error: "name" cannot be less than 5 characters: "" - please make sure the length of the value is 5 characters or more.
Let us know if the issue persists despite this.


jadx decompiler not printing source code

I'm trying to use the jadx decompiler as it seems to be more accurate than the default.
I've downloaded jadx into an external directory. I'm using the sample provided in the most updated docs.
Androguard version is 3.3.5
Python 2.7
Jadx 1.10 / 1.20
from androguard.core.bytecodes.apk import APK
from androguard.core.bytecodes.dvm import DalvikVMFormat
from androguard.core.analysis.analysis import Analysis
from androguard.decompiler.decompiler import DecompilerJADX

def main():
    # We have the source code available, so we can check what's going wrong!
    a = APK("path2apk.apk")

    d = DalvikVMFormat(a)
    dx = Analysis(d)
    # Set the path to jadx...
    decompiler = DecompilerJADX(d, dx, jadx="/home//Downloads/jadx/bin/jadx")

    d.set_decompiler(decompiler)
    # d.set_vmanalysis(dx)

    for m in d.get_methods():
        print(m)
        print(decompiler.get_source_method(m))

if __name__ == '__main__':

    main()

This is only printing the method name, return type is 'str' for 'decompiler.get_source_method(m)' but it is blank.

I have the same question.


How to regen terrain control chunks?

Hello,
it seems that there is no /tc regen command so I wonder how I am able to regenerate terrain in a world that has been created with Terrain Control?
Any suggestions?

You can use WorldEdit's //regen, or you can delete chunks using MCEdit. (Use the 'Delete chunk' command in MCEdit, not the 'fill with air' command.)

//regen does not work because all the ores are deleted within the chunk I regenerated.


Fixes RTL support

Fixes for RTL languages, reported in https://github.com/no-comment/SlideButton/issues/4

tested on iphone 15 on ios 17 and on iphone 13 pro max on ios 16

lgtm! thanks for your contribution.


Include canvas files when determining orphans

Main change
Mainly, this change is to close issue #43:

We've already loaded a list of all vault files, so filter out just the .canvas files
loop over the canvas files, load their contents, parse the JSON and find any links to other files. That set of links is the same one that we're already populating when iterating all the markdown files.
Now, when we check if a file is orphaned, this plugin will no longer consider a file to be orphaned if it exists in or is linked to from exclusively .canvas files.

I smoke tested this briefly on my vault and didn't see any issues.
Other small changes
This change includes a few small performance improvements:

using a Set instead of an array for O(1) membership checks
only checking for the outFile until it's been found once

Some clarity improvements:

Renamed variables/methods to be more self-explanatory

Apologies for the messy diff, I think my IDE applied some whitespace adjustments I didn't realize. If you view the diffs in VS Code it should be easier to read.

Thanks for your contribution! I needed some time and fixed/changed some things, but this is now ready to go. :tada:


feat: Helm chart secrets-store-csi-driver-provider-aws

What does this PR do?

Replaces https://github.com/aws/eks-charts/tree/master/stable/csi-secrets-store-provider-aws in favor of https://github.com/aws/secrets-store-csi-driver-provider-aws/tree/main/charts/secrets-store-csi-driver-provider-aws.
adds a check to the addon's namespace creation to not create kube-system.

Motivation

Resolves #1306

More

[x] Yes, I have tested the PR using my local account setup (Provide any test evidence report under Additional Notes)
[ ] Yes, I have added a new example under examples to support my PR
[ ] Yes, I have created another PR for add-ons under add-ons repo (if applicable)
[ ] Yes, I have updated the docs for this feature
[ ] Yes, I ran pre-commit run -a with this PR

Note: Not all the PRs require a new example and/or doc page. In general:

Use an existing example when possible to demonstrate a new addons usage
A new docs page under docs/add-ons/* is required for new a new addon

For Moderators

[ ] E2E Test successfully complete before merge?

Additional Notes
This is now working in my own eks cluster with the default secrets-store-csi-driver addon (enable_secrets_store_csi_driver = true). I have not thoroughly tested - I only have this working currently w/ no helm_config overrides passed to the addon module. Probably should be tested with namespace = "kube-system" for example.

@balakrishnasoura-okta I tried locally with the updated main.tf on this branch and still get this error. Something in the helm charts must have changed? secretproviderclasses-admin-role is now created in chart secrets-store-csi-driver and the second chart csi-secrets-store-provider-aws is still trying to create it? Sorry im pretty new to most of this so not great w/ debugging it.
module.tf_eks.module.csi_secrets_store_provider_aws.module.helm_addon.helm_release.addon[0]: Creating...
╷
│ Error: rendered manifests contain a resource that already exists. Unable to continue with install: ClusterRole "secretproviderclasses-admin-role" in namespace "" exists and cannot be imported into the current release: invalid ownership metadata; annotation validation error: key "meta.helm.sh/release-name" must equal "csi-secrets-store-provider-aws": current value is "secrets-store-csi-driver"; annotation validation error: key "meta.helm.sh/release-namespace" must equal "kube-system": current value is "secrets-store-csi-driver"
│
│   with module.tf_eks.module.csi_secrets_store_provider_aws.module.helm_addon.helm_release.addon[0],
│   on .terraform/modules/tf_eks.csi_secrets_store_provider_aws.helm_addon/modules/kubernetes-addons/helm-addon/main.tf line 1, in resource "helm_release" "addon":
│    1: resource "helm_release" "addon" {

I will troubleshoot by EOD today and update it in the PR

I have this working in an eks cluster now w/ no overrides passed to the addon module that is installing. I replaced the now-deprecated eks-charts/csi-secrets-store-provider-aws with github.com/aws/secrets-store-csi-driver-provider-aws. Probably needs more testing to be sure of this change, and not sure what else you want to update related to swapping out the chart.

Details

It seems the Title needs to be adjusted to show a version can you @atheiman do this to speed up the process? We are waiting for this to be fixed. Many thanks for the quick action

pre-commit output showing the following

Hello guys, any updates so far? Waiting for this to be merged 🤞

Is there a work-around for this issue. We really need this fixed.

Im not sure if they plan on merging this change or what still needs to be done b/c i think in some cases this could be a breaking change. I actually ended up not using the secretsmanager secret provider. But this workaround worked for me for a few days.
Most of the flags to enable features simply trigger additional sub modules of this tf project to be run. If you have any issue w/ how any of the submodules are configured, just copy them out of this project and run them as your own submodule that depends on your blueprints module call. So for this issue you could copy the secrets mgr secret store provider tf submodule out of my branch and put it in your codebase. Each submodule takes a long list of standard arguments about the cluster, most/all are available as outputs from the eks cluster module.
Unfortunately i dont have this workaround in place anymore so I dont have an example I can copy to show you, but hopefully this gets you down a path to a reasonable workaround.

thank you for the PR - this will be resolved in the new addons module https://github.com/aws-ia/terraform-aws-eks-blueprints-addons


@apply non-class selector

I'm trying to use @apply by target the styles of an h2 tag, and all other heading tags, to either create utility classes such as .h2 or .text-h2 but it appears that @apply only works with classes. Is there a way around this or a potential feature to be able to target this? Even if it's @apply 'h2' or something to signify it's not a class.
I know @adamwathan replied to another post regarding the purpose of @apply.

@apply is only meant for mixing in single-definition utilities, not complex rules, and since we haven't made any decisions about the proper behavior for mixing in complex rules, we explicitly error to avoid people depending on what is currently undefined behavior.

So I'm not sure what that would mean for the complexity of something like this.
It also appears that one can't apply a class that's been defined with another. For example:
.first-class,
.second-class {
  color: blue;
}

.third-class {
  @apply first-class; // fails
}

I realize this is much more complex than targeting a simple utility class. If anyone has any ideas it'd be greatly appreciated.

Ultimately, we're creating a component library within our company to be used by different applications that have different themes and classes. One application may choose to create .h4, another with .text-h4 and another as .adj-h4. But we should be able to assume that they're going apply those styles as defaults to the h4 tag, thus something we can reliably hook into for applying those styles within our components.


[Bug]: Can't create a ticket via the API

Contact Details
No response
What happened?
No matter what I enter into New-HaloTicket or New-HaloTicketType it always error's.
Version
1.0.1
Which operating systems have you tested on?

[X] Windows 10
[ ] Windows 11
[X] Mac OS
[ ] Linux

What PowerShell version are you running?
7.2.0-preview.8
Halo Product
Halo ISTM
Halo Version
2.81.18
What command did you run?
New-HaloTicket & New-HaloTicketType

What was the output of the command?
cmdlet New-HaloTicket at command pipeline position 1
Supply values for the following parameters:
Ticket[0]: 1
Ticket[1]: Test
Ticket[2]: Create
Ticket[3]:
Invoke-HaloPreFlightCheck: /Users/matthew.wolf/Downloads/HaloAPI-main/Public/New/New-HaloTicket.ps1:17:5
Line |
  17 |      Invoke-HaloPreFlightCheck
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~
     | The term 'Invoke-HaloPreFlightCheck' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was
     | included, verify that the path is correct and try again.

New-HaloError: /Users/matthew.wolf/Downloads/HaloAPI-main/Public/New/New-HaloTicket.ps1:23:9
Line |
  23 |          New-HaloError -ErrorRecord $_
     |          ~~~~~~~~~~~~~
     | The term 'New-HaloError' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included,
     | verify that the path is correct and try again.

It doesn't look like the module is installed / imported correctly. It's failing to find private commands which are only loaded when the psm1 file is imported with Import-Module -Name HaloAPI or if you've downloaded from GitHub (only useful if you're developing the module really) Import-Module /Path/To/HaloAPI/HaloAPI.psm1

I went through the process again to make sure I wasn't missing anything.
PS C:\Users\mwolf> Install-Module haloapi
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from
'PSGallery'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): a
PS C:\Users\mwolf> Import-Module HaloAPI
PS C:\Users\mwolf> Connect-HaloAPI -ClientID "#####" -Tenant "@@@@" -URL "https://###.haloitsm.com" -ClientSecret "####" -Scopes "all"
Connected to the Halo API with tenant URL https://###.haloitsm.com:443/
PS C:\Users\mwolf> New-HaloTicket
cmdlet New-HaloTicket at command pipeline position 1
Supply values for the following parameters:
Ticket[0]: Test
Ticket[1]: Temp1234
Ticket[2]:
New-HaloError: C:\Users\mwolf\Documents\PowerShell\Modules\HaloAPI\1.9.0\Public\New\New-HaloTicket.ps1:23
Line |
23 |          New-HaloError -ErrorRecord $_
|          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The Halo API said {"[0]":["Error converting value "Test" to type 'HaloClassLibrary.Models.Faults'.
| Path '[0]', line 2, position 8."],"[1]":["Error converting value "Temp1234" to type
| 'HaloClassLibrary.Models.Faults'. Path '[1]', line 3, position 12."]}. The API returned the following
| HTTP error response: 400 Bad Request
PS C:\Users\mwolf>

You're passing a string as a ticket object.
A ticket needs to look something like this:
New-HaloTicket -Ticket @{ summary = "Ticket Subject"; tickettype_id = 1 }

There are 20/30 more properties you can (and might want to) set - Get-HaloTicket will give you the object structure/property names.

Thanks @homotechsual that helped. I'll look at the example API documentation Halo to see where I need to add... for example the category_1 when we submit tickets.
I tried to perform the Get-Help on the command but it looked like the -Examples were a little lite. I presume a work in progress? but good work to both of you on this. Saved me a ton of time not reinventing the wheel.

Better documentation is coming - I'm reworking the entire documentation site/layout at the moment and then expanding content.


Support for multiple tabs does NOT respect the 'persistSession' option across tabs

Bug report
Describe the bug
Supabase's GoTrue JavaScript client has explicit support for multiple tabs which is enabled by default.
Supabase's GoTrue JavaScript client also has support for the commonly-used 'Remember Me' feature via the persistSession parameter of the SupabaseAuthClient constructor.
The issue is that if a user has 2 tabs open - one where the auth client has the persistSession set to false and one where the parameter is set to true - the different tabs will continue to behave differently in terms of persisting the session EVEN though logging from one tab will automatically log-in the other tab.
To me, it seems that it's more logical that once a user logs-in via tab A, all other tabs that get automatically logged-in will inherit the persistSession behavior of the tab A.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Open 2 tabs with a Supabase-auth enabled application - one where persistSession is set to true (let's call this tab A) and one where persistSession is set to false (let's call this tab B)
Sign-in from tab A - notice that tab B detects the sign-in from tab A and now the content in tab B shows info relevant to the user that signed-in via tab A
Close tab A
Continue to work with tab B until the JWT is refreshed at least once
Close tab B and re-open the application in tab C

Expected behavior
The client is still signed-in because when they signed-in originally via tab A, they chose to be remembered (i.e. the persistSession parameter was true);
Actual behavior
The client is no longer signed-in and needs to sign-in again.
Consequences
This behavior can lead to failed token refresh requests because of the re-use of an invalidated refresh token.
This can happen when tab A (as defined above) is closed and its token remains in localStorage while tab B continues to send token refresh requests without updating the token in localStorage. Hence, localStorage will be left with a stale refresh token which will be incorrectly re-used in at least one of 2 cases:

If the user opens a new tab C with the app and the app initializes a new SupabaseAuthClient object, this new object will try to use the refresh token in local storage to recover the session with the stale refresh token (see https://github.com/supabase/gotrue-js/blob/30fb5729a1988dbd7f61d58ec10eb81de63f93c7/src/GoTrueClient.ts#L107)
If the user minimizes tab B and then puts it back into focus at just the right time, it will also try to refresh and recover using the token from local storage (this behavior was added with https://github.com/supabase/gotrue-js/pull/278/, see https://github.com/supabase/gotrue-js/blob/30fb5729a1988dbd7f61d58ec10eb81de63f93c7/src/GoTrueClient.ts#L799)

The problem is made worse for users of the library because the library does NOT expose the persistSession config - this means that users of the library can only work around this by inspecting the data in localStorage for which there is also no publicly defined API as far as I can tell.
System information

Version of supabase-js: 1.35.3
Version of gotrue-js: 1.22.15

Hey @chipilov, could you please clarify how your application managed to get into a state where the persistSession value on both tabs are different?
Thanks for taking the time to do such a detailed write-up of the issue btw!

Hi @kangmingtay,
In my app, I set the persistSession parameter to false by default (I do this because I prefer the user's explicit approval before I start storing any tokens in the browser). With this setup it's very easy to end up with multiple tabs that have a different value for persistSession, for example:

User opens tab A, loads the app, clicks on the 'Remember Me' checkbox and signs-in. From this point on, tab A has persistSession set to true;
Later, the user opens another tab B and loads the app again (maybe they forgot they already have the app in tab A OR they want another tab so they can look at different things at the same time). As soon as the app is loaded, the user is signed-in (since the constructor of the auth client calls _recoverAndRefresh()), however, the persistSession is actually set to false because that is the default for my app;

NOTE, that you can also get in the same situation even if the default for persistSession is true. Here is an example:

User opens tab A, loads the app and explicitly un-checks the 'Remember Me' checkbox. From this point on, tab A has persistSession set to false;
Later, the user opens another tab B and loads the app again. This time, they are NOT signed-in automatically because there is no token in localStorage to recover from, so they sign-in again but this time they leave the 'Remember Me' checkbox checked, so persistSession is true for tab B. Now they are logged-in in both tabs A and B and the tabs have different values for persistSession.

Let me know if anything is unclear.

This is behavior that is not something the library can provide. You should synchronize the "remember me" state across tabs manually. persistSession is really a low-level flag that you can use to build complex scenarios like this.
We may consider having some explicit form of "remember me" implemented in the next major version, but that is far away.


Reformat with black, cleanup based on flake8

Ran:
black -l 127
and
poetry run flake8 --count --exit-zero --extend-ignore=E203 --max-line-length=127 --statistics --per-file-ignores="tdwii_plus_examples/rtbdi_creator/ui_form.py:E266,F401,E501 tdwii_plus_examples/TDWII_PPVS_subscriber/ui_tdwii_ppvs_subscriber.py:E266,F401,E501" tdwii_plus_examples
The ui*.py files are generated by Qt Creator and are not intended to have manual edits (they will be overwritten when changes are made in Qt Creator) so there isn't much to be done about the generated code.

oh... and updated to use configuration files for AE IP address and ports rather than being hardcoded...