How can I style my chartist chart?

Hi there,
not sure if this is the right place for this question?! I've added a very basic chart to my Ionic 2 app but have difficulties to apply a style to the chart. At the moment the line and the area below is just black. I would have expected a line representation according to the "standard" chartist SCSS definition. What would I need to do to change that behaviour?  The chart sits inside an ion-card container but placing it into different UI objects didn't really change anything. Sorry for the rather broad type of question.....
This is how it looks in the emulator & a real device:

Main.ts
import { Component, ChangeDetectorRef } from '@angular/core';
import { NavController, NavParams, } from 'ionic-angular';
import { BleComms } from '../+shared/blecomms';
import { scan } from '../+scan/scan';
import { BLE } from 'ionic-native';
import { ChartistComponent, ChartType} from 'angular2-chartist';

@Component({
templateUrl: 'build/+main/main.html',
directives: [ChartistComponent]
})

export class main {

  private nav:NavController = null;
  private navParams:NavParams = null;
  private state: any = 'idle';
  private reflowTemp: any = '-- °C';  //Reflow data variables
  private reflowState: any = '--';
  private reflowTime: any = '-- sec';
  private reflowPID: any = '-- %';
  private data:any;                   //Chartist chart variables
  private options:any;
  private responsiveOptions:any;
  private type:ChartType;

  static get parameters() {
    return [[NavParams],[NavController],[ChangeDetectorRef],[BleComms]];
  }

  constructor(navParams, nav, private cd:ChangeDetectorRef, public blecomms:BleComms) {
    this.nav = nav;
    this.navParams = navParams;

    this.blecomms.app_state$
          .subscribe(state => {
            this.state = state;
            this.cd.detectChanges();
            console.log('State: ' + state);
            if (state == 'disConnected'){
              this.setReflowVars();
            }
          })

    this.blecomms.ble_notify$
          .subscribe(data => {
            this.reflowTemp = data;
            this.cd.detectChanges();
            console.log("Temp: " + this.reflowTemp);
          });

    this.type = 'Line'; //chartist Dummy
    this.data = {
      "labels": [
        "0",
        "30",
        "60",
        "90",
        "120",
        "150",
        "180",
        "210",
        "240",
        "270",
        "300",

      ],
      "series": [
        [22, 70, 110, 150, 165, 170 ,185, 210, 200, 180 ,160]
      ]
    }
    this.options = {
      width: 300,
      height: 200,
      //fullwidth:true,
      high:220,
      low: 10,
      //scaleMinSpace: 2,
      //onlyInteger: false
    };
  }

  scan() {
    this.nav.push(scan);
  }

  disconnect() {
    this.blecomms.disconnect()
  }

  setReflowVars() {
    this.reflowTemp = '-- °C';
    this.reflowState = '--';
    this.reflowTime = '-- sec';
    this.reflowPID =  '-- %';
  }
}

main.html
<ion-header>
  <ion-navbar>
    <ion-title>
      Hotplate
    </ion-title>
    <ion-buttons end>
      <button *ngIf="state=='disConnected' || state=='idle' || state=='stoppedScanning'" outline (click) = "scan()">
        <ion-icon name='bluetooth' is-active="false"> </ion-icon>
        Scan
      </button>
      <button *ngIf="state=='isConnected'" outline (click) = "disconnect()">
        <ion-icon name='bluetooth' is active="false"> </ion-icon>
        Disconnect
      </button>
    </ion-buttons>
  </ion-navbar>
</ion-header>

<ion-content>
  <ion-card>
      <ion-card-header>
        Control
      </ion-card-header>
    <ion-card-content>

  Status: {{state}}

  Profile: {{profile}}

      <ion-grid>
        <ion-row>
          <ion-col width-33 align="left">
            <button  ion-button color="secondary" outline (click)="start()">
              Start
            </button>
          </ion-col>
          <ion-col width-33 align="center">
            <button  ion-button color="danger" outline (click)="stop()">
              Stop
            </button>
          </ion-col>
          <ion-col width-33 align="right">
            <button  ion-button color="default" outline (click)="profile()">
              Profile
            </button>
          </ion-col>
        </ion-row>
      </ion-grid>
    </ion-card-content>
  </ion-card>

  <ion-card>
    <ion-card-content>
      <x-chartist
        [data]="data"
        [type]="type"
        [options]="options">
      </x-chartist>
    </ion-card-content>
  </ion-card>

  <ion-card>
    <ion-card-content>

Temp:  {{reflowTemp}}

State: {{reflowState}}

Time:  {{reflowTime}}

PID:   {{reflowPID}}

    </ion-card-content>
  </ion-card>
</ion-content>

Ok, so I didn't not import the chartist.scss into the ionic 2 app. That's why everything was just black. After adding @import "../../node_modules/chartist/dist/scss/chartist.scss"to the app.core.scss file I have a pretty presentation of the chart. I think everything from here is just understanding how to manage external scss definition the Ionic way.

Glad to see you solved it.


Sigchain specified that KID XXX is a PGP key with hash YYY but no version of the key with that hash was found (error 901)

Hey All,
I am trying to login to keybase on the Linux command line:
> keybase login
How would you like to sign this install of Keybase?

(1) Use an existing device
(2) Use a paper key
(3) Use my Keybase passphrase
(4) Use GPG
Choose a signing option: 4
In order to authorize this installation, keybase needs to sign this installation
with your GPG secret key.

You have two options.

(1) Keybase can use GPG commands to sign the installation.

(2) Keybase can export your secret key from GPG and save it to keybase's local encrypted
    keyring. This way, it can be used in 'keybase pgp sign' and 'keybase pgp decrypt'
    going forward.
Which do you prefer?: 1
#    Algo   Key Id             Created      UserId
=    ====   ======             =======      ======
<shows keys>
Choose a key: 3

but I get an error...
▶ ERROR Sigchain specified that KID XXX is a PGP key with hash YYY but no version of the key with that hash was found (error 901)

I have tried this on a couple of machines and I can't seem to get it working.  The public key I used is listed in the "Which do you prefer" list and I select the public key I loaded up on Keybase.
It is likely something silly I am not understanding.

That doesn't sound like your fault! I'm looking at your sigchain now.

I can repro that locally with
$ keybase id brechmos
▶ ERROR Sigchain specified that KID 0101aa2c3de70d70c2a5456d936f7304a65869528850717447eb833d9d46dcf26f860a is a PGP key with hash e865a9ea7270422664723dd47aa92d23b906431a4bc425154875882a2f1dee3a but no version of the key with that hash was found (error 901)

Ok, found the problem. It's our mistake, but it's triggered by some very interesting whitespace that you had in the first PGP public key you uploaded :)
I need to make sure the fix isn't going to break anyone else; I'll keep you posted.

Ok.  Tell me when I can try again.
Thanks.

@brechmos what version of Keybase are you using right now?

@oconnor663 @brechmos - I've just started seeing the same issue after I uploaded a second GPG key to my account. I now can't seem to do anything using the keybase client - I get the same sigchain error as mentioned above.
I'm currently on 1.0.10 on Ubuntu 14.04.

My plan is to make a release today. We've been fixing a ton of bugs since last week's announcement.

@jamgregory it looks like your bug is different I'm afraid. I'm looking into it.

$ keybase --version
keybase version 1.0.10-0

@oconnor663 - ah OK. Let me know if there's anything you need from me :)

@oconnor663 - did you manage to get any further with looking into this? No worries if not :+1:

@maxtaco is landing a bunch of PGP fixes today -- let me get back to you after we see what that changes.

@oconnor663 - OK cool, thanks!

@jamgregory looks like we still have a problem. I'm seeing Error in reverse signature: Failed to verify/extract sig: Message wasn't signed. @maxtaco when I look at libkb/sig.go, line 115, it seems like ps.MD.IsSigned is true but ps.MD.SignedBy is nil. I think this is the reverse sig in question, extracted from jamgregory's link seqno 17 where the error is happening:
-----BEGIN PGP MESSAGE-----
Comment: https://keybase.io/download
Version: Keybase Go 1.0.10 (linux)

xA0DAAoBhImV5JlIWs4By+F0AOIAAAAA6XsiYm9keSI6eyJrZXkiOnsiZWxkZXN0
X2tpZCI6IjAxMjBhNzA2YzQ4ZDdjZmFkMzk3MDE4ZjJmZjRjOTUzZmY1Y2YxMWZk
YzgwOTY4Zjc2MTRmOWE5MzEwYWNiZTdmMTk5MGEiLCJob3N0Ijoia2V5YmFzZS5p
byIsImtpZCI6IjAxMjAzMDU2NjUyZTgxNzBhYzM4YWY3MjkzYWRjOTEyZWM0NjA3
MjU2OTQyMTk0NzljMTQ5ZDVmZGQ1OTg4ODZlY2IyMGEiLCJ1aWQiOiJlODc2N2Ux
OWEzZWQ5YzczNTA4NDdiN2IwNDBkZTMxOSIsInVzZXJuYW1lIjoiamFtZ3JlZ29y
eSJ9LCJzaWJrZXkiOnsiZmluZ2VycHJpbnQiOiIxZTc3NzJiYTg5ZjY5OTkxY2Q0
YmZhNDliYjM1ODQ5MTM0MTUxOGU2IiwiZnVsbF9oYXNoIjoiMGJkNWE2MDUyZTQ5
NGRjNzI0NTFhOWY5MTIwOWVkMDgxMGQ2YjdjNTUzYTk2ZDNjNjQzZTIyMjBlMzkw
YzZmYyIsImtleV9pZCI6IkJCMzU4NDkxMzQxNTE4RTYiLCJraWQiOiIwMTAxYTdk
NzU4NjU2NDYyNmIxODBmMjRhOTExNmY1NmE4ZmY1ZTg5OGQ3MDAzNTVkYzdkMmY5
OTA2MjJlYWZl6DdiZGEwYSIsInJldmVyc2Vfc2lnIjpudWxsfSwidHlwZSI6InNp
YmtleSIsInZlcnNpb24iOjF9LCJjbGllbnQiOnsibmFtZSI6ImtleWJhc2UuaW8g
Z28gY2xpZW50IiwidmVyc2lvbiI6IjEuMC4xMCJ9LCJjdGltZSI6MTQ1NTAyODA4
OCwiZXhwaXJlX2luIjo1MDQ1NzYwMDAsIm1lcmtsZV9yb290Ijp7ImN0aW1lIjox
NDU1MDI4MDE1LCJoYXNoIjoiZTZhY2FiYjM2MTU0MDQyNjJkZTliZDQxY2JkZmJi
ZjUzYzdjMjE3Y2NlZjNkYTA3NzYwY2IwODHnYzkwMGVkMTViMGJhZGMwNTk2Y2Qz
OWExMTBiYWZkNmY0ZjQ5NjBiMzIwZTlkMGNmOWJmZDEzY2ZhODg3NzdkYzY4NDYx
ZTAwIiwic2Vxbm8iOjM3ODcyMn0sInByZXYiOiJiNmI2ZjhlMjVmMjc5ZjcwZDJi
N2NjYzBlYjA0ZTDmYThlZWMwMzllYTY2ZjFlYTA0ZjM3ZDVhNmE4ZDNhNzM0OSIs
InNlcW5vIjoxNywidGFnIjoic2lnbmF0dXJlIuB9AMLBXAQAAQoAEAUCVrn3eAkQ
hImV5JlIWs4AAEcWEAB6XtwqSPHkLS6ezvPU3g/ef6PG4dLsgVNbt9Zef0RV3Ptp
DFHsczO/nJgMqpvCnD4G6rsTmH4uBpv1ta7R38P29wLYHBhYXAacoaKcWYLvT/H+
y0LEos3JO0levPG+iU/35mhPyj5SwKNH9y3goCL++CGZ4eQtiOwM6EQCFW9S/qgw
DhkFAHTeJxEKXza7RWjSLyAmcHVntd+5s0jY2ViizqE8Td/SdMYWnc6T/RSaxr3C
10e8BAcxc8N6fEyWisrcuI60nFTKbk79piPE/3f8nwD9SJnwpRn+Xrxz+epJDplI
IT3Zc7guiZtTmhtclzhx53Il8K9k3TK0gRA8r8sdywJHjsDYQP0G/5mZTnrgN71o
bc10lvg24guUx7Vs7506GryojLt8gSnG8ejAgJJc5C8NP+VUs6pLgKJUX6hBghXV
mvepetKrG5HsZ6aq8T8fcRW8J9vkz8oPbw85DTRb3SrotNxV4xAz5aU0xY8vIObG
FfoC6S7IvzD6JdiqlYg0m+weBW3E/7N/nt8JAw4yP8mGnJuPScwWOslHoTOfTxpq
huz7B3zBOjEQJUEswsJ/wQyj9wrlteGueCoafmf12NJmdoZFL3Q9egpMU6Pxb8z7
pCdWj21Xhdw6Cn+KRbufAgSDIwTF8oPukfZVcXpEO4o3kBkurwZjfPj0YnbmAw==
=CgpH
-----END PGP MESSAGE-----

Seems to verify ok with gpg, but that's probably no surprise at this point. Let's look at it tomorrow?

Ugg, this bug feels like 5 bugs ago. Oy.

Here's the deal.  Here's the full PGP key that got signed into @jamgregory's sigchain:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: Keybase Go 1.0.10 (linux)
Comment: https://keybase.io/download

xsBNBE42b3sBCADXNH+ggBelwPVK++0YoMqwgd68ei92KXaeBmDJLSAXsOKtUn3N
3mW8+P95e4YCVzP7jr+Ua0JxF6KzJE4cnHTaDKv4PPJfEqDIa54SgfnKlxD58VRD
aUoC5XAVHIkYx7coThZvjacpIEPXfEuSO1PTFCzSK5xMhtns+jkV8fkfaguro4ZA
QqioX6pYnd09DVYrRUQjP+qKzSh+suaOe2E0bMen/JY99iPeuY0NBKxsETLXQwMR
1bDxnGed9yR1YZsi8+vjiHZ9py9i+ezqV4lUB6ec3y74nj5OPxgYkJ7z5dIIs+op
5l6i9VlRsEkFOiR3l9SEGYJTCn/kgApffP7XABEBAAHNKkphbWVzIEdyZWdvcnkg
PGouZ3JlZ29yeUBlcGlnZW5lc3lzLmNvLnVrPsLAeAQTAQIALAUCVrnuBwkQuzWE
kTQVGOYCGwMFCQowhYUGCwkIBwMCBhUIAgkKCwQWAgMBAADyrQgAFCHrykIGpuwZ
kppab80AzFwGlVfjkeoMzsvwwzmSIgpHdnRhEgvaE9rIrskYAehTJpFs+BPmmW7K
2sDH/gW+toZCTVMJKGmGv6YoIROWW72AkwzduNIQRwYZig/jn+4bmLu/vzsMKnvk
fmqYr1ZItFEGD28J061/Ps+C0VLB4vnQJD81d3fpPgq1jdKBY9ZxPL2USzn2uixs
Pi7BzqbYjI/SabhddIgHqxDFqjy1VVVmo5RVUzr27y77h/AbRs+pnigSnuj/6QOz
7bRR7vWXMEC5k2o5WaLm0IZop15jOVEBvHU4emEoWA2A2ZLOmj0UDJryJvEVI0Iy
zmFA+v1eUs7ATQRONm97AQgA5tvYHSsVKJ/uvU2eLGze2aQcRVXk2L3F82mlHC/T
3YCTF8YWYfhLZHNNAF/2fkok0s7/tCvw6O6o6lfClxfX//ckrCCOQA2HBMfg7TTi
+Uf7qQOvobNw5jry2Ew2+QIr9KTpnw4k4aPnIYOpKU5JD/n0rcZ53xShU0NXgMo2
V+gjwM+ykgPBZ5nohEyRaRIzV8kxasRzPpS/MItg6GIjyJ3Kj779SL3M5ZNkYYYg
vSdHirCYXzkfTFic1CkDnlOTew9kHAQM+2NT5tmptfiCsBC+v9wQS58RkTFR/jv/
qVEKQSuD7GjFTDHODnot+UeBIpO/IwQTlhJYqXasz8KYgwARAQABwsBlBBgBAgAZ
BQJWue8zCRC7NYSRNBUY5gIbDAUJCjCFhQAAeSgIAFS2fLeY2oL2akVRAbXIYXGu
8CaGhQJAtRLyL/s6SXbEwMxGL41t+2scjQ0kDAziJ/mjurw/ID6FX82rHoZQuu+M
PrBzXSJ6x61C0TWPYG3N83oMIcjnMWhLWQZIIs4CUbAK5cYuHY582yfDNddxiRwK
3u5svqmYp/d8jun0Y4+SGX0/BYKYlyOEFSLu1HrpHKMFcEXeVSNt6qjOytPzBigo
zMEFx+Z4a7xWnyBemGp9yHbfZc7JElQx/BY+2xDKIvMIH0I4+1igaruLdWKv7PZC
Jm4sGCh5Q0VOPrEtz2ICudFeVWOgwEavKM/xxhd18PyYK6bfFOz8UXRWZlTGGCLO
wU0EVrntlQEQAKjExQ+UPtRcaKNlr4+Jumd1PMPKNXHRJidcPGFYB3eBuAjyfp3N
b7ejhlG9VA2A3AOxd0ON7Y6ZJJepI/PotK96JkCpy0/8D9EfsueTNwvLjuTxNmEv
NTcerzL2MquwU2XJRttpoacsGak0vBh627hV0bbXzoPq9ajQ0COeN3quov947efW
NGmNAllU34qkonQqKf7HrfKBUBwdIIZRjMLGJn5CSa5YAZBSW3ra4xKN2MA/lauF
tswBUwCqNKLtGChZnFEzxlBzYIPCSUkZxXgAxahdfN7xW5Nr3gr9noqdz8Oo6E29
XZtXpHkZzcQJSm5DZ/wGJIl1LVJxSCz8jbJT3AKykk169VelQ4CrQp2aZyf3sHGt
LNdSkpszRvD4eg4FANcM6XDrs+wFEpQuEG7k788uLTWgdXHX+Z5t1ERVVu+qp5YR
3ZaLp+ALpBV+5ogLtSsY1aEPMoYOngjCC8EdxnaYjbMM84vJhAwBe8Rm5VolPuIG
rcREQiEy3PrLRy4/XwBtxmZvZJ0+9AVSoUUfHKq4o+RblN4ju4VnBtUtCWOXO70u
FXMEBvFVUqDyHEDM+0y9ZfqJLAz8wuL/0lUGit8liJyw1IOCR/DTUu5n1ir7mwoR
svSWC1PAWcbjRXJIvFXIL14nmTZQ+tfZA7FMPJ7uoUt+iznXXPcZ+byzABEBAAHC
wGUEGAECABkFAla57ZUJELs1hJE0FRjmAhsCBQkBrQdrAABMOAgAdGxAIYqTBe0V
Bi29d45I1mA4TT+iPNs0ng2xfz68+rxEZS8f/88HTb4DGhcroh1bhdcSBMAW75Dm
21Qjl8m8fesLy6XqfFQPEMGb4U75gPYfPGwFjxDJpSIBYreJi22RS/E4BJD8CQ4x
25+1NFz1LAh8NhOlRKcRK7KNwfSlY/c5TdbAaYhDUCS8Nm0HSXYJWS9xEdtOHqej
ItA3bufPwljTAdrzgw/1wuXj5EJW+ulTq4Nn6aIBWkIYqgGVEbxOobapgOUVDNTG
hwvwcWZZiLHNIUAqv6iXoYCLc+nlU1lK3yS31Q8gPoTHPcjOJHIJghekjy48X63s
A3xZBG+uIA==
=bNAB
-----END PGP PUBLIC KEY BLOCK-----

It's a broken PGP key that was imported before I fixed the cross-sig bug that we went over this morning. Here's what GPG has to say about it:
:public key packet:
	version 4, algo 1, created<PHONE_NUMBER>, expires 0
	pkey[0]: [2048 bits]
	pkey[1]: [17 bits]
	keyid: BB358491341518E6
:user ID packet: "James Gregory<EMAIL_ADDRESS>:signature packet: algo 1, keyid BB358491341518E6
	version 4, created<PHONE_NUMBER>, md5len 0, sigclass 0x13
	digest algo 2, begin of digest f2 ad
	hashed subpkt 2 len 4 (sig created 2016-02-09)
	hashed subpkt 16 len 8 (issuer key ID BB358491341518E6)
	hashed subpkt 27 len 1 (key flags: 03)
	hashed subpkt 9 len 4 (key expires after 5y153d14h41m)
	hashed subpkt 11 len 5 (pref-sym-algos: 9 8 7 3 2)
	hashed subpkt 21 len 5 (pref-hash-algos: 8 2 9 10 11)
	hashed subpkt 22 len 3 (pref-zip-algos: 2 3 1)
	data: [2045 bits]
:public sub key packet:
	version 4, algo 1, created<PHONE_NUMBER>, expires 0
	pkey[0]: [2048 bits]
	pkey[1]: [17 bits]
	keyid: 24474984B25279A8
:signature packet: algo 1, keyid BB358491341518E6
	version 4, created<PHONE_NUMBER>, md5len 0, sigclass 0x18
	digest algo 2, begin of digest 79 28
	hashed subpkt 2 len 4 (sig created 2016-02-09)
	hashed subpkt 16 len 8 (issuer key ID BB358491341518E6)
	hashed subpkt 27 len 1 (key flags: 0C)
	hashed subpkt 9 len 4 (key expires after 5y153d14h41m)
	data: [2047 bits]
:public sub key packet:
	version 4, algo 1, created<PHONE_NUMBER>, expires 0
	pkey[0]: [4096 bits]
	pkey[1]: [17 bits]
	keyid: 848995E499485ACE
:signature packet: algo 1, keyid BB358491341518E6
	version 4, created<PHONE_NUMBER>, md5len 0, sigclass 0x18
	digest algo 2, begin of digest 4c 38
	hashed subpkt 2 len 4 (sig created 2016-02-09)
	hashed subpkt 16 len 8 (issuer key ID BB358491341518E6)
	hashed subpkt 27 len 1 (key flags: 02)
	hashed subpkt 9 len 4 (key expires after 325d10h14m)
	data: [2047 bits]

So we're missing the cross sigs.  Which is why this key fails to verify, since we're not allowing the signing subkey to be imported.
Possible remediations: allow non-cross-signed subkeys for the purposes of signature replays?

@maxtaco - trust me to break everything haha! I'm happy to go with whichever option is best for Keybase. If you want to clear it out, I can re-sign it back in?

@jamgregory we need to test a few things to figure out the best way to fix your case. Sorry for the wait here -- but thanks for finding this nightmarish corner case :)

@jamgregory I'm having trouble repro'ing your error, though I'd like to, so I can test we've officially squashed your issue.  Can you tell me which command you used to add a second key? Thanks!

@maxtaco - I did it on my work machine (and I'm on leave for a few days now), but pretty sure I did it using keybase pgp import --infile {file} --push-secret

super helpful! thanks!!!
On Thu, Feb 11, 2016 at 2:16 PM, James Gregory<EMAIL_ADDRESS>wrote:

@maxtaco https://github.com/maxtaco - I did it on my work machine (and
I'm on leave for a few days now), but pretty sure I did it using keybase
pgp import --infile {file} --push-secret
—
Reply to this email directly or view it on GitHub
https://github.com/keybase/client/issues/1908#issuecomment-183016424.

@maxtaco - no worries :+1:

Along the same lines, if you want to clear out my account I can re-upload as well. (Same comment, whatever is best for you guys)

@brechmos your account should now work in v1.0.11, let us know if not

Looks good. I seem to be able to login now.  Thanks  (Side question, does the Linux v1.0.11 include the filesystem, I would love to try that)

@jamgregory, thank you for your patience and help.  The good news is that future jamgregories won't be able to get into this jam, and for two reasons: (1) we fixed the bad OpenPGP code that wrote your public key out minus all required signatures; and (2) we fixed the server code that accepted this bum key.
The bad news is none of this helps you, especially since, by Keybase design, the bad part of your sigchain (see link 17) is frozen in the public eye, for all eternity.
We could add you to the list of known bad sigchain links or you could reset your account.  I tested both options, they'll both fix your broken state. The former will only allow other people to id/track you once they've upgraded to new keybase...  Let me know, and thanks!
Sorry that you ran into these issues, and thanks for helping us make Keybase better!

@maxtaco - thanks for looking into this and sorting out the issue :+1:
Let's go with adding the link to the bad sigchain. At least it'll get folk to upgrade their Keybase version if nothing else!
Glad I could help find this out - that's the whole point of alpha phases anyway, isn't it? :-)

@maxtaco - any news on when this update will be rolled out into the official client? I compiled the client from source yesterday (the branch that contained the fix for my invalid sig) and that seemed to work fine.

Sorry, we dropped the ball.  PR has been updated, and should be merged shortly

(waiting for C/I to complete)

Not a problem - with it being so close to the weekend, I figured it might have been overlooked :)

@gabriel suggests that you can run brew install --HEAD keybase if you want, now that the fix is in master.

Thanks @oconnor663. I'm actually using it on Linux, so will have to wait until officially released (I can always compile from source if I'm desperate!)

@maxtaco @oconnor663 - good news, just got 1.0.13 - which judging by the changelog, contains the fix for my account. Good news everyone, the client looks to be working fine now :+1:
Unfortunately, my secondary PGP key now appears to be in a broken state. Not sure if I should open a separate ticket for this or not, but my profile (https://keybase.io/jamgregory) says I need to sign the second key. Whichever option I try, I cannot sign it - curl, for example, says:
Code: 908
Name: KEY_NEED_REVOKE
Description: You need to delete your active key before uploading a new one

I reset the DB for you, give it a try now?

Cheers @maxtaco, looks like it's all OK now :+1:


Multiple of Three

Is your feature request related to a problem? Please describe.
Consider a very long K-digit number N with digits d0, d1, ..., dK-1 (in decimal notation; d0 is the most significant and dK-1 the least significant digit). This number is so large that we can't give it to you on the input explicitly; instead, you are only given its starting digits and a way to construct the remainder of the number.
Specifically, you are given d0 and d1; for each i ≥ 2, di is the sum of all preceding (more significant) digits, modulo 10 — more formally, the following formula must hold:
                           **di = (summation(from j = 0 to i - 1) dj) % 10        here, 2 <= i < k**

Determine if N is a multiple of 3.
CONSTRAINTS

1 ≤ T ≤ 1000
2 ≤ K ≤ 1012
1 ≤ d0 ≤ 9
0 ≤ d1 ≤ 9

Describe the solution you'd like
The main Algorithm should be of time complexity O(1).
Do you want to work on it
I would like to work with C++ language to solve this problem.

Please assign this issue to me. I am a participant of GSSOC'21 and I really want to contribute to it. So I request mentors to assign this issue to me with a GSSOC label.
Thank you

Please assign this to me in Python


Compatibiliity with Cybersyn - Default Priority of stations

I've been working with cybersyn as alternative to LTN in factorio 2.0 in combination with these blueprints, and it gives warnings that wrong things could happen if the stations are not setup on priority 50 (which is the default in factorio). Is there a specific reason they're setup as priority 40 atm?
Pls change this to Default 50, as Cybersyn is a very cool and easy alternative to LTN in factorio 2.0
Another thing that is annoying is the default max number of trains is zero - any specific reason why?

I originally set up the station bodies with priorities matching their lengths indicating that those places providing greater output should be consumed first.  The headers, however, will override this if placed second (as you're supposed to do for Cybersyn headers) so ended up not accomplishing much.  The headers had a variety of priorities as I tested and forgot to reset them.
However, since there has always been only one release of the headers, there shouldn't have been any conflicting priorities to start with.


dual symbols on windows mobile

phone: Lumia 535
platform: WP10
browser: Microsoft Edge
testing page: http://robinherbots.github.io/jquery.inputmask/
i write 1234567 in input phone field and i get<PHONE_NUMBER>7
dont ignore it, please help

also, if we use inputmask in a project with webpack and uglyfy, and insert the plugin in a project with string require('./vendor/jquery.inputmask.bundle.min.js') — code does not open in windows edge. App dropped with error:
SCRIPT606: Failed to complete the action. Error 800a025e. main.js (14367,91)
its a translate from Russian:
SCRIPT606: Не удалось завершить действие. Ошибка 800a025e. main.js (14367,91)

Windows phone takes up about 2 percent of the mobile market.
Can we close the task? without performing

@AliveDD ,
Do you still have the problem with the current version on github?  Tried with browserstack without problems


Update logback-classic, logback-core to 1.4.7

About this PR
📦 Updates

ch.qos.logback:logback-classic
ch.qos.logback:logback-core

from 1.4.5 to 1.4.7
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "ch.qos.logback" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "ch.qos.logback" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #1044.


qa_crowbarsetup.sh: fix SLES12 / HAE local repo access

Setup of SLES12 and HAE repos was previously broken when using local repos
instead of clouddata.cloud.suse.de.

@aspiers can you define local repos? Is this SMT repos?
The patch is kind of correct for SMT repos, but this will likely break the use with clouddata.cloud.suse.de... (FWIW, I think clouddata should really just export what a SMT server is exporting, but that's not the case today)

@vuntz No, local repos on the mkcloud host synced via sync-repos.  It won't break with clouddata because NFS mounts use the second parameter of the add_mount call not the first one.

FWIW, I think clouddata should really just export what a SMT server is exporting, but that's not the case today

Agreed, @bmwiedemann are you listening ;-)

Ah, I hadn't realized the first argument is just for the bind mount. I guess it could work, but I don't use sync-repos, so not 100% sure it will export things that way.

@vuntz It does: that's how I coded it, and testing proves it works.  I just wanted a sanity check.

This still needs reviews, thanks ...

+1


Proposal: Add custom plugin loader

At Shopify we want to be able to dynamically load our own plugins for a very specific use case:

If you are running a global CLI in a folder with a package.json, and that package.json
has a dependency on something like @shopify/*, try to load that as a plugin.

That way plugins can be defined per project just as normal dependencies. (without adding an oclif entry in package.json)

We were doing this with oclif v2 by subclassing Config and overriding the loadCorePlugins(). You can see how here.
This is not possible in oclif v3 because loadCorePlugins no longer exists and everything is abstracted in the PluginLoader.
This PR is a simple proposal to expose a method that would let us load custom plugins that are not defined in our package.json (or anywhere).
Please let me know if this is a valid approach or you'd prefer to do this in a different way.

I did sign the CLA (if I try again it says i've already signed).
But I think I did the CLA with my @gmail address, while the commit has been signed with my shopify one :/

I did sign the CLA (if I try again it says i've already signed).
But I think I did the CLA with my gmail address, while the commit has been signed with my shopify one :/

Don't worry about it - it's a pretty finicky process.
As far as the PR goes, I like the idea but I'm wondering if there's a better solution. Your current changes call loadPluginsAndCommands after loading the custom plugins which is going to slow down your CLI since it will cause all the plugins to be loaded again.
So I'm wondering if being able to specify wildcards in the plugins list would work for you. For example
{
  "oclif": {
    "plugins": [
        "@oclif/plugin-plugins",
        "@shopify/*",
     ]
  }
}

Then PluginLoader will have method, loadWildCardPlugins that will match @shopify/* to any dependencies and load them, e.g.
  private async loadWildCardPlugins(opts: LoadOpts): Promise<void> {
    if (opts.rootPlugin.pjson.oclif.plugins) {
      const {dependencies, oclif} = opts.rootPlugin.pjson
      const wildCardPlugins = oclif.plugins?.filter((p) => p.includes('*')) ?? []
      const plugins = Object.keys(dependencies ?? {}).filter((p) =>
        // Just a working example that works for things like `@shopify/*` or `@oclif/plugin-*`
        // we'd want to use a library like minimatch to fully support wildcards
        wildCardPlugins.some((w) => p.startsWith(w.slice(0, -1))),
      )
      await this.loadPlugins(opts.rootPlugin.root, 'core', plugins)
    }
  }

If don't want to have to specify anything in oclif.plugins then we could have a option on Config that tells it to load the wildcard plugins. Something like this:
const config = new Config({ wildCardPlugins: ['@shopify/*'] })
await config.load()

Thoughts?

const config = new Config({ pluginAdditions: ['@shopify/*'] })
await config.load(

I like this idea!
But could we also pass a path for where to look for those plugins? our CLI has the --path flag that basically let's you run it from everywhere but point to that path. Like shopify app deploy --path /path/to/my/app
So we would like to be able to load any @shopify/* plugin installed at /path/to/my/app. Does that make sense?
That's why in this PR i'm passing the root: string argument.
We do that in our current implementation for v2 here and here we get the path value
Thanks for your support @mdonnalley 🙏


<EMAIL_ADDRESS>(latest) as published on NPM has an outdated typings/objection/index.d.ts which makes it incompatible with<EMAIL_ADDRESS>(latest)

PR #2307 fixed a problem with the TypeScript typings in September 2022. However, the<EMAIL_ADDRESS>package in my NPM install does not include this fix, and it is preventing me from building a TypeScript project that depends on objection.
You can see that the index.d.ts typings file on NPM does not match the typings file in this GitHub repository, and that it contains the issue that #2307 fixed: https://www.npmjs.com/package/objection?activeTab=code
Please publish a new version of the package which includes the up-to-date types!

Oh, I see that this is related to #2367 and that there was recently a 3.0.2 release. Though this is not very apparent on NPM, which still shows 3.0.1 as the latest version.
I was able to get my project building correctly by installing<EMAIL_ADDRESS>On this page you can see that there is a 3.0.2 release, but it is labeled as "next", and 3.0.1 is still labeled as "latest":
https://www.npmjs.com/package/objection?activeTab=versions

@kibertoad something seems to indeed have gone wrong a bit with the publishing: 3.0.2 has the next tag, while 3.0.1 still has the latest tag.

The next tag is the default in package.json. You need to explicitly set the latest tag after running npm publish ..

Not quite related, but there have been some good fixes put into the code base and could fix this issue along with doing another release.

3.0.3 is finally released and should fix this!


Update iot-hub-arduino-iot-devkit-az3166-get-started.md

Because this link 404s under certain conditions, it's not supported as direct link. It should be styled as inline code that users can copy and paste if they have VS Code installed:
vscode:extension/vsciot-vscode.azure-iot-tools

@meganbradley : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@wes777 @robinsh Could you review this PR?  Thanks.

#sign-off

thanks @meganbradley for your help. I have a few of these; I'll fix them as recommended.


Don't modify arguments to generate_presigned_post

This is motivated by a real-world example, where I did
my_conditions = <...>

generate_presigned_post(Bucket=.., key='foo', Conditions=my_conditions)
generate_presigned_post(Bucket=.., key='bar', Conditions=my_conditions)

and performing the second presigned post failed because my_conditions was
altered to include {'key': 'foo'} after the first call

Codecov Report

Merging #1699 into develop will decrease coverage by 0.69%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           develop    #1699     +/-   ##
==========================================
- Coverage    92.42%   91.72%   -0.7%
==========================================
  Files           53       53
  Lines         9871     9873      +2
==========================================
- Hits          9123     9056     -67
- Misses         748      817     +69

Impacted Files
Coverage Δ

botocore/signers.py
98.52% <100%> (+0.01%)
:arrow_up:

botocore/compat.py
68.5% <0%> (-25.42%)
:arrow_down:

botocore/awsrequest.py
92.13% <0%> (-6.23%)
:arrow_down:

botocore/handlers.py
96.66% <0%> (-0.45%)
:arrow_down:

botocore/hooks.py
95.98% <0%> (-0.41%)
:arrow_down:

botocore/utils.py
97.45% <0%> (-0.17%)
:arrow_down:

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 5ca606e...a90fb52. Read the comment docs.

Great to hear you got that fixed @swetashre :tada:


vkquake: fix the build

Motivation for this change
Apply a patch currently in master to make things build again.
Minor cleanups as a consequence of nixpkgs-fmt running as part of the save.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Cc: @gnidorah

@peterhoeg Thanks! I see a lot of my packages are failing to build since last nixos-unstable update


Add source locations, powered by #[track_caller]

Adds a (non-functional) additional class to the element when compiled with debug_assertions, i.e. in development mode.
Uses the #[track_caller] API to determined where a style was created and then "formats" that as a css class name. Addresses the underlying issue of #61 , adding debug possiblities to determine where a style is coming from.

@Madoshakalaka tell me what you think, maybe you have the time to try out this fork and check how useful it is in practice.

Looks good! This definitely works! I also agree with @futursolo that something like

 should be done in Yew

In addition, can we have a way to disable this / not making it default?


Improve the model editor UI

The model editor UI is unstyled now.  Get it into shape against the agreed design.

Is good enough to user test


Profile Settings not saving data

when i fill in the Biography for the default user it is not saving the data.

Can't point the error in the dev branch

In the dev branch i tried to reduplicate the issue. And i can save the boigraphy description.


Added new AIR Release Notes for <IP_ADDRESS>3

Thanks for pushing these news updates!
Might be good in the future to link the github issues to the repo if you have time?

Might be good in the future to link the github issues to the repo if you have time?
Definitely! I will do that next time - thanks!


refactor!: use time-based queued staking and reserve unharvested rewards #305

Description

Client Breaking Changes

(x/farming) #33 Rename existing Stakings endpoint to Position and add three new endpoints:

Stakings: /crescent/farming/v1beta1/stakings/{farmer}
QueuedStakings: /crescent/farming/v1beta1/queued_stakings/{farmer}
UnharvestedRewards: /crescent/farming/v1beta1/unharvested_reward/{farmer}

CLI Breaking Changes

(x/farming) #33 Rename existing stakings query to position and add three new queries:

stakings [farmer]
queued-stakings [farmer]
unharvested-rewards [farmer]

State Machine Breaking

(x/farming) #33 Time-based queued staking and new UnharvestedRewards struct

Changed/added kv-store keys:

QueuedStaking: 0x23 | EndTimeLen (1 byte) | sdk.FormatTimeBytes(EndTime) | StakingCoinDenomLen (1 byte) | StakingCoinDenom | FarmerAddr -> ProtocolBuffer(QueuedStaking)
QueuedStakingIndex: 0x24 | FarmerAddrLen (1 byte) | FarmerAddr | StakingCoinDenomLen (1 byte) | StakingCoinDenom | sdk.FormatTimeBytes(EndTime) -> nil
UnharvestedRewards: 0x34 | FarmerAddrLen (1 byte) | FarmerAddr | StakingCoinDenom -> ProtocolBuffer(UnharvestedRewards)

References

https://github.com/cosmosquad-labs/squad/pull/305

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Appropriate labels applied
[ ] Targeted PR against correct branch
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards.
[ ] Wrote unit and integration
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/)
[ ] Added relevant godoc comments.
[ ] Re-reviewed Files changed in the Github PR explorer
[ ] Review Codecov Report in the comment section below once CI passes

Description
The changes in this PR are about queued stakings to be handled in time-based(24 hours) manner, rather than epoch-based. Also, auto-withdrawn rewards due to changes of staked coin amount now accumulated in separate module account. Farmers have to manually claim their unharvested rewards using MsgHarvest. Note that unstaking whole staked coin results in withdrawal of all current rewards and unharvested rewards.
Background
Since ProcessQueuedCoins is being called at the end of epoch, when there are too many queued stakings it could impact the chain's performance. By handling queued staking at the moment it should be changed to staked, it mitigates the mentioned performance issue.
Also, automatic withdrawal of accrued rewards when there's a change in staking coin amount (by staking more or unstaking) could confuse many users. Our solution is to move rewards to a separate module account(UnharvestedRewardsReserveAcc) and make users to claim it through MsgHarvest. In this way, users can know how many rewards are still unharvested and claim rewards as they wish.
Note that when unstaking whole amount of coin for a specific denom, all previous unharvested rewards are automatically withdrawn for convenience.


Major frontend redesign

Redesign v1

Hi! I've been using SyncTube for two weeks or so and noticed that most of the design was ported from CyTube. Thought there were some ways to improve the UI to make the user experience more into something that people are accustomed to (things like Netflix Party or Twitch). Currently there's a live version here: <IP_ADDRESS>:4200 that will be up for a week or so. I have a more in depth explanation of some of the changes below and feel free to ask me any questions you have!
Almost a complete rewrite of the stylesheets
As I was going through the CSS there were a lot of things that were repeated from CyTube that weren't best practice. I tried to simplify things by mirroring the structure of the HTML behind it.
Make des.css primary stylesheet and remove CyTube, mobile view, and navbar styles
These were unnecessary due to the redesign, the idea is to have one stylesheet for the design and another for whatever custom CSS the user wants to use.
Remove mobile view, split, extend player, swap, video resize
Most of these video resizing features can be replicated by resizing the window. Mobile view is the equivalent of F11 for desktop users and didn't reflect the way users use video platforms (thinking YouTube/Twitch).
Though the one feature that could be useful was swap though this can be changed by a simple CSS declaration now as the UI is based on a grid. Or a simpler implementation could be sought out by, again, just changing the grid-area properties.
Remove chat timestamp
Copied from CyTube but it looks sooooooo much cleaner without it, wasn't really necessary either as the users are watching it in real time. Also every service I checked seemed to keep with a similar ethos (YouTube/Twitch again as well as Netflix Party).
Remove navbar
The redesign made this unnecessary, was able to move functionality into more fitting places.
Migrate from Glyphicons to Ionicons and change icons to more better reflect button functions
Moved away from Glyphicons in favor Ionicons. One of the big reasons was accessibility. Also changed some of the icons out to more accurately represent the function they performed.
Migrate from Play to Inter
More readable display font.
Change template url
While the current example video is visually really cool, the flashing back and forth carries the risk of causing seizures for users with epilepsy. I changed it to the first episode of this show here. Or if you want something more visually aesthetic I would suggest this video here.
Change common CSS properties to CSS variables
This was to make theming easier, all the user needs to do to change certain things now is just change the variable in their custom.css. I was also planning on making a light theme as an alternative to the current dark theme.
Add SimpleBar
Standardize the scrollbar across panels. Currently I was only able to get it in the main section (which was thankfully the only place it was needed) but want to try to also get it working in the messagebuffer and smileswrap sections as well.
Thank you for taking your time to read this and keep up the good work!

Hi @aus-tin, I would like to make a few suggestions since I'm CyTube user for almost 5 years.

Some elements distract from the video. Blue bright stripe of the active item and huge connection status. I watch videos mostly at night, so bright elements can blind eyes. Connection status isn't very helpful item, it would be nice to replace it with an icon to the right of online counter

Split, expand player and swap layout were helpful. Here's how I use my instance of SyncTube on laptop 1366x768:

I scroll down a bit to hide the top menu and expand the player so that there is minimal space for the chat (I prefer video over chat).
Sometimes I need to open telegram or any other app for few minutes:

I simply narrow down the player and continue to watch video.
With you layout I can see small part of the first item in playlist, I can't expand player even more, I can't narrow it down:

If I want to open telegram I see only left side of it and it's not what I want

You suggest to operate browser's window size, but I almost always use browser in full screen and don't like to keep one tab as separate window.

Timestamps sometimes usable. It would be nice to have settings with options: [Full date, HH:mm:ss, HH:mm, None]

Other elements in your design very nice. It looks cool! :+1:

Understood! Will work on implementing the features you listed back in.

Will make the connection status and current video indicator less jarring for low light situations.
Going to re-implement split.js and swap (though extend has essentially the same functionality as split.js so will hold back on this for now).
Will re-add the timestamps with a better format. HH:MM:SS has some problems layout wise but I will check what is commonplace for messaging apps and update with that!

Thank you so much for your feedback, knowing how SyncTube is actually used is super helpful! Will update soon!

Hi, thank you very much for contribution, really shocked to see something like this here.
Firstly, i agree with @aNNiMON points mostly, but i think expand player thing can be just as hotkey in such use case. But split and swap are useful features for me too. About other changes:

Remove mobile view, this is the equivalent of F11 for desktop users

Well, this is feature for mobile browsers site fullscreen for less distraction, i guess this can be removed. But mobile layout in your redesign requres changes.
Current mobile layout | With keyboard | Redesigned
So, between video and messagebuffer with input line should be minimal distance, all other buttons can be after or before this viewport. First option for this target is reversion of chat and video sections for mobile layout (if video is above of chat, then input focus will scroll page down).
But seems like your chat implementation doesn't have such problem, so alternative solution - leaving chat under video, but moving other things below or above, for example like this. We can also hide online / leader panel when soft keyboard opened to get more content space.
In short, my request is video, input and 1-2 messages in 9:16 screen ratio with opened keyboard on smartphones.

Remove navbar
The redesign made this unnecessary, was able to move functionality into more fitting places.

This is second thing that worries me. I feel like removing navbar makes it more difficult to add further features (aka geeky option buttons) to your design. Specifically:

There is only one context menu with all these settings
There will be "swap" again, you also want to add theme option, i'm thinking about adding language selection, etc. Navbar has some nice separation and stays in place outside of player controls for all of that rare-to-use stuff.
Login/logout is not something useful most of the time, and again, can be moved inside context menu, which size is problematic
In theory plugins api can be exposed to add menu items to some place

This is reasons why i think something like navbar is decent here. We can do not show it by default and make something like "^" button in place of login/logout to show/hide navbar above video. Another alternative i can think of is gear button somewhere with some modal and all that configuration inside.

Remove chat timestamp
We can also add this as title="18:42:12" in <class="username">` of messages for now and think about alternative / possible user option after.

And last thing is browser compatibility: .more button doesn't work for me in Firefox 77. Also would be nice to know minimal browsers support, i guess this would be better to see in readme after such frontend update. And again, thanks for your time and all the work you've done.

New example is here: http://<IP_ADDRESS>:4200/
Okay! So I amended the original commit with these updates:
Starting by answering @aNNiMON

Low light design. The active video indicator has been changed to a left accent border and the connection status has been changed to just the text being green. I eventually want to move it next to the online counter as you indicated though the element is connected to the message buffer so this will take a little more time.
Swap and split have been re-implemented. Since the new layout is based on a grid I opted for the  the more current successor of split.js, split-grid. Swap is also back under the options panel (where the more button was previously).
For the timestamp I ended up keeping the HH:MM:SS format in favor of the possibility of adding an option to change the format in the future. Moved it to the first line like you suggested.

Now going over some of the points in @RblSb's post.

Starting with mobile view, while it is a useful feature, allowing SyncTube to work like a progressive web app may be a more elegant option. Bandcamp is known do do this, try going to this link on your phone and add the page to your homescreen to see the differences. I also think this better suits SyncTube as a one channel web service using it more like an app.
As for chat, I like the idea of leaving chat under video, but would prefer to not move the html around. Maybe allowing the things in between to "collapse" would be a simpler solution (with a dropdown button for toggle) while using the native functionality of the "collapse" function.
Navbar! So the reason I removed this and mitigated the features was due to the structure of the html. Optimally navigation/nav headers should be reserved for actual navigation (a big part of this is for accessibility reasons, and since there is only one page it made sense to move the features elsewhere). LOVE the idea of a modal though. One problem CyTube has is how unwieldy its options have gotten with almost too much to change. So I think a single page modal would work well! Let me know what you think!
Also, more button is working now. The problem was with my CSS only implementation so I just opted for a simple script in Buttons.hx.

One more sidenote
Currently split-grid is being called in index.html instead of Split.hx and Buttons.hx I'm still working my way around the language and thought that no implementation was better than a messy one. Currently the splitInit() code is commented out, @RblSb since you have more experience with this would you be able to transfer the initiation script from index.html over? The documentation for split-grid is here if it helps!
Thank you and let me know it you have any more questions or suggestions!
Going to start working on the mobile version of chat next!

allowing SyncTube to work like a progressive web app may be a more elegant option

Interesting, but there is some problem: PWA requires https. Also, home screen icons is meh :)
About https, this will block all http raw media sources and also more problematic to run locally. Currently cannot even fix wss connection on heroku. Anyway, already found android browser with fullscreen feature and PWA support can be added someday, so FS-button on page is not needed.

Maybe allowing the things in between to "collapse" would be a simpler solution

Well, i think scrolling is little easier than showing/hiding controls and playlist for user, but some button next to the leader button can be fine too (don't know about some other place, because separated lines of collapsed content between chat and video still eats space that i want to keep). But in case of hide stuff button mobile gui can be less clear i think. With current layout moving two divs after chat are enough tho and it works nicely already.

LOVE the idea of a modal though

Ugh, i think this is actually not that good, because you still need to push modal button to some place and modal hides almost the entire screen while open. So i still really miss header / menubar. There is another two points for it:

This will move video nearer to vertical center on desktops and creates space for minor buttons like logout.
Not all urlbars on mobile browsers perfect as Chrome Mobile, so scrolling page down on mobiles to hide url bar will hide small part of video element too. So, instead of adding padding, why not add some menu? =)

Currently the splitInit() code is commented out

This is fine, can fix at merge stage. Looks cool.

@aus-tin wow, now it's perfect! Thanks! I'll try to switch to your branch in my synctube instance and test it a couple of days.

Well, after three hours of testing I have some suggestions:

Clear chat button next to the smiles button is a bad idea. Logout next to the Leader button isn't good too. These two (destructive) buttons are not often used, why not to move them to popup panel or something?  Like this:

Gear icon now switches between chat and settings panel. See it in a demo:
https://i.imgur.com/3RgrXMt.mp4
Look @RblSb, there is a place for your settings :tada:

On very long titles, controls are moved to a new line.  There are two options: limit the title to a single line with ellipsis, or just set grow/shrink for #currenttitle and .controls. Don't forget that playlist item duplicates this title, so we can easily truncate one of them (current or playlist entry).

My very first suggestion with placing connection icon next to online counter was bad. I have noticed that current implementation puts Connected status to the very beginning of the chat and Disconnected to the very end. This is convenient.

Custom scrollbar should be applied for chat too.

Good thoughts! Will apply changes soon, really like the idea of putting the settings in the chat since it gives it more room to breath + doesn't cover the screen. Is this design alright with you @RblSb, I can put the header back but I also think @aNNiMON's suggestions work well. Would love to hear your thoughts!

Yay, nice solution. Then i'm only concerned about mobile version. Do you ok with making player controls / playlist as separated components and move them around, or have some position options for show button?
Also, Leader at such center seems strange, i think aligning it to the right side before gear is little better?

Think I'm going to go with your method of simply moving the controls & playlist below the chat. While I'm not too keen on moving the html I also don't completely like my idea of hiding things. Going to try and find a flexbox implementation but if that doesn't work I'll just write a script for it.
Had the same thought about the leader button. Currently it will be aligned to the right next to the gear.

Redesign v3

Current example: http://<IP_ADDRESS>:4200/
Changes
Settings
Moved logout and clear chat to settings panel, settings panel is now located in the chat area. Added different sections for controls (currently chat label is showing because I'm assuming there's going to me more chat features than "clear chat"). Also, am planning on adding button toggles eventually but it can wait for now. Settings panel closes when logout/login and clear chat are clicked so user can see changes.
Currently playing
The currently playing title is now truncated on desktop while on mobile it creates a newline.
Scrollbar (not working)
I had tried this originally as well by wrapping the messagebuffer but couldn't get it to work without breaking the chat from adding new posts to the bottom. We could use ::-webkit-scrollbar { display: none; } to hide the scrollbar but this may just take some more time.
Chat (mobile)
Okay so for this I just reverted it back to the old layout with the chat on top and video on bottom. While I really like having the chat right under the video I think there may be some better ways to implement it. We can probably think this over some more before making a decision (maybe having chat be an overlay that can slide up from the bottom?)
Let me know if there's anything else!

@aus-tin just switched to a new v3 design, everything is fine!
I don't know how to stylize scrollbar on Chrome, but this works on Firefox:
#messagebuffer {
  scrollbar-color: var(--border) #111;
}

Example has been updated with fixes

Applied the changes to scrollbar but it seems that it only works for firefox currently so I also applied the ::webkit-scrollbar styles which, while have slightly wider support, have been depreciated by the W3C. These can both work as temporary fixes for now.

Fixed the horizontal scroll issue

Fixed incorrect title tags (this seemed to be persistent in the current version as well, thank you for noticing!)

@aus-tin , as a user, I am not particularly familiar with the original CyTube, but I really like your last redesign, thanks!

@aus-tin some other things you want to do? Also please do not force-push if you can, i can squash your commits anyway.

Understood, I think that's everything!


⚠ Bofrost.be has degraded performance

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

HTTP code: 200
Response time: 1367 ms

Resolved: Bofrost.be performance has improved in 085f7f0.


prepare push to firefox and chrome store

prepare the publication on the firefox store

Update
The extension code have been updated to match firefox's guidelines and warnings
Some of the warnings come from third party librairies in the code and Firefox's Third Party Libraries usage Guidelines specifies that an extension must contain the full version of it's third-party librairies.

Update 2

Replace Ubuntu font by Roboto to standadize the extension for Microsoft windows
Ultra light sources package < 1MB
All librairies used are now accessible has stable dist files on the internet (for the review to Mozilla Firefox Add-ons store)


IFrame height is 0 when loaded !!!

Dear community,
I have an issue implementing openspending embedded code to my platform using pyc.js .
Here is a jsfiddle example
The child page has this code:
<script src="https://pym.nprapps.org/pym.v1.js" type="text/javascript"></script>
  <script>
      var pymChild = new pym.Child();
      pymChild.sendHeight();
  </script>

When page loads, it will set the iframe height 0
if you just resize the page it will get the height value correctly, can somebody help me fix this issue that is triggering the height to 0 at load.
EDIT: If I use on the child page polling then it reloads good, I think this would do but im now curios to know why it is sending it with height 0 even when sendHeight() is set
var pymChild = new pym.Child({ polling: 1 });

keep the good job (I desperately want pyc to work)
lolziac

Hi @lolziac you are probably facing a race condition where the height is being sent before the child page has finished loading, you have a renderCallback available that you can use for that purpose precisely.
function render(width) {
    pymChild.sendHeight();
}

var pymChild = new pym.Child({ renderCallback: render });

Hi @jjelosua
I appended that code snippet but didn't fix it you can check it at jsfiddle, only polling is working (is there any drawback on using polling).
Regards,

Hi @lolziac let's step back then, how are you building the treemap? the render function should be the one rendering the treemap and after it is actually rendered send pymChild.sendHeight(); not before.
Do you have control to do that?
Polling is an option but it should not be needed.

Dear jjelosua,
This is the source code of openspending os-viewer
Yes I have control over it, as I have my own instance.
Furthermore I'm injecting the code at this embedded page it seems that is the end of visualization as this page where visualizations are drawn extends the previous one.
Regards,


where are the log files?

where are the log files for docker-compose -d?

Please check the official document here https://docs.docker.com/engine/reference/commandline/compose_logs/, thanks.

@ralyodio Hi, I saw you post the log, maybe we can close this issue?

I just removed the -d to keep logging in console. closing.


Disallow adding ChannelHandlers with the same name to the ChannelPipeline

Motivation:

We should not allow to add ChannelHandlers with the same name to the ChannelPipeline as these should be usable to uniqly identify ChannelHandlers.

Modifications:

- Dissallow adding ChannelHandlers with the same name to the ChannelPipeline
- Add unit tests.

Result:

More robust ChannelPipeline.

@swift-nio-bot test this please

failed again because of syscall slowness... trying again

@swift-nio-bot test this please

@Lukasa I think we should enforce the "unique name" thing. The main reason for this is that it otherwise may result in unexpected and hard to debug problems. For example we tell users to re-use ChannelHandlers which may also adjust the pipeline and add other ChannelHandlers to it (which may have a name argument when adding it). It could happen that a user use the exact same name as the one that is used in the ChannelHandler that they re-use and so when trying to access their ChannelHandler or remove their ChannelHandler it would in fact act on the wrong one.
Also while its true that ChannelPipeline.add(...) can become O(n) this is only true when the user pass a name when adding the ChannelHandler (if nil is used, which is the default we do not need any validation).
Even if we need validation I think its completely fine because:

ChannelPipelines usually are "short"
add(...) is not an operation that I would expect to be called so frequently that it matters.

If we are super concerned about the cost we could also have an internal Set that just contains the names. The only downside would be more memory usage per ChannelPipeline.
I would also be interested to hear @weissi's take on it :)
So to summarize all of this I think we should do both changes (just as we do in Netty).

Updated this PR to only include the handling of duplicated names...

@Lukasa @weissi so what do we want to do with this one now ?

I continue to be in the camp of either "remove names" or "don't enforce uniqueness, encourage it with name spacing suggestions". I'm not really moved by the need to enforce uniqueness, nor do I feel the need to add a map to the pipeline in addition to a linked list.

Also @Scott-mitch... whats your feeling about usefulness of handler naming ?

I don't have a strong opinion but I like @Lukasa's suggestion. The primary reasons:

not "over promise" from the perspective of the API which isn't clear if it is strictly necessary
give implementations the freedom to enforce uniqueness or not

If channel creation is a common occurrence (relative to data manipulation after a channel is setup) then this may have larger performance impacts (depends upon the use case).
I would be very cautious about adding a Set to the ChannelPipeline for this purpose due to memory overhead and I'm not sure it is strictly necessary.

I'd prefer unique names because it would make an insertion of a handler at arbitrary point in the pipeline much easier. Without this constraint, there would be no point of having handler names at all.

Alternatively, a user could be given with some handle which denotes its location in a pipeline and he or she could use that handle to specify the insertion point. This would make handle 'names' pretty much pointless.

@trustin Isn't handler identity a sufficiently good handle? That if, if you have a ref to the handler in question you can automatically insert after or before it.

FWIW: I thought the name is just for debugging.
I agree with @Lukasa that identity is the right thing here (or maybe the dynamic type of you would really want to do something dynamic).

@Lukasa Only if we do not allow adding the same handler instance twice?

@trustin Is there any utility in adding the same handler instance twice?

A logger maybe? I can see a few use cases for such.


How to run on all files in a repository?

The pre-commit configuration works fine:
  - repo: https://github.com/pre-commit/mirrors-clang-format
    rev: "v18.1.2"
    hooks:
      - id: clang-format
        # Supports a lot more filetypes, but only tagging those we use
        # https://github.com/pre-commit/mirrors-clang-format/blob/main/.pre-commit-hooks.yaml#L6
        types: [file]
        files: ".*\\.(cpp|cxx|h)"

pre-commit run --all
But I'd like to have this as a github action as well. Running locally, I try pipx run clang-format --dry-run **/*.h **/*.cpp and it gives the following output:
⚠  clang-format is already on your PATH and installed at C:\Program Files\Python39\Scripts\clang-format.EXE. Downloading and running anyway.
invalid argument
invalid argument

I also tried to pass all the files in (powershell):
clang-format --dry-run $(git ls-files '*.cpp' '*.cxx' "*.h")

But that just resulted in
ResourceUnavailable: Program 'clang-format.exe' failed to run: An error occurred trying to start process 'C:\Program Files\Python39\Scripts\clang-format.exe' with working directory 'E:\Users\Avasam\Documents\Git\pywin32'. The filename or extension is too long.At line:1 char:1
+ clang-format --dry-run $files
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.

Can you please check whether there is a difference between 18.1.1 and 18.1.2 for this? We recently changed the inner workings of our packaging and I would like to know whether this is related to that change.

Hi, 18.1.1 gives me the same results as 18.1.2 and 18.1.5. It doesn't seem like there's support for some sort of include/exclude globbing. Hence I'm currently having to resort to git commands to get the files I want:
- run: | # Too many files to fit in a single command, exclude vendored Scintilla and mapi_headers
    clang-format --Werror --dry-run $(git ls-files '*.cpp')
    clang-format --Werror --dry-run $(git ls-files '*.h' ':!:Pythonwin/Scintilla/' ':!:com/win32comext/mapi/src/mapi_headers/')

Old issue, but if you still need help with this, you can try something like
find /path/to/repo -iname "*.h" -o -iname "*.cpp" | xargs clang-format -i


filter: implemented gzip http filter

Description:
This PR implements http filter that compresses data dispatched from an upstream service upon client request. To enable this filter, create an object literal under filters with name field “gzip” and an empty config object for minimum configuration. Envoy will deliver compressed content to any http request that contains gzip in accept-encoding header.
https://github.com/envoyproxy/envoy/issues/269
Risk Level:  Medium
Testing: unit testing, integration testing and manual testing thru envoy front-proxy.
Note: documentation and conversion to envoy::api::v2::filter will be included in this PR.

Awesome! @dnoe can you own the review on this one?

Thanks @dnoe for reviewing it. I will take look at that over the weekend.

@dnoe I did the initial changes that you suggested. I also included the part of the RFC2616 that was missing plus some more robust configuration options. Please take another look when you have a chance. Thanks!

@gsagula @dnoe quick comment: can we please make this v2 ready in this PR? That will mean doing the data-plane-api filter config PR in parallel and updating this one. Thank you.
This is looks sweet BTW!

Looks good to me. Did you see @mattklein123 comment about making it V2 ready? Let me know here or on Slack if you have questions about that and what needs to be done in the data-plane-api repository.

@dnoe I started working on proto yesterday. I reach you on Slack if I have any question. Thank you again for reviewing it!

@dnoe Please take another look whenever you can. Thanks!

Will take a look at this today (sorry I didn't managed to get to it before the weekend!)

No worries! I also had a busy week and couldn't send this before Thursday night. Take your time!

@gsagula do you mind merging master to get the IPv6 tests to run? Is this ready for an additional pass by @htuch or myself? Very excited to see this land, I think we will end up using this at Lyft next year.

@mattklein123 It's done. Would be great to have  yours or @htuch feedback on this.

It seems that mac build is having a hard time, but I don't think it's related to my changes.

@mattklein123 Working on all the above.
@jmarantz I'm happy to go with the design changes that you suggested earlier. I will open another PR in data-plane to unlock docs, so we can work on the config changes from there.
Thanks for reviewing it.

✅  Simplification to cropLeft
✅  Manual system-testing with real browser & envoy as a forward-proxy
✅  Changed static Vari header values to camel-case
✅  Updated Envoy API SHA
@jmarantz I think we are done here, but feel free to give it another pass.

Oh also needs a master merge @gsagula

Thanks @mattklein123

@jmarantz Lastest commit addresses the places where code needs to handle case-insensitive header values. I tried to extend xxHash instead of defining a new one, but I ran out of time. I'll go back and add it to the benchmark test later. I still need to rebase and remove V1 code as per Matt's comment above.

xxHash vs a new one can be a TODO.
RE rebasing: this is a bit of the blind leading the blind here, but I don't think you need to rebase.  You need to merge.
git checkout master
git fetch upstream
git pull
git checkout filter_gzip
git merge master

But I might have that wrong.  I attempted to do that flow for one of my own branches and I think it it did the right thing.

In any case, please go ahead & merge so I can see the final state before my walkthrough.  I'd recommend saving a simple tree of all your actual code somewhere outside of git's control :)

I think it still needs to merge upstream -> git merge upstream/master.
git checkout master
git fetch upstream
git merge upstream/master ..

Sounds good. Resolving few last conflicts.

@jmarantz It's ready for another pass. Whenever you get a chance. Thanks!


Atom 1.19.7 crashes on mac 10.10.2 when refocusing window.

Prerequisites

[ x ] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: http://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: http://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
I downloaded atom for the first time on this computer yesterday and immediatley had this problem.  I have not installed any packages or modified any settings.  I did try reinstalling and nothing changed.
Steps to Reproduce

Open Atom (behaves fine while in focus)
Focus a different application (e.g. Finder or Terminal)
Re-Focus Atom
Atom crashes in a fraction of a second

Reproduced with Atom, Atom in safe mode, and Atom Beta 1.20.0-beta7
Expected behavior: Atom to not crash when refocusing window
Actual behavior: Atom crashes when refocusing
Reproduces how often: 100%
Versions
Atom    : 1.19.7
Electron: 1.6.9
Chrome  : 56.0.2924.87
Node    : 7.4.0
apm  1.18.4
npm  3.10.10
node 6.9.5 x64
python 2.7.6
git 2.5.4
Additional Information
The crash log always contains this message:
Application Specific Information:
Crashing on exception: Invalid parameter not satisfying: (index >= 0) && (index < [_itemArray count])

Can you share the full crash log from Console.app?

Thanks for the report!  I wasn't able to reproduce with 1.19.7 on macOS 10.12.6 -  can you share any crash logs you find?
http://flight-manual.atom.io/hacking-atom/sections/debugging/#find-crash-logs

Sure, here is one of the logs.  All of the logs seem to be pretty similar, but I can post more if neccessary
Atom_2017-09-07-202115_kro-bar.crash

Thanks @annacrombie, that's really useful.

Hey, I was playing around with atom some more and noticed that if I try to go to the Install Package tab of settings view, there is an Uncaught TypeError (Atom doesn't crash, I just cant see the install package view).  I was again able to reproduce it in Atom, safe mode Atom, and Atom 1.20.0-beta7.  Before I go and make another issue, I wonder if it is a related problem?
Here is the report it gave me:
[Enter steps to reproduce:]

Go to settings view
Click on install pacakge

Atom: 1.19.7 x64
Electron: 1.6.9
OS: Mac OS X 10.10.2
Thrown From: settings-view package 0.250.0
Stack Trace
Uncaught TypeError: packages[Symbol.iterator] is not a function
At /Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/install-panel.js:390

TypeError: packages[Symbol.iterator] is not a function
    at InstallPanel.addPackageViews (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/install-panel.js:390:30)
    at /Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/install-panel.js:461:26
    at /Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/atom-io-client.js:68:26
    at AtomIoClient.module.exports.AtomIoClient.fetchFromCache (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/atom-io-client.js:160:22)
    at AtomIoClient.module.exports.AtomIoClient.featuredPackages (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/atom-io-client.js:65:25)
    at InstallPanel.loadFeaturedPackages (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/install-panel.js:455:27)
    at new InstallPanel (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/install-panel.js:128:16)
    at /Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/settings-view.js:237:22
    at SettingsView.getOrCreatePanel (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/settings-view.js:361:25)
    at SettingsView.showPanel (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/settings-view.js:419:30)
    at HTMLDivElement.clickHandler (/Users/lattis/downloads/Atom.app/Contents/Resources/app/node_modules/settings-view/lib/settings-view.js:186:24)

Commands
     -0:22.3.0 settings-view:open (summary.welcome-summary.icon.icon-paintcan)

Non-Core Packages

Another update, for some reason the package install works now, although Atom is still crashing on refocus.  Also, I completely uninstalled Atom and installed Atom 1.18.0, and everything works fine.  I guess that means that the problem was caused by something that changed in the update.

Hey, I was playing around with atom some more and noticed that if I try to go to the Install Package tab of settings view, there is an Uncaught TypeError (Atom doesn't crash, I just cant see the install package view). I was again able to reproduce it in Atom, safe mode Atom, and Atom 1.20.0-beta7. Before I go and make another issue, I wonder if it is a related problem?
...
Another update, for some reason the package install works now,

Glad package install is working ok for you again - the error that you shared with the package view was reported in another issue with no mention of crashing so  I don't think it's related to the focus crash that you've been seeing?
https://github.com/atom/settings-view/issues/962
But if you run into it again, feel free to subscribe to that issue if you'd like.

Also, I completely uninstalled Atom and installed Atom 1.18.0, and everything works fine. I guess that means that the problem was caused by something that changed in the update.

Awesome, thanks for doing that check, it's helpful to know that you don't see the error in 1.18.0 :+1:

/cc @iolsen this is the electron crash I mentioned today.

@annacrombie Are you using the Mac app MenuAndDockless?

Yes I am

Closing the loop here: this is an Electron bug, but a low priority one because it's caused by a third-party app injecting itself into Window management.
Closing the issue because it won't be addressed in the scope of Atom.

Yeah @annacrombie, I believe MenuAndDockless is causing this crash.

I see, thats a bummer because I really like auto-hiding my menubar...  Well Atom 1.18 has been working fine for me so far, so its not the most pressing issue for me.  Should I create an issue on Electron, or is it already made?

@annacrombie That would be great if you'd open an issue there. Thank you, and sorry for the poor experience!


Set number of retries per error code

See https://huggingface.slack.com/archives/C04L6P8KNQ5/p1714480880576699?thread_ts=1714033939.429809&cid=C04L6P8KNQ5 (internal)
Errors like CreateCommitError should always be retried, because they correspond to the Hub being down, which should always be a temporary situation. I set the limit to 30 in that case (instead of 3). I set 30 to other error codes as well: HfHubError, LockedDatasetTimeoutError, PreviousStepStillProcessingError

CI error is unrelated, see https://github.com/huggingface/dataset-viewer/issues/2759

It's working as expected: for the first backfill on retryable errors, a lot of new jobs

And the number of CreateCommitErrors is decreasing, soon zero

Is there an issue with the metrics? We never get back to zero:

For PreviousStepStillProcessingError, it seems it's due to the previous step being JobManagerCrashedError. When we detect that a job has crashed, maybe we're not creating jobs for its children?
I opened an issue: https://github.com/huggingface/dataset-viewer/issues/2765

Also: the metrics include details.copied_from_artifact: false | true, ie: we currently have only 4 datasets with the CreateCommitError, but 40 cache entries for all the following steps, and the metrics above show 40.
For the 4 datasets, we reached failed_runs: 30, so we must have a bug here. One of these is https://huggingface.co/datasets/venetis/VMMRdb_make_model_test. I'm not sure what happens. Opening an issue: https://github.com/huggingface/dataset-viewer/issues/2766


haxtheweb.org sidebar obscured by toolbar

Wanting to get started with HAX so I went to haxtheweb.org, but it doesn't load properly.  The toolbar obscures the left portion of sidebar menu making it unable to be viewed properly.  Same issue on Chrome and Safari on MacOS 10.15.4.
Apologies if I've not posted to the right place - just getting started.

Thanks for the report. I might just disable hax on that site bc it's got a very specific hack to our code base to support a static site faking that it's got an editor :) and we have a good demo that resets itself every day here -- http://haxcms.do1.demos.elmsln.org/ (admin / admin)

fixed


Enable pushdown in FlightScanBuilder

Description
Re-enable projection and predicate pushdown in FlightScanBuilder, as the Barrage service now interprets these kind of requests parameters.
Todo

[ ] volvo-cars/barrage#127
[ ] Predicate pushdown

There are two other functions that was also commented out

I looked at the diff from #1 and removed the block comments, so I all three methods (in total) should be present:
public Filter[] pushFilters(Filter[] filters)
public Filter[] pushedFilters()
public void pruneColumns(StructType requiredSchema)


fix sync db swap migration

The migration for the sync database should go to the sync migration rather than the main db migration so the remote backups can be migrated as well.
I believe this was the issue with the error "table swap_fees not found" that we saw on some devices.
I left the previous migration in the main db so already migrated databases won't fail.

This is the specific error that you mentioned:
event backupFailed: {"error": "no such table: remote_sync.swaps_fees"}

Right now there are 2 identical tables being created (and maintained).
That means any future changes to the table structure have to be applied 2x, once to each table, no?

Only one table is created, it is the same table and we just moved the statement to the right place. The new place is right because we apply these migrations on sync as well. Before this change the migration wasn't executed on the remote sync and that's why the backup failed.


Use SDK harness container for FnAPI jobs when worker_harness_containe…

…r_image is not specified. Add a separate image tag to use with the SDK harness container.
Be sure to do all of the following to help us incorporate your contribution
quickly and easily:

[ ] Make sure the PR title is formatted like:
[BEAM-<Jira issue #>] Description of pull request
[ ] Make sure tests pass via mvn clean verify.
[ ] Replace <Jira issue #> in the title with the actual Jira issue
number, if there is one.
[ ] If this contribution is large, please file an Apache
Individual Contributor License Agreement.

R: @aaltay @charlesccychen

Coverage decreased (-0.01%) to 70.847% when pulling c7fad527a2a675454261e42c58fc4393a9fb9f7f on tvalentyn:default_fnapi_container_name into 997bf402511d2b2468385fcfd2b3aa4dba52eac5 on apache:master.

LGTM


[BEAM-8949] SpannerIO integration tests

Added Spanner io integration test.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---

---
---

Java

Python

---

---
---

XLang
---
---
---

---
---

Pre-Commit Tests Status (on master branch)

---
Java
Python
Go
Website

Non-portable

Portable
---

---
---

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.

retest this please

retest this please

retest this please

@iemejia @aaltay. Could you please run the post-commit tests as well!
Run Python PostCommit
Thanks!

Run Python PostCommit

retest this please

Run Python PostCommit

Run Python 3.5 PostCommit

retest this please

Run Python PostCommit

Run Python 3.5 PostCommit

retest this please

retest this please

retest this please

mmmmmm

retest this please

retest this please

retest this please

@mszb - is this ready for a review?

@mszb - is this ready for a review?

@aaltay just waiting for all test results. Can you please trigger the tests and the python 3.5 postcommit test!

retest this please

Run Python 3.5 PostCommit

Run Python 3.5 PostCommit

Run Python PostCommit

Run Python 3.5 PostCommit

@iemejia thanks for triggering the tests.. Could you please rerun the precommit test Run Python PreCommit as it was failed due to wordcount streaming test.

 Do you suggest I should rebase the branch again?

@chamikaramj have you got any chance to review this pr? Once you’ve done the initial review, ill rebase the branch with master! Ive check the precommit logs and verified that the spanner tests ran successfully.

retest this please

retest this please

retest this please

Run Python 3.5 PostCommit

Run Python 3.5 PostCommit

@iemejia thanks for triggering the test. I Just review the pre-commit logs that wordcount streaming tests are failed. I've verified them locally and those test cases are passed. Would you please retriggered the precommit test cases! - Thanks

Run Python PreCommit

Run Python PreCommit

@chamikaramj - could you review this PR?

Ping @chamikaramj !

I'll take a look next week. Thanks!

Thanks Shoaib and Pablo.

@mszb - Do you know why the test is failing?

@aaltay - Wordcount stream tests are failing. They are running successfully on my local machine. Jira ticket is already created for that - https://issues.apache.org/jira/browse/BEAM-9767
Maybe retriggering the pre-commit test works but can't say that would pass 100% bcoz of the flaky wordcount test.
Apart from that, there were 3 pre-commit jobs are triggered almost the same time on Jenkins (with ~30seconds difference) and one of them is successfully completed but sadly the failed one is linked with the github.
successful pre-commit: https://builds.apache.org/job/beam_PreCommit_Python_Commit/12541/
failed jobs:
https://builds.apache.org/job/beam_PreCommit_Python_Commit/12542/
https://builds.apache.org/job/beam_PreCommit_Python_Commit/12543/

Run Python PreCommit

@aaltay - Wordcount stream tests are failing. They are running successfully on my local machine. Jira ticket is already created for that - https://issues.apache.org/jira/browse/BEAM-9767
Maybe retriggering the pre-commit test works but can't say that would pass 100% bcoz of the flaky wordcount test.
Apart from that, there were 3 pre-commit jobs are triggered almost the same time on Jenkins (with ~30seconds difference) and one of them is successfully completed but sadly the failed one is linked with the github.
successful pre-commit: https://builds.apache.org/job/beam_PreCommit_Python_Commit/12541/
failed jobs:
https://builds.apache.org/job/beam_PreCommit_Python_Commit/12542/
https://builds.apache.org/job/beam_PreCommit_Python_Commit/12543/

OK, let's re-run to de-flake.

@chamikaramj: i've made some changes, could you please trigger the tests!
-Thanks

Thanks. LGTM.

 Can you rebase the PR, and we'll rerun the tests?

it seems that BQ tests were broken. Can you rebase the PR, and we'll rerun the tests?

done!

retest this please

retest this plesae

Run Python 3.7 PostCommit

Run Python 3.7 PostCommit


[BUG] Failing to connect to server

Describe the bug
Connection timed out when trying to connect to the server.  The Android app and computer executable have the same LAN adress and port but fail to connect. The phone is connected via WiFi and the computer via Ethernet
To Reproduce
Steps to reproduce the behavior:

Start Audio Share server in computer
Open Audio Share app and edit the host adress
See error "connection timed out"

Screenshots

Server:

OS: Windows 11 x64
GUI
Version 0.0.17
Android:
Device: [Motorola g60]
OS: [Android 12]
Version 0.0.15 from F-Droid

It will show firewall dialog when you first time click "Start Server", keep default options and click "Allow Access".
Open "wf.msc" to check the firewall rules. The rule name may be "Audio Share Server" or "audioshareserver.exe" in "Inbound Rules".

You're right, it was the firewall. For some reason the firewall dialog didn't show up when starting the server but I went to the firewall settings and allowed Audio Share, then tried to connect with my phone and the problem was solved.


Add support for -Whatif for cmdlets that change state

As a script developer, I would like to see support for -WhatIf for cmdlets that change state in TFS / VSTS, so that I can better test the scripts before I execute them.

All state-changing (Import, Mount, Move, New, Rename, Set, Start) and destructive (Dismount, Remove, Stop) cmdlets in TfsCmdlets will have SupportsShouldProcess support in the next release.


Adding replay_executor and replicate_executor

this allows for instance for the parallel algorithms to be resilient
to failing iterations

@NK-Nikunj please have a look as it might be useful for the work you're doing as well.

The error reported is unrelated. This is ready for review now.


Fix missing redirect to merge queue docs

Why:
The links to the "Add a pull request to the merge queue" docs page from the waitlist sign up page (https://github.com/features/merge-queue/signup) and the changelog post from October 27 (https://github.blog/changelog/2021-10-27-pull-request-merge-queue-limited-beta/) are broken, but weren't broken at the time both went live

What's being changed:

Add redirect_from to the page

Check off the following:

[x] I have reviewed my changes in staging (look for "Automatically generated comment" and click Modified to view your latest changes).
[x] For content changes, I have completed the self-review checklist.

Writer impact (This section is for GitHub staff members only):

[ ] This pull request impacts the contribution experience

[ ] I have added the 'writer impact' label
[ ] I have added a description and/or a video demo of the changes below (e.g. a "before and after video")

FYI. I verified the redirect works as expected:
https://docs-11911--patch-2.herokuapp.com/github/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/adding-a-pull-request-to-the-merge-queue
Correctly redirects to:
https://docs-11911--patch-2.herokuapp.com/en/pull-requests/collaborating-with-pull-requests/incorporating-changes-from-a-pull-request/adding-a-pull-request-to-the-merge-queue


Building .net-framework and .net-standrd on Windows had issues

When building on a machine with visual Studio and Android (Xamarin) development installed, the build process had issues or needs to be documented better.
CMake had an issue using the NDK path:
CMake Warning (dev) at build/libs/android/Debug/arm64-v8a/CMakeFiles/3.20.2/CMakeSystem.cmake:14:
Syntax Warning in cmake code at column 41
CMake had issues determining the OS:
CMake Error at build/libs/android/Debug/arm64-v8a/CMakeFiles/3.20.2/CMakeSystem.cmake:27:
Parse error.  Function missing ending ")".  Instead found unterminated
string with text ")

Reworking of this project has changed things.  Removing this bug.


[Bug] Skywalking-showcase install fails to init storage (postgresql or Elasticsearch)

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
Showcase (apache/skywalking-showcase)
What happened
I've attempted to install the showcase to kubernetes with "make deploy.kubernetes" and also tried "make deploy.kubernetes  FEATURE_FLAGS=" that included postgresql instead of elasticsearch the result is the same, the oap pods fail to startup with the same error in the logs:
2023-07-20 18:25:59,848 org.apache.skywalking.oap.server.core.storage.model.ModelInstaller 43 [main] INFO  [] - table: alarm_record does not exist. OAP is running in 'no-init' mode, waiting... retry 3s later.
The Helm install of skywalking creates and init job which does work - but I can't get the showcase to work.
Platform is Kubernetes v1.27.3 1 control, 3 workers on Openstack
What you expected to happen
The showcase install should install and run correctly - perhaps the init job from the helm charts needs to be added to showcase?
How to reproduce
make deploy.kubernetes
Anything else
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

no-init had been explained many times in various discussion and PR.
Generally, it is init job doesn't run successfully, so everthing is waiting.

Do you care to point to the resolution?  I searched many times in many places dismissing the problem without pointing to the solution is not helpful

The thing is the init-job in the deployment should be successful.
You need to retry that and check that.

The Helm install of skywalking creates and init job which does work - but I can't get the showcase to work.
Platform is Kubernetes v1.27.3 1 control, 3 workers on Openstack
What you expected to happen
The showcase install should install and run correctly - perhaps the init job from the helm charts needs to be added to showcase?

The showcase is using the Helm Chart to install OAP so it’s literally added already, please make yourself clear, what do you mean by “init job not work”, it’s created and failed, or, it’s not even created,


Google Pay and Apple Pay support with Stripe

@dpobel for the failing build above, please rebase on the latest next branch.


unable to fetch pod metrics for pod nginx-ingress/private-ingress-nginx-ingress-controller no metrics known for pod

Describe the bug
unable to fetch pod metrics for pod nginx-ingress/private-ingress-nginx-ingress-controller. We have metric server installed and it is able to fetch metrics for all the pods except nginx-controller
Version of Helm and Kubernetes:
helm version
Client: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.16.1", GitCommit:"bbdfe5e7803a12bbdf97e94cd847859890cf4050", GitTreeState:"clean"}
K8s version:
v1.14.9
private-ingress         1               Wed Feb  5 10:31:51 2020        DEPLOYED        nginx-ingress-1.26.1                    0.26.1          nginx-ingress
Which chart:
metrics-server          1               Mon Jan 27 19:42:04 2020        DEPLOYED        metrics-server-2.0.4                    0.3.1           metrics
What happened:
metric server unable to fetch metrics for private ingress controller pod
What you expected to happen:
Metric server has to collect metrics for private nginx controller
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know:
Errors in metric server pod logs:
E0205 10:32:16.593112       1 reststorage.go:144] unable to fetch pod metrics for pod nginx-ingress/private-ingress-nginx-ingress-default-backend-7bb69fc58d-rzsnl: no metrics known for pod
E0205 10:32:16.593136       1 reststorage.go:144] unable to fetch pod metrics for pod nginx-ingress/private-ingress-nginx-ingress-controller-f75b4c4bf-7jgbp: no metrics known for pod
E0205 10:32:32.053218       1 reststorage.go:144] unable to fetch pod metrics for pod nginx-ingress/private-ingress-nginx-ingress-controller-f75b4c4bf-7jgbp: no metrics known for pod
E

Likewise nginx ingress controller is not scaled, but for a random deployment it's okay:
3m21s       Normal    SuccessfulRescale              horizontalpodautoscaler/bash   New size: 3; reason: cpu resource utilization (percentage of request) above target

@dennybaa  do you mean HPA does not support for nginx controller? Can you please confirm.

@ramaprasad434 we don't know yet the reasons, but it happens on GKE and suspect the metrics-server and kubelet inconsistency. First I will upgrade the cluster and there might be some updates.

I guess it has nothing to do with nginx ingress chart and relates more to this https://github.com/kubernetes/kubernetes/issues/79365


Indication of the used algorithm

Hello everyone,
I am delighted with howdy software and how useful it's in my day to day life. There are times that it fails and although I don't have a camera with an infrared sensor it isn't a big hassle for me. Although I would like to facilitate code development for other engineers who also come from the image processing and facial recognition field.
My request is to know what is the algorithm used and if it is based on any research or study done. In case there is any paper, it would be convenient to add a link or reference to it to facilitate its study. I think that in this way we could improve the code responsible for processing and detecting the facial image for programmers who have that part of knowledge. In this way it could facilitate the search for a better algorithm or several algorithms to improve the software.

It uses algorithms from dlib.


watch flag for pod ps command

Add watch flag to pod ps command to keep changes inside terminal window.
Signed-off-by: Petr Fedchenkov<EMAIL_ADDRESS>

This is fine, but I'm curious -- what's the usecase/motivation for this? (also, its not like watch(1) doesn't exist ;-))

I am happy with watch command as well, so let's close this for now.


docs: added section how to survive require cache purge in dev

Based on this https://stackoverflow.com/a/72662281

It's mentioned here though https://remix.run/docs/en/main/guides/manual-mode#keeping-in-memory-server-state-across-rebuilds It also mentions Kent’s package, which is great https://www.npmjs.com/package/@epic-web/remember

I think it's worth moving to HMR section and add mention in manual. I would never look into manual mode because that's another topic


Migration fails when using Environment variables

Execution of migrations fails when using environment variables. This is because they behave like PHP variables when surrounded with double quotes.
Possible solutions are to use single quotes instead, or escape variables with a backslash (\)

@jordikroon can you provide an example of where a migration is failing? That would help in fixing the issue.

We use Amazon S3 for storing our images. Our settings are stored in the .env file. Same can be applied for the (default) local image adapter.

The screenshot above generates this migration. Where as you can see the variables behave like normal PHP variables.

<?php

namespace craft\contentmigrations;

use craft\db\Migration;
//use craft\db\MigrationManager;
//use craft\helpers\MigrationHelper;

use firstborn\migrationmanager\MigrationManager;

/**
 * Generated migration
 */
class m190221_104420_migration_assetVolume_default extends Migration
{
    /**
    Migration manifest:

    ASSETVOLUME
        - default
            */

private $json = <<<JSON
{"settings":{"dependencies":{"assetVolumes":[{"name":"Default","handle":"default","type":"craft\\\\awss3\\\\Volume","sortOrder":null,"typesettings":{"subfolder":"","keyId":"$AWS_ACCESS_KEY_ID","secret":"$AWS_ACCESS_KEY_TOKEN","bucket":"racingnews-v2-dev","region":"eu-west-1","expires":"","storageClass":"","cfDistributionId":"","autoFocalPoint":""},"hasUrls":1,"url":"$S3_BASE_URL"}]},"elements":{"assetVolumes":[{"name":"Default","handle":"default","type":"craft\\\\awss3\\\\Volume","sortOrder":null,"typesettings":{"subfolder":"","keyId":"$AWS_ACCESS_KEY_ID","secret":"$AWS_ACCESS_KEY_TOKEN","bucket":"racingnews-v2-dev","region":"eu-west-1","expires":"","storageClass":"","cfDistributionId":"","autoFocalPoint":""},"hasUrls":1,"url":"$S3_BASE_URL","fieldLayout":{"Content":["subTitle"]}}]}}}
JSON;

	/**
	 * Any migration code in here is wrapped inside of a transaction.
	 * Returning false will rollback the migration
	 *
	 * @return bool
	 */
	public function safeUp()
	{
	    return MigrationManager::getInstance()->migrations->import($this->json);    }

    public function safeDown()
    {
        echo "m190221_104420_migration_assetVolume_default cannot be reverted.\n";
        return false;
    }
}

@jordikroon fixed in latest release