Ensure the decryption maintains record ordering, regardless of completion order of the decryptor.

Type of change

Bugfix

Description
Ensure the decryption maintains record ordering, regardless of completion order of the decryptor futures.
Additional Context
Why are you making this pull request?
Checklist
Please go through this checklist and make sure all applicable tasks have been done

[x] Write tests
[ ] Make sure all tests pass
[ ] Review performance test results. Ensure that any degradations to performance numbers are understood and justified.
[ ] Make sure all Sonar-Lint warnings are addressed or are justifiably ignored.
[ ] Update documentation
[ ] Reference relevant issue(s) and close them after merging
[ ] For user facing changes, update CHANGELOG.md (remember to include changes affecting the API of the test artefacts too).

I want to add unit tests too.

gah, writing a InBandKeyManagerTest  for this gets really hard.  It is the inaccessibility of the Edek impls (or the lack of a base class).


[4.0] [tvOS] tvOS Support

Same #58976 as for master

Rework of #45829 and #45830 PRs.
Implements proposal: https://github.com/godotengine/godot-proposals/issues/224
tvOS and iOS platform uses new UIKit platform to share functionality and code.
UIKIT_ENABLED flag is used instead of IPHONE_ENABLED.
Export code is from previous PRs:

Launch screen is storyboard based (no need for launch images)
tvOS project supports empty Apple Team ID
Icons, Signatures and certificates are handled by Xcode project

Mono haven't been ported.
GDNative uses same configuration as iOS platform.
Support plugins that works the same way as iOS, but configuration is using .gdatvp
Related PRs: https://github.com/godotengine/build-containers/pull/71, https://github.com/godotengine/godot-build-scripts/pull/21 will be reworked for tvOS in future.

@naithar This PR need to be rebased before it can be considered, it has a lot of conflicts. The main problem is that the platform/iphone folder was renamed to platform/ios.

I would like to take this issue, and create a fresh new pull request or either this same in  implementing work of @naithar to implement tvOS support in GODOT engine by milestone 4.x

I would like to take this issue, and create a fresh new pull request or either this same in implementing work of @naithar to implement tvOS support in GODOT engine by milestone 4.x

Feel free to rebase this PR against master and test this again, but I expect this to be nontrivial. This isn't something I would recommend for a new contributor unless you are highly familiar with iOS/tvOS development already.

@VSofficial Can you describe what you're referring to in detail?

That tvOS is not in the device family as it's not completed, although I haven't tested the build for tvOS as of now. Will test and if it fails will rectify it

More than a year, why not it was merged? What left?

See this comment https://github.com/godotengine/godot/pull/58977#issuecomment-1627430718, this hasn't been done so nothing can be done with this PR, the OP haven't fixed the necessary things, so it can't be reviewed and approved

More than a year, why not it was merged? What left?

I can't run the build on my device, I have taken the work to complete it and discussed the procedure with PR admin. I will complete necessary work and make a new PR

@VSofficial did you create a new PR? What is the status of it? I would love to bring some projects over to Godot but have been waiting for tvOS support. : )


onScroll doesn't get invoked

Env:
"react": "16.0.0-alpha.6",
"react-native": "0.43.3",
"react-native-snap-carousel": "^2.1.2"
Problem:
onScroll does not get invoked whilst scrolling
 <Carousel
    ref={(carousel) => { this._carousel = carousel }}
    sliderWidth={width}
    inactiveSlideScale={1}
    inactiveSlideOpacity={1}
    enableMomentum={false}
    itemWidth={width}
    onSnapToItem={::this._imageIndex}
    onScroll={() => { console.log('onScroll!') }}>
       {imageArray}
  </Carousel>

Hey @dittmarconsulting,
Looking at the relevant source code, it is obvious why this can't work. My mistake: I've merged a PR yesterday without actually checking that it was working.
I'll quickly add a specific prop for this use case.

@dittmarconsulting I've just published version 2.1.4 that adds prop onScrollViewScroll. Could you please confirm that it works for you?

That works like a charm @bd-arc .
Thanks for the fast response.
Keep up with the great work.


Angular EmailValidator with formly validation

I was wondering if there is a way to use the EmailValidator Directive from Angular for Formly validation ?
EmailValidator: https://angular.io/api/forms/EmailValidator
Of course, I could also achieve email validation by creating a custom validator with regex pattern or to create a custom component. But I was wondering if there is some other way to use the built in directive.

Thanks !

use Validators.email instead:
import { Validators } from '@angular/forms';

...
FormlyModule.forRoot({
  validators: [
    { name: 'email', validation: Validators.email }
  ],
}),


Could not find required property network_id in state error

What happened?
When attempting to create a WirelessSsids resource I receive the following error:
error: Could not find required property 'network_id' in state. This is an error in meraki resource provider, please report at https://github.com/pulumi/pulumi-meraki

Example
import * as meraki from "@pulumi/meraki";

export = async () => {
    const orgs = await meraki.getOrganizations();

    const network = new meraki.networks.Base("net", {
        organizationId: orgs.items[0].id,
        name: "pulumi-testing",
        productTypes: [
            "appliance",
            "switch",
            "wireless"
        ],
        timeZone: "America/Los_Angeles",
        notes: "Created by Pulumi",
    });

    new meraki.networks.WirelessSsids("ssids", {
        networkId: network.id,
        number: 0,
        name: "pulumi-test-234",
        authMode: "psk",
        encryptionMode: "wpa",
        psk: "testfromhi",
        enabled: true,
    });

    return {
        network: network
    }
};

Output of pulumi about
@pulumi/meraki 0.1.0
Additional context
No response
Contributing
Vote on this issue by adding a 👍 reaction.
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

@iwahbe I logged what state actually is, and it looks like it's in lowerCamelCase? This is from a different resource but same error:
Could not find required property 'organization_id' in state map[createdAt:{2024-05-16T23:08:19Z} description:{test group by Pulumi} groupId:{686235993220596405} isDefaultGroup:{false} name:{pulumi test} organizationId:{1541814} policyObjects:{[]} sgt:{1005} updatedAt:{2024-05-16T23:09:10Z}]

Without really knowing what I'm doing, if I change the setField function to
setField := func() (tfbridge.PropertyVisitResult, error) {
key := strcase.ToLowerCamel(field)
res.Info.ComputeID = delegateIDField(resource.PropertyKey(key))
return tfbridge.PropertyVisitResult{HasEffect: true}, nil
}

then the issue goes away.
You know much more about the bridge, so I look for your analysis of this mismatch.

I see what's happening here. That should be an easy fix.

#20 has an explanation of the problem.


CodeBuild Project Source Type Fails With "Ref"

Troposphere Version: 2.1.2
Anytime I put a Ref in the Type of Source it will fail to validate with the following error:
Source Type: must be one of CODECOMMIT,CODEPIPELINE,GITHUB,S3

Here is my parameter:
template.add_parameter(Parameter(
        "SourceType",
        Type="String",
        AllowedValues=["CODECOMMIT", "CODEPIPELINE", "GITHUB", "BITBUCKET","S3"],
        Description="The type of repository that contains the source code to build.",
        ConstraintDescription="You must choose a valid value for SourceType."
    ))

Here is my CodeBuild Project definition (Note this is the one that fails):
template.add_resource(Project(
        "AMIBuilderProject",
        Description="Build AMI",
        Artifacts=Artifacts(Type='NO_ARTIFACTS'),                               #What codebuild outputs. (No binaries, images are saved not output)
        Environment=Environment(
            ComputeType=Ref("ComputeType"),                                     #the number of CPU cores and memory the build environment uses
            Image=Ref("Image"),
            Type="LINUX_CONTAINER",
            EnvironmentVariables=[
                {"Name":"AWS_REGION","Value":"us-west-2"},
            ]
        ),
        Name="AMIBuilder",                    #Name of the codebuild project
        ServiceRole=ImportValue(Sub("${CFCodeBuild}-project")),                 #Role codebuild uses to get things done
        TimeoutInMinutes=Ref("Timeout"),                                        #The number of minutes after which AWS CodeBuild stops the build if it's not complete.
        Tags=Tags(defaultTags),                                                 #Tags to apply to code build project (not propigated to AMIs)
        Source=Source(
                Type=Ref("SourceType"),                      #Type of this location
                Location=If("NoCodePipeline",Ref("SourceLocation"),Ref("AWS::NoValue")), #location of the source code in the specified repository type
                BuildSpec="Linux/test/buildspec.yml" #Codebuild build specification file
        )
    ))

This one works:
    template.add_resource(Project(
        "AMIBuilderProject",
        Description="Build AMI",
        Artifacts=Artifacts(Type='NO_ARTIFACTS'),                               #What codebuild outputs. (No binaries, images are saved not output)
        Environment=Environment(
            ComputeType=Ref("ComputeType"),                                     #the number of CPU cores and memory the build environment uses
            Image=Ref("Image"),
            Type="LINUX_CONTAINER",
            EnvironmentVariables=[
                {"Name":"AWS_REGION","Value":"us-west-2"},
            ]
        ),
        Name="AMIBuilder",                    #Name of the codebuild project
        ServiceRole=ImportValue(Sub("${CFCodeBuild}-project")),                 #Role codebuild uses to get things done
        TimeoutInMinutes=Ref("Timeout"),                                        #The number of minutes after which AWS CodeBuild stops the build if it's not complete.
        Tags=Tags(defaultTags),                                                 #Tags to apply to code build project (not propigated to AMIs)
        Source=Source(
                Type="CODECOMMIT",                      #Type of this location
                Location=If("NoCodePipeline",Ref("SourceLocation"),Ref("AWS::NoValue")), #location of the source code in the specified repository type
                BuildSpec="Linux/test/buildspec.yml" #Codebuild build specification file
        )
    ))

Notice the only difference between these 2 blocks is the Source Type. One is hard coded and the other uses the Ref
I do supply it CODECOMMIT in my parameter. I have tried this multiple times and checked for spelling errors. I have had others verify that everything looked correct as well so it's not a spelling error.
Am I missing something or is this a bug?

Thanks for the Issue. A fix has been pushed.


leading / in a path

Neither of the following
#let results = csv("/Users/el/Desktop/file.csv")
#let results = csv("~/Desktop/file.csv")

work, but the following does:
#let results = csv("//Users/el/Desktop/file.csv")

which I would not consider a feature :-)-O
Intel iMac 12.6.3, typst b934a2fd
Gruss aus dem Süden

Duplicate of #219

Apologies.
Gruss aus dem Süden


feat: tracing

[x] Read the Contributing document.

Summary
From time to time we have to investigate situations in which customers complain about individual requests taking a long time (up to 100ms) to pass through gorouter. While investigating ways to find out what causes such delays we came across the built-in tracing functionality of GoLang. Unfortunately the tracing is relatively useless if you don't instruct your code to record certain trace points.
This PR proposes to add an initial set of trace points. Since we don't really know what we are looking for the trace points are a bit scattered around. Please let me know if you think that certain trace points are pointless or if there's any other sections that should have tracing.
Since we have benchmarks in the registry I checked what the impact of the tracing points would be:

Benchmark
Impact (relative increase in avg of ns/op)

BenchmarkRegisterWith100KRoutes-12
+19%

BenchmarkRegisterWithOneRoute-12
+15%

BenchmarkRegisterWithConcurrentLookupWith100kRoutes-12
+3%

Note: tracing is not enabled, this is just due to the trace points existing and being part of the execution path, they are not recording data.
Given that BenchmarkRegisterWithConcurrentLookupWith100kRoutes-12 is the closest to what gorouter actually does and it only increases the time per register by ~3% I don't expect any major impact by this change.
Once we have the opportunity to collect some traces on our productive systems we will have more insights into which regions should be traced and which ones are less interesting. We should then re-visit the topic and adjust the trace points accordingly.
Backward Compatibility
Breaking Change? No

I will keep the branch around but given the efforts to move towards OTel I don't think it's a good idea to introduce go specific tracing at this point.


tts: 1.0.2-1 in 'kinetic/distribution.yaml' [bloom]

Increasing version of package(s) in repository tts to 1.0.2-1:

upstream repository: https://github.com/aws-robotics/tts-ros1.git
release repository: https://github.com/aws-gbp/tts-release.git
distro file: kinetic/distribution.yaml
bloom version: 0.8.0
previous version for package: 1.0.2-1

This pull request was just made when running bloom-release --pretend?


Refactor BaseValidateCodeForm.js to functional component

Details

Refactor src/pages/signin/ValidateCodeForm/BaseValidateCodeForm.js to functional component
Fixed Issues

$ https://github.com/Expensify/App/issues/16302
Tests

Login and wait for magic code
Type in invalid magic code -> Gives error
Error disappears as soon as typing continues
Requesting new code clears current input
Type in invalid 2fa code -> Gives error
Type in valid 2fa code continues to app
If no 2fa, entering magic code continues to app

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

Offline tests

Offline disables sign in button and form does not submit
QA Steps

Login and wait for magic code
Type in invalid magic code -> Gives error
Error disappears as soon as typing continues
Requesting new code clears current input
Type in invalid 2fa code -> Gives error
Type in valid 2fa code continues to app
If no 2fa, entering magic code continues to app
Test that if network goes offline during any step that Sign In is disabled

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

PR Author Checklist

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

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

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

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

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

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://github.com/Expensify/App/assets/12980971/5705dd84-4aa0-42cd-b49a-05162279b5e0
https://github.com/Expensify/App/assets/12980971/068bb60e-8c1f-4f87-8b07-6a61e32e883c

Mobile Web - Chrome

Mobile Web - Safari

https://github.com/Expensify/App/assets/12980971/18280fde-5444-4ec1-b1bc-baab13809694

Desktop

https://github.com/Expensify/App/assets/12980971/81b3062a-470e-4bde-9eb2-5139f8e94de6

iOS

https://github.com/Expensify/App/assets/12980971/9d792c0d-8b57-4e23-84f1-6f8d87203178
https://github.com/Expensify/App/assets/12980971/221ebfe8-12a6-4c08-a6fb-6c7b7e83bb6d

Android

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

@Li357  Please resolve conflicts

Reviewer Checklist

[X] I have verified the author checklist is complete (all boxes are checked off).
[X] I verified the correct issue is linked in the ### Fixed Issues section above
[X] I verified testing steps are clear and they cover the changes made in this PR

[X] I verified the steps for local testing are in the Tests section
[X] I verified the steps for Staging and/or Production testing are in the QA steps section
[X] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[X] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[X] I checked that screenshots or videos are included for tests on all platforms
[X] I included screenshots or videos for tests on all platforms
[X] I verified tests pass on all platforms & I tested again on:

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

[X] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[X] I verified proper code patterns were followed (see Reviewing the code)

[X] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[X] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[X] I verified that comments were added to code that is not self explanatory
[X] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[X] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[X] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[X] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[X] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[X] I verified the JSDocs style guidelines (in STYLE.md) were followed

[X] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[X] I verified that this PR follows the guidelines as stated in the Review Guidelines
[X] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[X] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[X] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[X] If a new component is created I verified that:

[X] A similar component doesn't exist in the codebase
[X] All props are defined accurately and each prop has a /** comment above it */
[X] The file is named correctly
[X] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[X] The only data being stored in the state is data necessary for rendering and nothing else
[X] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[X] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[X] All JSX used for rendering exists in the render method
[X] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[X] If any new file was added I verified that:

[X] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[X] If a new CSS style is added I verified that:

[X] A similar style doesn't already exist
[X] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[X] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[X] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[X] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[X] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[X] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[X] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://github.com/Expensify/App/assets/16493223/6bb3b2aa-e419-4df2-9b30-9f87d13c685a

Mobile Web - Chrome

https://github.com/Expensify/App/assets/16493223/050aa1fa-8ca2-4cb8-88e1-9e15a7d80959

Mobile Web - Safari

https://github.com/Expensify/App/assets/16493223/b5fe6b32-d24b-4e0f-b3b7-863c9d6aa969

Desktop

https://github.com/Expensify/App/assets/16493223/8ad677dd-2ece-41ba-acae-07d1cfa990ba

iOS

https://github.com/Expensify/App/assets/16493223/ca5b477e-3a12-4c37-8a8b-59dcb069e178

Android

https://github.com/Expensify/App/assets/16493223/0228e8bd-26eb-4eb0-ae47-b62588c0e9a9

🚀 Deployed to staging by https://github.com/AndrewGable in version: 1.3.27-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/AndrewGable in version: 1.3.27-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.27-7 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
failure ❌

🕸 web 🕸
success ✅


Update fit rev

Update some definitions based on rev 2.3

Thanks @doc75. Will this help fix #26?

No it does not help fixing #26.
It is just some additional data found in the file provided in this issue that shows some missing definition.


OAKLAND, CA Email Template

To<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Oakland Resident for Defunding the OPD
Message (Don't forget to replace the [x]'s with your information!)
To Mayor Scaaf, the Oakland City Council and Oakland and Alameda County Elected Officials
My name is [YOUR NAME], and I am a resident of Oakland. This past week, our nation has been gripped by protests calling for rapid and meaningful change with regard to police behavior, an end to racism and anti-blackness, and immediate reform in how black people are treated in America. Our city has been at the forefront of much of this action. Accordingly, it has come to my attention that the budget for 2021 is being decided as these protests continue.
OPD has been a waste of our resources. Last year, the OPD budget was approximately half of available discretionary funds. While we’ve been spending extraordinary amounts on policing, we have not seen improvements to safety, homelessness, mental health, or affordability in our city. Instead, we see wasteful and harmful actions of our police.
I call on you to slash the OPD budget and instead use those extraordinary resources towards solving homelessness, which is felt most by our black neighbors and veterans. We implore you to give every member of our community experiencing homelessness a place to call home and the treatment they need.
We can be a beacon for other cities to follow if only we have the courage to change.
Sincerely,
[YOUR NAME]
[YOUR ADDRESS]
[YOUR EMAIL]
[YOUR PHONE NUMBER]

Suggest capitalizing Black in Black people. Thanks!

on the PR!

Edited original comment also. Thank you!

Looks great!

Suggest adding people struggling with mental health in the unsheltered populations affected negatively by policing. Thanks for putting this together!


feat(accounts): get trasfer fee from estimateTransferFee API

Related issues 🔗
Closes #[Issue number here]
Description ℹ
A description of what this PR does. This should be non-dev readable. Technical stuff should go in the technical section below.
Demo 📺
Gif/video/images of new/corrected functionality if applicable
Technical 👨🔧
Details of technical implementation that reviewers may need to be aware of, if applicable.

Do not merge. Estimate API return errors. If there is no error estimated fee is always '1'


[Draft] [dash-flow] Implementation of dash flow actions for bmv2

adding @r12f as a reviewer

Request for review from ShaoFeng @r12f - thank you

Working in different time zone with holiday, check back next week

Just checking in after international holidays

Closing this PR as #608 already finishes implementation of dash flow actions.

[like]  Kristina Moore reacted to your message:

From: Shaofeng Wu @.>
Sent: Monday, October 28, 2024 12:04:36 PM
To: sonic-net/DASH @.>
Cc: Kristina Moore @.>; Comment @.>
Subject: Re: [sonic-net/DASH] [Draft] [dash-flow] Implementation of dash flow actions for bmv2 (PR #618)
Closed #618https://github.com/sonic-net/DASH/pull/618.
—
Reply to this email directly, view it on GitHubhttps://github.com/sonic-net/DASH/pull/618#event-14957389793, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AFJSI6AW7IGUJFCZYMKBHI3Z5YR5JAVCNFSM6AAAAABNO6N7GGVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJUHE2TOMZYHE3TSMY.
You are receiving this because you commented.Message ID: @.***>


[v6.beta.20] Please update eslint-airbnb-config to latest version.

I'm trying to update to eslint 5 and  getting an error on npm run build
Error: (node:57124) [ESLINT_LEGACY_OBJECT_REST_SPREAD] Depreca  tionWarning: The 'parserOptions.ecmaFeatures.experimentalObjec  tRestSpread' option is deprecated. Use 'parserOptions.ecmaVers  ion' instead. (found in "standard-react")

  Error: (node:57124) [ESLINT_LEGACY_OBJECT_REST_SPREAD] Depreca  tionWarning: The 'parserOptions.ecmaFeatures.experimentalObjec  tRestSpread' option is deprecated. Use 'parserOptions.ecmaVers  ion' instead. (found in "node_modules/eslint-config-standard-j  sx/index.js")

  Error: (node:57124) [ESLINT_LEGACY_OBJECT_REST_SPREAD] Depreca  tionWarning: The 'parserOptions.ecmaFeatures.experimentalObjec  tRestSpread' option is deprecated. Use 'parserOptions.ecmaVers  ion' instead. (found in "standard")

  Error: (node:57124) [ESLINT_LEGACY_OBJECT_REST_SPREAD] Depreca  tionWarning: The 'parserOptions.ecmaFeatures.experimentalObjec  tRestSpread' option is deprecated. Use 'parserOptions.ecmaVers  ion' instead. (found in "node_modules/eslint-config-airbnb-bas  e/index.js")

With new version it should work fine.

Are you seeing any other problems with the new version? Last time we tried to upgrade, we saw errors since it was not ready for eslint 5


Add Range method with step

The Enumerable.Range does not have step parameter. Can you add Range method with step parameter, please. Range(int start, int count, int step)
It is different from Sequence(int start, int stop, int step) that Range will use count parameter instead stop boundary.
It will cover cases when you want get needed quantity of numbers with needed step between them.
It is like Sequence(start, start + step * (count - 1), step)
Also it will not generate infinite sequence if step is zero.

        public static IEnumerable<int> Range(int start, int count, int step) {
            long max = ((long)start) + count - 1;
            if (count < 0 || max > Int32.MaxValue) throw Error.ArgumentOutOfRange("count");
            return RangeIterator(start, count, int step);
        }

        static IEnumerable<int> RangeIterator(int start, int count, int step) {
            var value = start;
            for (int i = 0; i < count; i++)
            {
                yield return value;
                value += step;
            }
        }

@AlexRadch FYI: this overload has been included in SuperLinq 4.0.0, which is now released.

You can achieve this with MoreLINQ's Generate combined with LINQ's Take or roll it up into a simple extension method if you need to do this often:
static class Seq
{
    public static IEnumerable<int> Step(int start, int step, int count) =>
        MoreEnumerable.Generate(start, x => x + step).Take(count);
}

I am going to close this on the grounds that it's not adding anything new that cannot be achieved pretty trivially with a one-liner.


Optimize Mapper compiled code

Actual: the rolled-up Mapper script /src/.build/bidiMapper/mapper.js has a size of 748K, and the vast majority of the file is CDP string literals describing CDP methods, which are added for development convenience and are required for the functionality.
Removing those definitions reduces the size of the plain /src/.build/bidiMapper/mapper.js to 68K, and minimizing afterwards leads to only 28K source size.
Expected: the rolled-up Mapper script /src/.build/bidiMapper/mapper.js doesn't have unnecessary string literals and has a size of ~ 30K.

Maksim:

Try to compile mapper, and check its size. The vast majority of the space is taken by the CDP method definitions.

cc @vladimir-nechaev @mathiasbynens
The first commit that integrates terser has been already merged (c.f. #221). To close this bug I need more clarification from @sadym-chromium w.r.t.:

Removing those definitions [CDP string literals describing CDP methods, which are added for development convenience and are required for the functionality]

Let me know how we can accomplish that.

I think it could be achieved by removing the following imports in the cdp client:
import * as browserProtocol from 'devtools-protocol/json/browser_protocol.json';
import * as jsProtocol from 'devtools-protocol/json/js_protocol.json';

Perhaps instead of generating classes at runtime based on JSON definitions, we could employ a Proxy?

I think it could be achieved by removing the following imports in the cdp client:
import * as browserProtocol from 'devtools-protocol/json/browser_protocol.json';
import * as jsProtocol from 'devtools-protocol/json/js_protocol.json';

Perhaps instead of generating classes at runtime based on JSON definitions, we could employ a Proxy?

@thiagowfx IDK how exactly to reach that, and the issue involves some research. Alex's approach looks promising.

Additionally I'd consider adding a step verifying the compiled size in the given diapason.

Additionally I'd consider adding a step verifying the compiled size in the given diapason.

That was a good idea! Done on https://github.com/GoogleChromeLabs/chromium-bidi/pull/224

https://mariusschulz.com/blog/importing-json-modules-in-typescript:

Now, we get a type error in line 2. TypeScript doesn't let us import a JSON module out of the box, just like that. This was a conscious design decision made by the TypeScript team: pulling in large JSON files could potentially consume a lot of memory, which is why we need to opt into that feature by enabling the --resolveJsonModule compiler flag:

This is likely why the bidi mapper size is quite bloated.

Basic preprocessing with jq to filter out types and events from the JSON file:
960K    node_modules/devtools-protocol/json/browser_protocol.json =>
284K    node_modules/devtools-protocol/json/browser_protocol_commands_only.json

168K    node_modules/devtools-protocol/json/js_protocol.json =>
60K     node_modules/devtools-protocol/json/js_protocol_commands_only.json

528K => 268K    src/.build/bidiMapper/mapper.js


Docker Hub repository name
benjaming/hey-moby-extension
Terms of services

/validate

/validate

/validate

/validate

/validate

this comment should not trigger anything

/validate


Links in email templates hardcoded to production website

From @leonstafford on May 27, 2017 5:14
Background
When working on development or test environments, at least some links are hardcoded to the production domain. This makes the code less portable and harder to test.
Acceptance criteria

[ ] sign up/welcome email link should be for the active environment
[ ] password reset confirmation page link should be for the active environment

labelled this as "More information required" as need to identify other hardcoded links to add to acceptance criteria

Copied from original issue: sleepbusorg/sleepbus_org#13

update - this is not as described - only the link in the password changed confirmation page is hard-coded:
Woohoo, you've got yourself a new password. Now you can sign in.
will update card

From @bakersemail on May 28, 2017 2:54
Same issue happens with the signup welcome email.

From @bakersemail on May 28, 2017 3:0
Same thing with oops page:
"We are really sorry but the page you requested is not available. Let's bus it back to the start"
The start link is www.sleepbus.org.
Perhaps these could just be made relative links? So link to: "/" for page links instead of www.sleepbus.org.
The emails will still need to be full links though of course.

Thanks @bakersemail - I marked this as needing more info to find the other links, but happy for you to take this on if you like. Relative where possible, else in the case of email templates, we should be able to use the ENVIRONMENT constant.

fixed by https://github.com/sleepbusorg/sleepbus.org/commit/b5c12b8647eab7c8b813fe22723e23a9503cbba1


how could i make the filed "id" required_without_method=POST

type departmentPut struct {
	ID       uint   `form:"id" binding:"required_without_method=POST"`
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

i want to required ID when the method is PUT/PATCH。

but not required whit the method id post（created）

@birdycn there are two ways, I really recommend No. 1

Create a separate struct for POST vs PUT there will be more overlapping logic beyond this in my experience, keeping it separated will keep you and :)

You can create a custom validation and pass that information in the context.Context

eg.
   validate.Struct(contact.WithValue(r.Context(), "method", r.Method), departmentPut)

   // then in the custom validator can grab that info out
   func Custom func(ctx context.Context, fl FieldLevel) bool {
      ctx.Value("method").(string) ....
   }

@deankarn
If the first method is used，will be:
type departmentPost struct {
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

type departmentPut struct {
	ID       uint   `form:"id" binding:"required"`
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

Is there a better way, for example:
type departmentPost struct {
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

type departmentPut struct {
	ID       uint   `form:"id" binding:"required"`
	departmentPost   //It seems to be an error, unable to verify
}

It looks like you could also use aliased tags ?
Something that would look like:
type departmentPut struct {
	ID       uint   `form:"id" binding:"id"`
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

// validator for the Post request:
v := validator.New()
v.RegisterAlias("id", "isdefault") // that would validate that the id is 0

// validator for the Put/Patch request
v := validator.New()
v.RegisterAlias("id", "required")

It looks like you could also use aliased tags ?
Something that would look like:
type departmentPut struct {
	ID       uint   `form:"id" binding:"id"`
	ParentID *uint  `form:"parentID"`
	Name     string `form:"name" binding:"required,trim"`
}

// validator for the Post request:
v := validator.New()
v.RegisterAlias("id", "isdefault") // that would validate that the id is 0

// validator for the Put/Patch request
v := validator.New()
v.RegisterAlias("id", "required")


fix: add missing properties to PlayButton type

Fixes https://github.com/shaka-project/shaka-player/issues/6125.

Thanks you @avelad for the approval !


Duplicate entries in Selected Fields list which can't be selected/removed

First of all thank you very much for the great work, I've searched for a printing feature for so long..!
I've got a problem where, after some adding and re-sorting fields in the Selected Fields view, all of a sudden there were duplicate entries in the list which I can't select or remove. The fields are also included in the generated Reports. Any idea?

Sorry for not getting to this sooner. Were you able to resolve this? I've encountered cases where duplicates show up, but I thought I eliminated all the edge cases. I can add a Clear All button for the cases that aren't easily reproducible.


Morning session

We know your project is not finished yet, but these are some things that you can consider implementing.

Use more semantic HTML tags.
There is more than one menu icon when you change the resolution.
You can add more content to some sections to make it as full of content as the original page.
The overall layout of the page is really good but double-check margins and paddings.
GREAT JOB!

Solved: Thanks @balerum03.


fix audio device constructor call in examples

The audio examples were not working because the call to the raylib::AudioDevice constructor was wrong

Oops! Good catch.


[UI] Added redirect property

Signed-off-by: afzal442<EMAIL_ADDRESS>Added redirect property to re-render the component

Still not working;
Maybe we can work around it and this might help us.

@yochannah @ikayz it works fine for me.
https://deploy-preview-28--journal-policy-tracker.netlify.app/contact

@afzal442 I'll look at PR. I've seen the preview looks good. @yochannah you can also have a look

Looks good to me - @ikayz go ahead and merge when you've reviewed and you're ready

@yochannah this has been merged. I've given it a try and seems to work fine. You give it a try


Avoid rendering too big and too small images for vector tiles

We fall back from image to replay rendering in the vector tile layer renderer when the tile is at a resolution lower than its coordinate resolution, which we determine by looking at the tilePixelRatio. But in this calculation, we may allow huge tile sizes when the tile set uses a high tilePixelRatio.
The current behaviour is also buggy, because it does not take the pixelRatio into account. This results in replay rendering on retina displays at native tile resolutions, as can be seen in the osm-vector-tiles examples.

But in this calculation, we may allow huge tile sizes when the tile size uses a high tilePixelRatio.

Does this result in a rendering "bug"?  It would make it easier to understand the proposed changes with a screen shot.

It does not result in a rendering bug, it only makes the browser very unresponsive. You can see that when you open the http://openlayers.org/en/v3.13.0/examples/mapbox-vector-tiles.html example and scroll-zoom all the way in to a much higher zoom level. This will result in canvas sizes of > 8000 pixels for lower resolution tiles. On a Mac, I get a spinning wheel even when I do that.

Thanks for the additional description @ahocevar.  I haven't been able to reproduce what you're talking about, but I may not be doing the right thing.  Rendering still looks good to me with this change and the code looks sensible.  Please merge.


fix: cleanup java install logic

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

4 of 5 (80.0%)  changed or added relevant lines in 2 files are covered.
36 unchanged lines in 4 files lost coverage.
Overall coverage increased (+0.1%) to 78.234%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

tool.js
3
4
75.0%

Files with Coverage Reduction
New Missed Lines
%

tool.js
4
79.52%

golang.js
10
58.33%

node.js
10
74.26%

python.js
12
13.89%

Totals

Change from base Build<PHONE_NUMBER>:
0.1%

Covered Lines:
446

Relevant Lines:
553

💛  - Coveralls


Optional dependancy on exclusion-set for no_std TCell

Adds optional no_std TCellOwner creation protected by exclusion-set.  TCell and TCellOwner (the types) are available in no_std code; the following methods are now cfg-guarded:
TCellOwner::default - (std || exclusion-set)
TCellOwner::new - (std || exclusion-set)
TCellOwner::try_new - (std || exclusion-set)
TCellOwner::wait_for_new - (std || (exclusion-set && std))
The behavior of the Drop impl for TCellOwner is now conditional on which features are enabled; I put the cfg on the method rather than having separate impls since it seemed more likely to catch mistakes, and avoid a situation where std::mem::needs_drop returns false for some downstream user when that's never actually possible.
Creating this initially as a draft PR since it seems likely you'll also want some adjustments to the testing infrastructure.

Clippy checks are failing for 'alloc' . I will have a look tomorrow.

Oh, I bet it has to do with the uses in the tcell module, still trying to pull things in.  I thought it would be simpler not to cfg guard those but they probably need it.

I've pushed a change to your branch which fixes stuff up for the testing/docs/etc. Also I switched some of the cfg lines around so that they were all of the same form. Also, the Cargo.toml change forces a MSRV of 1.60, so I thought I might as well formalize that.
For TCellOwner::wait_for_new the condition (std || (exclusion-set && std)) reduces to just std, but I guess you did it this way so that it is clearer to the person reading the docs, so that they realize that they can add std to the exclusion-set feature. So I left that as it was.

I can see my change on your branch, but it's not showing up here. Anyway, if this all looks okay to you then I'll merge the PR. If my change doesn't come through I'll add it afterwards.
I think for testing the exclusion-set feature, the existing tests should be okay. Or can you think of anything else that I should be testing in this case?

I think I see the commit here, unless there was more than one.
All that sounds good/correct to me.

Thanks. I'll check over it all again before doing a release

Okay, it's released now in 0.5.4. Thanks for getting this sorted out.


about the support for the position of vehicles and RSU

Hello! My lab is now doing some research about Internet of Vehicles and V2XSim may be very useful for our research.
But my research need the specific positions of every vehicle and RSU and I didn't find this kind of message in the file or codes in the Repo.
So if specific positions can be incorporated in later versions, it will be very helpful to my research. Thanks a lot!

Hi @flow233-ai, I believe we do have the specific position (if I did not misunderstand your question).
The following code snippet would give the positions of vehicles and RSU:
from nuscenes.nuscenes import NuScenes as V2XSimDataset
v2x_sim = V2XSimDataset(version='v2.0-mini', dataroot='/mnt/d/data/v2x_sim_2.0_mini', verbose=True)
# To investigate a single scene
my_scene = v2x_sim.scene[0]
first_sample_token = my_scene['first_sample_token']
my_sample = v2x_sim.get('sample', first_sample_token)

def get_pose_rec(v2x_sim, channel):
    ref_sd_token = my_sample['data'][channel]
    ref_sd_rec = v2x_sim.get('sample_data', ref_sd_token)
    return v2x_sim.get('ego_pose', ref_sd_rec['ego_pose_token'])

get_pose_rec(v2x_sim, 'LIDAR_TOP_id_0')
# outputs:
#{'token': 'dn3315qva8ka52f5j234j451t840ll96',
# 'timestamp': 6,
# 'rotation': [3.9947416358725856e-07, 0.0, 0.0, 0.9999999999999202],
# 'translation': [-11.506108283996582,<PHONE_NUMBER>9697266, 0.1524023413658142]}

get_pose_rec(v2x_sim, 'LIDAR_TOP_id_1')
# outputs:
#{'token': 'i1s306ewwt12du8d5lti46l7mb79jay1',
# 'timestamp': 6,
# 'rotation': [0.6978317588164028, 0.0, -0.0, -0.7162617094241502],
# 'translation': [-3.5915331840515137,<PHONE_NUMBER>373047, 0.0]}

V2X-Sim follows the schema of nuScenes. As described in their documentation, ego_pose provides the rotation and translation of each vehicle with respect to the global coordinate system.
Note that being different from the documentation provided by nuScenes, the z of translation of the RSUs (id_0) in our V2X-Sim dataset can have values other than 0 (since the RSUs are not located on the ground level).

OK. The ego_pose is exactly what I need. Thanks a lot!


skip thumbnailing original image, use original jpeg if possible; resolves #1348; resolves #1285

lgtm


Convert formatted messages to f-strings

This will make the error reporting code easier to read.

@scottdtaylor95, @shak360 can explain this.


reverse face with holes

When reversing a face with holes, the holes should also be reversed
A face can be reversed either by reversing the face itself
Or by reversing one of its wires

fixed


Checking the number of axes

I was looking at the Dimension trait: there is a ndim method which is marked with #[doc(hidden)] in the trait definition:
#[doc(hidden)]
    fn ndim(&self) -> usize;

Why is this the case? Is it somehow NOT the "right" way of checking how many axes an array has at runtime?

If you have an instance of ArrayBase, you can use ArrayBase's ndim method. Note also the NDIM associated constant on the Dimension trait. However, if you want to know the number of elements in an arbitrary D: Dimension instance, there isn't a great way to do that right now (best solution using non-hidden methods is dim.as_array_view().len()).
I'm not sure why Dimension::ndim method is currently hidden; I assume it's that way just to minimize the size of the public API. I am in favor of exposing the Dimension::ndim method.

The NDIM constant is great to do compile-time checks, but it returns None for dynamic dimensions, where ndim instead provides the actual value at runtime.
If we are ok with exposing it I can file a PR.


⚠ Bofrost.nl has degraded performance

In f47d418, Bofrost.nl (https://www.bofrost.nl) experienced degraded performance:

HTTP code: 200
Response time: 979 ms

Resolved: Bofrost.nl performance has improved in 2233c2f.


Topbar selection not marked after page change

Hello, every time I change the page on my syte and the content changes (actually under deployment) the blue line which mark the activ page won't change.
Example:

starting with yarn start it opens with the main page and the main page is selected
navigate to imprint the page switches, the content is loaded but main page is still marked as actual

This happens every time the content changes. A second click on the current page navigation item will mark them as active.
Does it have to do something with the error I got on the developer console?
Material-UI: The key stepsContainer provided to the classes prop is not implemented in BaseDialog. You can only override one of the following: container,bottomMargin.

Hello @darkmatus,
Actually, the page is changing the address? You can see here a dashboard page: https://alexanmtz.github.io/material-sense/#/dashboard with the page marked, so the link is actually changing the URL?
As in our live version, it is fully working, it seems something related to your environment.

Hi,  yes the URL is changed.
I also rollback the package versions to the repo versions because I did a package Update.

So @darkmatus you need to debug https://github.com/alexanmtz/material-sense/blob/master/src/components/Topbar.js#L103
To check if is returning properly the index to mark the tab.

I will debug it after my vacation.

Thanks, I found it. the  <Topbar currentPath={currentPath} /> was missing.

that's great @darkmatus !


Make the onbootsec parameter to attribute

This is to make the OnBootSec parameter to control via attribute when the chef-client runs as a timer service,
Description
This is to make the OnBootSec parameter to control via attribute when the chef-client runs as a timer service.
There are cases chef-client run after the boot is elapsed, becuase of the default 1min and there should be a mechanism to control this parameter.
Changing this parameter to hgher value seems to be fixing this and should be control it via attribute, keeping 1 min as default.
Issues Resolved
There are cases chef-client run after the boot is elapsed, becuase of the default 1min and there should be a mechanism to control this parameter.
Changing this parameter to higher value seems to be fixing this and should be control it via attribute, keeping 1 min as default.
Check List

[ ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable
[ ] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

Issue https://github.com/chef-cookbooks/chef-client/issues/627 probably be fixed by this PR

I think this is change is a good idea, but I don't think this is the right way to do it and this is complicated by what looks like a bug from confusing behavior.

The properties delay_after_boot, interval, and splay are eventually used as systemd time spans.
delay_after_boot and interval accept arbitrary strings, so they can be a number of seconds eg '60' or it can include time units eg 5h30m.
splay is coerced to an integer so it is assumed to be a number of seconds.

Appending sec onto the value specified for delay_after_boot in recipes/systemd_service.rb could end up with incorrect values like '5h30msec. That also means the current behavior of interpolating interval is incorrect. Since bare values are interpreted as seconds, the code in the recipe should probably use the values directly:
      'OnBootSec' => node['chef_client']['delay_after_boot'],
      'OnUnitInactiveSec' => node['chef_client']['interval'],
      'RandomizedDelaySec' => node['chef_client']['splay'],

@vineethp088 Could you please make changes per suggestion here ? then I guess we would be good to merge the PR.
Thanks


Why access_token instead of id_token?

Wonder, why not return id_token instead access_token? If id_token is return, then userFromToken() will not encounter mapUserToObject() error.
    public function user()
    {
        ...
        return $user
            ->setToken(Arr::get($response, 'access_token'))
            ->setRefreshToken(Arr::get($response, 'refresh_token'))
            ->setExpiresIn(Arr::get($response, 'expires_in'));
    }

Hi @StarkLiew, thanks for providing more feedback on this. I will look into it.
Related to #25

@StarkLiew Can you try release 0.4.4 and see if it works for you? Please let me know. :) Thanks!

@mikebronner Release 0.4.4 work like a charm... 💯  Thanks!

@StarkLiew Can you try release 0.4.4 and see if it works for you? Please let me know. :) Thanks!

@mikebronner Release 0.4.4 work like a charm... 💯 Thanks!


Add keyboard shortcut reference

Typing ? on any page should bring up a keyboard shortcut cheatsheet.
See https://github.com/electron/search-with-your-keyboard/#behavior for existing shortcuts

A nice example from messages.android.com:

(Hi Zeke! I paired with Nhori on some of the "good first issue"-labeled issues on W/S/C Code Day. There were some that I'd found interesting/challenging that have been swirling in the back of my mind, so I decided to look into them.)
I tried the keyboard commands on electronjs.org. I could get all of them to work except for Ctrl/Cmd + Enter. Is it supposed to work or has it been disabled purposely? How can I trigger it?
Should this cheatsheet be a modal dialog as per the sample from messages.android.com? Are there any other example modal dialogs in the website yet?

except for Ctrl/Cmd + Enter

I think that feature was added in a recent pull request that may not have made it to the website yet. https://github.com/electron/search-with-your-keyboard/pull/9

Are there any other example modal dialogs in the website yet?

No I think this would be the first! :)

So one of the most common ways to implement a modal dialog is with Bootstrap, and I did see references to Jumbotron (a Bootstrap feature) but I think you're just using the concept of jumbotron rather than the Bootstrap implementation i.e. for the electronjs.org landing page. (Though I did see a shell script called bootstrap and got confused for a sec!)
Then I searched within Primer and Basecoat (which I realize is deprecated now in favor of Primer) but there didn't seem to be any preexisting features that I could build on for modal dialogs.
I'm currently experimenting on my branch in main.html, having added a new SCSS file for modal dialog styling and a Javascript file under scripts, based on the W3Schools implementation: https://www.w3schools.com/howto/howto_css_modals.asp
I could probably put modal dialog creation in a Handlebars template, similar to this CodePen example, if that would be more useful: https://codepen.io/informa/pen/ogBmLK

The keyboard handler is working!
Initially there was a conflict between the behavior of "/" and "?", as the keyboard behavior event handler for "/" was ignoring the Shift key and would interpret "?" as "/". But I resolved that by making sure that our event handler was handled first using the capture phase. If it determines that "?" is being pressed, it stops propagation so the existing event handler for the keyboard behaviors won't kick in. So it brings up the cheatsheet successfully, while allowing "?" to be typed into input fields, as well as any text to be entered into the search input field behind the modal.
I'm wondering if it would make sense to move any of this code into https://github.com/electron/search-with-your-keyboard/blob/master/index.js?
The other aspect I'd like your input on is making the display prettier! I used a similar color scheme to the search tools, though I'm unsure if there are specs I should be following re spacing.
Also please note that in trying to emulate the table on https://github.com/electron/search-with-your-keyboard/#behavior I don't have the cute key styling. I could either try to get the .markdown-body kbd styles from the readme working or use CSS to emulate it (kbd isn't deprecated but CSS is probably better longterm?).

👏 that is looking really nice!
Feel free to open a PR here and give it a [WIP] prefix so folks know it's a work in progress. That will make it easier to discuss what code should live where. :)

You will need to fork the repo, create a branch on your own fork, then create a pull request from your fork. See https://help.github.com/articles/fork-a-repo/
Since you've already cloned the project, you can just change the git remote in your .git/config file to the URL of your new fork.

I think I figured out how to do that just before I called it for the night.
Here's where I'm at now: https://github.com/electron/electronjs.org/pull/1309
Thanks again for all the help!

It's finished in #2088.


Presentation (reveal=silent, focus=true) not "focusing" when errors are present

Consider the following tasks.json file:
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
         "label": "(Hy) Run pytest",
            "type": "shell",
            "command": "${config:python.pythonPath} -m pytest",
            "group": {
                "kind": "test",
                "isDefault": true,
            },
            "presentation": {
                "reveal" : "always",
                "focus": true
            }
        },
        {
            "label": "(Hy) Check syntax",
            "type": "shell",
            "command": "pipenv run hy ${file}",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "presentation" : {
                "reveal": "silent",
                "focus": true
            }
        }
    ]
}

Consider the second task, I would expect VS Code to "focus" on the terminal when errors are present (and thus the task output is being "presented").
I have the following setup:
Version: 1.41.1
Commit: 26076a4de974ead31f97692a0d32f90d735645c0
Date: 2019-12-18T15:04:31.999Z
Electron: 6.1.5
Chrome: 76.0.3809.146
Node.js: 12.4.0
V8: 7.6.303.31-electron.0
OS: Linux x64 5.0.0-37-generic

In short it seems that "focus" property does not work when "reveal" is set to "silent".


Fix attempt - Can't click scroll bar in the player side playlist-card

Fixes #3073
Not sure if a wanted solution.
Div created for background image seems to be blocking the scrollbar.
Not using the background image in the player side playlist and in the floating player list allows to avoid it.

Images

That should be fine, awesome!


Have any way to kick off mqtt client from server side forcely?

Environment

OS: CentOS7
Erlang/OTP:
EMQ: 2.2

Descriptiop
Hi EMQ team:
We are trying EMQ server and want to know that have any way to kick off specific mqtt client from server side forcely ??
From the server manager view, this function should be useful.
Thank you.

Had found this function from document


Babel 7 example readme with warning

Summary
Added README.md with warning about incompatibility between jest, node 10 and npm to example using Babel 7 to avoid users spending time trying to fix a known issue.
Test plan
N/A

Nope, both npm and pnpm fail. Tested on Windows 10 and Ubuntu 16.04.

$ git clone git@github.com:nidkil/jest-issue.git
Cloning into 'jest-issue'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 18 (delta 3), reused 17 (delta 2), pack-reused 0
Receiving objects: 100% (18/18), 41.70 KiB | 410.00 KiB/s, done.
Resolving deltas: 100% (3/3), done.
$ cd jest-issue
$ node -v
v10.13.0
$ npm -v
6.4.1
$ npm i

><EMAIL_ADDRESS>install /Users/simen/Development/jest-issue/node_modules/fsevents
> node install

[fsevents] Success: "/Users/simen/Development/jest-issue/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" already installed
Pass --update-binary to reinstall or --build-from-source to recompile
npm notice created a lockfile as package-lock.json. You should commit this file.
added 742 packages from 373 contributors and audited 21316 packages in 19.078s
found 0 vulnerabilities

$ npm t

><EMAIL_ADDRESS>test /Users/simen/Development/jest-issue
> jest

 PASS  ./sum.test.js
  ✓ adds 1 + 2 to equal 3 (4ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.386s
Ran all test suites.

nidkil@LOVE-IT c:\dev
$ git clone https://github.com/nidkil/jest-issue.git
Cloning into 'jest-issue'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 18 (delta 3), reused 17 (delta 2), pack-reused 0
Unpacking objects: 100% (18/18), done.
nidkil@LOVE-IT c:\dev
$ cd jest-issue
nidkil@LOVE-IT c:\dev\jest-issue
$ node -v
v10.9.0
nidkil@LOVE-IT c:\dev\jest-issue
$ npm -v
6.2.0
nidkil@LOVE-IT c:\dev\jest-issue
$ npm i
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY<EMAIL_ADDRESS>(node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
added 674 packages from 353 contributors and audited 21316 packages in 35.169s
found 0 vulnerabilities
nidkil@LOVE-IT c:\dev\jest-issue
$ npm t

<EMAIL_ADDRESS>test c:\dev\jest-issue
jest

PASS  ./sum.test.js
√ adds 1 + 2 to equal 3 (3ms)
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        1.702s
Ran all test suites.
nidkil@LOVE-IT c:\dev\jest-issue
$

Seriously, now it is working? WTF? Sometimes this work is enough to drive you insane :-)

Thanks for looking into this @nidkil!


Xcode 12 build errors

Since updating and attempting to compile with Xcode 12 beta I've getting build errors from McPicker for these two functions
public class func flexibleSpace() -> McPickerBarButtonItem
public class func fixedSpace(width: CGFloat) -> McPickerBarButtonItem

If anyone needs a branch that fixes this in the time being: https://github.com/warpling/McPicker-iOS

@warpling, with your version I'm getting Cannot override a Self return type with a non-Self return type with Xcode 12 Beta 4.
Looks like it needs to return Self and not McPickerBarButtonItem

Huh, strange. I didn't have to change that to be able to compile with Swift 5 in Xcode 12 (not sure which beta).

I haven't done extensive testing, but I saw this same issue today and it seems to be the result of Xcode 12 switching my app's Swift version from 4.2 to 5. I had a compile-time error about the override keyword, and I changed the Swift level in Build settings back to 4.2 (as it is in my production Xcode 11.6), and the app built without a problem.

How to fix this man? Cannot override a Self return type with a non-Self

@UtkuDalmaz not sure. I just accepted the changes Xcode suggested and it compiled for me.

It may also depend on what you're using.
For me, with SPM and XcodeBeta 4/5, I needed to change 2 files that it was complaining about. The changes made though are different than in @warpling branch. If I get a chance, I'll make a branch.

Started on a fix for this. Checkout https://github.com/kmcgill88/McPicker-iOS/pull/69 comments more than welcome!

3.0.0 has been published and requires xcode 12.


@Obfuscate only works once?

So, if I have two classes with @Obfuscate -- only one of them (first alphabetically) will be obfuscated? :()

@Obfuscate companion object { ... } doesn't seem to work either

actually that was because of an incremental build..


doc: init readme and contributing files

Close #5
Changes proposed in this pull request:

Add documentation about the project
Add documentation about how to contribute
Add issue template
Add pull request template

Make sure those checkboxes are checked if you want to be reviewed

[x] Your branch should be mergeable on current master
[ ] Tests should pass
[x] Linter should pass
[ ] Code coverage should stay higher than 90%
[x] Squash your commits to one commit and follow those recommendations about writing good commit message

Coverage remained the same at 91.892% when pulling cb379507772b28e4a316b238341838b3f0ad6840 on Gregcop1:feature/init-doc into 2a9b58843ac4305f51dd0a707bac80169074cc46 on coopTilleuls:feature/init-doc.

Coverage remained the same at 91.892% when pulling ca1edddfb1a0fa6723301b3bf10bd92f65f5950d on Gregcop1:feature/init-doc into 2a9b58843ac4305f51dd0a707bac80169074cc46 on coopTilleuls:feature/init-doc.

Close #5  #


Goals section

Here's goals section

Hi @sheybusta there are some tutorials that help to make responsive layout with bootstrap

https://youtu.be/1v_XcJsGtyA

https://youtu.be/4sosXZsdy-s


BFCL April 8th Release

This PR is for the leaderboard April 8th release:

Fixed an oversight that was introduced in #299. For function-calling (FC) models that cannot take float type in input, when the parameter type is a float, the evaluation procedure will convert that type to number in the model input and mention in the parameter description that This is a float type value.. An additional field format: float will also be included in the model input to make it clear about the type.
Update the model handler for Claude, Mistral, and OSS to better parse the model output. This is to patch the handler we released in #299, as it sometimes fails to parse even though the model output is valid. This affects only the prompting models; the FC models are unaffected.

This PR DOES change the leaderboard score. We will update the leaderboard website shortly, in a different PR.

Co-authored-by: Charlie Cheng-Jie Ji<EMAIL_ADDRESS>Co-authored-by: Fanjia Yan<EMAIL_ADDRESS>

LGTM


Default API key is disabled

I recently got the following message from the YouTube API Services team:

Dear YouTube API Developer,
For your use of YouTube API Services, we have sent multiple reminders, which required you to submit a completed Audit Form with (i) fully-functional demo accounts, (ii) screenshots and (iii) documents in relation to your API Client. As a result we have reduced your quota access to YouTube Data API.
You have three (3) days to respond to this message with the requested information, failing which access to YouTube Data API would be affected.
Thanks,
YouTube API Services team

They reduced the quota limit from 25M to 12.5M queries per day:

Everyone is requested to create their own API key and client ID/SECRET values, otherwise youtube-viewer will no longer work.
Check the instructions in README.md for how to create your own API key.
Edit: the default API key of youtube-viewer is now disabled.

This would also be a good time to get in touch with distribution package maintainers. Distributions that have a nonprofit API account with Google may be able to include distribution-specific keys with their packaged versions.
I'm the Arch maintainer, and we're not yet set up for that, but I believe someone's working on it for unrelated reasons.

It's nothing much that I can do about it...
If a distribution wants to package youtube-viewer with an API key, I can modify the program to read the default values from /etc/youtube-viewer/api.json (if this file exists).
Then, if an user chooses to use their own API key, they can specify it in ~/.config/youtube-viewer/api.json.
By the way, mps-youtube is also affected: https://github.com/mps-youtube/mps-youtube/issues/1063
Additionally, something somewhat funny: https://stackoverflow.com/a/60264537

Then, if an user chooses to use their own API key, they can specify it in ~/.config/youtube-viewer/api.json.

How should that .json file look? I have one from kodi's youtube addon named api_keys.json. It looks like this and it contains the api keys I had made for myself a few days ago when google started all that bs
{
    "keys": {
        "developer": {},
        "personal": {
            "api_key": "xxx",
            "client_id": "xxx",
            "client_secret": "xxx"
        }
    }
}

Will youtube-viewer work if I just copy it over to the forementioned folder and rename it?

The format of ~/.config/youtube-viewer/api.json is:
{
    "key":           "API_KEY",
    "client_id":     "CLIENT_ID",
    "client_secret": "CLIENT_SECRET"
}

See: https://github.com/trizen/youtube-viewer#logging-in

Still no go. This is how it looks now
{
        "key": "xxx",
        "client_id": "xxx",
        "client_secret": "xxx"
}

And the error remains the same. I have to leave for work now, I will look it up when I get home.
Getting the api keys from google and inserting them properly on the addon was a real pita, that is why I copied the file over as I did for all my devices that run kodi.

it needs 5/10 mins to propogate to the gogle servers

If you're logged in using the previous credentials, try youtube-viewer --logout.

It's nothing much that I can do about it...
If a distribution wants to package youtube-viewer with an API key, I can modify the program to read the default values from /etc/youtube-viewer/api.json (if this file exists).
Then, if an user chooses to use their own API key, they can specify it in ~/.config/youtube-viewer/api.json.
By the way, mps-youtube is also affected: mps-youtube/mps-youtube#1063
Additionally, something somewhat funny: https://stackoverflow.com/a/60264537
Edit: as an alternative to using an YouTube API key, I created a fork of youtube-viewer, called straw-viewer, which uses the API of invidio.us to search for YouTube videos. The project is in its early stages of development and it may lack some features, but, for basic stuff, like searching for videos and playlists, it should work without many issues.

doesn't youtube-viewer already have invidious support, with the "--invidious!" command? Also the title itself is misleading: unless Google restricts people making API keys, we can just create our own API key for youtube-viewer/mpsyt and use that.

Do I also need to tell youtube-viewer about my youtube account, or is creating the api.json file sufficient?

@HawaiinPizza: doesn't youtube-viewer already have invidious support, with the "--invidious!" command?

Not really. The API of invidio.us is used only in extracting the streaming URLs for some videos.

@rien333: Do I also need to tell youtube-viewer about my youtube account, or is creating the api.json file sufficient?

Specifying the API key in api.json should be sufficient. The client ID/SECRET values are optional and they are used only for logging in.

In lite of having to use personal API key, I changed my API to the one I use for mpsyt, and for mpsyt it works. However, for youtube-viewer, it doesn't. I use the same key for mpsyt, I remove the client_id and client_secret thinking maybe they caused it, they didn't change anything. I made my own client_id and client_secret and put it in, and it didn't work.
The error message I'm getting is
** GET https://www.googleapis.com/youtube/v3/search?key=(KEY)&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video ==> 500 Internal Server Error (1s)
** GET https://www.googleapis.com/youtube/v3/search?key=(KEY)&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video ==> 500 Internal Server Error
** GET https://www.googleapis.com/youtube/v3/search?key=(KEY)&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video ==> 500 Internal Server Error
** GET https://www.googleapis.com/youtube/v3/search?key=(KEY)&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video ==> 500 Internal Server Error
** GET https://www.googleapis.com/youtube/v3/search?key=(KEY)&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video ==> 500 Internal Server Error
[500 Internal Server Error] Error occurred on URL: https://www.googleapis.com/youtube/v3/search?key=[...]&maxResults=20&part=snippet&prettyPrint=false&q=wow&type=video
Use of uninitialized value in numeric gt (>) at /usr/share/perl5/vendor_perl/WWW/YoutubeViewer/Utils.pm line 224.

I copied the url it mention [the (KEY) part was my API key] and it works.
I tried looking into Utils.pm, and at line 224, it's this code
sub has_entries {
    my ($self, $result) = @_;
    ref($result) eq 'HASH' and ($result->{results}{pageInfo}{totalResults} > 0);
}

I removed the and statment, but it didn't do anything, only removed the "Use of uninitialized value in numeric gt" error message
I am using YouTube Viewer 3.7.4 on Arch Linux, using the latest youtube-viewer package.

it needs 5/10 mins to propogate to the gogle servers

I logged in on my pc via ssh and tried it again 1+ hour after making the post above, but the error was the same.

If you're logged in using the previous credentials, try youtube-viewer --logout.

I do not use credentials on any app that plays content from youtube. I tried it though, but the result was the same.
Just to be sure, the api.json function is availabe to youtube viewer 3.7.4 only, right? Because that is what I have. If not, I will have to clone the git repo and try the git version, obviously because it is newer.
Bottom line, I am really fed up with google's bs, because I had similar issues while I was importing my keys to kodi's addon too. I may give straw-viewer a shot later on.

Just to be sure, the api.json function is available to youtube viewer 3.7.4 only, right?

Yes. That is correct.

The API key starts with AIza... (39 characters long).
The client ID has the form: xxx.apps.googleusercontent.com
The client SECRET is a string of 24 random characters.

The API key starts with AIza... (39 characters long).

Check!

The client ID has the form: xxx.apps.googleusercontent.com

Do I also need the ".apps.googleusercontent.com" part? The kodi addon automatically chops it off, so it was not in the file when it was copied.

The client SECRET is a string of 24 random characters.

Check!
Thank you :)

Try:
youtube-viewer --debug test

It should print an URL with the API key included. Check to see if it actually uses the correct key.
Optionally, copy-paste the URL into a browser to see if if that works and if there are any error messages.

 I fixed it now and it is working as it should. Sorry for all the hussle guys.
Thank you for pointing out the --debug switch. I was able to check the api key with it when youtube-viewer runs and found out that it used AIza..22Q which is youtube-viewer's default, instead of mine which is AIza...GR4.

so paste some keys...

Not sure whether that's gonna help.
I used yt-viewer w/ a very old gentoo key which worked for about a day (and maybe half a dozen searches), but 403's since yesterday evening CET.
I then tried the key arch uses for chromium. 403's as well (w/ and w/o ID and secret)
The little paranoid guy in the back of my head thinks they're shutting down API access to enforce using the browser which is, given of the awesome HW acceleration support in linux browsers, nice /sarcasm
yt-dl still works, so you can play a URL w/ eg. mpv.

Update: the key works again.
Either google is fiddling around or this is due to severly capped quotas in which case you'll need a private key.

@clort81
The keys are pesonal and linked to my google account, so I won't share them.
@luebking
I can't confirm that. Removing api.json makes the 403 error come up again. And the same happens on kodi's youtube addon.
And how did you get the keys from those distros? Debian had something similar for its chromium in /etc/chromium.d/apikeys. I tried them in kodi's addon, but they did not work.

Chromium PKGBUILD and the gentoo key was in some post, 5 years ago or so.
As mentioned, it meanwhile works again, so I guess this is a quota thing (and was exceeded last night)

Can't make it work because youtube-viewer keeps using the default API key. I have generated API keys and put them to ~/.config/youtube-viewer/api.json
~$ cat ~/.config/youtube-viewer/api.json
{     "key":           "***ftQ",     "client_id":     "****",     "client_secret": "****" }
Here is the debug output:
> youtube-viewer --debug test
** GET https://www.googleapis.com/youtube/v3/search?key=AIzaSyA2PQakgMYbX3U3imqplLMhpfM8mzEn22Q&maxResults=20&part=snippet&prettyPrint=false&q=youtube-viewer%20test&type=video ==> 403 Forbidden (1s)
[403 Forbidden] Error occured on URL: https://www.googleapis.com/youtube/v3/search?key=AIzaSyA2PQakgMYbX3U3imqplLMhpfM8mzEn22Q&maxResults=20&part=snippet&prettyPrint=false&q=youtube-viewer%20test&type=video

Notice it keeps using 22Q instead of my key ftQ. I've tried youtube-viewer --logout and launching youtube-viewer in a new terminal window. My distro is Elementary OS Juno (5.0)

Make sure to have the latest version of youtube-viewer installed (3.7.4).

I have my Youtube Data API key specified in .config/youtube-viewer/api.json, but I'm still getting a 403 errorr. youtube-viewer --debug test throws
** GET https://www.googleapis.com/youtube/v3/search?key=AIzaSyMyKeySRM&maxResults=20&part=snippet&prettyPrint=false&q=test&type=video ==> 403 Forbidden (1s) [403 Forbidden] Error occurred on URL: https://www.googleapis.com/youtube/v3/search?key=[...]&maxResults=20&part=snippet&prettyPrint=false&q=test&type=video Use of uninitialized value in numeric gt (>) at /usr/share/perl5/vendor_perl/WWW/YoutubeViewer/Utils.pm line 224.
When I copy that URL into Firefox, I get
"message": "Access Not Configured. YouTube Data API has not been used in project<PHONE_NUMBER>72 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=MyProjectName then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry."
The API is enabled and has been for a few months. Afaik it worked with mps-youtube or a similar youtube program when I made the key.

Try to create a new project with a new API key. Apparently, Google automatically disables the API keys that have not been used for 90 consecutive days.
See: https://stackoverflow.com/questions/55620912/youtube-may-disable-your-inactive-projects-access-to-the-youtube-data-api-servi

So all that means, if i want to use it i will be tracked by google again ?

@asteriosos: Sadly, yes. As an alternative, I created straw-viewer, which uses the API of invidou.us, and thus it does not require an YouTube API key.

I have the following issue with my keys and I would like to ask if anyone else has it too.
I have made my personal keys and I use them on youtube-viewer and on kodi's youtube addon. That is... 4 devices in total, youtube-viewer on my pc and the kodi addon on the pc, and old laptop and a rpi3b+. In general, I have zero issues during the day and every search works as it should with no 403 errors.
But sometimes, that 403 error comes up when I least expect it too and it happens only on mornings (6.30am to 8.30am). The api resets the counter daily at 12pm pacific time, which is 10am for me here on gmt+2.
I make a search on the kodi addon and I get a 403. Then I make another one on youtube viewer and it works. Once the playback is over, I make another one and I get the 403.
What is even more weird, sometimes I search for something, e.g. song A, and I get the 403 error. I search again the very next second for e.g. song B and there is no error, just results that play! And it happens on both youtube-viewer and kodi's addon.
Does it only happen to me, or is the new api somewhat garbage? I have checked the "stats" table on my google account and the bars are merely visible.
Irrelevant to the above, but I have access to a google account that can not be deleted (info upon request). Do you want me to use it and make a set of keys for youtube-viewer?

It may be promised the "Incognito" mode feature implementation. Of course, it's a piece of work, you can't use API tokens and needs reverse engineering of browser flow. But it'll be player with keeping privacy.

One more thing that proves, at least for me, that the new api is garbage.
I am following the usual routine I described above, like on every other morning. Earlier, I tried to play this list here
youtube-viewer -s --pp=PLPl862cpmLY68gNTNA8irOPNNo9jf8wAL
And from all 12 songs, only 5, 6, 7 and 10 played and all the others were just skipped with a 403 error.
Everything starts as it should, with the descrtiption at the top
=> Description
------------------------------------------------------------------------------------------------------------------
blablabla

then the actual url of the video and its info
------------------------------------------------------------------------------------------------------------------
=> URL: https://www.youtube.com/watch?v=Jy3bsT2kH-k
------------------------------------------------------------------------------------------------------------------
                                          =>> Anser x Eversor - ΚΙΧ <<=

-> Channel   : Anser
-> ChannelID : UCtlJcPWvqTQjgAzkmaUykCg
-> VideoID   : Jy3bsT2kH-k
blablabla
------------------------------------------------------------------------------------------------------------------

And yet nothing plays! Doing the same with the --debug option gives similar results  It plays a different set of videos but it pops the usual 403 error on the ones that do not play, so I now definitely know the reason why they do not play.
What is even worse is that if I try to open a video on mpv, which simply uses youtube-dl to parse the urls and play them, the 403 error comes up again! I do have my own api keys, but how the f am supposed to make mpv use them?
Youtube-viewer 3.7.5, mpv 0.32, youtube-dl 2020.03.24.

Whats about https://github.com/TeamNewPipe/NewPipe the use a way to analyze the website so they don't need a google account.... maybe this way can be ported here also ?

Can I somehow disable the video description from being printed in the terminal? It will help me a lot with debugging what plays and why.
In other news, one more proof that the new api is garbage. When you search something in kodi, the results are listed as
Channels >
Playlists >
Live >
result 1
result 2
...

When all the api requests are used, the user gets a notification and the addon returns to search. Yesterday, and for the very first time ever in the 6+ years that I use it, the addon returned a blank page! Even the 3 main categories at the top were missing!
All that at 4pm local time, 6 hours after the api resets its counters.

Another first today, for youtube-viewer this time.
I tried playing the list I mentioned above, and for the first time ever ALL the songs were skipped due to 403 error! All that on 3.20pm local time (gmt +2 +summer time), 5 hours and 20 minutes after the api does the reset and with no usage inbetween!

I made a big discovery about my "all playlist entries go to 403" issue!
I found out that youtube-dl stores some cache inside ~/.cache/youtube-dl and that removing it with
youtube-dl --rm-cache-dir
made all the playlist entries play as they should! There is also the option of --no-cache-dirwhich totally disables caching.
How about adding a variable or a parameter on youtube-viewer that clears the forementioned cache folder? Or make it run on every major update?
Other than that, I tried debian's keys I mention above and they do not seem to work. Comparing them to my keys, the api key and the client secret seem to have a proper "size", (39 and 24 characters respectively), but the client id is much smaller (45 vs 12 characters). Why?

Ok so guys i just dowloaded the program and it doesn't work.
(wasn't logged in)
if i understand i need to log in and ad my acount api?
Plz update the description to include a step by step guide.

Do you mean these?
https://github.com/trizen/youtube-viewer#logging-in

The new api is garbage, episode 10.
As of today, I get the 403 error all day long on both youtube-viewer and kodi. The output of youtube-viewer says nothing more than the 403 forbidden error, but the kodi addon says these in its log
2020-06-11 20:03:21.176 T:140451493947136   ERROR: GetDirectory - Error getting plugin://plugin.video.youtube/special/live/
2020-06-11 20:03:21.192 T:140453077533056   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.youtube/special/live/) failed
2020-06-11 20:03:29.611 T:140451502339840   ERROR: [plugin.video.youtube] Error reason: |accessNotConfigured| with message: |Access Not Configured. YouTube Data API has not been used in project<PHONE_NUMBER>61 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/youtube.googleapis.com/overview?project=498788153161 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.|

Does it mean I have to make new keys now?

As of today, I get this error in kodi
2020-06-19 07:07:03.998 T:140161903998720   ERROR: [plugin.video.youtube] Error reason: |badRequest| with message: |API key not valid. Please pass a valid API key.|
and this in youtube-viewer
[400 Bad Request] Error occurred on URL: https://www.googleapis.com/youtube/v3/playlistItems?key=[...]&maxResults=20&part=contentDetails,snippet&playlistId=PLPl862cpmLY68gNTNA8irOPNNo9jf8wAL&prettyPrint=false
After a full WEEK of pointless error messages in 2 different apps, that I had to... decrypt in order to find the real issue, it turns out it was the keys. How about getting an email to inform me in plain english, since I do use their own f*cking mail service?
 I won't make any new keys, because something else will break sooner or later, so this is the end for me and the kodi addon and youtube-viewer after 5+ years.
@trizen
Thank you for this great app! It has served me perfectly all those years.

@pitsi
Try FreeTube it has a local subscription system that doesn't need logging-in. As for this and Kodi, did YouTube change their API policy again? 2 month ago I had to input my API Key,Client Id and Client secret in api.json and it logged me in; but now even after putting them I can't log-in. Same for Kodi.
So what I did was to edit both of their json and xml files with my details above,enabled non-safe apps in Google and generated the OAuth Token via the menu; now I can log-in fine on both Kodi and YouTube Viewer.

Freetube seems to be a wrapper for the youtube web page. It is an electron based app after all. That means it works in a completely different way compared to youtube-viewer or kodi's addon, which access youtube's api directly, so no wonder it always works. So, as far as I am concerned, sorry but I will pass.

@asteriosos Something similar to NewPipe's approach for parsing the YouTube website directly: https://github.com/trizen/pipe-viewer

the instructions here on this github to set up an API Key seem to no longer to match up with the menus of google's cloud console.
It is confusing to say the least for a casual user


[8pt] Create "janitor" script in Python to delete all unnecessary-for-inundation files from the fim_run.sh output directory.

There are several intermediate files produced by fim_run.sh. The majority of these files are not necessary for inundation mapping. This takes up storage space. The janitor script will clear out these files. The script would be called at the very end of run_by_unit.sh and a flag will be added to fim_run.sh to use or not use this feature.

This is related to issue #94

If we could start a discussion here of exactly what files should be whitelisted and which ones could be deleted after the fim_run process, I can start putting this script together to do so.

rem_zeroed_masked.tif
gw_catchments_reaches_filtered_addedAttributes_crosswalked.gpkg
gw_catchments_reaches_filtered_addedAttributes.tif
hydroTable.csv
src.json

And since #94 is related to this, should that issue be addressed first so that I don't have to alter this whitelisting later?

I was thinking that the janitor script could also be responsible for addressing #94. We could simply rename the whitelisted files according to viz requirements, or duplicate the files and name the duplicates according to viz requirements.

That could possible work, but then it could be confusing for someone who is working on a module and not realizing that the files are being renamed after the fact.
Kind of a nitpicky thing, but if we were to follow this pattern for renaming even more files in the future I can see it being confusing.
Is there any reason for not wanting to change the name at the source as opposed to renaming it after?

Rationale for renaming after is to 1) reduce disruption and possible breaks in peoples' fim_run.sh runs, 2) the long names are helpful in the dev environment.
Think of the renaming or duplication as post-processing.

That's fair, I'll go ahead and start on the janitor script and implement the renaming from #94 within it.

So this "Janitor" script has been implemented as a "output_cleanup" module at the end of the run_by_unit.sh script. This module will handle any whitelisting or renaming of outputs, as well as any post-processing that needs to happen to the outputs on the HUC level.
With this new module, the following option flags have been added to the fim_run.sh script:

-p/--production, this will result in only saving only the following files:

rem_zeroed_masked.tif
gw_catchments_reaches_filtered_addedAttributes_crosswalked.gpkg
gw_catchments_reaches_filtered_addedAttributes.tif
hydroTable.csv
src.json

-v/--viz, this will result in only saving only the following files:

rem_zeroed_masked.tif (renamed to hand_grid_<huc_code>.tif)
gw_catchments_reaches_filtered_addedAttributes.tif (renamed to catchments_<huc_code>.tif)
src.json (renamed to rating_curves_<huc_code>.json)

Additionally, the nwm_feature_id's are added to the src.json file when this option is used.

-w/--whitelist, any addition files you wanna keep in a production(-p) or viz(-v) runs.

This covers everything in this issue, #94, and most of #111 (aside from aggregating the HUC8 data into HUC6 data which will have to be a whole other script of its own).
Does this cover everything?


Fix doppelganger app to work with new scripting engine PR

It should work in both new and old version now.

Fixes issues on v8 and works on QtScript


AngularJS: Showing weird behaviour only in Electron

I wrote a little Angular app to play around with Angular Material a bit. I then wanted to use the .html + .js file inside an Electron app.
However, as I noticed, Angular for some reason doesn't really work in Electron, but only in Electron. If I try the exact same script (same link to dependencies, etc.) in Firefox, Chrome, or Safari, it works just as expected. I also posted the script online on StackOverflow, with getting an answer that the Angular Code was not containing any mistakes.
If I, however, open the code in Electron (0.35.1 on OS X El Capitan), the script shows weird behaviour and finally 'crashes' (onclick events break). Down below, I have two videos showing the difference between how it is supposed to work (in Chrome 46) and how it doesn't in Electron:
(I wasn't able to create .gifs of .movs without getting a new App Store card or sacrificing length, so I hope Google Drive is okay)
https://drive.google.com/file/d/0B3S33WrzEUwMV3ladTFkc1RIYWc (Chrome 46, working correctly)
https://drive.google.com/open?id=0B3S33WrzEUwMZnREdHJiUE0wV1k (Electron 0.35.1, not working correctly)
As I said, both Chrome and Electron run the exact same code, but the result is different. The Angular code also proved to be all right. Thanks.

Can you provide the code so i reproduce the issue ?

Sure,
this plunker contains the Angular and HTML code, the code for starting the Electron app is (index.js):
var app = require('app');
var BrowserWindow = require('browser-window');
var mainWindow = null;

app.on('window-all-closed', function() {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('ready', function() {
  mainWindow = new BrowserWindow({width: 700, height: 400, 'min-width': 700, 'min-height': 400});
  mainWindow.loadURL('file://' + __dirname + '/index.html');
  mainWindow.on('closed', function() {
    mainWindow = null;
  });
});

The plunker already contains all necessary dependencies (Angular, Angular Animate, Angular Aria, and Angular Material), so if you want to try the code with Electron, make sure to use a package.json like this (for letting npm install the dependencies):
{
  "name": "someapp",
  "version": "1.0.0",
  "description": "",
  "main": "lib/index.js",
  "scripts": {
    "start": "electron ."
  },
  "devDependencies": {
    "electron-prebuilt": "0.x.x"
  },
  "dependencies": {
    "angular": "1.4.8",
    "angular-animate": "1.4.8",
    "angular-aria": "1.4.8",
    "angular-material": "0.11.x"
  }
}

Running npm start should do it.

I just noticed that for some reason, this problem only occurs with the prebuilt version of Electron. I used electron-packager for building an .app (OS X), and inside this application, it works just fine. Only when I run the app with the prebuilt executable (as shown above in the package.json), this weird behaviour occurs.

The dialog is closed fine for me.
electron prebuilt (0.35.1)
Win 7 64bit

I've just tried it again with the prebuilts of 0.35.0 and 0.34.4 again, both behave just as 0.35.1 did.

On Ubuntu 15.10 it also works fine. I don't have a mac so I can't test it on OSX.

I've just tried it on another Mac, there it worked, too. So it seems like this is only a problem on my system, but I have still no idea why...

I suggest reporting this to https://github.com/mafintosh/electron-prebuilt since it is more like an issue there.


Musca and flash bug fixes

The main change in this PR is to fix the Musca-A1 and -B1 builtin targets. The memory maps were corrected and now include S/NS aliases. For B1, the QSPI flash algo was replaced, and an algo for eFlash was added.
In addition, FlashBuilder was fixed so that it always inits the flash algo for VERIFY prior to reading flash contents. This is required for some flash memories like QSPI that are not accessible until the peripheral is configured by the flash algo Init() function. This was required for Musca.
Also included is a fix for a few cases where flash algos could return an error but no exception would be raised. (Related to the recent change to start raising exceptions on flash algo errors.)

/morph test