Stream Byte Flow Control

ReactiveSocket already support 2 types of flow control mechanisms:

REQUEST_N for application level management of number of items being sent on a stream
LEASE for a Responder to control the number of requests it can receive

There is a potential deficiency if large messages are sent that REQUEST_N will not necessary address.
For example, if a large image is sent, it could head-of-line block all other streams, since the image is considered a single item, but could be very large.
An implementation can correctly use small fragment sizes in the protocol to ensure it interleaves correctly, but nothing about the protocol currently ensures this is in fact how an implementation will behave. Also, even with fragmentation, nothing will stop that stream from sending everything.
So, should we consider modifying the protocol to support the following two improvements?

Default fragmentation size that is generally optimal for public internet (and can be changed if something is better suited in other environments)
Byte level credit based flow control like HTTP/2 (https://httpwg.github.io/specs/rfc7540.html#WINDOW_UPDATE) per stream

I am on the fence for defaulting to a lower data size than frame size (currently max of ~2GB) for this reason as it would also be a function of number of concurrent streams. I think a sender can at runtime decide to optimize and fragment based on the load/concurrency on the connection. A global default (sort of a setting) restricts such optimizations with limited benefits IMHO.
Byte level flow control (windowing) is certainly useful but is complex and will mostly be hidden from an application as that will be providing demand via request(n) semantics. So, it will most likely be limited only to a transport implementation that I think makes it less useful in presence of a request(n) semantics.
I am inclined towards not adding these and leave it to the implementations to optimize using fragmentation as they perceive correct but I am interested in hearing what others have to say about this.

Both end-to-end application data unit and byte-level flow control are needed. So, another option might be to always use a byte-level flow control transport protocol below. Which is provided by TCP and Aeron.

@tmontgomery agreed, however, as I understand this is around per stream flow control (byte-level) as what HTTP/2 specifies with WINDOW_UPDATE and not for the entire connection as what TCP provides with windowing.

Consider this example:

REQUEST_STREAM(A) from client to server with N == 10
server starts sending items that are 10MB each (fragmented however it wishes)
client is slowly consuming items from A
REQUEST_RESPONSE(B) from client to server
server sends 1KB response for B

If fragments are small, B can be interleaved with A, but the stream from A will have saturated the network and filled all byte buffers along the path. The REQUEST_N semantics do not govern the fragments, only the application layer count of items.
Thus, the standing queue in the network will be at the connection level, and defined by however fast the 100MB (10MB * 10) of A items are put on the network.
Thus, the TCP/Aeron level flow control is only going to govern the connection level bytes, not the individual streams like HTTP/2 WINDOW_UPDATE.
I suggest that we need to permit limiting the flow of bytes per stream, just like HTTP/2 does on top of TCP, so that in the example above, A does not saturate the network buffers.

As the HTTP/2 spec states:

Flow control operates at two levels: on each individual stream and on the entire connection.

https://httpwg.github.io/specs/rfc7540.html#WINDOW_UPDATE
and:

Using streams for multiplexing introduces contention over use of the TCP connection, resulting in blocked streams. A flow-control scheme ensures that streams on the same connection do not destructively interfere with each other. Flow control is used for both individual streams and for the connection as a whole.

https://httpwg.github.io/specs/rfc7540.html#FlowControl

I am on the fence for defaulting to a lower data size than frame size (currently max of ~2GB) for this reason as it would also be a function of number of concurrent streams.

Why would the lower size affect anything negatively though? If there is no other contention, the fragments would flow without interleaving. The throughput should hardly be affected, other than the overhead of fragmenting and reassembling, and the bytes per frame, which are trivial compared with a large frame of bytes.

Byte level flow control (windowing) is certainly useful but is complex and will mostly be hidden from an application as that will be providing demand via request(n) semantics.

Yes it is hidden from the app, purely for the protocol implementations, and that's a good thing.
The intent is that if a stream is not being consumed at the byte level, it should only buffer that stream, and not block other multiplexed streams.
If a consumer is reading from a single stream fast enough to keep up, then that single stream can saturate the entire connection. (For example, if only a single stream is being used over the connection).

Congestion control, not flow control, is needed to not overflow the network buffering on a hop-by-hop basis. This level of clarity is not what HTTP/2 (or anything built on top of TCP) has and why TCP provides congestion control.

I understand this is different from what TCP does, and I'm not claiming to reinvent congestion control. That's a whole different discussions for things like QUIC, Sprout, Giga, etc.
I'm specifically talking about the contention between multiplexed streams, and the reason for why HTTP/2 has WINDOW_UPDATE.

@benjchristensen from what you are describing, it sounds to me more a case for stream priorities as opposed to byte-level flow control. Let us take the case you describe:
REQUEST_STREAM(A) from client to server with N == 10
server starts sending items that are 10MB each (fragmented however it wishes)
client is slowly consuming items from A
REQUEST_RESPONSE(B) from client to server
server sends 1KB response for B

and let us assume that the transport does some fragmentation for larger payloads by heuristics local to the transport i.e. it does not send 10MB frames in this case. Unless, the window size is pretty low (HTTP/2 default is 2 gigs), the transport will not give a chance to other streams to write, unless it knows that the other streams are important. It may be that B is low priority data and A is high, in which case, if there is space to send, it should prefer sending A.
This is different than HTTP/2 as there, consumer of the data would typically govern the next request. OTOH, in our case, the consumer of data is governing request(n) so there isn't a meaningful way byte window sizes can be altered.
Now, if we take stream priorities in account, the scenario you described, is easier to solve by determining whether B is really important to send. If so, the transport should fragment and try to be fair w.r.t priorities.

Fragmentation was designed to take care of multiplexing different streams of data together on the same TCP connection. The TCP flow control then take care of controlling the flow of bytes.
If my understanding of HTTP2 WINDOW_UPDATE is correct, it is mostly usefull for dealing with streams of different priorities.
That being said there is a case where WINDOW_UPDATE could be useful in reactive socket: If we want to garantee "bandwith fairness" between multiple connections, i.e. garantee that every client receives its fair share of the server bandwith, not having one client sucking it all because it fetches large message.

@benjchristensen just clarifying your statements about network buffering. Nothing HTTP/2, or RS, does is for network buffering control.
I see what you are talking about. And I actually, partially, agree. But also, HTTP/2 is not the same as RS.
I do agree that per-stream byte-level flow control is needed in addition to application-unit flow control. However, per-stream flow control (whether RS or HTTP/2) introduces a need for scheduling. That need also implies need for control of connection-level flow control. HTTP/2 must control that or have the right ability to control it at the transport level.
This is, IMO, an all-or-nothing approach. Either the protocol takes control of everything or it leaves some of that work up to the transport.

The WINDOW_UPDATE and prioritization aspects of HTTP/2 are separate. An "elephant flow" on a single multiplexed stream can starve the other multiplexed streams. That's what I'm trying to solve. REQEUST_N and fragments don't prevent that.

Either the protocol takes control of everything or it leaves some of that work up to the transport.

Then why does HTTP/2 need to have WINDOW_UPDATE on top of TCP? It's not for streaming which REQUEST_N is for, it's for handling images, video, html, etc as byte streams.
If RS didn't have streams, and was just REQUEST_RESPONSE, it wouldn't have REQUEST_N, and would need something like WINDOW_UPDATE, correct?
Thus, RS, when used with just REQUEST_RESPONSE, likely needs the same.

@benjchristensen I agree. HTTP/2 takes control of the connection flow control so that implementations can schedule frames effectively. It's a frame/fragment scheduling issue. Or at least, this is how I believe it should be addressed in HTTP/2 implementations. And that is very hard to do unless the connection is also modeled at that layer... or the transport gives the right control for the app to do it. Which TCP does not.
Yes, if RS just had REQUEST_RESPONSE, it should have some mechanism (at byte-level) to control per stream RESPONSE flow. Each stream should be flow controllable separately. And yes, that extends to each type of request when you add REQUEST_N.
RS does suffer from potential starvation. But then, and this is personal opinion, ReactiveStreams does also. When the object size (1 of N) is large, then memory and CPU can starve out other objects. This can be addressed, in a closed system, by making sure that object size is "reasonable" for the use case.
However, In a general use case, though, this would fall over as object size could be totally unbounded.

Let us revive this. Especially in relation to resumability (#102).

@tmontgomery Is there anything about this that we should address?

Do these slides correctly represent the relationship of TCP, HTTP/2, and ReactiveSocket?
And if so, does ReactiveSocket actually need yet another?

I think the slides are accurate. And with HTTP/2, we don't need anything else. However, with TCP alone, there could be need for more.


[enhancement] Support for rsync parameters

To prevent errors being displayed within the console output, I would like to suppress the motd from servers. Rsync has a flag to do so: --no-motd
Would be nice if there is a possibility to add such an option to the configuration to automatically add it to ./quilk d and ./quilk d watch.

https://jdcrecur.github.io/quilk/Modules_baked_in/rsync.html
You are able to add additional commands to the rsync command by using the set directive.
{
      "name": "Rsync it",
      "module": "rsync",
      "set"           : ["--no-motd"],
      "ignore": {
        "linux" :   [],
        "windows" : [],
        "mac"     : [],
        "global"  : [
          ".git*",
          ".idea*",
          "storage",
          "node_modules/*",
          "tests/*",
          "vendor/*"
        ]
      }
    }

By default developers blocks with the windows flag push into the mix: --chmod=ug=rwx,o=rx but you are able to bypass this by not adding the platform to you local quilk file.
Let me know if this helps, if not i will see what else i can add for you.
Cheers,
John

@renepardon
Please see the new 'useSetOnly' for the quilk module, this will allow you to override the default rsync options too.

Doesn't work for me so I'm going to ignore the banner error from ssh.


Add custom deposit amounts

Revives #38 since it seems like Max's comment (https://github.com/blockworks-foundation/governance-ui/pull/38#issuecomment-936563566) here has been resolved by @SebastianBor's commit.
Opening this as a draft while I test it a bit.
Co-authored-by: saml33<EMAIL_ADDRESS>Co-authored-by: flaque<EMAIL_ADDRESS>

I love the GUI @saml33! The % is a nice touch.

@SebastianBor happy to merge this if it works out of the box. but not sure if would we need to upgrade the mango governance program, for this to work?

@SebastianBor happy to merge this if it works out of the box. but not sure if would we need to upgrade the mango governance program, for this to work?

No, it won't work, we need v2 for this

I am probably going to close this due to age and lack of context.

@mschneider @SebastianBor is this still relevant in 2023?

@mschneider @SebastianBor is this still relevant in 2023?

It's an old PR but it's still relevant in terms of functionality. spl-gov didn't support custom deposit amount at that time and this is why it was put on hold.
However I think we can close this one because I wouldn't put the prompt by default when depositing tokens. That could be done as advance option from the 'My governance power' details view instead.


ARMCM0.h not found

I hope I am doing this right as I am new to doing much with Github and have only recently tried working with CMSIS.
I have been trying to run a basic fft using the CMSIS-DSP library through Keil Studio Cloud. No errors occur until building the project. Upon building, the following error is received. The same error occurs on a NUCLEO-F446RE, NUCLEO-H743ZI2, and a DISCO F769I
Build started
Using toolchain ARMC6 profile {'ENV': {'ARMLMD_LICENSE_FILE': '8224<EMAIL_ADDRESS>'PATHS': {'ARMC6_PATH': '/opt/ARMCompiler6.15.13/bin/', 'ARM_PATH': '/opt/armcc5_06_u6/'}, 'common': ['-c', '--gnu', '-O3', '-Otime', '--split_sections', '--apcs=interwork'], 'cxx': ['--cpp', '--no_rtti'], 'COMPILE_C_AS_CPP': False, 'NEW_SCAN_RESOURCES': True}
scan /tmp/chroots/ch-642806ff-3f70-4de5-89b2-03499c051bfc/src
scan /tmp/chroots/ch-642806ff-3f70-4de5-89b2-03499c051bfc/extras/mbed-os.lib
Using ROM region application in this build.
Region application: size 0x200000, offset 0x8000000
Using RAM region application_ram in this build.
Region application_ram: size 0x80000, offset 0x24000000
compile cmsis-dsp/ComputeLibrary/Source/arm_cl_tables.c
compile cmsis-dsp/Examples/ARM/arm_bayes_example/RTE/Device/ARMCM0/system_ARMCM0.c
/src/cmsis-dsp/Examples/ARM/arm_bayes_example/RTE/Device/ARMCM0/system_ARMCM0.c:26:10: fatal error: 'ARMCM0.h' file not found
#include "ARMCM0.h"
^~~~~~~~~~
1 error generated.
Internal error.
Build failed
Build failed

@ETSUZollinger Hi, I have just tested with uVision IDE and with cmsis build tools used in command line.
I have had no problems to build and run.
You'll need to see with Keil studio support. There may be some configuration settings to tune,


Change the organization to OpenCensus

Codecov Report

Merging #1001 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##             master   #1001   +/-   ##
========================================
  Coverage      81.1%   81.1%
  Complexity     1079    1079
========================================
  Files           177     177
  Lines          4948    4948
  Branches        467     467
========================================
  Hits           4013    4013
  Misses          816     816
  Partials        119     119

Continue to review full report at Codecov.

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


Fix rustc & clippy warnings for nightly (2021-09-16)

Clippy/rustc commit rust-lang/rust@e4828d5b7
There's a few additional warnings that currently pop up on nightly (not sure exactly when they started), some from rustc itself and some from clippy.
Perhaps there's a better solution to handling the unused fields in IdentifySystem, but I'm not sure what it is right now. I think it does make sense for that struct to be left as-is, given that rust-postgres doesn't provide an IDENTIFY_SYSTEM interface.

@hlinnaka Hmm, you're right. After looking into it a little further, it seems like it's being caused by this issue: rust-lang/rust#88900.
There's some debate about whether that change actually should have been made, but the tl;dr about why it's there is essentially: "a field isn't used if it's only read as part of a Debug impl". In the meantime, I've added a comment describing why we have #[allow(dead_code)] and linking to the issue.


Not all CloudWatch metrics are available to select

For some reason, when trying to create a metric that pulls data from NetworkELB, LoadBalancer, TargetGroup, not all of the metrics are visible or selectable from LambStatus.  I was able to create this metric for one of my load balancers:

But, I want to select the metric for HealthyHosts for another load balancer, that is visible in CloudWatch metrics here, but is not visible or selectable in LambStatus:

OK, I’ll look into it.

Sorry for the late reply. I looked into the issue, but I can't find a bug. I actually created the network ELB resource and checked the related codes. The more detailed info may be helpful.
Some random thoughts are:

The AWS region of the load balancer may be different.
The IAM account which launched the CloudFormation stack doesn't have the permission to see that ELB.
That ELB has some different settings than others.
The lambda function [YourStackName]-GetExternalMetrics actually collects the metrics. See the /aws/lambda/[YourStackName]-GetExternalMetrics LogGroup of CloudWatch Logs.


Android-Kotlin : 09.27 ZoomControls in Android (Kotlin)

Description 📜

Give a step-by-step tutorial of ZoomControls in Android (Kotlin).
Required Documentation or Video or Audio.

Domain of Contribution 📊

[x] Android Dev (Flutter, Java, Kotlin)

References :

https://www.geeksforgeeks.org/zoomcontrols-in-android-with-example/

Please Read it Carefully Before Contributing

Changes should be made in Android_Development_With_Kotlin/ directory under Android_Development_With_Kotlin branch.
Inside Android_Development_With_Kotlin/ directory creates a directory and names it according to the topic ( for this issue 09. Dynamic User Interface)
Inside 09. Dynamic User Interface/ directory add your task with subtopic number and name and make changes accordingly.
You have to push your PR to the Android_Development_With_Kotlin branch only.
You can take help to the references but don't simply try to copy it. Just explain in your own word.
This issue is for GWOC'21 contributors only.
You need to push in a single commit. If there exists more than one commit then you need to squash your commits into one commit.
Will assign you on a first come first serve basis.
Please try to complete your assigned task within 7 days. If you need some more time then, please inform mentors and supervisors.
If you have two previously assigned issues on Android-Kotlin pending then please first complete them.

Supervisor @rahulsain

Happy Contributing. Best of Luck.💖

/assign

Hey @sitamadex11. May I work on the doc part of the issue?

Hey @sitamadex11. May I work on the doc part of the issue?

You are already assigned in this issue, sure you can take doc

ok

Hey @rahulsain I have opened the PR you can go ahead and merge it if there is no issue.
THANKYOU


Path or pattern "bower_components/ember-qunit/named-amd/main.js" did not match any files

Error when using latest ember-cli-qunit#0.3.3
Path or pattern "bower_components/ember-qunit/named-amd/main.js" did not match any files

Notes from discussion:
Something wrong with the internal Blueprint.prototype.addBowerPackagesToProject.
There really is no issue with using 0.3.3, the only thing that blueprint does is ensure you have bower.json setup properly.
Workaround:
bower install --save ember-qunit rwjblue/ember-qunit-builds#0.2.1

Thanks for reporting, this is definitely an issue.  It only cropped up after moving to Blueprint.prototype.addBowerPackagesToProject from Blueprint.prototype.addBowerPackageToProject (in https://github.com/ember-cli/ember-cli-qunit/pull/35).  I need to test to see if reverting that PR resolves the issue.


Update to v2.2.4

Much like my previous PR - this updates the flatpickr_rails to 2.2.4, which includes a bugfix I needed and lots of other new stuff including RTL stylesheets.

Thanks @pedantic-git. Updated gem on ruby gems.


Loading CSS from an external source

What I'm thinking is the server providing the client with a URL where it should fetch the stylesheet from.
From what I read so far, this is not possible. Is this something that's on the roadmap?

Not at roadmap at the moment, but you can checkout https://github.com/Pixate/pixate-freestyle-android/blob/master/pixate-freestyle/src/com/pixate/freestyle/styling/PXStylesheet.java#L88
You can make a change to the loading code and fetch your stylesheet from a server, instead of the assets directory. This method is called once via the the PixateFreestyle.init() method, so you may need to provide some default css to start with, and then trigger a reload using the CSS you grab from your server. I would also store what you got from the server for any further launches of the app (but that's up to you :)).
Hope that helps!


Verify version of dependent packages

We currently check for the presence of dependent packages but not for a particular version.

:tada: This issue has been resolved in version 1.1.0 :tada:
The release is available on:

GitHub Release
NuGet Package


Update MXnet for diffsharp

Integrates dev --> mxnet

There is missing MXNet code in the backend for Conv1D, Copy and FlipT

Tests fail. I tried
docker build -t diffsharp .
docker run --rm diffsharp dotnet test

but failure on both Windows and Linux due to missing "libmxnet".

   System.DllNotFoundException : Unable to load shared library 'libmxnet' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: liblibmxnet: cannot open shared object file: No such file or directory
  Stack Trace:
     at MXNetSharp.Interop.CApi.MXNDArrayCreateEx(UInt32[] shape, UInt32 ndim, Int32 dev_type, Int32 dev_id, Int32 delay_alloc, Int32 dtype, IntPtr& out)
   at MXNetSharp.NDArray..ctor(IEnumerable`1 shape, Context context, FSharpOption`1 dtype, FSharpOption`1 delayAlloc)

I already had conv done and tested just not synced. merged it back in after merging this PR.. Added flip and copy just cause it only took a min. All tests pass, the libmxnet native dependency isn't included in the MXNetSharp nuget.

Do you think we could include it in the NuGet?

It would make using this waaay easy :-)


Fixed bug when searching for joined entities of a doctrine-join-descriptor

@turbo-ele ACK i will merge it when tests running (:

@wachterjohannes nice ;)


Simplify cmpi operations with identical operands

This patch enables the following operation:
%3 = cmpi <comp_op>, %0, %0 : index

to be replaced with a constant operation signifying true or false depending on the type of <comp_op> employed. Currently this type of operations are not being simplified away.

The pass is used to simplify standard dialect operations. It can be applied at any level that contains standard library operations. In this particular case I apply it at the level of the Krnl dialect i.e. once the Krnl operations have been emitted and standard dialect operations are present in the code.

Would you consider this experiement? What if you added the case you have here (namely compare a result with self) in the constant folding of the op: Look at mlir/lib/dialect/StandardOps/IR/Ops.cpp
// Constant folding hook for comparisons.
OpFoldResult CmpIOp::fold(ArrayRef<Attribute> operands) {
  assert(operands.size() == 2 && "cmpi takes two arguments");

 // DORU: check here the case compare with self here

  auto lhs = operands.front().dyn_cast_or_null<IntegerAttr>();
  auto rhs = operands.back().dyn_cast_or_null<IntegerAttr>();
  if (!lhs || !rhs)
    return {};

  auto val = applyCmpPredicate(getPredicate(), lhs.getValue(), rhs.getValue());
  return IntegerAttr::get(IntegerType::get(1, getContext()), APInt(1, val));
}

It may seem to be a more natural fit than a custom phase. We could do the same with a select(cond=?, then=a, else=a)

We don't need to worry about the select op. Once the the input to the select is a constant (true/false) then the select will be replaced by its result for us.

The optimization cannot be added to constant folding in MLIR like suggested above since fold assumes attributes as inputs. The optimization should be applied to Value typed operands.
The only place it could be added is as a pattern attached to MLIR's canonicalization pass.

I've submitted this patch as an MLIR patch here: https://reviews.llvm.org/D84990
If it gets approved we can close this one.

Patch due to land in MLIR: https://reviews.llvm.org/D84990

Patch due to land in MLIR: https://reviews.llvm.org/D84990


Generate the client from multiple versions

Is your feature request related to a problem? Please describe.
I have a V1 and a V2 specification of the same Api. If I now want to generate a client, I have to do this for each version and also maintain the interface and dependency injection twice.
Describe the solution you'd like
Generate a client that contains both versions. For example, the method name could contain the required version.
.refitter File
{
    "openApiPaths": [
        "PetstoreV1.yaml",
        "PetstoreV2.yaml",
    ]
}

Generated Interface:
Pet UpdatePetV1 (long? id, string name, List<string> photoUrls, List<Tag> tags, string status);

Pet UpdatePetV2 (long? id, string name, List<string> photoUrls, List<Tag> tags, string status);

Additional context

OpenAPI - PetstoreV1
openapi: 3.0.3
info:
  title: Swagger Petstore - OpenAPI
  version: 1.0.0
servers:
  - url: https://petstore.swagger.io/api/v1
tags:
  - name: pet
    description: Everything about your Pets
paths:
  /pet:
    put:
      tags:
        - pet
      summary: Update an existing pet
      description: Update an existing pet by Id
      operationId: updatePet
      requestBody:
        description: Update an existent pet in the store
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
          application/xml:
            schema:
              $ref: '#/components/schemas/Pet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Pet'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
            application/xml:
              schema:
                $ref: '#/components/schemas/Pet'
        '400':
          description: Invalid ID supplied
        '404':
          description: Pet not found
        '422':
          description: Validation exception
      security:
        - petstore_auth:
            - write:pets
            - read:pets
components:
  schemas:
    Tag:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      xml:
        name: tag
    Pet:
      required:
        - name
        - photoUrls
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 10
        name:
          type: string
          example: doggie
        photoUrls:
          type: array
          xml:
            wrapped: true
          items:
            type: string
            xml:
              name: photoUrl
        tags:
          type: array
          xml:
            wrapped: true
          items:
            $ref: '#/components/schemas/Tag'
        status:
          type: string
          description: pet status in the store
          enum:
            - available
            - pending
            - sold
      xml:
        name: pet
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
      xml:
        name: '##default'
  securitySchemes:
    petstore_auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://petstore3.swagger.io/oauth/authorize
          scopes:
            write:pets: modify pets in your account
            read:pets: read your pets
    api_key:
      type: apiKey
      name: api_key
      in: header

OpenAPI - PetstoreV2
openapi: 3.0.3
info:
  title: Swagger Petstore - OpenAPI
  version: 2.0.0
servers:
  - url: https://petstore.swagger.io/api/v2
tags:
  - name: pet
    description: Everything about your Pets
paths:
  /pet:
    put:
      tags:
        - pet
      summary: Update an existing pet
      description: Update an existing pet by Id
      operationId: updatePet
      requestBody:
        description: Update an existent pet in the store
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Pet'
          application/xml:
            schema:
              $ref: '#/components/schemas/Pet'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/Pet'
        required: true
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pet'
            application/xml:
              schema:
                $ref: '#/components/schemas/Pet'
      security:
        - petstore_auth:
            - write:pets
            - read:pets
components:
  schemas:
    Tag:
      type: object
      properties:
        id:
          type: integer
          format: int64
        name:
          type: string
      xml:
        name: tag
    Pet:
      required:
        - name
        - photoUrls
      type: object
      properties:
        id:
          type: integer
          format: int64
          example: 10
        name:
          type: string
          example: doggie
        photoUrls:
          type: array
          xml:
            wrapped: true
          items:
            type: string
            xml:
              name: photoUrl
        tags:
          type: array
          xml:
            wrapped: true
          items:
            $ref: '#/components/schemas/Tag'
        status:
          type: string
          description: pet status in the store
          enum:
            - available
            - pending
            - sold
      xml:
        name: pet
    ApiResponse:
      type: object
      properties:
        code:
          type: integer
          format: int32
        type:
          type: string
        message:
          type: string
      xml:
        name: '##default'
  securitySchemes:
    petstore_auth:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://petstore3.swagger.io/oauth/authorize
          scopes:
            write:pets: modify pets in your account
            read:pets: read your pets

@christophergoltz thanks for taking the time to suggest this.
It's a non-trivial thing to implement because there are quite a few things to consider. So far, here are the first things that come to mind:

Duplicate operation IDs
Duplicate components schemas
Specifying a base URL if the servers: - url doesn't specify the full base URL

I'll think a bit more about this over the Easter holiday


Swift 2.3 compatibility?

Hey guys, could be possible to have the compatibility with Swift 2.3?

1.7.4 on CocoaPods has. It also has a branch.

Cool thanks! I didn't notice it ;)


NMR shielding a spin-spin coupling

In the previous versions of Pyscf there was the possibility to calculate NMR spectra using prop.nmr.
It seems that this feature has been removed from version 2.0.
Is it still possible running NMR?
If yes could you please give me some instructions to do that and point me to the file where it is implemented in the code?
thank you in advance for the reply.
bests
Enrico

The property module has been moved to here as an addon of pyscf.


Enhancing UI for about Us page

Is your feature request related to a problem ? Please describe. ✍
I will enhance the complete UI of the about Us page, i will not change any functionality of the website, so no worries.
Describe briefly how you would implement this enhancement.
Some steps to implement this enhancement-
1. Step 1 : I will enhance the Header section of the page, all the content in its.
2. Step 2 : Making all the images, links of the founder look appealing to website.
3. Step 3 : Finally work on the footer section.

Additional context or screenshots
Additional context
Are you contributing for a program?
GSSoC2023
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

detail description please


Feature docs

Features

write docstring by LLM
move information, such as 'Author', from the docstring to module-level comments in the file using the # symbol
fix intermittent UT errors of the web browser engine caused by network issues

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (06d7269) 81.19% compared to head (4642efd) 81.01%.

Files
Patch %
Lines

metagpt/tools/web_browser_engine_selenium.py
0.00%
1 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #920      +/-   ##
==========================================
- Coverage   81.19%   81.01%   -0.19%
==========================================
  Files         226      223       -3
  Lines       12477    12332     -145
==========================================
- Hits        10131     9991     -140
+ Misses       2346     2341       -5

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

This PR has been closed because it took too long, feel free to reopen it.


Rename ignore_non_file to ignore_frozen

Only catch frozen functions, not <string>

Codecov Report

Merging #82 (c3446e1) into master (3321ba4) will decrease coverage by 1.23%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #82      +/-   ##
==========================================
- Coverage   99.78%   98.54%   -1.24%
==========================================
  Files          18       18
  Lines        1855     1855
==========================================
- Hits         1851     1828      -23
- Misses          4       27      +23

Impacted Files
Coverage Δ

src/viztracer/viztracer.py
95.86% <ø> (-4.14%)
:arrow_down:

src/viztracer/main.py
98.50% <100.00%> (-1.50%)
:arrow_down:

src/viztracer/tracer.py
100.00% <100.00%> (ø)

src/viztracer/report_builder.py
94.59% <0.00%> (-5.41%)
:arrow_down:

src/viztracer/simulator.py
96.77% <0.00%> (-3.23%)
:arrow_down:

src/viztracer/flamegraph.py
97.59% <0.00%> (-2.41%)
:arrow_down:

src/viztracer/prog_snapshot.py
99.44% <0.00%> (-0.56%)
:arrow_down:

Continue to review full report at Codecov.

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

Codecov Report

Merging #82 (c3446e1) into master (3321ba4) will decrease coverage by 1.23%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #82      +/-   ##
==========================================
- Coverage   99.78%   98.54%   -1.24%
==========================================
  Files          18       18
  Lines        1855     1855
==========================================
- Hits         1851     1828      -23
- Misses          4       27      +23

Impacted Files
Coverage Δ

src/viztracer/viztracer.py
95.86% <ø> (-4.14%)
:arrow_down:

src/viztracer/main.py
98.50% <100.00%> (-1.50%)
:arrow_down:

src/viztracer/tracer.py
100.00% <100.00%> (ø)

src/viztracer/report_builder.py
94.59% <0.00%> (-5.41%)
:arrow_down:

src/viztracer/simulator.py
96.77% <0.00%> (-3.23%)
:arrow_down:

src/viztracer/flamegraph.py
97.59% <0.00%> (-2.41%)
:arrow_down:

src/viztracer/prog_snapshot.py
99.44% <0.00%> (-0.56%)
:arrow_down:

Continue to review full report at Codecov.

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


fix: properly parse packages without pypi classifiers

What is the purpose of this pull request?

[ ] Documentation update
[x] Bug fix
[ ] New feature
[ ] Other, please explain:

What changes did you make?
Added a fix for parsing packages from PyPI without any classifiers.
Added a try-catch clause for size calculation.
Which issue (if any) does this pull request address?
#28
#30
Is there anything you'd like reviewers to focus on?
Packages that should result in errors:
Issue 28 - jsbeautifier
Issue 30 - mkdocstrings

Hi thank you so much for this. Looks great 😁


Don't add tag swimming_pool=... on swimming pool

Currently the editor offers a field "Type" when editing a swimming pool, which results in a tag swimming_pool=.... According to the wiki, this key is only used indicate the presence of a swimming pool in another facility (swimming_pool=yes), not on objects tagged leisure=swimming_pool. I feel adding this key should be avoided, possibly by removing the "Type" field alltogether.

Thanks for pointing out this ambiguity – I added swimming_pool to the index of homonymous keys for awareness.


test3

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

one more PR


[Feature Request] Make the trade GUI appear with chat command

Is your feature request related to a problem? Please describe.
The mob for custom trades is limited to only wandering traders and villagers. Also it lacks the look at player.  And can't use Holographic Display as names.
Describe the solution you'd like
I wanted to use the custom trade with other plugins like BetterGUI with command alias in the menu. So users could do /keytrade or /tokentrade .. etc from anywhere and trade it. Also with --noai its like statue. Even with position freeze hoping you could add look at player and have ability to hide the name of the villager so I can use holographic display.
Describe alternatives you've considered
No alternatives found yet as user have to be in spawn and need to right click the villager and trader.
Additional context
None

The feature in the issue title has been added in 1.8.0, please open separate issues for each feature request in the future. (feel free to open some new issues based on this one)


Create style guide

Fonts
Colors
Padding, spacing
etc.

what's the best format for this? I can take our style guide and lessons learned about the best way to show code in PPT and provide some guidelines. Do we also need the CSS?
Branding-Guide.pdf

We need to define specific colors that map to the various aspects of the code, like key word or variable. pygments, the Python library I used in my proof-of-concept, defines the categories, we'd have to assign colors. And then there's the overall aesthetics, like font, line height, etc.

I’ve got an initial version working on my machine. I think it’s now just a matter of filling in the colors and figuring out how to package it for distribution (especially Windows).

Decision from Marketing (@stephen-gehring-ml) is to use the colors/fonts/layout that exists in Query Console today. In a future release, if we ref Query Console, this should follow as well.

From CodeMirror defaults:
.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-variable-2,
.cm-s-default .cm-variable-3,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {color: #099;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #099;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}

.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}


Prevent DNS hijacking for DOH URL

Local DNS infrastructure may return a bad result for cloudflare-dns.com, for example.

Depends on #3

See https://nodejs.org/api/https.html#https_https_request_url_options_callback


Create PUDL Dockerfile / Docker image

To simplify deployment and reproducibility regardless of the user's platform, and to make sure we can easily specify the environment we want to have our software running in on Pangeo, we need to specify the environment with Docker:

[x] Based on the jupyter/minimal-notebook image
[x] Dockerfile equivalent to the pudl-data-release conda environment
[x] Make it run a small batch ETL
[x] Test out running jupyter lab from within that docker image locally using the loaded data
[x] push the working Docker image to Docker Hub for use by our Pangeo instance

This went remarkably smoothly! Still a lot of functionality I haven't explored, but getting a Docker image up and running for doing future data releases and/or user installations should be very doable. I was easily able to get a Jupyterlab instance running within Docker, and connect to it in my browser. Still some loose ends to clean up, but great overall.


visualness

Hello, I am interested in your visualness word. How will deal with the token that haven't occured for one image?

Hello, I am interested in your visualness word. How will deal with the token that haven't occured for one image?

Thanks for your attention. Our visualness is used to reflect the degree to visual information in the image is required to predict a word. As a result, the visualness of the token you mentioned is 0.


Spyder should depend on QtWebEngine for pyqt >= 5.12

In PyQt5.12 the QtWebEngine has been split out into its own pypi package see
https://www.riverbankcomputing.com/news/pyqt-512 but spyder does not depend on it so a new pip install of spyder fails on launch.
Issue Report Checklist

[x] Searched the issues page for similar reports
[x] Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
[x] Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda)
[x] Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description
What steps reproduce the problem?
In a clean env without pyqt or spyder installed

pip install spyder
spyder3.exe

What is the expected output? What do you see instead?
Traceback (most recent call last):
  File "c:\users\jenielse\appdata\local\continuum\miniconda3\envs\mypipenv\lib\site-packages\qtpy\QtWebEngineWidgets.py", line 22, in <module>
    from PyQt5.QtWebEngineWidgets import QWebEnginePage
ModuleNotFoundError: No module named **'PyQt5.QtWebEngineWidgets'**

pip install pyqtwebengine fixes the issue and spyder launches normally
Versions

Spyder version: 3.3.3
Python version: 3.6.8
Qt version: 5.12
PyQt version: 5.12
Operating System name/version: Windows 10

We didn't know that was going to happen, else we'll have added it as a dependency in our 3.3.3 release. But we'll fix it for 3.3.4.


Can't access the action

Hello,
So I am running into an issue with the action. When I ran it a couple days ago, everything worked fine:

However, when I retry the workflow today, I ran into an error:

I don't know if this is related to issue #11 or there could be some other issues.

Seems like there might be an issue with commenting on PR involving a forked repo (see an issue from my repo.

Seems like there might be an issue with commenting on PR involving a forked repo (see an issue from my repo.


Reacjis: mobile integration

[x] Hook up emoji picker to route tree

[x] via NewReactionButton
[x] via message menu
[x] via reaction tooltip

[x] Open ReactionTooltip via long press on ReactionsRow (after #13014)
[x] Misc styling

@keybase/react-hackers I still have some styling to do but this is ready for a look

@chrisnojima I pushed a bunch of changes to EmojiPicker to make it faster. PTAL

@chrisnojima I changed EmojiPicker to make it faster (and fixed that bug I told you about). PTAL

@chrisnojima I changed EmojiPicker to make it faster (and fixed that bug I told you about). PTAL

@chrisnojima I changed EmojiPicker to make it faster (and fixed that bug I told you about). PTAL

Thanks @chrisnojima, addressed your feedback!


Pull request creation error

When I tried to create a pull request with was created, but following was shown:
→ hub pull-request

Error creating pull request: Internal Server Error (HTTP 500)
Server Error

Hi, does the error still happen? What is your hub version? Can you retry with:
HUB_VERBOSE=1 hub pull-request

and paste me the output here? You can scrub sensitive info if you want. Thanks!

Hi, does the error still happen?

Will test, when I'll be sending my next PR.

What is your hub version?

git version <IP_ADDRESS>.g9abc44b
hub version 2.2.1

Thank you!

I've tried today and it work. I guess this was due GitHub high load at that day and it returned 500 back to Hub.
Output (if needed):
→ HUB_VERBOSE=1 hub pull-request

> POST https://api.github.com/repos/stecman/symfony-console-completion/pulls
> Authorization: token [REDACTED]
{"base":"master","head":"aik099:59-the-you-have-mail-in-interfering-with-completion","title":"Disable mail checking during auto-complete output generation","body":"I've made changes without testing them, because I don't a setup at hand that would send me mail.\nAlso I'm not sure about `;` at the end of the lines. I see you're using them, but I've never used them and all worked anyway.\n\nPlease test.\n\nCloses #59"}

< HTTP 201
< Location: https://api.github.com/repos/stecman/symfony-console-completion/pulls/60
{"url":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60","id":46204423,"html_url":"https://github.com/stecman/symfony-console-completion/pull/60","diff_url":"https://github.com/stecman/symfony-console-completion/pull/60.diff","patch_url":"https://github.com/stecman/symfony-console-completion/pull/60.patch","issue_url":"https://api.github.com/repos/stecman/symfony-console-completion/issues/60","number":60,"state":"open","locked":false,"title":"Disable mail checking during auto-complete output generation","user":{"login":"aik099","id":1277526,"avatar_url":"https://avatars.githubusercontent.com/u/1277526?v=3","gravatar_id":"","url":"https://api.github.com/users/aik099","html_url":"https://github.com/aik099","followers_url":"https://api.github.com/users/aik099/followers","following_url":"https://api.github.com/users/aik099/following{/other_user}","gists_url":"https://api.github.com/users/aik099/gists{/gist_id}","starred_url":"https://api.github.com/users/aik099/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aik099/subscriptions","organizations_url":"https://api.github.com/users/aik099/orgs","repos_url":"https://api.github.com/users/aik099/repos","events_url":"https://api.github.com/users/aik099/events{/privacy}","received_events_url":"https://api.github.com/users/aik099/received_events","type":"User","site_admin":false},"body":"I've made changes without testing them, because I don't a setup at hand that would send me mail.\nAlso I'm not sure about `;` at the end of the lines. I see you're using them, but I've never used them and all worked anyway.\n\nPlease test.\n\nCloses #59","created_at":"2015-09-28T20:32:25Z","updated_at":"2015-09-28T20:32:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60/commits","review_comments_url":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60/comments","review_comment_url":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/comments{/number}","comments_url":"https://api.github.com/repos/stecman/symfony-console-completion/issues/60/comments","statuses_url":"https://api.github.com/repos/stecman/symfony-console-completion/statuses/fbd23e18d5f48d6c246da559a459eba88cee0648","head":{"label":"aik099:59-the-you-have-mail-in-interfering-with-completion","ref":"59-the-you-have-mail-in-interfering-with-completion","sha":"fbd23e18d5f48d6c246da559a459eba88cee0648","user":{"login":"aik099","id":1277526,"avatar_url":"https://avatars.githubusercontent.com/u/1277526?v=3","gravatar_id":"","url":"https://api.github.com/users/aik099","html_url":"https://github.com/aik099","followers_url":"https://api.github.com/users/aik099/followers","following_url":"https://api.github.com/users/aik099/following{/other_user}","gists_url":"https://api.github.com/users/aik099/gists{/gist_id}","starred_url":"https://api.github.com/users/aik099/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aik099/subscriptions","organizations_url":"https://api.github.com/users/aik099/orgs","repos_url":"https://api.github.com/users/aik099/repos","events_url":"https://api.github.com/users/aik099/events{/privacy}","received_events_url":"https://api.github.com/users/aik099/received_events","type":"User","site_admin":false},"repo":{"id":29821987,"name":"symfony-console-completion","full_name":"aik099/symfony-console-completion","owner":{"login":"aik099","id":1277526,"avatar_url":"https://avatars.githubusercontent.com/u/1277526?v=3","gravatar_id":"","url":"https://api.github.com/users/aik099","html_url":"https://github.com/aik099","followers_url":"https://api.github.com/users/aik099/followers","following_url":"https://api.github.com/users/aik099/following{/other_user}","gists_url":"https://api.github.com/users/aik099/gists{/gist_id}","starred_url":"https://api.github.com/users/aik099/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aik099/subscriptions","organizations_url":"https://api.github.com/users/aik099/orgs","repos_url":"https://api.github.com/users/aik099/repos","events_url":"https://api.github.com/users/aik099/events{/privacy}","received_events_url":"https://api.github.com/users/aik099/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aik099/symfony-console-completion","description":"Automatic tab-key completion for Symfony console application options, arguments and parameters","fork":true,"url":"https://api.github.com/repos/aik099/symfony-console-completion","forks_url":"https://api.github.com/repos/aik099/symfony-console-completion/forks","keys_url":"https://api.github.com/repos/aik099/symfony-console-completion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aik099/symfony-console-completion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aik099/symfony-console-completion/teams","hooks_url":"https://api.github.com/repos/aik099/symfony-console-completion/hooks","issue_events_url":"https://api.github.com/repos/aik099/symfony-console-completion/issues/events{/number}","events_url":"https://api.github.com/repos/aik099/symfony-console-completion/events","assignees_url":"https://api.github.com/repos/aik099/symfony-console-completion/assignees{/user}","branches_url":"https://api.github.com/repos/aik099/symfony-console-completion/branches{/branch}","tags_url":"https://api.github.com/repos/aik099/symfony-console-completion/tags","blobs_url":"https://api.github.com/repos/aik099/symfony-console-completion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aik099/symfony-console-completion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aik099/symfony-console-completion/git/refs{/sha}","trees_url":"https://api.github.com/repos/aik099/symfony-console-completion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aik099/symfony-console-completion/statuses/{sha}","languages_url":"https://api.github.com/repos/aik099/symfony-console-completion/languages","stargazers_url":"https://api.github.com/repos/aik099/symfony-console-completion/stargazers","contributors_url":"https://api.github.com/repos/aik099/symfony-console-completion/contributors","subscribers_url":"https://api.github.com/repos/aik099/symfony-console-completion/subscribers","subscription_url":"https://api.github.com/repos/aik099/symfony-console-completion/subscription","commits_url":"https://api.github.com/repos/aik099/symfony-console-completion/commits{/sha}","git_commits_url":"https://api.github.com/repos/aik099/symfony-console-completion/git/commits{/sha}","comments_url":"https://api.github.com/repos/aik099/symfony-console-completion/comments{/number}","issue_comment_url":"https://api.github.com/repos/aik099/symfony-console-completion/issues/comments{/number}","contents_url":"https://api.github.com/repos/aik099/symfony-console-completion/contents/{+path}","compare_url":"https://api.github.com/repos/aik099/symfony-console-completion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aik099/symfony-console-completion/merges","archive_url":"https://api.github.com/repos/aik099/symfony-console-completion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aik099/symfony-console-completion/downloads","issues_url":"https://api.github.com/repos/aik099/symfony-console-completion/issues{/number}","pulls_url":"https://api.github.com/repos/aik099/symfony-console-completion/pulls{/number}","milestones_url":"https://api.github.com/repos/aik099/symfony-console-completion/milestones{/number}","notifications_url":"https://api.github.com/repos/aik099/symfony-console-completion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aik099/symfony-console-completion/labels{/name}","releases_url":"https://api.github.com/repos/aik099/symfony-console-completion/releases{/id}","created_at":"2015-01-25T17:02:36Z","updated_at":"2015-02-07T09:50:36Z","pushed_at":"2015-09-28T20:30:39Z","git_url":"git://github.com/aik099/symfony-console-completion.git","ssh_url":"git@github.com:aik099/symfony-console-completion.git","clone_url":"https://github.com/aik099/symfony-console-completion.git","svn_url":"https://github.com/aik099/symfony-console-completion","homepage":"","size":245,"stargazers_count":0,"watchers_count":0,"language":"PHP","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"stecman:master","ref":"master","sha":"5c57e73d050129d00effb9a831eedc1dcb212954","user":{"login":"stecman","id":2230769,"avatar_url":"https://avatars.githubusercontent.com/u/2230769?v=3","gravatar_id":"","url":"https://api.github.com/users/stecman","html_url":"https://github.com/stecman","followers_url":"https://api.github.com/users/stecman/followers","following_url":"https://api.github.com/users/stecman/following{/other_user}","gists_url":"https://api.github.com/users/stecman/gists{/gist_id}","starred_url":"https://api.github.com/users/stecman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stecman/subscriptions","organizations_url":"https://api.github.com/users/stecman/orgs","repos_url":"https://api.github.com/users/stecman/repos","events_url":"https://api.github.com/users/stecman/events{/privacy}","received_events_url":"https://api.github.com/users/stecman/received_events","type":"User","site_admin":false},"repo":{"id":10285026,"name":"symfony-console-completion","full_name":"stecman/symfony-console-completion","owner":{"login":"stecman","id":2230769,"avatar_url":"https://avatars.githubusercontent.com/u/2230769?v=3","gravatar_id":"","url":"https://api.github.com/users/stecman","html_url":"https://github.com/stecman","followers_url":"https://api.github.com/users/stecman/followers","following_url":"https://api.github.com/users/stecman/following{/other_user}","gists_url":"https://api.github.com/users/stecman/gists{/gist_id}","starred_url":"https://api.github.com/users/stecman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stecman/subscriptions","organizations_url":"https://api.github.com/users/stecman/orgs","repos_url":"https://api.github.com/users/stecman/repos","events_url":"https://api.github.com/users/stecman/events{/privacy}","received_events_url":"https://api.github.com/users/stecman/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/stecman/symfony-console-completion","description":"Automatic tab-key completion for Symfony console application options, arguments and parameters","fork":false,"url":"https://api.github.com/repos/stecman/symfony-console-completion","forks_url":"https://api.github.com/repos/stecman/symfony-console-completion/forks","keys_url":"https://api.github.com/repos/stecman/symfony-console-completion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stecman/symfony-console-completion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stecman/symfony-console-completion/teams","hooks_url":"https://api.github.com/repos/stecman/symfony-console-completion/hooks","issue_events_url":"https://api.github.com/repos/stecman/symfony-console-completion/issues/events{/number}","events_url":"https://api.github.com/repos/stecman/symfony-console-completion/events","assignees_url":"https://api.github.com/repos/stecman/symfony-console-completion/assignees{/user}","branches_url":"https://api.github.com/repos/stecman/symfony-console-completion/branches{/branch}","tags_url":"https://api.github.com/repos/stecman/symfony-console-completion/tags","blobs_url":"https://api.github.com/repos/stecman/symfony-console-completion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stecman/symfony-console-completion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stecman/symfony-console-completion/git/refs{/sha}","trees_url":"https://api.github.com/repos/stecman/symfony-console-completion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stecman/symfony-console-completion/statuses/{sha}","languages_url":"https://api.github.com/repos/stecman/symfony-console-completion/languages","stargazers_url":"https://api.github.com/repos/stecman/symfony-console-completion/stargazers","contributors_url":"https://api.github.com/repos/stecman/symfony-console-completion/contributors","subscribers_url":"https://api.github.com/repos/stecman/symfony-console-completion/subscribers","subscription_url":"https://api.github.com/repos/stecman/symfony-console-completion/subscription","commits_url":"https://api.github.com/repos/stecman/symfony-console-completion/commits{/sha}","git_commits_url":"https://api.github.com/repos/stecman/symfony-console-completion/git/commits{/sha}","comments_url":"https://api.github.com/repos/stecman/symfony-console-completion/comments{/number}","issue_comment_url":"https://api.github.com/repos/stecman/symfony-console-completion/issues/comments{/number}","contents_url":"https://api.github.com/repos/stecman/symfony-console-completion/contents/{+path}","compare_url":"https://api.github.com/repos/stecman/symfony-console-completion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stecman/symfony-console-completion/merges","archive_url":"https://api.github.com/repos/stecman/symfony-console-completion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stecman/symfony-console-completion/downloads","issues_url":"https://api.github.com/repos/stecman/symfony-console-completion/issues{/number}","pulls_url":"https://api.github.com/repos/stecman/symfony-console-completion/pulls{/number}","milestones_url":"https://api.github.com/repos/stecman/symfony-console-completion/milestones{/number}","notifications_url":"https://api.github.com/repos/stecman/symfony-console-completion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stecman/symfony-console-completion/labels{/name}","releases_url":"https://api.github.com/repos/stecman/symfony-console-completion/releases{/id}","created_at":"2013-05-25T14:18:36Z","updated_at":"2015-09-28T07:58:50Z","pushed_at":"2015-09-21T03:08:33Z","git_url":"git://github.com/stecman/symfony-console-completion.git","ssh_url":"git@github.com:stecman/symfony-console-completion.git","clone_url":"https://github.com/stecman/symfony-console-completion.git","svn_url":"https://github.com/stecman/symfony-console-completion","homepage":"","size":521,"stargazers_count":192,"watchers_count":192,"language":"PHP","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":11,"forks":7,"open_issues":11,"watchers":192,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60"},"html":{"href":"https://github.com/stecman/symfony-console-completion/pull/60"},"issue":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/issues/60"},"comments":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/issues/60/comments"},"review_comments":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60/comments"},"review_comment":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/pulls/60/commits"},"statuses":{"href":"https://api.github.com/repos/stecman/symfony-console-completion/statuses/fbd23e18d5f48d6c246da559a459eba88cee0648"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":7,"deletions":1,"changed_files":1}
https://github.com/stecman/symfony-console-completion/pull/60

Thanks for the update!


runtime: possible deadlock when asynchronous signal occurs on C thread

This is the general case of issue #15994, which focused on SIGPROF.
A somewhat unlikely deadlock is possible when an asynchronous signal occurs on a C thread.  Here a C thread means a thread started by calling pthread_create or equivalent.  This will lead to a series of calls:
cgoSigtramp
sigtramp
sigtrampgo
sigfwdgo (which will return false if there is no C signal handler)
badsignal
cgocallback
badsignalgo

The call to cgocallback may cause the Go runtime to wait for a thread to be available to run badsignalgo in a goroutine.  In some case this may cause the runtime to start a new thread.  Starting a new thread in a cgo-using program means calling _cgo_thread_start, which calls malloc.
In other words, we've called malloc in a signal handler, which is not a good idea.  If the asynchronous signal occurred while the C thread was itself running malloc, the whole program can deadlock at this point.
We may be able to fix this by simply removing the call to cgocallback.  It was introduced in https://golang.org/cl/10757044, but with the knowledge that we are running on the system stack, and some care, it may be possible to avoid it.

Ping @ianlancetaylor. Is this still a problem? needm no longer creates threads itself (I think it used to, but I may be mis-remembering). Or is there still a danger that it may wait forever for another thread to create a thread for it if that other thread is blocked on malloc?

I believe this can still happen.  The problem is not that needm creates the thread itself, but that it blocks waiting for a thread to be created, in lockextra.  That block may be happening while running a signal handler for a signal that may have been delivered while executing the C malloc function, meaning that we are blocking while malloc is holding locks.  Eventually the Go runtime will create a new thread, but in a cgo program that means calling the C malloc function, so thread creation blocks waiting for the malloc lock to be released.  At that point we are deadlocked.

I'm going to reverse myself.  I think that this is no longer a problem.  We stopped calling cgocallback in https://golang.org/cl/30218.  The current code only calls needm.  I was wrong to say that needm blocks waiting for a thread to be created; it only blocks waiting for an m to be allocated, and, as you observe, that does not require creating a thread.


PhantomJS crash when running test suite with Poltergeist

Which version of PhantomJS are you using? Tip: run phantomjs --version.
1.9.7
What steps will reproduce the problem?

Running our rspec with poltergeist test suite

Which operating system are you using?
Ubuntu 14.04 x86_64
Did you use binary PhantomJS or did you compile it from source?
Binary
Please provide any additional information below.
Occurs only 1 time out of every 20 runs

PhantomJS_crash_stack.txt

I've noticed this with 1.9 as well, So i've been using 1.7 and 1.8 for ubuntu 14-16.04. Works consistently unlike the newer versions

Due to our very limited maintenance capacity (see #14541 for more details), we need to prioritize our development focus on other tasks. Therefore, this issue will be closed. In the future, if we see the need to attend to this issue again, then it will be reopened.
Thank you for your contribution!


Document key/value safety.

Overview
This commit adds safety documentation to the data accessor functions in Bolt as well as the README. This was documented once in the package level godoc but it's important enough that it should be more clear.

/cc @mschoch

:dancer:


RuntimeError regarding GPIO.setmode

I am having trouble running "run-calendar.sh" as it gives the following error:
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)
Please forgive me ahead of time if this is a stupid question.
Sincerely,
David.

Hi,
Could you provide a few more details:

What's the type of raspi you are using?
Did you enable the SPI interface (see Readme)?
Could you provide the full stack trace?

Sincerely,
Louis

I am using a Raspberry Pi Zero and I do have SPI enabled.
I am trying to figure out how to perform a full stack trace.

Linux raspical 6.1.21+ #1642 Mon Apr  3 17:19:14 BST 2023 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed May 17 14:00:46 2023 from <IP_ADDRESS>
dellis@raspical:~ $ dmesg
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.21+ (dom@buildbot) (arm-linux-gnueabihf-gcc-8 (Ubuntu/Linaro 8.4.0-3ubuntu1) 8.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #1642 Mon Apr  3 17:19:14 BST 2023
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] OF: fdt: Machine model: Raspberry Pi Zero W Rev 1.1
[    0.000000] random: crng init done
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Reserved memory: created CMA memory pool at 0x0bc00000, size 256 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 113680
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_hdmi=0 video=Composite-1:720x480@60i smsc95xx.macaddr=B8:27:EB:5E:69:0C vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  console=ttyS0,115200 console=tty1 root=PARTUUID=29cb0b19-02 rootfstype=ext4 fsck.repair=yes rootwait
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 177016K/458752K available (8985K kernel code, 1450K rwdata, 2772K rodata, 432K init, 589K bss, 19592K reserved, 262144K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] ftrace: allocating 33370 entries in 98 pages
[    0.000000] ftrace: allocated 98 pages with 3 groups
[    0.000000] trace event string verifier disabled
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000008] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every<PHONE_NUMBER>500ns
[    0.000082] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:<PHONE_NUMBER>275 ns
[    0.000179] bcm2835: system timer (irq = 27)
[    0.001070] Console: colour dummy device 80x30
[    0.001647] printk: console [tty1] enabled
[    0.001737] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
[    0.060331] pid_max: default: 32768 minimum: 301
[    0.060571] LSM: Security Framework initializing
[    0.060913] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.060997] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.062768] cgroup: Disabling memory control group subsystem
[    0.063247] CPU: Testing write buffer coherency: ok
[    0.065102] cblist_init_generic: Setting adjustable number of callback queues.
[    0.065190] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.065469] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.065826] Setting up static identity map for 0x8220 - 0x8258
[    0.067300] devtmpfs: initialized
[    0.080826] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    0.081288] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns:<PHONE_NUMBER>2750000 ns
[    0.081386] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.123045] pinctrl core: initialized pinctrl subsystem
[    0.125290] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.128549] DMA: preallocated 1024 KiB pool for atomic coherent allocations
[    0.135691] audit: initializing netlink subsys (disabled)
[    0.137439] thermal_sys: Registered thermal governor 'step_wise'
[    0.138322] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.138426] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.138707] Serial: AMBA PL011 UART driver
[    0.140774] audit: type=2000 audit(0.130:1): state=initialized audit_enabled=0 res=1
[    0.147460] bcm2835-mbox 2000b880.mailbox: mailbox enabled
[    0.170886] raspberrypi-firmware soc:firmware: Attached to firmware from 2023-03-17T10:52:42, variant start
[    0.180916] raspberrypi-firmware soc:firmware: Firmware hash is 82f3750a65fadae9a38077e3c2e217ad158c8d54
[    0.234923] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    2.426788] bcm2835-dma 20007000.dma: DMA legacy API manager, dmachans=0x1
[    2.429803] SCSI subsystem initialized
[    2.430351] usbcore: registered new interface driver usbfs
[    2.430514] usbcore: registered new interface driver hub
[    2.430656] usbcore: registered new device driver usb
[    2.431080] usb_phy_generic phy: supply vcc not found, using dummy regulator
[    2.431468] usb_phy_generic phy: dummy supplies not allowed for exclusive requests
[    2.432045] pps_core: LinuxPPS API ver. 1 registered
[    2.432106] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti<EMAIL_ADDRESS>[    2.432194] PTP clock support registered
[    2.435364] clocksource: Switched to clocksource timer
[    2.567023] VFS: Disk quotas dquot_6.6.0
[    2.567230] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    2.567530] FS-Cache: Loaded
[    2.568008] CacheFiles: Loaded
[    2.589409] NET: Registered PF_INET protocol family
[    2.589844] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    2.592528] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    2.592665] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    2.592752] TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    2.592879] TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    2.593029] TCP: Hash tables configured (established 4096 bind 4096)
[    2.593216] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    2.593299] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    2.593748] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    2.594877] RPC: Registered named UNIX socket transport module.
[    2.594964] RPC: Registered udp transport module.
[    2.595000] RPC: Registered tcp transport module.
[    2.595032] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    2.596298] armv6-pmu arm-pmu: hw perfevents: no irqs for PMU, sampling events not supported
[    2.596432] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available
[    2.600734] Initialise system trusted keyrings
[    2.601916] workingset: timestamp_bits=14 max_order=17 bucket_order=3
[    2.617062] zbud: loaded
[    2.621863] NFS: Registering the id_resolver key type
[    2.621996] Key type id_resolver registered
[    2.622040] Key type id_legacy registered
[    2.622299] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    2.622358] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    2.624808] Key type asymmetric registered
[    2.624901] Asymmetric key parser 'x509' registered
[    2.625290] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    2.625449] io scheduler mq-deadline registered
[    2.625500] io scheduler kyber registered
[    2.630598] simple-framebuffer 1eaa9000.framebuffer: framebuffer at 0x1eaa9000, 0x151800 bytes
[    2.630711] simple-framebuffer 1eaa9000.framebuffer: format=a8r8g8b8, mode=720x480x32, linelength=2880
[    2.637275] Console: switching to colour frame buffer device 90x30
[    2.645270] simple-framebuffer 1eaa9000.framebuffer: fb0: simplefb registered!
[    2.657155] bcm2835-rng 20104000.rng: hwrng registered
[    2.661205] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    2.669856] gpiomem-bcm2835 20200000.gpiomem: Initialised: Registers at 0x20200000
[    2.696927] brd: module loaded
[    2.713230] loop: module loaded
[    2.718000] Loading iSCSI transport class v2.0-870.
[    2.723883] usbcore: registered new interface driver smsc95xx
[    2.727469] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    3.459250] Core Release: 2.80a
[    3.462735] Setting default values for core params
[    3.466188] Finished setting default values for core params
[    3.669821] Using Buffer DMA mode
[    3.673190] Periodic Transfer Interrupt Enhancement - disabled
[    3.676604] Multiprocessor Interrupt Enhancement - disabled
[    3.679949] OTG VER PARAM: 0, OTG VER FLAG: 0
[    3.683254] Dedicated Tx FIFOs mode
[    3.687587] WARN::dwc_otg_hcd_init:1074: FIQ DMA bounce buffers: virt = cbd04000 dma = 0x8bd04000 len=9024
[    3.697354] FIQ FSM acceleration enabled for :
Non-periodic Split Transactions
Periodic Split Transactions
High-Speed Isochronous Endpoints
Interrupt/Control Split Transaction hack enabled
[    3.712400] dwc_otg: Microframe scheduler enabled
[    3.712619] WARN::hcd_init_fiq:457: FIQ on core 0
[    3.718283] WARN::hcd_init_fiq:458: FIQ ASM at c065d3d8 length 36
[    3.723642] WARN::hcd_init_fiq:497: MPHI regs_base at dc810000
[    3.729171] dwc_otg 20980000.usb: DWC OTG Controller
[    3.732044] dwc_otg 20980000.usb: new USB bus registered, assigned bus number 1
[    3.734968] dwc_otg 20980000.usb: irq 56, io mem 0x00000000
[    3.737871] Init: Port Power? op_state=1
[    3.740626] Init: Power Port (0)
[    3.743680] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.01
[    3.749329] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    3.752305] usb usb1: Product: DWC OTG Controller
[    3.755225] usb usb1: Manufacturer: Linux 6.1.21+ dwc_otg_hcd
[    3.758205] usb usb1: SerialNumber: 20980000.usb
[    3.762471] hub 1-0:1.0: USB hub found
[    3.765610] hub 1-0:1.0: 1 port detected
[    3.769596] dwc_otg: FIQ enabled
[    3.769629] dwc_otg: NAK holdoff enabled
[    3.769641] dwc_otg: FIQ split-transaction FSM enabled
[    3.769669] Module dwc_common_port init
[    3.770251] usbcore: registered new interface driver usb-storage
[    3.773656] mousedev: PS/2 mouse device common for all mice
[    3.780098] sdhci: Secure Digital Host Controller Interface driver
[    3.783124] sdhci: Copyright(c) Pierre Ossman
[    3.786860] sdhci-pltfm: SDHCI platform and OF driver helper
[    3.791387] ledtrig-cpu: registered to indicate activity on CPUs
[    3.794933] hid: raw HID events driver (C) Jiri Kosina
[    3.798502] usbcore: registered new interface driver usbhid
[    3.801551] usbhid: USB HID core driver
[    3.804762] bcm2835_vchiq 2000b840.mailbox: there is not valid maps for state default
[    3.813835] Initializing XFRM netlink socket
[    3.817727] NET: Registered PF_PACKET protocol family
[    3.821437] Key type dns_resolver registered
[    3.825955] registered taskstats version 1
[    3.829114] Loading compiled-in X.509 certificates
[    3.852450] uart-pl011 20201000.serial: cts_event_workaround enabled
[    3.855968] 20201000.serial: ttyAMA0 at MMIO 0x20201000 (irq = 81, base_baud = 0) is a PL011 rev2
[    3.865881] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    3.869656] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    3.875177] mmc-bcm2835 20300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    3.878487] mmc-bcm2835 20300000.mmcnr: DMA channel allocated
[    3.911041] sdhost: log_buf @ 00276dfe (8bd03000)
[    3.963534] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    3.970799] of_cfs_init
[    3.974743] of_cfs_init: OK
[    3.982956] Waiting for root device PARTUUID=29cb0b19-02...
[    4.041246] mmc0: host does not support reading read-only switch, assuming write-enable
[    4.049057] mmc0: new high speed SDXC card at address aaaa
[    4.054071] mmcblk0: mmc0:aaaa SN64G 59.5 GiB
[    4.062248]  mmcblk0: p1 p2
[    4.067107] mmcblk0: mmc0:aaaa SN64G 59.5 GiB (quirks 0x00004000)
[    4.093247] mmc1: new high speed SDIO card at address 0001
[    4.122666] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[    4.129083] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    4.141306] devtmpfs: mounted
[    4.149833] Freeing unused kernel image (initmem) memory: 432K
[    4.153228] Kernel memory protection not selected by kernel config.
[    4.156638] Run /sbin/init as init process
[    4.159886]   with arguments:
[    4.159900]     /sbin/init
[    4.159913]   with environment:
[    4.159921]     HOME=/
[    4.159931]     TERM=linux
[    4.779557] systemd[1]: System time before build time, advancing clock.
[    5.126361] NET: Registered PF_INET6 protocol family
[    5.132388] Segment Routing with IPv6
[    5.135945] In-situ OAM (IOAM) with IPv6
[    5.248977] systemd[1]: systemd 247.3-7+rpi1+deb11u1 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +ZSTD +SECCOMP +BLKID +ELFUTILS +KMOD +IDN2 -IDN +PCRE2 default-hierarchy=unified)
[    5.260514] systemd[1]: Detected architecture arm.
[    5.287582] systemd[1]: Set hostname to .
[    8.212170] systemd[1]: Queued start job for default target Multi-User System.
[    8.228379] systemd[1]: Created slice system-getty.slice.
[    8.239901] systemd[1]: Created slice system-modprobe.slice.
[    8.250989] systemd[1]: Created slice system-systemd\x2dfsck.slice.
[    8.261383] systemd[1]: Created slice User and Session Slice.
[    8.270295] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[    8.279408] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    8.290180] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    8.303064] systemd[1]: Reached target Local Encrypted Volumes.
[    8.312590] systemd[1]: Reached target Paths.
[    8.321579] systemd[1]: Reached target Slices.
[    8.330292] systemd[1]: Reached target Swap.
[    8.341009] systemd[1]: Listening on Syslog Socket.
[    8.351090] systemd[1]: Listening on fsck to fsckd communication Socket.
[    8.360525] systemd[1]: Listening on initctl Compatibility Named Pipe.
[    8.371787] systemd[1]: Listening on Journal Audit Socket.
[    8.382128] systemd[1]: Listening on Journal Socket (/dev/log).
[    8.392788] systemd[1]: Listening on Journal Socket.
[    8.406852] systemd[1]: Listening on udev Control Socket.
[    8.417164] systemd[1]: Listening on udev Kernel Socket.
[    8.427445] systemd[1]: Condition check resulted in Huge Pages File System being skipped.
[    8.444330] systemd[1]: Mounting POSIX Message Queue File System...
[    8.477152] systemd[1]: Mounting RPC Pipe File System...
[    8.536534] systemd[1]: Mounting Kernel Debug File System...
[    8.606106] systemd[1]: Mounting Kernel Trace File System...
[    8.614796] systemd[1]: Condition check resulted in Kernel Module supporting RPCSEC_GSS being skipped.
[    8.658097] systemd[1]: Starting Restore / save the current clock...
[    8.700334] systemd[1]: Starting Set the console keyboard layout...
[    8.759378] systemd[1]: Starting Create list of static device nodes for the current kernel...
[    8.868785] systemd[1]: Starting Load Kernel Module configfs...
[    8.947013] systemd[1]: Starting Load Kernel Module drm...
[    9.029499] systemd[1]: Starting Load Kernel Module fuse...
[    9.088430] systemd[1]: Condition check resulted in Set Up Additional Binary Formats being skipped.
[    9.175452] systemd[1]: Starting File System Check on Root Device...
[    9.317535] systemd[1]: Starting Journal Service...
[    9.457202] systemd[1]: Starting Load Kernel Modules...
[    9.532262] fuse: init (API version 7.37)
[    9.607314] systemd[1]: Starting Coldplug All udev Devices...
[    9.842296] systemd[1]: Mounted POSIX Message Queue File System.
[    9.921437] systemd[1]: Mounted RPC Pipe File System.
[    9.980012] systemd[1]: Mounted Kernel Debug File System.
[   10.089158] systemd[1]: Mounted Kernel Trace File System.
[   10.179714] systemd[1]: Finished Restore / save the current clock.
[   10.275776] systemd[1]: Finished Create list of static device nodes for the current kernel.
[   10.351021] systemd[1]<EMAIL_ADDRESS>Succeeded.
[   10.427664] systemd[1]: Finished Load Kernel Module configfs.
[   10.461556] systemd[1]<EMAIL_ADDRESS>Succeeded.
[   10.535732] systemd[1]: Finished Load Kernel Module drm.
[   10.587629] systemd[1]<EMAIL_ADDRESS>Succeeded.
[   10.615798] systemd[1]: Finished Load Kernel Module fuse.
[   10.685728] systemd[1]: Finished Load Kernel Modules.
[   10.826000] systemd[1]: Mounting FUSE Control File System...
[   11.025936] systemd[1]: Mounting Kernel Configuration File System...
[   11.147082] systemd[1]: Started File System Check Daemon to report status.
[   11.297459] systemd[1]: Starting Apply Kernel Variables...
[   11.445810] systemd[1]: Finished File System Check on Root Device.
[   11.509789] systemd[1]: Mounted FUSE Control File System.
[   11.579288] systemd[1]: Mounted Kernel Configuration File System.
[   11.687345] systemd[1]: Starting Remount Root and Kernel File Systems...
[   11.855162] systemd[1]: Started Journal Service.
[   12.716599] EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
[   13.297312] systemd-journald[106]: Received client request to flush runtime journal.
[   17.941141] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[   17.943901] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[   17.943953] [vc_sm_connected_init]: start
[   18.022636] [vc_sm_connected_init]: installed successfully
[   18.075946] mc: Linux media interface: v0.10
[   19.252383] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[   19.396185] videodev: Linux video capture interface: v2.00
[   20.221558] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   20.265926] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   20.273544] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[   20.534950] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[   20.769686] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[   20.837395] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[   20.853472] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[   20.860023] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[   20.860786] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[   20.860856] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[   20.860899] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[   20.860932] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[   20.860962] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[   20.911586] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[   20.912698] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[   20.914163] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[   20.928312] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[   20.928394] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[   20.928436] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[   20.928471] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[   20.928500] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[   20.931202] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[   21.133871] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[   21.457425] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[   21.457520] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[   21.476732] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[   21.476839] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[   21.517884] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[   21.518004] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[   21.548407] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[   21.548502] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[   21.588876] bcm2835-codec bcm2835-codec: Device registered as /dev/video31
[   21.588971] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image
[   27.743388] uart-pl011 20201000.serial: no DMA platform data
[   27.919902] Adding 102396k swap on /var/swap.  Priority:-2 extents:1 across:102396k SSFS
[   30.415202] 8021q: 802.1Q VLAN Support v1.8
[   31.164361] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[   31.518420] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   31.535626] cfg80211: loaded regulatory.db is malformed or signature is missing/invalid
[   32.815808] Console: switching to colour dummy device 80x30
[   32.827094] vc4-drm soc:gpu: bound 20400000.hvs (ops vc4_hvs_ops [vc4])
[   32.871660] Registered IR keymap rc-cec
[   32.871967] rc rc0: vc4-hdmi as /devices/platform/soc/20902000.hdmi/rc/rc0
[   32.872261] input: vc4-hdmi as /devices/platform/soc/20902000.hdmi/rc/rc0/input0
[   32.921619] vc4-drm soc:gpu: bound 20902000.hdmi (ops vc4_hdmi_ops [vc4])
[   32.922541] vc4-drm soc:gpu: bound 20004000.txp (ops vc4_txp_ops [vc4])
[   32.923305] vc4-drm soc:gpu: bound 20206000.pixelvalve (ops vc4_crtc_ops [vc4])
[   32.924061] vc4-drm soc:gpu: bound 20207000.pixelvalve (ops vc4_crtc_ops [vc4])
[   32.924784] vc4-drm soc:gpu: bound 20807000.pixelvalve (ops vc4_crtc_ops [vc4])
[   32.977811] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[   33.035050] vc4-drm soc:gpu: bound 20c00000.v3d (ops vc4_v3d_ops [vc4])
[   33.145962] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[   33.147623] usbcore: registered new interface driver brcmfmac
[   33.170029] [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 0
[   33.186208] vc4-drm soc:gpu: [drm] Cannot find any crtc or sizes
[   33.423281] Bluetooth: Core ver 2.22
[   33.423451] NET: Registered PF_BLUETOOTH protocol family
[   33.423467] Bluetooth: HCI device and connection manager initialized
[   33.423500] Bluetooth: HCI socket layer initialized
[   33.423519] Bluetooth: L2CAP socket layer initialized
[   33.423556] Bluetooth: SCO socket layer initialized
[   33.424693] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Jul 19 2021 03:24:18 version 7.45.98 (TOB) (56df937 CY) FWID 01-8e14b897
[   33.573817] Bluetooth: HCI UART driver ver 2.3
[   33.573859] Bluetooth: HCI UART protocol H4 registered
[   33.573988] Bluetooth: HCI UART protocol Three-wire (H5) registered
[   33.574229] Bluetooth: HCI UART protocol Broadcom registered
[   36.541143] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   36.541183] Bluetooth: BNEP filters: protocol multicast
[   36.541214] Bluetooth: BNEP socket layer initialized
[   36.604172] Bluetooth: MGMT ver 1.22
[   36.709715] NET: Registered PF_ALG protocol family
[   37.055246] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled
[   43.973117] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[   45.458075] ICMPv6: process `dhcpcd' is using deprecated sysctl (syscall) net.ipv6.neigh.wlan0.retrans_time - use net.ipv6.neigh.wlan0.retrans_time_ms instead

Sorry for being unclear.
I ment the stack trace of the programm(error). So just the full error message.
(In particular to get the information in which line the programm fails.)
You should be abel to run ./displayRun.py directly. (I excpect the problem in there.)

Sorry for the delay; I had to leave for 10 days for doctor's visits, etc, on the mainland. Anyway, I've got the trace of the error:
dellis@raspical:/eInkCalendar $ sudo python3 ./displayRun.py
INFO:app:2023-06-01 17:27:24.615902
WARNING:app:unsupported locale setting
INFO:app:Trying to module_exit()
Traceback (most recent call last):
File "/eInkCalendar/./displayRun.py", line 63, in main
render_content(draw_blk, image_blk, draw_red,
File "/eInkCalendar/./displayRun.py", line 77, in render_content
locale.setlocale(locale.LC_ALL, LOCALE)
File "/usr/lib/python3.9/locale.py", line 610, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/eInkCalendar/./displayRun.py", line 212, in
main()
File "/eInkCalendar/./displayRun.py", line 72, in main
eInk.epdconfig.module_exit()
File "/eInkCalendar/lib/epdconfig.py", line 86, in module_exit
self.GPIO.output(self.RST_PIN, 0)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)
Running the displayRun.py give this:
dellis@raspical:/eInkCalendar $ sudo ./displayRun.py
sudo: ./displayRun.py: command not found
dellis@raspical:/eInkCalendar $ sudo python3 ./displayRun.py
INFO:app:2023-06-01 17:27:24.615902
WARNING:app:unsupported locale setting
INFO:app:Trying to module_exit()
Traceback (most recent call last):
File "/eInkCalendar/./displayRun.py", line 63, in main
render_content(draw_blk, image_blk, draw_red,
File "/eInkCalendar/./displayRun.py", line 77, in render_content
locale.setlocale(locale.LC_ALL, LOCALE)
File "/usr/lib/python3.9/locale.py", line 610, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/eInkCalendar/./displayRun.py", line 212, in
main()
File "/eInkCalendar/./displayRun.py", line 72, in main
eInk.epdconfig.module_exit()
File "/eInkCalendar/lib/epdconfig.py", line 86, in module_exit
self.GPIO.output(self.RST_PIN, 0)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)
dellis@raspical:/eInkCalendar $

Thanks, this helps.
It seems like your locale-setting is off.
Could you check the LOCALE = ... line in settings.py?
(Feel free to post it here)

I have
LOCALE = "en_US"

I changed it to "en_US.UTF-8" after setting that in the Locales settings, and it works. Thank you so much for you help!


Should follow XAML whitespace processing rules

In WPF, the following:
<TextBox>
    Hello
    World
</TextBox>

Produces a TextBox with a single line reading "Hello World". In OmniXaml, the newlines are copied verbatim from the XAML into the text, resulting in a TextBox with 4 lines.
OmniXaml should follow XAML whitespace processing rules:
https://msdn.microsoft.com/en-us/library/ms788746(v=vs.110).aspx

Gonna fix it ASAP.

Closed until a new whitespace problem pops up!


Language support

Hi,
I have the following entry in pages.jsonl to show the date on each page:
{"page":00,"id":02,"obj":"label","x":000,"y":000,"w":480,"h":032,"text":"Sun, 18. Jan 2024","template":"%a, %e. %b %Y","text_color":"#FFFFFF","align":"center", "enabled":0, "text_font":24}
Instead of the English version ("Sun, 18. Jan 2024") I would like to switch to the German version ("So, 18. Jan 2024"), but I did not find any option to use the German translation. Is this somehow possible?
And, more general, is it possible to switch the gui to German language? I used the web installer (https://nightly.openhasp.com/) to install openHASP (0.7.0-rc12 cd34d89), but I did not find any option in the configuration to change the language afterwards.. Answered here: (https://github.com/HASwitchPlate/openHASP/discussions/784)
BTW, I am using openHASP without Homeassistant.
Regards,
Peter

afaik ESP-IDF implements the strftime function in English only.
You need to implement a custom strftime function for other languages.


fix revoke for everyone

chrome "cancels" posts if the page navigates away before the post gets a response, to fix this, i put the redirect inside of the promise, so it only gets triggered when the promise returns :)

@faraway when you get a chance please review this pr and merge. Thanks

@aurorahay @reshmasingh Sorry I'm sick and taking PTOs. If you have further PRs that need timely review, you can reach me at<PHONE_NUMBER>.

:+1: :-1: