Stored Procedure call fails for low privileged users in SLP-03

Description:
The following error is thrown when a low privileged user tries to call a Stored procedure in a MySQL DB.
[2020-09-17 12:10:15,153] SEVERE {b7a.log.crash} - ABORTED: Register stored proc failed: Error while executing SQL query: {CALL Register( ? ,  ? ,  ? ,  ? ,  ? ,  ? )}. Unable to parse SQL call query to get metadata for OutParameters of procedure, 'Register', Illegal operation on empty result set.
io.grpc.StatusRuntimeException: ABORTED: Register stored proc failed: Error while executing SQL query: {CALL Register( ? ,  ? ,  ? ,  ? ,  ? ,  ? )}. Unable to parse SQL call query to get metadata for OutParameters of procedure, 'Register', Illegal operation on empty result set.

Below is how the client connection is made:
function createJdbcClient() returns jdbc:Client|sql:Error {
    jdbc:Client|sql:Error jdbcClient =
          check new (url = io:sprintf("jdbc:mysql://%s:%d/%s?noAccessToProcedureBodies=true&allowPublicKeyRetrieval=true",
            testDbHost, testDbPort, DbName),
            user = dbUserName,
            password = dbUserPassword,
            connectionPool = {maxOpenConnections: 50},
            options = {properties: {"useSSL": false}}
          );
    return jdbcClient;
}

Following are the GRANTS given for the low privileged user:
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON `test_db`.* TO 'testUser'@'%';

Also to highlight, the stored procedure is created by the root user. And when the procedure is called by the root user, it seems to work fine.
Affected Versions:
Ballerina [SLP-03].
OS, DB, other environment details and versions:
MySQL version 5.7 is used.

Below are some findings.
When the following function is called java.sql.DatabaseMetaData.getProcedureColumns from ballerina side by a low privilege user, an empty result set is returned since the user has no access to mysql.proc database.

Background into this issue, When using OutParameters in SQL Procedurecalls, user have to define the SQL Type of the parameter explicitly, However, in order for the higher usability for a ballerina user, we tried to fetch this type information using a MetaDataCall before actually executing the procedure call.
I have looked into it and there are few solutions that I tried,

Using noAccessToProcedureBodies flag [1]
This would not work for the use case, since this will return data type of all the parameters as VARCHARS. We need actual datatypes of the parameters.

Requesting user to have access to mysql.proc table.
This table consists of metadata information of procedure calls from all databases. This is a very serious security flaw since we do not want the user to know anything about any other databases procedure calls.

Not using metadata fetch at all & specifying the user to define the SQL type in the OutParameter type
Option1: Having multiple subtypes of out parameter

     public class CharOutParameter {
          public isolated function get(typedesc<anydata> td) returns td|Error external;
    }
     public class VarcharOutParameter {
           public isolated function get(typedesc<anydata> td) returns td|Error external;
     }

Option 2: Similar to InoutParameter, make user mandatory to initialise out parameter with a SQL Value
     public class OutParameter {
    Value out;

    public isolated function init(Value out) {
        self.out = out;
    }

    public isolated function get(typedesc<anydata> td) returns td|Error external;
}

Usage
sql:OutParameter paramId = new sql:OutParameter(new sql:VarcharValue)
sql:OutParameter paramId = new sql:OutParameter(1)  // This will be marked as SQL INTEGER type

@daneshk @jclark Your thoughts on this?
Please find the design document for further information into the design of procedures API.

@all As per the offline discussion, we have decided to go ahead with the Option 1 and remove metadata fetch in the call() API


How to add custom LuaSnip?

Again, I am new to Lua configuration, one more simple question.
I want to add more custom snippets, perhaps via LuaSnip.
should I add snippets in module/completion/plugin.lua as shown below:
completion["L3MON4D3/LuaSnip"] = {
    after = "nvim-cmp",
    config = conf.luasnip,
    requires = "rafamadriz/friendly-snippets"
}

or should I create a special folder such as nvim/snippets/, then write json snippets, like this one?

Please refer to this: https://github.com/L3MON4D3/LuaSnip/issues/37

Thanks!
After couple hours diving, still with no success.
This new Lua based framework is a bit complex for newbies.
I tried to add code somewhere in module/*/*.lua
local ls = require("luasnip/loaders/from_vscode").load()

It gives me error, said luasnip is not found.
Then I found some code in module/completion/config.lua, and add the path with my custom snippets folder.
function config.luasnip()
    require("luasnip").config.set_config {
        history = true,
        updateevents = "TextChanged,TextChangedI"
    }
    require("luasnip/loaders/from_vscode").load(
    **{ paths = { "~/.config/nvim/snippets" } }**
    )
end

besides, I created the path ~/.config/nvim/snippets, and add a file called r.json
>cat ~/.config/nvim/snippets/r.json

{
  "aaa": {
    "prefix": "aaa",
    "body": ["a1a1a1"]
  }
}

Still not working, please help.

Is it possible to include a demo setup code in your repo? That will greatly facilitate the usage.
I suppose this is general demand.

First of all, your snippets organization should follow structure like friendly-snippets.
Secondly, your custom snippets that is the json code block, should follow its example.
Thirdly, add your custom snippets to runtimepath.
So here is how I set it:

then PackerSync

Is it possible to include a demo setup code in your repo? That will greatly facilitate the usage. I suppose this is general demand.

I will setup it when I have enough time, thanks for your advice.

Wonderful!


management_eapi cannot be disabled in role eos_designs

Issue Summary
AVD Version 4.10.0 using the official Container
FROM ghcr.io/aristanetworks/avd/universal:python3.12-avd-v4.10.0
With the role eos_designs you are not able to disable api http-commands section to default:
The default (hidden) config of a EOS switch has a disabled api http-commands section. We want to render the switch default.
We need it disbled for hardening, becaue we dont use the eos_config_deploy_eapi role
CLI:
show run all | sec management api http-command
management api http-commands
   protocol https port 443
   no protocol http port 80
   no protocol http localhost port 8080
   no protocol unix-socket
   qos dscp 0
   no log-level
   default-services
   no header csp frame-ancestors
   no cors allowed-origin
   no protocol https ssl profile
   no protocol https certificate
   shutdown

With the role eos_designs you are not able to represent the switch default, even if you set all avd parameters to false:
AVD:
management_eapi:
  enable_http: false
  enable_https: false
  default_services: false

CLI:
management api http-commands
   no protocol https
   no protocol http
   no default-services
   no shutdown
   !
   vrf MGMT
      no shutdown

Even if you dont use the management_eapi: key at all, there is still a unwanted configruation rendered by eos_designs:
CLI:
management api http-commands
   protocol https
   no shutdown
   !
   vrf MGMT
      no shutdown

Which component(s) of AVD impacted
eos_designs
How do you run AVD ?
Ansible CLI with AVD Runner
Steps to reproduce
No response
Relevant log output
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

Thank you for reporting this. I don't see this as a bug, but intended behavior. I will update this issue to enhancement.
You can avoid this config by overriding the output of eos_designs:
custom_structured_configuration_management_api_http: null

I am curious why this is not coming up more. Are you sure deploying with CloudVision will work without this? I believe CloudVision uses eAPI tunneled over TerminAttr. If you are deploying with other means, please share :)
The request here would be to add a knob to eos_designs like:
management_eapi:
  enabled: <bool; default: true>

Thank you, the workaround with custom_structured_configuration_management_api_http: null
It is working for our usecase.
We roll out configuration by sending configlets to CVP via the cvp_configlet_upload role and deploy it with the tasks in changes via CVP. There is no Problem in communication between CVP and the Switches, when using  custom_structured_configuration_management_api_http: null
I think the Terminattr initates a session to CVP and cvp uses this initiated session for pushing configuration. But maybe i am wrong here
we are using AVD Rendered TerminaAttr settings
!
daemon TerminAttr
exec /usr/bin/TerminAttr -cvaddr=x.x.x.x:9910 -cvauth=token,/tmp/token -cvvrf=MGMT -disableaaa -smashexcludes=ale,flexCounter,hardware,kni,pulse,strata -ingestexclude=/Sysdb/cell/1/agent,/Sysdb/cell/2/agent -taillogs
no shutdown
!


Minimum deployment target

Why minimum deployment target set in .podspec is as high as 9.0? I believe it would work well with iOS 8.0.

Hi, @sochalewski.
You are right, but some layout code that use the new API 'NSLayoutAnchor' in iOS9 (because I am so lazy and want to use the simple API…😬), it is not difficult change these code to 'NSLayoutConstraint', if I have time, I will change it make it more compatible, or you can change it by yourself and pull a request.

One more thing that the storyboard is using the iOS9 new feature - 'UIStackView' in 'PasswordContainerView', it may be a little convoluted to change it for iOS7&8 compatibility.


Jenkins agent fails to start

I'm new to Jenkins and trying to troubleshoot an issue where our Jenkins agent fails to start. Error: Error: Could not find or load main class hudson.remoting.jnlp.Main
We are running:
Jenkins master version: 2.22
Jenkins jnlp slave version: 2.90
Any idea why my agents stopped working? The only change i did is upgrade from 2.20 to 2.22

I rolled back to 2.20 but still getting the same error.

duh!! I also changed the jnlp slave version from 2.60 to 2.90. Rolling it back to 2.60 works.

what commands are you running and how are you running them?

tengo el mismo problema

I doubt commenting in a 3-year-old PR will help. Please consider creating a new issue and listing your versions at least


fixed release version

Downgraded android-pdf-viever to 2.8.2

Whats the status on this? Thanks!

Hey man, I got a lot on the line waiting for this PR to be merged. Boss is on my back every day wanting to see his PDFs in app. If you could merge this my life will become bearable and I'll be able to see my family again.

@lubritto  Going to bum this PR

Running Gradle task 'assembleDevDebug'...
C:\flutter\.pub-cache\hosted\pub.dartlang.org\pdf_viewer_plugin-1.0.1\android\src\main\java\com\example\pdfviewerplugin\PdfViewer.java:25: error: cannot find symbol
        Intent i = new Intent(this, Wakeup.class);
        ^
  symbol:   class Intent
  location: class PdfViewer
C:\flutter\.pub-cache\hosted\pub.dartlang.org\pdf_viewer_plugin-1.0.1\android\src\main\java\com\example\pdfviewerplugin\PdfViewer.java:25: error: cannot find symbol
        Intent i = new Intent(this, Wakeup.class);
                       ^
  symbol:   class Intent
  location: class PdfViewer
C:\flutter\.pub-cache\hosted\pub.dartlang.org\pdf_viewer_plugin-1.0.1\android\src\main\java\com\example\pdfviewerplugin\PdfViewer.java:25: error: cannot find symbol
        Intent i = new Intent(this, Wakeup.class);
                                    ^
  symbol:   class Wakeup
  location: class PdfViewer
C:\flutter\.pub-cache\hosted\pub.dartlang.org\pdf_viewer_plugin-1.0.1\android\src\main\java\com\example\pdfviewerplugin\PdfViewer.java:26: error: cannot find symbol
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                   ^
  symbol:   variable Intent
  location: class PdfViewer
4 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':pdf_viewer_plugin:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 23s
Exception: Gradle task assembleDevDebug failed with exit code 1

error when upgrading to the latest version


If the series has ended show a progress bar (or percentage)

As always, where?

I guess it should be in the "title" line, e.g. after the "ended"/"canceled" label.


Support other react/react-native version

Couldn't make this package work with<EMAIL_ADDRESS>because of conflict in versions of RN
Moving react and react-native to peerDependencies solved the problem for me

Testing this out now.


Google fonts: add font selection parameter

Description of changes
The google-fonts package conists of > 1000 fonts. This can make the
font-selection dialog in some programs almost unusable.  This enables
users to customize which fonts they want to install. It is inspired by
the solution the nerdfonts package already uses.

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.11 Release Notes (or backporting 22.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Where are the CI checks?


No scale on parent tracks

I launched BRCA1 for project 400 (https://mosaic.chpc.utah.edu/#/projects/400/samples) for the top sample (DK0107945). There are no variants for the proband. Select the parent tracks and I get the following:

No coverage information or scale. Click the gene name in the left panel and it loads:

@adityaekawade can you confirm this is fixed (it appears to be) and close?

I can see the scale for parents track without having to click the gene name in the left panel. Seems to be fixed.


Add support for VSCodium

Fixes #650 and downstream issue https://github.com/VSCodium/vscodium/issues/17
VSCodium still uses the .vscode-oss path, but because the name of the application is VSCodium and not Code - OSS, this extension was unable to find the settings path. This PR adds the VSCodium path as an option if isOss is true.

Thanks!


Is it possible to adjust available GPU during training?

Is it possible to adjust available GPU during training?
Think about this scenario, during traing, the user think one GPU card is too slow to training, and want to add another card to speed up the training. So Is it possible to adjust available GPU without breaking the training？

@pokerfaceSad NO you can't, but you can use distributed training to train on multiple GPUs but you can't add a gpu in between the training.

@pokerfaceSad NO you can't, but you can use distributed training to train on multiple GPUs but you can't add a gpu in between the training.

Thx for your reply.


Abiilty to run commands upon PlugUpdate completion

There are plugins which have their own plugin ecosystem (see coc.nvim for example - it has its own plugin update command - CocUpdate).
It would be nice for a user to be able to create a single command in his init.vim that updates all plugins.
What I had in mind was something like this:
function! Update()
    PlugUpgrade
    PlugClean
    PlugUpdate
    CocStart
    CocUpdate
    UpdateRemotePlugins
endfunction

The problem is that it seems that the PlugUpdate command is completed before the update is actually complete.
Thus when CocUpdate is performed it may be initiated from a non-up-to-date Coc plugin itself.
It would be nice to have an ability to run commands upon PlugUpdate completion, whether with PlugUpdate (ot its variant) returning only  when updates are complete or with a command that can be hooked to run after update.

Type:

[ ] Bug
[x] Enhancement
[ ] Feature Request
[ ] Question

OS:

[x] All/Other
[ ] Linux
[ ] OS X
[ ] Windows

Vim:

[ ] Terminal Vim
[ ] GVim
[x] Neovim

PlugUpdate --sync will block until completion (undocumented feature).

Neat!


[WIP]Add maven-antrun-plugin into build profiles so that class files of different profiles do not clash when genrating coverage report

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/716/

Build Success with Spark 1.6, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1/

SDV Build Fail , Please check CI http://<IP_ADDRESS>:8080/job/ApacheSDVTests/1197/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/566/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/1427/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3073/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/4317/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/5205/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/3995/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/7142/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder/5918/

Build Failed  with Spark 2.3.1, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/8818/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/573/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/2021/

Build Failed with Spark 2.2.1, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder1/2198/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:8080/job/carbondataprbuilder2.3/10273/

Build Success with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:8080/job/ApacheCarbonPRBuilder2.1/2667/

Build Failed  with Spark 2.1.0, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.1/94/

Build Failed  with Spark 2.3.2, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/93/

Build Failed  with Spark 2.4.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbon_PR_Builder_2.4.4/91/

Build Failed  with Spark 2.3.4, Please check CI http://<IP_ADDRESS>:12545/job/ApacheCarbonPRBuilder2.3/4024/


Check runtime dynamically

This PR removes the improper initialization of the runtime.
Explanation:

Initializing a runtime when creating the struct doesn't make sense.

Users may create an EthersDB in a sync context but later use it in an async environment and vice versa. In this case, two runtimes will conflict. In addition, the current code, by default, creates a multithreaded runtime, which could be unexpected for users. For example, users may want to run many instances in parallel with separate cores pinned but the runtime created could interfere with this design.
Therefore, reasonable behavior is always checking if we are in an async environment by Handle::try_current. If we are in  async, we will pick the runtime created by users. Or else, we simply create a current_thread runtime to get things done. Note this is the recommended way by tokio docs.
For current_thread runtime, a new thread is spawned to complete the futures as tokio doesn't allow us to block_in_place, which essentially does spawn_blocking. This could be removed once we have a async equivalent trait.

Does it make things slower?

No. Because the current implementation only has concurrency but not parallelism. Specifically, see:
        let f = async {
            let nonce = self.client.get_transaction_count(add, self.block_number);
            let balance = self.client.get_balance(add, self.block_number);
            let code = self.client.get_code(add, self.block_number);
            tokio::join!(nonce, balance, code)
        };
       let (nonce, balance, code) = self.block_on(f);

Either a current_thread or a multi_thread runtime will execute the three rpc calls one by one. Refer to tokio::join! documents for details.

Any breaking changes?

No, as explained above.

This also solves #1056 as I tested.

Thanks!


RFC: change to a modular edge detector imported from tinyfpga bootloader

Found this while reading the tinyfpga bootloader code. It seems like a marginally more efficient and uniform way to do rising and falling edge detection. Placing in the FSM, SPI, and HBridge saved ~20LUT.
RFC:
The idiom is a little different than our shift register.
Likely still a good idea to DRY out edge detection via a module.

Seems good to me.
The only potential downside I see vs the old method is the small amount of combinatorial logic following the always block. This will tighten timing on the output slightly. This PR is only watching the output in always blocks with no other combinatorial logic. I see no new cost to us.

Maybe where we want more guarantee of stability we can substitute for a different module with a double or triple shift register.


Maybe a faster dot product (I'm not sure)

Looking at AVX512 dot product I tried to avoid the if inside the loop to make a faster code. Here is a (not tested) idea of the proposed code:
simsimd_avx512_f32_ip(simsimd_f32_t const* a, simsimd_f32_t const* b, simsimd_size_t n)
{
    __m512 ab_vec = _mm512_setzero();
    __m512 a_vec, b_vec;

    int n_tail = n & 15; // Equivalent of n%16 but faster
    n -= n_tail;

    while(n) // faster loop without ifs
    {
        a_vec = _mm512_loadu_ps(a);
        b_vec = _mm512_loadu_ps(b);
        ab_vec = _mm512_fmadd_ps(a_vec, b_vec, ab_vec);

        a += 16, b += 16, n -= 16;
    }
    if(n_tail)
    {
        __mmask16 mask = _bzhi_u32(0xFFFFFFFF, n);
        a_vec = _mm512_maskz_loadu_ps(mask, a);
        b_vec = _mm512_maskz_loadu_ps(mask, b);
        ab_vec = _mm512_fmadd_ps(a_vec, b_vec, ab_vec);
    }

    return _mm512_reduce_add_ps(ab_vec);
}

Hi @javiabellan, thanks for the contribution! The while is actually identical to a combination of if and goto, so the performance should be the same.

I am not sure the AVX-512 versions have room for improvement, but for Apple one can try to replace NEON with AMX. Let me know if you can test those 🤗

I see it. I was thinking about the condition in assembly. Maybe cheking if is not zero (JNZ) is faster than n < 16. But i dont really know.


Comparisons over time

[x] Think about tests on individual items (treat as between with corrections)
[x] Think about meaningful differences
[x] Figure out way to compare one item and loop that over all (regression: year ~ agreement)

Should we maybe do a subgroup analysis on just students or just staff? Differences right now could stem from the differences in sample composition. Or we could enter staff vs. student as another predictor into the model.

This might have been nice, but not in scope for the current report. I'm keeping the issue open, because we still might look at it once we are thinking about publishing.


[Feature] Add sqlite supports

In #45, we talk about add the sqlite as an alternative database for some budget machine, here's a quick implementation, detailed changes:

Add sqlite database for local use only, usage:python bot.py -d sqlite

Add http proxy supports:python bot.py -p ip:port

Tested localy on my machine, everything work as expected

@karfly could you review and merge this PR, cause i don't have the write access.

Have you looked into deploying your own fork ?
I am debating the pros and the cons about the usefulness of merging this to the main repo :thinking:

Have you looked into deploying your own fork ? I am debating the pros and the cons about the usefulness of merging this to the main repo 🤔

Emm, tbh, I think it is better to merge it into the upstream since the sqlite is less space consuming for personal usage.
But also, I can keep it in my own fork if you guys doubt it's usesfulness.

As a user I'm waiting for this, if this doesn't get merged then some logic to clean old conversation data is really needed IMHO.

overall lgtm, just need to be tested and waiting for an approval

@clemsau could you tell me about how to initiate the test procedure, thks

Looking forward for it.
MongoDB is a lot for personal and family usage.


Blocker : UserRole is not exported

After updating to the latest version, after generating, the following bug appears at server start :
[ERROR] 15:03:13 ⨯ Unable to compile TypeScript:
src/bundles/AppBundle/services/inputs/UserInsert.input.base.ts:3:10 - error TS2724: '"../../collections"' has no exported member named 'UserRole'. Did you mean 'UserRoles'?

3 import { UserRole } from "../../collections";

This will not happen on 1.6.4 most likely. Please re-open if it does.


Two different  popups are shown when user decrease amount in “Amount” field on “Add Funds” screen

Frequency: 100%
Repro on build version: Test Flight build V1.14.2(61), Android  internal  build V1.14.2
Repro on devices: iPhone SE (13.6.1) , iPhone SE (14.2), iPhone 6+(12.4.5),  Redmi Note 8 (9.0),Samsung Galaxy J5 Prime (8.0.0)
Testing Account:<PHONE_NUMBER>/ Backup Key
Repro Steps:

Launch the application & login with a test account.
Tap on Hamburger Menu
Tap on “Add and Withdraw” & Select “Add Funds” option
Select “Celo Dollar(cUSD) as digital currency & Pay with “Debit Card” & tap on “Next” button.
Now the user is on the “Add Funds” screen.
Now tap on the “Next” button by entering a large amount(e.g.500000) & observe popup.
“Our providers do not support larger than $100301. Please enter smaller amount” popup displayed
Now decrease the amount value by removing one digit & observe popup
User able to see popup regarding increase daily send limit
Current Behavior:  User able to see two different popup depending on amount entered
Expected Behavior:  Users should be  able to see the same popup even user decreased values from any range.
Investigation:
We have observed the issue in Android for boundry value of limit.  i.e. when user enters amount as 500000 then user able to see "providers not support larger than $5000. And user able to see increase daily limit popup for $5000 as amount
Impact: Bad user experience.
Attachment: iOS_PopupBasedOnValues.wmv
Android_IssueForBoundryValue

https://valora.testquality.com defect D12. Do not remove or edit.

Related issue

https://valora.testquality.com defect D13. Do not remove or edit.

https://valora.testquality.com defect D14.

Hey @MuckT, We have verified the above issue on Latest Android Internal Release Build V1.28.1 & Test flight Release Build V 1.28.1 and observed that the issue is fixed now. Same popups are shown when user decrease amount in “Amount” field on “Add Funds” screen, hence we are closing the issue.
Devices: Samsung Galaxy A9 pro(8.0), iPhone 13 mini(15.1.1), iPhone 6+(12.5.5), Redmi Note 7 Pro(10.0)
Attachments: Popup.mp4
Thanks..!!


Check Travis CI API v3 updates

I need to check if there are any updates on the API I have not noticed yet. I'm pretty sure there are some.

I do not know if it's new, but it will be great if we could get the standard version of a commit.
I need to get the author from a build : https://developer.travis-ci.com/resource/commit#Commit

@jsdidierlaurent Thanks for your information! It seems they've added committer and author props to Commit. Would you like to make a PR or I'll work on this when I have time! 👍

Now I've compared the API and the source code and listed up all the changes we need to make!
https://github.com/shuheiktgw/go-travis/issues/19
I will close this issue but please feel free to work on the problem on Commit struct if you want! 👍

Ok, now I understand the problem correctly. Since we do not support eager loading, the objects associated with the resource always is in minimal representation. Usually, it's ok, but in this case, commit does not have its endpoint and there are no ways to get  commits in standard representation...


fix(logger): adjust publish and ttl times to seconds

Closes #3853.

Very slightly related but I don't know if relevant: from the Go flag reference, the correct way to pass command-line argument is:  /bin/logger -flag=value.
But, the Dockerfile use the --flag syntax. Is it an error ?

@mackwic both are fine. From the same page:

One or two minus signs may be used; they are equivalent.

@aledbf's comment looks like a good change to implement, otherwise LGTM

LGTM.

On a new make dev-cluster vagrant cluster from master, top shows the logger process to consume about 35% of CPU shares, even without any apps deployed. After this change, logger consumes a negligible (<1%) share.


🐛 [firebase_analytics] error: no known class method for selector 'setScreenName:screenClass:'

Bug report
Describe the bug
The build process fails for iOS.
Steps to reproduce
Steps to reproduce the behavior:

Try to run the app for iOS
See error or incorrect behavior in the console

Additional context
XCode Version: Version 12.4 (12D4e)
Pod Version: 1.10.1
Firebase dependencies:
 #firebase
  firebase_crashlytics: 2.0.0
  firebase_analytics: "^7.0.1"
  firebase_performance: 0.6.0+2
  firebase_remote_config: 0.9.0-dev.2
  firebase_core: ^1.0.3
  firebase_in_app_messaging: 0.5.0`

Error:
firebase_analytics-7.1.1/ios/Classes/FLTFirebaseAnalyticsPlugin.m:49:19: error: no known class method for selector 'setScreenName:screenClass:'
        [FIRAnalytics setScreenName:screenName screenClass:screenClassOverride];
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.

Podfile:
# Uncomment this line to define a global platform for your project
platform :ios, '10.0'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

def flutter_root
  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
  unless File.exist?(generated_xcode_build_settings_path)
    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!
  use_modular_headers!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
        config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
          '$(inherited)',

          ## dart: PermissionGroup.calendar
          'PERMISSION_EVENTS=0',

          ## dart: PermissionGroup.reminders
          'PERMISSION_REMINDERS=0',

          ## dart: PermissionGroup.contacts
           'PERMISSION_CONTACTS=0',

          ## dart: PermissionGroup.camera
          'PERMISSION_CAMERA=0',

          ## dart: PermissionGroup.microphone
          'PERMISSION_MICROPHONE=0',

          ## dart: PermissionGroup.speech
          'PERMISSION_SPEECH_RECOGNIZER=0',

          ## dart: PermissionGroup.photos
          'PERMISSION_PHOTOS=0',

          ## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
         'PERMISSION_LOCATION=0',

          ## dart: PermissionGroup.notification
          'PERMISSION_NOTIFICATIONS=0',

          ## dart: PermissionGroup.mediaLibrary
          'PERMISSION_MEDIA_LIBRARY=0',

          ## dart: PermissionGroup.sensors
          'PERMISSION_SENSORS=0',

          ## dart: PermissionGroup.bluetooth
          'PERMISSION_BLUETOOTH=0'
        ]
    end
  end
end

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[✓] Flutter (Channel stable, 2.0.2, on macOS 11.1 20C69 darwin-x64, locale en-PL)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] VS Code (version 1.56.2)
[✓] Connected device (2 available)

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 2.12.1
Flutter SDK 2.0.2
app 0.14.4

dependencies:
- brand_feed 0.0.1 [flutter visibility_detector scrollable_positioned_list flutter_slidable flutter_bloc freezed_annotation dartz equatable flutter_icons readmore commons core connect delete_connected_items post_detail]
- campaign_detail 0.0.1 [flutter flutter_bloc flutter_icons readmore commons core carousel_slider url_launcher]
- campaign_hide 0.0.1 [dartz flutter flutter_icons flutter_bloc core commons]
- carousel_slider 3.0.0 [flutter]
- charts_flutter 0.10.0 [charts_common collection flutter intl logging meta]
- commons 0.0.1 [flutter firebase_crashlytics firebase_analytics firebase_performance firebase_remote_config firebase_core dio dio_cache_interceptor sqlite3_flutter_libs dio_cookie_manager get_it shared_preferences path_provider equatable event_bus url_launcher]
- core 0.0.1 [flutter hive hive_flutter mobx flutter_mobx flutter_icons flutter_bloc webview_flutter floating_action_bubble auto_size_text flutter_staggered_grid_view cached_network_image google_nav_bar pull_to_refresh material_floating_search_bar dropdown_search charts_flutter intl_phone_number_input flutter_svg flutter_facebook_login json_annotation equatable provider screenshot path_provider permission_handler pdf share printing connectivity shimmer commons]
- delete_connected_items 0.0.1 [flutter core dartz flutter_bloc]
- equatable 2.0.0 [collection meta]
- firebase_analytics 7.1.1 [firebase_analytics_platform_interface firebase_analytics_web firebase_core flutter meta]
- firebase_core 1.2.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- firebase_crashlytics 2.0.0 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace]
- firebase_in_app_messaging 0.5.0 [firebase_core flutter meta]
- firebase_performance 0.6.0+2 [firebase_core flutter]
- firebase_remote_config 0.9.0-dev.2 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface flutter]
- floating_action_bubble 1.1.2 [flutter]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_icons 2.0.0 [flutter]
- flutter_localizations 0.0.0 [flutter intl characters clock collection meta path typed_data vector_math]
- flutter_mobx 2.0.0 [flutter mobx]
- flutter_slidable 0.6.0 [flutter]
- flutter_staggered_grid_view 0.3.4 [flutter]
- hive 2.0.4 [meta crypto]
- hive_flutter 1.0.0 [flutter hive path_provider path]
- intercom_integration 0.0.1 [flutter intercom_flutter flutter_icons]
- intl 0.17.0 [clock path]
- json_annotation 3.0.0
- keyboard_actions 3.4.0 [flutter]
- mobx 2.0.1 [meta]
- onboarding 0.0.1 [dartz flutter flutter_bloc flutter_svg freezed_annotation core commons]
- path_provider 2.0.1 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- pdf 3.2.0 [archive barcode crypto image meta path_parsing vector_math xml]
- printing 5.0.4 [ffi flutter flutter_web_plugins image js meta pdf plugin_platform_interface]
- provider 5.0.0 [collection flutter nested]
- readmore 1.0.1 [flutter]
- screenshot 0.3.0 [flutter]
- share 2.0.1 [meta mime flutter]
- smartlook_integration 0.0.1 [flutter smartlook]
- trending 0.0.1 [flutter chips_input flutter_icons visibility_detector scrollable_positioned_list flutter_bloc freezed_annotation dartz equatable async core commons post_detail flutter_svg]
- visibility_detector 0.2.0 [flutter]
- wait_list_locker 0.0.1 [dotted_line flutter flutter_svg flutter_bloc freezed_annotation dartz equatable flutter_icons commons core]
- webview_flutter 2.0.4 [flutter]

dev dependencies:
- build_runner 1.12.2 [args async build build_config build_daemon build_resolvers build_runner_core code_builder collection crypto dart_style glob graphs http_multi_server io js logging meta mime path pedantic pool pub_semver pubspec_parse shelf shelf_web_socket stack_trace stream_transform timing watcher web_socket_channel yaml]
- dart_countries_states 0.1.1 [built_collection built_value http logger]
- faker 1.3.0
- flutter_driver 0.0.0 [file meta path vm_service webdriver flutter flutter_test fuchsia_remote_debug_protocol archive args async boolean_selector characters charcode clock collection convert crypto fake_async matcher platform process source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math]
- flutter_launcher_icons 0.9.0 [args image path yaml]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- http_mock_adapter 0.2.1 [dio mockito]
- integration_test 0.9.2+2 [flutter flutter_driver flutter_test path vm_service archive args async boolean_selector characters charcode clock collection convert crypto fake_async file matcher meta source_span stack_trace stream_channel string_scanner sync_http term_glyph test_api typed_data vector_math webdriver]
- mockito 5.0.3 [analyzer build code_builder collection dart_style matcher meta path source_gen test_api]

dependency overrides:
- archive 2.0.13 [crypto args path]
- args 2.0.0
- convert 2.1.1 [charcode typed_data]
- crypto 2.1.5 [collection convert typed_data]
- intl 0.17.0 [clock path]
- json_annotation 3.0.0

transitive dependencies:
- _fe_analyzer_shared 20.0.0 [meta]
- analyzer 1.4.0 [_fe_analyzer_shared cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml pedantic]
- async 2.5.0 [collection]
- auto_size_text 2.1.0 [flutter]
- barcode 2.1.0 [meta qr]
- bloc 7.0.0 [meta]
- boolean_selector 2.1.0 [source_span string_scanner]
- build 2.0.0 [analyzer async convert crypto glob logging meta path]
- build_config 0.4.7 [checked_yaml json_annotation meta path pubspec_parse yaml]
- build_daemon 2.1.10 [built_collection built_value http_multi_server logging pedantic path pool shelf shelf_web_socket stream_transform watcher web_socket_channel]
- build_resolvers 2.0.0 [analyzer build crypto graphs logging path package_config pool pub_semver stream_transform]
- build_runner_core 6.1.12 [async build build_config build_resolvers collection convert crypto glob graphs logging meta path package_config pedantic pool timing watcher yaml]
- built_collection 5.0.0
- built_value 8.0.4 [built_collection collection fixnum]
- cached_network_image 3.0.0 [flutter flutter_cache_manager octo_image]
- characters 1.1.0
- charcode 1.2.0
- charts_common 0.10.0 [collection intl logging meta vector_math]
- checked_yaml 2.0.1 [json_annotation source_span yaml]
- chips_input 0.0.5 [flutter]
- cli_util 0.3.0 [meta path]
- clock 1.1.0
- code_builder 3.7.0 [built_collection built_value collection matcher meta]
- collection 1.15.0
- connect 0.0.1 [flutter flutter_bloc flutter_slidable freezed_annotation dartz flutter_icons commons core delete_connected_items]
- connectivity 3.0.3 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web]
- connectivity_for_web 0.4.0 [connectivity_platform_interface flutter_web_plugins flutter]
- connectivity_macos 0.2.0 [flutter]
- connectivity_platform_interface 2.0.1 [flutter meta plugin_platform_interface]
- cookie_jar 3.0.1
- dart_style 2.0.0 [analyzer args path pub_semver source_span]
- dartz 0.9.2
- dio 4.0.0 [http_parser path]
- dio_cache_interceptor 2.3.1 [dio hive moor path uuid]
- dio_cookie_manager 2.0.0 [cookie_jar dio]
- dotted_line 3.0.0 [flutter]
- dropdown_search 0.5.0 [flutter]
- event_bus 2.0.0
- fake_async 1.2.0 [clock collection]
- ffi 1.0.0
- file 6.0.0 [meta path]
- firebase 9.0.1 [http http_parser js]
- firebase_analytics_platform_interface 1.1.0 [flutter meta]
- firebase_analytics_web 0.2.0+1 [firebase firebase_analytics_platform_interface flutter flutter_web_plugins meta]
- firebase_core_platform_interface 4.0.1 [collection flutter meta plugin_platform_interface]
- firebase_core_web 1.1.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- firebase_crashlytics_platform_interface 3.0.4 [collection firebase_core flutter meta plugin_platform_interface]
- firebase_remote_config_platform_interface 0.2.0-dev.1 [firebase_core flutter meta plugin_platform_interface]
- fixnum 1.0.0
- flutter_bloc 7.0.0 [flutter bloc provider]
- flutter_blurhash 0.6.0 [flutter meta pedantic]
- flutter_cache_manager 3.0.1 [clock collection file flutter http image path path_provider pedantic rxdart sqflite uuid]
- flutter_facebook_login 3.0.0 [flutter collection]
- flutter_svg 0.21.0+1 [flutter meta path_drawing vector_math xml]
- flutter_web_plugins 0.0.0 [flutter js characters collection meta typed_data vector_math]
- freezed_annotation 0.12.0 [collection json_annotation meta]
- fuchsia_remote_debug_protocol 0.0.0 [process vm_service file meta path platform]
- get_it 6.0.0 [async collection]
- glob 2.0.1 [async collection file path pedantic string_scanner]
- google_nav_bar 5.0.3 [flutter]
- graphs 1.0.0
- http 0.13.1 [http_parser meta path pedantic]
- http_multi_server 2.2.0 [async]
- http_parser 4.0.0 [charcode collection source_span string_scanner typed_data]
- image 3.0.2 [archive meta xml]
- intercom_flutter 3.1.0 [flutter]
- intl_phone_number_input 0.7.0+1 [flutter meta libphonenumber_plugin equatable collection]
- io 0.3.4 [charcode meta path string_scanner]
- js 0.6.3
- libphonenumber 2.0.0 [flutter meta]
- libphonenumber_platform_interface 0.3.1 [flutter plugin_platform_interface]
- libphonenumber_plugin 0.2.3 [flutter flutter_web_plugins libphonenumber_platform_interface libphonenumber_web libphonenumber]
- libphonenumber_web 0.2.0+1 [flutter flutter_web_plugins js libphonenumber_platform_interface]
- logger 1.0.0
- logging 1.0.1
- matcher 0.12.10 [stack_trace]
- material_floating_search_bar 0.3.3 [flutter meta]
- meta 1.3.0
- mime 1.0.0
- moor 4.2.1 [async convert collection meta pedantic stream_channel sqlite3]
- nested 1.0.0 [flutter]
- octo_image 1.0.0+1 [flutter flutter_blurhash]
- package_config 2.0.0 [path]
- path 1.8.0
- path_drawing 0.5.0 [vector_math meta path_parsing flutter]
- path_parsing 0.2.0 [vector_math meta]
- path_provider_linux 2.0.0 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 2.0.0 [flutter]
- path_provider_platform_interface 2.0.1 [flutter meta platform plugin_platform_interface]
- path_provider_windows 2.0.0 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.11.0
- permission_handler 6.1.3 [flutter meta permission_handler_platform_interface]
- permission_handler_platform_interface 3.2.0 [flutter meta plugin_platform_interface]
- petitparser 4.1.0 [meta]
- platform 3.0.0
- plugin_platform_interface 2.0.0 [meta]
- pool 1.5.0 [async stack_trace]
- post_detail 0.0.1 [flutter flutter_bloc commons core dartz freezed_annotation readmore]
- process 4.0.0 [file path platform]
- pub_semver 2.0.0 [collection]
- pubspec_parse 1.0.0 [checked_yaml collection json_annotation pub_semver yaml]
- pull_to_refresh 1.6.4 [flutter]
- qr 2.0.0 [meta]
- rxdart 0.26.0
- scrollable_positioned_list 0.1.10 [flutter meta]
- shared_preferences 2.0.5 [meta flutter shared_preferences_platform_interface shared_preferences_linux shared_preferences_macos shared_preferences_web shared_preferences_windows]
- shared_preferences_linux 2.0.0 [flutter file meta path path_provider_linux shared_preferences_platform_interface]
- shared_preferences_macos 2.0.0 [shared_preferences_platform_interface flutter]
- shared_preferences_platform_interface 2.0.0 [flutter]
- shared_preferences_web 2.0.0 [shared_preferences_platform_interface flutter flutter_web_plugins meta]
- shared_preferences_windows 2.0.0 [shared_preferences_platform_interface flutter file meta path path_provider_platform_interface path_provider_windows]
- shelf 1.1.0 [async collection http_parser path stack_trace stream_channel]
- shelf_web_socket 0.2.4+1 [shelf stream_channel web_socket_channel]
- shimmer 1.1.2 [flutter]
- sky_engine 0.0.99
- smartlook 1.0.7 [flutter]
- source_gen 1.0.0 [analyzer async build dart_style glob meta path pedantic source_span]
- source_span 1.8.0 [charcode collection path term_glyph]
- sqflite 2.0.0+3 [flutter sqflite_common path]
- sqflite_common 2.0.0+2 [synchronized path meta]
- sqlite3 1.0.0 [collection ffi meta]
- sqlite3_flutter_libs 0.4.1 [flutter]
- stack_trace 1.10.0 [path]
- stream_channel 2.1.0 [async]
- stream_transform 2.0.0
- string_scanner 1.1.0 [charcode source_span]
- sync_http 0.2.0
- synchronized 3.0.0
- term_glyph 1.2.0
- test_api 0.2.19 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- timing 0.1.1+3 [json_annotation]
- typed_data 1.3.0 [collection]
- url_launcher 6.0.3 [flutter url_launcher_platform_interface url_launcher_linux url_launcher_macos url_launcher_windows url_launcher_web]
- url_launcher_linux 2.0.0 [flutter]
- url_launcher_macos 2.0.0 [flutter]
- url_launcher_platform_interface 2.0.1 [flutter plugin_platform_interface]
- url_launcher_web 2.0.0 [url_launcher_platform_interface meta flutter flutter_web_plugins]
- url_launcher_windows 2.0.0 [flutter]
- uuid 3.0.4 [crypto]
- vector_math 2.1.0
- vm_service 5.5.0 [meta]
- watcher 1.0.0 [async path pedantic]
- web_socket_channel 1.1.0 [async crypto stream_channel]
- webdriver 2.1.2 [archive matcher path stack_trace sync_http]
- win32 2.0.5 [ffi]
- xdg_directories 0.2.0 [meta path process]
- xml 5.1.0 [collection meta petitparser]
- yaml 3.1.0 [collection source_span string_scanner]

@juanagu
Closing this as duplicate of https://github.com/FirebaseExtended/flutterfire/issues/6201.
Please try with latest version and follow-up in the linked issue for updates.
Also, you may want to update your stable version to latest.


Exception in ScalarTypeAdapters

Summary
Fatal Exception: java.lang.AbstractMethodError
abstract method "okio.ByteString i.d.a.g.l.a(boolean, boolean, com.apollographql.apollo.api.ScalarTypeAdapters)"
com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor.httpPostRequestBody

Description
Fatal Exception: java.lang.AbstractMethodError: abstract method "okio.ByteString i.d.a.g.l.a(boolean, boolean, com.apollographql.apollo.api.ScalarTypeAdapters)"
       at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor.httpPostRequestBody(ApolloServerInterceptor.java:213)
       at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor.httpPostCall(ApolloServerInterceptor.java:164)
       at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor.executeHttpCall(ApolloServerInterceptor.java:111)
       at com.apollographql.apollo.internal.interceptor.ApolloServerInterceptor$1.run(ApolloServerInterceptor.java:85)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:919)

Version
2.1.0

Thanks for the bug report. A few questions to try to pinpoint the issue:

Is this a regression? E.g. was the same code working on a previous version of apollo-android?
Does it also happen if you disable proguard/r8?
Are you generating Java or Kotlin models?
Can you share a generated model ? It should contain code like:

  override fun composeRequestBody(
    autoPersistQueries: Boolean,
    withQueryDocument: Boolean,
    scalarTypeAdapters: ScalarTypeAdapters
  ): ByteString = OperationRequestBodyComposer.compose(
    operation = this,
    autoPersistQueries = autoPersistQueries,
    withQueryDocument = withQueryDocument,
    scalarTypeAdapters = scalarTypeAdapters
  )

Closing due to inactivity


fix: serious problem with sonar scanning.

Comprehensive Summary of your change
fix: serious problem with sonar scanning.
Please indicate you've done the following:

[ ] Well Written Title and Summary of the PR
[ ] Label the PR as needed. "release-note/ignore-for-release, release-note/new-feature, release-note/update, release-note/enhancement, release-note/community, release-note/breaking-change, release-note/docs, release-note/infra, release-note/deprecation"
[ ] Accepted the DCO. Commits without the DCO will delay acceptance.
[ ] Made sure tests are passing and test coverage is added if needed.
[ ] Considered the docs impact and opened a new docs issue or PR with docs changes if needed in website repository.

Codecov Report

Merging #8 (ab23ea2) into alauda-release-v2.6.4 (94ed293) will decrease coverage by 23.91%.
The diff coverage is 50.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files

@@                    Coverage Diff                     @@
##           alauda-release-v2.6.4       #8       +/-   ##
==========================================================
- Coverage                  67.16%   43.25%   -23.91%
==========================================================
  Files                        993      234      -759
  Lines                      84347    13188    -71159
  Branches                    2687     2687
==========================================================
- Hits                       56649     5705    -50944
+ Misses                     23796     7162    -16634
+ Partials                    3902      321     -3581

Flag
Coverage Δ

unittests
43.25% <50.00%> (-23.91%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

...t/artifact-list-tab/artifact-list-tab.component.ts
29.91% <0.00%> (ø)

...it-project-quotas/edit-project-quotas.component.ts
57.77% <100.00%> (ø)

... and 762 files with indirect coverage changes


⚠ Bofrost.be has degraded performance

In d4254af, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1525 ms

Resolved: Bofrost.be performance has improved in 09ce911.


Consider changing the bold headers in the quick fix

Testing #194072
The quick fix text is the only bold text on the screen and stands out a lot:

Quickly fixed with comparison:

vs.

Any thoughts on this? Personally, I do like that it's a bit cleaner but wonder if the color of the header title blends in too much to label contents.

@daviddossett?

We do use semibold headers in other areas like this. Would prefer to align to that if possible.

Gotcha. We had convos about aligning the colors as well, I'll double check to make sure these are the same ones


bug(mat-form-field): Form control error is removed after template based form field added

I am utilizing an inline table edit scenario where the form field is added conditionally ( on cell click)
<ng-container *ngIf="!state.edit;else elseEditTest">element.controls.test.value</ng-container>

<ng-template #elseEditTest>
    {{log(element.controls.input_audio_index)}}
    <mat-form-field><input matInput formControlName="test">
    <mat-error>{{element.controls.test?.errors?.server}}</mat-error>
    </mat-form-field>
    {{log(element.controls.test)}}
</ng-template>

Note, state edit is set to true when the control have an error
the log function prints the controller with Object.assign
The issue seen :
1st print have controll.error have error value assigned ( returned from backend )
2nd print have error set to null
"@angular/cdk": "^10.2.7",
"@angular/common": "^10.2.1",
"@angular/compiler": "^10.2.1",
"@angular/core": "^10.2.1",
"@angular/flex-layout": "^11.0.0-beta.33",
"@angular/forms": "^10.2.1",
"@angular/localize": "^10.2.1",
"@angular/material": "^10.1.2",

This issue doesn't have enough information for the team to investigate. Please include a reproduction of the issue (preferably via StackBlitz)

This issue doesn't have enough information for the team to investigate. Please include a reproduction of the issue (preferably via StackBlitz)

Closing since there hasn't been any feedback. The issue can be reopened if we get more information.


Error: Validate the request without actually transferring the domain //for validateOnly = true ; the error is happning

Environment details

OS:
PHP version: 7.4
Package name and version: "google/cloud-domains": "^0.4.0"

Code example
$registration = [
"name"=>$domain["name"],
"domain_name"=>$domain["name"],
"contact_settings" => new ContactSettings([
"privacy" => 2,
"registrant_contact" => $this->contactAddress(),
"admin_contact" => $this->contactAddress(),
"technical_contact" => $this->contactAddress(),
])
];
$yearlyPrice = [
"currency_code" => $domain["currency_code"],
"units" => $domain["units"]
];
    try {
        $registration = new Registration($registration);
        $yearlyPrice = new Money($yearlyPrice);
        $optionalArgs= [
            'validateOnly' => true,
            'authorizationCode' => new AuthorizationCode(['code'=>$code])
        ];
        $operationResponse = $this->domainsClient->transferDomain($this->formattedLocation, $registration, $yearlyPrice, $optionalArgs);
        $operationResponse->pollUntilComplete();
        if ($operationResponse->operationSucceeded()) {
            Domain::create([
                'domain' => $domain["name"],
                'user_id' => Auth::id(),
                'price' =>$domain["units"],
                'expire' => date("Y-m-d", (new GoogleDomainService())->purchasedDomainDetails($domain["name"])['expires']),
            ]);
        } else {
            $error = $operationResponse->getError();
            Log::info($error);
            // handleError($error)
        }
    }catch (\Exception $exception){
        return $exception;
        //Log::error('registrationDomain error');
    } finally {
        $this->domainsClient->close();
    }

error message:
Google\ApiCore\ValidationException {#3347 ▼
#message: """
Could not map bindings for google.longrunning.Operations/GetOperation to any Uri template.
Bindings: Array
(
[name] =>
)
UriTemplates: Array
(
[0] => /v1beta1/{name=projects//locations//operations/*}
)
"""
#code: 0
#file: "/home/codibu/public_html/vendor/google/gax/src/RequestBuilder.php"
#line: 134
trace: {▶}
}

@fullstack71 As I understand the library seems to be using TransferDomain API which isn't available in the API documentation, the name of API is transfer instead of TransferDomain.
It looks like the library would need to be regenerated to fix the old uri (TransferDomain). But since the product is in deprecation mode, its unlikely to be prioritised. I would recommend to use the Rest API for this specific usecase.


Garbage collection in ReceivedRemoteNotification

ReceivedRemoteNotification should include guidance as to whether the developer's code should call GC.Collect. Is it called automatically by the Xamarin.iOS framework? Does it typically need to be called at all?

Xamarin.iOS will handle garbage collection, there's no need for user code to do it.

Thanks. Should the ReceivedRemoteNotification docs be updated so that people don't need to find this Github issue to understand the behavior?

What's different between this method and any other method? Why do you think you might need to call GC.Collect in this method?

Sorry. Copy and paste typo. I meant ReceiveMemoryWarning. I can see how you were wondering why I had submitted the issue. :-)

Ah, that makes much more sense!
The answer is that we call GC.Collect in this case, the developer does not have to.
I've created a PR to add this to the documentation (https://github.com/xamarin/apple-api-docs/pull/171).


Change docker for windows nginx example to not use port 80

File: docker-for-windows/index.md
Using port 80 for the nginx container will cause issues if you aren't running as admin (80 is a protected port on windows, at least with default settings). You can see that this issue has been faced by many others here: https://stackoverflow.com/questions/46533482/error-starting-userland-proxy-bind-for-0-0-0-080-unexpected-error-permission . I suggest this be changed to port 8000, as that's usually unused (and less likely to conflict with 8080 which is fairly common for web devs to use in development).

Closing issue as it refers to old documentation that has since been moved/deprecated.


update(package) change coveralls

Coverage remained the same at 92.677% when pulling 96cb83e0005a703b3b1df92fb4ef01d90ab9b975 on develop into f10488e3909da87b06a9ba856d7312575e808cc6 on master.


[web] CanvasKit goldens seem to be using incorrect transform

CanvasKit goldens submitted to Skia Gold are smaller than those submitted from other platforms. While most are still legible enough to triage, some are way too small, e.g.:

We should fix this for better maintainability.
Some screenshots end up shifting and clipping the content in addition to scaling it down. For example, painting.radial_gradient_90 is submitted as:

but it should have looked like this:

This needs to be fixed before we can land https://github.com/flutter/flutter/pull/115004

This is fixed


SunM80g3 errors Firmware MW3_16U_5406_2.32-D1

Hi,
thanks for your work. Sadly the integration does not longer work for me. Here are the logfiles:
2023-09-15 09:35:09.928 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] Starting to query for [1] ranges...
2023-09-15 09:35:09.928 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] Querying [1 - 125]...
2023-09-15 09:35:09.929 INFO (SyncWorker_3) [custom_components.solarman.solarman] Connecting to solarman data logger <IP_ADDRESS>:8899
2023-09-15 09:35:09.941 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] Socket setup completed... <socket.socket fd=49, family=2, type=1, proto=6, laddr=('<IP_ADDRESS>', 45184), raddr=('<IP_ADDRESS>', 8899)>
2023-09-15 09:35:09.942 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] SENT: a5 17 00 10 45 fe 00 70 0d 27 eb 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 00 01 00 7d d4 2b 7c 15
2023-09-15 09:35:10.044 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] RECD: 41 54 2b 59 5a 43 4d 50 56 45 52 3d 4d 57 33 5f 31 36 55 5f 35 34 30 36 5f 32 2e 33 32 2d 44 31 0d 0a 0d 0a
2023-09-15 09:35:10.044 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] frame_len does not match payload_len.
2023-09-15 09:35:10.044 WARNING (SyncWorker_3) [custom_components.solarman.solarman] Querying [1 - 125] failed with exception [V5FrameError: V5 frame contains invalid start or end values]
2023-09-15 09:35:10.060 INFO (SyncWorker_3) [custom_components.solarman.solarman] Disconnecting from solarman data logger <IP_ADDRESS>:8899
2023-09-15 09:35:10.467 WARNING (SyncWorker_3) [custom_components.solarman.solarman] Querying [1 - 125] failed, [1] retry attempts left
2023-09-15 09:35:10.467 INFO (SyncWorker_3) [custom_components.solarman.solarman] Connecting to solarman data logger <IP_ADDRESS>:8899
2023-09-15 09:35:10.475 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] Socket setup completed... <socket.socket fd=49, family=2, type=1, proto=6, laddr=('<IP_ADDRESS>', 45196), raddr=('<IP_ADDRESS>', 8899)>
2023-09-15 09:35:10.475 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] SENT: a5 17 00 10 45 d1 00 70 0d 27 eb 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 03 00 01 00 7d d4 2b 4f 15
2023-09-15 09:35:10.581 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] RECD: 41 54 2b 59 5a 43 4d 50 56 45 52 3d 4d 57 33 5f 31 36 55 5f 35 34 30 36 5f 32 2e 33 32 2d 44 31 0d 0a 0d 0a
2023-09-15 09:35:10.581 DEBUG (SyncWorker_3) [custom_components.solarman.solarman] frame_len does not match payload_len.
2023-09-15 09:35:10.581 WARNING (SyncWorker_3) [custom_components.solarman.solarman] Querying [1 - 125] failed with exception [V5FrameError: V5 frame contains invalid start or end values]
2023-09-15 09:35:10.584 INFO (SyncWorker_3) [custom_components.solarman.solarman] Disconnecting from solarman data logger <IP_ADDRESS>:8899
2023-09-15 09:35:11.081 WARNING (SyncWorker_3) [custom_components.solarman.solarman] Querying [1 - 125] failed, [0] retry attempts left
2023-09-15 09:35:11.083 WARNING (SyncWorker_3) [custom_components.solarman.solarman] Querying registers [1 - 125] failed, aborting.
2023-09-15 09:35:11.084 DEBUG (SyncWorker_3) [custom_components.solarman.sensor] No value recorded for PV1 Voltage
2023-09-15 09:35:11.088 DEBUG (SyncWorker_4) [custom_components.solarman.sensor] No value recorded for PV2 Voltage
2023-09-15 09:35:11.089 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for PV1 Current
2023-09-15 09:35:11.091 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for PV2 Current
2023-09-15 09:35:11.098 DEBUG (SyncWorker_3) [custom_components.solarman.sensor] No value recorded for Daily Production
2023-09-15 09:35:11.099 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for Daily Production 1
2023-09-15 09:35:11.102 DEBUG (SyncWorker_4) [custom_components.solarman.sensor] No value recorded for Daily Production 2
2023-09-15 09:35:11.105 DEBUG (SyncWorker_7) [custom_components.solarman.sensor] No value recorded for Total Production
2023-09-15 09:35:11.106 DEBUG (SyncWorker_1) [custom_components.solarman.sensor] No value recorded for Total Production 1
2023-09-15 09:35:11.112 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for Total Production 2
2023-09-15 09:35:11.114 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for Active Power Regulations
2023-09-15 09:35:11.115 DEBUG (SyncWorker_7) [custom_components.solarman.sensor] No value recorded for AC Voltage
2023-09-15 09:35:11.120 DEBUG (SyncWorker_1) [custom_components.solarman.sensor] No value recorded for Grid Current
2023-09-15 09:35:11.121 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for AC Output Frequency
2023-09-15 09:35:11.123 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for Grid Voltage Upp Limit
2023-09-15 09:35:11.124 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for Grid Voltage Lower Limit
2023-09-15 09:35:11.124 DEBUG (SyncWorker_3) [custom_components.solarman.sensor] No value recorded for Grid Frequency Upper Limit
2023-09-15 09:35:11.133 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for Grid Frequency Lower Limit
2023-09-15 09:35:11.134 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for Overfrequency And Load Reduction Starting Point
2023-09-15 09:35:11.134 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for Overfrequency And Load Reduction Percentage
2023-09-15 09:35:11.136 DEBUG (SyncWorker_1) [custom_components.solarman.sensor] No value recorded for ON-OFF Enable
2023-09-15 09:35:11.136 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for Island Protection Enable
2023-09-15 09:35:11.137 DEBUG (SyncWorker_7) [custom_components.solarman.sensor] No value recorded for Overfrequency&Load-shedding Enable
2023-09-15 09:35:11.137 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for Running Status
2023-09-15 09:35:11.138 DEBUG (SyncWorker_1) [custom_components.solarman.sensor] No value recorded for Total AC Output Power (Active)
2023-09-15 09:35:11.142 DEBUG (SyncWorker_4) [custom_components.solarman.sensor] No value recorded for Radiator Temperature
2023-09-15 09:35:11.143 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for Inverter ID
2023-09-15 09:35:11.143 DEBUG (SyncWorker_7) [custom_components.solarman.sensor] No value recorded for Hardware Version
2023-09-15 09:35:11.144 DEBUG (SyncWorker_3) [custom_components.solarman.sensor] No value recorded for DC Master Firmware Version
2023-09-15 09:35:11.144 DEBUG (SyncWorker_4) [custom_components.solarman.sensor] No value recorded for AC Version. Number
2023-09-15 09:35:11.144 DEBUG (SyncWorker_0) [custom_components.solarman.sensor] No value recorded for Rated Power
2023-09-15 09:35:11.145 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for Communication Protocol Version
2023-09-15 09:35:11.145 DEBUG (SyncWorker_3) [custom_components.solarman.sensor] No value recorded for Start-up Self-checking Time
2023-09-15 09:35:11.146 DEBUG (SyncWorker_2) [custom_components.solarman.sensor] No value recorded for Update Time
2023-09-15 09:35:11.146 DEBUG (SyncWorker_7) [custom_components.solarman.sensor] No value recorded for Soft Start Enable
2023-09-15 09:35:11.147 DEBUG (SyncWorker_5) [custom_components.solarman.sensor] No value recorded for Power Factor Regulation
2023-09-15 09:35:11.148 DEBUG (SyncWorker_1) [custom_components.solarman.sensor] No value recorded for Restore Factory Settings

Same for me, with Firmware 1.57 and without relay it was working fine. After connecting the relay, the inverter has auto updated to version 2.32 and home assistant plugin not working anymore.

Hi all, at me the same problem. Version 2.32 and no Information in HA!
Please Help
Udo

I guess the relay device is using the modbus, so the port 8899 is already being used?

Seems so. If you switch off AC and restart HA, after few minutes the data appears in HA.

Same problem here. Restarted the inverter, restartet HA, but no data appeared.

Same issue here. Downgrade to firmware version 1.57 made the data available again.

1.4.3 still works, no need to downgrade logger firmware

Solarman 1.5.1 and FW MW3_16U_5406_2.32-D1 doesn't work. Or maybe the issue comes from the relay that blocks the communication???

1.4.3 still works, no need to downgrade logger firmware

Thanks for the info, struggeling how to downgrade the solarman to 1.4.3. Is there a instruction available? Redownload old version via GUI does not work.

@DieSeef What's the issue with downgrading via the GUI?
I can confirm, that 1.4.3 is working with the deye_2mppt.yaml from 1.5.1, firmware 2.32-D1 and the relay box attached.

@DieSeef What's the issue with downgrading via the GUI?
I can confirm, that 1.4.3 is working with the deye_2mppt.yaml from 1.5.1, firmware 2.32-D1 and the relay box attached.

Hi saz, within HA and HACS on the solarman integration, there is the option to redownload the integration. In the version dropdown i can pick 1.4.3 and redownload it. Something happens but it jumps back to the solarman integration page, that#s it. Of course tried to reload HA afterwards but the integration still shows version 1.5.1.

@DieSeef After redownloading, there should be a notification in HA. You need to restart (not reload) HA completely.

You can delete Solarman Integration, redownload 1.4.3 and copy deye_2mppt.yaml from 1.5.1 and add in in const.py.
All entities should still work

You can delete Solarman Integration, redownload 1.4.3 and copy deye_2mppt.yaml from 1.5.1 and add in in const.py. All entities should still work

Ok, deleted the integration and reinstalled it with version 1.4.3. Seems like the integration still shows the latest version 1.5.1
.
As i have already downgraded the firmware of both inverters, i will leave the setup as it is for now as it is working.
Anyway, thank you for your help!

You can delete Solarman Integration, redownload 1.4.3 and copy deye_2mppt.yaml from 1.5.1 and add in in const.py. All entities should still work

Ok, deleted the integration and reinstalled it with version 1.4.3. Seems like the integration still shows the latest version 1.5.1 .
As i have already downgraded the firmware of both inverters, i will leave the setup as it is for now as it is working. Anyway, thank you for your help!

Hi, thank you, youre workaround works.
Only the DEY2PPT is missing, o used the 4ppt and delete 3+4

You can delete Solarman Integration, redownload 1.4.3 and copy deye_2mppt.yaml from 1.5.1 and add in in const.py. All entities should still work

Ok, deleted the integration and reinstalled it with version 1.4.3. Seems like the integration still shows the latest version 1.5.1 .
As i have already downgraded the firmware of both inverters, i will leave the setup as it is for now as it is working. Anyway, thank you for your help!

Hi, thank you, you're workaround works fine. Only the DEY2PPT is missing, I used the 4ppt and delete 3+4

The downgrade to 1.4.3 also worked for me. Thx a lot!

I think I found the cause to this error. For Details see https://github.com/StephanJoubert/home_assistant_solarman/discussions/271#discussioncomment-7158802

Got the same issue: Two Inverters at home, one "old" withoud relay and FW 1.57 works without issues. The new one got the Relay and the Firmware MW3_16U_5406_2.32-D1. Got it working for at least one day, now weeks without any data. Set up multiple servers but no change. If anyone of you doesn't know about deye inverters: you could set up additional parameters via the website http://xxx.xxx.xx.x/config_hide.html.

Hello everyone. Have a deye m80 with relaybox (firmware MW1_16U_5406_2.32-D1). I deleted the Solarman integration and then loaded version 1.4.3. Can you explain to me again exactly how I copy the deye_2mppt_yaml from the 1.5.1 version to the 1.4.3 version?
After loading the Solarman 1.4.3, I did the following: custom_components > const.py > typed the deye_2mppt.yaml (not pasted or copied). After restarting the home Assistant, I was also able to select the 2mppt when configuring. Unfortunately, no device is detected.
Can you help me ???
Many thanks to you.

Got my relais last weekend. Since them no data in home assistant. Trying downgrading via hacs when the sun is up.

i played a bit with the yaml files, after i saw that the deye_hybrid.yaml fetches some (incorrect) data
i made a copy of my deye_2mppt.yaml and changed
requests:
  - start: 0x0001
    end:  0x007D
    mb_functioncode: 0x03

to
requests:
  - start: 0x0003
    end: 0x0070
    mb_functioncode: 0x03
  - start: 0x0096
    end: 0x00f8
    mb_functioncode: 0x03

i see "Querying registers [150 - 248] failed, aborting" in the log files, but now it seems to work:


Use rustversion, remove const_fn!, deprecate const_fn feature

The first two commit cleanup some out-of-date documentation
The third commit uses the rustversion create to make the methods from #352 const if the user is on a new enough compiler version.
The fourth commit deprecates the const_fn feature, and uses rustversion to just enable the GlobalDescriptorTable const methods if the user is on the nightly compiler.

Actually I just realized we don't need to deprecate the const_fn feature to get rid of the const_fn! macro. We can just do:
#[cfg_attr(feature = "const_fn", rustversion::attr(all(), const))]


Events Homepage Section

This task is dependent on getting the Events Data coming in from the Events PlugIn after we can re-implement the code

Upcoming Events

@StefanVinica Can you comment on the status of this? Should it be closed at this time?

One of the reasons we went with the current plug-in was to have a map of all meetup groups. I want to make sure we keep that in mind during the redesign.

We are keeping this in mind and we have been able to extract the events data from the plugin, its a bit not consistent but i will work on it to get it to the homepage

Moving this offline.


Spinner: fix period logic

Description
Fix logic for the periodic spinner so that if a call to spinOnce takes longer than the period it doesn't mess with the following  ticks.
The change is that we do not long keep track of spin count, but we compute it live based on the elapsed time and the period

Nice


[WIP] Throwing Overloads

Here is the implementation of throwing overloads as discussed in #9.
What happens for chain(nonThrowing, nonThrowing)?
It works as previously.
What happens for try chain(throwing, nonThrowing)?
It works as nonThrowing will be treated as throwing.
What happens for try chain(nonThrowing, nonThrowing)?
Use case: when refactoring your functions to not throw anymore.
Warning: no calls to throwing functions occur within 'try' expression

    XCTAssertEqual(.some(9), try chain(incr, square)(2))
                             ^
    at Tests/OvertureTests/ChainTests.swift:12

What's missing:

[x] Restore test coverage

For each existing test case, I added new one for the throwing variants.
An inout-concat test seemed to be broken on Swift 4.0.x and there was a typo within make test-all.
Except for the following questions, the PR should be done.

Aren't there any tests for Sequence/Optional map? Shall I add those?
When testing the (inout A) throws -> Void concat I noticed the follwing behavior. Shall I add the testcase for this? Currently this is the same behavior as when using (A) throws -> Void, manually capturing and changing x.var x = 1
XCTAssertThrowsError(try concat(incr, throwing(square))(&x))
XCTAssertEqual(2, x) // this would pass; this assertion is not included yet

Aren't there any tests for Sequence/Optional map? Shall I add those?

Ha! Those function just call to their wrapping functions, so we didn't bother. Not sure we need em. @mbrandonw?

When testing the (inout A) throws -> Void concat I noticed the follwing behavior. Shall I add the testcase for this? Currently this is the same behavior as when using (A) throws -> Void, manually capturing and changing x.

Sounds good!

What do you think about adding a Gemfile for xcpretty? Preferably in a differen PR?

Let's save it for another PR.

I added the missing XCTAssertEqual for throwing inout concat.
From my perspective this PR is now ready for review.

This all looks great! Thanks for putting the time into this!


Attachements now automatically get base64 encoded if they are not already

Fixes
Fixes #611
Checklist

[x] I have made a material change to the repo (functionality, testing, spelling, grammar)
[x] I have read the [Contribution Guide] and my PR follows them.
[x] I updated my branch with the master branch.
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation about the functionality in the appropriate .md file
[x] I have added in line documentation to the code I modified

Short description of what this PR does:

When an attachement is added it first checks whether or not it has already been base64 encoded, if not it encodes its.

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

Nicely done @martijnmelchers!
We just need to add some tests to get this one merged. Do you have time to do that?

Sure will do that today!

@thinkingserious In what file should the tests be created?

How about Attachments.php in [/test/unit/](https://github.com/sendgrid/sendgrid-php/tree/master/test/unit)
BTW, have you been able to get the tests running locally using Docker?

I'm not able to get the Docker thing running, so I might not be able to run tests. How should I proceed?

I will help you with that. Please email me at<EMAIL_ADDRESS>and let me know where you are stuck. Thanks!

There seems to be a difference in PHP 7.1 and up with base64_decode any solutions you can think of @thinkingserious

Awesome! Is this ready to go?

Yes it can be merged!
Op wo 23 mei 2018 18:17 schreef Elmer Thomas<EMAIL_ADDRESS>
Awesome! Is this ready to go?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/sendgrid/sendgrid-php/pull/618#issuecomment-391407698,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFx35vg9VSteGKlxkpxNwHzrX8Irb-pSks5t1YuIgaJpZM4UGQF6
.

Hello @martijnmelchers,Thanks again for the PR! We appreciate your contribution and look forward to                                              continued collaboration. Thanks!                                             Team SendGrid DX


USBPD_Sink_CAPSENSE reboot every 4 seconds

I have a CY7113 Rev 6 board and it works out-of-the-box holding 28 Volts from a Apple 140W USB-C charger and an EPR cable between them. However when I build and install USBPD_Sink_CAPSENSE as production then it gets a 28 Volt connection, holds it for four seconds and then reboots, cycling like that until I drop the power. Why?

Hi!
Do you have any USB PD analyzer so that you can get some trace of this issue and share it with us. Also, does this happen only with 140W adapter? Can you please check with any other USB PD capable charger and let me know if you still see this.
You can also use https://github.com/Infineon/mtb-example-pmg1-usbpd-sink and test if it works.
Regards
Pranava


[API] Make C-API thread safe

Added thread locking safety for ml_train C-API
There is a global lock to assist with destruction of object
Each object gets its own lock which maintains safety when accessing/modifying that object
Resolves #287
Signed-off-by: Parichay Kapoor<EMAIL_ADDRESS>

:memo: TAOS-CI Version: 1.4.20191203. Thank you for submitting PR #354. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://nnsuite.mooo.com/.

:octocat: cibot: @kparichay, One of the module of prebuild group is failed. If you want to get a hint to fix this issue, please go to https://github.com/nnstreamer/nntrainer/wiki/.

:octocat: cibot: @kparichay, One of the module of prebuild group is failed. If you want to get a hint to fix this issue, please go to https://github.com/nnstreamer/nntrainer/wiki/.


[1.5.0 Alpha] add timestamp and log level to logs

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @zach in #android-development.

Timestamp is done, we just need log level (eg debug, warn, info)


Add support for casting UFixed to SFixed and vice versa

This fixes #20. If someone attempts to cast a negative SFixed to UFixed this will give the maximum integer for a specific UFixed minus the SFixed value. For example -1 will result to 255 and -1.5 will result to 254.5 etc.
If I am not mistaken, the behavior is therefore similar to that of integers.

I am closing this because I have independently created a different solution to #20, which I happen to prefer because it is significantly simpler. Interestingly, it would seem that the implementation I arrived at is more or less functionally equivalent to the solution you created. Had I noticed this sooner, I could have potentially saved myself some testing in regards to the behaviour (i.e. with -1 becoming 255 and -1.5 becoming 254.5 et cetera).
Once again, I appreciate your attempts to contribute to the project (which I hopefully will be able to spend a bit more time on this year).


[SMALLFIX] Fix issue with multimaster cluster.

Follow up to #1511 making the change in LocalTachyonClusterMultiMaster which was reused recently.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/Tachyon-Pull-Request-Builder/4979/
Test PASSed.

+1 LGTM


Remove footer page type

To ensure no footers are in use, we added code that makes it impossible to add new footers (#1070).
Once this is deployed on all sites, we can check that no footer pages have been added (and remove them if necessary) and then remove the footer type from the codebase.

Should this also change the "Footer Index Page" type?

No, that is unaffected. We only want to remove the footer page type as it is identical to articles. The footer index page can contain different page types, which serve as footers.

Yes I understand, but wondering if it is confusing to have a "Footer Index Page" type when there is no longer a Footer Page type.
I get now that "Footer Index Page" is necessary. Is there a better name we can use? I don't have an answer, let's keep it as-is for now.

As discussed "X Index Page" doesn't seem to be a spec in Wagtail. We use it much more than the base software, original Wagtail may only have "Section Index Page". Let's leave Footer Index Page and Miscellaneous Index Page.


Proposal: Flag to persist dynamically allocated ports across restarts

This PR adds the PersistPorts flag to HostConfig which allows Docker server to save dynamically allocated published ports inside HostConfig after the allocation takes place.
This way, if the container is restarted or goes through a stop/start, Docker will bind the same host port.
This is quite useful for services that start docker containers with dynamically allocated ports as they will only need to verify which port was allocated once, when the container started for the first time.
Currently this kind of service would either have to manually manage host ports (replicating some work that Docker already does) or have some kind of mechanism that is notified every time the container is restarted so that port mappings can be updated.
We take the latter approach in tsuru PaaS, and this PR hopes to eliminate our need to do that, as relying on an external agent to be notified and update port mappings creates yet another point of failure.
This flag is exposed to the CLI as the --persist-ports parameter available to create and run.

Okay, I've found a bug in my proposed implementation, when the daemon is restarted, docker may try to use persisted ports in other containers, preventing container with persisted port to start correctly. This is also an issue if one calls run with -p [49153-65535]:[something].
This problem could be addressed by allocating ports for containers with explicit host ports in HostConfig first when starting the daemon. I'll try to add this to this PR.

I updated the PR including a test case and a fix to the issue I described in my previous comment. The solution involves initializing the network of containers with explicit host ports before containers with dynamically allocated ports when starting the daemon.
Any idea if there's a possibility of this proposal being accepted?

Docs LGTM - @fredlf @jamtur01
just one thing, I think it would be good to mention that container restart means only docker restart, or the container/(id)/restart API call .
I'm also not sure if that includes rebooting the computer, or restarting the Docker daemon.

Docs LGTM

Seems like instead of a flag we should just keep the port for the life of the container no matter what.

@cpuguy83 If that's the way to go I can change this pull request (or create another one) removing the flag and making this the default behavior. Just let me know.

I'll defer to the core maintainers on this, and @aluzzardi who was working on the "stable networking" stuff, which I think this would fall under.
cc @jfrazelle @crosbymichael @icecrime

First of all, thank you for the contribution: it's a sensible feature being implemented in a sensible way!
Now, without an extensive review: if I understand correctly, what the implementation does is take the -p X specification, elect the host port Y to map to, and persist that just as if I originally launched the container with -p Y:X, is that right?
That makes we wonder on two things (which may very well end up being dismissed as irrelevant):

Is this gonna make us "lie" in the inspect output by pretending ports were bounds when they were really just exposed? I know some tools (swarm, maybe compose) are relying on this output.
Is that to say that if I run my container with --persist-ports and that the elected port is no longer available upon restart, the container fails to start (like it would with an actual -p X:Y)? That would make sense I guess, but definitely go against making host port persistency the default.

You're right, after the container starts it's as if it was started with -p Y:X Being Y the port chosen by the dynamic allocator the first time the container started.
The inspect output is slightly different. NetworkSettings is the same. HostConfig though shows as:
With -p 9999:80:
"HostConfig": {
    "PersistPorts": false,
    "PortBindings": {
        "80/tcp": [
            {
                "HostIp": "",
                "HostPort": "9999"
            }
        ]
    }
}

With --persist-ports -p 80:
"HostConfig": {
    "PersistPorts": true,
    "PortBindings": {
        "80/tcp": [
            {
                "HostIp": "<IP_ADDRESS>",
                "HostPort": "49161"
            }
        ]
    }
}

But I don't see that exactly as a lie. It's true that the host port is now part of the configuration as it will remain the same.
Having HostIp set wasn't intentional. It was a side effect of setting the whole PortBindings entry, I can change the code to remove it before saving, but I don't think having it set is a problem.
About your last question, yes, the container would fail to start the same way it would if it was started with -p Y:X. And I agree that this would be unexpected if this was the default behavior. I think the proposed flag is be the safest way to introduce this change and maybe consider changing the default in the future.
That said, some of the changes in this pull request regards preventing docker itself from using a port that was persisted, specially when the daemon starts and multiple containers have to be restarted. This prevents "port already allocated" errors from showing up unless some external process is using it.

Indeed, Swarm should be aware of this change since it uses that information to know which ports are available in the cluster.
Also, stable networking was dropped back then since it introduced a UX regression.
I think that if we do this, we should also persist the IPs since it would be weird to keep the same ports but change the IP.

@aluzzardi Is this the code in swarm in question: https://github.com/docker/swarm/blob/master/scheduler/filter/port.go#L34?
If so, I don't think introducing this flag will break anything.
Containers started with --persist-ports will have their HostConfig.PortBindings correctly with HostIp and HostPort set by docker the first time they were started. This way if the same host port is explicitly exposed by another container trying to be scheduled, portAlreadyInUse will correctly return true and another node will be chosen.
However, just from reading the code (I haven't tried it), I can see that there's a possible bug that may already happen today.
Suppose I have a swarm with two nodes A and B both without any containers yet. Then I run the following commands pointing to the swarm:
$ docker run -d -p :80 busybox top (container 1)
Container 1 will end up in either A or B, and as it's using dynamic port allocation it will have allocated port 49153.
Now I run:
$ docker run -d -p 49153:80 busybox top (container 2)
Container 2 also may end up in either A or B, as portAlreadyInUse will return false for both nodes A and B.
If the chosen node happens to be the same used to start the container 1, container 2 will fail to start. This will happen because Docker will only show dynamically allocated host ports in NetworkSettings.Ports and not in HostConfig.PortBindings, the latter being the only one verified by portAlreadyInUse.
As I said, this is unrelated to this pull request. Actually, using --persist-ports would prevent this bug from happening.

@cezarsa Thank you very much for looking into it!
Would you mind opening an issue on Swarm regarding the bug you found?

Docs LGTM. You can take or leave my suggestion.

Has merge conflicts.

I wonder whether this should be the default or not, that way no need for another flag. /cc @crosbymichael @aluzzardi

I'll reiterate what I suggest:
I think we should not add a new flag, and simply allocate ports on create, and free ports on removal by default. That way ports will be persistent. The only bad thing is that if you have a huge ton of stopped containers, then you have less available ports, but it should be fine in practice.

@tiborvass I agree with you on that (attaching ports lifecycle to create/remove). It might break some existing feature and/or design principle, though.
Featuring ports persistence would allow me to get rid of same logic in docker-fw; creation should indeed fail if those persisted ports are not available.

@tiborvass It seems a little odd to reserve a port that is not actually in use by a running container to be considered "allocated". Per @icecrime's point, it seems problematic that every container launched on a daemon with --persist-ports effectively becomes a container started with -p X:Y.
The main problem here is that allocating something with an "ephemeral port" says two things:

Use any port, I don't care.
Only error when binding the port if there are no available ports.

Locking down this seems to make these no longer ephemeral port allocations, since it breaks both of the above invariants.
I do understand the benefit here (of eliminating SPOF for bind notification), but couldn't that be done by managing the port allocation externally and then issue container creation commands with -p X:Y?

@stevvooe Interesting point you're making there :) Made me analyze a little more why I was thinking keeping the port on stop made sense.
You're saying that the ports are supposed to be ephemeral. I agree. They would still be, at each container creation. Which means the creator of the container can never know what port it will get, and that's good.
The container's fs is ephemeral as well, but it's gone only on removal, not on stop. The argument for keeping the port in memory for stopped containers, is that a stopped container is still the same container, and likely to be restarted.
I guess the main question is: should ports "live" and "die" on their own as they are used (like, on another scale, containers), or are ports part of the state of a container?
Beyond the philosophical debate, what's the use-case for not having the same port after a restart? Or, what would be the usecase that we would kill, by persisting the ports?

@tiborvass Your analysis of my response is accurate.

Or, what would be the usecase that we would kill, by persisting the ports?

This is a key question. IMHO, we kill the use case of ephemeral ports.
The main issue here is the behavior upon restart of a container. Does docker take measures to ensure that the ephemeral port is always ready for use? Or, does it re-allocate a new port on a collision, guaranteeing the ports are actually ephemeral? If we choose the latter, it makes keeping the port mapping around an optimization to avoid sending port updates to consuming services.
Two things follow from this:

The port mapping should not be stored in the same way as configs from -p X:Y.
Whatever does manage the port mapping should be able to mark that mapping as ephemeral and reassign it, if needed.

I am not sure if this proposal follows these two items, but they should be considered.

Collective review with @LK4D4 @calavera @jfrazelle @crosbymichael @tiborvass
The debate around this PR is that you'll always be left having to manage something yourself:

Either port allocation (when you don't use --persist-ports)
Either the fallback strategy at start if the port is already allocated (when you use --persist-ports)

If we proceed with this, stopped containers will eventually fill the automatic port allocation pool and make it impossible to run any new containers. We can't really force people to garbage collect their containers (although it's good practice), so this comes with new risks too.
Sorry, but we're gonna close this. Thanks again for the contribution though!

Docker already handles automatic port allocation, so why should an external system have to do the same thing unnecessarily.
I think there could be a middle ground if the user provides a port range from which an automatic selection can be made to persist (and a recommendation that it be outside of the default ephemeral range).
e.g.
# docker run -p 8000-10000:80 <image>
or
# docker run -P --portrange 8000-10000 <image>
If this custom range is provided, the container would be started as if with -p X:Y and would persist on restarts...
Thoughts?


Provide a changelog

Right now the version situation is extremely confusing:

@latest version is 2.0.0-beta.7
there's a 2.1.0-next.2
there's a 2.0.2 non-beta release

My code breaks when I install 2.0.2 instead of the 2.0.0 beta, so it looks like there are breaking changes. But without a changelog that's all I can see - and I don't think a user of a library should have to dig through commit logs to figure out what changed between versions..

Due to a massive overhaul and rewrite of React Charts to TypeScript and a massively upgraded public API, this issue is being bulk closed for triage. The latest version can be tested via the react-charts@beta tag. Documentation is in the process of being upgraded, but thankfully, everything is fully typed now, so you can explore the API that way for now.
If, after testing or playing with the v3 beta, you believe your issue is still not addressed or relevant, feel free to open a new issue.


Camera lock

Was zooming in close with action camera while inside a tent, resulted in the camera being locked looking in a specific direction without turning, changing between normal and action camera didn't help. Probably the reason was some combination of the zoom and the confined space.

I have had a similar problem. Zooming in too far results in camera lock. BeplnEx LogOutput.log reads:
[Error  :Il2CppInterop] During invoking native->managed trampoline
Exception: System.ArgumentNullException: Value cannot be null. (Parameter 'key')
at System.Collections.Generic.Dictionary2.FindValue(TKey key)    at System.Collections.Generic.Dictionary2.ContainsKey(TKey key)
at ModernCamera.Behaviours.FirstPersonCameraBehaviour.UpdateCameraInputs(TopdownCameraState& state, TopdownCamera& data)
at ModernCamera.Hooks.TopdownCameraSystem_Hook.UpdateCameraInputsHook(IntPtr _this, TopdownCameraState& cameraState, TopdownCamera& cameraData)
at Il2CppInterop.Runtime.IL2CPP.il2cpp_runtime_invoke(IntPtr method, IntPtr obj, Void** param, IntPtr& exc)
at DMDProjectM.TopdownCameraSystem::OnUpdate(TopdownCameraSystem this)
at (il2cpp -> managed) OnUpdate(IntPtr , Il2CppMethodInfo* )
It looks like ModernCameraState.ShapeshiftName has a null value in some instances.

Possible fix in 1.5.4

Thanks for the swift turnaround. However, this did not fix the issue for me. The last I looked at anything C-like was about a decade ago, so I'm no expert, but I have a hypothesis. I think that ModernCameraState.ShapeshiftName is declared but not initialized upon startup for some reason. This may be the root cause of issue #10 as well.
If I start up the game and login to my dedicated server and zoom in, I get the error.
If I start up the game and login to a single player world and zoom in, I do not get the error.
If I start up the game and login to my dedicated server, hit the escape key and hit the leave game button, then log back into my dedicated server and zoom in, I do not get the error.
When I leave my dedicated server, this calls ModernCameraState.reset(), which initializes ModernCameraState.ShapeshiftName to "".
I'm just spitballing here, but it might have an origin in ModernCamera.cs at line 84 with WorldUtils.ClientWorldExists. If this is specific to a client hosted world, then perhaps UpdateSystems() never gets called?

How are you reproducing this issue? Because I've never been able to get it to happen.

Ok, after testing a bunch, I think I know how you can reproduce the issue.
Try to login to your dedicated server through direct connect instead of selecting the server from a list.

I believe the issue was caused by not having the current object for game systems due to the world being destroyed and recreated after leaving a game and joining a new one. ModernCamera was still holding onto the old objects and therefore not getting the newly created systems.
Mind testing the pre-release https://github.com/v-rising/ModernCamera/releases/download/ModernCamera-v1.5.5-pre/ModernCamera.zip?

I believe the issue was caused by not having the current object for game systems due to the world being destroyed and recreated after leaving a game and joining a new one. ModernCamera was still holding onto the old objects and therefore not getting the newly created systems.
Mind testing the pre-release https://github.com/v-rising/ModernCamera/releases/download/ModernCamera-v1.5.5-pre/ModernCamera.zip ?

Good news! Upon installation of 1.5.5, I was unable to reproduce the issue!
However, I wanted to do additional testing and reverted to 1.5.4 to try to reproduce the issue again (I wanted to make sure I wasn't confounding with all the server setting changes I did trying to figure out workarounds that could help you reproduce the issue). I could not reproduce the issue after reverting to 1.5.4. I'm not sure what this means, or if it means anything to you.
Well done though. You work fast and well.

Hopefull it's fixed for good. Going to close this a release 1.5.5.