Cannot read property 'getters' of undefined

Version
1.0.0-beta.10
Reproduction link
http://jsfiddle.net/m33w0o9p/2/
Steps to reproduce
For jest testing with vuex, if vuex contains both namespaced modules and global actions or states, it doesn't work. It will produce Cannot read property 'getters' of undefined error.
Testing file
import { shallow, createLocalVue } from '@vue/test-utils'
import Vuex from 'vuex'
import App from '@/App'
import auth from '../../../src/store/module/auth'

const localVue = createLocalVue()

localVue.use(Vuex)

describe('App', () => {

  let actions
  let store

  beforeEach(() => {
    actions = {
      toggleDevice: jest.fn()
    }
    store = new Vuex.Store({
      state: {},
      modules: {
      	auth
      },
      actions
    })
  })

  it('should have beforeMount hook', () => {
  	const wrapper = shallow(App, { store, localVue })
  	wrapper.setComputed({tokenExpired: true})
  })
})

App.vue
export default {
  name: 'app',
  beforeMount () {
    this.toggleDevice()
  },
  mounted () {
    this.loadAuth()
  },
  computed: {
    ...mapGetters({
      tokenExpired: 'auth/tokenExpired'
    })
  },
  watch: {
    tokenExpired () {
      if (this.tokenExpired) {
        this.$router.push('/login')
      }
    }
  },
  methods: mapActions({
    toggleDevice: 'toggleDevice',
    loadAuth: 'auth/loadAuth'
  })
}

module/auth.js
const state = () => {
  return {
    tokenExpired: false
  }
}

const getters = {
  tokenExpired: state => state.tokenExpired
}

What is expected?
To pass the test
What is actually happening?
It doesn't compile, just suggesting Cannot read property 'getters' of undefined

I tried to make vuex store exactly like the one in production, it doesn't work.
I tried to combine the getters from the module to the global getters, it doesn't work either.
So I believe it is a bug

I figured out what the problem is, I passed in the fake store with a real module, but in this real module, it calls another getter from the real store, but since I don't have this getter method in the fake store, it gives me the error

@WangHansen I have the same exact issue, what did you do to bypass this?

@bennettdams You need to provide getters to your test store if you want your component to be able to access their data. You can mock them with jest if you are testing whether or not they are called.
const localVue = createLocalVue()

localVue.use(Vuex)

describe('App', () => {

  let actions
  let store

  beforeEach(() => {
    actions = {
      toggleDevice: jest.fn()
    }
    store = new Vuex.Store({
      modules: {
      	auth: {
          state: {},
          getters: {
            myFunc: jest.fn()
         }
      },
      actions
    })
  })

  it('should have beforeMount hook', () => {
  	const wrapper = shallow(App, { store, localVue })
  	wrapper.setComputed({tokenExpired: true})
  })
})

Alternatively, if you export your getters from your auth module file, you can import that directly into your test and use all of the logic.
import { getters } from '../somepath/modules/auth'
const localVue = createLocalVue()

localVue.use(Vuex)

describe('App', () => {

  let actions
  let store

  beforeEach(() => {
    actions = {
      toggleDevice: jest.fn()
    }
    store = new Vuex.Store({
      modules: {
      	auth: {
          state: {},
          getters
      },
      actions
    })
  })

  it('should have beforeMount hook', () => {
  	const wrapper = shallow(App, { store, localVue })
  	wrapper.setComputed({tokenExpired: true})
  })
})

Be sure to provide all of the initial values to your auth state so your getters are not looking for undefined values :)

@alexandreaco I was not trying to test a getter - I wanted to test whether an action got dispatched or not.
I used a module from the real store in my test to define further configuration like so:
import moduleProduct from "@/store/modules/product/";
...
// for local test Vue instance
store = new Vuex.Store({
      modules: {
        product: {
          namespaced: moduleProduct.namespaced,
          actions: actions
        },
        ...

This moduleProduct uses a general getter from the real store in its own getter, that's where the issue was coming from.
For now, I stopped using the external modules in the test, which prevents that error from happening.

Just my two cents. I think whats happening here is Test case is trying to create actual store. Obviously creation of Store will have modules and getters defined. It will use store we have defined in our code. In test case I had to explicitly import store and getters

Import module where 'store' is defined
Import module where getters is defined

Why are people intentionally mocking app behavior in their own codebase?


Suggestion highlight to comment

Hey, can you make it that the user can highlight a portion of the text to comment? Somewhat like microsoft word commenting

Did you see the "Can you highlight?" section in the demo? I believe it is just what you're after.


Error: This feature is not available on your device.

I am getting this error while calling getProducts() of iap for android

same with the latest version

This is probably because of the user's play store does not support the new Play Billing SDK. The methods were removed in this library as they were marked as deprecated

I've added isFeatureSupported you should check if it's available before using the api

I've added isFeatureSupported you should check if it's available before using the api

When I tried to use this function the entire app crashed with the following error.
I also tested it on a brand new empty project. And I called initConnection before calling isFeatureSupported if that matters. In all cases the app crashes.

react-native-iap: 12.10.4
react-native: 0.70.8 and 0.71.7
Platforms (iOS, Android, emulator, simulator, device): Android 11 device
PlayStore: 35.3.10-21

In my case I needed to accept invite via URL on my device after starting Internal Testing in Google Play and adding myself as license tester.

I've added isFeatureSupported you should check if it's available before using the api

When I tried to use this function the entire app crashed with the following error. I also tested it on a brand new empty project. And I called initConnection before calling isFeatureSupported if that matters. In all cases the app crashes.
* react-native-iap: 12.10.4

* react-native: 0.70.8 and 0.71.7

* Platforms (iOS, Android, emulator, simulator, device): Android 11 device

* PlayStore: 35.3.10-21

I am having the same This feature is not available on your device problem and after trying to call the isFeatureSupported first I get the cannot convert argument crash.


Enabe isort pre-commit check

This enables the isort pre-commit check (.pre-commit-config.yaml), which helps keeps imports organized and consistent.
It's disabled in src/S0A_download_ASDF_MPI.py via isort:skip_file because MPI runs into conflicts when changing the import order
The rest of the files have be auto-updated by isort.

Looks like most change are re-sort the packages when being imported. Thanks for bringing this! Is that a one-time change? Or it automatically update all when new files are committed?

@niyiyu The pre-commit hook will auto-reformat before all commits. You need to install it by running:
pip install pre-commit>=3.2.0
pre-commit install

See: https://pre-commit.com/


Add a11y linter

There's an initiative to add accessibility linters to grafana core that we discussed in frontend weekly. It might be nice to try doing this earlier rather than later to our external plugins: https://github.com/jsx-eslint/eslint-plugin-jsx-a11y
https://github.com/grafana/grafana/issues/37782

@sarahzinger I assume this is still relevant - can I pick it up?

Hi @idastambuk yes totally worth looking into :) I took a look at main grafana and it looks like we're using jsx-a11y now https://github.com/grafana/grafana/blob/45d3125919f0bedb965316685af4723e0bfbb8d9/.eslintrc#L76
I think whenever we update our eslint config dependency package we'll get that change automatically (if we haven't done so already)? I don't know when that change was added, but it would be awesome to check to see if it's already working in which case we can close this ticket or if it's not there upgrading that package if we can, or if that's not desirable then updating the plugin's eslintrc file here https://github.com/grafana/athena-datasource/blob/main/.eslintrc until we're ready to upgrade.

It seems like the eslint config package that @grafana/create-plugin pulls from hasn't been updated yet (asked about it in the #frontend channel), so I added it manually here Luckily no errors! 💪🏻🌈


Fixed:- Show total HNT rewarded on reward txn view

PR for #28
Hi @allenan, This is a new PR and only has commits related to issue #28. Please review it.

Hi @allenan, please review the PR and if everything is up to the mark then please add the hactoberfest-accepted label.


No solvers available for remaining challenges

On Ubuntu 20.04.3 LTS, I compiled the latest git master version of boringproxy, and have completed the following domain configuration:
    bp.hyddns.xyz - the fully qualified domain name (FQDN) of the host where boringproxy will be running.
    *.bp.hyddns.xyz - a wildcard subdomain for effortless domain mapping of clients

Then I try to start the boringproxy server as follows but failed:
$ boringproxy server -admin-domain bp.hyddns.xyz
2021/12/17 15:21:10 Starting up
2021/12/17 15:21:24 bp.hyddns.xyz: obtaining certificate: [bp.hyddns.xyz] Obtain: [bp.hyddns.xyz] solving challenges: bp.hyddns.xyz: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/324767840/47937107570) (ca=https://acme-v02.api.letsencrypt.org/directory)

Any hints for solving this problem?
Regards,
HZ

This typically happens when your server isn't available over port 443, usually due to a firewall rule or not having port forwarding properly set up. Please confirm that port 443 is properly forwarded to boringproxy server.
FYI the next release of boringproxy will automatically detect if ports 80/443 aren't externally accessible and print an error/warning.

I've opened up the port 443 on my firewall, but still meet the same error:
$ boringproxy server -admin-domain bp.hyddns.xyz
2021/12/18 08:22:47 Starting up
2021/12/18 08:23:01 bp.hyddns.xyz: obtaining certificate: [bp.hyddns.xyz] Obtain: [bp.hyddns.xyz] solving challenges: bp.hyddns.xyz: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/324767840/48118073280) (ca=https://acme-v02.api.letsencrypt.org/directory)

And you have a DNS A record pointed at the IP address? This error has come up before and so far I don't think boringproxy has ever been the issue.

And you have a DNS A record pointed at the IP address?

I don't know if I understand what you mean, so I'd like to provide the following for your reference:
$ dig +short bp.hyddns.xyz
www.hyddns.xyz.
<IP_ADDRESS>

Yeah so assuming your server is running on <IP_ADDRESS> with ports 80 and 443 open to the outside world, I don't know what's wrong. I'd recommend running something like caddy on the server and verifying it works as expected.

with ports 80 and 443 open to the outside world

Must the ports 80 and 443 be open to the outside world at the same time?

I'd recommend running something like caddy on the server and verifying it works as expected.

If I understand you correctly, you mean I should first check if the web service running on port 80 and 443 on the server works as expected.

Must the ports 80 and 443 be open to the outside world at the same time?
The current version might work with just 443. The next version will require both to be open, unless there's some reason people don't want that, but I'd need an explanation.

If I understand you correctly, you mean I should first check if the web service running on port 80 and 443 on the server works as expected.
Yep. You could also just do a sudo python3 -m http.server 80 to test port 80 and open it in your browser. 443 can be trickier since browsers expect TLS on that port.

You could also just do a sudo python3 -m http.server 80 to test port 80 and open it in your browser.

$ sudo python3 -m http.server 80
$ curl -I http://bp.hyddns.xyz/
HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.8.10
Date: Sat, 18 Dec 2021 07:01:52 GMT
Content-type: text/html; charset=utf-8
Content-Length: 5679

443 can be trickier since browsers expect TLS on that port.

I tried the following method:
# use all the default answers
$ openssl req -new -x509 -keyout localhost.pem -out localhost.pem -days 365 -nodes
$ sudo python3 https.py

The https.py has the following content:
$ cat https.py
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl

httpd = HTTPServer(('localhost', 443), BaseHTTPRequestHandler)

httpd.socket = ssl.wrap_socket (httpd.socket,
        keyfile="./localhost.pem",
        certfile='./localhost.pem', server_side=True)

httpd.serve_forever()

Then do the test:
$ curl -vI https://bp.hyddns.xyz
*   Trying <IP_ADDRESS>:443...
* TCP_NODELAY set
* connect to <IP_ADDRESS> port 443 failed: Connection refused
* Failed to connect to bp.hyddns.xyz port 443: Connection refused
* Closing connection 0
curl: (7) Failed to connect to bp.hyddns.xyz port 443: Connection refused

No idea. Another possible validation scheme is testing with other Let's Encrypt alike solutions.

Not sure. If DNSPod implements the ACME protocol, it should be possible to use it. boringproxy isn't currently configured to use CAs other than LetsEncrypt, but I'm pretty sure the underlying certmagic library supports it.

I found the reason why certbot failed: My ISP blocks some or all the well-known_ports on my VPS. Although the previous test of port 80/443 on VPS itself has no problem, accessing port 80/443 of VPS through the Internet from other places will fail.

LetsEncrypt will not, to my knowledge, work with ports other than 80/443. This seems like a very strange limitation for a VPS. What use is a VPS that can't host a website? Are you using a cloud VPS host or running it behind a residential ISP?

Perhaps I should have told you more about the VPS used by myself, which is a self-build one running on my home router using the dynamic public IP address assigned by my ISP with the ddns service supplied by dnspod. This way, I obtain an almost free self built VPS, of course, DDNS service charges a certain low fee. The only disadvantage is the problem encountered here: Some well-known ports are blocked by ISP and cannot be used.

Yeah, so it sounds like boringproxy won't work for your configuration :frowning_face:. As a matter of fact, boringproxy was designed to work around exactly these sorts of issues, ie ISP firewalls, NAT, etc. But it requires that you have a server with unrestricted port 80/443 to run the server on, then you run the client on your home machines so they can tunnel out. Unfortunately a public VPS will cost money though.

 Depending on the DNS
provider, this may take some time, from a few seconds to multiple minutes. You can
check if it has finished deploying with aid of online tools, such as the Google
Admin Toolbox: https://toolbox.googleapps.com/apps/dig/#TXT/_acme-challenge.bp.hyddns.xyz.
Look for one or more bolded line(s) below the line ';ANSWER'. It should show the
value(s) you've just added.

Certificate is saved at: /etc/letsencrypt/live/bp.hyddns.xyz/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/bp.hyddns.xyz/privkey.pem
This certificate expires on 2022-03-20.
These files will be updated when the certificate renews.

NEXT STEPS:
- This certificate will not be renewed automatically. Autorenewal of --manual certificates requires the use of an authentication hook script (--manual-auth-hook) but one was not provided. To renew this certificate, repeat this same certbot command before the certificate's expiry date.

 But I want to know: Can I let boringproxy use the certificate received above to further complete its related installation and configuration?
Regards,
HZ

Good news! At first I assumed browser wouldn't support HTTPS on a different port from the one you used to get the cert, but then I got to thinking about it and wondered if it might actually work. Plus it's already been requested in #105 to support binding different ports. So I've added the arguments -http-port and -https-port. It required a few other changes as well, but I just tested using 8080/4443 and it worked great. Tested in Firefox. @hongyi-zhao can you try building from this branch and see if it works for you?
https://github.com/boringproxy/boringproxy/tree/allow-other-ports
Heads up the UI is significantly changed in the latest version.

Keep in mind that the certs will have to be in the location and format expect by certmagic. That might actually be quite tricky to do by hand and you'll have to figure it out. What might be best would be for boringproxy to take advantage of certmagic's ability to communicate with DNS providers directly. But I'm not really sure that's within scope of the project. I've opened #116 to track this.

@hongyi-zhao is your DNS provider in this list?
https://github.com/orgs/libdns/repositories?type=all

@hongyi-zhao is your DNS provider in this list?
https://github.com/orgs/libdns/repositories?type=all

Yes. I use dnspod.

can you try building from this branch and see if it works for you?
https://github.com/boringproxy/boringproxy/tree/allow-other-ports

$ git pull
$ git checkout allow-other-ports
$ git log -1
commit 30358d78087bfeaa60177d86faaa72092686944c (HEAD -> allow-other-ports, origin/allow-other-ports)
Author: Anders Pitman<EMAIL_ADDRESS>Date:   Mon Dec 20 12:56:50 2021 -0700

    Implement binding non-default ports

    Can now bind to ports other than 80/443, using the -http-port and
    -https-port arguments.

    Assuming you already have the certs you need, HTTPS even works.

    Unfortunately you can't get the certs automatically because
    LetsEncrypt doesn't support ports other than 80/443 as far as I
    know.

$ cd cmd/boringproxy/

$ go build
go: downloading github.com/mdp/qrterminal/v3 v3.0.0
../../ui_handler.go:19:12: pattern logo.png: no matching files found

Oh right. Install inkscape and run scripts/generate_logo.sh

You could also just put any PNG file at logo.png.

$ bash scripts/generate_logo.sh

** (inkscape:4009090): WARNING **: 06:44:40.794: Invalid option -o

Yeah, as I said you'd have to get the certs manually (with certbot) then put them in the location/format required by certmagic. It's probably not worth going through that trouble. I may be able to put together something for doing DNS challenges. Might not be right away though. I'll let you know.

Ok @hongyi-zhao. I think that this may eventually be something that we'll have a better solution for, but I don't think it will be for a while. In the mean time, I hacked together a quick program that might solve your problem:
https://github.com/anderspitman/certgrabber
certgrabber can use the DNS challenge to get certificates and store them in the proper format in ~/.local/share/certmagic. Then boringproxy should be able to see them.
You can run it like this:
./certgrabber -domain bp.hyddns.xyz -provider dnspod -token <dnspod API token> -challenge-type dns-01

You'll need an API token from dnspod. Let me know how it goes!

See the following:
$ certgrabber -domain bp.hyddns.xyz -provider dnspod -token <dnspod API token> -challenge-type dns-01
Getting cert for domain: bp.hyddns.xyz
bp.hyddns.xyz: obtaining certificate: [bp.hyddns.xyz] Obtain: [bp.hyddns.xyz] solving challenges: presenting for challenge: adding temporary record for zone xyz.: Create record err.Zone:xyz., Name: _acme-challenge.bp.hyddns, Value: fVbv_Lt3zu-ghHGastDOi-GbMNRVsXTX65Du2h_6eIo, Error:could not get domains: The login token ID is invalid, { TXT _acme-challenge.bp.hyddns fVbv_Lt3zu-ghHGastDOi-GbMNRVsXTX65Du2h_6eIo 0s 0} (order=https://acme-v02.api.letsencrypt.org/acme/order/324767840/48952190810) (ca=https://acme-v02.api.letsencrypt.org/directory)

Looks like there's something wrong with your dnspod token. I've never used dnspod sure not sure what it might be. It mentions "login token". Are there different types of tokens maybe?

It has two types of API key: Tencent Cloud API key and DNSPod Token, as shown below:

I've created a new DNSPod Token named as test, but still meet the same problem.

Sorry I missed the notification for your last message. It looks like your DNS isn't properly configured. I have no idea how you would fix this, other than contacting dnspod and asking why there doesn't appear to be any SOA for the domain.

I don't quite understand the meaning of this item. Please see the query results below:
$ dig hyddns.xyz +nssearch
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 24 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 24 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 28 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 28 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server 2402:4e00:1430:1102:0:9136:2b30:e554 in 28 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 32 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 32 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 40 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server 2402:4e00:1020:1264:0:9136:29bc:87f9 in 40 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 44 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 188 ms.
SOA donald.dnspod.net. freednsadmin.dnspod.com.<PHONE_NUMBER> 3600<PHONE_NUMBER> 180 from server <IP_ADDRESS> in 188 ms.

Honestly I don't know enough about dig to know what the issue is. Since certgrabber is just a very thin wrapper around certmagic, they might have a better idea what that error means.

Since certgrabber is just a very thin wrapper around certmagic, they might have a better idea what that error means.

I've given a glimpse of the usage of certmagic, and it seems that it's a go library instead of command line tool, so I don't know how to test it.

Not sure what you mean exactly. The error being displayed is directly from certmagic. If you show it to them and link back to this issue they might be able to give some clues about the underlying issue.

Thank you for your clarification. I mean, I still can't figure out how to test with certmagic under command line instead of programmatically by written go code snippet.

You don't need to test certmagic. You just need to find out what that specific error is about, then we can decide where to go from there.

I have filed an issue here, as you may have noticed.

Nice! Any outlying issues?

Nice! Any outlying issues?

Currently, the vps has been blocked by ISP, so I can't use it for further testing.

Now that you have the certs for certmagic, you should be able to run boringproxy server with those ports, and hopefully it will work. You'll need to build the current master. I just pushed some changes a few hours ago to fix running on different ports. See #123.

$ git log -1
commit 46bb670b8fd1afbcbf8bb203c6934e586db78fe5 (HEAD -> master, origin/master, origin/HEAD)
Author: Anders Pitman<EMAIL_ADDRESS>Date:   Sat Jan 1 16:32:51 2022 -0700

    Disable ACME when using custom ports

    LetsEncrypt currently only supports ports 80/443 for ACME, so if
    custom ports are used we need to disable automatically getting
    certs.

    Also changed it to only emit a warning when ports aren't
    reachable from the internet, rather than failing.

$ cd cmd/boringproxy
$ go build
$ ./boringproxy server -http-port 8000 -https-port 4430 -admin-domain bp.hyddns.xyz
2022/01/02 11:20:04 Starting up
WARNING: LetsEncrypt only supports HTTP/HTTPS ports 80/443. You are using 8000/4430. Disabling automatic certificate management
2022/01/02 11:20:05 Ready

There's nothing you can do about that at the moment. boringproxy only understands the HTTP-01 and TLS-ALPN-01 ACME challenges, which won't work for you because your ISP is blocking 80/443. So you have to use something like certgrabber to use the DNS-01 challenge.
It's less convenient but probably your only option. Is it at least working?

Is it at least working?

I'll report after I try.

I'm having the same issue, however, I'm using a raw DigitalOcean Ubuntu 20 server. DNS is pointing to the server from Namecheap. I can get a cert just fine with Caddy2, but for some reason when I try to run boringproxy it always errors out with this error:
obtaining certificate: [themodern.cloud] Obtain: [themodern.cloud] solving challenges: themodern.cloud: no solvers available for remaining challenges (configured=[http-01 tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/524700477/88384052786) (ca=https://acme-v02.api.letsencrypt.org/directory)
Any Ideas on what else would be causing the error?

@andrewdhastings pretty sure this is usually due to a firewall somewhere blocking port 443. Does boringproxy server print any warnings when it starts up? Have you verified that you can run another webserver on port 443 and have it accessed as expected?

 I thought I was using bare ubuntu, but actually was using a docker setup. (normally my go-to)
Anyways, I just used the docker-compose options and everything is up and running.

I'm having a similar issue:
no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01])
This occurred after I had a power outage at home, after trying to reboot my cloud VPS and home machines to bring things up again, I wound up having to remove manually a few tunnels and recreate them to get everything working again.  I have around 20 tunnels configured right now and it seems like I'm hitting some sort of limit with Let's Encrypt.
When I look up my domain here:
https://crt.sh/
I can see that boring proxy sometimes get stuck and generates ~15 certificates in a day, I'm guessing there is some magic sequence that I'm supposed to do in order to bring the system back up in the correct order?  Reboot the VPS first, then the homeservers?
I'm also not sure if one of these crontabs will help me, where it checks and restarts the boring proxy service:
https://forum.indiebits.io/t/connection-refused-have-to-restart-service-periodically/239/6
https://github.com/boringproxy/boringproxy/issues/41
Another question, does it matter if I run Boring Proxy inside a docker container vs. native?  If I'm running docker containers on my homserver does that mean I need to run it inside a docker container on my VPS?

I'm pretty sure you shouldn't be requesting that many certs in a day. I'm guessing that you're not saving them between boringproxy server startups. Maybe you're running in an ephemeral docker container that keeps getting recreated from scratch? Other than that, docker is just a containerization mechanism. boringproxy should happily run in or out of docker. But the way you use docker can effect it. I definitely recommend getting as deep an understanding of docker as possible. I've found it to be very worthwhile knowledge.

I'm not using BoringProxy in a docker container, it's running directly in /systemd/system
Am I supposed to be doing something to manually save the certificates between startups?  It seems like they're saved in the JSON - db file?
And to clarify, it wasn't trying to generate new certificates for all my apps, I can see on crt.sh when I search for my subdomains, it was trying to create the same SSL certificate for the same subdomain repeatedly, maybe 10 minutes apart.  One subdomain I'm looking at in particular, in just over 2 months it generated 19 certificates.  (see attached)

I was able to generate some better logs of what's happening here, the no solvers available for remaining challenges error is actually one of the last errors that I'm getting (below).  I've got a lot of tunnels set up so it's a bit long, but I'm not requesting it to create all these certificates at once, it's getting stuck somehow and looping?
First it creates and bores the tunnels, then it starts getting the failed to dial and handshake messages, then the part I'm seeing that's interesting is the [INFO][FileStorage:/home/redacted/.local/share/certmagic] Lock for 'issue_cert_matrix.example2.com' is stale piece.
When I go into that .local/share/certmagic folder there are three of my certs listed in there right now, maybe they're the ones it'll have trouble with the next time it runs?
/home/(redacted)/boring/boringproxy-linux-x86_64 client -server boring.example.net -token (redacted) -client-name (redacted) -user (redacted)
2023/06/12 21:44:51 SyncTunnels
2023/06/12 21:44:51 New tunnel jvb.boring.example.net
2023/06/12 21:44:51 New tunnel serpbear.boring.example.net
2023/06/12 21:44:51 New tunnel status.example.net
2023/06/12 21:44:51 New tunnel synapse-admin.boring.example.net
2023/06/12 21:44:51 New tunnel example.net
2023/06/12 21:44:51 New tunnel element.lppamonroe.com
2023/06/12 21:44:51 BoreTunnel jvb.boring.example.net
2023/06/12 21:44:51 BoreTunnel element.lppamonroe.com
2023/06/12 21:44:51 BoreTunnel serpbear.boring.example.net
2023/06/12 21:44:51 New tunnel matrix.lppamonroe.com
2023/06/12 21:44:51 New tunnel neptune.boring.example.net
2023/06/12 21:44:51 New tunnel www.example.net
2023/06/12 21:44:51 BoreTunnel matrix.lppamonroe.com
2023/06/12 21:44:51 BoreTunnel www.example.net
2023/06/12 21:44:51 New tunnel matrix.example2.com
2023/06/12 21:44:51 New tunnel change.boring.example.net
2023/06/12 21:44:51 New tunnel cloud.boring.example.net
2023/06/12 21:44:51 New tunnel cloud.example2.com
2023/06/12 21:44:51 New tunnel element.example.net
2023/06/12 21:44:51 New tunnel element.example2.com
2023/06/12 21:44:51 New tunnel matrix.example.net
2023/06/12 21:44:51 BoreTunnel neptune.boring.example.net
2023/06/12 21:44:51 New tunnel jitsi.boring.example.net
2023/06/12 21:44:51 BoreTunnel jitsi.boring.example.net
2023/06/12 21:44:51 BoreTunnel status.example.net
2023/06/12 21:44:51 BoreTunnel example.net
2023/06/12 21:44:51 BoreTunnel matrix.example2.com
2023/06/12 21:44:51 BoreTunnel synapse-admin.boring.example.net
2023/06/12 21:44:51 BoreTunnel change.boring.example.net
2023/06/12 21:44:51 BoreTunnel element.example.net
2023/06/12 21:44:51 BoreTunnel cloud.boring.example.net
2023/06/12 21:44:51 BoreTunnel element.example2.com
2023/06/12 21:44:51 BoreTunnel cloud.example2.com
2023/06/12 21:44:51 BoreTunnel matrix.example.net
2023/06/12 21:44:51 BoreTunnel error:  Failed to dial: ssh: handshake failed: read tcp <IP_ADDRESS>:58088-><IP_ADDRESS>:22: read: connection reset by peer
2023/06/12 21:44:51 BoreTunnel error:  Failed to dial: ssh: handshake failed: read tcp <IP_ADDRESS>:58244-><IP_ADDRESS>:22: read: connection reset by peer
2023/06/12 21:44:51 BoreTunnel error:  Failed to dial: ssh: handshake failed: read tcp <IP_ADDRESS>:58186-><IP_ADDRESS>:22: read: connection reset by peer
2023/06/12 21:44:51 BoreTunnel error:  Failed to dial: ssh: handshake failed: read tcp <IP_ADDRESS>:58142-><IP_ADDRESS>:22: read: connection reset by peer
2023/06/12 21:44:53 BoreTunnel error:  Unable to register tcp forward for <IP_ADDRESS>:3014 ssh: tcpip-forward request denied by peer
2023/06/12 21:44:53 BoreTunnel error:  Unable to register tcp forward for <IP_ADDRESS>:3011 ssh: tcpip-forward request denied by peer
2023/06/12 21:44:53 [INFO][FileStorage:/home/redacted/.local/share/certmagic] Lock for 'issue_cert_matrix.example2.com' is stale (created: 2023-06-12 15:39:43.673943723 -0400 EDT, last update: 2023-06-12 19:55:06.258987157 -0400 EDT); removing then retrying: /home/redacted/.local/share/certmagic/locks/issue_cert_matrix.example2.com.lock
2023/06/12 21:44:53 [INFO][FileStorage:/home/redacted/.local/share/certmagic] Lock for 'issue_cert_element.example2.com' is stale (created: 2023-06-12 15:39:43.674158123 -0400 EDT, last update: 2023-06-12 19:55:06.258986997 -0400 EDT); removing then retrying: /home/redacted/.local/share/certmagic/locks/issue_cert_element.example2.com.lock
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 cloud.boring.example.net: obtaining certificate: [cloud.boring.example.net] Obtain: [cloud.boring.example.net] solving challenges: cloud.boring.example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 synapse-admin.boring.example.net: obtaining certificate: [synapse-admin.boring.example.net] Obtain: [synapse-admin.boring.example.net] solving challenges: synapse-admin.boring.example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted7) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 jvb.boring.example.net: obtaining certificate: [jvb.boring.example.net] Obtain: [jvb.boring.example.net] solving challenges: jvb.boring.example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 matrix.lppamonroe.com: obtaining certificate: [matrix.lppamonroe.com] Obtain: [matrix.lppamonroe.com] solving challenges: matrix.lppamonroe.com: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 element.example.net: obtaining certificate: [element.example.net] Obtain: [element.example.net] solving challenges: element.example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 element.example2.com: renewing certificate: [element.example2.com] Renew: [element.example2.com] solving challenges: element.example2.com: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:55 CertMagic error at startup
2023/06/12 21:44:55 matrix.example2.com: renewing certificate: [matrix.example2.com] Renew: [matrix.example2.com] solving challenges: matrix.example2.com: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:56 CertMagic error at startup
2023/06/12 21:44:56 example.net: obtaining certificate: [example.net] Obtain: [example.net] solving challenges: example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:56 CertMagic error at startup
2023/06/12 21:44:56 element.lppamonroe.com: obtaining certificate: [element.lppamonroe.com] Obtain: [element.lppamonroe.com] solving challenges: element.lppamonroe.com: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)
2023/06/12 21:44:56 CertMagic error at startup
2023/06/12 21:44:56 neptune.boring.example.net: obtaining certificate: [neptune.boring.example.net] Obtain: [neptune.boring.example.net] solving challenges: neptune.boring.example.net: no solvers available for remaining challenges (configured=[tls-alpn-01] offered=[http-01 dns-01 tls-alpn-01] remaining=[http-01 dns-01]) (order=https://acme-v02.api.letsencrypt.org/acme/order/redacted) (ca=https://acme-v02.api.letsencrypt.org/directory)


AirBnB attestation: public username?

We have some functional code for adding AirBnB attestations to one's profile. https://github.com/OriginProtocol/origin-dapp/pull/278
Currently our attestations just show the fact that some pieces of data has been verified (in this case the ownership of some AirBnB profile). The actual data itself is being kept private.
In the case of AirBnB, a use case has been outlined for making the username public; namely the importing of reputation from AirBnB to Origin. See https://github.com/OriginProtocol/origin-js/issues/226
It is possible for us to store the AirBnB username on IPFS, and then store the IPFS hash on the attestation that exists on the blockchain. This is public data (and possibly permanently so, assuming the IPFS data is not lost). So if we're going to make the username public in this way, we should at least be aware of the implications.
There are possibly other alternatives for publicizing the username (such as storing it on the bridge server rather than IPFS, which feels a bit less permanent).
On the same note, we may want to take this time to also consider similar implications for Facebook/Twitter attestations.

As I mentioned in https://github.com/OriginProtocol/origin-js/issues/226, making an AirBnB profile public strikes me as not so bad as other online identities to be revealed.
That said, it occurred to me there's also a route where our attestation server does more than just verify that the identity is owned, but also does some analysis of the reputation.
I.e. Instead of the attestation being "This person has an AirBnB profile", it would be "This person has an AirBnB profile, has been a guest 42 times and a host 6 times, and has an average review of 4.2 stars". Thus the reputation is "exported" without the identity being revealed.
This strikes me as a lot of work, as being a brittle page-scraping app, and maybe scope creep, but worth considering.

@wanderingstan Yeah we could do something like that (attesting various attributes of the profile). I'm also skeptical of that approach though. In addition to being a non-trivial implementation, it's also more centralized than simply posting the username and letting people view it for themselves.
I agree that it's fine for an AirBnB profile to be public. I think the key is making sure users are aware of this, and avoiding confusion if Facebook and Twitter are private.
That said, I do think AirBnB is a different use case than Facebook/Twitter profiles. Facebook and Twitter stamps can more or less add some trustworthiness (I just used letgo to buy something actually; letgo just uses social media stamps without actually letting users see the profile; same as we're doing right now.) An AirBnB profile on the other hand would be used to make it as easy as possible to onboard AirBnB users. AirBnB is a parallel service to Origin in a way that Facebook and Twitter are not.
All that said - imho this shouldn't be priority right now. I think an AirBnB stamp is a great start, and we can revisit making it public later. (I say this given all the other big tasks in front of us.)

This issue actually goes far beyond Airbnb as we eventually want to support attestations from all sorts of providers. We can generalize the question to what information should actually be stored on-chain for attestations. We basically have 3 options:

We store the raw data on-chain. ie. Publish my email address, phone number, link to my Airbnb account, etc on the blockchain. I don't think it's responsible for us to encourage people to publish too much of their personally identifiable information on an immutable blockchain, especially as many people will not understand the potential consequences.

We store a hash of their data. This is probably where we want to end up long term. We can verify some data, and publish an attestation without having to store personally identifiable information on our own servers. In this model, the end-user is still responsible for holding and revealing their own personal information, but we can attest that we've verified it. Remember, we'd rather not be holding personal information if we can help it. The reason we didn't roll this out right away is that we wanted to make sure we are comfortable storing even hashed versions of people's data on an immutable blockchain. Rainbow tables & brute force attacks could easily be used to deanonymize a lot of data (for example, a phone number). I asked Vitalik about this challenge and he recommended we use Merkle tree proofs. That makes sense to me at a high level, but I haven't dug into the details. Another challenge with this approach is figuring out how & when to reveal the information if the user is the only person who holds that information. Does a seller have to manually reveal their identity each time a buyer asks? How does arbitration work if we don't know who people are anymore?

We store a check mark on the blockchain & store the raw data in our own DB. This works for centralized services because you trust that the centralized service has the data and will be able to help if something goes wrong. The check mark is pretty meaningless if no one is storing the raw data anywhere. For the check mark to work, you need to be a trusted authority, but we're trying to remove ourselves from that role.

Basically, we're going with #3 for now and hoping to transition to #2 once we have a better handle on the security implications & usability challenges. I think it makes sense for users to be able to opt for #1 if they're comfortable with revealing that information publicly. I'd be happy to publish my Twitter handle on the blockchain for example. We just need to make sure that people actually understand what they're doing.


Bricked device on upgrade?

Hi,
I am completely new to home automation and coding. I have a set of smart outlets which I have flashed with tasmota using tuya convert. However, when I tried to flash another of the exact same outlet, it seems to have been bricked. I followed the steps exactly like before, it succefully flashed tasmota. When i tried to OTA upgrade, it restarted and i got the message "minimal firmware". I did the OTA firmware again, and after that the device is completely dead. The LED does not work, it is not connected to my wifi. Is there anything one can do to recover this?
The device is a Neo WiFi smart plug, EU version, 10A.

Sorry, we do not develop Tasmota, you will have to go through their support channels for help.


Extend the Overlay tests to cover a range of depth-stencil formats

Description
Repeat the Overlay tests using depth-stencil buffers with the following formats: D32_S8, D24_S8, D32, D24, D16 restricted to what is supported by each API ie. D24 is not supported by D3D11 or D3D12.
Testing
On Windows

using automated tests ./x64/Development/renderdoccmd.exe test functional -t _Overlay
captured and manually verified the demos_x64.exe program with each API Overlay test : D3D11_Overlay_Test, D3D12_Overlay_Test, GL_Overlay_Test, VK_Overlay_Test

Replaced by https://github.com/baldurk/renderdoc/pull/3055


Pass different argument to yarn based on whether we're building staging or prod

Pull reviewers stats
Stats for the last 30 days:

User
Total reviews
Median time to review
Total comments

MauriceReeves-usds
26
17h 35m
7

cwinters-usds
26
14h 13m
24

kevinhaube
20
1h 8m
9

carlosfelix2
20
16h 53m
55

jimduff-usds
17
20h 16m
18

sean-usds
17
1h 32m
5

clediggins-usds
17
1h 53m
28

RickHawesUSDS
14
4h 15m
18

whytheplatypus
8
2h 23m
12

TomNUSDS
8
31m
2

jbiskie
4
1h 42m
1

brick-green-agile6
4
7h 3m
1

jorg3lopez
3
1d 8h 45m
0

ahay-agile6
2
1d 9h 28m
0

JosiahSiegel
1
5d 2h 55m
2

MikeC-A6
1
7h 7m
3

rhood23699
1
14h 10m
0

sethdarragile6
1
2h 17m
0

Thanks for catching this! I think we need to update this line too https://github.com/CDCgov/prime-reportstream/blob/master/.github/workflows/github_release.yaml#L71


unit & integration tests

selenium,
mocks for unit tests,
http data provider is also required

also for evaluation of the thesis

implemented here

updated


Invalid SQL generated while migrating to sequential column

No semicolon after ALTER SEQUENCE statement;
CREATE SEQUENCE "Page_IDNew_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE NO MAXVALUE NO CYCLE;
ALTER TABLE "Page" ALTER COLUMN "IDNew" TYPE int8;
ALTER TABLE "Page" ALTER COLUMN "IDNew" SET NOT NULL;
ALTER TABLE "Page" ALTER COLUMN "IDNew" SET DEFAULT (nextval('"Page_IDNew_seq"'));
ALTER SEQUENCE "Page_IDNew_seq" OWNED BY "Page"."IDNew"
ALTER TABLE "Page" ADD CONSTRAINT "PK_Page" PRIMARY KEY ("IDNew");

Sorry, this issue slipped through the cracks... I've verified and the bug is still there. Will fix soon.


[WIP] io free monad

Fixes #21
Problem
Quill performs side effects but doesn't provide an easy way to isolate them.
Solution
Introduce the IO free monad that defers execution until unsafePerformIO is called.
Notes
The execution of IO uses the same execution mechanism its context. For instance, it doesn't try to implement an async wrapper on top of jdbc; the return type of a synchronous context is synchronous.
Checklist

[x] Unit test all changes
[ ] Update README.md if applicable
[x] Add [WIP] to the pull request title if it's work in progress
[x] Squash commits that aren't meaningful changes
[x] Run sbt scalariformFormat test:scalariformFormat to make sure that the source files are formatted

@getquill/maintainers

Wouldn't it be better to actually have a way to use a async monad even for JDBC where the monad uses a execution context to actually run the queries? I think that's one of the strengths of a monad, that you can actually hide a thread pool behind and still have the power of transactions, etc.

@schmitch an async wrapper on top of blocking IO has many trade-offs. Considering that Quill has support for fully non-blocking IO for the main databases (mysql and postgres), I don't see why we should compromise and build an async wrapper.

@fwbrasil @schmitch I think it is a good practice to isolate blocking IO with their own thread pool. At the same time, I don't think a standard async wrapper around the blocking jdbc is the way to go. We need something in between. If, with the IO monad, we know exactly when the side-effect happens, we can always isolate it in its own thread pool explicitly. A more sophisticated solution would be if we could write our own free monad interpreter.

I'm closing this for now. I won't delete the branch so we can recover in the future.


Description is not updated at midnight

After midnight, wallpaper is updated but the description in the menu bar is not updated and show description of yesterday's wallpaper.

Think that's the Bing servers issue. Whenever someone update his/her wallpaper, main.py (python module) requests to Bing's server and tries to get the wallpaper image and the description provided by Bing.

Anyway, please look at the main.py to see if there are any problems. I may be incorrect.

I'm sorry, I reported this issue on the wrong repository. I use another GNOME Shell extension.


Automatically start proxying after access granted

Currently the first time a user wants to proxy through their friend, they first have request access, and then after access is granted they have to click "Start".  This is confusing some users in our UX studies, as they expect that proxying should automatically start when access is granted.
We can add some logic to automatically start proxying if the "access granted" message is returned from the peer within a short time (maybe 30 seconds?).  If the user waits longer than that time frame, or for all future proxy sessions with that same peer, they will need to click the "Start" button to begin proxying.

Closing as this is not a priority right now


Bug in handling of non-expiring capability tokens

The CapabilityController currently uses Instant.MAX to create non-expiring timestamps. However, due to a bug in the JDK this will actually be converted to a timestamp in the past and the tokens will still be deleted if stored in the DatabaseTokenStore.
The code should be updated to either use something like Instant.now().plus(1000, YEARS) or else to provide a manual conversion from instants to timestamps (the bug recommends using new Timestamp(token.expiry.toEpochMilli())).

Changed to arbitrary expiry of Epoch + 10,000 years. I am going to revise chapter 9 to use shorter-expiry tokens in a future update so this problem will disappear.


Send proper error response upon proxy error

Currently the custom onError handler for httpProxyMiddleware only logs proxy error on the console (#502).  This amends the onError handler so it will also send proper error response to the client.
Otherwise the client will wait for the response and eventually timeout with ERR_EMPTY_RESPONSE, instead of the proper proxy error.  See two screenshots before/after this PR.

No proper error response  (timeout after up to 2 min):

Proper error response (with this PR):

Note the error response to the client also mirrors the error logged on the dev console:
Proxy error: Could not proxy request /api/login from localhost:3000 to http://localhost:3001 (ECONNREFUSED).

Thanks!

This should be fixed in 0.4.2.
Please verify!

Yes, works as expected.


Additional information is only guid

Strangely enough, other logs are OK. The normal information should be the following:

The field information of GUID is not found in our code.
I want to ask, under what circumstances will this problem arise?
Thank you very much.

That's a really good question, we also do not set guid in our SDK.
Can you link me to your issue in Sentry?
Also are you using the latest version?

I am using the latest version, What I want to ask is, why is it only the guid field, no other information?

@BlackHole1 I assume you see these additional fields in native crashes reported by sentry-electron, as opposed to native crashes? In any case, these fields are set by the underlying Electron Crash Reporter.  Also, an update of Electron might have lead to different behavior here.
Most of that information should also show up in the other contexts (see the groups at the top). If you are missing any critical debugging information, please let us know which versions of Electron and the SDK you are using and ideally let us know, which Sentry organization you are on.
I am closing this for now, as it is expected behavior. We do not guarantee any of the additional attributes. Feel free to share more information if you lack critical information and we will re-open.
Thanks!


Allow the use of any generator to generate a distribution

This is now very simple, see https://github.com/tdegeus/prrng/pull/77


More general support for hdr stacks in primitives

Support arbitrary primitives using header stacks as parameters, instead
of just push and pop.

Codecov Report

Merging #86 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #86      +/-   ##
==========================================
+ Coverage   97.11%   97.12%   +<.01%
==========================================
  Files          10       10
  Lines        1664     1668       +4
==========================================
+ Hits         1616     1620       +4
  Misses         48       48

Impacted Files
Coverage Δ

p4c_bm/gen_json.py
98.11% <100%> (ø)
:arrow_up:

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 e950d6b...7ace36d. Read the comment docs.


Need to tell people how to update who authored the course in the documentation

line 14 of the _output.yml file

For things like this, would it be helpful to also have ready made functions that people could call? Thinking of an R function that could call a helpful unix command and overwrite the file

but could also have a function too if people like doing it that way


RequirementMachine: More debug output from 'propagateRedundantRequirementIDs()' and some other small tweaks

This is just leftovers from when I was investigating a couple of issues.

@swift-ci Please smoke test


flatpak: 1.1.3 -> 1.2.0

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/flatpak/versions.
meta.description for flatpak is: '"Linux application sandboxing and distribution framework"'.
Release on GitHub
Compare changes on GitHub

Checks done (click to expand)

built on NixOS
/nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/flatpak passed the binary check.
Warning: no invocation of /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/flatpak-bisect had a zero exit code or showed the expected version
/nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/flatpak-coredumpctl passed the binary check.
/nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/.flatpak-wrapped passed the binary check.
Warning: no invocation of /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/.flatpak-bisect-wrapped had a zero exit code or showed the expected version
/nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin/.flatpak-coredumpctl-wrapped passed the binary check.
4 of 6 passed binary check by having a zero exit code.
2 of 6 passed binary check by having the new version present in output.
found 1.2.0 with grep in /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0
directory tree listing: https://gist.github.com/a7c21ce8ce5b5ba6f0f9ff66bd679c2e
du listing: https://gist.github.com/9aaddde05e585575bb341459a0398b68

Rebuild report (if merged into master) (click to expand)

18 total rebuild path(s)
6 package rebuild(s)
6 x86_64-linux rebuild(s)
6 i686-linux rebuild(s)
0 x86_64-darwin rebuild(s)
6 aarch64-linux rebuild(s)
First fifty rebuilds by attrpath
flatpak
flatpak-builder
gnome-builder
gnome3.gnome-software
xdg-desktop-portal
xdg-desktop-portal-gtk

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A flatpak https://github.com/r-ryantm/nixpkgs/archive/b712259e8140ce546c99372906c05ff3803eed6f.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0
ls -la /nix/store/zkz95v2my2f8s50sswbnvyzdr9sdymnw-flatpak-1.2.0/bin

cc @jtojnar for testing.

Don't merge as this will be done in https://github.com/NixOS/nixpkgs/pull/54299


Disable sort by by default

For more consistent with default behavior of Pie chart, Sort by should be disabled by default.

Will not do


Created Frontend for Attempt Model & Exercise Update

Added Attempt Mock Complete
Updated Exercise Form to have reference tests

I'll hold-off on reviewing until we also have a corresponding PR for @KavetiRohith 's backend (or both integrated into a single PR). Just mark it as "Ready for review" once it's good for me to review.

@numan-7 The backend work is done on this branch: https://github.com/codewit-us/codewit.us/tree/attempts-backend

@numan-7 the backend work is done on this branch: https://github.com/codewit-us/codewit.us/tree/attempts-backend.

Looks good to me.


Fuzzing & CI fix + rules

:tada: This PR is included in version 1.4.0 :tada:
The release is available on:

GitHub release
v1.4.0

Your semantic-release bot :package::rocket:


MGMT-16636: Add a webhook for namespace deletion

This commit makes KMM set the kmm.node.k8s.io/contains-modules label on all namespaces that contain at least one Module.
It also adds a new webhook to the bundle and the corresponding handler in the manager.
The new webhook rejects namespace deletions if the kmm.node.k8s.io/contains-modules label is present on the namespace. This avoids entering situations where the namespace is being deleted and KMM cannot create unloading Pods to honor Module deletion.
Fixes #999
/cc @mresvanis @yevgeny-shnaidman

/lgtm

/cherry-pick release-2.0


Compendium Folders Incompatiblity on Spell Scroll Randomization

If you use a custom compendium for rolling spells that has internal folders provided by Compendium Folders, this module throws this error.
loot-manipulation.js:5 Uncaught (in promise) TypeError: Cannot read property 'level' of undefined
    at loot-manipulation.js:5
    at Array.filter (<anonymous>)
    at LootManipulator._getRandomSpell (loot-manipulation.js:5)
    at LootManipulator.preItemCreationDataManipulation (loot-manipulation.js:29)
    at LootCreator.buildItemData (loot-creator.js:118)
    at async LootChatCard.findOrCreateItems (loot-chat-card.js:38)
    at async LootChatCard.prepareCharCart (loot-chat-card.js:110)
    at async LootChatCard.createChatCard (loot-chat-card.js:150)
    at async BetterTables.generateChatLoot (better-tables.js:77)
    at async HTMLButtonElement.newRollButton.onclick (better-table-view.js:89)
(anonymous) @ loot-manipulation.js:5
_getRandomSpell @ loot-manipulation.js:5
preItemCreationDataManipulation @ loot-manipulation.js:29
buildItemData @ loot-creator.js:118
async function (async)
newRollButton.onclick @ better-table-view.js:89

Thanks for your feedback ! I just submit a PR (#130) to add compatibility support with Compendium Folders. Please wait for the next release !

This is fixed in release v1.8.3 :) This issue can be closed.


Amends ZK download url so that filename param comes last

Previously this caused the script to fork / never install

Thanks for that @m4rkmckenna,  looks good to me


FancyZones should not resize non-resizable windows

Environment
Windows build number: 10.0.19587.1000
PowerToys version: v0.16.1
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce

Configure FancyZones to 3 column layout
Download https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
Execute wsl_update_x64.msi
Move the installer to a zone

Expected behavior
Window should be positionied in the center of the zone
Actual behavior
Window is maximized and has large gray area.
Screenshots

Hi @koppor
thank you for reporting the issue, in theory this is already fixed in master by https://github.com/microsoft/PowerToys/commit/17022d50d48678536096336c2d75365654a8e5bf
We'll verify it to make sure.
Thanks.

This is same issue as #1883.
It's already fixed on master. It will be live with 16.2.
Thanks


Styelint for CSS with CLI configuration

created:

.stylelintrc

updated:

CSS files to 4 spaces
Linting commands

npm run lint, npm run lint:js, npm run lint:css
note I added "|| true" to avoid an Exit 2 npm occurrence on CSS lint:    https://github.com/npm/npm/issues/6124

docs/general/commands.md

Looks great, thanks so much for your work @brotzky!


copr: add non-vectorized make_set

Signed-off-by: Bartosz Podkanowicz<EMAIL_ADDRESS>UCP  #6943
Checklist #5751

What problem does this PR solve?
Issue Number: close #6943
Problem Summary:
What is changed and how it works?
add non-vectorized make_set
What's Changed:
Related changes
Check List
Tests

Unit test

/merge

/merge


Import rubocop-cask gem.

Also:

remove need for public_suffix gem

rename existing rubocops to be consistent with their class names

[x] Have you followed the guidelines in our Contributing document?

[x] Have you checked to ensure there aren't other open Pull Requests for the same change?

[x] Have you added an explanation of what your changes do and why you'd like us to include them?

[x] Have you written new tests for your changes? Here's an example.

[ ] Have you successfully run brew style with your changes locally?

[ ] Have you successfully run brew tests with your changes locally?

Some really weird stuff going on with brew style here but will wait for @reitermarkus to help me figure out WTF is going on here.

@reitermarkus Done. Output here: https://dev.azure.com/Homebrew/Homebrew/_build/results?buildId=872&view=logs

Unprocessable file /Users/vsts/agent/2.141.1/work/1/s/Library/Homebrew/test/support/fixtures/elf/hello: ArgumentError, invalid byte sequence in UTF-8

Is this only showing up because of the --debug flag?

@reitermarkus I think the issue is Library/Homebrew/rubocops/cask/config/default.yml for the builtin cops. Thoughts on how we should be handling that for casks?

Thoughts on how we should be handling that for casks?

No idea, but we can't have both the Formula and Cask config in HOMEBREW_LIBRARY.

These are reporting offenses when running brew cask style with all taps installed:

Metrics/LineLength
Naming/FileName
Metrics/BlockLength
Layout/IndentArray
Style/TrailingCommaInArrayLiteral
Layout/AlignHash
Layout/IndentHash

5620 files inspected, 15590 offenses detected

These are reporting offenses when running brew cask style with all taps installed

This is now fixed.


Unclear setup steps for GH pages

Under the “Pages” section on the left sidebar, and set the source to “deploy from a branch” and check “Enforce HTTPS”

However, I don't have an "Enforce HTTPS" checkbox.

hm, what happens if you select a branch in the dropdown (gh-pages, presumably)?

Oh yes, then it appears. The repository is currently on my personal account, and HTTPS is enabled by default and cannot be disabled:

Gotcha, I'll update the instructions.


add release instructions to the contributing guidelines

Not completely the same are react-hydrogen  since now we are in a mono-repo. Here are the guidelines for releasing.

Should we merge this in?

outdated


Integrate with angular schematics

Issue description
Write angular schematics to integrate with the CLI
Other information
See: https://angular.io/guide/schematics-for-libraries

hi, how to fix it?
ERROR in Directive ɵb in<EMAIL_ADDRESS>has no selector, please add it!


Steam not working

Describe the bug
Launching steam pure client doesn't work
To Reproduce
Install package "steam"
Run "steam" cmd
https://github.com/eoli3n/nix-config/blob/master/modules/includes/desktop-packages.nix#L27
Expected behavior
Steam running
Logs
$ steam
cp: cannot create regular file '/home/user/.local/share/Steam/bootstrap.tar.xz': Permission denied
Running Steam on nixos 20.03pre212208.8130f3c1c2b 64-bit
STEAM_RUNTIME has been set by the user to: /steamrt
/home/user/.local/share/Steam/ubuntu12_32/steam
Installing breakpad exception handler for appid(steam)/version(1581460722)
Installing breakpad exception handler for appid(steam)/version(1581460722)
Installing breakpad exception handler for appid(steam)/version(1581460722)
Installing breakpad exception handler for appid(steam)/version(1581460722)
[2020-02-13 16:03:36] Startup - updater built Feb 11 2020 19:26:28
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2020-02-13 16:03:36] Checking for update on startup
[2020-02-13 16:03:36] Checking for available updates...
[2020-02-13 16:03:36] Downloading manifest: client-download.steampowered.com/client/steam_client_ubuntu12
[2020-02-13 16:03:36] Download skipped: /client/steam_client_ubuntu12 version<PHONE_NUMBER>, installed version<PHONE_NUMBER>
[2020-02-13 16:03:36] Nothing to do
[2020-02-13 16:03:36] Verifying installation...
[2020-02-13 16:03:36] Performing checksum verification of executable files
[2020-02-13 16:03:37] Verification complete
glXChooseVisual failed
glXChooseVisual failedMain.cpp (333) : Assertion Failed: Fatal Error: glXChooseVisual failed
Main.cpp (333) : Assertion Failed: Fatal Error: glXChooseVisual failed
Installing breakpad exception handler for appid(steam)/version(1581460722)
STEAM_RUNTIME_HEAVY: ./steam-runtime-heavy
[0213/160337.821293:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: browser
[0213/160337.849657:WARNING:crash_reporting.cc(286)] Failed to set crash key: UserID with value: 0
[0213/160337.849738:WARNING:crash_reporting.cc(286)] Failed to set crash key: BuildID with value:<PHONE_NUMBER>
[0213/160337.849742:WARNING:crash_reporting.cc(286)] Failed to set crash key: SteamUniverse with value: Public
[0213/160337.849745:WARNING:crash_reporting.cc(286)] Failed to set crash key: Vendor with value: Valve
assert_20200213160337_6.dmp[5237]: Uploading dump (out-of-process)
/tmp/dumps/assert_20200213160337_6.dmp
[0213/160337.892185:WARNING:crash_reporting.cc(286)] Failed to set crash key: UserID with value: 0
[0213/160337.892235:WARNING:crash_reporting.cc(286)] Failed to set crash key: BuildID with value:<PHONE_NUMBER>
[0213/160337.892239:WARNING:crash_reporting.cc(286)] Failed to set crash key: SteamUniverse with value: Public
[0213/160337.892242:WARNING:crash_reporting.cc(286)] Failed to set crash key: Vendor with value: Valve
[0213/160337.892881:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: gpu-process
[0213/160337.921878:ERROR:sandbox_linux.cc(369)] InitializeSandbox() called with multiple threads in process gpu-process.
[0213/160337.947530:WARNING:crash_reporting.cc(286)] Failed to set crash key: UserID with value: 0
[0213/160337.947585:WARNING:crash_reporting.cc(286)] Failed to set crash key: BuildID with value:<PHONE_NUMBER>
[0213/160337.947589:WARNING:crash_reporting.cc(286)] Failed to set crash key: SteamUniverse with value: Public
[0213/160337.947592:WARNING:crash_reporting.cc(286)] Failed to set crash key: Vendor with value: Valve
[0213/160337.948284:INFO:crash_reporting.cc(247)] Crash reporting enabled for process: utility
assert_20200213160337_6.dmp[5237]: Finished uploading minidump (out-of-process): success = yes
assert_20200213160337_6.dmp[5237]: response: CrashID=bp-6bec177d-33a9-4fa6-8544-6b58c2200213
assert_20200213160337_6.dmp[5237]: file ''/tmp/dumps/assert_20200213160337_6.dmp'', upload yes: ''CrashID=bp-6bec177d-33a9-4fa6-8544-6b58c2200213''

Metadata
 - system: `"x86_64-linux"`
 - host os: `Linux 4.19.100, NixOS, 20.03pre212208.8130f3c1c2b (Markhor)`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.3.2`
 - channels(root): `"nixos-20.03pre212208.8130f3c1c2b"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: steam
# a list of nixos modules affected by the problem
module:

https://github.com/NixOS/nixpkgs/issues/47932#issuecomment-447508411
I'll try this tommorow

It worked


Cloud Data Warehouse & Data Lake Modernization (Foundation Level)

https://now.informatica.com/cdwdl-foundation-series-certification.html

Completed the course
Session 1: Cloud Modernization: Cloud Data Warehouse & Cloud Data Lake

Completed the course
Session 2: Cloud Modernization: Data Catalog, Data Integration, & Mass Ingestion

Completed the course
Session 3:  Cloud Modernization: Cloud Data Quality & Data Governance


De-incubate all APIs pre Gradle 3.0

That brings down usages of @Incubating from 1861 to 1282. Still high but a little bit better..

Diff of incubating report before and after the PR as it is now: https://gist.github.com/lptr/be9438bf3684eb8f3bdce2af3401e815

@lptr PTAL.

I see IncrementalCompileOptions de-incubated, but what about ScalaPlatform?

@lptr See https://github.com/gradle/gradle/pull/7229#discussion_r224103229

That link doesn't do anything. :o

Found it. LGTM.

Wait, ComponentReport is still promoted!

Fixed.


AnimationPlayer scrollbar doesn't update if an audio clip is dragged out of view

Godot master efdd0c4b894a4329469e3c8456b0440e7398c5d8
If you drag an audio clip to the left beyond the beginning of the animation, the scrollbar doesn't update and you can't scroll to look at the clip. So if you drag the clip out of view to the left, you can't get it back. The only way is to zoom out to make the scrollbar appear.
This also reproduces when dragged on the right.

This happens with all keys https://github.com/godotengine/godot/issues/19416 Basically setting the time of a key to negative values messes the editor


Deprecate legacy molecule drawing code

this hasn't been maintained for years and should remove this for the next release

@ptosco this is just text


DMTP_Grant Request

Project Abstract

Please provide a brief description of your project here summarising key points (1-2 paragraphs).
If your application is a follow-up to a previous grant, please mention which one in the first line of the abstract and include a link to previous pull requests if applicable.

For which grant level are you applying?

[x] Level 1:  Up to $10,000, 2 approvals
[ ] Level 2:  Up to $50,000, 3 approvals
[ ] Level 3:  Unlimited, 5 approvals (for > $100k Web3 Foundation Council approval)

Application Checklist

[x] The application template has been copied, renamed ( project_name.md) and updated.
[x] A BTC or Ethereum (DAI/USDT) address for the payment of the milestones is provided inside the application.
[x] I have read and acknowledged the terms and conditions.
[x] The software delivered for this grant will be released under an open-source license specified in the application.
[x] The initial PR contains only one commit (squash and force-push if needed).
[x] The grant will only be announced once the first milestone has been accepted.

How Did You Hear About our grants program?

[ ] Social Media
[ ] Hackathon
[x] Personal Recommendation
[ ] Substrate Builders Program
[ ] Investor/VC
[x] Online Search
[ ] Other: _______

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

We are just starting to develop and there are quite a few things we don't know. Even if we are not selected by Grant for this application, we would like to know where we should improve.
I intend to spend my life trying my hand at this field.
Let's create the era of Web3 together.

We have corrected the estimates and milestones that you pointed out. Please check it.

ping @AruSasaki.
It's probably easiest if you create a new pull request from a new fork and simply paste the applications.DMTP.md file into it. This section of our README explains what to do.

I’m closing this application due to inactivity. Let me know if I should reopen it.


Faucet issue

Describe the feature request
I cannot mint the Horse coin on the Katla net. Is there any way to make it possible? thanks
Spam policy

[X] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

You can swap your Katla ETH to HORSE using https://swap.katla.taiko.xyz/#/swap

@hkanekici can you share the error you see? Also provide the wallet address


Enable manual control of horizontal scale

The vertical axis range could already be controlled. I have added control for the horizontal scale. This addresses #20 .

I just want to vouch in and thank @TimSC for this. I’m using it in a project. :trophy:

I'm sorry for the late reply. Your PR is merged.


Change Request: Non-Seekable Streams

The Basics

Which design guideline is affected?

https://azure.github.io/azure-sdk/general_azurecore.html#retry-policy

Which target languages are affected?

All

Describe the change:

Our APIs, across all languages, should support both seekable and non-seekable streams.
Reasoning
Currently, most APIs which execute HTTP operations require seekable streams.  If a caller has a non-seekable stream, they are responsible for buffering it into a seekable stream before calling our API.
Instead, I believe our APIs should support both seekable and non-seekable streams.
If the stream is seekable we disable internal buffering for the best performance, and if the stream is non-seekable we internally buffer as necessary.  I think this provides the best of both worlds.
If we cannot determine if a stream is seekable (as may be the case in Java Flux), we should default to assuming the stream is not seekable, and add a parameter for the caller to assert the stream is seekable.  Similarly, if we want to allow a non-seekable stream without internal buffering, we should add a parameter to disable buffering (and retries).

Let me add something for I forget: PUT BLOB and PUT BLOCK require the Content-Length header. If the stream is seekable, then the customer doesn't have to pass the length to the method; instead, the method can ask the stream for its length and use that for the Content-Length header. This simplifies the method's signature and customer experience. Accepting a non-seekable stream will require this additional parameter and trusts that the stream has at least as much content as the customer passed into the method.

This is a problem for what the customer feed us - most calls that do uplaods require a seekable stream.
Seekable streams are files and memory blocks.  Non-seekable streams are network streams.
Some APIs (e.g. keyvault) buffer the stream and give back a seekable stream.

Either:
a) Always assume it is not seekable, and we do the buffering.
b) Always assume it is seekable, and make the user do the buffering.
- There are standard libraries for doing this
c) Document what we do and let the user deal with it.
d) Use a stream factory to deal with restartable but not seekable streams.
Based on arch board discussions, .NET, Python, and JavaScript may not have an issue - all three have a way to deal with this (even if suboptimal in some cases).  It's a case of how big an issue this problem is and is it worth solving?
However, Java has an issue. @JeffreyRichter and @JonathanGiles will discuss with the Java team to design a solution that works for this situation to avoid data corruption.
Can we give guidance in documentation now on how customers should use our API in these cases?
We need to document what happens when an API that produces or consumes a stream.  In particular, we should describe what sort of stream is expected or produced.

FYI: I discussed with people in the room and the checksum idea is no good – my mistake.
So, we have no good solution for java. If anyone wants to try to brain storm some up, I’m happy to be involved. But right now, I got nothing that can be done efficiently enough to make it palatable.

Jeffrey Richter (watch Architecting Distributed Cloud Appshttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fazure.microsoft.com%2Ftraining%2Fdistributed-cloud-apps%2F&data=02|01|jeffreyr%40microsoft.com|948cf3366acf45f6ef8d08d62e3b3b00|72f988bf86f141af91ab2d7cd011db47|1|0|636747229263047172&sdata=sg%2FtzHWpscWQDr7foOSsaNrKDP5vNSHE3b72HJG8swU%3D&reserved=0)

From: Adrian Hall<EMAIL_ADDRESS>Sent: Tuesday, November 19, 2019 3:36 PM
To: Azure/azure-sdk<EMAIL_ADDRESS>Cc: Jeffrey Richter<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Azure/azure-sdk] Change Request: Non-Seekable Streams (#759)

This is a problem for what the customer feed us - most calls that do uplaods require a seekable stream.
Seekable streams are files and memory blocks. Non-seekable streams are network streams.
Some APIs (e.g. keyvault) buffer the stream and give back a seekable stream.

Either:
a) Always assume it is not seekable, and we do the buffering.
b) Always assume it is seekable, and make the user do the buffering.

There are standard libraries for doing this
c) Document what we do and let the user deal with it.
d) Use a stream factory to deal with restartable but not seekable streams.

Based on arch board discussions, .NET, Python, and JavaScript may not have an issue - all three have a way to deal with this (even if suboptimal in some cases). It's a case of how big an issue this problem is and is it worth solving?
However, Java has an issue. @JeffreyRichterhttps://github.com/JeffreyRichter and @JonathanGileshttps://github.com/JonathanGiles will discuss with the Java team to design a solution that works for this situation to avoid data corruption.
Can we give guidance in documentation now on how customers should use our API in these cases?
We need to document what happens when an API that produces or consumes a stream. In particular, we should describe what sort of stream is expected or produced.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-sdk/issues/759?email_source=notifications&email_token=AARLJP2QTZ7BSFCMZYJMQG3QURZ4TA5CNFSM4JHT2RR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEQE7MY#issuecomment-555765683, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AARLJPYXKBFPQFKT3VGUKKTQURZ4TANCNFSM4JHT2RRQ.

Can you add this comment to the issue.  We will leave this in Jonathan’s hands
Get Outlook for iOShttps://aka.ms/o0ukef

From: Jeffrey Richter<EMAIL_ADDRESS>Sent: Tuesday, November 19, 2019 4:01:49 PM
To: Azure/azure-sdk<EMAIL_ADDRESS>Cc: Adrian Hall<EMAIL_ADDRESS>State change<EMAIL_ADDRESS>Subject: Re: [Azure/azure-sdk] Change Request: Non-Seekable Streams (#759)
FYI: I discussed with people in the room and the checksum idea is no good – my mistake.
So, we have no good solution for java. If anyone wants to try to brain storm some up, I’m happy to be involved. But right now, I got nothing that can be done efficiently enough to make it palatable.

Jeffrey Richter (watch Architecting Distributed Cloud Appshttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fazure.microsoft.com%2Ftraining%2Fdistributed-cloud-apps%2F&data=02|01|jeffreyr%40microsoft.com|948cf3366acf45f6ef8d08d62e3b3b00|72f988bf86f141af91ab2d7cd011db47|1|0|636747229263047172&sdata=sg%2FtzHWpscWQDr7foOSsaNrKDP5vNSHE3b72HJG8swU%3D&reserved=0)

From: Adrian Hall<EMAIL_ADDRESS>Sent: Tuesday, November 19, 2019 3:36 PM
To: Azure/azure-sdk<EMAIL_ADDRESS>Cc: Jeffrey Richter<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Azure/azure-sdk] Change Request: Non-Seekable Streams (#759)

This is a problem for what the customer feed us - most calls that do uplaods require a seekable stream.
Seekable streams are files and memory blocks. Non-seekable streams are network streams.
Some APIs (e.g. keyvault) buffer the stream and give back a seekable stream.

Either:
a) Always assume it is not seekable, and we do the buffering.
b) Always assume it is seekable, and make the user do the buffering.

There are standard libraries for doing this
c) Document what we do and let the user deal with it.
d) Use a stream factory to deal with restartable but not seekable streams.

Based on arch board discussions, .NET, Python, and JavaScript may not have an issue - all three have a way to deal with this (even if suboptimal in some cases). It's a case of how big an issue this problem is and is it worth solving?
However, Java has an issue. @JeffreyRichterhttps://github.com/JeffreyRichter and @JonathanGileshttps://github.com/JonathanGiles will discuss with the Java team to design a solution that works for this situation to avoid data corruption.
Can we give guidance in documentation now on how customers should use our API in these cases?
We need to document what happens when an API that produces or consumes a stream. In particular, we should describe what sort of stream is expected or produced.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-sdk/issues/759?email_source=notifications&email_token=AARLJP2QTZ7BSFCMZYJMQG3QURZ4TA5CNFSM4JHT2RR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEQE7MY#issuecomment-555765683, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AARLJPYXKBFPQFKT3VGUKKTQURZ4TANCNFSM4JHT2RRQ.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-sdk%2Fissues%2F759%3Femail_source%3Dnotifications%26email_token%3DAALLUONGMN3SPGHWGEIEDQLQUR463A5CNFSM4JHT2RR2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEEQGSQA%23issuecomment-555772224&data=02|01|Adrian.Hall%40microsoft.com|97a43cd266de4a7f93be08d76d4cd7af|72f988bf86f141af91ab2d7cd011db47|1|0|637098049121947529&sdata=o8U31CwzLBW4g9jM7NPVZTxqO%2FE4G6UnSGw3f3v5jAU%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAALLUONAEH3CNJGAEVZG2TLQUR463ANCNFSM4JHT2RRQ&data=02|01|Adrian.Hall%40microsoft.com|97a43cd266de4a7f93be08d76d4cd7af|72f988bf86f141af91ab2d7cd011db47|1|0|637098049121957525&sdata=GeQYpwSeCJepF5xGQT%2FDpCWD%2BO837zhulKxO7EjTFBU%3D&reserved=0.

FYI: I discussed with people in the room and the checksum idea is no good – my mistake.
So, we have no good solution for java. If anyone wants to try to brain storm some up, I’m happy to be involved. But right now, I got nothing that can be done efficiently enough to make it palatable.

Sharing recap to document the outcome in this issue:
The board had a lively discussion on the topic.  Thanks to @mikeharder for introducing the topic and providing the input.
In the end, we decided that Java was the only language that had immediate needs here.  For the other languages, we will take a wait-and-see approach.  For Java, @JonathanGiles  will work with @JeffreyRichter  and the Java feature team to come up with potential solutions to avoid data corruption.
@lmolkova FYI


Enhancements, fix #98, #129

Q
A

Is bugfix?
✔/❌

New feature?
✔/❌

Breaks BC?
✔/❌

Fixed issues
#98, #129, #123

Looks ok

@rustamwin is it possible to fix CI?

@rustamwin is it possible to fix CI?

Not in this PR

👍


Stream response as and when Neptune provides it

Neptune provides 64 values per Response that is why Execute at present provides a [] of Response since it waits for all the responses to be retrieved and then provides it. I have added the ExecuteAsync method that takes a channel to provide the Response as request parameter and provides the Response as and when it is received from Neptune. The Response are streamed to the caller and once all the Response are provided the channel is closed.
Java driver has the Stream option http://tinkerpop.apache.org/javadocs/3.4.0/core/org/apache/tinkerpop/gremlin/driver/ResultSet.html#stream--

thanks for the PR, good idea on implementing async response.   I'll try to get this pulled down and reviewed tonight.

Did you get a change to review the PR ? Let me know If you need any changes

Did you get a change to review the PR ?

I have fixed all the review comments
https://github.com/schwartzmx/gremtune/pull/3/commits/a2b232c71094dba872009312fc38f2480e885b17

Thanks @rsrinathr

Thank you. Can you please create a new Tag ? so I can update it in my go.mod file to pull the latest changes.

Added a new tag @rsrinathr https://github.com/schwartzmx/gremtune/releases/tag/v0.0.2


Helpful error messages if user confuses abandonclaim/abandonsupport

When the user tries to use abandonclaim with with a support tx, or vice versa, give an informative error message to that effect.

altFound looks to be an unused variable here.

Whoooops. Good catch, thanks!

Fixed.

I'm reviewing this, and realized that there are some other issues, with the abandonclaim and supportclaim RPC command ...
I think first of all those commands will work regardless of what you are abandoning (abandonclaim should work on supports, abandonsupport should work on claims) , the code is exactly the same, except for the isminefilter which is not used actually.
Second , txid should not be used here as multiple claims could in theory share the same txid (and have different vouts). So this command could end up abandoning claims that you want to keep..  Ideally  we'd want to use claimId here... or at least txid + vout

I don't think abandonclaim and abandonsupport ought to be equivalent; I think it's a useful bit of syntactic salt. It might be possible to DRY out some redundant code, though.
Using claimId instead of txid is a good idea.

Nice, I will take a look int the next couple of days, kind of strange that the travis build failed though.. doesn't seem to be related to the patch

Unless there is some particularly good UX reason to use claimId, this should use txhash and nOut.

I've changed my mind. Txhash and nOut should be used regardless of any ux concerns.

Reasoning is that it's not impossible to have multiple txouts in the same tx with identical claimIDs. They could be valid supports, invalid updates, or a valid update and any number of invalid updates. In all of those cases it should be possible to uniquely specify the txout to spend.

I agree that we should use txhash and nout. On a side note, lbryum has this same problem.
I also don't see the purpose of having two separate function abandonclaim and abandonsupport if we are going this route. It seems like abandon is sufficient.

Should this be closed?

Closing, will need to revisit when we are re writing the lbrycrd rpc calls but not high priority right now.


⚠ Bofrost.es has degraded performance

In abcc509, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1608 ms

Resolved: Bofrost.es performance has improved in 82beaff after 6 minutes.


[DOC] Add getting started guide for Sysadmins

Closes #13

Changes proposed in this pull request:

new route "Getting Started", for now just for Sysadmin users

Thanks @rmanaem! Added the suggestions

I think to improve the docs we should document `deteils: Not found Not found' in the docs either here or in the API README.

Added to the spec of this issue: https://github.com/neurobagel/api/issues/115


Unknown cmd bug I reinstalled my flutter but nothing change

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce
For one reason I decide to reinstall my Android Studio Because I was struggling to create new dart project in there
So I reinstall and It happen Idk what should I do
Expected results
If someone can solve this problem or did happen to him/her please check it out
Actual results
When I write on cmd flutter doctor it is happening
Code sample
Code sample
[Paste your code here]

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
C:\src\flutter\bin>flutter doctor
Oops; flutter has exited unexpectedly: "FileSystemException: Exists failed, path = 'C:\src\flutterC:\Program' (OS Error:
Dosya adı, dizin adı veya birim etiketi sözdizimi hatalı.
, errno = 123)".
A crash report has been written to C:\src\flutter\bin\flutter_02.log.
This crash may already be reported. Check GitHub for similar crashes.
https://github.com/flutter/flutter/issues?q=is%3Aissue+FileSystemException%3A+Exists+failed%2C+path+%3D+'C%3A\src\flutterC%3A\Program'+(OS+Error%3A+Dosya+adı%2C+dizin+adı+veya+birim+etiketi+sözdizimi+hatalı.
%2C+errno+%3D+123)
To report your crash to the Flutter team, first read the guide to filing a bug.
https://flutter.dev/docs/resources/bug-reports
Create a new GitHub issue by pasting this link into your browser and completing the issue template. Thank you!
https://github.com/flutter/flutter/issues/new?title=[tool_crash]+FileSystemException%3A+Exists+failed%2C+OS+Error%3A+Dosya+adı%2C+dizin+adı+veya+birim+etiketi+sözdizimi+hatalı.
%2C+errno+%3D+123&body=%23%23+Command
```
flutter+doctor
```

%23%23+Steps+to+Reproduce
1.+...
2.+...
3.+...

%23%23+Logs
FileSystemException%3A+Exists+failed%2C+OS+Error%3A+Dosya+adı%2C+dizin+adı+veya+birim+etiketi+sözdizimi+hatalı.
%2C+errno+%3D+123
```
%230++++++_Directory.existsSync+(dart%3Aio%2Fdirectory_impl.dart%3A92%3A7)
%231++++++ForwardingFileSystemEntity.existsSync+(package%3Afile%2Fsrc%2Fforwarding%2Fforwarding_file_system_entity.dart%3A43%3A33)
%232++++++ErrorHandlingDirectory.existsSync.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A492%3A22)
%233++++++_runSync+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A590%3A14)
%234++++++ErrorHandlingDirectory.existsSync+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A491%3A12)
%235++++++AndroidStudio.latestValid+(package%3Aflutter_tools%2Fsrc%2Fandroid%2Fandroid_studio.dart%3A244%3A64)
%236++++++AppContext._generateIfNecessary.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A104%3A42)
%237++++++_LinkedHashMapMixin.putIfAbsent+(dart%3Acollection-patch%2Fcompact_hash.dart%3A535%3A23)
%238++++++AppContext._generateIfNecessary+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A92%3A20)
%239++++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A121%3A32)
%2310+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A119%3A24)
%2311+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A119%3A24)
%2312+++++androidStudio+(package%3Aflutter_tools%2Fsrc%2Fglobals.dart%3A65%3A45)
%2313+++++runInContext.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fcontext_runner.dart%3A104%3A32)
%2314+++++AppContext._generateIfNecessary.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A104%3A42)
%2315+++++_LinkedHashMapMixin.putIfAbsent+(dart%3Acollection-patch%2Fcompact_hash.dart%3A535%3A23)
%2316+++++AppContext._generateIfNecessary+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A92%3A20)
%2317+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A121%3A32)
%2318+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A119%3A24)
%2319+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A119%3A24)
%2320+++++androidLicenseValidator+(package%3Aflutter_tools%2Fsrc%2Fandroid%2Fandroid_workflow.dart%3A30%3A65)
%2321+++++DoctorCommand.runCommand+(package%3Aflutter_tools%2Fsrc%2Fcommands%2Fdoctor.dart%3A53%3A32)
%2322+++++FlutterCommand.verifyThenRunCommand+(package%3Aflutter_tools%2Fsrc%2Frunner%2Fflutter_command.dart%3A1568%3A12)
<asynchronous+suspension>
%2323+++++FlutterCommand.run.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Frunner%2Fflutter_command.dart%3A1336%3A27)
```
```
encountered+exception%3A+FileSystemException%3A+Exists+failed%2C+path+%3D+'C%3A\src\flutterC%3A\Program'+(OS+Error%3A+Dosya+adı%2C+dizin+adı+veya+birim+etiketi+sözdizimi+hatalı.
%2C+errno+%3D+123)

%230++++++_Directory.existsSync+(dart%3Aio%2Fdirectory_impl.dart%3A92%3A7)
%231++++++ForwardingFileSystemEntity.existsSync+(package%3Afile%2Fsrc%2Fforwarding%2Fforwarding_file_system_entity.dart%3A43%3A33)
%232++++++ErrorHandlingDirectory.existsSync.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A492%3A22)
%233++++++_runSync+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A590%3A14)
%234++++++ErrorHandlingDirectory.existsSync+(package%3Aflutter_tools%2Fsrc%2Fbase%2Ferror_handling_io.dart%3A491%3A12)
%235++++++AndroidStudio.latestValid+(package%3Aflutter_tools%2Fsrc%2Fandroid%2Fandroid_studio.dart%3A244%3A64)
%236++++++AppContext._generateIfNecessary.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A104%3A42)
%237++++++_LinkedHashMapMixin.putIfAbsent+(dart%3Acollection-patch%2Fcompact_hash.dart%3A535%3A23)
%238++++++AppContext._generateIfNecessary+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A92%3A20)
%239++++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A121%3A32)
%2310+++++androidStudio+(package%3Aflutter_tools%2Fsrc%2Fglobals.dart%3A65%3A45)
%2311+++++runInContext.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fcontext_runner.dart%3A113%3A32)
%2312+++++AppContext._generateIfNecessary.<anonymous+closure>+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A104%3A42)
%2313+++++_LinkedHashMapMixin.putIfAbsent+(dart%3Acollection-patch%2Fcompact_hash.dart%3A535%3A23)
%2314+++++AppContext._generateIfNecessary+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A92%3A20)
%2315+++++AppContext.get+(package%3Aflutter_tools%2Fsrc%2Fbase%2Fcontext.dart%3A121%3A32)
%2316+++++androidValidator+(package%3Aflutter_tools%2Fsrc%2Fandroid%2Fandroid_workflow.dart%3A29%3A51)
%2317+++++_DefaultDoctorValidatorsProvider.validators+(package%3Aflutter_tools%2Fsrc%2Fdoctor.dart%3A139%3A44)
%2318+++++Doctor.validators+(package%3Aflutter_tools%2Fsrc%2Fdoctor.dart%3A230%3A47)
%2319+++++Doctor.startValidatorTasks+(package%3Aflutter_tools%2Fsrc%2Fdoctor.dart%3A236
Flutter Doctor output
Actually flutter doctor is not working every code
For example I need to write cmd C:\src\flutter\bin\flutter doctor to work ( I did the path )

Hi @asbe12

Actually flutter doctor is not working every code

Does it mean you see this error in every flutter command (doctor/run/build/etc) and every time? Can you please share this file C:\src\flutter\bin\flutter_02.log?
This is similar to https://github.com/flutter/flutter/issues/99954.


Toggles that have headings do not show up as toggles in response

Hei there,
I am using the API to help people create Anki flashcards faster on 2anki.net. We are heavy users of toggle lists but currently rely on the manual HTML export. We hope to transition to using the API soon. While doing some regression testing with the API (client v0.4.11), I discovered some toggle lists were missing.
Describe the bug
When using headings in the toggle list summary, the API response does not include the toggle list but instead marks it as a heading.  See attached screenshot and JSON payload.
To Reproduce
Node version: v16.13.0
Notion JS library version: v0.4.11
Steps to reproduce the behavior:

Create a toggle list with heading 1 in the summary
Retrieve the blocks

Expected behavior
I was expecting the toggle lists to remain a toggle list regardless of it having headings or not in the summary.
Screenshots
In the screenshot below, the two top toggles are not type toggle but show up as type heading_1

Additional context
Attached is the JSON response for this page https://alemayhu.notion.site/All-Articles-Why-You-Should-Compete-in-a-Saturated-Market-BusinessCollective-ea9a40bdf740443fb81a2ad3eb29f4fe
blocks.children.list.json.txt
blocks.retrieve.json.txt

Hi @aalemayhu, thanks for the report; I've added this to our internal tracker. I'm closing this issue because we want the issues in this github repo to be SDK-specific. However, you can always submit bugs and feature requests for the API through Intercom by going to https://developers.notion.com/ and clicking "Help" in the footer.


Unable to build app for iOS on macOS Catalina

Steps to Reproduce
flutter create --org com.o-wth mytest
cd mytest
flutter build ios

Logs
logs.txt
flutter doctor -v:
[✓] Flutter (Channel stable, v1.17.2, on Mac OS X 10.15.5 19F96, locale en-US)
    • Flutter version 1.17.2 at /Users/suman/flutter
    • Framework revision 5f21edf8b6 (2 days ago), 2020-05-28 12:44:12 -0700
    • Engine revision b851c71829
    • Dart version 2.8.3

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/suman/android-sdks
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = /Users/suman/android-sdks
    • ANDROID_SDK_ROOT = /Users/suman/android-sdks
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.5)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.5, Build version 11E608c
    • CocoaPods version 1.9.3

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 45.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[!] Connected device
    • Error: Sumanth Ratna is not connected. Xcode will continue when Sumanth Ratna is connected. (code -13)

! Doctor found issues in 1 category.

Hi @sumanthratna
I can see in logs
If you are certain that Xcode supports development on this device, try disconnecting and reconnecting the device

And in doctor
Error: Sumanth Ratna is not connected. Xcode will continue when Sumanth Ratna is connected. (code -13)

Does https://stackoverflow.com/questions/26791477/xcode-device-locked-when-iphone-is-unlocked help?

Thanks for your reply. Unfortunately, I'm unable to fix the issue. Originally, I was not building with a connected device (no Simulator or physical phone).
I connected my phone (which is the device Sumanth Ratna), and then I got this error: xcodebuild[39345:176559] [MT] iPhoneConnect: Failed _shouldMakeReadyForDevelopment check even though device is not locked by passcode.. I tried https://stackoverflow.com/a/61636074/7127932, https://github.com/flutter/flutter/issues/41198#issuecomment-540131788, and the link you sent; none fixed the issue.
flutter build apk works fine.
Here's the output of flutter build ios --verbose with a Simulator running:  verbose.txt

I came across and https://github.com/flutter/flutter/issues/43799, and removing CPATH from my zshrc fixed this issue. Earlier, I had set CPATH so that I could build the Pillow Python library from source.
I definitely think it would be convenient if flutter gracefully failed by detecting if CPATH is set, rather than bombarding me with tons of errors. :)
I'm closing this since my original issue has been solved; let me know if I should reopen or create a new feature request ticket.