mux packcage archive mode

Description
in HTTP part of pactus its use gorilla/mux the gorilla packages are in archive mode since end of 2022!
I think we should refactor the codes and use another package or maybe just use the pure go.
that's because gorilla wasn't update with new go versions and it can be danger.

It's good idea. Which package do you recommend to use?

in order that's good to use lightweight package I think echo is good also chi is good too.
the pure net/http are still the best choice...

@Ja7ad do you have any idea?

We need trascoding protocol buffers
https://cloud.google.com/transcoder/docs

Usually google's library are too heavy. We need something light.

@kehiy Do you have any comparisons between the current libraries?

Usually google's library are too heavy. We need something light.

We need to all, just http annotation for transcoding

@kehiy Do you have any comparisons between the current libraries?

In general, Echo is one of the most suitable pkg after Mux
But for comparison, I can do a more detailed research

Better we don't use a framework.

@kehiy Do you have any comparisons between the current libraries?

In general, Echo is one of the most suitable pkg after Mux
But for comparison, I can do a more detailed research

Better we don't use a framework.

i'm agree with you!
The best way is to use something that does not have security problems with its updates.
I do not have complete information about what you introduced
I came across 403 to read its documentation
But if it has such conditions, it can be a good case instead of Mux

Guys, this issue has very low priority. Please focus on other issues we have right now,

Guys, this issue has very low priority. Please focus on other issues we have right now,

that's ok
probably i'm going to fix garbage collector issue...

@b00f @Ja7ad
https://github.com/gorilla/mux are not in archive mode and it found new maintainers, so we can just update mux with new updates!
I'm going to close this issue.

Good news for us.


Fix issues

Fix #137, #124, #121, #130

ignore cases (for all commands)
remove multiple spaces when parsing (for adding and editing)
today keyword is now case insensitive

LGTM!


fix: fix readiness probes

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

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

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
8445

Relevant Lines:
9176

💛  - Coveralls


Fix bug in cairo tests (test_u256_div_mod_n)

This PR fixes the bug reported in https://github.com/lambdaclass/cairo_native/issues/472
The issue was a problem with the nz function.
It was an issue with the usage of .unwrap() in cases where it failed and with the Display and Debug traits on that function.
I did modify the implementation of that function and seems to be working now.
Checklist

[X] Linked to Github Issue
[X] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.

Screenshots

@edg-l feel free to review this PR now

A few comments:

The logic doesn't look essentially different to me. unwrap panics on None, and the match panics on None.
I'm not sure the original but was in the nz function. The comment seems to point to the assert failing (note the message it reports) rather than the nz call, which happens before that. How did you reach the conclusion the issue was with nz?
Did you try to confirm the issue before changing nz? Maybe the comment and the #[ignore] were obsolete and the current logic worked correctly, and that's why the newer version doing essentially the same thing also works.

Nevermind 3, the test is still failing: https://github.com/lambdaclass/cairo_native/actions/runs/8413665899/job/23056870188?pr=498#step:11:5547

A few comments:

The logic doesn't look essentially different to me. unwrap panics on None, and the match panics on None.
I'm not sure the original bug was in the nz function. The comment seems to point to the assert failing (note the message it reports) rather than the nz call, which happens before that. How did you reach the conclusion the issue was with nz?
Did you try to confirm the issue before changing nz? Maybe the comment and the #[ignore] were obsolete and the current logic worked correctly, and that's why the newer version doing essentially the same thing also works.

A few comments:

The logic doesn't look essentially different to me. unwrap panics on None, and the match panics on None.
I'm not sure the original bug was in the nz function. The comment seems to point to the assert failing (note the message it reports) rather than the nz call, which happens before that. How did you reach the conclusion the issue was with nz?
Did you try to confirm the issue before changing nz? Maybe the comment and the #[ignore] were obsolete and the current logic worked correctly, and that's why the newer version doing essentially the same thing also works.

Hi @Oppen
So, let me walk you through my journey
The first thing I noticed was that assert panics if the == condition is not met, so if the result of u256_div_mod_n is not equal to the Some::Option value, then it will panic. For that reason, and for debugging purposes I decided to replace assert with assert!
Then using assert! on that specific test it panicked again but at least this time wasn't because of the logic that we have in corelib/src/lib.cairo -> assert  (when the condition is not met)
Here's the panic error of assert!
failures:
   math_test::math_test::test_u256_div_mod_n - Panicked with "assertion failed: `math::u256_div_mod_n(6, 2, nz(7)) == Option::Some(3)`."

It wasn't still clear to me what the issue was so decided to look into the test_u256_div_mod_n function implementation but could find anything there.
I still needed to debug so I decided to take a look at the nz function
I need to print values there so I modified the function to look like this
// Helper for making a non-zero value.
fn nz<N, +TryInto<N, NonZero<N>>, +Copy<N>, +Display<N>, +Drop<N>, +Debug<N>>(n: N) -> NonZero<N>{
    let value = n.try_into();
    println!("value after try_into: {:?}", value);
    let value2 = value.unwrap();
    value2
}

and that's where I saw this error message
math_test::math_test::test_u256_div_mod_n - Panicked with 0x526573756c743a3a756e77726170206661696c65642e ('Result::unwrap failed.')

I thought I was making progress and the issue was with the unwrap  method.
That's why I decided to come up with a new implementation of nz
For some reason after that the tests passed
Here's a recent screenshot of all the math_test.cairo tests passing so that could mean that the error happens when we run all the tests only OR that it randomly happens

So that was basically my process.
But since the test still failing and revisiting this again, the Result::unwrap failed. could have been an error in the println! that I added to nz which made me think the problem was that one.
At this point, I'm realizing it does not make sense and the issue has to be somewhere else.
I'll continue researching and trying it and see if I can fix it
What still not clear to me is why is it that the tests pass sometimes
Please let me know if you have any suggestion or comment about this

I even changed the math function signature to accept u256 and not a NonZero<u256> and after debugging it tells me that the result should be Option::Some(1)

But when I run the test with the following:
assert!(math::u256_div_mod_n(6, 2, 7) == Option::Some(1));

it panics again
failures:
   math_test::math_test::test_u256_div_mod_n - Panicked with 0x526573756c743a3a756e77726170206661696c65642e ('Result::unwrap failed.').

The test must not be changed, it's taken from the corelib tests, so if it doesn't pass it's an error we must fix on native, not adapt the test for it to pass.

The test must not be changed, it's taken from the corelib tests, so if it doesn't pass it's an error we must fix on native, not adapt the test for it to pass.

@edg-l That's something that I noticed this past weekend. The issue seems to be on the math.cairo file
I've been studying more about Cairo and testing different things to see if I can get this done this week at most.
If some of you have some time to answer a few questions please let me know.

HI guys @edg-l @Oppen @azteca1998
I wanted to share that after many hours of study, reading the code multiple times, and debugging many functions I found out that the problem seems to be on the u256_inv_mod function in the math.cairo file.
I did change the logic of that function locally and seems like I made it work.
I made use of another function that we have on the same file to find the inverse of a modulo n named inv_mod.
Now, since this file (math.cairo) is part of the core Cairo code I don't know how to proceed 😅 .
I would appreciate some guidance, comments (because that might not be the best approach), and help.
Please let me know if the change makes sense and If I have to proceed and apply the change to the core Cairo lib.
Thanks

Hello, and thanks for your time.
Those tests are passing when ran through the VM, which is our reference implementation and therefore considered the correct behaviour. Cairo native must match that behaviour. The fact that the same code executed with Cairo Native makes the test fail means that we have a bug, which is what this issue is for. Ideally, everything that works in the VM should work here too.
Regardless of whether the corelib is correct or not we're not the ones in charge of that. We cannot accept changes made there because those files aren't ours, they're from the Cairo language's standard library (corelib).

Hello, and thanks for your time.
Those tests are passing when ran through the VM, which is our reference implementation and therefore considered the correct behaviour. Cairo native must match that behaviour. The fact that the same code executed with Cairo Native makes the test fail means that we have a bug, which is what this issue is for. Ideally, everything that works in the VM should work here too.
Regardless of whether the corelib is correct or not we're not the ones in charge of that. We cannot accept changes made there because those files aren't ours, they're from the Cairo language's standard library (corelib).

Hi @azteca1998
Ok knowing that makes sense what I mentioned before and seems like the issue is here
https://github.com/lambdaclass/cairo_native/blob/main/src/libfuncs/uint256.rs#L656
And you are right, the corelib is something different and I shouldn't focus on that
I just wanted to share that a change there made the tests pass but was more a comment to point out that the real problem was u256_guarantee_inv_mod_n
I'm trying to add tests to refactor the build_u256_guarantee_inv_mod_n function in the libfuncs and fix the issue

I think https://github.com/lambdaclass/cairo_native/pull/569 solves the u256_guarantee_inv_mod_n issue.

I think #569 solves the u256_guarantee_inv_mod_n issue.

Hi @tcoratger
Let me check a few other scenarios but you are right, seems like it fixes the issue 🎉

This is already fixed in main by another pr, closing this, but thanks for your time!


Update plugin-images.md to include IACMOpentofuTag

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description
The docs for updating the execution config for IaC custom images was lacking the option to set it for Tofu based pipelines.
Tested in my own account.

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

 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.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6682c6bffef90d2e555d7084--harness-developer.netlify.app


Fixed an issue where some behavior packs could not be loaded.

Description

By changing the module type javascript to script, the issue that some add-ons cannot be loaded.
Motivation and Context

Starting with 1.19, the module type javascript was removed and script was added instead.
1.19 ChangeLog
As a result, behavior packs containing GameTest created for 1.19 and later can no longer be loaded.
This pull request fixes this issue.
Screenshots (if appropriate):
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)

Checklist:

[x] My code follows the code style of this project.
[x] I have tested my changes and confirmed that they are working

You're right.
thanks for your contribution


Tuya Siren TS0601 by _TZE204_hcxvyxa5

Problem description
Hi, i have this new tuya siren. Is it possible to add support to it to ZHA?
It is a cheap and small siren but for its size loud.
TS0601 by _TZE204_hcxvyxa5
Solution description
A quirk? Or a normal implementation?
I do not know how to make a quirk.
Screenshots/Video
Screenshots/Video
[Paste/upload your media here]

![-1494153273-1897807682](https://github.com/zigpy/zha-device-handlers/assets/99689761/e812b55f-df92-4c41-8e61-895c4fd6dec0)
Device signature
Device signature
[Paste the device signature here]

Diagnostic information
Diagnostic information
[Paste the diagnostic information here]

Logs
Logs
[Paste the logs here]

Custom quirk
Custom quirk
[Paste your custom quirk here]

Additional information
No response

Same as issue #3255
However more information provided the other device request

Working!
At first, I enabled custom quirks in the configuration.yaml in home assistant because I didn't want to wait for the :main update
zha:    enable_quirks: true    custom_quirks_path: /config/zha_quirks/
Then I downloaded the custom quirk:
➜  zha_quirks wget https://raw.githubusercontent.com/zigpy/zha-device-handlers/5c993588c79b7708f9ecfc8ad893df6e51d97924/zhaquirks/tuya/ts0601_siren.py
I rebooted, removed and added the  _TZE204_hcxvyxa5 device.
Now the device has a switch. If turned on, the device makes a siren noise for ~500ms and turns off again,
Trough "manage zigbee device" I could change some settings by choosing cluster "TuyaMCUSiren" through the attributes

alarm_duration (id: 0x0267) sets the alarm duration in seconds.
The volume can be changed trough volume (id: 0x0474) by setting the value to 0(low) , 1(medium) or to 2(high)
The melody can be set trough melody (id: 0x0466) where the value can be from 0 36 (37 seems to be a duplicate with 0) which varies from classical songs like "Für Elise" (24) to notification ish/doorbell sounds (11) to the three alarm siren sounds (0-2) where 0 is the most alarm one, but they really have a big cheap toy vibe 👶

Melody (dropdown-menu), volume (dropdown-menu) and duration (slider) should be added to the GUI, so everyone can access it.
Thanks for the quick implementation! ✅


[Feature Request] Be able to disable wordwrap on minified code

Context

[X] This issue is not a bug report. (please use a different template for reporting a bug)
[X] This issue is not a duplicate of an existing issue. (please use the search to find existing issues)

Description
I would like to disable wordwrap for minified code but there doesn't seem to be an option to do so via the Editor. Using the option wordWrapMinified as shown in this playground has no effect.
When calling getLayoutInfo(), isWordWrapMinified is returning true

I took a quick look into vscode codebase.
I found that wordWrapMinified is defined and computed in EditorLayoutInfo but never used in anywhere else.
It was introduced in 2017 and now not used. Maybe this option is unnecessary now. (cc: @alexdima)

Oh, in which case how would you prevent wordwrap on minified code? 😅

Unfortunetely, there is no chance in current codebase.

The same question is asked in vscode too and never resolved...
https://github.com/microsoft/vscode/issues/119947

That's a shame, I wonder why it has to be a separate option 🤔

You can use the option wordWrapOverride1: 'off'.


moarvm: 2020.02 -> 2020.02.1

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/moarvm/versions.
meta.description for moarvm is: "VM with adaptive optimization and JIT compilation, built for Rakudo"
meta.homepage for moarvm is: "https://www.moarvm.org/"

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 2020.02.1 with grep in /nix/store/dz1yjl6sqgv3pcrqazwcmw15yir1m2hz-moarvm-2020.02.1

directory tree listing: https://gist.github.com/8ee92cb7a2c2fb0fd278d775924a6f8d

du listing: https://gist.github.com/bb5ac1cf418fd65cb41aa53886656928

Rebuild report (if merged into master) (click to expand)

16 total rebuild path(s)
4 package rebuild(s)
4 x86_64-linux rebuild(s)
4 i686-linux rebuild(s)
4 x86_64-darwin rebuild(s)
4 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
moarvm
nqp
rakudo
zef

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/dz1yjl6sqgv3pcrqazwcmw15yir1m2hz-moarvm-2020.02.1 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A moarvm https://github.com/r-ryantm/nixpkgs/archive/fabf99814e693e9a94b854c293286ce3154d7863.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/dz1yjl6sqgv3pcrqazwcmw15yir1m2hz-moarvm-2020.02.1
ls -la /nix/store/dz1yjl6sqgv3pcrqazwcmw15yir1m2hz-moarvm-2020.02.1/bin

cc @thoughtpolice @vrthra @stigtsp for testing.

rakudo, moarvm and nqp should be bumped together. i've updated them in #81821


Fix typing in textarea

Keyboard shortcuts interfere when typing inside textarea and certain characters can't be written.
Repro: Tap UI with textarea, focus the textarea and try to type "e y h j k l v".
(tap>
 (with-meta
   [:textarea]
   {:portal.viewer/default :portal.viewer/hiccup}))

I noticed it works correctly for text inputs, it looks like there is a code detection when inputting text to disable matching shortcuts.
This PR also adds textarea to be detected.

Thanks for the fix @dundalek!


Create a video explaining the best practices for media upload

Reserved for GCI Students
Summary:
Commons Android App is an open-source project which lets users contribute to Wikimedia by uploading media directly from their Android phone. Certain best practices need to be followed while you contribute. Often first-time contributors don't know about them and end uploading photos that might violate the policies. Your task is to create a video that demonstrates the best practices with the help of examples.
You have 4 days to complete this task. See the GCI task.

A few policies that you can remind about in your video:

Only upload pictures that you have taken yourself. Not pictures you have downloaded from the web, or screenshots.
Do not upload selfies. Rather, upload pictures of things that are relevant for an encyclopedia, such as a public building, a mountain, a river, a local tool or dish.
Do not upload pictures of your friends. Pictures of persons who already have a Wikipedia article are also very welcome.

@nicolas-raoul A student recently submitted a video, please let us know your feedback.

@madhurgupta10 Could you please link to the video, or add me as a mentor to the video task? Thanks :-)

@nicolas-raoul Added you as mentor.

@madhurgupta10 Thanks!

Youtube video at https://codein.withgoogle.com/dashboard/task-instances/5176651416076288/ : Introduce how to install the app (not required but why not), what pictures not to upload, what pictures are OK to upload. Not super high quality but the main points are there, I suggest approving.
MP4 at https://codein.withgoogle.com/dashboard/task-instances/5393129109192704/ : The tips are well understood and illustrated nicely. Uses commercial music and photos, but we had no rules about that (maybe add a rule that the video must be released under an open license?). Ironically the video itself is in portrait mode haha... Maybe add a requirement on the video format? I suggest approving this one too.

It is nice to see people contributing in various different styles.

@nicolas-raoul Thanks, I shared the feedback with them.
At:  https://codein.withgoogle.com/dashboard/task-instances/5393129109192704/
Already submitted the video with the changes and uploaded it to youtube. To change the orientation he needed to do it all over again so I think we can skip it. I think we are good to approve this one now.
https://www.youtube.com/watch?v=QsyjjuEOo8w&feature=youtu.be

@nicolas-raoul Other student At https://codein.withgoogle.com/dashboard/task-instances/5176651416076288/ Also completed.
@misaochan We can promote the videos on social media channels :)
https://youtu.be/3uMI8VGRKCQ

Nice, the audio is much better.
On Wed, 18 Dec 2019, 01:27 Madhur Gupta<EMAIL_ADDRESS>wrote:

@nicolas-raoul https://github.com/nicolas-raoul Other student At
https://codein.withgoogle.com/dashboard/task-instances/5176651416076288/
Also completed.
@misaochan https://github.com/misaochan We can promote the videos on
social media channels :)
https://youtu.be/3uMI8VGRKCQ
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/commons-app/apps-android-commons/issues/3259?email_source=notifications&email_token=AAAYKBRF75HKOSXI66ILOOTQZD4WNA5CNFSM4JUFTCTKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHDDXJA#issuecomment-566639524,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAYKBUVAONERKEUWCXEQZ3QZD4WNANCNFSM4JUFTCTA
.

@nicolas-raoul Other student At https://codein.withgoogle.com/dashboard/task-instances/5176651416076288/ Also completed.
@misaochan We can promote the videos on social media channels :)
https://youtu.be/3uMI8VGRKCQ

Awesome! Is there a way to get a compilation of all of them? A playlist or something?

@misaochan not as of now 😕
Here are the links to both.

https://www.youtube.com/watch?v=QsyjjuEOo8w&feature=youtu.be
https://youtu.be/3uMI8VGRKCQ

@apap04 I think we can close this now!

@apap04 I think we can close this now!

closed :)


URL, is it possible to..

... get it to work on: https://www.unibet.dk/betting#bethistory/detail/893039304 <-- last numbers are random but looks like that - but I dont want to have it on this url: https://www.unibet.dk/betting#bethistory - is it possible?

it's possible to do this via the options page.


Monokle alerts when an update is available

Describe the enhancement you'd like to see
As a user, I'd like to see an indicator that there's a new version for Monokle ready to be installed - it was downloaded in the background. Pretty much like Spotify or Chrome.
Another issue, is that after the auto update is executed, a pop up warns me to install, but this is not possible, actually a restart is needed since the patch has been applied already and there is no need from the user to install it
##Acceptance criteria

[ ] I can see (blue dot or akin) there is an update when Monokle is open
[ ] After I restart Monokle, the update is applied

Per UX discussion, we provide a floating popup that informs the user they can enjoy a new version

Restart CTA installs new version and restarts right away
dismissing the message: the update would be installed anyway the next time the user starts the app.

Figma file: https://www.figma.com/file/Ec6B8EsjP2yfrgViPRRGwh/%231397---restarting-Monokle-to-install-new-version?node-id=2%3A9421


fix(twitter): misc, support shinigami eyes extension

@watatomo is this ready for review?

 Closing this for now.

Updated to that last commit I mentioned so the diff is clearer.


Render with params

This PR resolves #75.
In #78, I've introduced new render function that takes extra template variables specified by String-like variable name.
This PR add another ScopeM () constructor named fromParams which takes parameters list (:: [(Text, Text)]).
The commit f77d5861ac62257fa5bce18e8291f02c8729fec6 actually rewrites codes with fromParams.
@cdepillabout
Is this what you intended?

@arowM This looks good!  Thanks!


Report Grid: small list enhancements

Description

[ ] List of grids should be sorted
[ ] "Add new grid" button should always be visible (i.e. move to be outside of list)

Resourcing
We intend to contribute this feature

Possible do this together with #6216


How did you manage to declare two "CMD" in a single Dockerfile?

Your dockerfile
https://github.com/docker/awesome-compose/blob/e3ea3e9044dcae2ed409665d29434fa53a5a2198/sparkjava-mysql/backend/Dockerfile#L25
https://github.com/docker/awesome-compose/blob/e3ea3e9044dcae2ed409665d29434fa53a5a2198/sparkjava-mysql/backend/Dockerfile#L31
Problem / Question:

On both line 25, and line 31 has "CMD" commands.
But from Official Documentation we know that:

There can only be one CMD instruction in a Dockerfile. If you list more than one CMD then only the last CMD will take effect Reference Dockerfile for #CMD

So, what is actually happening in this case?

You are correct that a container image can have only one defined CMD. Therefore, when a second is specified, it replaces the previously defined value.
This case is a little different because the Dockerfile has multiple stages (the multiple FROM statements). The first CMD is for the stage named dev-env while the second is for the final stage.
Why would you do something like this? There are times in which you might want to build or target a container image, but only end at a specific stage. This particular project isn't doing that at the moment though (which maybe it should!).
I do this quite often in development environments where an intermediate stage might be watching for code changes and rebuilding my app, while the final stage is production ready. Using this approach, you can have everything defined within a single Dockerfile. Make sense?

That makes sense !
Thank you for explaining this so well.

Why u start app in production instance like a developmen, with manage.py runserver? Need to use uwsgi or gunicorn for production.


Official declaration of "I'm not done" and starting of crowd bypass service

join here https://github.com/FastForwardTeam/FastForward/tree/crowd#readme

https://github.com/Sainan/Universal-Bypass/issues/1951

lol

is this beta version? and still can get update?
thanks before

@FinderID The beta has ended and we have started rolling out crowd bypass to everyone. Please switch to the latest stable version here: https://github.com/FastForwardTeam/FastForward#readme

thank you @NotAProton


Get ffmpeg file output size

Version information

fluent-ffmpeg version: 2.1.2
ffmpeg version: 3.3.2
OS: Mac OS

Code to reproduce
ffmpeg(link)
.audioCodec('libmp3lame')
.audioBitrate(320)
.format('mp3')
.on('error', function (err) {
     console.log('An error occurred: ' + err.message);
})
.on('end', function () {
     console.log('Processing finished !');
})

I'm trying to transform a webm audio file to mp3, and stream it on my website.
Everything works fine, but I cannot use Range Partial Requests (206):
https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
Because I don't know output size of mp3 file, so I can't set Content-Length header.
Is there a way to get expected file size before it transforms webm?
I can get webm metadata, so I could see duration, bitrate, size, etc. Should I try to calculate expected file size manually? What formula should it be?

@njoyard I saw your other replies, you kinda mentioned this Partial Request thing. Do you have any ideas?
Also, on line 1: ffmpeg(link), we are basically creating a readable stream right?
Can I do something like ffmpeg(link, { start: start, end: end })? Again for Range request. I'm referring to https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options

https://superuser.com/questions/349590/how-can-i-find-out-how-big-my-encoded-file-will-be
According to article above, you cannot know the output size of a file.
The best bet would be calculating approximate file output size by using this (very generalized) formula:
x = length of song in seconds
y = bitrate in kilobits per second
In my case, I'm using y = 320Kbps
I know length of webm file x = 3:00 == 180 seconds
320 * 180 = 57.6 Mb
Of course, final size might be off by couple hundred bytes, but this approximation is enough for my needs on Content-Length header.


firebase-auth-manager _user initialization

In firebase-auth-manager, the property _user is automatically set to an empty object:
_user: {
  type: Object,
  value: function() { return {}; }
},

Now, the property _profileLocation is defined as the following:
_profileLocation: {
  type: String,
  computed: '_computeProfileLocation(location,_user)',
  value: ""
},

And the function _computeProfileLocation is defined as the following:
_computeProfileLocation: function(location,user) {
  if (user) {
    return [location, 'profile', user.uid].join('/');
  } else {
    return "";
  }
},

Because _user is initialized to an empty object, the statement if (user) always passes and a query is attempted to the following document location:
https://<FIREBASE>.firebaseio.com/profile

Once the user object is updated by firebase-auth, another query is attempted to the following location:
https://<FIREBASE>.firebaseio.com/profile/<user.uid>

I presume this is not the intended behavior, so either the _user variable should be initialized to null, or the if statement should be if(user && user.uid).
If this is the intended behavior, I'd be interested to know why :)

let me check that! :)

this was just a bug! Pushing the correction!


[external test] Compile and link 1.1.1 command line app against the master headers and library

From point 2 of the Technical Items still to be done list:
Compile and link 1.1.1 command line app against the master headers and library.
Run 1.1.1 app test cases against the chimera.
Treat this as an external test using a special 1.1.1 branch.

These items are blocking building 1.1.1 apps with 3.0:
OCSP_REQ_CTX_new API has changed between 1.1.1 and 3.0 - Issue 13873
1.1.1 - prototype is OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline);
3.0 - define has 8 args instead of two: #   define OCSP_REQ_CTX_new(wb, rb, m, ml, mrl, t, ect, ea)
OSSL_HTTP_REQ_CTX_new(wb, rb, m, ml, mrl, t, ect, ea)
OCSP_REQ_CTX_http API has changed between 1.1.1 and 3.0 - Issue 13873
1.1.1 - prototype is int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path)
3.0 - define has four parameters: #   define OCSP_REQ_CTX_http(r, s, po, pa)
OSSL_HTTP_REQ_CTX_header(r, s, po, pa)
X509_http_nbio - docs in 3.0 are incorrect
1.1.1 - prototype is int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
3.0 - define is # define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)
X509_CRL_http_nbio not defined but is mentioned in doc/man3/X509_load_http.pod as a define having only one param instead of two
1.1.1 - prototype is int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
3.0 - define is # define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL,  NULL, 0)
TLS_CT_GOST12_SIGN is missing from 3.0
TLSEXT_TYPE_heartbeat is missing from 3.0

These items are blocking building 1.1.1 apps with 3.0:
OCSP_REQ_CTX_new API has changed between 1.1.1 and 3.0 - Issue 13873
1.1.1 - prototype is OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline);
3.0 - define has 8 args instead of two: #   define OCSP_REQ_CTX_new(wb, rb, m, ml, mrl, t, ect, ea)
OSSL_HTTP_REQ_CTX_new(wb, rb, m, ml, mrl, t, ect, ea)
OCSP_REQ_CTX_http API has changed between 1.1.1 and 3.0 - Issue 13873
1.1.1 - prototype is int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path)
3.0 - define has four parameters: #   define OCSP_REQ_CTX_http(r, s, po, pa)
OSSL_HTTP_REQ_CTX_header(r, s, po, pa)
X509_http_nbio - docs in 3.0 are incorrect
1.1.1 - prototype is int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
3.0 - define is # define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)
X509_CRL_http_nbio not defined but is mentioned in doc/man3/X509_load_http.pod as a define having only one param instead of two
1.1.1 - prototype is int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
3.0 - define is # define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL,  NULL, 0)
TLS_CT_GOST12_SIGN is missing from 3.0
TLSEXT_TYPE_heartbeat is missing from 3.0

TLS_CT_GOST12_SIGN is TLS_CT_GOST12_LEGACY_SIGN in 3.0.0

TLS_CT_GOST12_SIGN is TLS_CT_GOST12_LEGACY_SIGN in 3.0.0

X509_http_nbio - docs in 3.0 are incorrect
1.1.1 - prototype is int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
3.0 - define is # define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)

X509_CRL_http_nbio not defined but is mentioned in doc/man3/X509_load_http.pod as a define having only one param instead of two
1.1.1 - prototype is int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
3.0 - define is # define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL, NULL, 0)

Sorry for these - fix for them is in #13960.

X509_http_nbio - docs in 3.0 are incorrect
1.1.1 - prototype is int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
3.0 - define is # define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)

X509_CRL_http_nbio not defined but is mentioned in doc/man3/X509_load_http.pod as a define having only one param instead of two
1.1.1 - prototype is int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
3.0 - define is # define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL, NULL, 0)

Sorry for these - fix for them is in #13960.

Clone openssl 3.0 and build (I cloned to openssl)
Clone openssl 1.1.1 and build (I cloned to openssl_1_1_1)
cd to the openssl 1.1.1 top level directory
Create a folder named test_apps_3 or choose any name.
Copy the script below to the folder.
Run the script.
Copy test_apps_3/bin/openssl to apps/openssl
cd to top of the openssl 1.1.1 build directory.
You need to set OPENSSL_REGRESSION= path to the openssl 3 clone. You must not use a relative path.
You should be able to run OPENSSL_REGRESSION=path_to_openssl util/shlib_wrap.sh apps/openssl version
You can now run
OPENSSL_REGRESSION=../openssl make TESTS=25 test and other tests
You may run the script with --clean to clean the test folder you created
You may run the script with --preprocess to only preprocess the source files.  .pp files will be in the bin folder.
Use this script to build apps/openssl in an openssl 1.1.1 clone:

USEABORT=1
abort() {
	echo $1
	[ $USEABORT = "1" ] &&  exit 1
}

BUILD_MODE="-c"
BUILD_OUTPUT_TYPE="o"
DO_CLEAN=0
DO_INSTALL=0

OSSL=/usr/local/openssl3
SRCAPPDIR=../../openssl_1_1_1/apps
TESTDIR=`pwd`
BINDIR="$TESTDIR"/bin
APPDIR="$TESTDIR"/apps
SKIPFILES=""

OPT_INCLUDE="-I./include -I$APPDIR -I$OSSL/include -I$OSSL/include/openssl -I$APPDIR/include"
OPT_DEFINES="-DOPENSSL_NO_HEARTBEATS -DOPENSSL_NO_OCSP -DOPENSSL_UNISTD=<stdlib.h> -DOPENSSL_BUILDING_OPENSSL -D_REENTRANT -DLIST_SEPARATOR_CHAR=';'"

OBJ=""
LIBSRC="app_rand.c apps.c bf_prefix.c opt.c s_cb.c s_socket.c"
#
# left out ocsp.c
APPSRC="asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c genpkey.c genrsa.c nseq.c openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c pkeyutl.c prime.c rand.c rehash.c req.c rsa.c rsautl.c s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c srp.c storeutl.c ts.c verify.c version.c x509.c"

dobuild() {
	if [ ! -f "$BINDIR"/$1.$BUILD_OUTPUT_TYPE ]; then
		DOBUILD=1
	elif [ "$BINDIR"/$1.$BUILD_OUTPUT_TYPE -ot "$APPDIR"/$1.c ]; then
		DOBUILD=1
	else
		DOBUILD=0
	fi
}

# start here

for i
do
 case "$i" in
 	--clean) DO_CLEAN=1;;
 	--install) DO_INSTALL=1;;
	--preprocess) BUILD_MODE="-E"; BUILD_OUTPUT_TYPE="pp";;
	--noabort) USEABORT=0;;
	--skip)
		SKIPFILES="$SKIPFILES $2"
 esac
 shift
done

if [ $DO_CLEAN = '1' ]; then
	rm -rf "$BINDIR"
	rm -rf "$APPDIR"
fi
if [ ! -d "$BINDIR" ]; then
	mkdir -p "$BINDIR"
fi
if [ ! -d "$APPDIR" ]; then
	mkdir -p "$APPDIR"
	(cd "$SRCAPPDIR"; tar cf - .) | (cd "$APPDIR"; tar xf -)
fi

#[ -f "$APPDIR"/progs.pl ] && (cd ..; perl "$APPDIR"/progs.pl $APPSRC >"$APPDIR"/progs.h ) || abort "Can't make progs.h"

for src in $APPSRC
do
	echo $SKIPFILES | grep --quiet "$src" || {
		echo $src
		FN=$(basename $src .c)
		dobuild $FN
		echo $DOBUILD, $FN
		if [ $DOBUILD = 1 ] ; then
			set -x
			cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c" }
			unset x
		fi
		OBJ="$OBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	}
done

LIBOBJ=""
for src in $LIBSRC
do
	echo $SKIPFILES | grep --quiet "$src" || {
		echo $src
		FN=$(basename $src .c)
		if [ "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE -ot "$APPDIR"/$FN.c ]; then
			set -x
			cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c"
			unset x
		fi
		LIBOBJ="$LIBOBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	}
done
if [ "x$LIBOBJ" != x ]; then
	ar r bin/libapps.a $LIBOBJ
fi

# build stubs
if [ -d "$TESTDIR"/stubs ]; then
	for src in "$TESTDIR"/stubs/*.c
	do
		echo $src
		FN=$(basename $src .c)
		set -x
		cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c"
		unset x
		OBJ="$OBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	done
fi

if [ $BUILD_OUTPUT_TYPE = "o" ]; then
	cc -o "$BINDIR"/openssl $OBJ "$BINDIR"/libapps.a "$OSSL"/lib/libssl.3.dylib "$OSSL"/lib/libcrypto.3.dylib
	if [ x$DO_INSTALL = x1 ]; then
		rm "$SRCAPPDIR"/openssl
		cp "$BINDIR"/openssl "$SRCAPPDIR"/openssl
	fi
fi

Clone openssl 3.0 and build (I cloned to openssl)
Clone openssl 1.1.1 and build (I cloned to openssl_1_1_1)
cd to the openssl 1.1.1 top level directory
Create a folder named test_apps_3 or choose any name.
Copy the script below to the folder.
Run the script.
Copy test_apps_3/bin/openssl to apps/openssl
cd to top of the openssl 1.1.1 build directory.
You need to set OPENSSL_REGRESSION= path to the openssl 3 clone. You must not use a relative path.
You should be able to run OPENSSL_REGRESSION=path_to_openssl util/shlib_wrap.sh apps/openssl version
You can now run
OPENSSL_REGRESSION=../openssl make TESTS=25 test and other tests
You may run the script with --clean to clean the test folder you created
You may run the script with --preprocess to only preprocess the source files.  .pp files will be in the bin folder.
Use this script to build apps/openssl in an openssl 1.1.1 clone:

USEABORT=1
abort() {
	echo $1
	[ $USEABORT = "1" ] &&  exit 1
}

BUILD_MODE="-c"
BUILD_OUTPUT_TYPE="o"
DO_CLEAN=0
DO_INSTALL=0

OSSL=/usr/local/openssl3
SRCAPPDIR=../../openssl_1_1_1/apps
TESTDIR=`pwd`
BINDIR="$TESTDIR"/bin
APPDIR="$TESTDIR"/apps
SKIPFILES=""

OPT_INCLUDE="-I./include -I$APPDIR -I$OSSL/include -I$OSSL/include/openssl -I$APPDIR/include"
OPT_DEFINES="-DOPENSSL_NO_HEARTBEATS -DOPENSSL_NO_OCSP -DOPENSSL_UNISTD=<stdlib.h> -DOPENSSL_BUILDING_OPENSSL -D_REENTRANT -DLIST_SEPARATOR_CHAR=';'"

OBJ=""
LIBSRC="app_rand.c apps.c bf_prefix.c opt.c s_cb.c s_socket.c"
#
# left out ocsp.c
APPSRC="asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c genpkey.c genrsa.c nseq.c openssl.c passwd.c pkcs12.c pkcs7.c pkcs8.c pkey.c pkeyparam.c pkeyutl.c prime.c rand.c rehash.c req.c rsa.c rsautl.c s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c srp.c storeutl.c ts.c verify.c version.c x509.c"

dobuild() {
	if [ ! -f "$BINDIR"/$1.$BUILD_OUTPUT_TYPE ]; then
		DOBUILD=1
	elif [ "$BINDIR"/$1.$BUILD_OUTPUT_TYPE -ot "$APPDIR"/$1.c ]; then
		DOBUILD=1
	else
		DOBUILD=0
	fi
}

# start here

for i
do
 case "$i" in
 	--clean) DO_CLEAN=1;;
 	--install) DO_INSTALL=1;;
	--preprocess) BUILD_MODE="-E"; BUILD_OUTPUT_TYPE="pp";;
	--noabort) USEABORT=0;;
	--skip)
		SKIPFILES="$SKIPFILES $2"
 esac
 shift
done

if [ $DO_CLEAN = '1' ]; then
	rm -rf "$BINDIR"
	rm -rf "$APPDIR"
fi
if [ ! -d "$BINDIR" ]; then
	mkdir -p "$BINDIR"
fi
if [ ! -d "$APPDIR" ]; then
	mkdir -p "$APPDIR"
	(cd "$SRCAPPDIR"; tar cf - .) | (cd "$APPDIR"; tar xf -)
fi

#[ -f "$APPDIR"/progs.pl ] && (cd ..; perl "$APPDIR"/progs.pl $APPSRC >"$APPDIR"/progs.h ) || abort "Can't make progs.h"

for src in $APPSRC
do
	echo $SKIPFILES | grep --quiet "$src" || {
		echo $src
		FN=$(basename $src .c)
		dobuild $FN
		echo $DOBUILD, $FN
		if [ $DOBUILD = 1 ] ; then
			set -x
			cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c" }
			unset x
		fi
		OBJ="$OBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	}
done

LIBOBJ=""
for src in $LIBSRC
do
	echo $SKIPFILES | grep --quiet "$src" || {
		echo $src
		FN=$(basename $src .c)
		if [ "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE -ot "$APPDIR"/$FN.c ]; then
			set -x
			cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c"
			unset x
		fi
		LIBOBJ="$LIBOBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	}
done
if [ "x$LIBOBJ" != x ]; then
	ar r bin/libapps.a $LIBOBJ
fi

# build stubs
if [ -d "$TESTDIR"/stubs ]; then
	for src in "$TESTDIR"/stubs/*.c
	do
		echo $src
		FN=$(basename $src .c)
		set -x
		cc  $OPT_INCLUDE -arch x86_64 $BUILD_MODE -Wall -g -O0 $OPT_DEFINES -o "$BINDIR"/$FN.$BUILD_OUTPUT_TYPE "$APPDIR"/$FN.c || abort "compile failed for $FN.c"
		unset x
		OBJ="$OBJ $BINDIR/$FN.$BUILD_OUTPUT_TYPE"
	done
fi

if [ $BUILD_OUTPUT_TYPE = "o" ]; then
	cc -o "$BINDIR"/openssl $OBJ "$BINDIR"/libapps.a "$OSSL"/lib/libssl.3.dylib "$OSSL"/lib/libcrypto.3.dylib
	if [ x$DO_INSTALL = x1 ]; then
		rm "$SRCAPPDIR"/openssl
		cp "$BINDIR"/openssl "$SRCAPPDIR"/openssl
	fi
fi

@nelsonopenssl, I detect traces of MacOS/X :wink:

@nelsonopenssl, I detect traces of MacOS/X :wink:

Just a trace? I did do the work on Ubuntu. My shell coding is probably old fashioned though
Sent from my iPhone

On Jan 27, 2021, at 3:24 PM, Richard Levitte<EMAIL_ADDRESS>wrote:

@nelsonopenssl, I detect traces of MacOS/X 😉
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Just a trace? I did do the work on Ubuntu. My shell coding is probably old fashioned though
Sent from my iPhone

On Jan 27, 2021, at 3:24 PM, Richard Levitte<EMAIL_ADDRESS>wrote:

@nelsonopenssl, I detect traces of MacOS/X 😉
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Well, only MacOS/X has shared libraries called whatever.dylib :wink:

Well, only MacOS/X has shared libraries called whatever.dylib :wink:

X509_http_nbio - docs in 3.0 are incorrect
1.1.1 - prototype is int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert)
3.0 - define is # define X509_http_nbio(url) X509_load_http(url, NULL, NULL, 0)

X509_CRL_http_nbio not defined but is mentioned in doc/man3/X509_load_http.pod as a define having only one param instead of two
1.1.1 - prototype is int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl)
3.0 - define is # define X509_CRL_http_nbio(url) X509_CRL_load_http(url, NULL, NULL, 0)

Sorry for these - fix for them is in #13960.

That fix is merged now.

I have a cmake based 1.1.1-derived branch that does this, and which includes github action tests.
https://github.com/levitte/openssl/tree/EXPERIMENTAL-build-against-3.0

Closed based on the availability of @levitte's branch
Issue #14275 can be used to track fixes to the tests


"Configuring project" infinite loop

Brief Issue Summary
Selecting a kit on a project without CMakeLists.txt opens:

When the CMakeLists.txt is manually added to a subdirectory in a project and selected with "Locate", the "Configuring project: Saving open files" message is not closed and remains in an infinite loop. This loop prevents CMake extension to work correctly. "CMake: Reset CMake Tools Extension State" is needed to make it work.
Platform and Versions

Operating System: WSL2 with Ubuntu or Ubuntu via Docker container (https://github.com/train-it-eu/workshop-tools)
CMake Version: 3.19.0
VSCode Version: 1.54.1
CMake Tools Extension Version: 1.6.0
Compiler/Toolchain: GCC 10.2.0

Thank you for opening this report. We reproduce this problem and we will fix it. I am glad that you can be unblocked by a project reload.

CMake Tools 1.7.0 was released today and it contains a fix for this issue. Upgrade the extension in VSCode and let us know if you encounter any other problems.


How to avoid using transactions / Long running processes are using transactions that have expired

I've been encountering an issue where I have a long-running process that primarily only reads data and is constantly returning (BadRequestException) when calling the ExecuteStatement operation: Transaction is not found.
According to AWS: A transaction times out if there are no calls that use its transaction ID in three minutes (ref)
An example to reproduce this issue:
with aurora_data_api.connect(aurora_cluster_arn=cluster_arn, secret_arn=secret_arn, database=database) as conn:
    with conn.cursor() as cursor:
        while True:
            cursor.execute("select * from pg_catalog.pg_tables")
            print(cursor.fetchall())
            time.sleep(3 * 60 + 1)

This problem stems from the following code:
    def cursor(self):
        if self._transaction_id is None:
            res = self._client.begin_transaction(database=self._dbname,
                                                 resourceArn=self._aurora_cluster_arn,
                                                 # schema="string", TODO
                                                 secretArn=self._secret_arn)
            self._transaction_id = res["transactionId"]
        cursor = AuroraDataAPICursor(client=self._client,
                                     dbname=self._dbname,
                                     aurora_cluster_arn=self._aurora_cluster_arn,
                                     secret_arn=self._secret_arn,
                                     transaction_id=self._transaction_id)

Things to note:

I have not started any transaction and have had no requirement or need to call .commit or .rollback as I have made no changes to the database through any UPDATE or DELETE queries
Transactions are deemed as optional in the rds-data API:

As per https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/data-api.html
--transaction-id (optional) – The identifier of a transaction that was started using the begin-transaction CLI command. Specify the transaction ID of the transaction that you want to include the SQL statement in.

According to this information, there is no need to actually create and use transactions to perform database queries.
Suggestion:

Update def cursor() to NOT automatically create a transaction if one doesn't currently exist
Introduce a begin method that starts a new transaction
Users can opt to perform their database work in transactions or not.

Do my suggestions seem to be valid? I'm happy to (try to) contribute this change back.

See discussion in https://github.com/cloud-utils/sqlalchemy-aurora-data-api/issues/27.
I don't have the bandwidth to implement this; PRs (with tests/documentation) are welcome. It seems like this might be an intractable task to implement for all users of aurora-data-api (if you think otherwise, please describe/cite the semantics of how a DBAPI driver is supposed to know whether a statement requires a transaction to be started). But it appears that sqlalchemy provides an API for this, so it will be much easier to implement there.

I'm not sure why you cannot do it like this:
with aurora_data_api.connect(aurora_cluster_arn=cluster_arn, secret_arn=secret_arn, database=database) as conn:
    while True:
            with conn.cursor() as cursor:
                    cursor.execute("select * from pg_catalog.pg_tables")
                    print(cursor.fetchall())
    time.sleep(3 * 60 + 1)

After all HTTP request is sent every time anyway.


Vet clinic database: database performance audit

In this PR:-

[x] Added email as extra column to the owners table.

[x] Inserted given data.

Queries:-

[x] SELECT COUNT(*) FROM visits where animal_id = 4;
Before:-

After:-

[x] SELECT * FROM visits where vet_id = 2;
Before:-

After:-

[x] SELECT * FROM owners where email =<EMAIL_ADDRESS>Before:-

After:-

thanks
On Mon, May 8, 2023 at 1:04 PM Shubham Bhoyar @.***>
wrote:

Merged #5 https://github.com/shubhambhoyar077/vet-clinic-database/pull/5
into develop.
—
Reply to this email directly, view it on GitHub
https://github.com/shubhambhoyar077/vet-clinic-database/pull/5#event-9189637043,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZFU4Y45LVJAGD52T2YEPV3XFDONHANCNFSM6AAAAAAXZZXNOA
.
You are receiving this because you were mentioned.Message ID:
@.***
.com>


DOCS MFA authentication

See https://github.com/silverstripe/silverstripe-installer/issues/280
Merge after https://github.com/silverstripe/silverstripe-installer/pull/281

Arrrgh, damn should've checked that the other ticket was merged (it wasn't) - just gone off Serge's comment. I've reverted this via bffb7e2577e66d97fd217e5b7cb9354062c74bda

sorry @chillu, I didn't notice that, eh :/

No worries, I pressed that shiny green button, not you :)


Error or Bug? MultipleDepositAddresses

Hi guy,
i got this error when I change the RAILS_ENV from development to production. I am sorry to tag you
@yivo because I know you are the most active developer in this fork. I really appreciate if you can point out what I should do.
MultipleDepositAddresses::Currency Load (27.3ms)  SELECT  currencies.* FROM currencies WHERE currencies.type = 'coin'  ORDER BY currencies.id ASC LIMIT 1000
(0.5ms)  ROLLBACK
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
**undefined method code' for #<MultipleDepositAddresses::Currency:0x000055b34d9f1ec8>** /opt/vendor/bundle/ruby/2.5.0/gems/activemodel-4.2.10/lib/active_model/attribute_methods.rb:433:in method_missing'
/home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:15:in block (2 levels) in change' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in block (2 levels) in find_each'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in each' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in block in find_each'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:124:in find_in_batches' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:50:in find_each'
/home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:12:in block in change' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in block in transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/transaction.rb:184:in within_new_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/transactions.rb:220:in transaction' /home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:11:in change'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:608:in exec_migration' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:592:in block (2 levels) in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:591:in block in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in with_connection'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:590:in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:768:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1023:in block in execute_migration_in_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1071:in ddl_transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1022:in execute_migration_in_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:984:in block in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in each' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:823:in up' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:801:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/tasks/database_tasks.rb:139:in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/railties/databases.rake:44:in block (2 levels) in <top (required)>'
Caused by:
**NoMethodError: undefined method code' for #<MultipleDepositAddresses::Currency:0x000055b34d9f1ec8>** /opt/vendor/bundle/ruby/2.5.0/gems/activemodel-4.2.10/lib/active_model/attribute_methods.rb:433:in method_missing'
/home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:15:in block (2 levels) in change' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in block (2 levels) in find_each'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in each' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:51:in block in find_each'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:124:in find_in_batches' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/relation/batches.rb:50:in find_each'
/home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:12:in block in change' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in block in transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/transaction.rb:184:in within_new_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/transactions.rb:220:in transaction' /home/app/db/migrate/20180613140856_multiple_deposit_addresses.rb:11:in change'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:608:in exec_migration' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:592:in block (2 levels) in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:591:in block in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/connection_adapters/abstract/connection_pool.rb:292:in with_connection'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:590:in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:768:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1023:in block in execute_migration_in_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1071:in ddl_transaction'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:1022:in execute_migration_in_transaction' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:984:in block in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in each' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:980:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:823:in up' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/migration.rb:801:in migrate'
/opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/tasks/database_tasks.rb:139:in migrate' /opt/vendor/bundle/ruby/2.5.0/gems/activerecord-4.2.10/lib/active_record/railties/databases.rake:44:in block (2 levels) in <top (required)>'
Tasks: TOP => db:migrate
(See full trace by running task with --trace)

solved in #1402


Users SNBAT use autoCorrect when restoring their wallet

Expected Behavior
autoCorrect should not be usable / show up when inputting a user's backup key.
Current Behavior
autoCorrect works in certain the backup key is saved entirely in autocomplete options after manually typing it in once (using SwiftKey keyboard).  autoCorrect still shows despite having the prop disabled.
Using keyboardType="visible-password" does hide the auto complete options, but it does not work with multiline. (Backup key will be input in a single line)

See recent discussion https://celo-org.slack.com/archives/CD03BK79B/p1599751215015400


Collapsible text view on gene view freezes app

I haven't run any stack dump yet, but it appears the app deadlocks. After enough time and moving the ap into the background, the app just seems to restart.

Yikes; will look at it.

What build was this seen on? I couldn't even expand the text – the app got stuck in an infinite recursion loop introduced by this commit: https://github.com/artsy/eigen/commit/44ec4057e9b9b0131a2893be57620b91ae77568d#diff-3b2cfb2303245110984718f08dcb603d
@orta should that be calling [self openToFullHeightAnimated:YES] or something?

yup
On Mon, Jul 20, 2015 at 3:19 PM, Ash Furrow<EMAIL_ADDRESS>wrote:

What build was this seen on? I couldn't even expand the text – the app got
stuck in an infinite recursion loop introduced by this commit: 44ec405
#diff-3b2cfb2303245110984718f08dcb603d
https://github.com/artsy/eigen/commit/44ec4057e9b9b0131a2893be57620b91ae77568d#diff-3b2cfb2303245110984718f08dcb603d
@orta https://github.com/orta should that be calling [self
openToFullHeightAnimated:YES] or something?
—
Reply to this email directly or view it on GitHub
https://github.com/artsy/eigen/issues/672#issuecomment-122995575.

--
[A.]
Laura Brown
Artsy http://artsy.net/
<EMAIL_ADDRESS><EMAIL_ADDRESS>


Use of audio cache

I got the sounds from local files. I start the music using the audio cache, but I want to turn it off by clicking the same button. How can I do that.  There is no stop command in the audio cache.

Check the documentation https://github.com/luanpotter/audioplayers/blob/master/doc/audio_cache.md
You just need to call stop from the returned audio players instance

cant load the documentation page of audio cache

@abdulashifaachu
AudioCache is integrated in AudioPlayer().audioCache. You don't need to care about that anymore, only in special edge cases.
https://github.com/bluefireteam/audioplayers/blob/main/getting_started.md#audiocache


Pull Request Template Added

Issue #445 solved
Pull Request Template Added. Please review it.
@JasonDsouza212 Thank you sir for this opportunity.

@JasonDsouza212 @VenomFate-619 Please provide me with the gssoc and level 2 label for this PR.

@VenomFate-619 Please assign me gssoc and level label for this PR


"/actionList" is being fetched in an endless loop when device powered off

Happens on the v4 branch
On my BDP-S3200, only ports 50201, 50202 and 54400 are reachable when the device is powered off.
If Home Assistant is started and the device is not turned on, /actionList is being requested over and over again:
2019-04-04 19:53:50 ERROR (MainThread) [homeassistant.helpers.entity] Update for media_player.bdps3200 fails
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/connection.py", line 83, in create_connection
    raise err
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 357, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.5/http/client.py", line 1107, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python3.5/http/client.py", line 1152, in _send_request
    self.endheaders(body)
  File "/usr/lib/python3.5/http/client.py", line 1103, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python3.5/http/client.py", line 934, in _send_output
    self.send(msg)
  File "/usr/lib/python3.5/http/client.py", line 877, in send
    self.connect()
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 166, in connect
    conn = self._new_conn()
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 150, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f625afcf080>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='<IP_ADDRESS>', port=50002): Max retries exceeded with url: /actionList (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f625afcf080>: Failed to establish a new connection: [Errno 111] Connection refused',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 220, in async_update_ha_state
    await self.async_device_update()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 379, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassistant/.homeassistant/custom_components/sony/media_player.py", line 192, in update
    if not self.sonydevice.get_power_status():
  File "/srv/homeassistant/lib/python3.5/site-packages/sonyapilib/device.py", line 586, in get_power_status
    log_errors=False, raise_errors=True)
  File "/srv/homeassistant/lib/python3.5/site-packages/sonyapilib/device.py", line 421, in _send_http
    timeout=TIMEOUT)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=50002): Max retries exceeded with url: /actionList (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f625afcf080>: Failed to establish a new connection: [Errno 111] Connection refused',))
2019-04-04 19:54:01 ERROR (MainThread) [homeassistant.helpers.entity] Update for media_player.bdps3200 fails
Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/connection.py", line 83, in create_connection
    raise err
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 357, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib/python3.5/http/client.py", line 1107, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib/python3.5/http/client.py", line 1152, in _send_request
    self.endheaders(body)
  File "/usr/lib/python3.5/http/client.py", line 1103, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python3.5/http/client.py", line 934, in _send_output
    self.send(msg)
  File "/usr/lib/python3.5/http/client.py", line 877, in send
    self.connect()
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 166, in connect
    conn = self._new_conn()
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connection.py", line 150, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPConnection object at 0x7f625afaeeb8>: Failed to establish a new connection: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/srv/homeassistant/lib/python3.5/site-packages/urllib3/util/retry.py", line 388, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='<IP_ADDRESS>', port=50002): Max retries exceeded with url: /actionList (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f625afaeeb8>: Failed to establish a new connection: [Errno 111] Connection refused',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 220, in async_update_ha_state
    await self.async_device_update()
  File "/srv/homeassistant/lib/python3.5/site-packages/homeassistant/helpers/entity.py", line 379, in async_device_update
    await self.hass.async_add_executor_job(self.update)
  File "/usr/lib/python3.5/asyncio/futures.py", line 380, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.5/asyncio/tasks.py", line 304, in _wakeup
    future.result()
  File "/usr/lib/python3.5/asyncio/futures.py", line 293, in result
    raise self._exception
  File "/usr/lib/python3.5/concurrent/futures/thread.py", line 55, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/homeassistant/.homeassistant/custom_components/sony/media_player.py", line 192, in update
    if not self.sonydevice.get_power_status():
  File "/srv/homeassistant/lib/python3.5/site-packages/sonyapilib/device.py", line 586, in get_power_status
    log_errors=False, raise_errors=True)
  File "/srv/homeassistant/lib/python3.5/site-packages/sonyapilib/device.py", line 421, in _send_http
    timeout=TIMEOUT)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/api.py", line 75, in get
    return request('get', url, params=params, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/srv/homeassistant/lib/python3.5/site-packages/requests/adapters.py", line 516, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='<IP_ADDRESS>', port=50002): Max retries exceeded with url: /actionList (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f625afaeeb8>: Failed to establish a new connection: [Errno 111] Connection refused',))
[…] (repeat endlessly)

I was not able to find a service which would allow me to read the state of the device at these port.
The service I could find is http://<IP_ADDRESS>:50201/dial.xml but the content is static no matter if the device is powered or not.
The actual issue with this is that the  requests.exceptions.ConnectionError connection was not catched in _send_http.
I noticed this while writing tests and changed the catch block to the base class for the requests exceptions about an hour ago.
The endless loop comes from home assistant periodically checking if the device is online.

The version currently in your v4 branch only catches a RequestException, apparently a ConnectionError is not caught by it.

Request exception is the base for all exceptions from the requests lib which means the error is catched.
http://docs.python-requests.org/en/master/_modules/requests/exceptions/

I believe this problem exists on the current master aswell.

I do not get these stack traces when using master

Request exception is the base for all exceptions from the requests lib which means the error is catched.
http://docs.python-requests.org/en/master/_modules/requests/exceptions/
class ConnectionError(RequestException): """A Connection error occurred."""

Found the cause?
    def get_power_status(self):
        """Checks if the device is online."""
        url = self.actionlist_url
        try:
            # todo parse response
            self._send_http(url, HttpMethod.GET,
                            log_errors=False, raise_errors=True)
        except requests.exceptions.HTTPError as ex:
            _LOGGER.debug(ex)
            return False
        return True

You call _send_http() with raise_errors=True which explicitly causes it to throw stacktraces ;-)

Well that is obviously stupid. The RequestException should be catched in get_power_status aswell. Thanks :)


Ambiguous documentation for --files-without-matches

The documentation for --file-without-matches states:
-L --files-without-matches
        Only print the names of files that don't contain matches.

When I read this I interpreted it as if I could use it to list files where not of the lines in the parsed files matched my query.
However, the options parsing seems to suggest that something else happens. The code for this option in the switch statement (https://github.com/ggreer/the_silver_searcher/blob/master/src/options.c#L421) sets the invert_match option and does a fall through into the specification for the --files-with-matches option.
The output of this is unfortunately not the filenames of the files that don't contain matches, but the filenames of all files that contain at least one line that does not match the query.
Here's a gist with reproduction steps: https://gist.github.com/Frost/88f3c8d9c704d9b1520b667a2c16da4a

@Frost I think this might be a genuine defect vs incorrect documentation.
I would expect -L --files-without-matches to function similarly to grep (which acts in the way that silver searcher's documentation describes).

@mdentremont That is also my opinion. I wasn't entirely sure on what was the purpose of the feature though, so I only reported that the documentation did not describe the actual behaviour.

This is still an issue as of version 2.2.0. In addition to @Frost's observations, it appears that sometimes it performs a correct invert match and sometimes it doesn't, depending on where the pattern is located in a file. Take, for example, these 5 text files in the same directory:
test1.txt
foo

test2.txt
foo
bar
bar

test3.txt
bar
foo
bar

test4.txt
bar
bar
foo

test5.txt
foo
bar
foo

Running this:
ag -L 'foo'

Will return:
test2.txt
test4.txt
test5.txt

It works like grep's -L for test1.txt and test3.txt, but not for test2.txt, test4.txt, and test5.txt. So I think this confirms @mdentremont's suspicion that this is a bug.

Was just about to post the above when I found some good news -- the PR from @kpengboy was finally merged into master. Rebuilding ag using the latest master branch worked for me. 🙌

I'm seeing an issue which I think is basically the same this as described here:
> cat clippy.toml
# Copyright 2023 Hugo Osvaldo Barrera
#
# SPDX-License-Identifier: EUPL-1.2

doc-valid-idents = ["WebDav", "CalDav", "CardDav", ".."]
> ag -L Copyright | grep clippy.toml
clippy.toml

> ag -l Copyright | grep clippy.toml
clippy.toml

It seems that  clippy.toml is reported as both containing and not containing Copyright at the same time.

Likewise. I also see the same behavior.


week-5 readme broken link

In readme file of the week-5 link to the Huggingface quickstart tutorial is broken

The link existed in docs of Transformers versions up to 2.x.x
In the present doc, the quick start looks like a valid replacement.


Prevent parallel execution that causes multiple build to block each others files

Preview1 I assume?

@muratg I'm going to merge this because it's tiny change to fix test failure and we want to unblock builds quickly.


the errors dialog should support scrolling when there are many errors

When there are many errors, it’s not possible to see them all in the errors dialog:

We should probably do something like cap the dialog to a max height, and have the content scroll vertically if necessary.

@galeyang
Something we might also consider is whether it's even helpful to show that many issues at once. We could instead show the top XX analyzer issues and then have a line below saying there are more coming once you make a fix to one of the visible ones.

TLDR: I'm happy with the immediate proposed fix (scrollable messages as needed). We can track @RedBrogdon's note in another issue if you like.

From what I've seen in the UX study, I observed that nearly all 10 participants encountered the issue of not having a scrollbar when it's overflowing. One user specifically brought up this point.  Therefore, I think what @devoncarew suggests below is a good immediate fix.

We should probably do something like cap the dialog to a max height, and have the content scroll vertically if necessary.

For @RedBrogdon 's note, it's an interesting idea! I'm not certain on how users would react to that. But I have a question: how can we only present the most accurate, top messages?
I observed a few times that only one little thing is wrong. However, users saw so many error messages from the analyzer. For example, P10 missed the closing bracket here:

But these were messages shown up --- most messages (to me) are the "side effects" of the root cause (missing closing bracket)

I'm a little concern about this scenario if we couldn't present the most accurate errors.
Also, in the study, I didn't received specific complains on the number of analyzer issues shown at once. Maybe a lower priority?


adding packages to runtimeLibs list causes "cannot coerce a set to a string" error

Hello, I'm trying to set up a flake for the rio terminal so i can get the latest version, but having issue adding wayland and wayland-protocols to runtimeLibs list.
Here's my flake:
{
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    nci = {
      url = "github:yusdacra/nix-cargo-integration";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    parts = {
      url = "github:hercules-ci/flake-parts";
      inputs.nixpkgs-lib.follows = "nixpkgs";
    };
    rio = {
      url = "github:raphamorim/rio";
      flake = false;
    };
  };

  outputs =
    inputs @ { parts
    , nci
    , rio
    , ...
    }:
    parts.lib.mkFlake { inherit inputs; } {
      systems = [ "x86_64-linux" ];
      imports = [ nci.flakeModule ];
      perSystem =
        { pkgs
        , config
        , ...
        }:
        let
          crateName = "rioterm";
          crateOutputs = config.nci.outputs.${crateName};

          toolchainConfig = rio + "/rust-toolchain";
        in
        {
          nci = {
            inherit toolchainConfig;

            projects."rio".path = rio;
            crates.${crateName} = {
              export = true;
              runtimeLibs = with pkgs; [
                wayland
                wayland-protocols
              ];
              depsDrvConfig = {
                mkDerivation = {
                  buildInputs = with pkgs; [
                    cmake
                    pkg-config
                    fontconfig
                  ];
                };
              };
              drvConfig = {
                mkDerivation = {
                  buildInputs = with pkgs; [
                    pkg-config
                    fontconfig
                    freetype
                    gnumake
                    xorg.libxcb
                    libxkbcommon
                    python3
                  ];
                };
              };
            };
          };
          packages.default = crateOutputs.packages.release;
        };
    };
}

The error message (nix flake check --show-trace):
error:
       … while checking flake output 'packages'

         at «none»:0: (source not available)

       … while checking the derivation 'packages.x86_64-linux.default'

         at «none»:0: (source not available)

       … in the condition of the assert statement

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/customisation.nix:247:17:

          246|     in commonAttrs // {
          247|       drvPath = assert condition; drv.drvPath;
             |                 ^
          248|       outPath = assert condition; drv.outPath;

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/make-derivation.nix:490:14:

          489|   meta = checkMeta.commonMeta { inherit validity attrs pos references; };
          490|   validity = checkMeta.assertValidity { inherit meta attrs; };
             |              ^
          491|

       … while calling 'assertValidity'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:442:20:

          441|
          442|   assertValidity = { meta, attrs }: let
             |                    ^
          443|       validity = checkValidity attrs;

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:443:18:

          442|   assertValidity = { meta, attrs }: let
          443|       validity = checkValidity attrs;
             |                  ^
          444|     in validity // {

       … while calling 'checkValidity'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:343:19:

          342|   # Along with a boolean flag for each reason
          343|   checkValidity = attrs:
             |                   ^
          344|     # Check meta attribute types first, to make sure it is always called even when there are other issues

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:362:13:

          361|     # --- Put checks that can be ignored here ---
          362|     else if hasDeniedUnfreeLicense attrs && !(hasAllowlistedLicense attrs) then
             |             ^
          363|       { valid = "no"; reason = "unfree"; errormsg = "has an unfree license (‘${showLicense attrs.meta.license}’)"; }

       … while calling 'hasDeniedUnfreeLicense'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:77:28:

           76|   # `allowUnfreePredicate` function.
           77|   hasDeniedUnfreeLicense = attrs:
             |                            ^
           78|     hasUnfreeLicense attrs &&

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:78:5:

           77|   hasDeniedUnfreeLicense = attrs:
           78|     hasUnfreeLicense attrs &&
             |     ^
           79|     !allowUnfree &&

       … while calling 'hasUnfreeLicense'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:51:22:

           50|
           51|   hasUnfreeLicense = attrs:
             |                      ^
           52|     hasLicense attrs &&

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:53:5:

           52|     hasLicense attrs &&
           53|     isUnfree (lib.lists.toList attrs.meta.license);
             |     ^
           54|

       … while calling 'isUnfree'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:49:14:

           48|
           49|   isUnfree = licenses: lib.lists.any (l: !l.free or true) licenses;
             |              ^
           50|

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/pkgs/stdenv/generic/check-meta.nix:53:15:

           52|     hasLicense attrs &&
           53|     isUnfree (lib.lists.toList attrs.meta.license);
             |               ^
           54|

       … while calling 'toList'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/lists.nix:388:12:

          387|   */
          388|   toList = x: if isList x then x else [x];
             |            ^
          389|

       … from call site

         at /nix/store/5vgzjcl7wrjpi942cffsr3q6zj5nwszd-source/modules/dream2nix/rust-cargo-lock/translate.nix:315:28:

          314|               ${pkg.name}.${getVersion pkg} =
          315|                 {license = parseSpdxId (pkg.license or "");}
             |                            ^
          316|                 // (

       … while calling 'parseSpdxId'

         at /nix/store/5vgzjcl7wrjpi942cffsr3q6zj5nwszd-source/lib/internal/parseSpdxId.nix:12:17:

           11|   # pretty hacky in how it works. But for most cases this should be okay.
           12|   parseSpdxId = _id: let
             |                 ^
           13|     # some spdx ids might have paranthesis around them

       … from call site

         at /nix/store/5vgzjcl7wrjpi942cffsr3q6zj5nwszd-source/lib/internal/parseSpdxId.nix:15:39:

           14|     id = l.removePrefix "(" (l.removeSuffix ")" _id);
           15|     licenseStrings = l.map l.toLower (l.splitString " OR " id);
             |                                       ^
           16|     _licenses = l.map (string: idToLicenseKey.${string} or null) licenseStrings;

       … while calling 'splitString'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/strings.nix:600:22:

          599|   */
          600|   splitString = sep: s:
             |                      ^
          601|     let

       … from call site

         at /nix/store/5vgzjcl7wrjpi942cffsr3q6zj5nwszd-source/lib/internal/parseSpdxId.nix:14:10:

           13|     # some spdx ids might have paranthesis around them
           14|     id = l.removePrefix "(" (l.removeSuffix ")" _id);
             |          ^
           15|     licenseStrings = l.map l.toLower (l.splitString " OR " id);

       … while calling 'removePrefix'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/strings.nix:620:5:

          619|     # Input string
          620|     str:
             |     ^
          621|     # Before 23.05, paths would be copied to the store before converting them

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/strings.nix:623:5:

          622|     # to strings and comparing. This was surprising and confusing.
          623|     warnIf
             |     ^
          624|       (isPath prefix)

       … while calling anonymous lambda

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/trivial.nix:357:50:

          356|   */
          357|   warnIf = cond: msg: if cond then warn msg else x: x;
             |                                                  ^
          358|

       … from call site

         at /nix/store/5vgzjcl7wrjpi942cffsr3q6zj5nwszd-source/lib/internal/parseSpdxId.nix:14:30:

           13|     # some spdx ids might have paranthesis around them
           14|     id = l.removePrefix "(" (l.removeSuffix ")" _id);
             |                              ^
           15|     licenseStrings = l.map l.toLower (l.splitString " OR " id);

       … while calling 'removeSuffix'

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/strings.nix:653:5:

          652|     # Input string
          653|     str:
             |     ^
          654|     # Before 23.05, paths would be copied to the store before converting them

       … from call site

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/strings.nix:656:5:

          655|     # to strings and comparing. This was surprising and confusing.
          656|     warnIf
             |     ^
          657|       (isPath suffix)

       … while calling anonymous lambda

         at /nix/store/kcmipm57ph9bpzz8bs80iiijiwbyzwy3-source/lib/trivial.nix:357:50:

          356|   */
          357|   warnIf = cond: msg: if cond then warn msg else x: x;
             |                                                  ^
          358|

       error: cannot coerce a set to a string

I tried to figure this one out myself but the error messages are not very helpful as you can see.
Without runtimeLibs it builds and able to run just fine, but I can't use it because it requires wayland lib to be installed for winit to work in my DE. I honestly have no idea what I'm doing wrong as it's not the first time I've written flakes with nci.
Any help is appreciated, thanks in advance!

This was a bug in dream2nix, I made a fix for it there and updated the flake inputs here so it should build now if you update your NCI input.
If you are curious, the issue was because dream2nix wasn't handling workspace = true attributes correctly, and so the license parsing was not working because it was being passed an attribute set instead of a string. Fixing this makes it work properly. Although, I am not sure as to why it doesn't trigger this if runtimeLibs isn't set, so that might be a different problem, but for now this seems to be working fine.


[Bug]: Uniquify check mark select all missing and merge count issue

Steps to reproduce the bug
1. Logged in to sandwich > INHS Insect Collection
2. Task Uniquify > Select McElrath, Thomas (who has 19 objects for "Used")
3. Match People > try to select all the McElrath, Tc but there's no check box anymore to "select all" or "select some"
4. Selected one, and then repeated to select another and clicked to "merge people."
5. I expected the count after merge to be 21, but it was 20.
...

Screenshot
See below
Expected behavior
When I do "Match People" I need to be able to select "n" of the hits. The Select All option is also gone.
When I Merge People, I expect the "Used" count to go up by "n" (equal to the number of instances of Tommy selected).
Additional Screenshots

Environment

[ ] Development (native)
[ ] Development (docker)
[x] Sandbox
[ ] Production

Sandbox Used
sandwich
Version
199bbc709 on 2022-04-07T02:05:31Z
Browser Used
firefox

@debpaul select option is there. It's the first checkbox in the header of the match people table. The autocomplete doesn't have a functionality to select all the items in list, for that use I think the user should use the filter. Are you sure you're not selecting the same person in the match list? maybe that's the reason why the counter is 20 and not 21. I have to check this and if this is the case, prevent add the same person to the match people list

@jlpereira perhaps still user error? I can only select one person at a time ... even though many show up i the list.

. Are you sure you're not selecting the same person in the match list? maybe that's the reason why the counter is 20 and not 21.

These were definitely two different "people" see the People record identifiers are different for them?


⚠ Avatar API Endpoint has degraded performance

In 21fbea0, Avatar API Endpoint (https://avatar.roblox.com/v1/avatar-rules) experienced degraded performance:

HTTP code: 200
Response time: 1107 ms

Resolved: Avatar API Endpoint performance has improved in 6c8344e.


[task] Temporal should fail workflow after max activity retry

Hey team! Please add your planning poker estimate with Zenhub @ayushpahwa @nsarupr

This is not possible or rather recommended to be implemented with retry policy . this inout came from Temporal team https://temporalio.slack.com/archives/CTRCR8RBP/p1715776793422089 .
So we will try to implement this using try catch. we already have atask for it #33027  . So am closing this.


Adding support for custom STS endpoint to support direct/VPN connections

One thing I should mention: the docs for STS via VPC state that you should supply both the endpoint and the AWS region. We don't currently have a parameter for the AWS region so if it's an absolute requirement then there's more work to be done.


os/signal: TestTerminalSignal failing on linux-s390x-ibm as of CL 440220

https://build.golang.org/log/59c45ddde98d0d3c660c381aa819fa1a5b85e154:
session leader error: error setting tty process group: no such processerror running second subprocess: error setting tty process group: no such process
--- FAIL: TestTerminalSignal (0.01s)
    signal_cgo_test.go:186: Sending ^Z...
    signal_cgo_test.go:195: error reading readiness: EOF
FAIL
FAIL	os/signal	1.782s

TestTerminalSignal was rewritten in https://go.dev/cl/440220 to make direct system calls.
It appears that the call that is failing is an ioctl with argument TIOCSPGRP.
It could possibly be caused by an invalid return from syscall.Getpgrp().
(attn @golang/s390x; CC @prattmic)

Hmm, looks like the same failure mode on linux-mips-rtrk too.
https://build.golang.org/log/b10d790868d55f5ab0c97753619052684ef73a92:
session leader error: error setting tty process group back: no such processerror running second subprocess: error setting tty process group back: no such process
--- FAIL: TestTerminalSignal (0.06s)
    signal_cgo_test.go:186: Sending ^Z...
    signal_cgo_test.go:195: error reading readiness: EOF
FAIL
FAIL	os/signal	3.224s

(attn @golang/mips)

I tried to take a quick look at this on a linux-s390x gomote, but that builder apparently doesn't have strace installed. :(

I tried to take a quick look at this on a linux-s390x gomote, but that builder apparently doesn't have strace installed. :(

@prattmic I've installed strace on all the s390x builders if you can try again

Awesome, thanks. @bcmills was right that the ioctl argument is incorrect (at least on s390x, still waiting on mips buildlet):
1185859 getpgid(0 <unfinished ...>
1185859 <... getpgid resumed>)          = 1185859
1185859 ioctl(3, TIOCSPGRP, [0] <unfinished ...>
1185859 <... ioctl resumed>)            = -1 ESRCH (No such process)

[0] should be [1185859].
Is there an ABI difference for ioctl arguments on s390x? That seems like the most obvious cause, though I don't see evidence of that in ioctl calls in syscall or x/sys or from a quick glance at the Linux source.
I'm going to send a CL to skip this test on s390x for now.

On MIPS, this failure actually occurs on the second ioctl call, the first is fine. On that buildlet, strace doesn't know how to read the argument, but it looks like it is correct:
16007<PHONE_NUMBER>.336427 write(2, "child pid: 16014 0x910000\n", 26 <unfinished ...>
16007<PHONE_NUMBER>.336497 <... write resumed> ) = 26
16007<PHONE_NUMBER>.336578 ioctl(3, TIOCSPGRP, 0x910000) = -1 ESRCH (No such process)
16007<PHONE_NUMBER>.336837 write(2, "session leader error: error setting tty process group back: no such process\n", 76) = 76
16007<PHONE_NUMBER>.336963 kill(16014, SIGKILL) = 0
16019<PHONE_NUMBER>.337100 +++ killed by SIGKILL +++
16018<PHONE_NUMBER>.337130 +++ killed by SIGKILL +++
16015<PHONE_NUMBER>.337163 +++ killed by SIGKILL +++
16017<PHONE_NUMBER>.337188 +++ killed by SIGKILL +++
16007<PHONE_NUMBER>.337221 waitid(P_PID, 16014,  <unfinished ...>
16016<PHONE_NUMBER>.338067 +++ killed by SIGKILL +++
16014<PHONE_NUMBER>.338121 +++ killed by SIGKILL +++
16007<PHONE_NUMBER>.338145 <... waitid resumed> {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=16014, si_uid=0, si_status=SIGKILL, si_utime=0, si_stime=0}, WEXITED|WNOWAIT, NULL) = 0
16007<PHONE_NUMBER>.338224 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=16014, si_uid=0, si_status=SIGKILL, si_utime=0, si_stime=0} ---

0x910000 is the address of pgid 16014, so that seems OK.
PID 16014 clearly exists, given that we successfully kill it, though perhaps it isn't a valid PGID, but it looks like it should:
16014<PHONE_NUMBER>.195828 setpgid(0, 0 <unfinished ...>
16014<PHONE_NUMBER>.195873 <... setpgid resumed> ) = 0

man 2 setpgid: "setpgid() sets the PGID of the process specified by pid to pgid.  If pid is zero, then the process ID of the calling process is used.  If pgid is zero, then the PGID of the process specified by pid is made the same as its process ID."
Thus, I think this is a different bug from s390x.

@prattmic it looks like this is an endian issue on s390x. If I cast the pids to int32 it passes for me locally. Not sure if int32 is correct for all platforms this test runs on.
diff --git a/src/os/signal/signal_cgo_test.go b/src/os/signal/signal_cgo_test.go
index<PHONE_NUMBER>..086d56a251 100644
--- a/src/os/signal/signal_cgo_test.go
+++ b/src/os/signal/signal_cgo_test.go
@@ -279,7 +279,7 @@ func runSessionLeader(pause time.Duration) {
 		}

 		// Take TTY.
-		pgrp := syscall.Getpgrp()
+		pgrp := int32(syscall.Getpgrp())
 		_, _, errno = syscall.Syscall(syscall.SYS_IOCTL, ptyFD, syscall.TIOCSPGRP, uintptr(unsafe.Pointer(&pgrp)))
 		if errno != 0 {
 			return fmt.Errorf("error setting tty process group: %w", errno)
@@ -290,7 +290,7 @@ func runSessionLeader(pause time.Duration) {
 		time.Sleep(pause)

 		// Give TTY back.
-		pid := uint64(cmd.Process.Pid)
+		pid := int32(cmd.Process.Pid)
 		_, _, errno = syscall.Syscall(syscall.SYS_IOCTL, ptyFD, syscall.TIOCSPGRP, uintptr(unsafe.Pointer(&pid)))
 		if errno != 0 {
 			return fmt.Errorf("error setting tty process group back: %w", errno)

The code is passing the address of a Go uintptr to a function that takes a pointer to a C int.  That will fail on any big-endian 64-bit system.  Sent CL 433175.


Add generated API docs to README, use "H3 Index" instead of "H3 Address"

There are a lot of changes here, but they're entirely cosmetic:

Adds a build-docs script using jsdoc-to-markdown to generate API documentation from JSDoc comments and insert it into the README.
Globally changes references from h3Address to h3Index to align with the terminology in the core library. This shouldn't change any public APIs, and primarily affects argument and variable names.
Cleans up JSDoc comments, specifying H3Index instead of String and documenting errors.
Adds a check-docs script to Travis CI to fail the build if the docs need to be regenerated.

Is this a breaking API change?

Not at all - I changed a few internal function names, but otherwise all the changes are to variable names or function argument names (JS doesn't have named arguments per se, and we don't use object input in this library). AFAIK these changes are 100% cosmetic.