In game saving

Is there any way of saving your progress in game?
I see no option in the studio itself, is there a method we can add manually to the main script?

There’s no option just yet, it’s something I’m looking into though and will probably add with “Save Data” and “Load Data” events.

Great news, looking forward to it thanks!

+1!!

Quick update on this, so the good new is I've added this functionality on develop commit e91af874b5c2bca5794375e8cc0ee3edfdb18280
I've added four new events:

Save Game Data
Load Game Data
Clear Game Data
If Saved Game Data

With those four you can make save points and could make a save game menu scene to load and clear the save data.
Unfortunately though this doesn't seem to be working on the Windows build at the moment where it appears to have an issue setting the player sprite sheet after loading. The sprite is becoming garbled when you load a game.

Excellent news, very fast!

save game menu scene

Does this mean we also have the option to create a new form of scene as well or would this be done using the multiple choice option as I would imagine so?
Will do some testing, thanks again!

This is working on all platforms with develop commit 070422ef024901c94b457e36b20fc67e33f82930.

Does this mean we also have the option to create a new form of scene as well or would this be done using the multiple choice option as I would imagine so?

You'd need to use multiple choice for now (or I've seen a few clever uses of triggers, with hidden players to make menus but that's not ideal). I'm thinking of ways to improve on this though.

@chrismaltby is this present in the download on the website, version 1.0.0? Is there another release somewhere? thanks!

GB Studio is awesome, my brother and I have been having a ball over holiday break coding in it. Simple & intuitive & fun to use/play. The web porting especially is great, super-fun to be able to play games on our mobile devices via a simple website.
We've been having issues with the save game data. When we save/load a game, the game data is not the same on load. Multiple playtesters have confirmed this. It doesn't work locally (playing from IDE) or via website (playing over internet).
Should we log a new bug for this? Has anyone else had issues with this?
Thanks for a great tool!

@numonkeys what version are you running?

Hi thx for following up so quickly. We were able to debug this issue in our code yesterday. Turns out it was a coding issue.
Specifically (in case anyone else experiences similar issues): on the intro "press start" screen I had set the load game event at the top of the list of events, expecting that it would skip the rest of the events and reload the saved game data and return to the game immediately since it bypassed the "press start" event.
This was not the case. The load game script would run, then the rest of the events would run, causing some of the global variables to get re-written.
Moving the load game event to the bottom of the event list appears to have solved this issue.
Hope this helps.


Video details page

Description
Add rough draft of video details page
Type of change

[x] New feature (non-breaking change which adds functionality)

Change Status

[x] Complete, tested, ready to review and merge

How Has This Been Tested?

[x] Can view a video as an owner and see list of feedback by others
[x] Can view a video as a non-owner and submit feedback (feedback doesn't actually have an endpoint to POST to)

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] There are no merge conflicts

 (DRAFT) Video Details Page


Add more information to synaptic vesicle transport

Current synaptic vesicle transport:
id: GO:0048489
name: synaptic vesicle transport
namespace: biological_process
alt_id: GO:0016181
def: "The directed movement of synaptic vesicles." [GOC:aruk, GOC:bc, GOC:jid, GOC:lmg, GOC:pr]
subset: goslim_synapse
synonym: "synaptic vesicle fission" RELATED []
synonym: "synaptic vesicle fusion" RELATED []
synonym: "synaptic vesicle trafficking" RELATED [PMID:15217342]
is_a: GO:0009987 ! cellular process
intersection_of: GO:0006810 ! transport
intersection_of: has_primary_input GO:0008021 ! synaptic vesicle

The description is very generic and doesn't give much context.
 What are the other parts of the transport other than budding and why don't they warrant mention? And is budding really a part of transport?
confusing things, we have the cycle classified as a type of transport
id: GO:0099504
name: synaptic vesicle cycle
namespace: biological_process
def: "A biological process in which synaptic vesicles are loaded with neurotransmitters, move to the active zone, exocytose and are then recycled via endocytosis, ultimately leading to reloading with neurotransmitters." [GOC:aruk, GOC:bc, PMID:15217342]
subset: goslim_synapse
is_a: GO:0016192 ! vesicle-mediated transport
relationship: occurs_in GO:0098793 ! presynapse

this is true in some sense in that the cycle involves things moving around... and independent of vesicle transport, neurotransmitters are actively transported into the vesicle... but does transport even mean anything any more here?
But at least the cycle term has clear parts

But still confusing as these parts are overlapping
IMO a simpler representation that focuses on concrete non-overlapping steps with a clear temporal flow rather than abstract groupings would be:

[p] synaptic vesicle lifecycle [new]

[p] synaptic vesicle precursor formation in Golgi [new]
[p] synaptic vesicle transport from Golgi to presynapse through axon along cytoskeleton (GO:0099514)
[p] synaptic vesicle cycle (GO:0099504)

[p] GO:0098700 ! neurotransmitter loading into synaptic vesicle
[p] GO:0016079 ! synaptic vesicle exocytosis

[p] GO:0016081 ! synaptic vesicle docking
[p] GO:0016082 ! synaptic vesicle priming
[p] GO:0099502 ! calcium-dependent activation of synaptic vesicle fusion
[p] GO:0031629 ! synaptic vesicle fusion to presynaptic active zone membrane

[p] GO:0036465 ! synaptic vesicle recycling

[p] GO:0048488 ! synaptic vesicle endocytosis

[p] GO:0097401 ! synaptic vesicle lumen acidification
[p] GO:0097091 ! synaptic vesicle clustering

I kept cycle as-is, I wasn't sure what to do with clustering, overall the cycle should look more like:

My part-root term is perhaps artificial but serves as a useful anchor point. When we have individual GO-CAMs for the steps we can use this structure to derive larger diagrams
Originally posted by @cmungall in https://github.com/geneontology/go-ontology/issues/29069#issuecomment-2420877286

I think @ValWood raises a good point. Perhaps we should simplify the vesicle-mediated transport branch by not speifying location.
Are there any gene products of the synaptic vesicle cycle exclusively function in synapses? e.g. PMID:33664131 Synaptophysin Regulates Fusion Pores and Exocytosis Mode in Chromaffin Cells; PMID: 38895397 "Our analysis reveals
novel sites of expression of these neurotransmitter systems within both neurons and glia, as well as
non-neural cells, most notably in gonadal cells.".
We don't have many life()cycle terms in GO, in fact, I found only one GO:0019058 viral life cycle. Perhaps a more generic exocytic vesicle lifecycle term is useful.

CHAT-GPT
You said:
are there any unique gene products in synaptic vesicle priming
ChatGPT said:
ChatGPT
Yes, synaptic vesicle priming involves specific gene products that play unique roles in the process of preparing synaptic vesicles for fusion with the presynaptic membrane, a critical step in neurotransmitter release. Some key proteins unique to or closely associated with this process include:

Munc13 Family
Munc13 proteins are essential for synaptic vesicle priming. They mediate the transition of synaptic vesicles to a state ready for calcium-triggered fusion.
Uniqueness: They interact with other priming proteins like syntaxin and SNAP-25 to organize the fusion machinery.
RIM Proteins (Rab3-interacting molecules)
RIM proteins tether synaptic vesicles near calcium channels and assist in vesicle priming.
Uniqueness: They bridge the connection between active zones and synaptic vesicles, playing a dual role in docking and priming.
Complexin
Complexin stabilizes the SNARE complex in a partially assembled state during priming, preventing premature fusion.
Uniqueness: It acts as a clamp to regulate the timing of vesicle release.
SNARE Proteins (Syntaxin, SNAP-25, and Synaptobrevin)
These proteins form the core of the fusion machinery but also participate in the priming stage by partially assembling.
Uniqueness: While these proteins are involved in multiple stages of vesicle fusion, their interactions during priming are highly regulated.
Rab3A and Rab3-Interacting Proteins
Rab3A regulates vesicle docking and priming by interacting with RIM and other proteins.
Uniqueness: Rab3A's role in GTP-dependent regulation of priming is specific to its small GTPase activity.
Synaptotagmin
While primarily known as the calcium sensor for vesicle fusion, synaptotagmin also contributes to the priming state by binding phospholipids and SNARE proteins in a calcium-independent manner.
Uniqueness: Its dual role in priming and fusion distinguishes it from other components.
SM Proteins (Sec1/Munc18 Family)
SM proteins like Munc18-1 regulate SNARE complex assembly during priming.
Uniqueness: These proteins are required for the functional assembly of SNARE complexes.
Each of these proteins contributes uniquely to the orchestration of synaptic vesicle priming, ensuring precise and efficient neurotransmitter release. While some of these proteins also participate in other stages of vesicle cycling, their roles in priming are indispensable and specialized.

You said:

But
are these genes involved in vesicle mediated transport in non-neurons?
ChatGPT said:
ChatGPT
Yes, many of the proteins involved in synaptic vesicle priming in neurons also play roles in vesicle-mediated transport in non-neuronal cells, but their functions and regulatory contexts can differ significantly. Here's an overview of their involvement in non-neuronal vesicle trafficking:

Munc13 Family
Non-neuronal Role: Munc13-like proteins (e.g., UNC-13 in C. elegans) are involved in vesicle trafficking in non-neuronal cells, such as hormone secretion in endocrine cells.
Context: These proteins regulate vesicle priming steps in secretory pathways across various cell types.
RIM Proteins
Non-neuronal Role: RIM proteins are primarily studied in neurons, but similar Rab-interacting proteins exist in non-neuronal cells, where they modulate vesicle tethering and docking in secretory systems.
Context: Their interaction with Rab GTPases and active zones of secretion makes them relevant in specialized secretory cells, such as pancreatic beta cells.
Complexin
Non-neuronal Role: Complexin is less commonly associated with non-neuronal vesicle trafficking. However, homologous or functionally similar proteins may regulate vesicle fusion in other contexts.
Context: Its role as a clamp for SNARE complexes might have parallels in other regulated secretion systems.
SNARE Proteins (Syntaxin, SNAP-25, Synaptobrevin)
Non-neuronal Role: SNARE proteins are ubiquitous in vesicle-mediated transport in all eukaryotic cells. They are central to processes such as endocytosis, exocytosis, and intracellular trafficking.
Context: Isoforms like syntaxin-4 and VAMP4 function in non-neuronal vesicle fusion events, such as insulin granule secretion and membrane repair.
Rab3A and Rab GTPases
Non-neuronal Role: Rab GTPases are critical regulators of vesicle transport in all cell types. Rab3A, specifically, is also involved in vesicle trafficking in endocrine and secretory cells.
Context: Other Rab proteins (e.g., Rab5, Rab7, Rab11) have non-neuronal roles in vesicle sorting, trafficking, and recycling.
Synaptotagmin
Non-neuronal Role: Synaptotagmins are expressed in non-neuronal cells, where they act as calcium sensors for vesicle fusion in processes like hormone release and lysosome exocytosis.
Context: Different isoforms (e.g., synaptotagmin VII) are more prominent in non-neuronal secretory systems.
SM Proteins (Sec1/Munc18 Family)
Non-neuronal Role: SM proteins are integral to vesicle transport across all eukaryotic cells. For example, Munc18-2 is critical for vesicle docking and fusion in epithelial cells.
Context: They regulate SNARE complex assembly in various vesicular trafficking events, including those in the Golgi and plasma membrane.
Key Differences in Non-Neuronal Contexts
Regulation: In neurons, these proteins are tightly regulated for rapid and precise neurotransmitter release, often involving calcium signaling. In non-neuronal cells, the same proteins may operate under different regulatory mechanisms.
Speed: Non-neuronal vesicle trafficking is generally slower and less tightly coupled to calcium signaling than synaptic vesicle fusion.
Conclusion
While these proteins are conserved and play crucial roles in vesicle-mediated transport across cell types, their specific functions and regulatory mechanisms are tailored to the cellular context. Many of these genes are part of a broader vesicular trafficking system that operates across eukaryotic organisms, underscoring their evolutionary conservation and functional versatility.

Note , I only asked specifically about printing here, but the same applies to other terms
If we have the synapse specific terms how do we handle when people then want how=rmone specific terms, do we keep replicating the ontology?
It might be better to  concentrate on making sure the core vesicle mediated transport processes are better represented and organized (and then merging in any cell type specific terms (or keeping them if they really are unique).
The process should be represented by a singe set of terms with the different cargoes as inputs and outputs.

I think the numbers are closer than they appear thoush.
The 351 yeast protein map to  571 human proteins. You often see duplications i.e.
SPBC31F10.06c	sar1	ADP-ribosylation factor Sar1	SAR1A,SAR1B
SPBC4F6.18c	arf1	ADP-ribosylation factor, Arf family Arf1	ARF1,ARF3
SPAC959.02	sec17	alpha SNAP	NAPA,NAPB
SPAC105.02c	ank1	ankyrin repeat protein Ank1	OSTF1
SPBC947.02	apl2	AP-1 adaptor complex beta subunit Apl2	AP1B1,AP2B1
SPCP1E11.06	apl4	AP-1 adaptor complex gamma subunit Apl4	AP1G1,AP1G2
SPBP16F5.07	apm1	AP-1 adaptor complex mu subunit Apm1	AP1M1,AP1M2
SPAP27G11.06c	vas2	AP-1 adaptor complex sigma subunit Aps1	AP1S1,AP1S2,AP1S3
SPBC691.03c	apl3	AP-2 adaptor complex alpha subunit Apl3	AP2A1,AP2A2
SPBC2G2.06c	apl1	AP-2 adaptor complex beta subunit Apl1	AP1B1,AP2B1
SPAC31A2.09c	apm4	AP-2 adaptor complex mu subunit Apm4	AP2M1
SPBC685.04c	aps2	AP-2 adaptor complex sigma subunit Aps2	AP2S1
SPAC144.06	apl5	AP-3 adaptor complex subunit Apl5	AP3D1
SPAC23H3.06	apl6	AP-3 adaptor complex subunit Apl6	AP3B1,AP3B2
SPBC651.11c	apm3	AP-3 adaptor complex subunit Apm3	AP3M1,AP3M2
SPAC30D11.05	aps3	AP-3 adaptor complex subunit Aps3	AP3S1,AP3S2
SPAC22E12.17c	glo3	ArfGAP, GTPase activating protein	ARFGAP2,ARFGAP3
but essentially the processes will be largely the same, but with a variant paralogs in different cells.
Taking this into account, and the large number of upstream regulators (like transcription regulators), and targets encoded into in the human list, I  the core machinery appears to be largely conserved.


Validation of Istio annotations on K8s objects

Users sometimes place Istio annotations in the wrong place.  For example, Pod annotations on the Deployment outside of the Template.
Users sometimes misspell annotations, or supply a value in the wrong format.
Istio's validators, probably the new framework validators from https://github.com/istio/istio/pull/16350 should issue warnings.  Possibly this could go into the existing webhook and sidecar injector, but I don't know.
If there is a problem it is unclear how to report it.  For 1.4 we can report it through istioctl x analyze.  I am not sure if we can add Status info to K8s objects like Deployment.
We should also check Istio annotations on Istio objects.
cc @linsun @ozevren

Yep, seems like a great scenario for which we could potentially write an analyzer. /cc @sushicw

@ozevren @sushicw I need your advice.  istio.io/istio/galley/pkg/config/meta/metadata provides collections for Kubernetes objects that Istio cares about: Endpoints, Namespaces, Nodes, Pods, Services, and Ingresses.
It doesn't know about Deployments at all.  This means I can't use the analysis framework to validate the use case Lin originally described to me: users putting Pod annotations on their Deployments instead of Deployment.Spec.Template.
One possibility is to add Deployments to the things already watched and validated.  That would be easy.  The other possibility is to follow the ownerReferences fields for the things already being validated so that the Pod validator can validate the owner.

I think adding adding Deployments makes sense. When I wrote my injection analyzer earlier (https://github.com/istio/istio/pull/17192), the framework didn't include Pods, so I had to add that.
But I'll let @ozevren or @sushicw confirm.

You can add deployments to the localAnalysis snapshot in the metadata file.
https://github.com/istio/istio/blob/9d9ede26ae0fe970cee0bce42beaa030ca6405d8/galley/pkg/config/meta/metadata/metadata.yaml#L564
You may also need to update the runtime code to ensure these can be read in their native form (as opposed to as unstructureds):
https://github.com/istio/istio/blob/9d9ede26ae0fe970cee0bce42beaa030ca6405d8/galley/pkg/config/source/kube/rt/known.go#L41
This should allow you to read the deployments for istioctl, without polluting the Galley MCP serving path.

We've now updated annotations.yaml in istio/api to specify the set of resource types that each annotation supports. This file can be imported by the validator.
We'll also shortly have this added to the documentation on istio.io. I'm working on that right now.

@ozevren I added Deployments as you suggested.  It was more difficult than you suggested.  The Commit is https://github.com/istio/istio/pull/17714/commits/676f6d200d54e1ef2139eaa2e8a798ebdda90b8b
Some of my difficulties may have been caused by leaving off the optional group: field in a .yaml due to not remembering that Deployments have a group but Pods do not.  This led me down the path of adding Deployments to a test.  Once I understood all the places that Deployment needed to be added it was not difficult to actually add it.

Re-opening because misplaced Deployment annotations only appear via file references, not --use-kube


Reconsider object_type on VectorIndex class

As things stand the current design is not fully working.

https://github.com/wagtail/wagtail-vector-index/blob/main/src/wagtail_vector_index/index/__init__.py#L11 object_type here should be a model class not the index class, right? (edited)
https://github.com/wagtail/wagtail-vector-index/blob/main/src/wagtail_vector_index/index/model.py#L69-L79
I think object_type right now as things stand is an instance property of a VectorIndex, but we register a class so we have no info about object_type in the registry.
or should object_type be a class property? Is a VectorIndex class ever used for multiple object_types?
or should registry also store the object_type?

Theoretically an answer is that VectorIndex should not have an object_type at all and rely on the results to call appropriate methods. We don't however know yet whether this is the optimal way to do that, especially if there are a lot of rows in the database, and whether we need more suboptimal and restricting design instead.
Right now if you call get_vector_indexes(), it won't work. You have to call the SpecificModel.get_vector_index() class method to call the VectorIndex methods such as search() or query().

https://github.com/wagtail/wagtail-vector-index/blob/main/src/wagtail_vector_index/index/__init__.py#L11 object_type here should be a model class not the index class, right?
[...]
Right now if you call get_vector_indexes(), it won't work.

I can confirm that the indexes, as returned by get_vector_indexes(), can't be used for search(). It looks like the get_vector_indexes should set the model class as object_type, but the model is not readily available in the registry.

I've made a PR to fix the immediate issue by hoisting object_type to the index class. However, it feels like it's an incomplete solution; the base index class shouldn't care about what kind of documents are getting indexed and whether they map to a particular Python type. Perhaps object_type should live in the index classes that work with Django models (ModelVectorIndex and PageVectorIndex). I'll give it some more thought and maybe write up a proposal to refactor this, and perhaps simplify the registry, to have it store an index instance, instead of the index class.


Support Istio/Envoy as AWS ALB

Today when using Kubernetes on AWS, ingress resources are automatically turned into AWS ELBs. AWS has recently added support for Application Load Balancers (ALBs). We need to investigate and document the setup required to use Envoy as an ingress resource on AWS, which will involve setting up an ALB.
Looking around briefly, CoreOS has open sourced an ALB Ingress Controller that we may be able to leverage.

I'm definitely interested in helping replacing the ELB used in the istio ingress controller with an ALB (cheaper, faster). We currently give the istio ingress service a load balancer which gives us an elb that we add CNAMES to, and then use hostnames in the ingresses to route traffic.
Would this change require this issue to be addressed though?  If not would the istio ingress controller be replaced by the ALB Ingress controller?

This has less relevance now given that we have clearly separated L4-L6 config (gateway) and L7 config (virtual services). And that the gateway could support multiple protocols (HTTP/TCP/Mongo/etc.) - which the ALB cannot.
Also, ALB ingress implies configuring AWS ALB directly instead of using Envoy for load balancing

@rshriram With alb and aws CNI we can do load balancing on pod IPs directly. This gives multiple benefits( lower latency for sure) and deeper integration with other aws resources(Cognito, ACM, Target group alarms, etc).
If we use ALB directly and skip enovy load balancing over the publically exposed services what are the drawbacks.
Can we delegate a gateway creation to create an actual ingress such that we don't deal with the similar resources twice?

I think this is beneficial because we can use AWS ALB with WAF


Agent ACTIVE

I had to change the item type from "Zabbix agent (active)"  to "Zabbix agent" to get data.
I used 7.0 and agent 2. So this might be a future issue, but still, I wonder why.

Hi @MarcelMo , you mean all items or some particular one?

Hi @MarcelMo , you mean all items or some particular one?

All items had no data. zabbix_get worked, so I tried switching the type, and worked immediatly!


can not withdraw coins

hi,
when i try to send coins i get the following error (i am using windows) i stated the wallet with java -jar ZCashSwingWalletUI.jar
the error is:
An unexpected error occured when sending cash!
Please ensure that the zcaash daemon is running and parameters are correct.
error response from wallet: error: {"code":-8 "message":"memo can not be used with a taddr. it can only be used with a zaddr."}
please assist.
thanks

never mind.
the issue was that i put text in the memo :)
thanks


Add Terraform provider documentation

Add Terraform provider documentation and fix redirect
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@peterzhuamazon @prudhvigodithi This PR adds Terraform documentation to our site. Could one of you review when you get a chance please?

Good catch on that redirect, Fanit!


Introduce user authentication

Updated connection handling in RevServer & HTTPServer with ConnService
Introduced connsvc service for robust connection management
Enhanced authentication, user connections, and dependency updates

Codecov Report
Attention: Patch coverage is 0% with 281 lines in your changes missing coverage. Please review.

Project coverage is 4.36%. Comparing base (966cc9e) to head (bebeb9c).

Files with missing lines
Patch %
Lines

pkg/repo/connmng/connmng.go
0.00%
92 Missing :warning:

pkg/repo/connmng/useronn.go
0.00%
56 Missing :warning:

pkg/core/connsvc/svc.go
0.00%
46 Missing :warning:

pkg/revproxy/revserver.go
0.00%
31 Missing :warning:

pkg/core/token/token.go
0.00%
20 Missing :warning:

pkg/edge/httpserver.go
0.00%
14 Missing :warning:

pkg/cmd/server/server.go
0.00%
9 Missing :warning:

pkg/core/clientserver.go
0.00%
7 Missing :warning:

pkg/cmd/client/client.go
0.00%
6 Missing :warning:

Additional details and impacted files
@@            Coverage Diff            @@
##             main     #12      +/-   ##
=========================================
- Coverage   10.38%   4.36%   -6.02%
=========================================
  Files           6      10       +4
  Lines         183     435     +252
=========================================
  Hits           19      19
- Misses        164     416     +252

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Recent breaking changes in /v1/projects/.../commit-records/.../outputs/github endpoint?

Hi there, thanks for this great service :)
I recently created an alternative client for the Scala.js ecosystem that integrates with the Scala build tool. I hope you don't mind about this 😅
https://github.com/armanbilge/sbt-bundlemon
However, somehow in the last 48 hours or so the /v1/projects/.../commit-records/.../outputs/github endpoint has changed (?) and is 400-rejecting my requests.
Here is a log showing the failure:
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/id?authType=GITHUB_ACTIONS&runId=2811061031 Headers(Content-Length: 65, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-4-a29c46c-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"provider":"github","owner":"armanbilge","repo":"sbt-bundlemon"}"
[info] [info] HTTP/1.1 200 OK Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Sun, 07 Aug 2022 02:38:40 GMT, access-control-allow-origin: *, vary: Origin, content-length: 33, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::fgqt7-1659839919847-c014eb0553a1, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body="{"id":"62d55e113fb165069416fa1b"}"
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/62d55e113fb165069416fa1b/commit-records?authType=GITHUB_ACTIONS&runId=2811061031 Headers(Content-Length: 247, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-4-a29c46c-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"subProject":"sbt-bundlemon-scripted-example_sjs1_2.12","files":[{"friendlyName":"main.js","pattern":"*.js","path":"main.js","size":2628,"compression":"brotli"}],"groups":[],"branch":"debug","commitSha":"a29c46c8dc26dcf75a0d029c8ba8526ecbaaa42f"}"
[info] [info] HTTP/1.1 200 OK Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Sun, 07 Aug 2022 02:38:40 GMT, access-control-allow-origin: *, vary: Origin, content-length: 481, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::fgqt7-1659839920319-e11a362da475, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body="{"record":{"id":"62ef25b029bfb7ac0758962e","creationDate":"2022-08-07T02:38:40.849Z","subProject":"sbt-bundlemon-scripted-example_sjs1_2.12","files":[{"friendlyName":"main.js","pattern":"*.js","path":"main.js","size":2628,"compression":"brotli"}],"groups":[],"branch":"debug","commitSha":"a29c46c8dc26dcf75a0d029c8ba8526ecbaaa42f","projectId":"62d55e113fb165069416fa1b"},"linkToReport":"https://app.bundlemon.dev/projects/62d55e113fb165069416fa1b/reports/62ef25b029bfb7ac0758962e"}"
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/62d55e113fb165069416fa1b/commit-records/62ef25b029bfb7ac0758962e/outputs/github?authType=GITHUB_ACTIONS&runId=2811061031 Headers(Content-Length: 193, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-4-a29c46c-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"git":{"runId":"2811061031","owner":"armanbilge","repo":"sbt-bundlemon","commitSha":"a29c46c8dc26dcf75a0d029c8ba8526ecbaaa42f"},"output":{"checkRun":true,"commitStatus":true,"prComment":true}}"
[info] [info] HTTP/1.1 400 Bad Request Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Sun, 07 Aug 2022 02:38:41 GMT, access-control-allow-origin: *, vary: Origin, content-length: 227, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::fgqt7-1659839920932-cbdf63f64194, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body=""
[info] [error] org.http4s.client.UnexpectedStatus: unexpected HTTP status: 400 Bad Request for request POST https://api.bundlemon.dev/v1/projects/62d55e113fb165069416fa1b/commit-records/62ef25b029bfb7ac0758962e/outputs/github?authType=GITHUB_ACTIONS&runId=2811061031

https://github.com/armanbilge/sbt-bundlemon/runs/7709128565
Here is a successful log from a couple weeks ago.
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/id?authType=GITHUB_ACTIONS&runId=2737290740 Headers(Content-Length: 65, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-2-3d5e194-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"provider":"github","owner":"armanbilge","repo":"sbt-bundlemon"}"
[info] [info] HTTP/1.1 200 OK Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Tue, 26 Jul 2022 05:53:31 GMT, access-control-allow-origin: *, vary: Origin, content-length: 33, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::cqdgl-1658814811188-2f34d3b69b0e, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body="{"id":"62d55e113fb165069416fa1b"}"
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/62d55e113fb165069416fa1b/commit-records?authType=GITHUB_ACTIONS&runId=2737290740 Headers(Content-Length: 246, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-2-3d5e194-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"subProject":"sbt-bundlemon-scripted-example_sjs1_2.12","files":[{"friendlyName":"main.js","pattern":"*.js","path":"main.js","size":2628,"compression":"brotli"}],"groups":[],"branch":"main","commitSha":"3d5e1945bd6fc5d6a01513b37eafcab03fba0519"}"
[info] [info] HTTP/1.1 200 OK Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Tue, 26 Jul 2022 05:53:32 GMT, access-control-allow-origin: *, vary: Origin, content-length: 851, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::cqdgl-1658814811685-aa094d371b60, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body="{"record":{"id":"62df815c3fb16506943958ad","creationDate":"2022-07-26T05:53:32.113Z","subProject":"sbt-bundlemon-scripted-example_sjs1_2.12","files":[{"friendlyName":"main.js","pattern":"*.js","path":"main.js","size":2628,"compression":"brotli"}],"groups":[],"branch":"main","commitSha":"3d5e1945bd6fc5d6a01513b37eafcab03fba0519","projectId":"62d55e113fb165069416fa1b"},"baseRecord":{"id":"62d5e8bc3fb165069457cd95","creationDate":"2022-07-18T23:11:56.487Z","subProject":"sbt-bundlemon-scripted-example_sjs1_2.12","files":[{"friendlyName":"main.js","pattern":"*.js","path":"main.js","size":2916,"compression":"gzip"}],"groups":[],"branch":"main","commitSha":"01fa4df681473a06307a0b89244590b5e95461f4","projectId":"62d55e113fb165069416fa1b"},"linkToReport":"https://app.bundlemon.dev/projects/62d55e113fb165069416fa1b/reports/62df815c3fb16506943958ad"}"
[info] [info] HTTP/1.1 POST https://api.bundlemon.dev/v1/projects/62d55e113fb165069416fa1b/commit-records/62df815c3fb16506943958ad/outputs/github?authType=GITHUB_ACTIONS&runId=2737290740 Headers(Content-Length: 193, x-api-client-name: sbt-bundlemon, x-api-client-version: 0.1.1-2-3d5e194-SNAPSHOT, Content-Type: application/json, Accept: application/json) body="{"git":{"runId":"2737290740","owner":"armanbilge","repo":"sbt-bundlemon","commitSha":"3d5e1945bd6fc5d6a01513b37eafcab03fba0519"},"output":{"checkRun":true,"commitStatus":true,"prComment":true}}"
[info] [info] HTTP/1.1 200 OK Headers(Content-Type: application/json; charset=utf-8, Connection: keep-alive, date: Tue, 26 Jul 2022 05:53:33 GMT, access-control-allow-origin: *, vary: Origin, content-length: 379, x-vercel-cache: MISS, server: Vercel, x-vercel-id: cle1::iad1::cqdgl-1658814812200-7a055da4e0f6, strict-transport-security: max-age=63072000, cache-control: public, max-age=0, must-revalidate) body="{"checkRun":{"result":"success","message":"Successfully created GitHub check run","metadata":{"id":7514154779,"url":"https://github.com/armanbilge/sbt-bundlemon/runs/7514154779"}},"commitStatus":{"result":"success","message":"Successfully created GitHub commit status","metadata":{"id":18493430976}},"prComment":{"result":"skipped","message":"Not a PR - ignore post PR comment"}}"

https://github.com/armanbilge/sbt-bundlemon/runs/7514135077
As far as I can tell the request is consistent with the relevant schema.
https://github.com/LironEr/bundlemon/blob/240c30fcc910349b4d59eac0c3b6889ebc21d202/service/src/consts/schemas.ts#L853
I don't see any recent commits that seem related so I'm not sure what changed. Thanks in advance for your help, much appreciated!

Hey
Firstly, I don't mind at all (:
It's good to know, now I can't break the API any time I want 😅
This endpoint is still experimental, still have some work to do there, it will be stable after the release of the BundleMon CLI v2 (which will happen soon)
As for the changes, you can see here
Add to the body:
auth: {
"runId": "123123"
}

or

auth: {
"token": "token...."
}

Thank you so much for the fast response! That seems easy enough to fix.

This endpoint is still experimental, still have some work to do there, it will be stable after the release of the BundleMon CLI v2 (which will happen soon)

Woops, I wasn't aware of this! I also didn't realize you deployed directly from that PR. Thanks for the heads-up, I guess I will do my best to follow the changes until the stable release.

Because this endpoint is still not in use in CLI v1 I changed it a bit.
I hope I won't make more changes to the endpoints, but if I do I will try to remember to tag you :)

No problem, makes sense! I'm watching this repo now so I will get notifications about development :)


Add Interface for a port field for Transports so that it is easier to set

we should add an interface to set the port, this will maker it easier for users to cast the transport and then set the port
    public interface IPortTransport
    {
        public ushort Port { get; set; }
    }

It'd be best to do this after we split the transports, and make sure to inform transport creators about this interface so they added it if needed.

so each transport decides if it wants to implement this interface or not right?

so each transport decides if it wants to implement this interface or not right?

+1

+1

so each transport decides if it wants to implement this interface or not right?

yes, so telepathy would implement this, but steam transport (I think) wouldn't

so each transport decides if it wants to implement this interface or not right?

yes, so telepathy would implement this, but steam transport (I think) wouldn't

Is there a transport template people use when creating them, so they know what to add.

Is there a transport template people use when creating them, so they know what to add.

then this is a good idea.

then this is a good idea.

Is there a transport template people use when creating them, so they know what to add.

 We are splitting the transports into server/client soon so we could maybe have a template then.

Is there a transport template people use when creating them, so they know what to add.

 We are splitting the transports into server/client soon so we could maybe have a template then.

@James-Frowen  PortTransport was implemented a while ago - that addresses this, right? Close?

Looks like it, this can be closed


Support avalanche fuji testnet

Good morning,
I would like to know how hard it would be to add support for avalanche fuji testnet?
Thanks in advance!

Hi @afiorenza
Adding a network is kind of easy on the snapshot, https://docs.snapshot.org/networks
need a multicall contract deployed on the networks and a full archive RPC node


Replace renamed classes in push/pull example

The example for column ordering still referenced the old push/pull class names.

Good catch. Thanks!


Add ability to set provider state

Similar to issue #16 we had the need to be able to set the provider state when using this plugin.
This pull request adds functionality to pass the state when calling usePactGet and usePactWait
The state is simply passed as a new parameter:
New
after(() => {
    cy.usePactWait(['getAllUsers'], 'providerState')
})

after(() => {
    cy.usePactGet(['getAllUsers'], 'providerState')
})

Old
after(() => {
    cy.usePactWait(['getAllUsers'])
})

after(() => {
    cy.usePactGet(['getAllUsers'])
})

Thanks Simon 👏 ! Apologies for the delay in getting back to you here.
At first glance, it seems a reasonable suggestion. There are a couple of questions / comments:

Are you using this with a regular Pact verification? This might help you, but is still discouraged (for example, without matching rules the verification is likely still to be quite brittle)
The definition of a Provider State in later contracts expands on this (see https://github.com/pact-foundation/pact-js/blob/master/src/v3/types.ts#L53). We may want to consider this in the change, and providing an option to serialising a V3 compatible pact file

Other than that, the PR is much appreciated and it looks OK to me. I'll unblock the build to ensure it passes all checks.
@B3nnyL @YOU54F anything to add?

Thanks @SimonBachmaier
Few comments on the change.
It is probably worth a note on the README that this adapter generates pacts in a v2 specification format, so uses providerState rather than v3's providerStates
This adapter wasn't intended for use with regular CDCT, due to lack of provider states and matchers, (and actually if you are able to test your app with Pact and Cypress to generate Pacts, you can easily test at the unit test level, and get quicker feedback and more granular control)
Re-using the pact contracts, or using shared fixtures between your Integration and Unit tests is a good technique for reusability and sharing of test data.
One of our community champions created a video about it here https://www.youtube.com/watch?v=MtJA90VC9g4&ab_channel=TheTestTribe

The definition of a Provider State in later contracts expands on this (see https://github.com/pact-foundation/pact-js/blob/master/src/v3/types.ts#L53). We may want to consider this in the change, and providing an option to serialising a V3 compatible pact file

I'd probably consider that as a separate change
@SimonBachmaier just another note, we use conventions commit messages to generate changelogs
https://github.com/pact-foundation/pact-js/blob/master/CONTRIBUTING.md#release-notes
We could do with adding a contributing section to this repo, but for now you may want to update your commit message for the feature to feat: foo and docs: bar 👌🏾

Thank you very much for reviewing the PR. I will add the mentioned changes and then come back to you.
By the sound of it this adapter is built for a completely different use case than what I initially understood. My team wanted to use the adapter to validate the mocked network calls used in our Cypress tests. (We also already use jest-pact)
We wanted to upload the generated contracts to a pact broker and have already implemented a simple solution to add matchers.
If this adapter is meant for something else and doesn't aim to generate contracts that can be used with a pact broker then this PR could also be ignored.

By the sound of it, this adapter is built for a completely different use case than what I initially understood. My team wanted to use the adapter to validate the mocked network calls used in our Cypress tests. (We also already use jest-pact)

Yes, it's primary purpose is for generating pact files, but for use with Pactflow's https://docs.pactflow.io/docs/bi-directional-contract-testing/ feature.
We actually use Cypress and Pact at Pactflow, and we are not using this adapter. We would obviously like to avoid the mock drifts, and we actually achieve this is by reusing the payload definitions from our Pact tests in the cypress route stubs. The approach is summarised here: https://stackoverflow.com/a/68492932/1008568

We wanted to upload the generated contracts to a pact broker and have already implemented a simple solution to add matchers.

Having these two features would certainly improve the reliability of the tests and we would be more than open to accepting a PR that allows this. The key thing is that we would like to preserve the simplicity of the interface for those that just want a simple solution to stub network routes, without having to think about matchers etc.

Hey @SimonBachmaier if you want to address the couple of PR comments or comment on them, I am still happy to help move this PR along :)

Hey @mefellows I'm really sorry that I ghosted this thread for so long!
We had a lot of internal discussions about the usage of pact and this adapter in December. Over the holidays it slipped my mind to update this pull request...
We decided that we won't combine Pact and Cyperss in the near future. As you pointed out this adapter wasn't intended to use for regular Pact verification and we decided that it would be too much work to adapt this adapter or write our own solution.
Thank you for your great input and sorry again for not getting back to this request earlier.

Thanks Simon, no worries - if there are any changes let us know. I'll close this off for now but we can resurrect in the future if we decide to add it.


Enable tinder social

Is it necessary to log the entire response from the post request into the console?

Followed the _get convention that also prints it. @adrianmc

That's ok!! but still no friends for me... They need to activate tinder social too?


Allow for additional camera adjustments/options

Description of the new feature / enhancement
Skype and Skype for Business have a settings panel for the camera. I specifically use the zoom setting to zoom in slightly. Other apps that use the webcam, such as Zoom and Teams lack this panel. However, the changes in Skype and SfB settings carry over to these other apps. It would be nice to have a comparable settings panel in PowerToys.

Scenario when this would be used?
Teleconferencing
Supporting information
No response

i think this is at the app level, not global.  Only way we'd be able to do this would be an addition to Video Conference Mute since we have basically a passthrough of the video to enable the mute for the video.

I'm not sure. The way I use it is to open Skype, change zoom (camera
setting), close Skype, and open the Zoom app. The change made in Skype is
reflected in Zoom. This leads me to believe there could be an OS/driver
setting that's global.
On Thu, Sep 30, 2021 at 11:16 AM Clint Rutkas @.***>
wrote:

i think this is at the app level, not global. Only way we'd be able to do
this would be an addition to Video Conference Mute since we have basically
a passthrough of the video to enable the mute for the video.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/13529#issuecomment-931468240,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACWZQMTT5NFK3IQHLGNBHTUESEMVANCNFSM5FCLJ4PQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Any more thoughts on this suggestion? Like I said, it seems that I can
change settings in Skype and have them apply to other apps, making me think
it's a global setting.
On Thu, Sep 30, 2021 at 3:24 PM @.***> wrote:

I'm not sure. The way I use it is to open Skype, change zoom (camera
setting), close Skype, and open the Zoom app. The change made in Skype is
reflected in Zoom. This leads me to believe there could be an OS/driver
setting that's global.
On Thu, Sep 30, 2021 at 11:16 AM Clint Rutkas @.***>
wrote:

i think this is at the app level, not global. Only way we'd be able to do
this would be an addition to Video Conference Mute since we have basically
a passthrough of the video to enable the mute for the video.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/13529#issuecomment-931468240,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACWZQMTT5NFK3IQHLGNBHTUESEMVANCNFSM5FCLJ4PQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Thanks for the feedback but VCM is moving to maintenance only in the 0.67 timeframe. Our team will only directly address critical bugs, security and accessibility issues.
We'll accept community PRs for enhancements.


Error: Make sure that the controller has a parameterless public constructor

I had that error:
"An error occurred when trying to create a controller of type 'BankAccountsController'. Make sure that the controller has a parameterless public constructor"
When tried to get this version 1.0 Api
[ApiVersion("1.0")]
public class BankAccountsController : UserApiControllerBase
{
private readonly IGetAccountsQuery _getAccountsQuery;
private readonly IAddBankAccountCommand _addBankAccountCommand;
private readonly IRemoveBankAccountCommand _removeBankAccountCommand;
protected BankAccountsController(IGetAccountsQuery getAccountsQuery,
IAddBankAccountCommand addBankAccountCommand,
IRemoveBankAccountCommand removeBankAccountCommand
)
{
_getAccountsQuery = getAccountsQuery;
_addBankAccountCommand = addBankAccountCommand;
_removeBankAccountCommand = removeBankAccountCommand;
}
    /// <summary>
    /// Get all bank accounts for specific institution
    /// </summary>
    /// <remarks>
    /// This API returns the list of accounts for an institution for an authenticated user
    /// </remarks>
    /// <returns></returns>

    [VersionedRoute("api/BankAccounts")]
    [SwaggerResponse(HttpStatusCode.OK, type: typeof(BasiqAccountModel[]))]
    public BasiqAccountModel[] GetAccounts([FromUri] string institutionId)
    {
        var response = _getAccountsQuery.Invoke(new GetAccountsRequest
        {
            UserId = AppContext.CurrentUser.id,
            InstitutionId = institutionId,
            Refreshed = false
        });

        return response.Accounts.Select(AutoMapper.Mapper.Map<BankAccountInfo, BasiqAccountModel>).ToArray();
    }

}
[ApiVersion("2.0")]
public class BankAccountV2Controller : UserApiControllerBase
{
public BankAccountV2Controller()
{
    }
    [VersionedRoute("api/BankAccounts")]
    [SwaggerResponse(HttpStatusCode.OK, type: typeof(BasiqAccountModel[]))]
    public string[] GetAccounts([FromUri] string institutionId)
    {
        return new[] { "abc00" };
    }
}

It works with all the controllers with parameterless constructor (version 2.0)

Best that I can tell, you are using Web API. Are you using some form of dependency injection (DI)? Web API does not support DI out-of-the-box. The default implementation of the IHttpControllerActivator only supports creating controller types with parameterless constructors via Activator.CreateInstance.
API versioning does not get involved with nor modify the way that controllers are activated.

I'm using windsor to create that controllers, so there are any ways to implement Api versioning in this case?

I assume you're using an implementation of IDependencyResolver, IDependencyScope, or perhaps even IHttpControllerActivator that is backed by Windsor.  Any DI framework will work with API versioning. API versioning does not get involved with or otherwise change any behaviors related to DI or controller activation.
API versioning does replace the following built-in Web API services:

IHttpControllerSelector
IHttpActionSelector

If your application is also replacing these (which is unusual), you'll need to decorate the API versioning types ApiVersionControllerSelector and/or ApiVersionActionSelector with your own types during registration.
If you're not changing these services, then there must be something wrong with the type mapping for the controller in your container.

You might be interested in checking out #184. I provided a working example of using the world's simplest DI container with API versioning. Perhaps you can compare container setup with your own.

Seems like you have resolved your issue. If you continue to face challenges feel free to create a new issue or re-open this one. Thanks.


accessToken and logIn methods hang the app (they never return) on iOS

Hi,
me and my company are having a release blocked by a bizarre bug.
On iOS only (Android works fine), awaiting for accessToken and the logIn method hangs the app, as the Futures never complete. They don't throw or complete with an error, they just never complete.
This behavior started as we switched to the 2.0.0 version of the plugin. The ATT permission is granted.
Below is the code responsible for starting the Facebook sign in flow after the user taps a button on the log in screen. I'd be grateful for any help!
  Future<bool> _signInWithFacebook() async {
    if (mounted) {
      setState(() {
        _preloadersSet.add(Preloaders.facebookSignIn);
      });
    }
    await AppTrackingTransparency.requestTrackingAuthorization();
    try {
      final fb = FacebookLogin(debug: kDebugMode);
      var token = await fb.accessToken.timeout(
        const Duration(seconds: 3),
        onTimeout: () async {
          await inject<SessionService>().forget();
          return null;
        },
      );
      if (token == null) {
        if (io.Platform.isAndroid) {
          final expressResult = await fb.expressLogin();
          if (expressResult.status == FacebookLoginStatus.success) {
            token = expressResult.accessToken;
          }
        }
        for (var tryNumber = 0; tryNumber < 2; tryNumber++) {
          if (token == null) {
            final result = await fb.logIn(permissions: [FacebookPermission.publicProfile, FacebookPermission.email]);
            // ignore: prefer-switch-with-enums
            if (result.status == FacebookLoginStatus.success) {
              token = result.accessToken;
            } else if (result.status == FacebookLoginStatus.cancel) {
              break;
            }
          } else {
            break;
          }
        }
        if (!mounted) return false;
        if (token == null) {
          throw Exception(context.loc.couldNotLogInWithFacebook);
        }
      }
      final result = await _authenticationService.authenticate(
        await _sessionService.authenticateBySocial(AuthenticateBySocialDTO(
          id: token.userId,
          provider: SocialProvider.facebook,
          token: token.isLimitedLogin ? token.authenticationToken : token.token,
        )),
      );
      if (mounted) {
        setState(() {
          _preloadersSet.remove(Preloaders.facebookSignIn);
        });
      }
      if (result == true &&
          !await _pushNotificationService.isOpenedFromPushNotificationWithUrl() &&
          _navigationService.isCurrent(Routes.login)) {
        inject<AnalyticsService>().logEvent(AnalyticsEvents.landingPageAuthChosen, {'auth': 'fb'});
        _navigate();
      }
      return result;
    } catch (error) {
      if (error is HttpException && (error.message?.contains('email') ?? false)) {
        inject<NotifyService>().error(error.message!);
      } else {
        inject<NotifyService>().error(error);
      }
      if (mounted) {
        setState(() {
          _preloadersSet.remove(Preloaders.facebookSignIn);
        });
      }
      return false;
    }
  }

Hello!
I'm sorry, I somehow missed that issue. Did you get it sorted out?
In the above code, does the first call to fb.accessToken cause hangs or just the fb.logIn() call?

Hi, thanks for reaching out!
I've managed to debug this problem and found out that in the plugin, in this method in file facebook_plugin_channel.dart:
invokeMethodNow<bool>(PluginMethod.isReady).then((value) {
      if (value == true) _ready();
    });

the value is always false.
I've fixed this by forking your repo, and changing the code to this:
invokeMethodNow<bool>(PluginMethod.isReady).then((value) {
      //if (value == true) _ready();
      _ready();
    });

Me and my team have tested this fix and now we use it in prod, without issues. Hope it helps you with debugging. In case of any questions, I'd be happy to help.

And to answer your question: both fb.accessToken and fb.logIn() hang the app.

Hi, I'm having the same issue.,
Is there any other solution apart from the one suggested by jakubkrapiec? I tested and it works but I was trying to avoid the fork.
I will be grateful for any help!

Hello @marceloamx
The problem is that in the latest versions of FB SDK, the data is not available immediately on startup, but only after time. So if you try to check the current accessToken, it will be null until the initialization is complete.
As a workaround, I added the logic above, the one with "isReady". Hang of the app is a result of some logic error, because apparently the initialization complete handler doesn't work properly. It could be my mistake, or buggy FB SDK implementation, or even some random conflict with another package in your project.
Fork doesn't solve the problem per se. It fixed the hang, but it brought back the problem with uninitialised data. But if it doesn't matter for a particular implementation, it will work fine.
I'm going to look in the issue closely and add some fallback logic with timer, to exclude the hang behaviour.
Sorry for the late reply, I have some shortage of time. But I will try to fix this issue as soon as possible.


Reduce variance that could be masking other previous optimizations like munmap() parallelization.

See commit message for details. My previous PR #465 yielded only 2% gain on eval machine vs 10% gain local. I don't really have great theories except to consider (1) Reducing variance (this PR) and (2) Adaptive Tuning (future PRs if time permits); that is, the tuning params will be chosen based on running some samples and inferring good param values.
Check List:

[x] Tests pass (./test.sh <username> shows no differences between expected and actual outputs)
[x] All formatting changes by the build are committed
[x] Your launch script is named calculate_average_<username>.sh (make sure to match casing of your GH user name) and is executable
[x] Output matches that of calculate_average_baseline.sh
[x] For new entries, or after substantial changes: When implementing custom hash structures, please point to where you deal with hash collisions (line number)

Leaderboard based on local testing with 5 immediately above and 3 immediately below me on the current official leaderboard.

#
Result (m:s.ms)
Implementation
JDK
Submitter
Notes

1
00:02.131
link
21.0.1-open
John Ziamos

2
00:02.158
link
21.0.1-tem
Peter Levart

3
00:02.189
link
21.0.1-graal
Elliot Barlas

00:02.207
link
21.0.1-graal
Subrahmanyam

00:02.252
link
21.0.1-open
unbounded

00:02.265
link
21.0.1-open
Cliff Click

00:02.378
link
21.0.1-graal
Yavuz Tas

00:02.410
link
21.0.1-graal
Jamal Mulla

00:02.811
link
21.0.1-open
Arjen Wisse

Slight improvement indeed:
Benchmark 1: timeout -v 300 ./calculate_average_vemana.sh 2>&1
  Time (mean ± σ):      4.917 s ±  0.037 s    [User: 36.956 s, System: 0.783 s]
  Range (min … max):    4.863 s …  4.960 s    5 runs

Summary
  vemana: trimmed mean 4.9204516103066664, raw times 4.91462494264,4.90442194264,4.94230794564,4.95971142264,4.86340909464

Leaderboard

| # | Result (m:s.ms) | Implementation     | JDK | Submitter     | Notes     |
|---|-----------------|--------------------|-----|---------------|-----------|
|   | 00:04.920 | [link](https://github.com/gunnarmorling/1brc/blob/main/src/main/java/dev/morling/onebrc/CalculateAverage_vemana.java)| 21.0.1-graal | [Subrahmanyam](https://github.com/vemana) |  |

Adaptive Tuning (future PRs if time permits); that is, the tuning params will be chosen based on running some samples and inferring good param values.

Interesting idea. What exactly would you tune? Note that runs must be "stateless", i.e. you could not record some sort of statistics in the first run and load them from disk or elsewhere in the next runs.

@gunnarmorling  Thanks for the variance data. A range of 2% is decent.
As for tuning, yes, I should've said Adaptive Runtime Tuning and hence stateless. The optimal tuning parameter (munmapFraction as I call it) depends on the ratio of two quantities: latency of munmap() to latency of the rest of the computation.  I can hand-tune it based on my machine (Zen 4), but that won't apply to the eval machine since it is Zen2. So, the idea is the same as profile guided optimization that JIT does. At runtime, issue an initial call to munmap(), measure how long it takes, estimate ratio and pick the tuning parameter based on ihat.

Interesting one! Looking forward to it, should you find the time to
implement it.

Message ID: @.***>


TS 1.5.3 - Property 'attachEvent' does not exist on type 'Window'

I've just updated from 1.4.1 to 1.5.3 and my compiler doesn't want to compile that kind of code.
        if (window.addEventListener) {
            addEventListener("message", callback, false);
        } else {
            // Compatibilité IE.
            attachEvent("onmessage", callback);// THIS FAILS in 1.5.x., tried window.attachEvent, same thing.
        }

It is not listed on the breaking changes: https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes
Any advice/workaround?
Thanks.
(that seems to be the only breaking change, keep up the good work guys, TS is just awesome!)

as for the workaround, what about
(<any>window).attachEvent("onmessage", callback);

This workaround should make it, thanks. ;)

Sorry about that. i have added it to the breaking changes list. they are IE-specific and we have cleaned up most of these, to keep the library accurate. to get your code to work all you need is the defintiion for these, so include this in one of your files:
// Add IE-specific interfaces to Window
interface Window {
    attachEvent(event: string, listener: EventListener): boolean;
    detachEvent(event: string, listener: EventListener): void;
}

It makes sense! Thanks for the quick review and help, much appreciated!

Just another thing, I just saw you made a spelling mistake in the breaking change page at detatchEvent :

IE-specific attachEvent and detatchEvent are removed from Window

thanks! fixed.

so how come all the global properties such as window.HTMLAnyElement do not exist in the Window interface? am I doing something wrong?

@z-vr, this is not related to the OP. the standard lib does not model the DOM mapping of global object to window. if you want to add these you can define something like:
interface Window {
    HTMLDivElement: typeof HTMLDivElement;
}

Try window['attachEvent']

@kmvan
Thanks.
It works when I try window['FileReader']

i've written some collections for typescript globals.d.ts#L105


Check authentication for cluster APIs

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/1673/

@neunhoef: can we merge this?

we need to adjust the permissions required for move shard and shard distribution

@neunhoef @graetzer: can we merge this?

I think this is ready now

@neunhoef : click click?


Remove tiles

This PR removes everything related to tiles, e.g., TiledImage, tile_source_map, and ImageTile, to close #316, #346, and #382. These data structures were some of the least memory efficient, as shown by benchmark_infer.jl.
On master
  5.167481 seconds (3.28 M allocations: 546.604 MB, 15.05% gc time)

On the notiles branch (this PR):
  3.855813 seconds (1.80 M allocations: 316.182 MB, 5.49% gc time)

Memory allocation falls by ~40% and gc time falls by ~60%.
But benchmark_infer.jl may overstate the importance of not copying/tiling each image, because it only optimizes 4 light sources. However, benchmark_rcf.jl shows that the improvement persists when we process a whole RCF, albeit one with relatively few sources.
On master
152.511854 seconds (283.88 M allocations: 19.706 GB, 20.77% gc time)

On the notiles branch:
105.759341 seconds (94.08 M allocations: 8.588 GB, 4.33% gc time)

The new code is cleaner too: tiles were a convoluted way to partition images. This PR removes nearly 1000 lines of code in net from the codebase, including some of the most confusing code. In the old code, images were divided into 20 pixel x 20 pixel tiles. Each light source only "influenced" a subset of the tiles.  We had a map from each light source to its tiles, and from each tile to its light sources. The indexes of pixels within these tiles that were "active" were recorded in a vector.
The new code maps each light source to the rectangle of pixels in each region it might influence. For each pixel in this rectangle, we maintain a bitmap, true if the pixel is "active" (i.e. relevant to the objective function) and false otherwise. There's no longer an explicit map stored from regions of the images to light sources. Rather, where we need this map in the code, we iterated through all sources and test whether they list the pixel as active. This loop is very fast in practice because we only process nearby light sources (neighbors) together, and because looping doesn't allocate any memory.
Though this PR moves us forward, it introduces a few regressions. 1) I ran out of time before updating every unit test, so I left some commented out and opened issue #406. 2) I refactored elbo_objective.jl because I was struggling to understand what was going on. And while I think the new version is cleaner and more efficient, it creates work for anyone familiar with, or basing code on, how it was. 3) While I stopped using the elbo to determine active pixels (#310), I used kind of a hack. I make the pixels observe to be bright the active pixels. That biases the results. But validate_on_stripe82.jl holds up, so I think it's OK for now, though we'll want to explore subsampling pixels more systematically soon.

Epic change. Nice work.
On Wed, Nov 9, 2016 at 7:27 PM Jeffrey Regier<EMAIL_ADDRESS>wrote:

Merged #408 https://github.com/jeff-regier/Celeste.jl/pull/408.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jeff-regier/Celeste.jl/pull/408#event-853926653, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABC_kATF-EJB6fCKLA6gz3dCNaHoNiDtks5q8o8vgaJpZM4KuK10
.


Add architecture documentation

We still have the design doc but it's probably partially out of data and doesn't reference to any implementation. A brief in-repo summary of the final solution seems like a good guidance for future readers/committers.

Yes, linking it here would definitely make sense.

Please go ahead and merge this change. I'll send you a separate PR with the entire document in Markdown.


General Windows improvements / c_* and winapi types

fixes #32 for Windows only, fixes #39 #40

This is failing CI because I added extra tests which don't pass on Ubuntu - I didn't actually change any linux-specific code, only expose an existing bug. I will still fix CI, but give me some time.

Okay, now I have no clue why Ubuntu tests are failing. They pass on my local computer...


When updating doesn't show values / conflict with Flexible?

I have a problem with this package, i don't know if i'm doing something wrong but when i create a resource this works great, when I update a resource the value of the options doesn't show and if I save resource i lost the data.
I use this package with Flexible
Flexible::make(__('Custom fields'))
    ->addLayout(__('New field'), 'text', [
        Text::make(__('Title')),
        Select::make(__('Value type'))
            ->options([
                'text' => 'Text label',
                'select' => 'Select label',
            ])->displayUsingLabels(),
            NovaDependencyContainer::make([
                Flexible::make(__('Options'))
                    ->addLayout(__('New option'), 'text', [
                        Text::make(__('Option value')),
                    ])
            ])
            ->dependsOn('type', 'select'),
    ]),

I can confirm these packages don't go well together.
If you flip it, and wrap the Flexible field inside a NovaDependencyContainer, saving is prohibited due to an exception saying "inUseKey called on null".
NovaDependencyContainer::make([
  Flexible::make('Foo', 'content')
    ->fullWidth()
    ->addLayout(Foo::class)
    ->limit(1),
])->dependsOn('type', 'foo'),

Of course, the question remains if this is a problem with the Flexible package or the NovaDependencyContainer package.

If I had to guess, and this is just a guess, but I'm guessing that something about how this and Flexible are handling child fields on resolve are probably different which is causing the various issues. If someone can put together a PR to address it that'd be great. Unfortunately, I don't have a need for Flexible, so I can't exactly be much help here.
I would have one suggestion though, in the original example, if you don't put Flexible inside the Dependency container, but just put the Text field that you want there might work. It seems from their docs, you wouldn't be nesting Flexible inside Flexible layouts, but I could be wrong.
I'm going to close this to keep the issues clean as this seems heavily dependent on Flexible functionality as they seem to see the layouts as a collection of fields, and if they store values the same way that Nova does, there should be no issue.

I actually fixed my issue with this PR on the Flexible repo.
So for future adventurers: I'm not sure about wrapping Flexible around NovaDependencyContainer, but wrapping NovaDependencyContainer around Flexible is definitely possible with the latest versions of these packages. 👍

Thanks @harmenjanssen,
I'll try asap, I had to redesign the part and remove some features, I hope this will help me.
@ragingdave unfortunately what I needed is that the fields were dynamic but your idea is very good.
Thank you both, so much.


Re-add --cloud-provider=external kubelet arg

Proposed Changes
The cloud-provider arg is deprecated and cannot be set to anything other than external, but must still be used or node addresses are not set properly.
brandond@dev01:~$ k3s server | grep 'has been deprecated'
Flag --cloud-provider has been deprecated, will be removed in 1.24 or later, in favor of removing cloud provider code from Kubelet.
Flag --pod-infra-container-image has been deprecated, will be removed in 1.27. Image garbage collector will get sandbox image information from CRI.

If there is no in-tree cloud-provider configured, but cloud-provider is not explicitly set to external, the kubelet replaces the node Address list with the --node-ip values every time it syncs:
https://github.com/kubernetes/kubernetes/blob/release-1.24/pkg/kubelet/nodestatus/setters.go#L158-L163
Types of Changes
bugfix
Verification
See linked issue
Linked Issues

https://github.com/rancher/rke2/issues/3000

User-Facing Change
NONE

Further Comments

Sonobuoy tests flaked; merging


Example does not work with OpenBSD

Hi,
I am trying to get lsquic.cr to work on OpenBSD but the example is failing on me. When I start crystal example.cr I get no return from https://github.com/omarroth/lsquic.cr/blob/de2c945a2efaec85f0dfcb5a730fb976431fbb0c/src/lsquic/client.cr#L403
I use :

$ crystal -v
Crystal 0.34.0 (2020-04-26)
LLVM: 8.0.1
Default target: x86_64-unknown-openbsd6.7

I don't know if it is a Crystal, a liblsquic or a lsquic.cr problem.
Can you help with debugging this issue ?
example.cr :
require "lsquic"

client = QUIC::Client.new("www.youtube.com")
client.get("/")```

You might try building the static objects in src/lsquic/ext/ from source. The instructions to build them are here. After building, you should have a liblsquic.a from lsquic and a libssl.a and libcrypto.a from boringssl.

I forgot to mention that I did it before posting :)

In that case check that lsquic is working correctly. After building lsquic you should have a ./http_client binary that you can test with.
Check that the following command returns a valid response, which would confirm the issue is in this library:
$ ./http_client -4 -s google.com -p '/' -o version=Q046 -l conn=debug

I have to change the code in test_common.c to make it work :
https://github.com/litespeedtech/lsquic/blob/b78e44eec5aaa0a56c5a8fd54f1da825d6427418/test/test_common.c#L84
#define MAX_PACKET_SZ 1500

Try building from the dev branch instead. Replacing the static library liblsquic.a with something like:
$ ar -x libssl.a
$ ar -x libcrypto.a
$ ar -x liblsquic.a
$ rm liblsquic.a
$ ar rc liblsquic.a *.o
$ rm *.o
$ strip --strip-unneeded liblsquic.a
$ ranlib lsquic.a

Thank you.
It builds fine but still no return from https://github.com/omarroth/lsquic.cr/blob/de2c945a2efaec85f0dfcb5a730fb976431fbb0c/src/lsquic/client.cr#L403

I'd recommend uncommenting these lines, which should enable verbose debugging information.
Out of curiosity, does ./http_client work if you use the -z BYTES option instead of redefining MAX_PACKET_SZ?
If either freezes at a particular point the previous 10-20 lines logged would be helpful.

Here are some tests :
./http_client -4 -s google.com -p '/' -o version=Q046 -l conn=debug -z 1500
20:06:28.747 [DEBUG] [QUIC:15C2C8D8282CDF5E] conn: negotiating version Q046
20:06:28.748 [INFO] [QUIC:15C2C8D8282CDF5E] conn: Created new client connection
20:06:28.748 [DEBUG] [QUIC:15C2C8D8282CDF5E] conn: delayed stream creation.  Backlog size: 1
20:06:28.748 [DEBUG] [QUIC:15C2C8D8282CDF5E] conn: memory used: 8930 bytes
packout buf size too large: 1500Abort trap (core dumped)

o4# ./http_client -4 -s google.com -p '/' -o version=Q046 -l conn=debug -z 1280
20:06:34.827 [DEBUG] [QUIC:D3CC54CA3C12FD5C] conn: negotiating version Q046
20:06:34.828 [INFO] [QUIC:D3CC54CA3C12FD5C] conn: Created new client connection
20:06:34.828 [DEBUG] [QUIC:D3CC54CA3C12FD5C] conn: delayed stream creation.  Backlog size: 1
20:06:34.828 [DEBUG] [QUIC:D3CC54CA3C12FD5C] conn: memory used: 8930 bytes
20:06:34.829 [DEBUG] [QUIC:D3CC54CA3C12FD5C] conn: not tickable
[hangs here]

o4# ./http_client -4 -s google.com -p '/' -o version=Q046 -l conn=debug -z 100
20:06:42.828 [DEBUG] [QUIC:9448AC61E994D036] conn: negotiating version Q046
20:06:42.829 [INFO] [QUIC:9448AC61E994D036] conn: Created new client connection
20:06:42.829 [DEBUG] [QUIC:9448AC61E994D036] conn: delayed stream creation.  Backlog size: 1
20:06:42.829 [DEBUG] [QUIC:9448AC61E994D036] conn: memory used: 8930 bytes
20:06:42.831 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:42.987 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:43.295 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:43.901 [DEBUG] [QUIC:9448AC61E994D036] conn: memory used: 11238 bytes
20:06:43.903 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:45.105 [DEBUG] [QUIC:9448AC61E994D036] conn: memory used: 11302 bytes
20:06:45.106 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:47.523 [DEBUG] [QUIC:9448AC61E994D036] conn: memory used: 11302 bytes
20:06:47.524 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:52.339 [DEBUG] [QUIC:9448AC61E994D036] conn: memory used: 11366 bytes
20:06:52.340 [DEBUG] [QUIC:9448AC61E994D036] conn: not tickable
20:06:52.836 [DEBUG] [QUIC:9448AC61E994D036] conn: connection timed out: handshake timed out
20:06:52.836 [DEBUG] [QUIC:9448AC61E994D036] conn: destroy connection

With reduced MAX_PACKET_SZ :
o4# ./http_client -4 -s google.com -p '/' -o version=Q046 -l conn=debug
20:12:55.960 [DEBUG] [QUIC:49143524780131D3] conn: negotiating version Q046
20:12:55.961 [INFO] [QUIC:49143524780131D3] conn: Created new client connection
20:12:55.961 [DEBUG] [QUIC:49143524780131D3] conn: delayed stream creation.  Backlog size: 1
20:12:55.961 [DEBUG] [QUIC:49143524780131D3] conn: memory used: 8930 bytes
20:12:55.962 [DEBUG] [QUIC:49143524780131D3] conn: not tickable
20:12:55.993 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 1
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: end of version negotiation: agreed upon Q046
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 3, packno: 1, max: 0) to 1
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: Saved ACK
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #1
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: ACK alarm set to 604463843
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 2
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 3, packno: 2, max: 1) to 2
20:12:55.994 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #1
20:12:55.996 [DEBUG] [QUIC:49143524780131D3] conn: ACK queued: ackable: 2; had_miss: 0; was_missing: 0; n_stop_waiting: 0
20:12:55.996 [DEBUG] [QUIC:49143524780131D3] conn: Processing ACK
20:12:55.996 [DEBUG] [QUIC:49143524780131D3] conn: Put 6 bytes of ACK frame into packet on outgoing queue
20:12:55.996 [DEBUG] [QUIC:49143524780131D3] conn: ACK state reset
20:12:55.999 [DEBUG] [QUIC:49143524780131D3] conn: not tickable
20:12:56.023 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 3
20:12:56.023 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 3, packno: 3, max: 2) to 3
20:12:56.024 [DEBUG] [QUIC:49143524780131D3] conn: Saved ACK
20:12:56.024 [DEBUG] [QUIC:49143524780131D3] conn: Processing ACK
20:12:56.024 [DEBUG] [QUIC:49143524780131D3] conn: not tickable
20:12:56.031 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 4
20:12:56.031 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 3, packno: 4, max: 3) to 4
20:12:56.031 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #1
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: peer settings: CFCW: 196608; SFCW: 131072; MIDS: 100
20:12:56.033 [INFO] [QUIC:49143524780131D3] conn: Applying peer config: cfcw: 196608; sfcw: 131072; # streams: 100
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: not sending any settings
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: creating delayed streams
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: created 1 delayed stream
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: ACK alarm set to 604501163
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 5
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 0, packno: 5, max: 4) to 5
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: Saved ACK
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: ACK alarm set to 604503247
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: Processing ACK
20:12:56.033 [DEBUG] [QUIC:49143524780131D3] conn: not tickable
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 6
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 0, packno: 6, max: 5) to 6
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: Saved ACK
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #3
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #5
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: ACK queued: ackable: 2; had_miss: 0; was_missing: 0; n_stop_waiting: 0
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: Processing packet 7
20:12:56.069 [DEBUG] [QUIC:49143524780131D3] conn: reconstructed (bits: 0, packno: 7, max: 6) to 7
20:12:56.070 [DEBUG] [QUIC:49143524780131D3] conn: Got stream frame for stream #5
20:12:56.070 [DEBUG] [QUIC:49143524780131D3] conn: Processing ACK
20:12:56.070 [DEBUG] [QUIC:49143524780131D3] conn: incoming headers for stream 5
HTTP/1.1 301 Moved Permanently
location: https://www.google.com/
content-type: text/html; charset=UTF-8
date: Thu, 21 May 2020 18:12:48 GMT
expires: Sat, 20 Jun 2020 18:12:48 GMT
cache-control: public, max-age=2592000
server: gws
content-length: 220
x-xss-protection: 0
x-frame-options: SAMEORIGIN
alt-svc: h3-27=":443"; ma=2592000,h3-25=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q049=":443"; ma=2592000,h3-Q048=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"

<meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE>

301 Moved

The document has moved
here.

20:12:56.070 [DEBUG] [QUIC:49143524780131D3] conn: Put 6 bytes of ACK frame into packet on outgoing queue
20:12:56.071 [DEBUG] [QUIC:49143524780131D3] conn: ACK state reset
20:12:56.071 [DEBUG] [QUIC:49143524780131D3] conn: wrote GOAWAY frame: stream id: 0
20:12:56.071 [DEBUG] [QUIC:49143524780131D3] conn: connection is OK to close
20:12:56.071 [DEBUG] [QUIC:49143524780131D3] conn: generated CONNECTION_CLOSE frame in its own packet
20:12:56.071 [DEBUG] [QUIC:49143524780131D3] conn: destroy connection

The example with debug enabled :
o4# ./test-lsquiccr
20:36:31.555 [DEBUG] tokgen: TOKGEN1 does not exist: generate
20:36:31.557 [INFO] tokgen: inserted TOKGEN1 of size 110
20:36:31.557 [DEBUG] tokgen: initialized
20:36:31.558 [INFO] engine: instantiated engine
20:36:31.597 [DEBUG] engine: grew heaps to 4 elements
20:36:31.597 [DEBUG] [QUIC:FEC6A01A2F1F65F7] cfcw: recv_off changed: read_off: 0; recv_off: 15728640
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7] cubic: lsquic_cubic_init(cubic, $conn)
20:36:31.598 [INFO] [QUIC:FEC6A01A2F1F65F7] cubic: initialized
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7] rechist: instantiated received packet history
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] di: initialized
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] sfcw: recv_off changed: read_off: 0; recv_off: 6291456
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] stream: created stream
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] stream: calling on_new_stream
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7] headers: stream created
20:36:31.598 [DEBUG] [QUIC:FEC6A01A2F1F65F7] frame-reader: reset state
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] conn: negotiating version Q050
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] di: initialized
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] sfcw: recv_off changed: read_off: 0; recv_off: 6291456
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: created stream
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: calling on_new_stream
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] hsk-adapter: stream created
20:36:31.599 [INFO] [QUIC:FEC6A01A2F1F65F7] conn: Created new client connection
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: created full connection
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: connection created
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] qlog: [2020044748,"CONNECTIVITY","NEW_CONNECTION","LINE",{"ip_version":"4","srcip":"<IP_ADDRESS>","dstip":"<IP_ADDRESS>","srcport":"13774","dstport":"443"}]
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: version negotiation: proposed version Q050
20:36:31.599 [DEBUG] [QUIC:FEC6A01A2F1F65F7] qlog: [2020044872,"CONNECTIVITY","VERNEG","LINE",{"proposed_version":"Q050"}]
20:36:31.599 [DEBUG] engine: incref conn FEC6A01A2F1F65F7, 'H' -> 'HT'
20:36:31.600 [DEBUG] [QUIC:FEC6A01A2F1F65F7] conn: delayed stream creation.  Backlog size: 1
20:36:31.600 [DEBUG] engine: decref conn FEC6A01A2F1F65F7, 'HT' -> 'H'
20:36:31.600 [DEBUG] [QUIC:FEC6A01A2F1F65F7] conn: memory used: 8935 bytes
20:36:31.600 [DEBUG] [QUIC:FEC6A01A2F1F65F7] pacer: lsquic_pacer_can_schedule: 1
20:36:31.600 [DEBUG] [QUIC:FEC6A01A2F1F65F7] handshake: lsquic_enc_session_gen_chlo called, return 0, buf_len 1024.
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: buffered 1024 bytes; 1024 bytes are now in buffer
20:36:31.601 [INFO] [QUIC:FEC6A01A2F1F65F7] hsk-adapter: wrote 1024 bytes of CHLO to stream
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: will flush up to offset 1024
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] sendctl: send_ctl_can_send: n_out: 0 (unacked_all: 0); cwnd: 46720
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] pacer: lsquic_pacer_can_schedule: 1
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] sendctl: created packet 1
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: created packet 1; flags: version=1, nonce=0, conn_id=1
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] pacer: lsquic_pacer_packet_scheduled: replenish tokens: 10
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] pacer: lsquic_pacer_packet_scheduled: tokens: 9
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: generated CRYPTO frame: offset: 0, size: 1024
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: flushed to or past required offset 1024
20:36:31.601 [DEBUG] engine: incref conn FEC6A01A2F1F65F7, 'H' -> 'HO'
20:36:31.601 [DEBUG] engine: incref conn FEC6A01A2F1F65F7, 'HO' -> 'HOK'
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] sendctl: packet size 1370 larger than 1200-byte limit: not zero-padding
20:36:31.601 [DEBUG] [QUIC:FEC6A01A2F1F65F7] handshake: apply header protection using mask 8E2E4A5B60
20:36:31.601 [DEBUG] engine: batched packet 1 for connection FEC6A01A2F1F65F7
20:36:31.602 [DEBUG] engine: batched all outgoing packets for full conn FEC6A01A2F1F65F7
20:36:31.603 [DEBUG] engine: cannot send packets
20:36:31.603 [DEBUG] event: cannot send packets
20:36:31.603 [WARN] engine: error sending packet for regular connection FEC6A01A2F1F65F7 - close it; src: <IP_ADDRESS>:13774; dst: <IP_ADDRESS>:443; errno: 56
20:36:31.604 [DEBUG] engine: incref conn FEC6A01A2F1F65F7, 'HOK' -> 'CHOK'
20:36:31.604 [DEBUG] engine: decref conn FEC6A01A2F1F65F7, 'CHOK' -> 'COK'
20:36:31.604 [DEBUG] engine: decref conn FEC6A01A2F1F65F7, 'COK' -> 'CO'
20:36:31.604 [DEBUG] engine: packets out returned 0 (out of 1)
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: unsent packet 1, size 1370, frame types: PADDING CRYPTO
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] sendctl: packet 1 has been delayed
20:36:31.604 [DEBUG] engine: decref conn FEC6A01A2F1F65F7, 'CO' -> 'C'
20:36:31.604 [DEBUG] engine: send_packets_out: sent 0 packets
20:36:31.604 [DEBUG] engine: decref conn FEC6A01A2F1F65F7, 'C' -> ''
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] conn: destroy connection
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] headers: stream closed
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] sfcw: read_off goes from 0 to 0
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] stream: destroyed stream
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-1] stream: history: [CN1]
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] hsk-adapter: stream closed
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] sfcw: read_off goes from 0 to 0
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: destroyed stream
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7-18446744073709551615] stream: history: [CN32w1]
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] pacer: scheduled calls: 1
20:36:31.604 [NOTICE] [QUIC:FEC6A01A2F1F65F7] sendctl: stats: n_total_sent: 0; n_resent: 0; n_delayed: 1
20:36:31.604 [DEBUG] [QUIC:FEC6A01A2F1F65F7] event: full connection destroyed

Note that tcpdump shows only the dns resolution with this example (no traffic going to port 443) while with http_client :
20:22:49.572559 <IP_ADDRESS>.18075 > <IP_ADDRESS>.443: udp 1200
20:22:49.592904 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 1200 (DF)
20:22:49.593395 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 1200 (DF)
20:22:49.593431 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 1200 (DF)
20:22:49.598731 <IP_ADDRESS>.18075 > <IP_ADDRESS>.443: udp 1200
20:22:49.621799 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 1200 (DF)
20:22:49.624539 <IP_ADDRESS>.18075 > <IP_ADDRESS>.443: udp 68
20:22:49.650161 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 620 (DF)
20:22:49.650164 <IP_ADDRESS>.443 > <IP_ADDRESS>.18075: udp 27 (DF)
20:22:49.651824 <IP_ADDRESS>.18075 > <IP_ADDRESS>.443: udp 44
20:22:49.652071 <IP_ADDRESS>.18075 > <IP_ADDRESS>.443: udp 33

Would you mind checking with the latest version to see if the issue is fixed?

No changes with the latest version of lsquic.cr. The good news though is http_client works without any changes to MAX_PACKET_SZ. Thank you.
$ ./test-lsquiccr
18:00:05.604 [DEBUG] tokgen: TOKGEN2 does not exist: generate
18:00:05.606 [INFO] tokgen: inserted TOKGEN2 of size 110
18:00:05.606 [DEBUG] tokgen: initialized
18:00:05.606 [INFO] engine: instantiated engine
18:00:05.677 [DEBUG] engine: grew heaps to 4 elements
18:00:05.677 [DEBUG] [QUIC:A8B19FEEB91D10A4] cfcw: recv_off changed: read_off: 0; recv_off: 15728640
18:00:05.677 [DEBUG] [QUIC:A8B19FEEB91D10A4] cubic: lsquic_cubic_init(cubic, $conn)
18:00:05.677 [INFO] [QUIC:A8B19FEEB91D10A4] cubic: initialized
18:00:05.677 [DEBUG] [QUIC:A8B19FEEB91D10A4] rechist: instantiated received packet history
18:00:05.677 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] di: initialized
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] sfcw: recv_off changed: read_off: 0; recv_off: 6291456
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] stream: created stream
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] stream: calling on_new_stream
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4] headers: stream created
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4] frame-reader: reset state
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] di: get_frame: no frame at read offset 0
18:00:05.678 [DEBUG] [QUIC:A8B19FEEB91D10A4] conn: negotiating version Q050
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] di: initialized
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] sfcw: recv_off changed: read_off: 0; recv_off: 6291456
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: created stream
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: calling on_new_stream
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] hsk-adapter: stream created
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] sendctl: send_ctl_can_send: n_out: 0 (unacked_all: 0); cwnd: 46720
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] pacer: lsquic_pacer_can_schedule: 1
18:00:05.679 [DEBUG] engine: incref conn A8B19FEEB91D10A4, '' -> 'T'
18:00:05.679 [INFO] [QUIC:A8B19FEEB91D10A4] conn: Created new client connection
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: created full connection
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: connection created
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] qlog: [34678538187,"CONNECTIVITY","NEW_CONNECTION","LINE",{"ip_version":"4","srcip":"<IP_ADDRESS>","dstip":"<IP_ADDRESS>","srcport":"17707","dstport":"443"}]
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: version negotiation: proposed version Q050
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] qlog: [34678538306,"CONNECTIVITY","VERNEG","LINE",{"proposed_version":"Q050"}]
18:00:05.679 [DEBUG] [QUIC:A8B19FEEB91D10A4] conn: delayed stream creation.  Backlog size: 1
18:00:05.679 [DEBUG] engine: decref conn A8B19FEEB91D10A4, 'HT' -> 'H'
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] conn: memory used: 8327 bytes
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] pacer: lsquic_pacer_can_schedule: 1
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] handshake: lsquic_enc_session_gen_chlo called, return 0, buf_len 1024.
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: buffered 1024 bytes; 1024 bytes are now in buffer
18:00:05.680 [INFO] [QUIC:A8B19FEEB91D10A4] hsk-adapter: wrote 1024 bytes of CHLO to stream
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: will flush up to offset 1024
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] sendctl: send_ctl_can_send: n_out: 0 (unacked_all: 0); cwnd: 46720
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] pacer: lsquic_pacer_can_schedule: 1
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] sendctl: created packet 1
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: created packet 1; flags: version=1, nonce=0, conn_id=1
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] pacer: lsquic_pacer_packet_scheduled: replenish tokens: 10
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] pacer: lsquic_pacer_packet_scheduled: tokens: 9
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: generated CRYPTO frame: offset: 0, size: 1024
18:00:05.680 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: flushed to or past required offset 1024
18:00:05.680 [DEBUG] engine: incref conn A8B19FEEB91D10A4, 'H' -> 'HO'
18:00:05.680 [DEBUG] engine: incref conn A8B19FEEB91D10A4, 'HO' -> 'HOK'
18:00:05.681 [DEBUG] [QUIC:A8B19FEEB91D10A4] sendctl: packet size 1370 larger than 1200-byte limit: not zero-padding
18:00:05.681 [DEBUG] [QUIC:A8B19FEEB91D10A4] handshake: apply header protection using mask CFDA2FD9CA
18:00:05.681 [DEBUG] engine: batched packet 1 for connection A8B19FEEB91D10A4
18:00:05.681 [DEBUG] engine: batched all outgoing packets for full conn A8B19FEEB91D10A4
18:00:05.682 [DEBUG] engine: cannot send packets
18:00:05.683 [DEBUG] event: cannot send packets
18:00:05.683 [WARN] engine: error sending packet for regular connection A8B19FEEB91D10A4 - close it; src: <IP_ADDRESS>:17707; dst: <IP_ADDRESS>:443; errno: 56
18:00:05.683 [DEBUG] engine: incref conn A8B19FEEB91D10A4, 'HOK' -> 'CHOK'
18:00:05.683 [DEBUG] engine: decref conn A8B19FEEB91D10A4, 'CHOK' -> 'COK'
18:00:05.683 [DEBUG] engine: decref conn A8B19FEEB91D10A4, 'COK' -> 'CO'
18:00:05.683 [DEBUG] engine: packets out returned 0 (out of 1)
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: unsent packet 1, size 1370, frame types: PADDING CRYPTO
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] sendctl: packet 1 has been delayed
18:00:05.683 [DEBUG] engine: decref conn A8B19FEEB91D10A4, 'CO' -> 'C'
18:00:05.683 [DEBUG] engine: send_packets_out: sent 0 packets
18:00:05.683 [DEBUG] engine: decref conn A8B19FEEB91D10A4, 'C' -> ''
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] conn: destroy connection
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] headers: stream closed
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] sfcw: read_off goes from 0 to 0
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4-1] stream: destroyed stream
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] hsk-adapter: stream closed
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] sfcw: read_off goes from 0 to 0
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4-18446744073709551615] stream: destroyed stream
18:00:05.683 [NOTICE] [QUIC:A8B19FEEB91D10A4] sendctl: stats: n_total_sent: 0; n_resent: 0; n_delayed: 1
18:00:05.683 [DEBUG] [QUIC:A8B19FEEB91D10A4] event: full connection destroyed


Request for "Edit settings.json" option in File -> Preferences

Previous issue https://github.com/microsoft/vscode/issues/115068 got prematurely closed, and I can't reopen :crying_cat_face:

Issues can be reopened


Add license headers

Adds copyright notices to source files and a corresponding AUTHORS file; this is requested by the Google open source team for my external contributions (required for new files; I'm opting to just add it to everything). Note that per the guidance here, adding folks to AUTHORS should be done by request rather than by trying to keep up with every change.
Later I'll draft a CONTRIBUTING.md file for other folks who want to contribute; see https://help.github.com/en/github/building-a-strong-community/setting-guidelines-for-repository-contributors
Added with:
$ go get -u github.com/google/addlicense
$ addlicense -c "The Open Reaction Database Authors" -l apache .

Note further that https://github.com/Open-Reaction-Database/ord-schema/graphs/contributors keeps an up-to-date list of all contributors; the AUTHORS is mainly for copyright purposes AFAICT.

Would it be overkill to have a Github action that ensures that all .py files contain the string # Copyright 2020 The Open Reaction Database Authors? Just so we remember to add it to any new files?

No at all; that's basically what addlicense was designed for. I'll create an issue and do this in another PR.


ReleaseNotes: Wondershare.PDFelement.CN version 9.4.5

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

I believe this was another data center block, to prevent automated downloads.


Add overlay type

By adding an overlay type we can show or hide the grid, and potentially add more overlays. Such as a circle overlay, like when choosing a profile image in Instagram.

This would be really helpful for us.

Nice. @s4cha check please.

@sanderdekoning This looks like a great feature ! @NikKovIos I'm pretty happy with the api exposed, it does the job pretty cleanly.
PS: Sorry for taking ages to review this 🙏