Firebase Admob ad_not_loaded even though ad was loaded.

Firebase Admob ad_not_loaded even though ad was loaded.
isolation: Android and iOS
ERROR:
Error on Android
I/Ads     ( 5084): Ad is not visible. Not refreshing ad.
I/Ads     ( 5084): Scheduling ad refresh 60000 milliseconds from now.

Error on iOS
Exception has occurred.
PlatformException(ad_not_loaded, show failed for rewarded video, no ad was loaded, null)

DEBUG CONSOLE:
( 7041): Ad is not visible. Not refreshing ad.
CODE:
import 'package:flutter/material.dart';
import 'package:firebase_admob/firebase_admob.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatefulWidget {
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyAppState> {

@override
  void initState() {
    super.initState();
    print("Coins: $_coins");
    FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId);
    RewardedVideoAd.instance.load(
          adUnitId: RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);
    RewardedVideoAd.instance.listener =
        (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
      print("RewardedVideoAd event $event");
      if (event == RewardedVideoAdEvent.rewarded) {
        setState(() {
          _coins += rewardAmount - 6;
        });
        print("Coins: $_coins");
      }
    };
  }

  playAd() {
    if (_coins == 0) {
      RewardedVideoAd.instance.show();
      print("Coins $_coins");
    } else {
      setState(() {
        _coins += -1;
        RewardedVideoAd.instance.load(
          adUnitId: RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);
      });
      print("Coins $_coins");
    }
  }

@override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text("My App"),
        ),
        body:
        Center(
          child: FlatButton(
            child: Text("Play ad"),
            onPressed: () => playAd(),
          )
        ),
    );
  }

}

REPRODUCE:
Setup admob environment as instructed at Dart packages: firebase_admob
FIX:
playAd() {
    if (_coins == 0) {
      setState(() {
        RewardedVideoAd.instance.load(
          adUnitId: RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);
      });
      RewardedVideoAd.instance.show();
      print("Coins $_coins");
    } else {
      setState(() {
        _coins += -1;
        RewardedVideoAd.instance.load(
          adUnitId: RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);
      });
      print("Coins $_coins");
    }
  }

SUGGESTION:
Add .load() to end of the streams, especially for RewardedVideoAd
Originally posted by @JosephDunivan in https://github.com/flutter/flutter/issue_comments#issuecomment-444805824

Is it possible the admob example ad is set up for 1 ad every 60000 milliseconds in the settings?
Received error on Android
I/Ads     ( 5084): Ad is not visible. Not refreshing ad.
I/Ads     ( 5084): Scheduling ad refresh 60000 milliseconds from now.

I've been investigating this over and over again.
RewardedVideoAd.instance.load(
          adUnitId: RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo);

This function behaves like a future async await, but RewardedVideoAd.instance.show(); does not wait for return value before execution. Results in execution error and in some cases infinite loops for state.

Use listener
RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
      if (event == RewardedVideoAdEvent.rewarded) {
        .....
      }

      if (event == RewardedVideoAdEvent.loaded) {
        setState(() {
          _videoLoaded = true;
        });
      }
    };

.... Could you explain what setting the variable  _videoLoaded to true does? An actual call to admob needs to happen. The issue is RewardedVideoAd.instance.show(); will allow itself to be called before an actually ad has loaded. Any method of loading the video does not stop this. The plugin needs to its listener to include the load response before proceeding to the show event. That's a job for the flutter plugin team and I would consider it a bug. It should be impossible to call .show before an ad is loaded. They shouldn't even be separate events (there would be no reason so show an ad that hasn't loaded).

Using kleinpetr answer this works for me.
}else if(event == RewardedVideoAdEvent.loaded){
RewardedVideoAd.instance.show();
}

The issue is the function will attempt to execute show before the load function actually returns its promise.  I’ll explain in more detail when I have time. Whether you use set state or a listen has no different affect.
Sent from my iPhone

On May 11, 2019, at 4:17 PM, febg11<EMAIL_ADDRESS>wrote:
Using kleinpetr answer this works for me.
}else if(event == RewardedVideoAdEvent.loaded){
RewardedVideoAd.instance.show();
}
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

I never said the future not waiting was not a problem, but the using the RewardedVideoAd.instance.listener is a temporary solution that does work for me. The plugin is still in beta.

@JosephDunivan
This issue has been moved to https://github.com/FirebaseExtended/flutterfire/issues/554. Any further collaboration will be done there.

Since firebase_admob issues require work on the Flutter side as well as the plugin side these issues will remain open here as well until resolved.

Hi @JosephDunivan
are you still experiencing this issue with the latest version of Flutter?
If so can you please provide your flutter doctor -v?
Also, to better address the issue, would be helpful
if you could post a self contained app on github
or the steps to reproduce it.
Thank you

Without additional information, we are unfortunately not sure how to resolve this issue. We are therefore reluctantly going to close this bug for now. Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact descriptions what happens, logs and the output of ' flutter doctor -v'  please.
All system setups can be slightly different so its always better to open new issues and reference related issues.

I found a possible solution. Im not sure if this is going to help anyways. I used
"RewardedVideoAd.instance.show();" inside a loaded listener.
  RewardedVideoAd.instance.listener =
                                (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
                              if(event == RewardedVideoAdEvent.loaded){
                                RewardedVideoAd.instance.show();
                              }
                              if (event == RewardedVideoAdEvent.rewarded) {

                            };

I found the solution you have to add the targetInfo parameter
RewardedVideoAd.instance.load(myAdMobAdUnitId, targetingInfo);
RewardedVideoAd.instance.listener =(RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) {
if(event == RewardedVideoAdEvent.loaded){
RewardedVideoAd.instance.show();
}
if (event == RewardedVideoAdEvent.rewarded) {
     }
   };

MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: ['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
birthday: DateTime.now(),
childDirected: false,
designedForFamilies: false,
gender: MobileAdGender.male, // or MobileAdGender.female, MobileAdGender.unknown
testDevices: [], // Android emulators are considered test devices
);


feat: showing lua variables and tables by default

to explain: if someone wants to print a lua variable, theyll obviously have to use the print function. but this is a bit of a hassle.
and if u want to look at a lua table, that gets more complicated.
instead, someone should be able to just type var here, like os.getenv 'PATH' and it prints it just like that, and for tables to print it with keys and values in json style

not possible without weird lua things


'NoneType' object has no attribute 'text'

[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div/div/div[1]/div[2]/div/div[2]/span/a"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

Also, there is an error in the program. If there is no advertisement in the "shortlink ads" section, it automatically goes into sleep mode for 10 minutes, you must do the tasks in order

[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div/div/div[1]/div[2]/div/div[2]/span/a"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-17 21:56:02 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-17 21:56:02 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

This is normal for the bot and will still continue to run until you run into the continuous waiting for 1 min error

Also, there is an error in the program. If there is no advertisement in the "shortlink ads" section, it automatically goes into sleep mode for 10 minutes, you must do the tasks in order

The bot goes through the tasks in the order of main rewards, ptc ads, shortlinks and dosent wait to complete these ads in a single stretch as this trigger s the captcha more often. So it takes a break and tries again after some time, but will finish all the ads nonetheless.

I ran the bot during the night, slept, woke up still did 1 mission and stayed in the same place
some times it pauses for 1 minute #6  your bot did not work as expected doing these operations manually is shorter and risk-free
Are you sure the bot is working properly ?

I ran the bot during the night, slept, woke up still did 1 mission and stayed in the same place
some times it pauses for 1 minute #6 your bot did not work as expected doing these operations manually is shorter and risk-free
Are you sure the bot is working properly ?

Yes it is working I have one running continuously and there hasn't been any issues if you are facing the 1 min waits then something's wrong usually you can figure it out by running in normal mode. And find out where it fails also the bot won't complete tasks if faucet crypto returns the vpn or proxy detected error

Also, there is an error in the program. If there is no advertisement in the "shortlink ads" section, it automatically goes into sleep mode for 10 minutes, you must do the tasks in order

The bot goes through the tasks in the order of main rewards, ptc ads, shortlinks and dosent wait to complete these ads in a single stretch as this trigger s the captcha more often. So it takes a break and tries again after some time, but will finish all the ads nonetheless.

what is normal mode?
I use it this way, I do not use vpn or proxy, the bot cannot even log in recently, I have to enter it manually.
[Browser]
browser-mode = "headless"

Also, there is an error in the program. If there is no advertisement in the "shortlink ads" section, it automatically goes into sleep mode for 10 minutes, you must do the tasks in order

The bot goes through the tasks in the order of main rewards, ptc ads, shortlinks and dosent wait to complete these ads in a single stretch as this trigger s the captcha more often. So it takes a break and tries again after some time, but will finish all the ads nonetheless.

what is normal mode?
I use it this way, I do not use vpn or proxy, the bot cannot even log in recently, I have to enter it manually.
[Browser]
browser-mode = "headless"

Removing the headless flag will start the driver in normal mode and you will be able to see the driver doing its job and you can pinpoint the issue if you are sure that the bot is not able to login then that might be caused by captcha. But I highly doubt it since a cookie will be created at the first login and the bot will further login by loading this file.

the program works the same in both cases, but nothing changes, In both cases the browser opens, I couldn't understand how it works, but all the output already appears in the terminal.
I found a bug in the current version Although there is no task, it still tries to click and perform tasks, which is a good reason to be banned 👎
Can you add a way to work with multiple accounts ?

the program works the same in both cases, but nothing changes, In both cases the browser opens, I couldn't understand how it works, but all the output already appears in the terminal.
I found a bug in the current version Although there is no task, it still tries to click and perform tasks, which is a good reason to be banned 👎
Can you add a way to work with multiple accounts ?

Ok multiple things to unpack here Nonetype error basically means the webdiver was unable to find the web element we are looking for if you can wait the newer version gives much better error codes which is under testing but might com out in the following days.
About the bug part it isn't actually a bug with the bot the bot has to check for available tasks within their respective pages since Faucet Cryptos counter on the dashboard is bugged so there is no other way to check for task, this necessarily won't get you banned but the following will
User Agent, Headers, Unobfuscated webdriver, request methods etc.. (Faucet Crypto currently dosent check for those but might change in the future)
I can't actually add anyway to work with multiple accounts in a single web instance, at that point you are basically begging for a ban but since it's written like a class you can write your own logic for it or create a copy of the bot with the new account credentials and private proxy.

the program works the same in both cases, but nothing changes, In both cases the browser opens, I couldn't understand how it works, but all the output already appears in the terminal.
I found a bug in the current version Although there is no task, it still tries to click and perform tasks, which is a good reason to be banned 👎
Can you add a way to work with multiple accounts ?

Hoping you have updated the xpaths faucet crypos website was changed recently

This issue has been closed due to inactivity.

Can't it be done by checking the numbers here? If there is no number here, the transaction cannot be done

Can't it be done by checking the numbers here? If there is no number here, the transaction cannot be done @souravrs999

That was how it was done before the update but those are bugged and dosent show the number of tasks properly we can resort to that if the website gets fixed

r 14 sec
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[6]/span[2]/button"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:45:42 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:45:42 ] [  BOT  ] SHORTLINK ADS
[ 2021-02-28 01:45:44 ] [  BOT  ] Waiting for 3 sec
[ 2021-02-28 01:45:47 ] [  BOT  ] Total shortlinks: 5
[ 2021-02-28 01:45:47 ] [  BOT  ] Completed shortlinks: 3
[ 2021-02-28 01:45:47 ] [  BOT  ] Available shortlinks: 20
[ 2021-02-28 01:45:47 ] [  BOT  ] Total earnable coins: 282.60
[ 2021-02-28 01:45:47 ] [  BOT  ] SH.FAUCETCRYPTO.COM
[ 2021-02-28 01:45:47 ] [  BOT  ] View count: sh.faucetcrypto.com [6/7 Views]
[ 2021-02-28 01:45:47 ] [  BOT  ] Reward coins: sh.faucetcrypto.com [14.13 Coins]
[ 2021-02-28 01:45:47 ] [  BOT  ] Waiting for 16 sec
[ 2021-02-28 01:46:03 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[6]/span[2]/button"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:46:03 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[5]/div[4]/div[2]/div[1]/div/div[1]/div"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:46:03 ] [WARNING] 'NoneType' object has no attribute 'text'
[ 2021-02-28 01:46:03 ] [WARNING] Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[1]/div[2]/main/div/div/div[3]/div[5]/div[5]/div[2]/div[1]/div/div[1]/div"}
  (Session info: chrome=ipadressxxxx)

[ 2021-02-28 01:46:03 ] [WARNING] 'NoneType' object has no attribute 'text'

@souravrs999 where exactly is this I tried these but it didn't work
"ptc-ads-title": "/html/body/div[1]/div[2]/main/div/div/div[3]/div[3]/div[1]/div[1]/h3",


Fix transaction list for spend

also investigate field address for spending.

This one no need to be release with Sigma so I will remove it from project and milestone.


python311Packages.libtmux: 0.35.0 -> 0.36.0, tmuxp: 1.43.0 -> 1.45.0

Description of changes
Replaces: #297774
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

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

[x] 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
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 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

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Result of nixpkgs-review pr 299483 at ba0b918f run on x86_64-linux 1

4 packages built successfully:

arsenal
python311Packages.libtmux
python312Packages.libtmux
tmuxp


Looks like your landing page is down

Thanks for the heads up Jeff we will look into resolving.

Site's back up, thanks @yowainwright


Button r2 Not all the same

Not all r2 buttons have the same button like this, I tried your library values only at 0.0 and 1.0
Please make it support stick buttons like this.

Btw Thank you for creating this library

Which platform do you get that on? In Linux I get non integer values.

Which platform do you get that on? In Linux I get non integer values.

i use game pad pxn 9607x on linux
https://www.e-pxn.com/products/game-controller/pxn-9607x

Can you check if the driver is giving you better values?

Can you check if the driver is giving you better values directly?

A highly relevant question. According to this link, the Switch Pro controller only has a digital trigger.

Which platform do you get that on? In Linux I get non integer values.

i use game pad pxn 9607x on linux
https://www.e-pxn.com/products/game-controller/pxn-9607x

According to the link provided, this gamepad is marketed as a Switch Pro controller. It may only be a digital trigger.


Allow 100 character line length

Now that we're starting to use python's typing module, 80 chars is becoming increasingly restrictive.
This commit signals that dimod support 100 characters by adding it to the setup.cfg. Ideally we would like to add it to the pyproject.toml, but right now that's not supported. See https://github.com/PyCQA/pycodestyle/issues/813

Codecov Report

Merging #835 (a535926) into main (be747fa) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #835   +/-   ##
=======================================
  Coverage   88.82%   88.82%
=======================================
  Files          69       69
  Lines        5692     5692
=======================================
  Hits         5056     5056
  Misses        636      636

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update be747fa...a535926. Read the comment docs.


Add animated axes

This is a proposal to add animated axes to the plot. That's a way to provide a smooth transition between 2 states, when a new item is added or edited. It is really convenient with live data plot to avoid to lose the context.
This PR:

Creates a new object View to deal with that
The animation is computed based on time (in case of lag)
The transition is slow at start and end
An example is provided displaying and hiding automatically items in the plot.

The View returns the result by cheating on the dataRange of the plot. That's convenient but
really dirty, that is why this PR have to be reworked. To make it clean, few things could be done:

The View have to be informed that the data range have changed
It must have the responsibility of the update of the axis location

As result this should provide a better way for axis synchronization. The current way is not really convenient in case of user interaction and when the plot is in fixed aspect ratio. In this cases both axis have to be updated at the same time, but the events are not synchronized. As result the synchronization between plots is difficult without blinking or inconsistencies.
Problem to solve

[ ] Better integration
[ ] Right axes looks to fail
[ ] Change from log/linear scale
[ ] User interaction have to cancel any transition

Traceback (most recent call last):
  File "/users/valls/workspace/silx.git/build/lib.linux-x86_64-3.7/silx/gui/plot/items/axis.py", line 148, in __tick
    plot.resetZoom()
  File "/users/valls/workspace/silx.git/build/lib.linux-x86_64-3.7/silx/gui/plot/PlotWidget.py", line 2830, in resetZoom
    self._forceResetZoom(dataMargins=dataMargins)
  File "/users/valls/workspace/silx.git/build/lib.linux-x86_64-3.7/silx/gui/plot/PlotWidget.py", line 2769, in _forceResetZoom
    xmin, xmax, ymin, ymax, ymin2, ymax2))
  File "/users/valls/workspace/silx.git/build/lib.linux-x86_64-3.7/silx/gui/plot/_utils/__init__.py", line 67, in addMarginsToLimits
    yRange = yMax - yMin

I have rebased that PR.
At some point it fails with the following exception, but i am really excited about the feature.
For Flint it could be really useful because people spend there time changing context, animation here could help to follow the changes.
Traceback (most recent call last):
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/items/axis.py", line 148, in __tick
    plot.resetZoom()
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/PlotWidget.py", line 3218, in resetZoom
    self._forceResetZoom(dataMargins=dataMargins)
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/PlotWidget.py", line 3174, in _forceResetZoom
    self.setLimits(
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/PlotWidget.py", line 2553, in setLimits
    *self.getYAxis()._checkLimits(ymin, ymax),
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/items/axis.py", line 280, in _checkLimits
    return _utils.checkAxisLimits(
  File "/nobackup/lvalls1/valls/workspace/silx.git/build/lib.linux-x86_64-3.8/silx/gui/plot/_utils/panzoom.py", line 61, in checkAxisLimits
    vmax = numpy.clip(vmax, min_, FLOAT32_SAFE_MAX)
  File "<__array_function__ internals>", line 200, in clip
  File "/nobackup/lvalls1/valls/Software/miniconda3/envs/silxenv/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 2180, in clip
    return _wrapfunc(a, 'clip', a_min, a_max, out=out, **kwargs)
  File "/nobackup/lvalls1/valls/Software/miniconda3/envs/silxenv/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 54, in _wrapfunc
    return _wrapit(obj, method, *args, **kwds)
  File "/nobackup/lvalls1/valls/Software/miniconda3/envs/silxenv/lib/python3.8/site-packages/numpy/core/fromnumeric.py", line 43, in _wrapit
    result = getattr(asarray(obj), method)(*args, **kwds)
  File "/nobackup/lvalls1/valls/Software/miniconda3/envs/silxenv/lib/python3.8/site-packages/numpy/core/_methods.py", line 161, in _clip
    return _clip_dep_invoke_with_casting(
  File "/nobackup/lvalls1/valls/Software/miniconda3/envs/silxenv/lib/python3.8/site-packages/numpy/core/_methods.py", line 115, in _clip_dep_invoke_with_casting
    return ufunc(*args, out=out, **kwargs)
TypeError: '>=' not supported between instances of 'NoneType' and 'float'


model server description and new manifest info

I expected there to be some impact to the API description from the new manifest.
When you hit http://localhost:8080/api-description I'd think that the title should be updatable, but that's not listed in the manifest. Model-Archive-Description is the closest.
One big reason is that when you do the client API generation with Swagger you're going to get stuck with that name. Then when you go to publish the package to npm, it's going to say "Model Serving Apis" and it's not clear how you change that.
What happens
My javascript api client is hardcoded with Model Serving Apis.
My api-description is hardcoded with Model Serving Apis for the title.
What's expected
It should pull that data from the manifest. Probably the  Model-Archive-Description, but it would be better if the naming conventions matched.
Other related issues

Also the version number didn't seem to be updated by anything in the manifest. You'd think the 1.0.0 would be the Model-Archive-Version... something that the user can tinker with.

On that note, it's kind of weird to have the user putting in the manifest data about Model-Server when they have no idea which server or engine version it is.

Shouldn't that be Created By... Model-Export instead of server?

This kind of data would be something you'd see in the api-description end-point, some passed in from the manifest, some generated internally by MMS, and maybe MMS provides manifest template for you, so you don't screw it up by cloning data from an older model by example.

  "description": {
    "host": "<IP_ADDRESS>:8080",
    "info": {
      "title": "Model Serving Apis",
      "version": "1.0.0"

    "Model-Archive-Version": 0.1,
    "Model-Archive-Description": "SqueezeNet Model",
    "License": "Apache 2.0",
    "Created-By": {
        "Model-Server": 0.2,
        "Author": "mxnet-sdk",
        "Author-Email"<EMAIL_ADDRESS>    },
    "Model": {
        "Parameters": "squeezenet_v1.1-0000.params",
        "Symbol": "squeezenet_v1.1-symbol.json",
        "Signature": "signature.json",
        "Description": "SqueezeNet v1.1",
        "Model-Format": "MXNet-Symbolic",
        "Model-Name": "squeezenet_v1.1",
        "Service": "mxnet_vision_service.py"
    },
    "Engine": {
        "MXNet": "0.12.1"
    }

client generation is longer supported in MMS 1.0.
User can save api-descriptor output, modify it and then use Swagger to generate their client code.


Pedigree map

On a pedigree map page, there should be a map with a person's birth, his parent's birth, their parents birth, etc.

Must be possible😊

But in other direction can be also nice ... than you can see how a family is spead over the world.


Error while installing the hound

GOPATH=`pwd` go get github.com/itpp-labs/hound/cmds/...
# github.com/itpp-labs/hound/ui
src/github.com/itpp-labs/hound/ui/ui.go:111:15: undefined: strings.ReplaceAll
src/github.com/itpp-labs/hound/ui/ui.go:251:15: undefined: strings.ReplaceAll

You need to update  go to 1.12+

I decided to maintain earlier versions of go. The update will be merged with 3.0.0 release


How to trigger animations

i have a prompt box with Input field and i want to validate the value that the user typed in. When the value is not valid, i would like to trigger this nice "shake" animation.
regards.
Raed.

Sorry for the late comment @RaedQumsieh
This is not available as an API, its used internally,
i will surely add this as a method. 👍


Rename StrictTranslation to StrictRelationshipFound and make public

Fixes #711
This PR firstly renames StrictTranslation to StrictRelationshipFound and secondly makes the OpenXmlPackage.StrictRelationshipFound property public (from internal).
This will provide a hint to subsequent parsers that it may need to support strict mode parsing.

 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.:x: igitur sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Also, can you update the CHANGELOG?

Also, can you update the CHANGELOG?

Would this go under Added or Changed?

It's an addition, so under "Added"

Just pushed a change to make the property private instead of internal. Once build finishes, I'll merge it in

I'd like to squash that commit into the previous to keep the history cleaner.

I swash and merge everything on each PR :)

Hi! @igitur, @twsouthwick, @tomjebo
Can you specify what this property does in practice?
The OOXML standard has several areas that are specific to Strict. See this for a quick'n'dirty overview: https://github.com/mikeebowen/ooxml-validator-vscode/issues/14#issuecomment-1057831570
Will the StrictRelationshipFound property guarantee that the document is conformant with OOXML Strict? How does it check for this, and does the property check for all those things listed in the linked post?


Implement a Whitebox.setInternalStateFromContext

From<EMAIL_ADDRESS>on July 03, 2009 14:58:52
Let's say we have a class that has many collaborators that needs to be
mocked. One nice feature would be to be able to do something like this in
the setup method:
tested = new MyClassToTest(); // MyClassToTest has many collaborators
Whitebox.setInternalStateFromContext(tested, this);
What setInternalStateFromContext will do is to go through all fields
defined in "this" (e.g. the test) and set them on tested. This means that
we don't need to do Whitebox.setInternalState(tested, myCollaborator1);,
..,  Whitebox.setInternalState(tested, myCollaboratorN) when the
collaborators are defined in the test case already.
Original issue: http://code.google.com/p/powermock/issues/detail?id=128

From<EMAIL_ADDRESS>on July 14, 2009 10:19:29
Status: Started

From<EMAIL_ADDRESS>on July 22, 2009 13:51:54
Status: Fixed


Create API unit test project

Create a new project for unit tests called PubHub.API.UT under a new '/test/' directory.
To start out, prepare a single testing one of the API endpoints with a database fixture (and maybe moq too).

I think we need to be a bit wary of using moq - or at least use the version where they don't have SponsorLink included
I do not know if that's an issue for this prototype version but, I do think we should take it into consideration.
This article also mentions something about GDPR compliance issues with this.

Can we call the namespace .Tests instead of .UT? 🤔
Not that it matters much, I just feel like it defines the project more.

I think we need to be a bit wary of using moq - or at least use the version where they don't have SponsorLink included
I do not know if that's an issue for this prototype version but, I do think we should take it into consideration.
This article also mentions something about GDPR compliance issues with this.

I feel like this is defo somehting we should consider 🤔

Can we call the namespace .Tests instead of .UT? 🤔 Not that it matters much, I just feel like it defines the project more.

I think we need to be a bit wary of using moq - or at least use the version where they don't have SponsorLink included
I do not know if that's an issue for this prototype version but, I do think we should take it into consideration.
This article also mentions something about GDPR compliance issues with this.

I feel like this is defo somehting we should consider 🤔

If we are to create more types of test than just unit test (which are supposed to be run during CI build jobs), I think we should have a naming scheme to differentiate between the different types. I propose: UT (Unit Test),  IT (Integrations Test) and FT (Function Test). Our performance tests on a system in a staging environment would fall under the later.

I gotta be honest I'm not familiar with any of this.
We rarely do Unit Tests at my company. In fact I haven't created one since School 😆

I think it's best to keep it minimum, so maybe for now just get the unit tests up as we know them and then if there's time we can integrate more of them?

Integrate more of what? 🤔

The IT and FT - I don't know if they're any different though, from unit tests. So it was more if they were different from the Unit tests 😂


SEO Sitemap store code.

Hi there. I wonder, can I remove default store code from XML Google sitemap ?
Ill already tried, to do this, with little core change - but no result.
Like this: ( in /www/app/code/core/Mage/Sitemap/Model/Sitemap.php )
$iDefaultStoreId = Mage::app()->getWebsite($websiteId)->getDefaultGroup()->getDefaultStoreId();
if (Mage::app()->getStore($iDefaultStoreId)->getStoreId() === $this->getStoreId()) {
	$baseUrl = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_DIRECT_LINK);
} else {
	$baseUrl = Mage::app()->getStore($storeId)->getBaseUrl(Mage_Core_Model_Store::URL_TYPE_LINK);
}```

If you have solution, please response:
<EMAIL_ADDRESS>
And, thanks for your module - it's really helps)

This is probably caused by something I already knew but never had a reason to fix.

Hi.
I started an experimental feature on a new branch which should address this.  I would appreciate if you could try it first.

I was able to recreate the issue and the aforementioned branch does help, so I merged it to master.


Cant add custom via json.

I'm trying to upload my json file to the site but it does nothing when I click submit.
{   "rounds": [     {       "answers": [         {           "ans": "Menorah",           "pnt": 45         },         {           "ans": "Dreidel",           "pnt": 35         },         {           "ans": "Latkes",           "pnt": 10         },         {           "ans": "Sufganiyot",           "pnt": 7         }       ],       "multiply": 1,       "question": "Name Something Associated with Hanukkah."     },     {       "answers": [         {           "ans": "Maccabees",           "pnt": 52         },         {           "ans": "Judah",           "pnt": 26         },         {           "ans": "Oil",           "pnt": 12         },         {           "ans": "Temple",           "pnt": 5         }       ],       "multiply": 1,       "question": "Name A Key Element in the Hanukkah Story."     },     {       "answers": [         {           "ans": "Gelt",           "pnt": 40         },         {           "ans": "Gold Coins",           "pnt": 28         },         {           "ans": "Chocolate Coins",           "pnt": 16         },         {           "ans": "Candy",           "pnt": 8         }       ],       "multiply": 1,       "question": "Name A Type of Hanukkah Gift Often Given to Children."     },     {       "answers": [         {           "ans": "Blue",           "pnt": 50         },         {           "ans": "White",           "pnt": 32         },         {           "ans": "Silver",           "pnt": 10         },         {           "ans": "Gold",           "pnt": 5         }       ],       "multiply": 2,       "question": "Name A Color That is Commonly Seen During Hanukkah Decorations."     },     {       "answers": [         {           "ans": "Eight",           "pnt": 63         },         {           "ans": "Nine",           "pnt": 23         },         {           "ans": "Seven",           "pnt": 9         },         {           "ans": "Ten",           "pnt": 5         }       ],       "multiply": 2,       "question": "How Many Nights Does Hanukkah Last?"     },     {       "answers": [         {           "ans": "Candles",           "pnt": 45         },         {           "ans": "Lights",           "pnt": 28         },         {           "ans": "Menorah",           "pnt": 16         },         {           "ans": "Shamash",           "pnt": 11         }       ],       "multiply": 2,       "question": "Name Something You Light During Hanukkah."     }   ],   "final_round": [     {       "answers": [         [           "Latkes",           48         ],         [           "Sufganiyot",           26         ],         [           "Dreidel",           14         ],         [           "Candles",           8         ],         [           "Menorah",           4         ]       ],       "question": "Name Something People Eat During Hanukkah."     },     {       "answers": [         [           "Judah",           52         ],         [           "Maccabees",           28         ],         [           "Temple",           14         ],         [           "Hanukkah Miracle",           6         ]       ],       "question": "Name a Famous Figure from the Hanukkah Story."     },     {       "answers": [         [           "Dreidel",           65         ],         [           "Menorah",           23         ],         [           "Latkes",           8         ],         [           "Gelt",           4         ]       ],       "question": "Name a Popular Hanukkah Game."     },     {       "answers": [         [           "Blue",           50         ],         [           "Silver",           32         ],         [           "White",           12         ],         [           "Gold",           6         ]       ],       "question": "Name a Common Color Seen in Hanukkah Decorations."     }   ],   "final_round_timers": [     20,     25   ] }

Hey @NoahTheBaguette your game is working for me.
How are you "submitting" the game? I have a feeling you might be on the https://www.famf.app/new page which is only meant for creating new games and "submit" on that page just means fill in the fields of the "Create New Game Page"
Once you download your json file you are supposed to go back to the admin page and click on the upload button icon

Which is in the box next to the built-in game selector

I will admit that the UI on the new game page does "convey" better that you are uploading your custom game more than the admin page, so I believe there could be a change in UX.
If you are using the admin controls (instead of the new game control) and it still doesn't work, then maybe this is browser, os specific and you can send me some screenshots or specs of your machine?

Sure thing I’ll get right on it as soon as I get a chance

I just tried with a one I found on GitHub and it worked but my original file was a custom one. can you look through and see what is wrong?
{ "rounds": [ { "answers": [ { "ans": "Menorah", "pnt": 45 }, { "ans": "Dreidel", "pnt": 35 }, { "ans": "Latkes", "pnt": 10 }, { "ans": "Sufganiyot", "pnt": 7 } ], "multiply": 1, "question": "Name Something Associated with Hanukkah." }, { "answers": [ { "ans": "Maccabees", "pnt": 52 }, { "ans": "Judah", "pnt": 26 }, { "ans": "Oil", "pnt": 12 }, { "ans": "Temple", "pnt": 5 } ], "multiply": 1, "question": "Name A Key Element in the Hanukkah Story." }, { "answers": [ { "ans": "Gelt", "pnt": 40 }, { "ans": "Gold Coins", "pnt": 28 }, { "ans": "Chocolate Coins", "pnt": 16 }, { "ans": "Candy", "pnt": 8 } ], "multiply": 1, "question": "Name A Type of Hanukkah Gift Often Given to Children." }, { "answers": [ { "ans": "Blue", "pnt": 50 }, { "ans": "White", "pnt": 32 }, { "ans": "Silver", "pnt": 10 }, { "ans": "Gold", "pnt": 5 } ], "multiply": 2, "question": "Name A Color That is Commonly Seen During Hanukkah Decorations." }, { "answers": [ { "ans": "Eight", "pnt": 63 }, { "ans": "Nine", "pnt": 23 }, { "ans": "Seven", "pnt": 9 }, { "ans": "Ten", "pnt": 5 } ], "multiply": 2, "question": "How Many Nights Does Hanukkah Last?" }, { "answers": [ { "ans": "Candles", "pnt": 45 }, { "ans": "Lights", "pnt": 28 }, { "ans": "Menorah", "pnt": 16 }, { "ans": "Shamash", "pnt": 11 } ], "multiply": 2, "question": "Name Something You Light During Hanukkah." } ], "final_round": [ { "answers": [ [ "Latkes", 48 ], [ "Sufganiyot", 26 ], [ "Dreidel", 14 ], [ "Candles", 8 ], [ "Menorah", 4 ] ], "question": "Name Something People Eat During Hanukkah." }, { "answers": [ [ "Judah", 52 ], [ "Maccabees", 28 ], [ "Temple", 14 ], [ "Hanukkah Miracle", 6 ] ], "question": "Name a Famous Figure from the Hanukkah Story." }, { "answers": [ [ "Dreidel", 65 ], [ "Menorah", 23 ], [ "Latkes", 8 ], [ "Gelt", 4 ] ], "question": "Name a Popular Hanukkah Game." }, { "answers": [ [ "Blue", 50 ], [ "Silver", 32 ], [ "White", 12 ], [ "Gold", 6 ] ], "question": "Name a Common Color Seen in Hanukkah Decorations." } ], "final_round_timers": [ 20, 25 ] }

Do you have a screenshot of what happens when you try to upload the json file?
I do have a MacBook myself, so I can give it a try
The CSV error is because the game is larger than like 15 rows of data.

Your game is definitely in the right format and loads up fine for me, so we need to figure out what the actual issue is.
Anything in the browser console logs?

Just tried it on my M2 apple air, so that isnt' the issue.
What browser are you using?

Maybe also upload the file to a comment as well?
Its perhaps the format of the file on your machine has something the Json parser doesn't like.
Something like line endings could be the issue.

@NoahTheBaguette any update? Would love to get your game working before Hanukkah 😉

I am also experiencing this issue. I am using Windows and Chrome. When I try to add a custom game on the host page, nothing happens. However, when I do the same on the create game page, it shows up but the create button doesn't work.
ChristmasGame#1.json

@ItzEarthy any browser console logs to indicate what the problem is?
I'll try your game but I bet it's going to work on my setup like @NoahTheBaguette 's game did

I found the solution to the problem. For me there was an issue with my JPEG file because I was converting it from CSV to JPEG and it had issues the way I fixed it was by going to the games folder and downloading one of the json files. I then was able to upload that just on the admin page not the new page. And all I had to do to resolve that issue was edit the json I downloaded and it worked.

Thank you so much @joshzcold for making the game and assisting me. It was very kind of you to try to get it working before Hanukkah.

Maybe I can go double check if the "new game" page is outputting correct format.
@ItzEarthy you could try editing a json file like Noah did to brute force it before Christmas

I originally downloaded the .json file from GitHub and then edited it with the changed questions and then renamed the file. Not sure what id have to change regarding the file. when I upload the original file I downloaded, it also doesn't work. I've been using the system for years now and this is the first time I've tried doing a custom version.

I kept it as the same name try doing that

It is exactly the same name

any browser console logs to indicate what the problem is?

@joshzcold here is the console output error

Maybe try downloading a json from the folder and upload that one and just
see if it works.
On Wed, Dec 18, 2024 at 6:09 PM ItzEarthy @.***> wrote:

It is exactly the same name
—
Reply to this email directly, view it on GitHub
https://github.com/joshzcold/Cold-Family-Feud/issues/91#issuecomment-2552566225,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BNGKLYNMABXOHCDYK4BGKIL2GIMDLAVCNFSM6AAAAABSM6V5EKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNJSGU3DMMRSGU
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

I figured it out 🤦

Sweet great to hear 👍
I was really worried there was some obscure bug depending on browser version or OS that was causing it 😅


Added support for package level logging

Modified the replaces_or_add_into_file_tail function so that it adds additional lines before the  line

Doesn't appear to break anything. If you could make the few small changes, and then squash the commits, I'll merge.

Closed in favor of #298.


Services: first build: abs added

{package} {version} {:snowflake:}
Destination channel: {Snowflake | defaults}
Links

{ticket_number}
Upstream repository
Upstream changelog/diff
Relevant dependency PRs:

...

Explanation of changes:

...

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_22lxj_voz_/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:53: documentation_overspecified: Using doc_url and doc_source_url is overspecified

===== ERRORS =====

clone/recipe/meta.yaml:17: pip_install_args: pip install should be run with --no-deps and --no-build-isolation.
===== Final Report: =====
1 Error and 1 Warning were found

Linter check found the following problems:
ERROR conda.cli.main_run:execute(125): `conda run conda-lint /tmp/abs_f6jffytx6w/clone` failed. (See above for error)
The following problems have been found:
===== WARNINGS =====

clone/recipe/meta.yaml:14: avoid_noarch: noarch: python packages should be avoided
clone/recipe/meta.yaml:50: documentation_overspecified: Using doc_url and doc_source_url is overspecified

===== ERRORS =====

clone/recipe/meta.yaml:50: missing_license_family: The recipe is missing the about/license_family key.
clone/recipe/meta.yaml:50: missing_dev_url: The recipe is missing a dev_url
===== Final Report: =====
2 Errors and 2 Warnings were found


Section search

Hi, is there a way to search for all adapter with filterable for example?
Thanks

Hi @BossJC69,
If I understood you correctly, you want to filter items in all of the sections simultaneously.
Unfortunately, the internal RecyclerView.Adapter implementation used by the library doesn't provide such functionality. Also because different sections might represent different data, it makes sense to perform filtering by section.
As a solution, you can implement Filterable interface by each section adapter separately. Then, when new query is available, you can traverse all sections and call filter on each SectionAdapter. Something like this:
for (index in 0 until sectionDataManager.sectionCount) {
    val sectionAdapter = sectionDataManager.getSectionAdapter<BaseSectionAdapter<*>>(index)
    (sectionAdapter as? Filterable)?.filter?.filter(query)
}

Let me know if my answer was helpful or you encounter problems with implementing that.

Hello. Thank you for your reply. I tried that but didn't work. In the adapter when I publish the results of the filter, I need to call notifyDataSetChanged() but that adapter doesn't have that method.

Hi @BossJC69,
This is a nice catch that notifyDataSetChanged method is absent. Fortunately, there is a pending pull-request that fixes this problem, I will try to review it on weekend.
For now, you can do the following (in Java):
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
    int oldSize = yourData.size();
    yourData = (ArrayList<YourItemType>) filterResults.values;
    int newSize = yourData.size();
    if (oldSize < newSize) {
        notifyItemRangeInserted(oldSize, newSize - oldSize);
    } else if (newSize < oldSize) {
        notifyItemRangeRemoved(newSize, oldSize - newSize);
    }
    if (Math.min(newSize, oldSize) > 0) {
        notifyItemRangeChanged(0, Math.min(newSize, oldSize));
    }
}

Hope this helps.

Thank you!

Now you can update to version 1.0.3 where notifyDataSetChanged method is available.


Add additional Eq constraints for class instances with Num constraints

Hey, thanks for closing my other issue so fast. :-)
Here's one other GHC 7.4.1 thing. After this, weighted-regexp builds fine for me (also on 7.0.4).
Starting from GHC 7.4.1, the Num class no longer has Eq (or Show)
superclasses. Therefore, specifying Num as a constraing no longer
implies these class constraints, so we have to add them manually where
they are required.

Thanks!
On GHC 7.2.1 I get warnings for the SPECIALIZE pragmas:
src/Text/RegExp/Matching.hs:53:1:
    Warning: Forall'd constraint `Eq a' is not bound in RULE lhs
               fullMatch
                 @ c
                 @ c
                 @ (Numeric a)
                 (Text.RegExp.Data.$fWeightccNumeric
                    @ a @ c (GHC.Num.$p1Num @ a $dNum) $dNum)

src/Text/RegExp/Matching.hs:70:1:
    Warning: Forall'd constraint `Eq a' is not bound in RULE lhs
               partialMatch
                 @ c
                 @ c
                 @ (Numeric a)
                 (Text.RegExp.Data.$fWeightccNumeric
                    @ a @ c (GHC.Num.$p1Num @ a $dNum) $dNum)

src/Text/RegExp/Matching.hs:81:1:
    Warning: Forall'd constraint `Eq a' is not bound in RULE lhs
               matchW
                 @ (Numeric a)
                 @ c
                 (Data.Semiring.$fSemiringNumeric
                    @ a (GHC.Num.$p1Num @ a $dNum) $dNum)

I'll investigate later whether the rules still fire and push a new version to Hackage.
P.S. It seems a major version bumb is required as (textually) the type of some entities changed. Semantically, they didn't change, though..


Ignore .idea

Most Thorn maintainers use PHPStorm, so ignore it so it doesn't show up when doing npm publish.

Coverage remained the same at 95.549% when pulling 753eecaf323ad61ddf7e537d6e9fb80afbb91372 on rhoggSugarcrm:add-.idea-gitignore into 6a9127e8ef5e753f80a1b0e03846a395f253742c on sugarcrm:master.


Support bech32 encoding without a checksum

BOLT 12 Offers uses bech32 encoding without a checksum since QR codes already have a checksum. Add functions encode_without_checksum and decode_without_checksum to support this use case.
Also, remove overall length check in decode since it is unnecessary.

Sure thing. Can you squash the first two commits please because the second one is patching the changes in the first. Not super important but I'd put patch 3 at the front since it is a trivial improvement. Thanks.

Hi @jkczyz, thanks for your contribution. This PR does the job but its not pretty. How urgent is this? Is it something you need to use today or is it just something you did for fun?
The reason its not pretty is that it adds functionality that is obviously just plastered on top. By that I mean the whole Bech32Writer design is there to track and add the checksum so then adding another type that mirrors it but does not add a checksum is kinda strange. I'm basically making the same observation @TheBlueMatt did above but on this iteration of the PR. If we want a good solution I think we need to dig a bit deeper.

Hi @jkczyz, thanks for your contribution. This PR does the job but its not pretty. How urgent is this? Is it something you need to use today or is it just something you did for fun?

Somewhat urgent as it will hold up our work on Offers (https://github.com/lightningdevkit/rust-lightning/pull/1597). I have a draft that uses this through rust-bitcoin's re-export, so would need a new release for both.

The reason its not pretty is that it adds functionality that is obviously just plastered on top. By that I mean the whole Bech32Writer design is there to track and add the checksum so then adding another type that mirrors it but does not add a checksum is kinda strange. I'm basically making the same observation @TheBlueMatt did above but on this iteration of the PR. If we want a good solution I think we need to dig a bit deeper.

I don't actually need to use Bech32WithoutChecksumWriter directly, so I'm happy to inline the code. I mainly included for  consistency and for code reuse, which is no longer the case it seems.

As a stop-gap you could just drop the last 6 characters/u8s from a normal bech32 encoding.

Sure thing. Can you squash the first two commits please because the second one is patching the changes in the first. Not super important but I'd put patch 3 at the front since it is a trivial improvement. Thanks.

All done.

As a stop-gap you could just drop the last 6 characters/u8s from a normal bech32 encoding.

For encoding that would work, but we would still fail to decode a bech32 offer since it doesn't have a checksum.

Loosk good to me! Though I guess CI wants you to add a rustfmt commit.
@Kixunil mind taking another look at this? I think now my remaining unease with the API is just my existing unease at the API, and if we want to clean it up we should just go over the whole library.
ACK 3e95975d7c90450c2735a8cac1c6e95277713371

Can't right now, give me a day or so.

tACK 573d7f4756ed99f996e8ed9b3a70477fa12a3443

Addressed all feedback. Can squash fixups whenever you're ready.

Looks good to me. Yes, would prefer squashing all the fixups.

As a stop-gap you could just drop the last 6 characters/u8s from a normal bech32 encoding.

For encoding that would work, but we would still fail to decode a bech32 offer since it doesn't have a checksum.

For sake of planning, what timeframe should I expect for seeing this in a release? Do let me know if I can help in review if other PRs need to be merged first. Just want to set appropriate expectations given this will need to get into a rust-bitcoin release, too, before we can use it in rust-lightning.

We just dropped a rust-bitcoin release so the next one could be six months away. This poses an interesting dilemma, we don't want to be doing major releases of rust-bitcoin ever week but if a user is waiting on a merged feature in a dependency that we control it seems rude to hold it up too long.
If we are going to release then #68 and #72 would likely be nice to consider first.

We can do a much faster release of this than six months. It's still fine if rust-bitcoin depends on an old version -- bech32 is pretty self-contained so it should be easy to work with multiple versions of it at once.

But having said that yes, I'd like to do a bunch more work on this crate before releasing .. so it could be a month or more.

Gotcha. I think had trouble with multiple versions but can't recall the exact error. Will try again once there's a new bech32 release. Otherwise, I can unblock the current work by holding off on offer parsing. I made a builder framework in the interim, so we can move forward with dependent work using that.

Could the code be changed to be non-breaking? Minor version bump wouldn't be so painful and we could do API overhaul later.

Could the code be changed to be non-breaking? Minor version bump wouldn't be so painful and we could do API overhaul later.

Are you suggesting doing that in rust-bech32 and do a similar minor version bump in rust-bitcoin?

Ah, so since rust-bitcoin specifies version = "0.9.0" for bech32, any version >=0.9.0, <0.10.0 cab be used. Sure, I can put together a PR.

Opened #77.


substrate: bump to rc6

@maxsam4 What's the process for merging in things here?

@Centril once myself or @ParnianAlimi approve it, it is good to merge from the research team's side. If you want extra approval from your team, you can definitely wait for their input.


feat: Pass logger and ServiceProvider to BatchInterceptor

In OnBatchEngineBeginAsync method, we want to use a logger and IServiceProvider.
For example, Initialize app or other dependent libraries, they need a logger or IServiceProvider.

seems good, thanks.


Add icon table for workflow icons in docs

Adds an table with search for easily finding available icons in the spectrum-icons/workflow package.

Advice on the implementation and ease of use would be appreciated.
also, its hard to copy imports in the table at the moment. Shoudl there be a button to do so?
✅ Pull Request Checklist:

[ ] Included link to corresponding Issue.
[ ] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[ ] Filled out test instructions.
[ ] Updated documentation (if it already exists for this component).
[ ] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

🧢 Your Team:
React Spectrum

@majornista im wondering if you can assist here; im wondering what the best way (or one way) allowing users to select and then copy the import text (eg import icon from '@spectrum-icons/blah') in this table?
Right now this also doesnt work with a mouse, but im particularly concerned with keyboard users. I expect this will likely come up over time as a use case in table in general.
see https://reactspectrum.blob.core.windows.net/reactspectrum/56cc9c0d43a5e81ddc2391e0bb04bf8ec00fb12c/docs/react-spectrum/Icon.html for an example

add a copy import button?
clicking on the row could copy (seems invasive if you don't know it'll happen ahead of time and have something else already on the clipboard)
should we try to stop whatever is preventing us from highlighting the text?

im down for a button? could simply be an icon with an aria-label for now, so it doesn't feel as repetitive. ill try that out and see what's what.

Add a Button with an Icon, not an icon with a click event handler that behaves a button. aria-label should be fine to label it.


fix: bump default version to 1.0.0

This PR fixes https://github.com/Shopify/sarama/issues/1787. As explained there:
The current default, 0.8.2, is a 5 year-old version. The problem with defaulting to older versions when the Kafka cluster is a newer version is manifold:

requires Kafka to downconvert consumer response messages (e.g if a newly-configured client produced messages and a default Sarama client is reading) - this has implications on the performance of Kafka, because it uses additional CPU. Especially so if compression is enabled, at which point the broker would need to decompress, downconvert and compress the message back. Downconversion also blocks zerocopy, because your fetch response now needs to be copied into memory
requires Kafka to upconvert producer requests' messages
in general is hard to support. While the latest Kafka currently supports the oldest versions, it is in the best interest of the project to deprecate and eventually drop support for legacy versions. Otherwise it becomes hard to maintain, the test matrix grows and new features need to work around old version limitations (no idempotency, exactly once). It is easier for Kafka to deprecate/drop support when its ecosystem has done so already

0.11 is the minimum we should default at as it enables Kafka's v2 message format, avoiding expensive upconversion/downconversion in the Kafka broker. It is also required for correctness in some cases (e.g KIP-101)
1.0.0 is a 3-year old version and I think a good one to default to at this point.

cc @d1egoaz @ijuma @varun06 @twmb

##[error]    async_producer_test.go:170: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
2205
--- FAIL: TestAsyncProducerMultipleFlushes (90.77s)

hmm, that doesn't look related

0.11 is the minimum we should default

It should be sufficient to use 0.10 as default and then use ApiVersionRequest to select the highest supported version for each protocol request.

@edenhill yes the plan is to migrate to ApiVersionRequest in a v2.x release, but I think this is a reasonable default behaviour to leave the 1.x series at so that any user that doesn’t override the version won’t be a hindrance to clusters

@dnwe +1

##[error]    async_producer_test.go:170: kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
2205
--- FAIL: TestAsyncProducerMultipleFlushes (90.77s)

hmm, that doesn't look related

It is related, because the mock broker is sending a V0 MetadataResponse when the client (at V1_0_0_0) has send a V5 MetadataRequest

I'm having a bit of a hard time to fix and pinpoint the issue. I took @dnwe's advice and fixed the test to use V5 MetadataResponses but it still results in a 10-minute timeout with a bunch of threads stuck, apparently when closing the producer and draining the inflight requests.
As a side note - we could benefit from having a single place to define the request version (and we could use this for resp in tests too) - I see we set the metadata request version according to the conf.Version in multiple places in the sender's code. I don't want to increase the scope of this PR but thought I'd note the potential improvement in case we want to capture it in an github issue

@stanislavkozlovski it'll be making V3 ProducerRequests too, so I think you'll need V3 ProducerResponses

If you add Logger = log.New(os.Stderr, t.Name(), log.LstdFlags) at the start of the failing test(s) you can see what the mockbroker is doing.
However, as a simpler measure you might want to just update the tests to explicitly specify a Version = MinVersion in their config to just make them continue to exercise the behaviour as they used to. We already have (some) tests that exercise at specific versions.

Thanks @dnwe, I like the approach of switching back the Kafka version as ensuring each request and response are the same version seems like a large task, probably better to be deferred in a separate issue.
The latest commit adds two test functions NewTestConfig in both the mocks package and sarama. Let me know if I should open a GH Issue and mention its number in that function. It'd be good to eventually resolve this as it'll be a gotcha for developers to use NewConfig() in tests and see it fail weirdly

cc @varun06 @dnwe I've got the build passing now. Unfortunately I had to sprinkle a special test config in most tests in order to not default to the new version

@stanislavkozlovski Thanks for getting this through. Use of NewTestConfig seems fine, I wonder if we should add some more documentation around it 🤔

Thanks for the review @varun06. I had added documentation around the method:
// NewTestConfig returns a config meant to be used by tests.
// Due to inconsistencies with the request versions the clients send using the default Kafka version
// and the response versions our mocks use, we default to the minimum Kafka version in most tests
func NewTestConfig()

Let me know if you can think of more to say, or whether some other place is best to document it in

Hey there @varun06 @dnwe @bai - what should our next steps be in order to merge this PR?

Need one more approval and then we can merge it.


[TextField] Follow the spec more closely

[x] PR has tests / docs demo, and is linted.
[x] Commit and PR titles begin with [ComponentName], and are in imperative form: "[Component] Fix leaky abstraction".
[x] Description explains the issue / use-case resolved, and auto-closes the related issue(s) (http://tr.im/vFqem).

@leMaik It should be better like this.
This new focus test might be flaky. Will see how it evolves. Otherwise, we need to use
<TextFieldLabel required focused>Foo</TextFieldLabel>

I had this in the original implementation but forgot in in next. Glad to see it fixed. :)


Investigate supporting WASM target

Alex suggests we need:

a wasm target
a thing that disassembles a binary wasm file to a "wast" file or "wat"

The "asm" output of llvm is not at all the "wat" format but the "wat" format is the "official" one
We should also garbage-collect the WASM to make it look better.

One concrete problem: If we run --target=wasm, then all of the crates will need to be built for wasm in addition to x86-64.

Oh dear :(
Is there a way we could just whitelist a few for wasm perhaps?

Certainly possible. Do you have such a list?
FWIW, I'm close to getting it to work with the Docker containers and no dependencies.

Oh I'd go with the empty list as a whitelist to start out with :)
In the sense of allocation in the standard library is probably as far as we need to go for now. Also awesome! That wouldn't happen to be a branch I could poke at, would it?

a branch I could poke at,

Sure, I just pushed https://github.com/integer32llc/rust-playground/tree/wasm — beware that it probably doesn't really work yet. I've it hacked up so that clicking MIR does the wasm code.
To get the container, do something like:
cd compiler
CHANNELS_TO_BUILD=nightly TOOLS_TO_BUILD="" ./build.sh


Help with installation

I cloned it an ran ./install and I get the following error:
% ./install
All targets have been cleaned
Link exists ~/.dotfiles -> /Users/dipamvasani/dotfiles/
Link exists ~/.bash -> /Users/dipamvasani/dotfiles/bash
Link exists ~/.gnupg/gpg.conf -> /Users/dipamvasani/dotfiles/gpg.conf
Link exists ~/.ipython/profile_default/ipython_config.py -> /Users/dipamvasani/dotfiles/ipython/ipython_config.py
~/.gitconfig already exists but is a regular file or directory
Link exists ~/.local/share/jupyter/nbextensions -> /Users/dipamvasani/dotfiles/jupyter/nbextensions
Link exists ~/.ipython/profile_default/ipython_kernel_config.py -> /Users/dipamvasani/dotfiles/ipython/ipython_kernel_config.py
Link exists ~/.aria2/aria2.conf -> /Users/dipamvasani/dotfiles/aria2.conf
Link exists ~/.irssi -> /Users/dipamvasani/dotfiles/irssi
Link exists ~/.hgrc -> /Users/dipamvasani/dotfiles/hgrc
Link exists ~/.shell -> /Users/dipamvasani/dotfiles/shell
~/.zsh already exists but is a regular file or directory
~/.vim already exists but is a regular file or directory
Link exists ~/.emacs.d -> /Users/dipamvasani/dotfiles/emacs.d
Link exists ~/.pythonrc -> /Users/dipamvasani/dotfiles/pythonrc
Link exists ~/.rtorrent.rc -> /Users/dipamvasani/dotfiles/rtorrent.rc
Link exists ~/.screenrc -> /Users/dipamvasani/dotfiles/screenrc
Link exists ~/.inputrc -> /Users/dipamvasani/dotfiles/inputrc
~/.vimrc already exists but is a regular file or directory
Link exists ~/.agignore -> /Users/dipamvasani/dotfiles/agignore
Link exists ~/.jupyter/jupyter_notebook_config.py -> /Users/dipamvasani/dotfiles/jupyter/jupyter_notebook_config.py
Link exists ~/.zshrc -> /Users/dipamvasani/dotfiles/zshrc
Link exists ~/.tmux.conf -> /Users/dipamvasani/dotfiles/tmux.conf
Link exists ~/.ipython/profile_default/startup/disable_warnings.py -> /Users/dipamvasani/dotfiles/ipython/disable_warnings.py
~/.jupyter/nbconfig/notebook.json already exists but is a regular file or directory
Link exists ~/.emacs -> /Users/dipamvasani/dotfiles/emacs
Link exists ~/.gitignore_global -> /Users/dipamvasani/dotfiles/gitignore_global
Link exists ~/.axelrc -> /Users/dipamvasani/dotfiles/axelrc
Link exists ~/.haskeline -> /Users/dipamvasani/dotfiles/haskeline
~/.bash_profile already exists but is a regular file or directory
~/.bashrc already exists but is a regular file or directory
Some links were not successfully set up
Path exists /Users/dipamvasani/.rtorrent/session
Path exists /Users/dipamvasani/.rtorrent/watch
Path exists /Users/dipamvasani/.rtorrent/downloads
All paths have been set up
git submodule sync --recursive
git update-submodules
Command [git update-submodules] failed
git cleanall -f emacs.d/vendor/ irssi/scripts/vendor/ jupyter/nbextensions/ shell/plugins/ vim/pack/vendor/start/ zsh/plugins/

Command [git cleanall -f emacs.d/vendor/ irssi/scripts/vendor/ jupyter/nbextensions/ shell/plugins/ vim/pack/vendor/start/ zsh/plugins/
] failed
Some commands were not successfully executed

==> Some tasks were not executed successfully

How do I solve it and how do I setup zsh, oh-my-zsh and all the plugins that you are using? I am new to all this so forgive the simple doubt

FYI, I already had zsh installed but I really liked your shell from the missing semester course and so found your dotfiles

Some links aren't being created because regular files exist in their place already (e.g. ~/.bashrc is a regular file, and I've set up my dotfiles to not forcibly replace that regular file with a symlink). If you back up and then delete those regular files, and re-run ./install, it should work. If you want to understand more about what's going on when you ./install, see the documentation for Dotbot.
I'm not using oh-my-zsh, just a few plugins, zsh-syntax-highlighting and zsh-completions. My zsh theme is mostly contained in this dotfiles repo, but it cooperates with a color scheme that's in my dotfiles-local repo (e.g. for iTerm2, I use this color scheme).
By the way, as I've written in more detail here, I recommend reading/understanding and then borrowing parts of others' dotfiles, rather than forking them / using them in their entirety. Along those lines, my dotfiles that are publicly available on GitHub are meant more as a reference for other people who are curious about how certain parts work, and I'm not necessarily trying to make them usable as-is by others.

Thank you for the detailed explanation. This helps a lot :)


UITableView goes behind UITabbarController.

When I push to 1 ViewController and go back to that view My TableView goes behind TabBarController,
and when i comment this code in next view
self.swiper = [[SloppySwiper alloc] initWithNavigationController:self.navigationController];
self.swiper.delegate = self;
it works fine.
I am facing this issue from more than 1 week, can you guys pls help me out to fix this issue?

If this doesn't help:

If you're having problems with a UINavigationController inside of a UITabBarController that is causing the UITabBar to pop out of view during the animation process, you'll want to implement the SloppySwiperDelegate protocol and return NO for calls to -(BOOL)sloppySwiperShouldAnimateTabBar:(SloppySwiper *)swiper.

then SloppySwiper probably won't work with UITabBarController. I'm sorry.

I have solved this issue .
Comment following line in SSWAnimator
CGFloat toViewControllerXTranslation = - CGRectGetWidth([transitionContext containerView].bounds) * 0.3f;
toViewController.view.bounds = [transitionContext containerView].bounds;
toViewController.view.center = [transitionContext containerView].center;
toViewController.view.transform = CGAffineTransformMakeTranslation(toViewControllerXTranslation, 0);


Show a per-notebook table of contents

Right now to get a table of contents, the notebook creator has to do so manually with built-in HTML links.  This can be distracting, is brittle (a later modifier may not think to update the TOC), and isn't guaranteed to be compatible with future browser interfaces (e.g. Jupyter Lab).
A safer bet is to have a generated TOC that infers the structure from the form of the headers.  I'm taking inspiration from the sphinx-based approach to building notebooks:

(from http://www.astropy.org/astropy-tutorials/rst-tutorials/UVES.html)
There are two possible implementation paths I see:

Have some javascript that at-page-load figures out the structure from the headers and generates the TOC on the fly. (Probably a bit simpler, but requires javascript/at-load-time modification of the page)
Add the TOC to the jinja2 template for the pages.  This would need to either get passed in the header-structure, or need some extra logic in nbpages to read a "first round" HTML for headers which then gets re-processed. (static in the page, but probably a bit more complex to code up).

I think the fastest approach might be to start with 1, and then try to implement 2 when there's a bit more time.
Assigning myself, although if anyone else wants to take a crack at it I'm all ears!

Playing around with doing this at page load, a little rough (I'm not the best with CSS) but let me know if you think this is a viable solution (for now) @eteq

@obviousrebel - I definitely agree using an extension is better if possible... but can you clarify if this is working in the HTML view on the live build?  That extension looks like it's meant for use inside the notebook, and it's not clear if it will work in the static HTML form? (Although both would be even better if that's what's happening!)
I have quibbles about the style, but I think we don't necessarily need to dwell on that here.  I sympathize with not being friends with CSS, but there are other people we could ping who can focus on that once this framework is in place?


Commands clean-up [Do not merge]

Give me a few days to read through all the commands to see what can be "cleaned up"
Will rebase when done.

Also to be noted @Ecuacion the move command no longer works due to some main updates, I don't know the reason why but I tested this and it doesn't work.

The move just force the bot to make a decision (to bypass lag), It's just a developing command really useless (like checktour). Anyway i'll review it.
Also thanks for the fixes and improvements :). Tag me when this is ready.

Can be merged @Ecuacion i've been busy lately and I don't think i'll be able to update as much as planned

Closing this.

Command cleanup and reorganization done in e65d0727d46218a23364fc23829fcd72d49f25d4
Timed bans: using timeouts or intervals is dangerous, you must save the pointers and clear them on commands reloading. Also with a server restart, a timed ban is bypassed, because that implementation does not check user joining like autoban does.
Global permissions like dynamic commands: this.can is for room permissions. Dynamic commands management, bot teams, start laddering, joining other rooms, etc are global things.


[Content UX] Math equations can't be copy/pasted

Math equations can't be copy/pasted in the new textbook, but could be copy/pasted in the old textbook (see screenshots below). We should re-introduce this feature before officially replacing the old version of the textbook.
Old textbook:

New textbook:

Duplicate of #428


⚠ Bofrost.at has degraded performance

In 583aa5a, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1077 ms

Resolved: Bofrost.at performance has improved in 8019869 after 1 hour, 2 minutes.


fix: long text input labels should have their overflow ellipsed

Closes https://github.com/carbon-design-system/carbon-addons-ics/issues/43
Currently, text input labels wrap to a second line if they are too long, which looks funky and mildly interferes with their usability.  With this, the labels are truncated at 100% width (of the text input itself):

Changelog
Changed

[TextInput] give labels overflow: ellipses styling

We might be able to turn this into a utility class, or mixin, similar to how Salesforce Lightning Design System handles this! I think it's important to make sure that, with this change, consumers need to make sure to add a title attribute in order for users to view the whole text string.

I also think it's important to make sure that, with this change, consumers need to make sure to add a title attribute in order for users to view the whole text string.

@joshblack hypothetically adding a title can be done by this component as well, but it would require measuring the label during componentDidMount/componentDidUpdate to determine if the text overflows its container.
Measuring components a lot is a non-negligible performance hit so that may not be the way we want to go. I just wanted to open this up to discussion mostly. Maybe I'll make a higher-order component just for measuring so if consumers decide that they're ok taking the performance hit they have an easy interface to accomplish what they want to do.

Totally understand @ZacharyStair! I was just referring to the general truncation patterns versus this specific use-case.


Few selected activity feeds shall call out for user's attention with some UI tweaks

@darth-coder00 can you add more details here

UI to add pinned feeds for new users with easy access to Take a Tour flow and What's New modal


Remove tests for shared code

The following pass without any code, which means its not our functionality:
https://github.com/cloudfoundry/node-engine-cnb/blob/aedb5187709354e0f50801d020f2bc3283a7c61e/node/node_test.go#L86
https://github.com/cloudfoundry/node-engine-cnb/blob/master/node/node_test.go#L133

which one of these test do you mean the one on 86 or 133? It seems like these tests let us do some validation that the buildpack's priorities map is correct. But these might be tests we can move to a better place.


Add scale factor to LWP obs to convert to g m-2.

Adds an obs scale factor to the TGCLDLWP variable to ensure that both the model and the observations are in units of g m-2.
Credit goes to @bstephens82 for finding and reporting the bug!

Thanks @nusbaume for creating this PR.  Just wanted to add the same change should probably be applied to TGCLDIWP as it has the same problem.

@bstephens82 Good catch!  The scale factor has now been added to TGCLDIWP as well.


Getting error loading file or assembly using latest FluentEmail 2.5.1

Hello,
I have the following packages installed:
  <package id="FluentEmail.Core" version="2.5.1" targetFramework="net472" />
  <package id="FluentEmail.Razor" version="2.5.1" targetFramework="net472" />
  <package id="FluentEmail.Smtp" version="2.5.2" targetFramework="net472" />

RazorLight is version alpha-3:
<package id="RazorLight" version="2.0.0-alpha3" targetFramework="net472" />

When trying to send an e-mail with a template like this one:
public async Task SendEmail()
{
    var template = "Dear @Model.Name, You are totally @Model.Compliment.";

    email.To(configuration["emailTo"])
        .Subject("Test e-mail")
        //.Body("Test");
        .UsingTemplate(template, new { Name = "Leniel Maccaferri", Compliment = "Awesome" });

    await email.SendAsync();
}

it fails with:

Well... I just took a look at the project's bin folder and System.Runtime is not there even though It has Copy Local = true...
What could be the problem?

This should be fixed by Razorlight's 2.0.0-beta1. I've pushed version FluentEmail.Razor 2.5.2 to include it. Can you please try that and let me know if it solves the problem?

Hi Ben,
Just installed the new NuGet package... this time the installation went well. However, when running the code I get an exception related to RazorLight:
"   at RazorLight.Compilation.DefaultMetadataReferenceManager.Resolve(DependencyContext dependencyContext)\r\n   at RazorLight.Compilation.DefaultMetadataReferenceManager.Resolve(Assembly assembly)\r\n   at RazorLight.Compilation.RoslynCompilationService.EnsureOptions()\r\n   at RazorLight.Compilation.RoslynCompilationService.get_ParseOptions()\r\n   at RazorLight.Compilation.RoslynCompilationService.CreateSyntaxTree(SourceText sourceText)\r\n   at RazorLight.Compilation.RoslynCompilationService.CreateCompilation(String compilationContent, String assemblyName)\r\n   at RazorLight.Compilation.RoslynCompilationService.CompileAndEmit(IGeneratedRazorTemplate razorTemplate)\r\n   at RazorLight.Compilation.RoslynCompilationService.CompileAsync(IGeneratedRazorTemplate razorTemplate)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at RazorLight.Compilation.TemplateFactoryProvider.<CompileAsync>d__10.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at RazorLight.Compilation.TemplateFactoryProvider.<CreateFactoryAsync>d__8.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at RazorLight.RazorLightEngine.<CompileTemplateAsync>d__14.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at RazorLight.RazorLightEngine.<CompileRenderAsync>d__11.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at FluentEmail.Razor.RazorRenderer.<ParseAsync>d__0`1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at FluentEmail.Razor.RazorRenderer.FluentEmail.Core.Interfaces.ITemplateRenderer.Parse[T](String template, T model, Boolean isHtml)\r\n   at FluentEmail.Core.Email.UsingTemplate[T](String template, T model, Boolean isHtml)\r\n   at MyCompany.MyProject.Mailer.<SendEmail>d__4.MoveNext() in C:\\MyCompany\\Projects\\MyCompany.MyProject\\Mailer.cs:line 27\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()\r\n   at MyCompany.MyProject.PiDailyMail.<Run>d__3.MoveNext() in C:\\MyCompany\\Projects\\MyCompany.MyProject\\PiDailyMail.cs:line 27\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()\r\n   at MyCompany.MyProject.Program.<Main>d__1.MoveNext() in C:\\MyCompany\\Projects\\MyCompany.MyProject\\Program.cs:line 33

@leniel I have the same issue. This bug was also noted on the RazorLight tracker; it was Closed pending a fix in the next release.

Has any temporary solution?

Fixed by #186


Add SQL Workbench/J

Thank you for the contribution. It will be merged in a different pull request due to some simple recommended alterations. Your contribution is still included (and still credited to you), with the appropriate modifications, when applicable.
Changes:

Changed quote style. We reserve double quotes for cases that require string interpolation; all other cases should use single quotes.
Changed name and header, according to the token reference.
Added java caveat.

Thanks! I'll try and do a better job of reading through the contributor's documentation next time!


Color Theme

It would be good to have the ability to change the theme within Fermentrack to a dark style over the full white background.

I'm really hesitant to add support for something like this because of #248, which would replace the UI entirely. I'm not a huge fan of the Flat UI theme that I used for Fermentrack, but I'm also not the best UI designer and so I've stuck with it until now. Help wanted on this one!


Add benchmarks

If you don't mind rebasing, this is great to merge!

Should be rebased now!

Nice!