Using Eventbrite to search events

I'm making a final project where we want to have a user select preferences for events to attend and then search Eventbrite for those events. The problem is, I can't seem to run my program.
from eventbrite import Eventbrite

eventbrite = Eventbrite('JYHSYPNUFM546GH2YJSO')

user = eventbrite.get_user()
print user['id']

Whenever I run it in GitShell (I use that because I have Windows) the error shows up: 'cannot import name Eventbrite'.
All I need to do is figure out how to search Eventbrite but my code for this isn't even running. Can someone help me with the search code and exactly what's wrong with the code above?

ping @vartec
@caitlinstanton, can you describe how you installed the Eventbrite library?

I used pip install eventbrite

On Jan 11, 2016, at 3:19 PM, Daniel Roy Greenfeld<EMAIL_ADDRESS>wrote:
ping @vartec
@caitlinstanton, can you describe how you installed the Eventbrite library?
—
Reply to this email directly or view it on GitHub.

@caitlinstanton is $PYTHONPATH set up in your git-bash?


[GEMM] Performance degradation out of box

GEMM out of box performance has degraded from https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/11769279538 to https://github.com/intel/intel-xpu-backend-for-triton/actions/runs/11787592466. For example, for 4k GEMM, it degraded by 5%. From looking at the commits between the two runs, likely it is caused by ca95a70b226a5b92c4e84a9987d920de4cc23a69, which is intended to improve GEMM of shape 4096x8x128x16384.

For 4k case: revert ca95a70 does not work : run
ca95a70 should not impact non batched gemm cases because change only happened in matmul_kernel_with_block_pointers_batched.
I think this maybe comes from variance, found this case come back in this run (include ca95a70, PR triggered):

Close as this issue comes from variance, lower priority and tracked in #2873


Add camera distortion

Tried to update model.sdf to:
<sensor name="left_camera" type="camera">         <pose>0 0 -0.08750000000000001 0 1.5707963267948966 0</pose>         <camera>           <horizontal_fov>1.4</horizontal_fov>           <image>             <width>1600</width>             <height>1200</height>           </image>           <clip>             <near>0.2</near>             <far>4</far>           </clip>         </camera>         <always_on>1</always_on>         <update_rate>30</update_rate>         <visualize>true</visualize>         <topic>stereo_left</topic>         <distortion>           <k1>-0.0575</k1>           <k2>0.1311</k2>           <k3>-0.0705</k3>           <p1>-0.0015</p1>           <p2>0.0010</p2>           0.5 0.5         </distortion>         <lens>           <type>pinhole</type>           <intrinsics>             <fx>809.0540</fx>             <fy>808.9344</fy>             <cx>775.6627</cx>             <cy>595.0128</cy>           </intrinsics>         </lens>       </sensor>
Got the following warning:
[gz-2] Warning [Utils.cc:132] [/sdf/model[@name="orca4"]/link[@name="left_camera_link"]/sensor[@name="left_camera"]/distortion:/home/orca4/colcon_ws/src/orca4/orca_description/models/orca4/model.sdf:L449]: XML Element[distortion], child of element[sensor], not defined in SDF. Copying[distortion] as children of [sensor]. [gz-2] Warning [Utils.cc:132] [/sdf/model[@name="orca4"]/link[@name="left_camera_link"]/sensor[@name="left_camera"]/lens:/home/orca4/colcon_ws/src/orca4/orca_description/models/orca4/model.sdf:L457]: XML Element[lens], child of element[sensor], not defined in SDF. Copying[lens] as children of [sensor]. [gz-2] Warning [Utils.cc:132] [/sdf/model[@name="orca4"]/link[@name="right_camera_link"]/sensor[@name="right_camera"]/distortion:/home/orca4/colcon_ws/src/orca4/orca_description/models/orca4/model.sdf:L516]: XML Element[distortion], child of element[sensor], not defined in SDF. Copying[distortion] as children of [sensor]. [gz-2] Warning [Utils.cc:132] [/sdf/model[@name="orca4"]/link[@name="right_camera_link"]/sensor[@name="right_camera"]/lens:/home/orca4/colcon_ws/src/orca4/orca_description/models/orca4/model.sdf:L524]: XML Element[lens], child of element[sensor], not defined in SDF. Copying[lens] as children of [sensor].

Tried to run with sudo but got:
0.269 Reading package lists... 0.700 Building dependency tree... 0.776 Reading state information... 0.814 Some packages could not be installed. This may mean that you have 0.814 requested an impossible situation or if you are using the unstable 0.814 distribution that some required packages have not yet been created 0.814 or been moved out of Incoming. 0.814 The following information may help to resolve the situation: 0.814  0.814 The following packages have unmet dependencies: 0.854  gz-tools2 : Conflicts: gazebo (>= 11.0.0) but 11.10.2+dfsg-1 is to be installed 0.854              Conflicts: gazebo (<= 11.14.0) but 11.10.2+dfsg-1 is to be installed 0.856 E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Can't use Gazebo classic plugins in Gazebo Garden like it's said here so, we are closing the issue for now, until we find a plugin that works on new gazebo simulation


Fall back to Twine's keyring support in publish command

From #741, Rye is unable to publish packages with Twine if users rely on keyring.
I'm not sure if the plan is to implement more of the publish logic ourselves. In case it's not or we're still far off from that, this PR offers a quick fix for #741. With it Rye will make certain Twine dispatch optional in an attempt to support more environments by using Twine defaults.
Changes:

Optional dispatch of --username, --token, and --repository-url.
--skip-save-credentials - An attempt to reduce potential confusing behavior and provide users with an opt-out method.
--yes dispatches --non-interactive to Twine. This is now always used.
-r or --repository is required when using --repository-url - An attempt to reduce potential confusing behavior and make managing Rye/Twine configuration resolution better.
Refactored some of the code

I want to test this more first, so I'll mark it as ready at that point.
Edit: Removed the --repository requirement for --repository-url and still deciding on tests but marking as ready in the meantime (see below).
Testing:

Snapshot tests of different publish command usage (may not include successful Twine upload)

For posterity, Konsti suggested to use maturin for inspiration if anyone is interested in taking that up.

FYI:
This solution works for me when I try to publish to a private repo:
~/Code/rye/target/debug/rye publish --repository rye-development-repo --repository-url https://europe-west4-python.pkg.dev/personal-projects-393014/rye-development-repo/ --username _json_key_base64 --token <KEY> dist/* -y

So instead of letting twine read the .pypirc everything is supplied from the commandline, but I guess that is totally fine. It will at least let me use rye in my github actions instead of having a regular python flow and using twine directly.
I wish I would be able to help out more, but I have learn more Rust. Might be something I can do on the side, if no one else takes this on.
Thanks a lot @cnpryer for you help!

Thanks for checking it out!
If there's interest in this I'd like to:

PR --non-interactive - User only directly interacts with Rye.
Use something like resolve_credentials(cmd) to clean that up
Require groups of options: Rye either resolves the credentials on its own or the user bypasses Rye for Twine defaults.

Ideally you can do this when it's done and it'll hand off the repository url + username inputs to Twine.
rye publish --repository-url <url> --username <usr> --skip-credentials-save -y

And if you decide to save the username and repo url in Rye's credentials file, then if no token is resolved next time it'd just hand off those same inputs again.
If I can I'll add tests for the credentials resolution. Something like first CLI, then ENV, then Rye or Twine.

To be honest I think the best way to leave this would be to specifically only dish out for Twine's keyring support and then do something more robust.
I'm not really in love with this, but if there's a way to quickly fix this issue for you I'm happy to add to this.

For posterity, Konsti suggested to use maturin for inspiration if anyone is interested in taking that up.

Maybe also worth considering ditching twine for maturin?

Maybe also worth considering ditching twine for maturin?

If that's where you want to go with it. I do like the token experience we're going for, but if there's a way to easily incorporate another common and secure method maybe we can start with this?
I was thinking at the least:

Attempt to resolve configuration from ~/.rye/credentials
Override with CLI
If token is resolved but a repository url and a username are resolved then only dispatch that to Twine.

That way to start at least we're supporting the current token process, CLI-override, and keyring via Twine.
I'll clean up what's going on in this PR, mark this ready for a review, and then we can figure out what makes sense.

I think this is a good start. Is there any chance you could add basic tests for this? Maybe by mocking up a dummy endpoint.

I think this is a good start. Is there any chance you could add basic tests for this? Maybe by mocking up a dummy endpoint.

Yea I looked at Twine's tests out of the same interest. I also looked around uv's. I'll try to look at that more today if I can.
For now I'll mark this as ready in case you wanted to play around with it. Also happy to set up a simple test for resolve_repository_credentials. Let me know what you'd prefer to prioritize.

Would be great to add a basic test in. This is the type of code that is easy to break.

Would be great to add a basic test in. This is the type of code that is easy to break.

I tried to crank that out real quick. I didn't finish. I'll come back to it again later. Converting to draft until then.

That's probably where I'll pause for today. Feel free to make edits. Thanks for the comments!

Also, I meant to ask, would you want to just offer --config-file dispatch to provide .pypirc support as well? If --config-file is passed it'd just swap in that file for when it reads the file.
I can do that in a follow up PR.

Alternatively, I could just add a fixtures directory to the integration tests.

 I think to get something out I'll switch gears and just test resolve_repository_config directly. I don't want to block the fix just to set up integration tests for a Twine dispatch.

I'll mark this as ready for review, but we could probably add a few more tests. I can come back to this later this week or over the weekend and do another review along with add more tests.

❯ rye publish
Username: cnpryer
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:

❯ rye publish
Username: cnpryer
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:

cargo run publish
   Compiling rye v0.28.0 (/Users/chrispryer/github/rye/rye)
    Finished dev [unoptimized + debuginfo] target(s) in 1.36s
     Running `target/debug/rye publish`
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:

I plan to use a combo of snapshots and manual testing to wrap this up. Before marking this as ready I'll try to split some of this up into separate commits to make review easier. A few tests included so far need to be addressed.
rejected:
  rye/tests/test_publish.rs:12 (publish)
  rye/tests/test_publish.rs:28 (publish_yes)
  rye/tests/test_publish.rs:134 (publish_from_credentials_found_repo_with_username_yes)

For example test_publish will fail with '' repository name.
program: rye
args:
  - publish
  - "--skip-save-credentials"
env:
  RYE_HOME: /Users/chrispryer/github/rye/target/debug/rye-test-dir/home
  __RYE_UV_EXCLUDE_NEWER: "2023-11-18T12:00:00Z"
  UV_CACHE_DIR: /var/folders/x5/94x0_4tj6hz4682vh8l4fv1m0000gn/T/.rye-tests---T2AHyq/uv-cache
──────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬─────────────────────────────────────────────────────────────
    0     0 │ success: false␊
    1     1 │ exit_code: 1␊
    2     2 │ ----- stdout -----␊
          3 │+No access token found, generate one at: https://pypi.org/manage/account/token/␊
    3     4 │ ␊
    4     5 │ ----- stderr -----␊
    5       │-error: no configuration was found for repository 'none'
          6 │+Access token: Repository URL: error: failed to resolve configuration for repository ''␊
────────────┴─────────────────────────────────────────────────────────────

Hey @golgor I think I'm getting closer to wrapping up this PR. Are you interested in testing this branch?

@cnpryer Of course, I will look into it today

It is quite complicated already. That was the reason why I raised the idea in Discord of trying to isolate the use-cases in the beginning of the function instead of trying to figure it out on per argument basis as it is now. As I see it, we have three different use-cases:

rye publish -> publish to pypi. Implement logic for storing credentials here ("Pretty much the entire function now")
rye publish --repository -> publish to custom repo, rely on .pypirc. (Pretty much directly pass arguments to twine)
rye publish --repository <NAME> --repository-url <URL> --username <USERNAME> -- token <PASSWORD/TOKEN> -> Publish to any repo, provide all necessary information on the command line. I.e. can be custom repo or Pypi.

We could probably have some kind of match-case in the beginning, comparing the arguments and then call functions that prepare the publish_cmd and returns that.

Wow thanks for trying it out so quickly! Please don't feel obligated to do that haha. I really appreciate it though.
To recap, the goal of this specific PR is to:

Support username and repository url via Twine's keyring support
Add tests for the publish command

It still doesn't work as originally expected, i.e. if I only provide a repository name it will pass only the repository name to twine. It still does work if I use the following arguments:
rye publish --repository rye-development-repo --repository-url  --username  --token  --skip-save-credentials -y.

Does this work for you with your setup if you were to use this command?
rye publish -r rye-development-repo --repositiry-url url --username usr

Thanks for sharing your process. That's super helpful.

Change 1
In the method resolve_with_defaults for Credentials struct I had to remove the .or(Some(DEFAULT_USERNAME.to_string())),. The reason is that I do not want to provide a username, as that should be fetched from the .pypirc and this methods sets the username to token.

Ideally if --username is used upfront for now this should work. Let me know if it doesn't. I'd love to add ~/.pypirc import or some support (#792) in a follow up PR if there's interest.

It is quite complicated already. That was the reason why I raised the idea in Discord of trying to isolate the use-cases in the beginning of the function instead of trying to figure it out on per argument basis as it is now. As I see it, we have three different use-cases:

I agree. But I think in your case we would probably want to either fully support using ~/.pypirc as configuration or import from it. Currently we default to "__token__" for missing usernames. That'd minimize your interface the most, wouldn't it?

No worries, doing some testing like this is a great opportunity for me to learn more Rust, which is something I like to do!
During all these tests I used the --skip-save-credentials and I checked the ~/.rye/credentials between each command and it was empty.
~/Code/rye/target/debug/rye publish -r rye-development-repo --repository-url https://europe-west4-python.pkg.dev/personal-projects-393014/rye-development-repo/ --username _json_key_base64 -y --skip-save-credentials
Uploading distributions to https://europe-west4-python.pkg.dev/personal-projects-393014/rye-development-repo/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

This seems to be an error generated by twine. If I remove the -y I will get prompted for a token, and if I paste my password there, it uploads correctly. The credentials file is still empty after this.
If I try it with only supplying the repo name and the username (notice the missing -y):
~/Code/rye/target/debug/rye publish -r rye-development-repo --username _json_key_base64 --skip-save-credentials

I get prompted by the twine to supply both password and URL. If I add the -y, this happens:
~/Code/rye/target/debug/rye publish -r rye-development-repo --username _json_key_base64 --skip-save-credentials -y
error: failed to resolve configuration for repository 'rye-development-repo'

This seems to be an error from rye, more specifically from the config_is_ready-function.
Yeah, there are a number of ways to make this work and as long as you depend on twine I would say it makes sense to use it as much as possible. I.e. not parsing the .pypirc yourself, but rely on twine to do it. As it looks like now, if twine is supplied with only a repo name, it seems to look in the .pypirc. If it is supplied with anything extra, it seems to fall back to some other mode and not touch the .pypirc, which is confusing for sure...
I'm more than happy to help out with #792 as well as I already got a setup of everything to help you out.

I get prompted by the twine to supply both password and URL. If I add the -y, this happens:
~/Code/rye/target/debug/rye publish -r rye-development-repo --username _json_key_base64 --skip-save-credentials -y
error: failed to resolve configuration for repository 'rye-development-repo'

So I believe this would fail because you're supplying a repository name and a username but not repository url.

This seems to be an error from rye, more specifically from the config_is_ready-function.

I'm curious if you have some suggestions. Here's what I wanted from that function:

Config has everything I need
Config has what I need for keyring (username, url)

So in this case it has username but it doesn't have a url.
I also would keep in mind that the way we currently dish out like this to Twine may change. It may be that we want to use another tool or do it ourselves. So I would be hesitant to spend a significant amount of effort on this just yet.
On the other hand, loading configuration data from ~/.pypirc or CLI seems like a reasonable next step since it'd be helpful regardless of the tool or implementation.
If you're interested in that after this PR I can help you with it, but we'd want to start by syncing up in #792. It's still just a feature request at the moment.

Change 2
I added an additional option for the function config_is_keyring_ready to return true also in the case of only supplying a repository-name:
fn config_is_keyring_ready(config: &PublishConfig) -> bool {
    config.credentials.username.is_some() && config.repository.url.is_some()
        || config.repository.name.is_some()
}

Unfortunately, there are two problems with this that I see.
One is that we are intentionally avoiding having Twine operate with just a repository name. Having two tools do the resolution like that feels like it could become hard to maintain.
So the idea is that either Rye has configuration, Rye can establish sufficient configuration, or attempt the keyring fallback.
The other issue is that I don't believe this is compatible with the resolution I mentioned above.
config.credentials.username.is_some() && config.repository.url.is_some()
   || config.repository.name.is_some()

If url is missing and username is some, but the repository name is some, we don't have a url to dispatch. We wouldn't be able to fallback to keyring setup either.

@cnpryer I'm not too familiar with the publish flow. Do you think this is in a state where it makes sense merging?

I'll aim to get back in here this weekend.

So right now the flow this PR will implement will look like this from a fresh environment:
By default Rye doesn't initialize with a credentials file (this is fine).
❯ cat ~/.rye/credentials
cat: /Users/chrispryer/.rye/credentials: No such file or directory

Since we've prioritize auth token usage, your basic usage will invoke a prompt for the token if one isn't provided or found.
❯ rye publish -r 'testpypi' --repository-url https://test.pypi.org/legacy/
Access token:

You can pass -y to skip this and it will attempt the keyring fallback.
Returning to this after a while, my initial reaction to this was that I'd expect for us to use the keyring backend if an entry is already set up. So it's up to you, but in order to do that we'd want to modify this PR to prioritize the keyring backend.
That way the basic usage will avoid prompting the user if they have already set up keyring for the provided repository url.
As for the state of this change and making sure it's definitely ready to be merged I'm going to treat this like it's a PR I want to merge into my own repo. To do that I'll do a full review this weekend and manually verify different use cases.
I added some testing here, but it's not the best.

I've organized the changes into commits for an easier read and provided some details about each change. The refactor makes the diff difficult to reason about since large portions of the cli/publish.rs file is modified in order to make this easier to implement (and maintain).
I'll do a full review either tomorrow or Sunday.

@mitsuhiko At this stage the PR should be ready. I'll keep an eye out for any reported issues.
One comment though is what I mentioned here.

Returning to this after a while, my initial reaction to this was that I'd expect for us to use the keyring backend if an entry is already set up. So it's up to you, but in order to do that we'd want to modify this PR to prioritize the keyring backend.

If we are still looking to prioritize Rye's token management then I'd say let's just see if users provide feedback to prioritize keyring. I'll add some documentation on this. You can allow Rye to perform the fallback if you pass -y.
Expand the details below if you'd like to see all the manual testing I just did. Last example uses the encrypted token. Encrypt/decrypt prompts aren't persisted in the output. The "keychain" error is from exiting my keyring prompt.

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:
Repository URL:
Uploading distributions to https://upload.pypi.org/legacy/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -y
Uploading distributions to https://upload.pypi.org/legacy/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -y -r pypi
Uploading distributions to https://upload.pypi.org/legacy/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -y -r testpypi
error: failed to resolve configuration for repository 'testpypi'

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -r pypi
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:
Uploading distributions to https://upload.pypi.org/legacy/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -r testpypi
Access token:
Repository URL:
error: failed to resolve configuration for repository 'testpypi'

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -r pypi --repository-url https://upload.pypi.org/legacy/
No access token found, generate one at: https://pypi.org/manage/account/token/
Access token:
Uploading distributions to https://upload.pypi.org/legacy/
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish --skip-save-credentials -r testpypi --repository-url https://test.pypi.org/legacy/
Access token:
Uploading distributions to https://test.pypi.org/legacy/
WARNING  Error getting password from keyring
         Traceback (most recent call last):
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 61, in get_password
             return api.find_generic_password(self.keychain, service, username)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/api.py", line 156, in find_generic_password
             Error.raise_for_status(status)
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/api.py", line 119, in raise_for_status
             raise KeychainDenied(status, "Keychain Access Denied")
         keyring.backends.macOS.api.KeychainDenied: (-128, 'Keychain Access Denied')

         The above exception was the direct cause of the following exception:

         Traceback (most recent call last):
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/twine/auth.py", line 74, in get_password_from_keyring
             return cast(str, keyring.get_password(system, username))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/core.py", line 56, in get_password
             return get_keyring().get_password(service_name, username)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 21, in wrapper
             return func(self, *args, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 65, in get_password
             raise KeyringLocked(f"Can't get password from keychain: {e}") from e
         keyring.errors.KeyringLocked: Can't get password from keychain: (-128, 'Keychain Access Denied')
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 14s
❯ rye publish --skip-save-credentials -r testpypi --repository-url https://test.pypi.org/legacy/ -y
Uploading distributions to https://test.pypi.org/legacy/
WARNING  Error getting password from keyring
         Traceback (most recent call last):
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 61, in get_password
             return api.find_generic_password(self.keychain, service, username)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/api.py", line 156, in find_generic_password
             Error.raise_for_status(status)
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/api.py", line 119, in raise_for_status
             raise KeychainDenied(status, "Keychain Access Denied")
         keyring.backends.macOS.api.KeychainDenied: (-128, 'Keychain Access Denied')

         The above exception was the direct cause of the following exception:

         Traceback (most recent call last):
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/twine/auth.py", line 74, in get_password_from_keyring
             return cast(str, keyring.get_password(system, username))
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/core.py", line 56, in get_password
             return get_keyring().get_password(service_name, username)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 21, in wrapper
             return func(self, *args, **kwargs)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
           File "/Users/chrispryer/.rye/self/lib/python3.12/site-packages/keyring/backends/macOS/__init__.py", line 65, in get_password
             raise KeyringLocked(f"Can't get password from keychain: {e}") from e
         keyring.errors.KeyringLocked: Can't get password from keychain: (-128, 'Keychain Access Denied')
ERROR    NonInteractive: Credential not found for password.
error: failed to publish files

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 2s
❯ rye publish --skip-save-credentials -r testpypi --repository-url https://test.pypi.org/legacy/ --token <token>
Uploading distributions to https://test.pypi.org/legacy/
Uploading testpypi_package-0.3.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.4.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.3.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?
Uploading testpypi_package-0.4.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?

View at:
https://test.pypi.org/project/testpypi-package/0.3.0/
https://test.pypi.org/project/testpypi-package/0.4.0/

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ touch ~/.rye/credentials

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ vim ~/.rye/credentials

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 1m11s
❯ cat ~/.rye/credentials
[testpypi]
token = <token>
repository-url = "https://test.pypi.org/legacy/"

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 9s
❯ rye publish -r testpypi
Uploading distributions to https://test.pypi.org/legacy/
Uploading testpypi_package-0.3.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.4.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.3.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?
Uploading testpypi_package-0.4.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?

View at:
https://test.pypi.org/project/testpypi-package/0.4.0/
https://test.pypi.org/project/testpypi-package/0.3.0/

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rm ~/.rye/credentials

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍
❯ rye publish -r testpypi
Access token: <token>
Repository URL: https://test.pypi.org/legacy/
Uploading distributions to https://test.pypi.org/legacy/
Uploading testpypi_package-0.3.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.4.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.3.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?
Uploading testpypi_package-0.4.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?

View at:
https://test.pypi.org/project/testpypi-package/0.3.0/
https://test.pypi.org/project/testpypi-package/0.4.0/

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 20s
❯ cat ~/.rye/credentials
[testpypi]
token = "6167652d656e6372797074696f6e2e6f72672f76310a2d3e207363727970742035536667707a4e6a376e332b386954314248734847412031340a65555330347952705a4a7a33704c5263354c4f7241376c586b6d4e6d7972436644516e673943726e78326f0a2d2d2d206f53796b526f786878474867584d4438776a6164343962646f65786c4e41647275366b397a6d7545666e770ae1cd5b9ba93084c57995eecec9b7f1a734ad58118c50a03beeb1862d1a52ec56f2e4eeeac4881b5df3829d78ee4dd93630cea2347b98065d45233851907910e7d9aab8c4650c973bf781fed0acea133c7ed674237b50959775ac9005ed59bc22a96c016edaa85d88b35b8d52e71b6c929b17336eb671568f468f4281f8d179d30dd8780a1450f205ba8cf57cac9aa71b5b3f3be7da96a6879ef5b543f9e792d5923ba21f718f09bd75ed2d6b895c9e21fc854fabda863118f14a8fb24643729214ab24e9a5d7e2e2c4c4085fd23f12612646370ab206de521db8c0815b7bb73d3d01a3bee5321731656573aede351fafb862c014c83ac04575c9419d070bc33c"
username = "__token__"
repository-url = "https://test.pypi.org/legacy/"

testpypi-package on  main [?] is 📦 v0.3.0 via 🐍 took 2s
❯ rye publish -r testpypi
Uploading distributions to https://test.pypi.org/legacy/
Uploading testpypi_package-0.3.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.4.0-py3-none-any.whl
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 kB • 00:00 • ?
Uploading testpypi_package-0.3.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?
Uploading testpypi_package-0.4.0.tar.gz
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 kB • 00:00 • ?

View at:
https://test.pypi.org/project/testpypi-package/0.4.0/
https://test.pypi.org/project/testpypi-package/0.3.0/

I really want to ensure is that we are reliably providing encryption if the user opts into it. I did some extra testing around this, but I'll do some more over the next couple of days.

Any chance that Twine's --config-file option could be dispatched as well?
In my current use-case, this would support the TwineAuthenticate@1 task from Azure Pipelines

Any chance that Twine's --config-file option could be dispatched as well? In my current use-case, this would support the TwineAuthenticate@1 task from Azure Pipelines

Feel free to mention that here

#792

@charliermarsh can I do anything to help make this easier to review and consider? I have time this weekend to work on this.
The majority of this change is a refactor of the publish command's code. Would you prefer I undo the keyring support to start with just the refactor?
I understand some logic might be upstreamed to uv, but I'd prefer if contributors PR any future changes on top of this code rather than its code on main. It should be more extendable.

Hey @cnpryer, would you still be interested in merging this? Would be useful for me too!

Hey @cnpryer, would you still be interested in merging this? Would be useful for me too!

Hi! I'd be happy to help out if there's interest.

Hey @cnpryer, would you still be interested in merging this? Would be useful for me too!

Hi! I'd be happy to help out if there's interest.

Great! I'd really like to have rye support keyrings, so put together this less ambitious PR:
https://github.com/astral-sh/rye/pull/1203
But I think it's worth reopening this and pinging @mitsuhiko and @charliermarsh to see how they want to proceed


Q: embed html 3D figure

Hi,
embedding a 3D figure in html works nicely. However, when I want to move the html file somewhere else (different folder, or different computer), the viz stops working.
I did use offline=True. Is there anything else needed?
Thanks!

If you use offline=True, you should also move the 'js' folder. If you don't use offline, it is only the html, but you need an internet connection.

Thanks. Do you still need to have jupyter running ?

No, most things should work
(from mobile phone)
On 21 Feb 2018 15:49, "Jean-Rémi KING"<EMAIL_ADDRESS>wrote:

Thanks. Do you still need to have jupyter running ?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/maartenbreddels/ipyvolume/issues/98#issuecomment-367349760,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABryPf9HE18aFsRXy_65G-RJ74lF-9crks5tXCzdgaJpZM4RfAm_
.


[discuss] upgrade protocol version

Signed-off-by: slievrly<EMAIL_ADDRESS>

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #4569 (98bdf3c) into develop (a05e5d9) will increase coverage by 0.03%.
The diff coverage is 66.12%.

@@              Coverage Diff              @@
##             develop    #4569      +/-   ##
=============================================
+ Coverage      49.45%   49.48%   +0.03%
- Complexity      4071     4074       +3
=============================================
  Files            732      732
  Lines          25521    25556      +35
  Branches        3153     3157       +4
=============================================
+ Hits           12621    12647      +26
- Misses         11554    11560       +6
- Partials        1346     1349       +3

Impacted Files
Coverage Δ

...java/io/seata/core/protocol/ProtocolConstants.java
0.00% <ø> (ø)

...io/seata/core/rpc/netty/AbstractNettyRemoting.java
14.19% <0.00%> (-0.10%)
:arrow_down:

.../io/seata/core/rpc/netty/v1/ProtocolV1Decoder.java
0.00% <0.00%> (ø)

.../io/seata/core/rpc/netty/v1/ProtocolV1Encoder.java
0.00% <0.00%> (ø)

...rpc/processor/server/ServerOnRequestProcessor.java
0.00% <0.00%> (ø)

...in/java/io/seata/serializer/fst/FstSerializer.java
100.00% <ø> (ø)

...io/seata/serializer/hessian/HessianSerializer.java
82.60% <ø> (ø)

.../java/io/seata/serializer/kryo/KryoSerializer.java
63.63% <ø> (ø)

.../seata/serializer/protobuf/ProtobufSerializer.java
0.00% <ø> (ø)

...erializer/seata/protocol/AbstractMessageCodec.java
23.07% <ø> (ø)

... and 15 more

 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.

 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.

Due to code conflicts and age, if you are still interested in participating in the community, please resubmit this pr to the 2.x branch after resolving the conflict.
由于代码冲突以及年代久远，如果你还有兴趣参与到社区，请解决完冲突后重新请提交这份pr至2.x分支中


Introduce Flash message support

Flash message are good for UX, they are shown to give updates and confirmation to the user.

https://themeteorchef.com/snippets/client-side-alerts-with-bert/

Closed with #46


Update Settings: Update VPN settings item

Task/Issue URL: https://app.asana.com/0/0/1208966262488271/f
Description
Updates the VPN settings item to match new designs. As the new designs require us to know more about the subscription state we need to expose more Subscription Statuses so we can reflect that in the settings screen like the "Waiting" state that is equivalent to our new "Activating" state.
The biggest thing to note is that now it's not like it used to be where we had just 2 states, locked and unlocked, we now more readily show the user the VPN item and what it's subscription state is.
I'm still waiting on answers regarding the onboarded state
And connecting state  but I can always circle back later and address these as necessary.
Designs
Steps to test this PR
Prerequisite: Enable newSettings feature toggle
Prerequisite: Apply the patch in the Asana task
Note: Only the VPN item and possibly the Settings item will be seen, depending on the different states. PIR, ITR are not included as part of this PR and so are not visible.
VPN Subscribed and Off

[x] Open New Settings
[x] Verify VPN item is visible with colored icon and status is off
[x] Click VPN item
[x] VPN settings screen should open

VPN Subscribed and On

[x] In NetworkProtectionStateImpl change ln 98 to return flowOf(CONNECTED)
[x] Open New Settings
[x] Verify VPN item is visible with colored icon and status is on
[x] Click VPN item
[x] VPN settings screen should open

Unsubscribed

[x] In SubscriptionManager change ln 442 to return SubscriptionStatus.UNKNOWN
[x] Open New Settings
[x] Verify VPN item is not visible

VPN Expired

[x] In SubscriptionManager change ln 442 to return SubscriptionStatus.EXPIRED
[x] Open New Settings
[x] Verify VPN item is visible with grey icon and is  not clickable, and status is off
[x] Click VPN item
[x] Nothing should happen

PPro Activating

[x] In SubscriptionManager change ln 442 to return SubscriptionStatus.WAITING
[x] Open New Settings
[x] Verify VPN item is visible with grey icon and status is off
[x] Click VPN item
[x] Nothing should happen

No Entitlement

[x] In SubscriptionManager change ln 442 to return SubscriptionStatus.AUTO_RENEWABLE
[x] In RealSubscriptions change ln 77 to return flowOf(listOf())
[x] Open New Settings
[x] Verify VPN item is not visible

Legacy Support

[x] Turn off newSettings
[x] Verify old VPN settings works by repeating steps above

UI changes

Before
After

#5394  👈 (View in Graphite)
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Works as expected, check with @aitorvs and @karlenDimla for changes related to NetP API.

Please hold off reviewing until I've made some changes, I think we can move the new NetworkProtectionAccessState API to the impl module as no other module is using it.

Works as expected, check with @aitorvs and @karlenDimla for changes related to NetP API.

Please hold off checking until I've made some changes, I think we can move the new NetworkProtectionAccessState API to the impl module as no other module is using it.

I will review the changes.
We should not need to change the VPN public API to revamp settings.
And I've seen some odd changes, for instance we're moving subscription state to the netp public API, that should not be.


https://lib.haxe.org/

installing libs
haxelib install build.hxml
Loading info about the required libraries
Error: Invalid response : 'Error : mysql.c(509) : Failed to connect to mysql server : Host '<IP_ADDRESS>' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
Called from /usr/share/haxe/std/neko/_std/sys/db/Mysql.hx line 203
Called from haxelib/server/SiteDb.hx line 127
Called from haxelib/server/Repo.hx line 357
Called from ? line 1
Called from D:\Projects\haxe/std/neko/vm/Module.hx line 52
Called from Tora.hx line 333
Called from D:\Projects\haxe/std/neko/vm/Loader.hx line 154
Called from D:\Projects\haxe/std/neko/vm/Loader.hx line 132
Called from Tora.hx line 479'

visit website
Error : mysql.c(509) : Failed to connect to mysql server : Host '<IP_ADDRESS>' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
Called from /usr/share/haxe/std/neko/_std/sys/db/Mysql.hx line 203
Called from haxelib/server/SiteDb.hx line 127
Called from website/Server.hx line 51
Called from Tora.hx line 483

Did a FLUSH HOSTS; and it seems to work again. Thanks for reporting!

Just FYI, I had this issue this morning, but it seems to work again :)


Festivals

Festival Component:
- Search functionality is working with mock API
- Display festivals in component upon submit
- Display buttons next to each festival to populate Playlist module

Playlist Module:
- Populating artists, calling mock API
- Button created (still pending API call to be added)

Notes:

Known UI issues / bugs in visual display
Component file structure updated

LGTM!


Cleanup el2g guide

Minor rST syntax issues were causing some formatting mistakes. Additional style and grammar cleanups also done.
QA Steps: Ran linter. Viewed output in browser.
No related tasks, minor fix.
PR Template and Checklist
Please complete as much as possible to speed up the reviewing process.
Readiness and adding reviewers as appropriate is required.
All PRs should be reviewed by a technical writer/documentation team and a peer.
If effecting customers—which is a majority of content changes—a member of Customer Success must also review.
Readiness

[x] Merge (pending reviews)
[ ] Merge after date or event
[ ] Draft

Overview
Cleaned up a couple minor issues, added some links to the glossary
Checklist

[x] Run spelling and grammar check, preferably with linter.
[x] Avoid changing any header associated with a link/reference.
[ ] Step through instructions (or ask someone to do so).
[x] Review for wordiness
[x] Match tone and style of page/section.
[ ] Run make linkcheck.
[x] View HTML in a browser to check rendering.
[x] Use semantic newlines.
[x] follow best practices for commits.

[x] Descriptive title written in the imperative.
[x] Include brief overview of QA steps taken.
[x] Mention any related issues numbers.
[x] End message with sign off/DCO line (-s, --signoff).
[x] Sign commit with your gpg key (-S, --gpg-sign).
[x] Squash commits if needed.

[x] Request PR review by a technical writer and at least one peer.

Docs for 40aae45dfc499159762d056651e14e1937ac5128 are browsable at: https://ci.foundries.io/projects/fio-docs/builds/2714/docs/artifacts/html/index.html


Auto format

Auto audio format:
alsa: auto = try to find the actual highest supported format.
pipe: auto = S16.
gstreamer, jackaudio, portaudio, pulseaudio, rodio, sdl: auto = F32
Also for bonus points clean up a clippy lint that was introduced in https://github.com/librespot-org/librespot/pull/920.

I'm on the fence. I think a feature like auto should set up the user for the best possible SQ we can guess, and caveats make it feel unpolished. We're trying to cater to the average user here. I'm not concerned about power users who know how to set the knobs for best SQ.
On the one hand, selecting S32 or S24 even without dithering would raise DNR such that dithering won't matter much. But if the highest supported format turns out to be S16, then you're worse off than with dithering set to auto. That's the case for Alsa.
For many of the other backends, it's more complicated. For Rodio, it depends on the host. I think a Mac accepts F32 samples but most other platforms will simply convert down to S16 without dithering, and you're worse off again.
For GStreamer and PortAudio, you could re-enable their native dithering again depending on whatever we've set to auto or not, but it's that behaviour isn't very transparent, and as I'm typing this I feel things are getting convoluted.
Like I said in the other thread we can get this right if we refactor the sample pipeline to what @Johannesd3 proposed in his sinky repo. It's on my list but only after the new API.
I thought this would be an easy win but I guess it's not.
Off to bed now.

No biggie. I'll close this then. I don't have really any strong feelings either way about dithering. I'll put in PR for the clippy lint warnings in the portaudio backend.


After moving to peerDependencies, LocalStorage and CookieService not found

Fix: ng2-webstorage and angular2-cookie still need to be listed as dependencies.


Please document the dependencies of this project which are not in core Perl

Using perlbrew with a freshly installed perl-5.22.0, I found that I had to install these modules:
Switch
DateTime
Data::Hexdumper
Digest::CRC

Woops, I thought I had documented those.
There's more. You need the command line xz utility installed. And if you have any setup files that use bzip2 or zlib compression, you also need IO::Uncompress::AnyInflate and IO::Uncompress::Bunzip2. If you want to generate new parsers for new IS versions, you also need Marpa::R2.
I'd prefer not having to rely on xz, but none of IO::Uncompress::UnXz nor IO::Uncompress::UnLzma or any of the other LZMA Perl packages allow passing compression parameters or do custom post-processing, last time I checked.
Data::Hexdumper is just used for debugging. I'll remove that.
Switch is required, but the code is still using the deprecated feature 'switch' in some places. I also need to remove all the instances of use constant, it creates more problems than it solves.

Thanks for the quick reply :smile:

Uses of Data::Dumper and Data::Hexdump are gone.
The current list of dependencies (aside from Perl 5.10+ builtins) should be:

Switch
DateTime
Digest::CRC
IO::Uncompress::AnyInflate
IO::Uncompress::Bunzip2
xz (command line utility)

I'll update the README later.

The README should reflect the dependencies now.
I also added a number of updates and fixes, as I noticed that support for older Inno Setup versions was broken. xz is no longer required, but you need Compress::Raw::Lzma now.


Support Java 8 sources

Copied from https://github.com/aws/aws-sdk-java/issues/350

AsynchronyDeciderAnnotationProcessor is annotated with @SupportedSourceVersion(SourceVersion.RELEASE_6), indicating it only supports code compiled for java 1.6 or earlier. This is awkward to support in Java 7+ projects because of the need for a bootclasspath argument pointing to a Java 6 environment.

Updated to : @SupportedSourceVersion(SourceVersion.RELEASE_7)
should support Java 7+ now.

Thanks, @njcongtou. Is there a plan for getting support up to Java 8?

Looking forward to the Java 8 support.

It should support Java 8, but to remove the extra warning I added https://github.com/aws/aws-swf-build-tools/pull/3

Thank you. May I know when the changes would be available on maven central?


This app is blocked

I just tried to install 4keys and I came to the point where I should authorize the connector. But I receive the following error: This app is blocked.
I'm new to gcloud - so maybe I've missed something. But I'm stuck in the setup.

Hi there! I'm so sorry about that.  This is a duplicate of an old issue.  Luckily we have a PR for the fix now!  https://github.com/GoogleCloudPlatform/fourkeys/pull/204

Duplicate of https://github.com/GoogleCloudPlatform/fourkeys/issues/86


After a command-only line, the cursor is placed at the beginning of the line instead of in the right indentation

With 'command-only line' I mean for example the line \begin{env} which has no other text on the same line.
Sometimes it does work correctly, but I've not been able to figure out when exactly that is.
(Built from master at commit 00186c )

Duplicate of #16


Adding WTFPL license

Hi, I hope this isn't too presumptuous, but we love your project and can't use it without a license.  Since you have no license right now I picked WTFPL.  If you fancy another license, I'm happy to do another pull request.
Thanks

Thanks for the pull request, I added a license and published to npm.

Brilliant!  Thanks


Update New-ADUser.md

Added another example using account password and Enabled parameter

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/windows-powershell-docs/issues/2635

Docs Build status updates of commit fef21d0:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2019-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 86152d1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012r2-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2016-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2019-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2022-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 4f2a29a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docset/winserver2012r2-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (winserver2012r2-ps)

docset/winserver2016-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2016-ps)

docset/winserver2019-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2019-ps)

docset/winserver2022-ps/activedirectory/New-ADUser.md
:white_check_mark:Succeeded
View (WindowsServer2022-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


sharness: Init at 1.1.0-dev

Motivation for this change
A simple portable shell library to write and run tests adhering to the Test Anything Protocol.
Things done

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

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

[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Updated.

Result of nixpkgs-review pr 112309 at 44b06c61 run on aarch64-linux 1

1 package built:

sharness


Failure to warn of possible numeric comparison with an optional function parameter

TypeScript Version:  2.1.4
I had an issue with Flow that it warned for no reason because I had an "if" to guard against undefined (https://github.com/facebook/flow/issues/2984) - so I tried TypeScript. TypeScript didn't warn - but it also didn't warn when I removed the if-guards!
Here is the code I used to check with TypeScript 2.1.4. Strict null checks are "true", see tsconfig.json below. I only get a warning about the unused const test.
Just to cover those cases I added a test at the top of the function to be outside the inner promise callback function - same result.
Code
'use strict';

const imap: {search(criteria: string[], cb: Function): void} = {
    search: (criteria, cb) => {}
};

const search = (from?: number, to?: number): Promise<number[]> => {
    // 1) NOT SAFE, "from" could be undefined:
    const test: boolean = from >= 4;

    return new Promise((resolve, reject) => {
        imap.search(
            ['ALL'],
            (err: Error, uids: number[]) => {

                // 2) NONE of this is safe, "from" could be undefined:
                const test: boolean = uids[0] >= from;
                uids = uids.filter((uid: number) => uid >= from);
                uids = uids.filter(function (uid: number) {
                    return uid >= from;
                });

            }
        )
    });
};

tsconfig.json:
{
    "compilerOptions": {
        "strictNullChecks": true,
        "alwaysStrict": true,
        "module": "commonjs",
        "noImplicitAny": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "newLine": "lf",
        "noLib": false,
        "noUnusedLocals": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "lib": ["ES2017"],
        "target": "ESNext"
    },
    "include": [
        "lib/*"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

Expected behavior:
Error: from, used in a numeric comparison, could be undefined.
Actual behavior:
No warnings or errors other than the one about the unused variable test.

We consider comparing a number to undefined using a relational operator to be a safe operation. It's correct and useful to write code like this:
var x: number | undefined = ...;
if (x === 10) { // Safe: Could be a comparison between number and undefined, but OK
  // ... do something
}

and it's not clear why > ought to behave any differently since it's simply checking against range of numbers rather than a single number. It would be cumbersome and redundant to have to write if ((x !== undefined) && (x > 0)) since the second comparison always returns false when the first one does anyway.

The reason Flow correctly complains (although it over-complains) is that comparisons of a number against something that is not a number is useless.

comparisons of a number against something that is not a number is useless.

Comparing undefined against a number using a relational operator always produces false, and it's entirely meaningful and idiomatic to use === or > to test for numbers to be present and equal or greater to some value.
Consider this code:
var x: number | undefined = ...;
if (x === 0) {

By your logic, we have to disallow this code, because we've compared a number to undefined, which is "useless"
So instead the author has to write
if ((x !== undefined) && (x === 0)) {

which means the same thing. As a code reviewer I would ask someone to remove the left condition. A type system which makes you write duplicative wrong-looking code isn't possibly helping you.
If you want to contend that === and > should behave differently, feel free, but I think that's a hard case to make.

I#m not saying anything about "your code".  Comparing against something that is not a number may not affect your code. However, making the assumption that comparing something that is not a number against a number does not matter and is fine just because yo managed to find an example (of a single line of code...) where it actually really doesn't matter is [self-censored word].

So instead the author has to write

NO!!!! That would indeed be most useless.
Please read what I wrote.

Please don't argue at me about reading what you wrote when you edited your comment after-the-fact to add several new paragraphs of text.

I always do that. It's the way I think. Alternatively, I could add 10 comments instead of one... would that be better? I can't help it, my ideas ALWAYS come in pieces.

Your options in that case are a) wait for your thoughts to come in before posting or b) don't complain about people not reading comments that haven't been written yet.

I suggest you just ignore this ticket. No offense, there is no reason to be involved in every single issue

Responding to GitHub issues (among other things) is literally my job. Microsoft gives me reasons to be involved in the form of paychecks. If you'd like the TS team to ignore this ticket, why did you file it?

..alternatively (to what I wrote in my scenario explanation five comments above): The situation could be an error that should not happen and makes no sense to continue as if nothing happens (which I already wrote) - but it could also be as you wrote, meaning it could be completely fine.
But in either case it would need to be made explicit, because it isn't obvious that continuing and ignoring that there was a nonsensical comparison is okay.

why did you file it?

Because see issue description. There is an issue.

I admit I'm occasionally abrasive.  Not my problem, I told you there is one, my job's done.

I admit I'm occasionally abrasive.  Not my problem, I told you there is one, my job's done. It also amuses me when people dismiss facts because they dislike my behavior, as if my behavior somehow changes the nature of the problem, magically.


Added unit tests for NaN, Max, Min, Positive and Negative Infinity values

Fixes # . https://github.com/cbeust/testng/issues/1734
Did you remember to?

[x] Add test case(s)
[x] Update CHANGES.txt

We encourage pull requests that:

Add new features to TestNG (or)
Fix bugs in TestNG

If your pull request involves fixing SonarQube issues then we would suggest that you please discuss this with the
TestNG-dev before you spend time working on it.

On a side, please have your PR rebase off of master. I have pushed in a lot
of code formatting changes to master. Just trying to ensure that we don't
run into merge conflicts. --
Thanks & Regards
Krishnan Mahadevan
"All the desirable things in life are either illegal, expensive, fattening
or in love with someone else!"
My Scribblings @ http://wakened-cognition.blogspot.com/
My Technical Scribbings @ http://rationaleemotions.wordpress.com/

One more question - why we don't have public static void assertEquals(float actual, float expected, String message) method implementation? Same goes for double as well?

i see that the behavior for NaN value is different for float and double.

We definitely need to fix it.

Please advise here and I will do the implementation accordingly.

compareFloatWithNaNValues must pass without the exception.
And I think array tests like compareDoubleArraysWithNaNValues should pass without exception too (WDYT @krmahadevan )

why we don't have public static void assertEquals(float actual, float expected, String message) method implementation? Same goes for double as well?

Because no one added it. Feel free to add the method and its variants.

Thanks @juherr. I have two choices here for fixing above mentioned differences:

Covert float to Float Object and compare them using equals method.
Use float as primitive only and use "==" operator but have special handling for NaN and Infinity scenarios. Something similar to

public static void assertEquals(double actual, double expected, double delta, String message) {
    // handle infinity specially since subtracting to infinite values gives NaN and the
    // the following test fails
    if (Double.isInfinite(expected)) {
      if (!(expected == actual)) {
        failNotEquals(actual, expected, message);
      }
    } else if (Double.isNaN(expected)) {
      if (!Double.isNaN(actual)) {
        failNotEquals(actual, expected, message);
      }
    } else if (!(Math.abs(expected - actual) <= delta)) {
      failNotEquals(actual, expected, message);
    }
  }

The trade off here is between performance and readability. Option 1 will result in more object creations and may cause slight performance issues for very large arrays.

@juherr - I haven't had time to go through this PR and the discussion yet since I was stuck with the formatting changes (I didn't anticipate it to be tiring 😛 ).
So let me go through the conversation first and then chime in if required with inputs.

@atulagrawal I prefer option 2

@juherr - I have done the changes as per option 2. Can you please review it.

@cbeust - is it fine now?


Only main chat window is re-opened on launch on macOS

Search before asking

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

Operating System

[X] macOS
[ ] Windows
[ ] Linux

Operating System Version
macOS 12.7.3 (21H1015)
It happens on the web browser too?
No, it just happens on the Desktop app
Rocket.Chat Desktop App Version
3.9.14
Rocket.Chat Server Version
6.7
Describe the bug
After opening multiple chats in separate windows by shift-clicking on them in the chat list, closing and re-launching the app will only restore the main window, but not the chats opened in separate windows. I created this screen recording showing the current behavior:
https://github.com/RocketChat/Rocket.Chat.Electron/assets/50332/9ce35e73-b87d-4b79-91c6-e799f622b2a7
How to Reproduce

Open Rocket.Chat.app.
Open some chats in separate windows e.g. shift-clicking on them in the chat list on the left.
Quit Rocket.Chat.app.
Open Rocket.Chat.app again.
Only the main window is restored, but not any of the other windows.

Describe your Expected behavior
IMHO all chat windows should be restored when the application is opened.
Anything else
The current behavior appears every time.
I have "Close windows when quitting an app" turned off in "General" in System Preferences.
Are you willing to submit a code contribution?

[ ] Yes, I am willing to submit a Pull Request!

Hey @Feuermurmel this is not a bug. We don't intend to reopen all the windows after quitting.


[NETBEANS-54] Module Review editor.lib

no external libraries
checked Rat report: modified license header in src/org/netbeans/editor/BaseKit.java
skimmed through the module, did not notice additional problems

Merged with 3 positive reviews - Thank you.


windows 11 - clicking host in file section gives error (ptb

java.lang.UnsupportedOperationException: System shell does not support file system interaction
java.lang.UnsupportedOperationException: System shell does not support file system interaction
at io.xpipe.core.store.ConnectionFileSystem.open(ConnectionFileSystem.java:42)
at io.xpipe.app.browser.fs.OpenFileSystemModel.lambda$init$2(OpenFileSystemModel.java:89)
at io.xpipe.app.util.BooleanScope.executeExclusive(BooleanScope.java:18)
at io.xpipe.app.browser.fs.OpenFileSystemModel.init(OpenFileSystemModel.java:84)
at io.xpipe.app.browser.session.BrowserSessionModel.openFileSystemSync(BrowserSessionModel.java:93)
at io.xpipe.app.browser.session.BrowserSessionModel.lambda$openFileSystemAsync$4(BrowserSessionModel.java:76)
at io.xpipe.app.util.ThreadHelper.lambda$runFailableAsync$1(ThreadHelper.java:42)
at io.xpipe.app.util.ThreadHelper.lambda$wrap$0(ThreadHelper.java:19)
at java.lang.VirtualThread.run(VirtualThread.java:309)

(also sent reports with report error within the app)

What kind of shell is that?
Usually that error message means that an unsupported shell is running on the system

I was referring to the shell of the remote system you're connecting to

So the report you sent doesn't contain the necessary information on why this fails. Either this is a restricted bash (rbash) instance or the shell type is not recognized correctly as bash.
You can try to go to Settings -> Troubleshoot -> Launch in debug mode and share the output of when it fails. You can send that via email for example.

Oh I see. I think I can change the error message in that case to be more accurate

The error message has now been improved in the latest PTB


Add C++ course (Russian language)

What does this PR do?
Add resource.
For resources
Description
Added wonderful C++ web course on Russian language.
Why is this valuable (or not)?
Author created a lot of articles that will guide the reader from beginner to professional (almost) level. All the explanations are very clear and detailed enough.
How do we know it's really free?
It is explicitly written on the suggested link page.
For book lists, is it a book? For course lists, is it a course? etc.
It is a course that provides a lot of articles about C++. There is also e-book version but it is not free.
Checklist:

[X] Read our contributing guidelines
[X] Search for duplicates.
[X] Include author(s) and platform where appropriate.
[X] Put lists in alphabetical order, correct spacing.
[X] Add needed indications (PDF, access notes, under construction)

Follow-up

Check the status of GitHub Actions and resolve any reported warnings!

Thanks, and welcome to free-programming-books!

Thanks, and welcome to free-programming-books!


Enable user namespace remap to fix permission issues

When starting a "dind-container" it would be useful (and probably preferable) that the instantiated container maps user ids to host (basically, id 0 (root) in the dind-container maps to 1000 (go) in the host/agent container.
It's been a while since I fiddle with these things, but I guess you should add something like:
sudo echo -e "{\n  \"userns-remap\": \"go:root\"\n}\n" > /etc/docker/daemon.json
to run-docker-daemon.sh: line 16.
This fixes permission related issues with files created inside the dind-container onto a mounted volume.
A common example would be the agent kicking of a build-container, which places generated artifacts in a mounted volume and if user is root inside the dind-container, they can't later be modified/removed by the agent.
See more here:

https://docs.docker.com/engine/security/userns-remap
https://www.jujens.eu/posts/en/2017/Jul/02/docker-userns-remap

Another option would be to use the --userns-remap option directly.
@GaneshSPatil or @varshavaradarajan are better suited to understand whether this remapping can have any unintented consequences, though.

This is what I ended up doing for now:
FROM gocd/gocd-agent-docker-dind:v19.11.0

# 1.
# Setup remapping for go-user & group. Makes sure all dind-containers run with user-ids 1000 -> 65536 (0 in container will be 1000 on host/mounted volume and so on)
# See here: https://docs.docker.com/engine/security/userns-remap/
# 2.
# Also map go user- & group ID (created in gocd dockerfile) to root inside dind-container (so that files created inside dind container has correct permissions)

USER root

RUN echo -e "go:1000:65536" > /etc/subuid \
    && echo -e "root:0:65536" > /etc/subgid \
    && mkdir -p /etc/docker/ && echo "{\"debug\": false,\"userns-remap\":\"go:root\"}" > /etc/docker/daemon.json

USER go

ENTRYPOINT ["/docker-entrypoint.sh"]


create fta_gitops repo and add argocd deployment manifest

Provision fta_gitops Repo
Add Argo CD Deployment
Add ArgoCD Helm manifest

Ran Plan for dir: deployment/cloud workspace: default
Show Output
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
~ update in-place
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # random_password.argocd_github_secret will be created
+ resource "random_password" "argocd_github_secret" {
      + bcrypt_hash      = (sensitive value)
      + id               = (known after apply)
      + length           = 64
      + lower            = true
      + min_lower        = 10
      + min_numeric      = 10
      + min_special      = 5
      + min_upper        = 10
      + number           = true
      + numeric          = true
      + override_special = "!#$%&*@"
      + result           = (sensitive value)
      + special          = true
      + upper            = true
    }

  # module.gsm_iac.google_secret_manager_secret_version.secret_version must be replaced
-/+ resource "google_secret_manager_secret_version" "secret_version" {
      ~ create_time           = "2024-09-16T13:36:18.281573Z" -> (known after apply)
      + destroy_time          = (known after apply)
      ~ id                    = "projects/781497044301/secrets/iac/versions/6" -> (known after apply)
      ~ name                  = "projects/781497044301/secrets/iac/versions/6" -> (known after apply)
      ~ secret_data           = (sensitive value) # forces replacement
      ~ version               = "6" -> (known after apply)
        # (4 unchanged attributes hidden)
    }

  # module.repo_gitops.github_branch.dev[0] will be created
+ resource "github_branch" "dev" {
      + branch        = "dev"
      + etag          = (known after apply)
      + id            = (known after apply)
      + ref           = (known after apply)
      + repository    = "fta_gitops"
      + sha           = (known after apply)
      + source_branch = "main"
      + source_sha    = (known after apply)
    }

  # module.repo_gitops.github_repository.repo[0] will be created
+ resource "github_repository" "repo" {
      + allow_auto_merge                        = false
      + allow_merge_commit                      = true
      + allow_rebase_merge                      = true
      + allow_squash_merge                      = true
      + allow_update_branch                     = false
      + archive_on_destroy                      = false
      + archived                                = false
      + auto_init                               = true
      + default_branch                          = (known after apply)
      + delete_branch_on_merge                  = true
      + etag                                    = (known after apply)
      + full_name                               = (known after apply)
      + git_clone_url                           = (known after apply)
      + has_discussions                         = true
      + has_downloads                           = true
      + has_issues                              = true
      + has_projects                            = true
      + has_wiki                                = true
      + homepage_url                            = "false"
      + html_url                                = (known after apply)
      + http_clone_url                          = (known after apply)
      + id                                      = (known after apply)
      + ignore_vulnerability_alerts_during_read = false
      + is_template                             = false
      + license_template                        = "apache-2.0"
      + merge_commit_message                    = "PR_TITLE"
      + merge_commit_title                      = "MERGE_MESSAGE"
      + name                                    = "fta_gitops"
      + node_id                                 = (known after apply)
      + primary_language                        = (known after apply)
      + private                                 = (known after apply)
      + repo_id                                 = (known after apply)
      + squash_merge_commit_message             = "COMMIT_MESSAGES"
      + squash_merge_commit_title               = "COMMIT_OR_PR_TITLE"
      + ssh_clone_url                           = (known after apply)
      + svn_url                                 = (known after apply)
      + topics                                  = [
          + "argocd",
          + "argocd-vault-plugin",
          + "devops",
          + "gitops",
          + "helm",
          + "kubernetes",
        ]
      + visibility                              = "public"
      + vulnerability_alerts                    = true
      + web_commit_signoff_required             = false

      + security_and_analysis {
          + secret_scanning {
              + status = "enabled"
            }
          + secret_scanning_push_protection {
              + status = "enabled"
            }
        }
    }

  # module.repo_gitops.github_repository_webhook.webhooks["argocd"] will be created
+ resource "github_repository_webhook" "webhooks" {
      + active     = true
      + etag       = (known after apply)
      + events     = [
          + "push",
        ]
      + id         = (known after apply)
      + repository = "fta_gitops"
      + url        = (known after apply)

      + configuration {
          + content_type = "json"
          + insecure_ssl = false
          + secret       = (sensitive value)
          + url          = (sensitive value)
        }
    }

  # module.repo_iac.github_repository_webhook.webhooks["atlantis"] will be updated in-place
~ resource "github_repository_webhook" "webhooks" {
        id         = "501983538"
        # (4 unchanged attributes hidden)

      ~ configuration {
          ~ secret       = (sensitive value)
            # (3 unchanged attributes hidden)
        }
    }

Plan: 5 to add, 1 to change, 1 to destroy.

:arrow_forward: To apply this plan, comment:atlantis apply -d deployment/cloud

:put_litter_in_its_place: To delete this plan and lock, click here
:repeat: To plan this project again, comment:atlantis plan -d deployment/cloud

Plan: 5 to add, 1 to change, 1 to destroy.

:fast_forward: To apply all unapplied plans from this Pull Request, comment:atlantis apply

:put_litter_in_its_place: To delete all plans and locks from this Pull Request, comment:atlantis unlock

Ran Apply for dir: deployment/cloud workspace: default
Show Output
module.gsm_iac.google_secret_manager_secret_version.secret_version: Destroying... [id=projects/781497044301/secrets/iac/versions/6]
module.repo_gitops.github_repository.repo[0]: Creating...
module.gsm_iac.google_secret_manager_secret_version.secret_version: Destruction complete after 2s
random_password.argocd_github_secret: Creating...
random_password.argocd_github_secret: Creation complete after 0s [id=none]
module.gsm_iac.google_secret_manager_secret_version.secret_version: Creating...
module.gsm_iac.google_secret_manager_secret_version.secret_version: Creation complete after 4s [id=projects/781497044301/secrets/iac/versions/7]
module.repo_gitops.github_repository.repo[0]: Still creating... [10s elapsed]
module.repo_gitops.github_repository.repo[0]: Creation complete after 12s [id=fta_gitops]
module.repo_gitops.github_repository_webhook.webhooks["argocd"]: Creating...
module.repo_gitops.github_branch.dev[0]: Creating...
module.repo_gitops.github_repository_webhook.webhooks["argocd"]: Creation complete after 4s [id=502253815]
module.repo_gitops.github_branch.dev[0]: Creation complete after 4s [id=fta_gitops:dev]

Apply complete! Resources: 5 added, 0 changed, 1 destroyed.

Outputs:

bucket_name = "fta-mstr-gcs-tfstate"
bucket_self_link = "https://www.googleapis.com/storage/v1/b/fta-mstr-gcs-tfstate"
bucket_url = "gs://fta-mstr-gcs-tfstate"
iac_repo_fullname = "greyhats13/fta_iac"
iac_repo_http_clone_url = "https://github.com/greyhats13/fta_iac.git"
iac_repo_ssh_clone_url = "git@github.com:greyhats13/fta_iac.git"
main_dns_id = "projects/fta-platform/managedZones/fta-mstr-dns-main"
main_dns_managed_zone_id =<PHONE_NUMBER>482091992
main_dns_name = "fta.blast.co.id."
main_dns_name_servers = tolist([
  "ns-cloud-b1.googledomains.com.",
  "ns-cloud-b2.googledomains.com.",
  "ns-cloud-b3.googledomains.com.",
  "ns-cloud-b4.googledomains.com.",
])
main_dns_zone_name = "fta-mstr-dns-main"
main_dns_zone_visibility = "public"
main_firewall_ids = {
  "icmp" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-icmp"
  "internal" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-internal"
  "rdp" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-rdp"
  "ssh" = "projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-ssh"
}
main_firewall_self_links = {
  "icmp" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-icmp"
  "internal" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-internal"
  "rdp" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-rdp"
  "ssh" = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/firewalls/fta-mstr-vpc-main-allow-ssh"
}
main_nat_id = "fta-platform/asia-southeast2/fta-mstr-vpc-main-router/fta-mstr-vpc-main-nat"
main_pods_secondary_range_name = "pods-range"
main_router_id = "projects/fta-platform/regions/asia-southeast2/routers/fta-mstr-vpc-main-router"
main_router_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/regions/asia-southeast2/routers/fta-mstr-vpc-main-router"
main_services_secondary_range_name = "services-range"
main_subnet_ip_cidr_range = "<IP_ADDRESS>/16"
main_subnet_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/regions/asia-southeast2/subnetworks/fta-mstr-vpc-main-subnet"
main_vpc_gateway_ipv4 = ""
main_vpc_id = "projects/fta-platform/global/networks/fta-mstr-vpc-main"
main_vpc_self_link = "https://www.googleapis.com/compute/v1/projects/fta-platform/global/networks/fta-mstr-vpc-main"
security_cryptokey_id = "projects/fta-platform/locations/global/keyRings/fta-mstr-kms-main-keyring/cryptoKeys/fta-mstr-kms-main-cryptokey"
security_keyring_id = "projects/fta-platform/locations/global/keyRings/fta-mstr-kms-main-keyring"
security_service_account_email =<EMAIL_ADDRESS>security_service_account_id =<EMAIL_ADDRESS>

Locks and plans deleted for the projects and workspaces modified in this pull request:

dir: deployment/cloud workspace: default


Rename l-breez to misty-breez within the app

Rename l-breez occurences to misty-breez within the app, platform configurations & workflows.

Renaming package names is a regression prone area and we decided to use l-breez, lBreez internally within the app. This decision shouldn't affect any user facing naming.
Closing.


No error gets thrown when the PHP Redis extension is disabled

Usually, Laravel throws an error when the PHP Redis extension is disabled. It will show you the following message:
Please make sure the PHP Redis extension is installed and enabled.

Setting the BROADCAST_DRIVER to redis and having the PHP Redis extension disabled will not output this message. I did a fresh install of my PC and forgot to enable the PHP Redis extension, leading to running around for a while when no errors were getting thrown.

PHP Redis extension recommended, but not required. As described in Redis Introduction section, you can also use predis/predis package.
Also you will receive an error on wave request if you use the Redis extension and it is disabled.

Do you mean the one in the console? It only returned an error 500 for me. It's not explicit enough. There is no message attached to it or anything.

The 500 error is due to a lack of connectivity to Redis. You can find details in the response body or in the Laravel log file.
What kind of message do you expect and where?
Browser console shows javascript errors. Redis connection issues are related to the server side.

If you would like to propose some additional behaviour, please reopen an issue with detailed description, cheers 😉


'Best' quality no longer works with newest Twitch quality format

For TI6 (http://www.dota2.com/international/overview/) Twitch has modified how their list of qualities are now listed, they are as follows: 1080p60, 144p30, 240p30, 360p30, 480p30, 540p30, 720p30, 720p60, audio. This means that defaulting to best no longer works as it doesn't understand the new format of 1080p60. I assume this is true for the other qualities, but I haven't tested them.

maybe you can try #1429

Definitely feels like that should do it, thanks @intact, didn't catch that one when I searched.


[PSR2 4.1] Add class definition fixer.

replaces https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1501

great to see this ;)

Isn't this fixer fix PSR-2 ¶4.1. ?

Isn't this fixer fix PSR-2 ¶4.1. ?

If I would make the fixer do; https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1518#discussion_r45623820 it might get close ;)
I could not find a rule stating there must be one space between the class/interface/trait name and implements / extends etc., so this fixer does not format to a PSR rule I think.

OK, so if we want to be so strict (it's OK with me) - please, could you add second fixer, that replace whitespaces around extends and implements to be not-multiline? like __\n___ to _____ ?
And then, run this fixer after it and it will convert it to _ ;)

I like the idea, so I'm putting this one back to WIP status. I'll rework the fixer to apply PSR2 4.1 where possible. This will take a bit more time, so that expect a useful update soon ;)

@SpacePossum could you please focus on this PR? I would like to merge it soon ! :D

@keradus I rewrote the whole thing, I'm going to puzzle on both performance and more test cases,
but please early comments are welcome  :)
btw. this should fix to PSR-2 ¶4.1. now ^-^

fabbot is wrong IMO

fabbot is wrong IMO

fabbot is wrong IMO

Hmmm. That's not just fabbot. That's php-cs-fixer too.

Your phpdoc is also wrong though anyway.

https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#7-describing-hashes

You must include a $ in each variable name.

Also, see https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1557.

If CS check won't pass after fixing your PHPDoc then please get rid of that PHPDoc hash and describe the content in long description.

I would really love to have it in 1.11 and the PHPDoc won't stop us!

@SpacePossum
please, add a case:
array(
    '<?php
    class Aaa implements Bbb, Ccc
    {
    }',
),

https://github.com/SpacePossum/PHP-CS-Fixer/pull/5
:(

:(
@keradus your tests prove that setting the indenting before the class opening to \n     might not be the right thing to do.
I suggest checking if there is one line break between the line with the class definition and the class opening '{', if there is leave as is, if there are more remove to one line break, if there is none add one break.
This will cause this fixer to move the class opening to the correct line, but it won't fix the indenting.
What you think?

I can't understand why to move class opening at all?

PSR 2
4.1. Extends and Implements
The opening brace for the class MUST go on its own line; the closing brace for the class MUST go on the next line after the body.

you feel this is out of scope for this fixer?

OK, if you want to fix it here - OK with me, but why move non-{ tokens to new line ?

I removed the indenting part as well, so an indenting fixer should take care of that,
lets see how the tests do

input file:
<?php

class Aaa implements
    Symfony\CS\Tests\Fixer,\RFb,
    \Fcc1, \GFdd
{
}

fixing:
D:\GIT\fork\PHP-CS-Fixer ((detached from SpacePossum/1_11_feature_add_class_definition_fixer))
λ php php-cs-fixer fix issue -vv
F
Legend: ?-unknown, I-invalid file syntax, file ignored, .-no changes, F-fixed, E-error
   1) Aaa.php (class_definition)

after first fix:
<?php

class Aaa implements
    Symfony\CS\Tests\Fixer,
\RFb,
    \Fcc1,
\GFdd
{
}

fixing:
D:\GIT\fork\PHP-CS-Fixer ((detached from SpacePossum/1_11_feature_add_class_definition_fixer))
λ php php-cs-fixer fix issue -vv
F
Legend: ?-unknown, I-invalid file syntax, file ignored, .-no changes, F-fixed, E-error
   1) Aaa.php (trailing_spaces)

after second fix:
<?php

class Aaa implements
    Symfony\CS\Tests\Fixer,
\RFb,
    \Fcc1,
\GFdd
{
}

fixing:
D:\GIT\fork\PHP-CS-Fixer ((detached from SpacePossum/1_11_feature_add_class_definition_fixer))
λ php php-cs-fixer fix issue -vv
.
Legend: ?-unknown, I-invalid file syntax, file ignored, .-no changes, F-fixed, E-error

priorities need to be set

after the second there are no changes which to be expected right?

Thank you @SpacePossum.

\o/
thanks at all reviewers :)


Pods are stuck in CrashLoopBackOff, need ability to auto-recover pods

What is the bug?
Once in a few weeks the scheduler, web and worker pods are stuck in the CrashLoopBackOff status.
Looking in the logs shows nothing.
Deleting the pods solves the issue since k8s creates them again.
Is there a way to automatically delete the pods when they are stuck on CrashLoopBackOff or solve it in any other way?
What are your Helm values?
airflow:
  config:
    PYTHONPATH: "/usr/local/airflow/bi/airflow/dags:/usr/local/airflow/bi/Common:/usr/local/airflow/bi/Discrepancies:/usr/local/airflow/bi/Tableau"
    AWS_DEFAULT_REGION: "us-west-2"
    AIRFLOW__CORE__KILLED_TASK_CLEANUP_TIME: "86400"
    AIRFLOW__CELERY__BROKER__TRANSPORT__OPTIONS_VISIBILITY_TIMEOUT: "1200"
    AIRFLOW__WEBSERVER__LOG_FETCH_TIMEOUT_SEC: "15"
    # AIRFLOW__SCHEDULER__RUN_DURATION:"86400"
    AIRFLOW__SCHEDULER__JOB_HEARTBEAT_SEC: "1"
    AIRFLOW__SCHEDULER__SCHEDULER_HEARTBEAT_SEC: "1"
    AIRFLOW__SCHEDULER__MAX_THREADS: "4"
  extraVolumes:
    - name: data-science-git
      emptyDir: {}
    - name: git-clone-secret-ds
      secret:
        secretName: "git-sync-ds-ssh-secret"
        defaultMode: 0700
    - name: bi-east-ec2-key-pem
      configMap:
        name: bi-east-ec2-key-pem
  extraVolumeMounts:
    - name: data-science-git
      mountPath: /usr/local/airflow/data-science
    - name: bi-east-ec2-key-pem
      mountPath: /usr/local/airflow/bi-east-ec2-key.pem
      subPath: bi-east-ec2-key.pem
      readOnly: false
  extraContainers:
    - name: git-sync-ds
      image: alpine/git:latest
      imagePullPolicy: IfNotPresent
      envFrom:
        - configMapRef:
            name: "airflow-env"
      command: ['sh', '-c', 'echo DS Git clone starting && /home/airflow/git/git-clone.sh git@github.com:next-insurance/data-science.git master /dags github.com 22 gitSshKey && /home/airflow/git/git-sync.sh git@github.com:data-science/bi.git master /dags github.com 22 gitSshKey 600']
      volumeMounts:
        - name: data-science-git
          mountPath: "/dags"
        - name: git-clone
          mountPath: /home/airflow/git
        - name: git-clone-secret-ds
          mountPath: /keys
      resources:
        requests:
          cpu: "10m"
          memory: "200M"

    volumeMounts:
        - name: dags-data
          mountPath: /dags
      resources:
        requests:
          cpu: "10m"
          memory: "200M"
dags:
  path: /usr/local/airflow/bi
  git:
    url: "git@github.com:next-insurance/bi.git"
    ref: master
    secret: "git-sync-ssh-secret"
    sshKeyscan: true
    privateKeyName: gitSshKey
    repoHost: "github.com"
    repoPort: 22
    gitSync:
      enabled: true
      image:
        repository: alpine/git
        ## values: Always or IfNotPresent
        pullPolicy: IfNotPresent
      refreshTime: 60
      resources:
        requests:
          cpu: "10m"
          memory: "200M"
  initContainer:
    enabled: true
    image:
      repository: alpine/git
    ## values: Always or IfNotPresent
      pullPolicy: IfNotPresent
scheduler:
  variables: |
    {
 ...
   }
  securityContext: # for S3 logging
    fsGroup: 65534
 web:
  replicas: 2
  service:
    annotations: {service.beta.kubernetes.io/aws-load-balancer-internal: "true"}
    sessionAffinity: "None"
    sessionAffinityConfig: {}
    type: LoadBalancer
    externalPort: 8080

   loadBalancerSourceRanges: []
    nodePort:
      http: ""
  livenessProbe:
    initialDelaySeconds: 120
    periodSeconds: 120
    timeoutSeconds: 60
    successThreshold: 1
    failureThreshold: 3
  securityContext: # for S3 logging
    fsGroup: 65534
workers:
  resources:
    requests:
      memory: "6Gi"
  replicas: 4
  podDisruptionBudget:
    enabled: true
    minAvailable: 2
  autoscaling:
    enabled: true
    maxReplicas: 16
    metrics:
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 80
  celery:
    instances: 16
    gracefullTermination: true
    gracefullTerminationPeriod: 1500
  terminationPeriod: 300
  securityContext: # for S3 logging
    fsGroup: 65534
flower:
  service:
    annotations: {service.beta.kubernetes.io/aws-load-balancer-internal: "true"}
    sessionAffinity: "None"
    sessionAffinityConfig: {}
    type: LoadBalancer
    externalPort: 5555
    #loadBalancerIP: ""
    loadBalancerSourceRanges: []
    nodePort:
      http: ""

###################################
# Airflow - Logs Configs tp PV
###################################
logs:
  path: /opt/airflow/logs
  persistence:
    enabled: true
    existingClaim: "efs-claim"
    storageClass: "efs-sc"
    accessMode: ReadWriteMany
    size: 50Gi

What is your Kubernetes Version?:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"17+", GitVersion:"v1.17.12-eks-7684af", GitCommit:"7684af4ac41370dd109ac13817023cb8063e3d45", GitTreeState:"clean", BuildDate:"2020-10-20T22:57:40Z", GoVersion:"go1.13.15", Compiler:"gc", Platform:"linux/amd64"}

What is your Helm version?:
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"clean", GoVersion:"go1.13.12"}

@mikys-next-insurance what version of the chart are you using? Your values seem like they are for 7.X, have you tried updating to 8.X?
It also seems strange that you are using extraContainers to create your own git-sync, when this feature is built into the chart?

@thesuperzapper Thank you for reaching back
The chart version is airflow-7.16.0
I need to sync two different git repos so I use the built-in for the first and customized it for the second

@mikys-next-insurance did you solve your issue here?

@thesuperzapper Thanks for reaching back.
Actually no. I understand why it happens that I would expect the failing pods to auto recover but instead they stay in the CrashLoopBackOff state.

@mikys-next-insurance can you confirm what version of the chart you are on (that is, have you upgraded to 8.X.X?)
Either way, can you please share the logs of the containers which are crashing (make sure you get the logs from around when it crashed).

@thesuperzapper the chart version is airflow-7.16.0
I'll share the logs the next time it will happen.
Anyway, I plan to upgrade the chart version in this month or the next, hopefully it will solve the issue.
Thank you


[Release-1.24] Replace deprecated ioutil functions

Backport https://github.com/k3s-io/k3s/issues/6231 to release-1.24

Closing as this is a internal build change, there is nothing to QA


[HCA DX] Track clicks on "Request curl Command" export method button

Need
We need to add tracking of the cohort "Request curl Command" button to monitor user interactions and optimize conversions. This tracking will allow us to analyze the conversion funnel more accurately, ensuring that the Terra button is performing as expected.
Approach

Add a button-request-curl-command ID to the "Request curl Command" button.
Use GTM's built-in click variables to enable click tracking.
Create trigger that fires on "Click - All Elements" / "Some Clicks" to target only the export button.

Definition of Done

[x] Add tracking id in data-browser (#4232)
[x] Deploy data-browser (#4247)
[x] Create GTM tags
[ ] Deploy GTM version

Clicks on "Request curl Command" data button are accessible in the query explorer for both prod and staging:

[ ] data.humancellatlas.org - GA4
[x] data.humancellatlas.dev.clevercanary.com - GA4

Version #61 on GTM

#61 LGTM, thanks @jpaten!

Working on prod and staging!
Prod

Staging

Thanks @jpaten! Are the unchecked checkboxes in the description still outstanding?

Hi @MillenniumFalconMechanic! Whoops, I forgot to check those, thanks for catching that!

LGTM, thanks Jonah!


Show in tab not working

I think it's caused by #78 fix
https://cdn.discordapp.com/attachments/1107257917272506409/1266660952414097418/2024-07-27_10-32-49.mp4?ex=66a5f570&is=66a4a3f0&hm=3fcc75d7758f0d6ccddff1679031b94e323161d2ac317a2757c93299d17598f2&

Should be fixed in the latest dev build


Generator.createHexagonGrid doc comment / functionality missmatch

The comment for the radius parameter says 0 will produce a single hexagon, but a value of 0 actually throws an InvalidArgumentError.
I also think the doc comments for GridShape cases could use expanding, maybe with some examples. For instance, the .hexagon case just says "radius", but I think it's more common to talk about regular hex grids by "side length" (which is of course "radius + 1"). At least I understand the meaning of radius, but I don't really understand what the .triangle's "side size" parameter means, because it seems to produce a triangle with a side-size of one more than that. (For consistency?) Maybe the triangle parameter is actually a bug, I don't really know.

These are very valid points. Thank you.
The first one is a bug. The other two are more about a consistent and intuitive approach.
All of them have in release 0.4.8. Please note this is a breaking change!
New behavior:
Grid generator now accepts side length argument for both hexagon and triangle-shaped grids. This side length works as you would expect in the real world.
Examples:

hexagon-shaped grid of side length equal to 1 produces a grid of exactly 1 cell.
hexagon-shaped grid of side length equal to 2 produces a grid of 7 cells.
hexagon-shaped grid of side length equal to 3 produces a grid of 19 cells.
triangle-shaped grid of side length equal to 1 produces a grid of exactly 1 cell.
triangle-shaped grid of side length equal to 2 produces a grid of 3 cells.
triangle-shaped grid of side length equal to 3 produces a grid of 6 cells.
triangle-shaped grid of side length equal to 4 produces a grid of 10 cells.

This is great, thank you!


out of memory error creating STRtree

I've been creating and using STRtrees for a while now under my old installation (with GeoPandas 0.8.0 using the following code:
from shapely.strtree import STRtree

Geoms = list(myGeoDataFrame['geometry'])  ##  <--  This is a column of shapely point objects (in the current case)
GeomsIdx = list(myGeoDataFrame.index)
for index, geom in enumerate(Geoms):
    geom.idx = GeomsIdx[index]
geomTree = STRtree(Geoms)  ##  <-- this is where it explodes

Expected behavior and actual behavior.
In the past, this produced an STRtree, which I could then use get rows (by index) of my geodataframe that intersect some geometry.  It was great!
I just updated geopandas from 0.8.0 for 0.9.0, and now that same code blows up my computer due to a series of "bad allocation" messages followed by an "Out of Memory" error.
Since the code didn't change, and the Shapely version didn't change much, I really don't know what could be the problem.  But my only problem happens when running the code to build the Shapely STRtree, so maybe somebody here knows what is going wrong and how to fix it.  Maybe it's a compatibility issue, but like I said, that STRtree line is the only place with a problem
Steps to reproduce the problem.
Run the code above.
Operating system
Windows 10, miniforge Python 3.8
Shapely version and provenance
1.7.1 installed from conda-forge (my previous build had v1.7.0)

I can confirm this bug on Windows with GEOS 3.9.1. Don't run the following (unless you want to risk crashing a Windows OS):
from shapely.geometry import Point
from shapely.strtree import STRtree

gl = list(Point(x, x) for x in range(1000000))
gt = STRtree(gl) # <- here begins the trouble

results with
bad allocation
bad allocation
...
ERROR:shapely.geos:bad allocation
ERROR:shapely.geos:bad allocation

with lots of screen flickering, other apps dropping off, and sometimes a system crash. I cannot reproduce the bug with the main GEOS branch, so it appears to be fixed upstream. I'd suggest installing "GEOS<3.9", until a new GEOS version comes out.

After installing geos=3.8.1 everything runs smoother than butter on a bald monkey.
Thank you so much!

Upstream ticket here: https://trac.osgeo.org/geos/ticket/1118
This issue can remain open until it's (hopefully) resolved.

Shapely binary wheels are now build with GEOS 3.10, so this issue doesn't really apply anymore. Anyone affected by this bug should simply upgrade.