[OldDot Rules Migration] Individual expense rules

Details

This PR adds a new section to the Rules Page: Individual expense rules. This section allows the user to:

update the receipt required amount
update the max expense amount
update the max expense age
enable or disable the billable mode
enable or disable eReceipts

Implementation details on how the actions listed above work can be found here
Fixed Issues

$ https://github.com/Expensify/App/issues/47013
PROPOSAL:
Tests

[ ] Verify that no errors appear in the JS console

Precondition: Make sure you have access to the workspaceRules beta. If you run the app locally you can modify the canUseWorkspaceRules or canUseAllBetas function in Permissions.ts to always return true.

Open the settings of any workspace.
Enable rules if they are disabled for the selected workspace. This feature can be enabled on the More Features page.
Check that the buttons in the first section work correctly in offline and online mode (check that values are updated correctly, that the correct screens are opened, etc.)

Offline tests

QA Steps

[ ] 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: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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 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(theme.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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[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.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/9a531778-5815-49f6-a537-6922f48742b3

Android: mWeb Chrome

https://github.com/user-attachments/assets/28159c12-f373-44fe-b163-e328718313c7

iOS: Native

https://github.com/user-attachments/assets/bc265547-0118-481c-aee1-2a96288949f9

iOS: mWeb Safari

https://github.com/user-attachments/assets/c8f351b5-fbe0-44a5-9452-7187284e03d4

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/ec688e85-eac2-414b-a07e-325c09a642aa

MacOS: Desktop

https://github.com/user-attachments/assets/474d130b-04b2-4423-bc60-eee5cae416e9

@marcaaron
I have one question. When we upgrade the policy, default max expense amounts are set:
function upgradeToCorporate(policyID: string, featureName: string) {
    const policy = getPolicy(policyID);
    const optimisticData: OnyxUpdate[] = [
        {
            onyxMethod: Onyx.METHOD.MERGE,
            key: `policy_${policyID}`,
            value: {
                isPendingUpgrade: true,
                type: CONST.POLICY.TYPE.CORPORATE,
                // HERE DEFAULTS ARE SET
                maxExpenseAge: CONST.POLICY.DEFAULT_MAX_EXPENSE_AGE,
                maxExpenseAmount: CONST.POLICY.DEFAULT_MAX_EXPENSE_AMOUNT,
                maxExpenseAmountNoReceipt: CONST.POLICY.DEFAULT_MAX_AMOUNT_NO_RECEIPT,
                glCodes: true,
                ...(PolicyUtils.isInstantSubmitEnabled(policy) && {
                    autoReporting: true,
                    autoReportingFrequency: CONST.POLICY.AUTO_REPORTING_FREQUENCIES.IMMEDIATE,
                }),
                harvesting: {
                    enabled: false,
                },
            },
        },
    ];

    // CONST.ts

      DEFAULT_MAX_EXPENSE_AGE: 90,
      DEFAULT_MAX_EXPENSE_AMOUNT: 200000,
      DEFAULT_MAX_AMOUNT_NO_RECEIPT: 2500,

Is this code still valid or should we set all these values to<PHONE_NUMBER>0?

Screenshots look pretty good to me!

Is this code still valid or should we set all these values to<PHONE_NUMBER>0?

@WojtekBoman What you have there appears to be correct. When the API is called to upgrade to corporate those are the default values we set.

Looks great so far!

I don't have beta access right now, so I set canUseWorkspaceRules to true. However, the fields in the Individual expense rules section show default values instead of being blank, as shown in the PR screenshot:

video

https://github.com/user-attachments/assets/3ff82230-2883-43e8-8b68-57b5297d7363

The fields are editable, and everything else works well. Could this behavior be related to not having beta access? Should we be concerned about this? Thanks.

I don't have beta access right now, so I set canUseWorkspaceRules to true. However, the fields in the Individual expense rules section show default values instead of being blank, as shown in the PR screenshot:
video

The fields are editable, and everything else works well. Could this behavior be related to not having beta access? Should we be concerned about this? Thanks.
cc: @WojtekBoman @marcaaron

I mentioned it here. When we upgrade our policy, the default values for rules are set

@WojtekBoman What you have there appears to be correct. When the API is called to upgrade to corporate those are the default values we set.

Sorry, I missed that. I'm testing on all platforms and will fill out the checklist.

Excuse @WojtekBoman, what should happen when we save a 'max expense age' equal to the maximum limit? Thanks.
https://github.com/user-attachments/assets/5c9f4fd2-7019-4a9d-aedc-6953e01b5d09

Excuse @WojtekBoman, what should happen when we save a 'max expense age' equal to the maximum limit? Thanks.
Screen.Recording.2024-08-26.at.10.29.55.mov

I asked about it here @marcaaron Could you take a look at it?

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
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb 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 either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[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(theme.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 the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[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

Android: Native

Android: mWeb Chrome

iOS: Native

https://github.com/user-attachments/assets/a03c2bb9-306b-4fdd-abcf-9d3b3ecd9eb8

iOS: mWeb Safari

https://github.com/user-attachments/assets/48453dce-a8ef-4dc5-b056-e35499305659

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/9ebd25c3-17e5-43b4-beda-97667ee00aad

MacOS: Desktop

https://github.com/user-attachments/assets/d3749738-9ff2-4c5f-8957-8d2cc8882a19

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/marcaaron in version: 9.0.26-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/puneetlath in version: 9.0.26-6 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add support for vendorData field

Good idea.
Is it worth adding Language and Website too?
http://www.sagepay.co.uk/support/12/36/protocol-3-00-additional-fields-transaction-registration

Thank you. I've added a unit test and merged.


Fixed a bug and added .plugin.zsh file

Ping on this @knu . It would be great to be able to use this as a plugin (without depending on a fork)


No way of spliting terminal

Issue Type: Bug
When you have one terminal, you have no way of spliting it. In order to achive it, you need to open a new second terminal, then the temilnal list pops up. At first, you may think you still can't split, but it's hidden for some reason. You need to hover over one of terminal on the list, and only then you can split. Of coure the split creates third terminal, while the second one is unnecessary. Please, just bring back the old layout, the list may look some how "cool" but it takes too mutch space and in my opinon i'ts kind of unintuitive. Old layout wasn't bad, it looked good, it was easy to use.
VS Code version: Code 1.57.0 (b4c1bd0a9b03c749ea011b06c6d2676c8091a70c, 2021-06-09T17:18:42.354Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (8 x 1992)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.90GB (9.10GB free)

Process Argv
D:\Studia\SysWbud\arm --crash-reporter-id ebf6eb1c-b85e-43f6-be6d-f3fe39f265ac

Screen Reader
no

VM
0%

Extensions (23)

Extension
Author (truncated)
Version

language-x86-64-assembly
13x
3.0.0

bracket-pair-colorizer
Coe
1.0.61

arm
dan
1.5.1

code-runner
for
0.11.4

reg
ion
1.0.3

bash-ide-vscode
mad
1.11.0

git-graph
mhu
1.30.0

vscode-docker
ms-
1.13.0

python
ms-
2021.5.926500501

vscode-pylance
ms-
2021.6.1

jupyter
ms-
2021.6.999230701

remote-containers
ms-
0.183.0

remote-wsl
ms-
0.56.4

cmake-tools
ms-
1.7.3

cpptools
ms-
1.4.1

powershell
ms-
2021.5.1

material-icon-theme
PKi
4.7.0

avr-support
roc
0.0.1

markdown-preview-enhanced
shd
0.5.21

cpp-compile
tch
0.0.2

vscode-make
tec
1.0.2

cmake
twx
0.0.17

makefile-creator
zen
0.0.3

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
pythonvspyt602:30300191
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
pythonvspyt639:30300192
pythontb:30283811
pythonvspyt551cf:30311713
vspre833cf:30267465
pythonptprofiler:30281270
vsdfh931cf:30280410
vshan820:30294714
pythondataviewer:30285071
vscus158:30286553
vscgsv2ct:30307505
vscorehovct:30309550
vscod805cf:30301675
binariesv517cf:30312826

Clicking on the drop-down arrow next to the + for new terminal tab lets you split a terminal tab without the need for opening a new one in between.
Action

Result

That said, it is indeed extremely annoying to not have a single click to split the current terminal and it is a much desired feature that needs to be brought back. Related to #126032 (and now closed #126086).

Can someone please tell the design team to stop hiding commonly used tools under collapsed buttons. It's starting to get kind of ridiculous.

You can right-click on the terminal item to bring up the additional actions:

Please see https://github.com/microsoft/vscode/issues/126032 for bringing back the split action

Please see the many ways we support splitting the terminal https://code.visualstudio.com/docs/editor/integrated-terminal#_grouping

Also alt+click on the + will split it, we'll likely bring the old one back in #126032.
If you preferred the old layout we're supporting it as well, it's just not the default. You can switch off terminal tabs in settings. If you switch it back everything will be as it was before.

Why not give us a list of new features we can try in the welcome tab? I just ignore it and close it, but if it had cool things for me to try out then I would pay more attention to it. I would much prefer that over just ninja swapping features on next release.

@lukepighetti that's what the release notes are for which show up after an update: https://code.visualstudio.com/updates/v1_57. In the previous version we did mention you can try it out before making it the default, and we had a month of time to gather feedback and polish. This feedback/decision just came in late 🤷♂
We are also looking into adding showing what's new in core/extensions via the new welcome page fwiw.


feat: leverage @vrrb/api pkg for all RPC calls to the network

Describe the feature you'd like to request
We need a way to standardize communications between the network and FE clients. A good way of doing so is using tRPC (akin to how we're retrieving data inside the block explorer)
Describe the solution you'd like to see
I'd looooove to leverage the @vrrb/api package to make RPC calls to the network using nextjs. This pkg leverages tRPC.
In order to do that we need to publish @vrrb/api
@vrrb/api needs before publish

[ ] README
[ ] clean out unused auth stuff
[ ] version
[ ] publish

Then we'll need to:

[ ] install into the gui app
[ ] move all of the routing out from the /app directory and into the old, trusty /pages directory
[ ] convert layout to _app file
[ ] create and wrap _app.tsx with withTRPC HOC
[ ] confirm network connection

Additional information
No response

This is a non-starter. General protocol architecture wouldn't permit as in order to fully leverage the power of tRPC we'd need an rpc endpoint in typescript so we could share the routers between the projects. We'll probably just extend the solution we're already leveraging and potentially look at replacing the tRPC stuff in the @vrrb/api with the methods inside of the the node gui.


Dockerfile manual build central repo URL is Incorrect

Dockerfile and Dockerfile.gpu have URLs that do not point to valid repo
Current URL in Dockerfile and Dockerfile.gpu
http://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.0.0-cp27-none-linux_x86_64.whl
http://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.0.0-cp27-none-linux_x86_64.whl
Changing the version number to 1.0.0 fixes the problem.
Working URL: http://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.0.0-cp27-none-linux_x86_64.whl
Not sure if the intent was to leave it at 0.0.0. If so, comments instructing the user to edit the URL to the current version would be helpful.

@gunan, @yifeif, could you take a look?

@caisq assume this was intentional?

@yifeif That is correct - these incorrect URLs are intentional. The strings like 0.0.0 are replaced by our docker build script. For example, see: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/tools/docker/parameterized_docker_build.sh#L215

I'm closing this issue now.


Current plan given web incompat

Given #28, #31, #32, it is clear that the item name is not web compatible and will not work. #32 especially is the nail in the coffin, given Flickr's breakage.
Going forward, my plan is, at the Nov 2020 meeting:
1. Propose a rename the proposal to at.
Please bikeshed in #33
2. Re-open discussion for splitting out String.prototype.at.
There is no new information, but many delegates were unhappy with the lack of discussion and time devoted to the topic. At the next meeting, I will ask for a bigger timebox to discuss the possibility of splitting out String.prototype.at into its own proposal.

We reached consensus to rename to .at() and to check if it's web-compatible. Additionally, we reaffirmed consensus that the method remains included on the String prototype via String.prototype.at.


operators [N] [CI] carbonetes-operator (1.0.4)

Signed-off-by: Jayson Santos<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.
New Submissions

[x] Are you familiar with our contribution guidelines?
[x] Have you packaged and deployed your Operator for Operator Framework?

[x] Is your submission signed?
[x] Is operator icon set?

Updates to existing Operators

[x] Did you create a ci.yaml file according to the update instructions?
[x] Is your new CSV pointing to the previous version with the replaces property if you chose replaces-mode via the updateGraph property in ci.yaml?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml or annotations.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[ x Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/merge possible

/merge possible


feat(components): add new theme options for Header Cover type

closes #510
see also: https://github.com/wingscms/services/pull/608

Pull Request Test Coverage Report for Build 186973545

4 of 4 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 70.921%

Totals

Change from base Build 185557928:
0.03%

Covered Lines:
1394

Relevant Lines:
1765

💛  - Coveralls


Allow to set a custom npm version with npm_version option

Is there a way to setup the action to use npm 7?
What about npm_version: 7 like actually it's done for node_version?

Hello!
npm is integrated to Node.JS.
NPM 7.x is integrated to Node.JS 15.x. If you specify Node.JS 15.x, NPM 7 will be selected. See details on https://nodejs.org/en/download/releases/
If you need npm 7 for previous versions of Node.JS, please consider upgrading it in runtime via npm install -g npm@latest

@maxim-lobanov Would it be possible to make it configurable like I suggested by using an option? It would allow to easily use matrix too

Is it not enough to add npm_version to the matrix and manipulate the workflow? I don't think it's a good idea to add more input than necessary.

npm publish doesn't work with node 15.x in github actions:
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in.
npm ERR! need auth You need to authorize this machine using `npm adduser`

when I downgrade to node 12 it works again

Hello @mendrik , the issue with publishing is caused by updating npm to 7th version in node 15. The first minor and patch version of npm 7th had the issue with _auth. It was fixed in next versions. You can use npm with node 12th or upgrade npm to the latest one npm install -g npm@latest

It seems setting node-version: 15 now gets a release with the proper fix. It is working without having to update npm

It seems setting node-version: 15 now gets a release with the proper fix. It is working without having to update npm

Just like we have an option to use node versions, we should also have an option to choose npm versions

Run npm install -g<EMAIL_ADDRESS>npm ERR! code E404
npm ERR! 404 Not Found - GET https://npm-proxy.fury.io/***/***/npm - bad_request
npm ERR! 404
npm ERR! 404<EMAIL_ADDRESS>is not in the npm registry.

I'd be -1 on making this a feature in setup-node. We ship a specific version of npm in node.js and it is a one liner to get the latest version of npm (rather than having to keep / manage npm version as part of this action).
run: npm i -g npm@7

Customers should either get the version of npm that ships with Node.js or the latest version on the registry. There would be no way to guarantee the latter if the action itself managed the version of npm. It also is the exact same amount of lines of code to do it either way in the configuration.
One thing we could perhaps do document this pattern? This might also be useful if folks want to downgrade npm... e.g. use npm 6 with Node.js 15

If it helps anybody, I'm currently working around this by running npx npm@7 ci.
I haven't managed to get caching to work as expected using cache: npm with this action.

run: npx npm@7 i

I highly highly advise against using npx to run npm. There is no advantage, imho, to doing this. npx will still download the full version of npm, so it isn't any faster... and you risk weird edge cases like npm@7 being used to install but npm@6 being used to run scripts later in the life cycle.

run: npm i -g npm@7

The above is the exact same number of lines as the above suggestion and will result in a consistent version of npm being used across the workflow

I highly highly advise against using npx to run npm. There is no advantage, imho, to doing this. npx will still download the full version of npm, so it isn't any faster... and you risk weird edge cases like npm@7 being used to install but npm@6 being used to run scripts later in the life cycle.

run: npm i -g npm@7

The above is the exact same number of lines as the above suggestion and will result in a consistent version of npm being used across the workflow

True, I do it this way — https://github.com/geospoc/v-mapbox/blob/main/.github/workflows/ci.yml#L34-L35
till we get an option to select npm version

the issue with
run: npm i -g npm@7

is that npm itself won't be in the cache 😢

With the most recent addition of setting up caching automatically in setup-node I'm rethinking my position of managing npm, especially since the cache should be variable to the version of npm

This is tripping me up in https://github.com/avajs/ava/pull/2867 — that PR introduces an .npmrc value that is only recognized in the latest<EMAIL_ADDRESS>It'd be great if I could enforce that version through the action configuration, especially since it seems to trip up over the warnings. However that probably counts as a separate bug, see https://github.com/actions/setup-node/issues/352.

Updating npm after setting up the node triggers following error:

Hello @char0n. You get an error because I can suppose you use setup-node without specifying node-version. In that case the action will use default node installed on the hosted images. For Linux node is installed with sudo permissions, that is why you have an issue with updating through this command npm install -g npm@latest.
You can try to use node from the toolcache for that you need to specify node-version input with required version. You can also refer to this comment

Hi @dmitry-shibanov,
I was using explicit node version, so what you describing probably doesn't apply to me.
      - name: Setup node
        uses: actions/setup-node@v2
        with:
          node-version: ${{ matrix.node }}

I could find a workaround around this by installing packages with Node.js version that comes with npm@7 and then switching to different Node.js version that actually runs my code: https://github.com/char0n/ramda-adjunct/blob/master/.github/workflows/nodejs.yaml#L54

I hope to soon see an option to pass npm-version: latest to address this and avoid having to add extra steps to our already complex pipelines. An option like this makes sense, especially as npm is included with node but can be safely upgraded without breaking node. Some recent changes to npm makes the need to upgrade it.... quite likely.

With the most recent addition of setting up caching automatically in setup-node I'm rethinking my position of managing npm, especially since the cache should be variable to the version of npm

We've recently hit this issue. The npm i -g npm@8 run on one major branch/pr was being picked up by subsequent runs of unrelated branches expecting npm@6 due to the cache, so definitely some stateful leakage across runs. While I understand why, it was bit of a tripping hazard. We will likely roll out npm i -g npm@x across all workflows and all branches as an extra guard layer, but including npm_version at least as a cache-key bust would be a nice value add. Now to see if we have the time/resources to contribute 🤔

thanks @fcastilloec
as the time writing this. using ubuntu-latest to update npm to latest, require to update without sudo and calling it update setting up node actions/setup-node@v2. the full sample script is like so
  install_dependencies:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: 14.x
      - name: cache node_modules
        uses: actions/cache@v2
        with:
          key: ${{ runner.os }}-${{ hashFiles('**/package.json') }}
          path: |
            node_modules
      - name: install latest npm
        run: |
          npm install -g npm &&
          npm --version &&
          npm list -g --depth 0
      - name: install dependencies
        run: |
          npm ci

output
Run npm install -g npm &&
  npm install -g npm &&
  npm --version &&
  npm list -g --depth 0
  shell: /bin/bash -e {0}
/Users/runner/hostedtoolcache/node/14.18.3/x64/bin/npm -> /Users/runner/hostedtoolcache/node/14.18.3/x64/lib/node_modules/npm/bin/npm-cli.js
/Users/runner/hostedtoolcache/node/14.18.3/x64/bin/npx -> /Users/runner/hostedtoolcache/node/14.18.3/x64/lib/node_modules/npm/bin/npx-cli.js
+<EMAIL_ADDRESS>added 67 packages from 17 contributors, removed 290 packages and updated 147 packages in 11.682s
8.3.2
/Users/runner/hostedtoolcache/node/14.18.3/x64/lib
└──<EMAIL_ADDRESS>

I'm also noticing that potentially our npm installs in CI are passing but in local checkouts failing due to differences in peerDep algorithms between npm 8 and prior versions which shipped with LTS versions of node. I'd definitely be in favour of a npm_version: latest | bundled which if latest does an npm install -g npm@latest or similar.

Can this issue be renamed to drop the mention of npm 7 specifically? Otherwise it looks outdated at a first look since we're on npm 10 now.

@fregante Done

Note that Node is considering removing npm and having corepack install it, which would make this unnecessary if corepack was implemented.


[Memoryleak] All enginesubmodules have memoryleaks becuase of non-existing destructor

All enginesubmodules have memoryleaks becuase of non-existing destructor.
Can be solved by adding a
virtual ~Module() {}
in module interface.

Fixed for physics module and Logging module


Rework Subscription creation

Right now, the leaf subscriber classes accept a kinds parameter and use that to create a Subscription object to pass to the superclass initialiser.
It is weird that the base class initialiser's parameters are not a proper subset of the inheriting classes' initialisers.
Proposed Solution

accept kinds, tag, and subsample parameters in base Subscriber initialiser, and instantiate Subscription there.
… not sure what else

Improved Idea
Subscribers should be able to have multiple Subscriptions.

Subscriber has mapping of kinds to subscription objects
in handle_message() the appropriate Subscription is retrieved and the message delegated to it.
The Subscription then handles the message as before

Fixed in c76d11f

Actually not fixed, but subscriptions more versatile now.


Better fonts for CJK users

Hi! Thanks for your efforts in #5260! However, I'm currently experiencing the following issue:

The displayed menu is using a mix of Chinese font and Japanese font(I'm using zh-CN for VS Code in English Windows 10 ). Probably it's because VS Code decides the language from electron API(which uses Windows API to know that English is the system language and Japanese fonts have a priority compared with Chinese in fonts fallback in this case) instead of locale.json. Is it possible to fix that?
And also, for the editor, it would be great to automatically add a line in settings.json like
"editor.fontFamily": "Consolas, Microsoft Yahei UI Light, 'Courier New', monospace"
for zh-CN VS Code users since the default Chinese font for Chinese User is quite ugly. The similar issue may occur for other CJK users.
Thanks! @be5invis

@iamCristYe
Are you using zh-CN VSCode under an English OS?

Yes. zh-CN VS Code under en-US Windows 10.
On May 28, 2017, at 11:32, Belleve Invis <notifications<EMAIL_ADDRESS>wrote:
@iamCristYehttps://github.com/iamcristye
Are you using zh-CN VSCode under an English OS?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/vscode/issues/26175#issuecomment-304531864, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMDm4j7hwL7M7B-0tEXRw8uiJDGjoSMRks5r-b3OgaJpZM4NTZCb.

@iamCristYe The root case is that Windows does not have an unified typeface family to cover all CCJK languages, so that fallback made inconsistency.
To solve this completely we need time(~2 years), money (~$10M), and technology.

I totally understand that and we do need a typeface family like Source Han on Windows. But can't we simply assign YaHei to be the font in this case?

From: Belleve Invis<EMAIL_ADDRESS>Sent: Sunday, May 28, 2017 11:54:52 AM
To: Microsoft/vscode
Cc: Crist Ye; Mention
Subject: Re: [Microsoft/vscode] Better fonts for CJK users (#26175)
@iamCristYehttps://github.com/iamcristye The root case is that Windows does not have an unified typeface family to cover all CCJK languages, so that fallback made inconsistency.
To solve this completely we need time(2 years), money ($10M), and technology.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/vscode/issues/26175#issuecomment-304533115, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AMDm4lm1UJ2vrigvp_lxAC4QBdmGUPrHks5r-cL8gaJpZM4NTZCb.

@iamCristYe can you see how the situation is using our latest insider builds that come with custom menu?
You can give our preview releases a try from: https://code.visualstudio.com/insiders/

@bpasero I'm sorry that currently, I'm using Windows with Chinese Interface. I may reinstall the system when Windows 10 ver 1809 comes out and hopefully I can give you a comment then.

OK

@bpasero The problem has been resolved.


Design proposal for initialization.

Closes #5149.

The proposal is not in *..md extension, github cannot render it into formatted doc.
Can you update that?

This doesn't mention static variable in a class. Is that default initializable?

static variables are a tricky case because there is currently no efficient way to initialize them on d3d and vulkan. So the answer for now has to be that they won't be default initialized.

I think for out parameters, we also don't want to default initialize them, because an out parameter must be coming from a location that is either default initlaized because it is a var, or can't be efficiently default inited because it is a static global var.

To follow up on the discussion of out parameters: the existence of out in Slang should be another factor pushing us to have a model where the semantic rule is not that it is an error to fail to initialize a variable at its declaration point, and instead should have a rule that it is an error to use a variable at a point where it might not be (fully) initialized.
We should ideally treat use of a variable (or field of a struct etc.) as an argument for an out parameter as equivalent to an assignment for the purposes of deciding whether a variable has been initialized, and where.

If we do make the rules be that the initialization point of a variable need not be its declaration, that would also allow us to have variables declared with let be initialized via assignment or being used as an out argument:
let x : Int; // okay: just not initialized yet
if(something) x = 1; else x = 2;

This is only a slight extension of the rules needed for the var case:

For any read of a variable, the variable must be fully initialized along every control-flow path that reaches that read

For any write of a let variable, the variable must be fully uninitialized along every control-flow path that reaches that write


storage: Evict chunks and calculate persistence pressure...

…based on target heap size
@rtreffer @stuartnelson3 This is "the memory hack" running on selected servers at SC for a while. Now finally in reviewable and tested form.
@juliusv @brian-brazil @fabxc you were interested in this.
I'll add a few graphs to this PR to demonstrate the effects.
This is a fairly easy attempt to dynamically evict chunks based on the
heap size. A target heap size has to be set as a command line flage,
so that users can essentially say "utilize 4GiB of RAM, and please
don't OOM".
The -storage.local.max-chunks-to-persist and
-storage.local.memory-chunks flags are deprecated by this
change. Backwards compatibility is provided by ignoring
-storage.local.max-chunks-to-persist and use
-storage.local.memory-chunks to set the new
-storage.local.target-heap-size to a reasonable (and conservative)
value (both with a warning).
This also makes the metrics intstrumentation more consistent (in
naming and implementation) and cleans up a few quirks in the tests.
Answers to anticipated comments:
There is a chance that Go 1.9 will allow programs better control over
the Go memory management. I don't expect those changes to be in
contradiction with the approach here, but I do expect them to
complement them and allow them to be more precise and controlled. In
any case, once those Go changes are available, this code has to be
revisted.
One might be tempted to let the user specify an estimated value for
the RSS usage, and then internall set a target heap size of a certain
fraction of that. (In my experience, 2/3 is a fairly safe bet.)
However, investigations have shown that RSS size and its relation to
the heap size is really really complicated. It depends on so many
factors that I wouldn't even start listing them in a commit
description. It depends on many circumstances and not at least on the
risk trade-off of each individual user between RAM utilization and
probability of OOMing during a RAM usage peak. To not add even more to
the confusion, we need to stick to the well-defined number we also use
in the targeting here, the sum of the sizes of heap objects.

This is the number of memory series on an example server. The jumps are happening after major deploys. So far, a jump in time series increased the memory usage. So either you had fairly conservative settings and wouldn't use most of your RAM while there were fewer time series around, or you would OOM after a deploy.

With the change here, you can see how the number of chunks react:

Blue are the open head chunks, who immediately shoot up upon appearance of new series. Orange are chunks waiting for persistence, and green are persisted chunks (which are usually evictable, if not pinned by a query).
You can see how the total number of chunks goes down after the first deploy. The second deploy has a much harsher effect, though. Also, there is a pretty sudden eviction happening on the 23rd around 03:00.  There was no expensive query happening at this time or anything else that would explain it. Those "inexplicable" drops happen now and then. They are, however, triggered by peaks in memory usage, which could have otherwise caused an OOM. The resulting memory graph looks quite nice, in any case:

The purple lines are 5m max_over_time and min_over_time of the heap size (stolen from @brian-brazil 's dashborad, thanks for the idea), with blue being the current value. Note that the heap size is extremely noisy, and even the 5m max/min only catches the peaks sampled by Prometheus. There are always higher/lower peaks that happened at times when Prometheus didn't scrape. Note that this PR introduces adjustments every second, while the Prometheus scrape happens only every 15s. So we would see the memory management react to peaks that the scraping Prometheus hasn't even seen. The target heap size flag is set to 40GiB here, which fits quite well the highest observed peaks (and note, as described above, that we might not even see many of those peaks in the graph). The green line is RSS, which is always higher than the heap size (although that's doesn't have to be the case, in theory). Note how jumps happen after the jump in series count but that there is no clear correlation to the heap size. I assume that very short peaks in heap size trigger more RSS usage but the OS and/or the Go runtime will not immediately reclaim RSS depending on memory pressure.

This is a similar scenario with 1.5.2:

Again, two deploys, so time series go up from the usual steady state of 1.5M to 4.5M. While the number of memory chunks stays the same all the time, max heap size goes up from ~40GiB to ~50GiB, and RSS goes up from ~50GiB to almost 64GiB (which is the total RAM of the server, so what we see here is an almost OOM).


Question regarding similarity of class token and distillation token

I am not able to figure out the similarity between the class token and distillation token. In the first sentence, the average cosine similarity is given 0.06 and in the second sentence 0.93 at last layer. Is 0.06 the similarity at the input level and 0.93 at the final layer? If not, can someone explain the differences between these two similarity scores? The text is given below for reference. Thanks in advance!
the average cosine similarity between these tokens equal to 0.06. As the class and distillation embeddings are computed at each layer, they gradually become more similar through the network, all the way through the last layer at which their similarity is high (cos=0.93), but still lower than 1.

Hi @pmgautam,
Thanks for your question,
The first one is the cosine similarity between the class and distillation tokens (before they are modified by Self-Attention). the  second one is the cosine similarity at the end of the network.
Best,
Hugo


Anti-kick in casual

If call vote to change map, when kick vote begin, kick vote have been canceled
https://wiki.alliedmods.net/Counter-Strike:_Global_Offensive_Events#start_vote

callvote Kick
callvote RestartGame
callvote ChangeLevel
callvote ScrambleTeams
callvote SwapTeams

@NexSqaud Have you tested which of these cancels kick vote?

Any. You just need to call the vote. Easiest way is ScrampleTeams and SwapTeams

Are you sure "start_vote" event is fired in game?

🤔 Maybe that in usermessages?


Vertical metrics must be consistent in superfamilies

The vertical metrics of these 2 families should be identical,
https://fonts.google.com/specimen/Archivo
https://fonts.google.com/specimen/Archivo+Narrow
But they aren't. This suggests to me that there is a class of font bakery checks missing for 'super families' to keep them consistent. We now have quite a few super families, typically with different widths, but also different optical sizes (eg "Something Sans" and "Something Sans Display" or "Something Sans Micro")

Should be

Hi! About Archivo and Archivo Narrow vMetrics, please note that they must also match with Archivo Black vMetrics…

@Omnibus-Type thanks for adding that info.
I'm in two minds about this. I agree that every super family should have consistent vertical metrics. However, this is not really possible if the fonts have already been released and have differing metrics. By trying to unify the metrics, we'll introduce a regression and may cause doc reflow problems.
I agree that all new super families which are not yet released must have consistent vertical metrics.
My policy so far has been 'if the font has been released, the vertical metrics should visually match its previous release.'. We use this rules for styles and glyphs as well :-)

However, asap and archivo's super family parts were just released this week, so there's not yet a lot of usage to break, and fontbakery can have a whitelist in cases where we don't want it to warn on discrepencies across families -- if we take your approach.
I am more of the mind that inconsistent line heights across styles within a family (or within a superfamily, indeed) is a nasty bug that is worth fixing.

@m4rc1e If I had to establish a starting point in the matches, our priority would be to have Archivo vMetrics match those of Archivo Narrow. What do you think about this?
BTW: Regarding the next Asap update (now with 8 fonts), the same criteria apply: vMatrics should be matched between the standard version (Asap) and the condensed version (Asap Condensed):

@Omnibus-Type In this case, Asap condensed will inherit the vert metrics from Asap.
@davelab6 we'll roll with your proposal and see if any issues are filed.

@m4rc1e Please note that Asap latest version has now 8 styles (Regular, Medium, Semi Bold, Bold plus Italics). Can you update it, please? Thanks in advance.

@Omnibus-Type https://github.com/google/fonts/pull/1119

None of the "super familiy"-level tests will happen prior to the upcoming release since it is not a trivial thing to implement and we're closing the release.

Font Bakery version 0.4.3 will hopefully be our "super-families" release, to tackle this class of issues.

Hopefully 0.4.3...
Well... actually 0.7.19! :-D


chore(deps): update tubenhirn/semantic-release-gitlab docker tag to v4.0.13

This PR contains the following updates:

Package
Update
Change

tubenhirn/semantic-release-gitlab
patch
v4.0.11 -> v4.0.13

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

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

This PR has been generated by Renovate Bot.

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


Adding support for custom ports for alb_subraphs

Background
👋 Hello! Recently onboarded into the dedicated experience and I tried playing with the graphos integration today. However, after battling with things for a bit, I figured out that our infrastructure needed to change considerably in order for the communication to happen on port 80 by default. That lead me to come look at the source code and see if it wouldn't be possible to pass a custom port number where the ALB expects communication.
To my surprise, the underlying module already supports a custom port, but alb_subgraphs does not receive that value in it's definition.
Changes

Tweak README to mention that alb_subgraphs can take a alb_port variable that allows one to customize the communication port.
Added hcl markdown to hcl block.
Changed README lingo around port 80 being required
Updated alb_subgraphs to receive a alb_port argument that is passed down to aws_vpclattice_target_group and aws_vpclattice_target_group_attachment.

@marcussaad: Thank you for submitting a pull request! Before we can merge it, you'll need to sign the Apollo Contributor License Agreement here: https://contribute.apollographql.com/

@nmoutschen thanks for taking it over 👍


Question: best configuration for small sound files

Let's say I want to recognize home sounds, e.g

Unlocking / Locking a door
Opening / Closing a window

and so on. Those sounds last something like 0.5-1 seconds. What is the best configuration in fingerprint.py for such recognition? The defaults seem to work well for big songs.

I'd be interested to find out as well. So far I've played with configs and achieved slightly better results, but it's still hit or miss. Sometimes it's spot on and sometimes it's so far off that it seems like it's just picking matches at random.
Here is what I set in fingerprint.py:
DEFAULT_FS = 44100
DEFAULT_WINDOW_SIZE = 1024
DEFAULT_OVERLAP_RATIO = 0.9
DEFAULT_FAN_VALUE = 15
DEFAULT_AMP_MIN = 5
PEAK_NEIGHBORHOOD_SIZE = 15
MIN_HASH_TIME_DELTA = 0
MAX_HASH_TIME_DELTA = 150
FINGERPRINT_REDUCTION = 0

Based on this comment, if I understand correctly, what controls the snippet length is DEFAULT_FS, DEFAULT_WINDOW_SIZE & DEFAULT_OVERLAP_RATIO. So the code above would check the sources every 0.02089795918s or ~21ms (1 sec / 44100 * 1024 * 0.9). So a 500ms section of the song has lots of slots that could be matched. That should be sufficient, but for some reason it's not, at least not for all cases.
Also, be prepared for the database to be huge and processing times to be very, very long. An average length song will take roughly 100mb of HDD space and to process 400 songs I had to leave my machine on overnight. Matching is still very fast though.
Anyone else knows how can you improve frequency/accuracy here?

In my case, when I set the FINGERPRINT_REDUCTION = 0, dejavu throws this error:
MySQLdb._exceptions.ProgrammingError:
(1064, "You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1")

For information, my interest was in tracks of 3 seconds long; I came up with this:

CONNECTIVITY_MASK = 2
DEFAULT_FS = 44100
DEFAULT_WINDOW_SIZE = 1024      # was 4096
DEFAULT_OVERLAP_RATIO = 0.75    # was 0.5
DEFAULT_FAN_VALUE = 15          # was 5
DEFAULT_AMP_MIN = 10
PEAK_NEIGHBORHOOD_SIZE = 10
MIN_HASH_TIME_DELTA = 0
MAX_HASH_TIME_DELTA = 200
PEAK_SORT = True
FINGERPRINT_REDUCTION = 20

This results in roughly five times more fingerprints. At "fingerprinted confidence" of 50% the difference between old and new settings is 45% success rate vs 85% success rate. No significant difference in recognition time observed.


Update as per SDK JSON/SDP changes

This change is needed after landing https://github.com/EricssonResearch/openwebrtc-ios-sdk/pull/73 since I had to change the SDK API slightly.
As mentioned in commit messages, getting rid of NSJSONWritingPrettyPrinted is needed since test-client.c expects messages to be on a single line.

:+1: @pererikb - can you review this please?

👍
https://github.com/pererikb/openwebrtc/commits/test_client_fixes should handle the pretty-printing


Check TypeScript integration possibilities

Not going to look into this for the following reasons:

Tried experimenting with this, but because of Gulp's specific architecture, compilation is rather slow (About 2s for a simple file while normal js compiles in several ms)
Not sure how to handle imports, since the whole idea behind Buildozer is to make use of globbing to detect files.
The basic implementation thus only supports typed variables
Typescript is quite heavy to load by default


Simplifying local development

I've done three things:

Fixed the Docker Compose setup so that it works again
Cleaned up the how to run locally description and moved into Deployment/README.md (still the Kubernetes setup to go)
Added a simple mocked backend (in Node+Express) that makes things a lot easier when just working on the frontend.

Since no code has been changed, I assume we need no label to trigger a new version right?

I fixed the merge conflict, and as this is not a release we don't need to format the PR summary for the release notes.


⚠ Samsung has degraded performance

In eee3cbd, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2528 ms

Resolved: Samsung performance has improved in ee30e40.


Select navigation does not show current selected section

Description
How to reproduce this bug?
Open a Linkfree profile on web screen and select a different section other than my links
Then toggle to mobile screen,
you will notice that select will show my links but the list will be of other sections for example milestones and events
Here it is milestones section but select is showing my links

Screenshots
No response
Additional information
No response

can I submit a pr on this issue?

Good spot 👍 I have assigned it to you

A user will not go from desktop to mobile window size - they will either be viewing on a desktop, or on a mobile.  Therefore this is unnecessary code so I will be closing this issue.


Subscriber Unable To Open Position (MQL5)

Hello, when i try this scripts the both Publisher & Subscribers is received opened message, but the order not opened in the Subscribers side. is there any suggestion for this issues?

My machine specification :
Ubuntu 18.04
Wine-6.0.1
MetaTrader5
libzmq3-dev, libsodium18, libzmq5 installed
Thank You

Hello friend, how are you? Could you configure the copy correctly? have you used it?


KAG-3870
The manual EE cherry is here: https://github.com/Kong/kong-ee/pull/8359

The non-varargs optimization can be added if neccessary.

Since we need to profile and benchmark this PR, could you please convert this PR as a draft?

Converted to draft.

Rebased on master.

Don't forget to remove the first argument at the definition of run_hooks()
https://github.com/Kong/kong/blob/d43159afcec9212a4e214b7568c4922a832c1651/kong/init.lua#L325

I have removed the ctx from run_hooks.


Use entry_points to create script. Fix #1266 (script not working on Windows)

This is cool and I'd love to merge it but my python foo isn't strong enough.  Help?

Turned out the CI failed because there was a test that tried to use the "bad" script that was now removed. I would probably need to remove those tests as well.
The script is only created now when an installation happens, e.g. with pip install

@vivainio Is there a way to run the pip install such that the script in question gets created?

Yea, 'pip install .' installs it from file system
On Tue, 24 Jul 2018, 10:41 Liam Newman<EMAIL_ADDRESS>wrote:

@vivainio https://github.com/vivainio Is there a way to run the pip
install such that the script in question gets created?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/beautify-web/js-beautify/pull/1455#issuecomment-407312210,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiCC3MkBb5ToitZ7dTcfZzUJfaOZVWrks5uJs-lgaJpZM4VZpwK
.

That is where it installs from.  We need to install it to a location where
we can check/test it.
On Tue, Jul 24, 2018, 1:20 PM Ville Vainio<EMAIL_ADDRESS>wrote:

Yea, 'pip install .' installs it from file system
On Tue, 24 Jul 2018, 10:41 Liam Newman<EMAIL_ADDRESS>wrote:

@vivainio https://github.com/vivainio Is there a way to run the pip
install such that the script in question gets created?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<
https://github.com/beautify-web/js-beautify/pull/1455#issuecomment-407312210
,
or mute the thread
<
https://github.com/notifications/unsubscribe-auth/AAiCC3MkBb5ToitZ7dTcfZzUJfaOZVWrks5uJs-lgaJpZM4VZpwK
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/beautify-web/js-beautify/pull/1455#issuecomment-407538785,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB3kKZ7ZRVvPHoLpXmmc0mCwojXuoNHJks5uJ4GQgaJpZM4VZpwK
.

Fixes #1254


how can i make it so it always loooks at gf?

Describe your problem here.
how can i make it so it always loooks at gf?
Are you modding a build from source or with Lua?
Lua
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
yeah alot but only a song

function onUpdate()
    cameraSetTarget(gf) --you might need to put gf in quotes, I am unsure, so do that if it doesn't work.
end

This should work. There may be an easier way, but it'll do it.


Implemented nk.pl auth strategy

Implemented nk.pl nkConnect, second biggest social networking site in Poland.
It uses oauth2 for authorization and oauth 1.0 for getting user's profile data.

oh :( Do you no longer want me to pull this request in ?

Sorry for that, we have decided to change naming convention and I need to first move those changes back to my fork.
I will open another Pull Request today after I will double check the code.

Its no problem, I was just going to merge it when I noted that it was closed ! :)


Consumer UI Refresh - SideBar

Details
For this issue we must change the icon of the "hamburger" menu and do some light refactoring and styling.
Remove all language in the code that refers to hamburger wherever hamburger is used we should replace it to navigationMenu
Remove the hamburger menu icon itself from the HeaderView and replace it with this chevron-left back style icon. Switch it to a Pressable instead of a TouchableOpacity.
Make the "toggled open" state of the menu take up the entire width of the screen when viewing below the breakpoint.
Remove the Pressable that is listening for touches outside of the nav since the nav is now either pinned or full screen there is no need to listen for touches on an area that doesn’t exist.
Fixed Issues
#1223
Tests
login with the app with credential.
Check the main page, hamburger replace with back.
Click on back, Open the side menu. it will be full screen now
Code change hamburger with navigationMenu, it will be in code.
Tested On

[ ] Web
[ ] Mobile Web
[ ] Desktop
[x] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

Please use the .svg that was supplied for the arrow icon. You can find other instances throughout the app of how we use svgs.

Please use the .svg that was supplied for the arrow icon. You can find other instances throughout the app of how we use svgs.

@kiritmodi2702 Check out the Expensicons component library to see examples of how to use .svg assets in this application.

@kiritmodi2702 Check out the Expensicons component library to see examples of how to use .svg assets in this application.

Hi @shawnborton @roryabraham @marcaaron , I have commit updated code, please check and update

Hi @shawnborton @roryabraham @marcaaron , I have commit updated code, please check and update

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

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

recheck

recheck

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

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

recheck

recheck

recheck

recheck

There are still whitespace issues. Please make sure you are using 4 spaces instead of tab characters.

Please review and update.

There are still whitespace issues. Please make sure you are using 4 spaces instead of tab characters.

Please review and update.

Please use the .svg that was supplied for the arrow icon. You can find other instances throughout the app of how we use svgs.

Please review and update.

Please use the .svg that was supplied for the arrow icon. You can find other instances throughout the app of how we use svgs.

Please review and update.

Please fix the style issues with the PR and address @shawnborton's comment about the SVG and someone will review this when it's passing. Looks like we are on the right path, but I'd recommend starting over and turn off prettier or whatever automatic style fixer you are using.
https://github.com/Expensify/Expensify.cash/blob/master/CONTRIBUTING.md#javascript-style

Please add conflict solved from updated code, Review and update now.

Please fix the style issues with the PR and address @shawnborton's comment about the SVG and someone will review this when it's passing. Looks like we are on the right path, but I'd recommend starting over and turn off prettier or whatever automatic style fixer you are using.
https://github.com/Expensify/Expensify.cash/blob/master/CONTRIBUTING.md#javascript-style

Please add conflict solved from updated code, Review and update now.

Hi @marcaaron Please update.

Hi @marcaaron Please update.

@kiritmodi2702 Thanks for your work on this. I'm closing this PR and moving the changes to a new branch so I can help finish it up.

@kiritmodi2702 Thanks for your work on this. I'm closing this PR and moving the changes to a new branch so I can help finish it up.


swift-talk-backend should close the Channel if an error is received in the last ChannelHandler

In SwiftNIO it's generally a good idea that on errorCaught, the Channel should be closed to prevent leaking network connections that are in some error states. In swift-talk-backend this should be added to  RouteHandler. But this advice applies to any NIO ChannelPipeline: Generally the last handler (I usually call it the 'application handler') should close on unknown error.
Why? Generally, ChannelHandlers fire errors in cases where they don't know how to recover themselves. If another, later ChannelHandler knows how to recover, that ChannelHandler would consume the error. In other words: If an error reaches the end of the pipeline, nobody knew how to handle that error and closing the Channel is a good default.
This has always been true in SwiftNIO but in NIO 2 this will become especially important because ByteToMessageDecoders (and the HTTP decoders) won't close the connections themselves anymore. Why is that? If the decoders themselves close the connection, then there's no way for the user to opt out.
The code to implement this is very straightforward:
public func errorCaught(ctx: ChannelHandlerContext, error: Error) {
    switch error {
    case let e as SomeErrorTypeIKnowHowToHandle where e.someCondition == expectedValue:
        // handle error
    case let e as SomeOtherErrorIKnowHowToHandle:
        // handle that error
    default:
        // log error?
        ctx.close(promise: nil)
    }
}

Thanks @weissi, really appreciate you reaching out everywhere.
Just fixed it.


remark(null) doesn't work

Run ¡ or wechaty run doctor(for docker user), paste output here

Wechaty version: #git[b1fbeee Merge branch 'master' into test]
Darwin x64 version 16.1.0 memory 27/8192 MB
Docker: false
Node version: v7.2.0

Expected behavior
contact.remark(null) to clear remark.
Actual behavior
WARN PuppetWebBrowser executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read p
WARN PuppetWebBridge executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=55.0.2883.75)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.12.1 x86_64)

Steps to reproduce the behavior (and fixes, if any)
if (contact.remark() !== null) {
      await contact.remark(null)
      await contact.refresh()
      log.info('Bot', 'Clear remark: %s', contact.remark())
    }

Paste the full output logs here with WECHATY_LOG=silly set
SILL Contact remark()
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @8b743e950927b28834ecec790d655f8a1bf491b6ab75fb6eb2c9271fde59a46f, )
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL PuppetWebBrowser Browser.executeAsync( const callback = arguments[arguments.length - 1]
      const isAsync = (typeof )
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
WARN PuppetWebBrowser executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read p
WARN PuppetWebBridge executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=55.0.2883.75)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.12.1 x86_64)
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @8b743e950927b28834ecec790d655f8a1bf491b6ab75fb6eb2c9271fde59a46f, )
WARN PuppetWebBridge proxyWechaty() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=55.0.2883.75)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.12.1 x86_64)

Good catch.
Just had a commit for it, please let me know if it fixed this bug, thanks!

@zixia js error is fixed, but remark is not truly cleared.
my code is:
if (contact.remark() !== null) {
      await contact.remark(null)
      await contact.refresh()
      log.info('Bot', 'Clear remark: %s', contact.remark())
    }

output is:
INFO Bot Contact: tobenb520: A#拒绝1# Carpediem
INFO Bot Clear remark: A#拒绝1# Carpediem

the user's remark does not be cleared.

@zfben after this commit, now remark(null) is equal as remark(''). I remember @lijiarui can clear the remark by remark('') so it should work by remark(null) now, could @lijiarui help me to confirm that? thanks.

ah... it doesn't work..
silly log as follow:
SILL Contact contactGetter(@e20204d84bd895f567cee645661728a934de73fafa60f4397c2da3ca10fef758) resolved
SILL Contact remark()
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @e20204d84bd895f567cee645661728a934de73fafa60f4397c2da3ca10fef758, )
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL PuppetWebBrowser Browser.executeAsync( const callback = arguments[arguments.length - 1]
      const isAsync = (typeof )
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @e20204d84bd895f567cee645661728a934de73fafa60f4397c2da3ca10fef758, )
fail

If I try remark('')  it works, but I try remark(null) it failed

well.... I tried again, exception disappear...
but failed again
I can change remark by remark('') but cannot by remark(null)
silly log as follows:
SILL Contact remark()
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @c379eff781a7d1f8ed7eb8fbb12bbd78, )
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL PuppetWebBrowser Browser.executeAsync( const callback = arguments[arguments.length - 1]
      const isAsync = (typeof )
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
WARN PuppetWebBrowser executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read p
WARN PuppetWebBridge executeAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.10.5 x86_64)
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @c379eff781a7d1f8ed7eb8fbb12bbd78, )
WARN PuppetWebBridge proxyWechaty() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.10.5 x86_64)
ERR PuppetWebBridge contactRemarkAsync() exception: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.10.5 x86_64)
WARN PuppetWeb contactRemark(@c379eff781a7d1f8ed7eb8fbb12bbd78, null) rejected: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.10.5 x86_64)
ERR Contact remark(null) rejected: javascript error: Cannot read property 'replace' of null
JavaScript stack:
TypeError: Cannot read property 'replace' of null
    at Object.formatHTMLToSend (https://res.wx.qq.com/zh_CN/htmledition/v2/js/webwxApp31e225.js:4:6941)
    at contactRemarkAsync (<anonymous>:829:34)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:6:16)
    at eval (eval at executeAsyncScript (:329:5), <anonymous>:11:8)
    at executeAsyncScript (<anonymous>:329:26)
    at <anonymous>:345:29
    at callFunction (<anonymous>:237:33)
    at <anonymous>:247:23
    at <anonymous>:248:3
  (Session info: chrome=54.0.2840.98)
  (Driver info: chromedriver=2.25.426935 (820a95b0b81d33e42712f9198c215f703412e1a1),platform=Mac OS X 10.10.5 x86_64)
fail

><EMAIL_ADDRESS>doctor /Users/lijiarui/Documents/git/wechaty
> ts-node bin/doctor

#### Wechaty Doctor

1. Wechaty version: #git[4543b8f 0.6.52]
2. Darwin x64 version 14.5.0 memory 543/16384 MB
3. Docker: false
4. Node version: v7.0.0

@lijiarui Thanks, I will check it later.
@zfben Before this issue be resolved, please use remark('') instead of remark(null) because it would do the same job and @lijiarui had confirmed it worked.

@lijiarui Can you tell me how could remark still be null in this function?
https://github.com/wechaty/wechaty/blob/133a6f8242a0860c8aa4afb069bab849ac8e822e/src/puppet-web/wechaty-bro.js#L572

@zixia I have try to use remark(''), but it doesn't work too.
code:
log.info('Bot', 'Contact: %s: %s', contact.weixin(), contact.remark())

    if (contact.remark() !== null) {
      const ret = await contact.remark('')
      if (ret) {
        console.log('ok')
      } else {
        console.error('fail')
      }
      await contact.refresh()
      log.info('Bot', 'Clear remark: %s', contact.remark())
    }

log:
SILL Contact ready()
SILL Contact remark()
INFO Bot Contact: dafu1220: AA#017# 青
SILL Contact remark()
SILL Contact remark()
VERB PuppetWebBridge proxyWechaty(contactRemarkAsync, @93f450cd41b31c0d89db5885cd37ce24b6eb243b8fe19752f0b0f91b0fb15279, )
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL PuppetWebBrowser Browser.executeAsync( const callback = arguments[arguments.length - 1]
      const isAsync = (typeof )
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
ok
SILL Contact ready()
SILL Contact get contact via PuppetWeb
SILL PuppetWebBridge getContact() retryPromise: attampt 1/35 time for timeout 306250
VERB PuppetWebBridge proxyWechaty(getContact, @93f450cd41b31c0d89db5885cd37ce24b6eb243b8fe19752f0b0f91b0fb15279)
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute("return typeof WechatyBro === "undefined"")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL PuppetWebBridge execute()
SILL PuppetWebBrowser Browser.execute(" const callback = arguments[arguments.length - 1] const isAsync = (typeof  ... ")
SILL StateMonitor Browser:target() - open
SILL StateMonitor Browser:current() - open
SILL Contact contactGetter(@93f450cd41b31c0d89db5885cd37ce24b6eb243b8fe19752f0b0f91b0fb15279) resolved
SILL Contact remark()
INFO Bot Clear remark: AA#017# 青

Hi @zfben , sorry for the confusing result, I had found the problem finally.
Your code indeed works, the remark should already be cleared if you check on your phone.
The browser & Wechaty still got the old remark value is because my code forgot to refresh some values in the browser, and when you called refresh(), the old values get back.
Should be fixed in my last commit, I had tested with your code without any problem.
Please let me know if it works for you, thanks.

it works! thx a lot 👍


GAE urlfetch

The behaviour of urlfetch will be changed from April 2015. This will need to be taken account of

"Dear URL Fetch users,
We’re contacting you because you’re listed as the administrator for your organization’s App Engine application, which uses the URL Fetch service. During the phased rollout of an update to this service, we determined that your application may be affected by the change described below.
Currently, the URL Fetch service preserves your original HTTP method (e.g., GET, POST) when it receives and responds to a 302 Moved Temporarily response. Modern user agents typically issue a GET request in response to a 302. After the update, URL Fetch will only issue a GET request after receiving a 302 response, rather than preserving the original method. This may cause requests to be routed differently and/or return 404s or other errors, and will drop the message body from POST requests.
To avoid being affected by this change, please verify that either:
Your app sends non-GET requests (such as POST) directly to the final URL that will handle the request rather than to one that redirects. Some common services, including App Engine, use 302 to redirect HTTP connections to HTTPS and vice versa, so it’s important to check that your protocol is correct as well. You can use the final_url field of the Response object (or a similar object in other APIs) to determine if your fetches are being redirected.
The destination server sends a 303 or 307 HTTP code, each of which specifies the redirect behavior with respect to HTTP methods, rather than a 302.
We will apply the update to your affected application’s URL Fetch usage on April 25, 2015.
If you have any questions, please contact our support team - even if you do not have a support contract.
Sincerely,
Google Cloud Platform team "

What is the latest status?

I am not sure if it is going to be a problem...
My target platform is GAE so I have to use python 2.7.x
When I run python setup.py install, I got this error message
  copying build/lib/pusher/util.py -> build/bdist.macosx-10.10-x86_64/egg/pusher
  byte-compiling build/bdist.macosx-10.10-x86_64/egg/pusher/__init__.py to __init__.pyc
  byte-compiling build/bdist.macosx-10.10-x86_64/egg/pusher/aiohttp.py to aiohttp.pyc
    File "build/bdist.macosx-10.10-x86_64/egg/pusher/aiohttp.py", line 25
      response = yield from aiohttp.request(method, url, params=params, data=data, headers=headers)
                          ^
  SyntaxError: invalid syntax

So it looks like 1.0.0 branch may not be compatible with python 2.7?

Hi @kongakong, do you mind testing the "run-with-it" branch ? I'm still working on the library to make a 1.0 release, if we can get GAE support in it it would be great.

See #45

@zimbatm  Do not have much luck so far.
Let's see if you have any suggestion.
It is my original version (using pusher_client_python):
    if socket_id:
        params['socket_id'] = socket_id

     p[channel_name].trigger('event', json.dumps(data), **params)

With the run-with-it branch I changed the above to
 p.trigger(channel_name, 'event', json.dumps(data), socket_id=socket_id)

And it throws this exception
ERROR    2015-04-17 01:49:59,497 pusher_utils.py:53] ('Connection aborted.', error(13, 'Permission denied'))
Traceback (most recent call last):
  File "/Users/antkong/dev/zeetings/appengine/zeetings/pusher_utils.py", line 51, in _send_message
    p.trigger(channel_name, 'event', json.dumps(data), socket_id=socket_id)
  File "lib/pusher/http.py", line 22, in __call__
    return self.pusher.http.send_request(self.make_request(*args, **kwargs))
  File "lib/pusher/requests.py", line 28, in send_request
    **self.options
  File "lib/requests/sessions.py", line 464, in request
    resp = self.send(prep, **send_kwargs)
  File "lib/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "lib/requests/adapters.py", line 415, in send
    raise ConnectionError(err, request=request)
ConnectionError: ('Connection aborted.', error(13, 'Permission denied'))

Thanks for testing it out @kongakong.
I've read the original Google announcement. We don't use HTTP redirects at all in our API with means that the current stable client library will keep working after the 25th of April.
'Permission denied' is a system-level error which is usually associated with file access. I think Google is blocking socket connections on the system level. It means that the "requests" library (the default adapter) might not be used on GAE and we need another adapter that uses urlfetch. Here's a related discussion which is already a bit old http://stackoverflow.com/questions/9762685/using-the-requests-python-library-in-google-app-engine
Next week I'm working on a new pusher-js release. After that is done I'll be spending some more time on the python library.

According to the stackoverflow link new versions of requests and urllib3 might have fixed the problem so that's one thing you could try. Also if you can list your python version and dependencies version it could be useful when I come around to continue work on the library.

@zimbatm Thanks a lot for the confirmation! It is a good news.
I actually have some follow-up questions regarding transition from pusher_client_python to pusher-http-python. I don't think github issues is a right forum for this kind of discussion. What is the best way to move this discussion forward?

I don't mind keeping the discussion on github. To avoid being too out of topic with this issue you can open a new one with your specific topic in mind. Or otherwise contact support and ask for me so they can route the ticket to me.

Hey @kongakong ! I've just tested out the new URLFetchBackend (added today) with GAE and it seems to work fine. It's on branch 1.0.0 - if you have time to check it out I'd like to get your thoughts :)

Closing for now, please re-open if any issue arises.


RAM memory leak with tf.function when training multiple models in a loop

Issue type
Bug
Have you reproduced the bug with TensorFlow Nightly?
No
Source
binary
TensorFlow version
tf 2.15
Custom code
Yes
OS platform and distribution
Ubuntu 22.04.3 LTS
Mobile device
No response
Python version
3.10
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
n/a
GPU model and memory
n/a
Current behavior?
When I train multiple models in a loop, if I decorate the train() function with @tf.function, then the memory usage keeps on increasing after each loop iteration, even when I delete the model at the end of each loop and clear the TensorFlow graph/session.
The memory leak does not occur when @tf.function is removed. However, model training performance is significantly slower.
Colab notebook to reproduce issue:
https://colab.research.google.com/drive/1sJsGmcFeZVx6ImNbqnBsgF_LzIyPxXPW?usp=sharing
Standalone code to reproduce the issue
import gc
import os

import psutil
import tensorflow as tf

class MyModel:
    def __init__(self):
        self.dnn = tf.keras.Sequential([
            tf.keras.layers.Dense(256),
            tf.keras.layers.Dense(256),
            tf.keras.layers.Dense(256),
            tf.keras.layers.Dense(1),
        ])
        self.optimizer = tf.optimizers.Adam()

    @tf.function   # if we remove this @tf.function decorator, then there is no memory leak
    def train(self, X):
        with tf.GradientTape() as tape:
            loss = tf.reduce_sum(self.dnn(X))
        grads = tape.gradient(loss, self.dnn.trainable_variables)
        self.optimizer.apply_gradients(zip(grads, self.dnn.trainable_variables))

process = psutil.Process(os.getpid())
rss = int(process.memory_info().rss / 1024 / 1024)  # in MB
print(f'rss: {rss} MB')

X = tf.ones((50, 80))
for i in range(50):
    model = MyModel()
    for _ in range(20):
        model.train(X)

    del model
    tf.keras.backend.clear_session()
    tf.compat.v1.reset_default_graph()
    gc.collect()

    new_rss = int(process.memory_info().rss / 1024 / 1024)
    if new_rss > rss:
        rss_increase = new_rss - rss
        rss = new_rss
        print(f'Iter {i:05d}, rss increase: {rss_increase} MB, rss: {rss} MB')

Relevant log output
rss: 593 MB
Iter 00000, rss increase: 31 MB, rss: 624 MB
Iter 00001, rss increase: 6 MB, rss: 630 MB
Iter 00002, rss increase: 5 MB, rss: 635 MB
Iter 00003, rss increase: 5 MB, rss: 640 MB
Iter 00004, rss increase: 5 MB, rss: 645 MB
Iter 00005, rss increase: 5 MB, rss: 650 MB
Iter 00006, rss increase: 5 MB, rss: 655 MB
Iter 00007, rss increase: 5 MB, rss: 660 MB
Iter 00008, rss increase: 5 MB, rss: 665 MB
Iter 00009, rss increase: 5 MB, rss: 670 MB
Iter 00010, rss increase: 4 MB, rss: 674 MB
---  <omitting some rows for brevity>  ---
Iter 00040, rss increase: 5 MB, rss: 822 MB
Iter 00041, rss increase: 5 MB, rss: 827 MB
Iter 00042, rss increase: 5 MB, rss: 832 MB
Iter 00043, rss increase: 5 MB, rss: 837 MB
Iter 00044, rss increase: 5 MB, rss: 842 MB
Iter 00045, rss increase: 5 MB, rss: 847 MB
Iter 00046, rss increase: 5 MB, rss: 852 MB
Iter 00047, rss increase: 5 MB, rss: 857 MB
Iter 00048, rss increase: 5 MB, rss: 862 MB
Iter 00049, rss increase: 5 MB, rss: 867 MB

@sachinprasadhs I was able to replicate the issue on colab. Please find the gist here for reference.
Thank you!


PHP 8.2 support

Codecov Report
Base: 82.14% // Head: 82.83% // Increases project coverage by +0.69% :tada:

Coverage data is based on head (8a44c4a) compared to base (86757e8).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff              @@
##             master       #2      +/-   ##
============================================
+ Coverage     82.14%   82.83%   +0.69%
  Complexity       47       47
============================================
  Files             2        2
  Lines           140      134       -6
============================================
- Hits            115      111       -4
+ Misses           25       23       -2

Impacted Files
Coverage Δ

lib/Horde/Stream/Wrapper/Combine.php
83.72% <0.00%> (+0.57%)
:arrow_up:

lib/Horde/Stream/Wrapper/String.php
81.25% <0.00%> (+0.85%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Wrong launch on Bolt

Here we talk the issue we have on Bolt using the odri_control_interface and the dynamic_graph_manager.
So far there seem to be trouble with YAML parsing of the parameters.
This issue is tackle by this PR:
https://github.com/open-dynamic-robot-initiative/bolt/pull/3

The problem of yaml parsing seemd to be reolved by this:
https://github.com/machines-in-motion/machines-in-motion.github.io/wiki/building_trouble_shooting#segfault-during-yaml-cpp-parsing


Improve Minds name requirements

Short description of current behavior
Improve the name requirements for minds
Steps 🕵♂ 🕵♀

Add name requirements.
Mind name should start with a letter and contain only letters, numbers or underscore, with a maximum of 32 characters. Spaces are not allowed.

📢 Additional rewards 🏆
This issue brings 4⃣ 0⃣  points for SWAG and entry into the draw for a 👇 :
3⃣ ❌ 💻 Razer Blade 16 Gaming Laptop
👕 🐻 MindsDB Swag
ℹ For more info check out https://mindsdb.com/hacktoberfest 👈

I want to work on this


Scope separator: DocuSign expects URL encoded spaces

This is a scoping separator issue that either DocuSign identity service or this passport-docusign module needs to resolve.
DocuSign identity service handling of scope expects not commas but URL encoded spaces.
I am working on a service that uses DocuSign identity service to authenticate to use CLM, which requires SpringCM scoping:

spring_read
spring_write

It expects the scoping separation to be URL encoded spaces '%20'.
scope=spring_read%20spring_write
passport-docusign default scope formatted does not work to permit access to SpringCM API using DocuSign access token:
scope=spring_read%2Cspring_write

Not '+'
Not commas ','
Not URL encoded commas '%2C'

Have you tried setting the Passport OAuth2 options attribute scopeSeparator ?
I think you're right that the default setting in strategy.js should be updated to %20
But it looks like you can set it explicitly.

... And you set the options.scope to an array with your desired scopes.
See Line 230 of the OAuth2 strategy

@LarryKlugerDS
DocuSign api documentation lists scopes separated by url-encoded space:
https://developers.docusign.com/orgadmin-api/guides/auth

In order to be able to access DocuSign CLM via SpringCM API v2, it requires a DocuSign access token with scoping: **spring_read**%20**spring_write**
If I used scopeSeparator: ' ', then it generates:
&scope=spring_read+spring_write&
However, the DocuSign generated

Hi Jeff!
Am I right that you fixed this issues with your PRs and added tests?
Thank you very much for your help with this project,
Larry

+ is now supported as a scope separator in addition to %20


[BUG] visible modeline and missing prompt after deleting and toggling the shell popup

Even though the error of #2095 was solved, there are still some issues after deleting the popup buffer of the shell. The modeline is visible and the shell prompt is missing.

Please include steps to reproduce this.

Please include steps to reproduce this.

Call +shell/toggle
Call kill-current-buffer
Again, call +shell/toggle

This should be fixed in aa19eee. Let me know if that isn't the case and I'll reopen it. Thanks for bringing it to my attention!


Error 3050003: eosio_assert_message assertion failure - unclear error message

Getting unclear error message, running with --verbose-http-errors
cleos push action eosio claimrewards eosiodetroit -p eosiodetroit@claims
Error 3050003: eosio_assert_message assertion failure
Error Details:
assertion failure with message: read
pending console output:

Please start nodeos with  --contracts-console
If you still need help and wish to discuss further, please post it in https://eosio.stackexchange.com. To keep things organized, Github issues are intended for bug reporting and feature tracking, and Stack Exchange is the right place for any technical support discussions. Thanks!

I restarted with  --contracts-console. The only message I see:
Error 3050003: eosio_assert_message assertion failure

@bitcoiners could add --verbose-http-errors as well. That might make print out more info

@bitcoiners could add --verbose-http-errors as well. That might make print out more info

As mentioned in original post nodeos is running with --verbose-http-errors, still no useful message is printed out.

@gaboesquivel we experienced this error several times over the weekend, even after clearing the data tables that had changed structure. the only solution we found was to create a new account.

This solved it for me: https://github.com/EOSIO/eos/issues/4394