Bug: validateMimeTypeOAS3 error - allowedValues is not provided for request-mime-type rule

Describe the bug
when I use lint extends all I'm getting an error for allowedValues is not provided for request-mime-type rule. If I change the config to recommended the linter succeeds.
To Reproduce
Steps to reproduce the behavior:

Given this .redocly.yaml file (below)
And this OpenAPI file(s)
Run this command with these arguments... openapi lint ./my-swagger.yaml --format stylish
See error

Expected behavior
the linter should produce an error for the missing mime-type and define where it should be included in the spec.
Logs
openapi lint ./my-swagger.yaml --format stylish
validating ./my-swagger.yaml...
Something went wrong when processing ./my-swagger.yaml:

  - Parameter "allowedValues" is not provided for "request-mime-type" rule.

(node:28796) UnhandledPromiseRejectionWarning: Error: Parameter "allowedValues" is not provided for "request-mime-type" rule
    at Object.validateMimeTypeOAS3 (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\utils.js:111:15)
    at leave (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\rules\oas3\request-mime-type.js:10:29)
    at visitWithContext (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:205:13)
    at walkNode (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:177:21)
    at walkNode (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:154:25)
    at walkNode (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:154:25)
    at walkNode (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:154:25)
    at walkNode (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:154:25)
    at Object.walkDocument (C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\walk.js:32:5)
    at C:\Users\fiel\.nvm\versions\node\v14.18.1\bin\node_modules\@redocly\openapi-cli\node_modules\@redocly\openapi-core\lib\lint.js:64:16
(Use `node --trace-warnings ...` to show where the warning was created)
(node:28796) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:28796) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

OpenAPI definition
If applicable, add an OpenAPI definition and .redocly.yaml configuration file that helps reproduce the problem.
At a minimum, please state the specification version(s) you're using (e.g. 2.0, 3.0, 3.1).
openapi: 3.0.0
info:
  version: '1.1'
  title: 'an api'
  description: ' a description.'
  contact:
    name: 'Jeremy'
    email<EMAIL_ADDRESS>servers:
  - url: 'http://api.redocly.com'
paths:
  /v1/endpoint:
    post:
      summary: 'this is a summary'
      description: 'this is a description'
      operationId: createRecord
      tags:
        - createRecord
      parameters:
        - $ref: '#/components/parameters/customerTransactionId'
        - $ref: '#/components/parameters/clientId'
        - $ref: '#/components/parameters/locale'
        - $ref: '#/components/parameters/establishedId'

      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/component_1'

lint:
  extends:
    - all
  rules:
    info-license: off
    info-license-url: off
    operation-tag-defined: off
    tag-description: off

openapi-cli Version(s)
1.0.0-beta.69
Node.js Version(s)
v14.18.1
Additional context
relates to #422

You should not use all ruleset. This is intended for internal use for benchmarks/etc. It may have conflicting rules.
We'll have to fix it in the docs.

cc @skadinna

Also, we may want it to have a default value like application/json? Thoughts?

@adamaltman I agree.

@andriyl can we add a default value of application/json for that request-mime-type rule?

@adamaltman, @RomanHotsiy  do you mean a default value of the allowedValue? If yes, I think we can.

I'm getting this issue and based on an earlier comment I changed the config to recommended.
I'm still getting the same error. What is the rule even saying? I've searched the spec and can't even find a mention of a key named allowedValues.

@michaelgwelch could you provide your setup so I can recreate this with the recommended ruleset?

@tatomyr You can hide my comment or mark it as off-topic. After struggling with this for a bit my colleague that set up redocly-cli on our repo showed me that we actually have 4 different config files. 😄 We have 4 different configs we need to run with. I changed one that wasn't being called in our normal build. If I change the correct config file then the problem does disappear as mentioned above.
We are having fun trying to figure out how to upgrade from @redocly/openapi-cli": "^1.0.0-beta.63, but I just discovered that with recommended everything seems to work fine.


Question: why treadle choose to work on FIRRTL rather than directly with the chisel generated DUT top?

 The description itself is not simulate-able, but the execution result of such a description is. Eventually, I think some kind of scala object representing all the interconnected hierarchical hardware is generated, and then that object is used to generate the FIRRTL representation.
Treadle (including chisel-tester) chooses to directly work with FIRRTL, wouldn't it easier if it chooses to work directly with that object? (if that object exists ...) Are there any difficulties doing so, or any particular consideration leads to the decision of parsing again FIRRTL?
Thanks.

While it's true that there is a Scala object representation of the circuit in Chisel before FIRRTL, it's intended as an implementation detail rather than well-defined API. The purpose of FIRRTL is to be a well-defined intermediate representation for things like custom transformations and simulation. So to answer your question, FIRRTL is the intended API for such things as Treadle and chiseltest.


Same three (dead) pubs keep getting scheduled over and over again

I'm running Manyverse desktop and follow some profiles that have pubs following them, so I guess that conn is scheduling those pubs to get updates.
However, it seems to not use any back-off mechanism when it fails to reach those pubs. From its startup, I see the following logs showing up every 1-2 seconds, over and over:
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +33ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= +2s
  ssb:conn-hub failed to connect to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= because: getaddrinfo ENOTFOUND diasp.club +13ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +5ms
  ssb:conn-hub connecting to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= +1s
  ssb:conn-hub failed to connect to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= because: getaddrinfo ENOTFOUND ssb.ekata.social +470ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +264ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +5ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +22ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +8ms
  ssb:conn-hub connecting to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= +3s
  ssb:conn-hub failed to connect to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= because: getaddrinfo ENOTFOUND diasp.club +45ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +3s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= +1s
  ssb:conn-hub failed to connect to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= because: getaddrinfo ENOTFOUND ssb.ekata.social +301ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +3ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +262ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +3s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +21ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +4ms
  ssb:conn-hub connecting to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= +2s
  ssb:conn-hub failed to connect to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= because: getaddrinfo ENOTFOUND ssb.ekata.social +508ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= +2s
  ssb:conn-hub failed to connect to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= because: getaddrinfo ENOTFOUND diasp.club +16ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +4ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= +1s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +250ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +1s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +8ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +24ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= +2s
  ssb:conn-hub failed to connect to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= because: getaddrinfo ENOTFOUND ssb.ekata.social +480ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +2s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= +1s
  ssb:conn-hub failed to connect to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= because: getaddrinfo ENOTFOUND diasp.club +11ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +1s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +5ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= +2s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:uRECWB4KIeKoNMis2UYWyB2aQPvWmS3OePQvBj2zClg= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +271ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +3s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +6ms
  ssb:conn-hub connecting to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= +1s
  ssb:conn-hub failed to connect to net:<IP_ADDRESS>:8008~shs:J+0DGLgRn8H5tVLCcRUfN7NfUcTGEZKqML3krEOJjDY= because: connect ECONNREFUSED <IP_ADDRESS>:8008 +22ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +1s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +3ms
  ssb:conn-hub connecting to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= +3s
  ssb:conn-hub failed to connect to net:diasp.club:8008~shs:DNatJUQOFr1NZewA3oRG9i/r0XJZLbKYTyB225J9St0= because: getaddrinfo ENOTFOUND diasp.club +7ms
  ssb:conn-db Begun serializing and writing ConnDB into conn.json +3s
  ssb:conn-db Done serializing and writing ConnDB into conn.json +4ms
  ssb:conn-hub connecting to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= +2s
  ssb:conn-hub failed to connect to net:ssb.ekata.social:8008~shs:FJDMuATvh0a3qIcIPcstUANVIj362fWkYCG5bnkZ5nA= because: getaddrinfo ENOTFOUND ssb.ekata.social +502ms

As you can see, these are the same peers being scheduled, connections failing for IP or DNS reasons, yet they keep being scheduled again.
Not sure whether this is an issue with ssb-conn or with manyverse...

Thanks! It's very likely an issue with ssb-conn. It's hard for me to reproduce, but I was intending to give some time to ssb-conn this week anyway, so I'll take a look at this one too.

Here it is. I just noticed this stopped since I used an invite for my own pub. But I can trigger this easily by just going to the connections tab (which showed two active pub connections when I tried this) and then manually disconnecting (but not "forgetting") all active connections.
If I then launch my phone's manyverse and the two automatically connect, it stops again.
So I'd say this is happening only in situations where there is no connection currently. Which makes it less severe I guess, but still there should be some back-off I guess, and/or a coupling to the OS signalling (un-)availability of general network connectivity. I.e. if there's no net & no bluetooth, don't try to gossip, and if there is, even if you have nobody to speak to, don't try to reconnect over and over if they're not responding.

Ah, GH doesn't let me attach json files?! Okay...
Well, here is a totaly-not-json file:
conn.txt

So I'd say this is happening only in situations where there is no connection currently.

Yes, that was my suspicion as well. ssb-conn has logic for "if I can't get a hold on peer, just keep on trying like mad"

<EMAIL_ADDRESS>released just now. I tested with your conn.json file (thanks for it!) and the issue is gone. We now have a retry timer system that's based on how many connection failures have happened with that peer since the last successful connection, so that it follows the formula 4sec + 10sec * Math.min(64, failure || 0) which I discovered by testing many different values and tweaking the curve.

Can confirm that the retries don't happen anymore now, at least not regularly. :)


Create find-volume-of-a-sphere.py

Closes #896

pls look into this program @rakibul-islam-raju

pls look into this program @rakibul-islam-raju

The program looks good. Please wait for the reviewer's response.


feat: upload code coverage report

Description
Upload code coverage report, a reminder of improving test coverage and new feature test. #29

[x] I have raised an issue to propose this change (required for new features and bug fixes)

Checklist
Go over all the following points, and put an x in all the boxes that apply.
If you are unsure about any of these, don't hesitate to ask. We are here to help!

[x] I have read the CONTRIBUTION guide (required)
[x] I have reformatted the code using make format (required)
[x] I have checked the code using make lint (required)
[x] I have ensured make test pass. (required)

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@a9d9705). Click here to learn what that means.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #61   +/-   ##
=======================================
  Coverage        ?   51.08%
=======================================
  Files           ?       27
  Lines           ?      785
  Branches        ?        0
=======================================
  Hits            ?      401
  Misses          ?      384
  Partials        ?        0

Flag
Coverage Δ

unittests
51.08% <0.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Add GLDevice::set_default_framebuffer()

Okay, I have no idea if this PR contains the right kind of change for pathfinder, but I figured it'd start a conversation, at least.
Basically, when addressing the problem of dynamically resizing the in-editor Unity player mentioned in https://github.com/pcwalton/pathfinder/issues/147#issuecomment-496015315 (e.g., when the user clicks "play" and then resizes their window), I found that the approach used in Pathfinder's demo code didn't fully work in Unity:
https://github.com/pcwalton/pathfinder/blob/bc713a5181ab7ed90469d054c36f78baed36b306/demo/common/src/lib.rs#L266-L274
Specifically, what happens is that the Pathfinder rendering simply disappears every time I resize the window, though it occasionally/randomly comes back into view.  I tried simply re-instantiating the whole Renderer instance every time the window is resized, and while it did fix the problem, it was also very slow and made resizing the Unity window quite sluggish.
After some diagnosis I noticed that Unity appears to change the current GL framebuffer when the user resizes the window; I think the reason the rendering randomly re-appeared on resize was because eventually Unity would happen to use the same framebuffer ID that I'd initialized the renderer with.
However, I also found that if I'm able to change the GLDevice that Pathfinder is using to reflect the new framebuffer ID, everything seems to work fine.  There isn't currently a way to do that, however, so this PR adds a simple accessor method that makes it possible.  But I'm not sure if this violates encapsulation in some way, or has other consequences that I'm not aware of.
For reference, the experimental Unity Plugin code that uses this accessor method is at https://github.com/toolness/pathfinder-unity-fun/commit/39221cf7b9bf7d5aba77cc4f7dcae91586eb8040.
@pcwalton do you have thoughts on this?

Yeah, this is the right fix. Thanks!


Create sample custom module

Create a sample custom module that demonstrates creating an additional SITL plane instance, and add to documentation.

Duplicate of #797


Inaccuracies in install instructions

A list of current inaccuracies and inconsistencies I've found in the README's install instructions:

[ ] go get -v sourcegraph.com/sourcegraph/srclib-go doesn't work because of the use of Godep and imports that haven't had their import paths rewritten. This should probably be changed to godep get?
[ ] Apparently, the src tool was renamed to srclib on srclib's master, but the latest pre-compiled binary is still called src. This duality makes it a bit hard to fix the instructions at the moment
[ ] src toolchain add sourcegraph.com/sourcegraph/srclib-go doesn't seem to be a valid command anymore, at least with srclib from current master. Instead, one has to create a symlink manually. Was the removal of that function intentional? Are developers expected to mess around with symlinks?

Should the README on master be correct for the development version of srclib, or for the current release? That is, should references to src be rewritten to srclib already?

For what it's worth, the src vs srclib issue also affects the other srclib-* repositories.

Yes, all references to src should be rewritten as srclib. The new src command runs the entire Sourcegraph application (and includes srclib as a subcommand, but it is a separate thing).
The latest srclib binary is available here: https://s3-us-west-2.amazonaws.com/srclib-release/srclib/0.2.0/linux-amd64/srclib.gz.

And yes, the install instructions should mention godep. Thanks for working through these issues!

:+1:


Use default google translate get wrong language result.

It work pretty well for quite a long time, but it broken in recent days.
When i run like this:  usr/local/bin/trans zh-CN:en '出错',  get garbled code as follow image.

but, when from 'en => zh-CN', it still work well.
Thank you.

I get the same issue. Whats funny is that if you repeatedly paste the chinese source text into the shell, eventually it will display right. It seems as if the server response is garbled already somehow.

Duplicate of #310.

I am now getting only garbled results, retried several times but all garbled unlike one of the comments above. I tried translating from japanese to english


feat: add auro-checkbox-group and auro-checkbox components

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Issue: https://github.com/AlaskaAirlines/ods-inputoptions/issues/26
Summary:
Please summarize the scope of the changes you have submitted, what the intent of the work is and anything that describes the before/after state of the project.
This pull request is the initial build of the component with tests and documentation built into it.
Type of change:
Please delete options that are not relevant.

[x] New capability

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[ ] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


test: Script updates for flaky tests to unblock CI

Description

This PR includes fixes for scripts around AST changes

Type of change

Fixes tests scripts - Cypress (non-breaking change which tests functionality)

How Has This Been Tested?

CI runs

Checklist:

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes

/ok-to-test sha=ff9b34d

/ok-to-test sha=52a32a0

/ok-to-test sha=4aec180

/ok-to-test sha=cf45ce3

/ok-to-test sha=5d94b91

/ok-to-test sha=5d94b91

/ok-to-test sha=c08e7de

/ok-to-test sha=ec2f5dd

/ok-to-test sha=ef53d1c

/perf-test ref=compare_against_last_3

/ok-to-test sha=d359b28

/ok-to-test sha=e488b20

/ok-to-test sha=5ff47f6

/ok-to-test sha=3b35384

/ok-to-test sha=c9b3523


Build error when adding MDX support (or running the included example)

Version
Fastly CLI version v3.3.0 (96b3aa7)
Built with go version go1.19 linux/amd64
Viceroy version: viceroy 0.2.15

What happened
Setting a minimal site up from scratch works, but fastly compute serve fails when adding MDX. (Since MDX support is also in the example app in this repo, the example fails in the same way.)
running
$ next build && cd compute-js && fastly compute serve
✓ Verifying local javascript toolchain...
✗ Building package using javascript toolchain...

ERROR: error during execution process:

Warning: Unknown file type /.next/BUILD_ID...
Warning: Unknown file type /.next/trace...
Warning: Unknown file type /README.md....

Hi, any updates or suggestions for workarounds here? @harmony7? I can get the Next.js-site in the examples folder to build if I comment out all MDX-related things in the example, but not as-is …

Hi there, thanks for the comment.
The following needs to be done to the next.config.js file in the example, and this had inadvertently been left out of the files that got committed for the example.
I've committed an updated version to the repo and added a description to the README as well.
// Whatever your current next.config.js is
module.exports = {
  reactStrictMode: true,
  async headers() {
    return [
      {
        source: '/foo',
        headers: [
          {
            key: 'x-custom-header',
            value: 'my custom header value',
          },
        ],
      },
    ]
  },
};

if (!process.env.NEXT_COMPUTE_JS) {
  // Apply MDX loader only at compile time
  const withMDX = require('@next/mdx')({
    extension: /\.mdx?$/,
    options: {
      remarkPlugins: [],
      rehypePlugins: [],
    },
  });
  module.exports = withMDX({
    ...module.exports,
    // Append the default value with md extensions
    pageExtensions: ['ts', 'tsx', 'js', 'jsx', 'md', 'mdx'],
  });
}

Some of the dependencies that the @next/mdx plugin tries to load has problems with the Compute@Edge environment, and since this plugin actually only runs at compile time, we leave it out for runtime (It only needs to run during next build -- as it has the job of converting your .mdx files into .js files).
Please see if this helps.

Thanks for the update, it worked great! And as you mention, .mdx compilation happens in the build step for my use case :+1:


The relation 'directly negatively regulates' should not be in BP

We have one instance of 'directly negatively regulates' in BP:
'miRNA mediated inhibition of translation' = biological_process and (mediated_by some miRNA) and ('directly negatively regulates' some translation)
I will change this to 'negatively regulates' some translation.

@balhoff Is there a way to disallow some relations specifically for some GO aspect in the Travis checks?

Yes I think so. For this, a BP should never be the subject of the relation?

Neither a BP nor a CC (to be comprehensive). Should I open a new ticket?

Yes please.


Pylance completely breaks after using VS Code for extended period of time

Type: Bug
Pylance completely breaks after using VS Code for a long time.
I used VS Code for several hours last night, Pylance had broken before this but I simply did a hard re-install to fix it (delete all VS Code related files and uninstall it). However, after 4 hours or so of coding, it broke again.
For some reason, the moment I type anything, Pylance completely breaks highlighting and starts throwing up errors in random places. It feels like it's detecting me typing over other lines, as the errors show up in places where I didn't type at all.
I've attempted some solutions:

Reinstall Pylance
Disable Pylance (works but I want the highlighting that Pylance provides)
Restart VS Code

I looked all over the internet if anyone had similar issues, which they did not.
Extension version: 2022.11.30
VS Code version: Code 1.73.1<PHONE_NUMBER>f055b99068d3688932416f2346dd3b, 2022-11-09T04:27:29.066Z)
OS version: Windows_NT x64 10.0.19044
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
AMD Ryzen 7 5800X 8-Core Processor              (16 x 3793)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
15.91GB (9.24GB free)

Process Argv
--crash-reporter-id 5dcfe160-bdf3-450c-b224-958d596c3a05

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
pythonvspyl392:30443607
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vsdfh931:30280409
vshan820:30294714
vstes263:30335439
vscoreces:30445986
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593:30376534
pythonvs932:30410667
cppdebug:30492333
vsclangdc:30486549
c4g48928:30535728
dsvsc012cf:30540253
azure-dev_surveyone:30548225
vscccc:30610679
pyindex848:30577860
nodejswelcome1:30587005
fc301958:30595537
3biah626:30602489
gswce1:30612156
iaj6b796:30613358
dbltrim-noruby:30604474
f6dab269:30613381

#3554

I encountered this same problem with 2022.11.30.  The issue went away after rolling back to 2022.11.20.

Same problem for me with Pylance running on Remote Extension host.

Language Server version: Pylance language server 2022.11.30 (pyright 04a10583)
OS and version (remote host): Red Hat Enterprise Linux release 8.5 (Ootpa)
Python version (& distribution if applicable, e.g. Anaconda): 3.10.6 (ha86cf86_0_cpython; conda-forge)

@VerathianHD or @schlunma can you include the contents of the 'Python Language Server' output tab?
Thanks.

After running VS Code for about 30 min I get 70 wrong issues in my file. They appeared around 9:20 AM.

Python Language Server Output
[Info  - 8:49:51 AM] (1987600) Pylance language server 2022.11.30 (pyright 04a10583) starting
[Info  - 8:49:51 AM] (1987600) Server root directory: /home/b/user/.vscode-server/extensions/ms-python.vscode-pylance-2022.11.30/dist
[Info  - 8:49:51 AM] (1987600) Starting service instance "ESMValCore"
[Info  - 8:49:51 AM] (1987600) Starting service instance "ESMValTool"
[Info  - 8:49:51 AM] (1987600) Notebook support: LSP
[Info  - 8:49:51 AM] (1987600) Interactive window support: LSP
[Info  - 8:49:51 AM] (1987600) Starting service instance "<default>"
[Info  - 8:49:52 AM] (1987600) No pyproject.toml file found.
[Info  - 8:49:52 AM] (1987600) Setting pythonPath for service "<default>": "/work/mambaforge/envs/esm/bin/python"
[Warn  - 8:49:52 AM] (1987600) stubPath typings is not a valid directory.
[Info  - 8:49:52 AM] (1987600) Assuming Python version 3.10
[Info  - 8:49:52 AM] (1987600) Assuming Python platform Linux
[Info  - 8:49:52 AM] (1987600) Searching for source files
[Info  - 8:49:52 AM] (1987600) No source files found.
[Info  - 8:49:52 AM] (1987600) Background analysis(1) root directory: /home/b/user/.vscode-server/extensions/ms-python.vscode-pylance-2022.11.30/dist
[Info  - 8:49:52 AM] (1987600) Background analysis(1) started
[Info  - 8:49:52 AM] (1987600) Background analysis(2) root directory: /home/b/user/.vscode-server/extensions/ms-python.vscode-pylance-2022.11.30/dist
[Info  - 8:49:52 AM] (1987600) Background analysis(2) started
[Info  - 8:49:52 AM] (1987600) Background analysis(3) root directory: /home/b/user/.vscode-server/extensions/ms-python.vscode-pylance-2022.11.30/dist
[Info  - 8:49:52 AM] (1987600) Background analysis(3) started
[Info  - 8:49:52 AM] (1987600) No pyproject.toml file found.
[Info  - 8:49:52 AM] (1987600) Setting pythonPath for service "<default>": "/work/mambaforge/envs/esm/bin/python"
[Warn  - 8:49:52 AM] (1987600) stubPath typings is not a valid directory.
[Info  - 8:49:52 AM] (1987600) Assuming Python version 3.10
[Info  - 8:49:52 AM] (1987600) Assuming Python platform Linux
[Info  - 8:49:52 AM] (1987600) Searching for source files
[Info  - 8:49:52 AM] (1987600) No source files found.
[Info  - 8:49:52 AM] (1987600) No configuration file found.
[Info  - 8:49:52 AM] (1987600) pyproject.toml file found at /home/b/user/repos/ESMValCore.
[Info  - 8:49:52 AM] (1987600) Setting pythonPath for service "ESMValCore": "/work/mambaforge/envs/esm/bin/python"
[Info  - 8:49:52 AM] (1987600) Loading pyproject.toml file at /home/b/user/repos/ESMValCore/pyproject.toml
[Error - 8:49:52 AM] (1987600) Pyproject file "/home/b/user/repos/ESMValCore/pyproject.toml" is missing "[tool.pyright]" section.
[Warn  - 8:49:52 AM] (1987600) stubPath /home/b/user/repos/ESMValCore/typings is not a valid directory.
[Info  - 8:49:52 AM] (1987600) Assuming Python version 3.10
[Info  - 8:49:52 AM] (1987600) Assuming Python platform Linux
[Info  - 8:49:52 AM] (1987600) Searching for source files
[Info  - 8:49:52 AM] (1987600) Found 485 source files
[Info  - 8:49:52 AM] (1987600) No configuration file found.
[Info  - 8:49:52 AM] (1987600) pyproject.toml file found at /home/b/user/repos/ESMValTool.
[Info  - 8:49:52 AM] (1987600) Setting pythonPath for service "ESMValTool": "/work/mambaforge/envs/esm/bin/python"
[Info  - 8:49:52 AM] (1987600) Loading pyproject.toml file at /home/b/user/repos/ESMValTool/pyproject.toml
[Error - 8:49:52 AM] (1987600) Pyproject file "/home/b/user/repos/ESMValTool/pyproject.toml" is missing "[tool.pyright]" section.
[Warn  - 8:49:52 AM] (1987600) stubPath /home/b/user/repos/ESMValTool/typings is not a valid directory.
[Info  - 8:49:52 AM] (1987600) Assuming Python version 3.10
[Info  - 8:49:52 AM] (1987600) Assuming Python platform Linux
[Info  - 8:49:53 AM] (1987600) Searching for source files
[Info  - 8:49:53 AM] (1987600) Found 365 source files
[Info  - 8:49:56 AM] (1987600) [BG(3)] Long operation: checking: /home/b/user/repos/ESMValCore/tests/sample_data/multimodel_statistics/test_multimodel.py (2635ms)
[Info  - 8:49:56 AM] (1987600) [BG(3)] Long operation: analyzing: /home/b/user/repos/ESMValCore/tests/sample_data/multimodel_statistics/test_multimodel.py (2664ms)
[Info  - 8:52:42 AM] (1987600) Searching for source files
[Info  - 8:52:42 AM] (1987600) Found 485 source files
[Info  - 8:55:14 AM] (1987600) Searching for source files
[Info  - 8:55:14 AM] (1987600) Found 485 source files
[Info  - 8:55:47 AM] (1987600) Searching for source files
[Info  - 8:55:47 AM] (1987600) Found 485 source files
[Info  - 8:59:54 AM] (1987600) Searching for source files
[Info  - 8:59:54 AM] (1987600) Found 485 source files
[Info  - 9:08:29 AM] (1987600) Searching for source files
[Info  - 9:08:29 AM] (1987600) Found 485 source files
[Info  - 9:08:34 AM] (1987600) Searching for source files
[Info  - 9:08:34 AM] (1987600) Found 485 source files
[Info  - 9:08:56 AM] (1987600) Searching for source files
[Info  - 9:08:56 AM] (1987600) Found 365 source files
[Info  - 9:14:24 AM] (1987600) Searching for source files
[Info  - 9:14:24 AM] (1987600) Found 485 source files
[Info  - 9:14:26 AM] (1987600) Searching for source files
[Info  - 9:14:26 AM] (1987600) Found 485 source files
[Info  - 9:23:18 AM] (1987600) Searching for source files
[Info  - 9:23:18 AM] (1987600) Found 485 source files
[Info  - 9:23:20 AM] (1987600) Searching for source files
[Info  - 9:23:20 AM] (1987600) Found 485 source files
[Info  - 9:25:26 AM] (1987600) Searching for source files
[Info  - 9:25:26 AM] (1987600) Found 485 source files
[Info  - 9:25:26 AM] (1987600) Searching for source files
[Info  - 9:25:26 AM] (1987600) Found 485 source files
[Info  - 9:27:08 AM] (1987600) Searching for source files
[Info  - 9:27:08 AM] (1987600) Found 485 source files
[Info  - 9:29:53 AM] (1987600) Searching for source files
[Info  - 9:29:53 AM] (1987600) Found 485 source files
[Info  - 9:29:56 AM] (1987600) Searching for source files
[Info  - 9:29:56 AM] (1987600) Found 485 source files

Another weird behavior I noticed is that
My VS code was running for more than a week and the Pylance process kept running at >100% CPU even when I completely quit VS Code. on MacOS 12.5.1,  my VS Code shows that I am using Pylance v2022.11.30
When I check Activity monitor, there are two Pylance processes running one from ms-python.vscode-pylance-2022.10.30 and the other from ms-python.vscode-pylance-2022.10.40 (I did not restart my Mac in a while)
I killed the processes manually and no issues yet. I would imagine that the extension version when upgraded cleans the old version processes, but that does not seem to be the case.

I'm encountering this issue as well, for quite some time now. Example:

I am currently only working on a remote development host but I'm pretty certain to have had this problem locally as well.
Closing and reopening the affected file works temporarily but the problem always reoccurs at some point when switching back to VS Code from other programs.
It seems to mainly affect the first few lines of code, though not just import statements.
I'm also attaching the Python Language Server Output here (goes from opening workspace to problem occurrence to file close and reopening):
Python Language Server Output

I encountered this same problem with 2022.11.30. The issue went away after rolling back to 2022.11.20.

I concur. Tried everything OP did to no avail until a rollback to 2022.11.20 did the trick.

This looks like a dupe of https://github.com/microsoft/pylance-release/issues/3652 which was caused by incorrectly assigning files to the wrong workspace folder. It repros when you have more than one folder in your workspace. Going back to 2022.11.20 fixes that problem.
@LeShaunJ and @jonasreiher can you verify if you have more than one folder open?

I'm having the same issue. Also seems to be resolved by going back to 2022.11.20 and I'm experiencing it in a few different workspaces, all containing multiple folders.

Thanks for verifying.
The reason it looks so weird is that the textDocument/didOpen will go to one server and your textDocument/didChange events will go to another.
Internally this messes up the contents of the file that the server has. Meaning it doesn't even come close to matching what's on the screen.
Example:
File starts out as this:
def hello_world():
    print("Hello")

You add this:
def hello_world():
    print("Hello World")

Server sees this as the contents of the file because it missed the 'open' contents.
World

This looks like a dupe of #3652 which was caused by incorrectly assigning files to the wrong workspace folder. It repros when you have more than one folder in your workspace. Going back to 2022.11.20 fixes that problem.
@LeShaunJ and @jonasreiher can you verify if you have more than one folder open?

I can confirm. This happens to me when multiple folders are open in a single workspace. I tried with a single folder for some time now and did not yet encounter the problem again.

Thanks. Closing as dupe of #3652

@LeShaunJ and @jonasreiher can you verify if you have more than one folder open?

Thanks for the reply, @rchiodo. Yes, I had multiple folders in my workspace when the issue occurred.


feat: add support for list of messages as team task input

Why are these changes needed?
Currently, a team only supports a single message as input for a task. This limits the ability to prepopulate context for agents, especially when working with previous conversation histories or nested chats. This PR adds support for passing a list of messages as task input, enabling better integration with applications where users might type multiple messages before triggering the team run.
Key changes:

Added support for list[ChatMessage] as valid task input
Messages are processed sequentially, maintaining conversation flow
Added validation for message lists (empty lists, invalid message types)
Maintained backward compatibility with existing string and single message inputs
Added comprehensive test coverage for the new functionality

Related issue number
Fixes #4472
Checks

[x] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[x] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[x] I've made sure all auto checks have passed.

@microsoft-github-policy-service agree

Thanks @iamarunbrahma for the PR. It's a good start, but to finish it is going to be some more work. Please let us know ASAP when you are blocked.

Thanks @iamarunbrahma for the PR. It's a good start, but to finish it is going to be some more work. Please let us know ASAP when you are blocked.
please also review the Python development guide under python directory.

Thanks @ekzhu , yes I have reviewed the python development guide. Kindly, review the updated PR and let me know if you have any more suggesstions


Transmission TIR for rough glass

In the OSL implementation, I am sure that I correctly understand how total internal reflection is handled. One possibility is that the fresnel term for specular takes care of that since it goes to 1 in the case of TIR, thus not issuing a transmission btdf at all. If that is the case, I have two questions

how do you handle rough glass, that should have a btdf that depends on 1 - fresnel(w_h)
how do you decide whether to "flip" eta depending on inside-out test

Thanks for the question! And sorry for the delayed response.
The answer is that currently the shader does not have a well-defined behavior when the surface is hit from the inside. When the surface is hit from the inside, by default all closures are emitted and weighted against each other as if hit from the outside, with the difference that the medium IORs are obeyed for refraction to work properly. The transmission closure handles TIR, per microfacet.
There's an active discussion about this on the mailing list. Specifying the behavior in a physically meaningful and practically useful way is a high priority now. The layering definition from Figure 1 in the white paper will likely need to be adjusted, as discussed on the mailing list.
Hope this helps!


Floating search button icon

packages/forms/src/components/FloatingSearchButtonIcon/style.js is empty


ModuleNotFoundError

ModuleNotFoundError                       Traceback (most recent call last)
 in ()
----> 1 from stocker import Stocker
ModuleNotFoundError: No module named 'stocker'

NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
To view examples of installing some common dependencies, click the
"Open Examples" button below.
Link to cell: https://colab.research.google.com/drive/1NBS2wwQmApALKCQrv86Wye4-QwpExq9S#scrollTo=KFpvknWXRRQ6

This happened to me as well.
First, make sure you have installed all the packages. Try using pip3 instead, try sudo, try both.
Next, create a Jupyter notebook or .py script in the same directory as the stocker.py file. You must must must have the stocker.py file in the same exact directory as the code!!!!
Hope this helps. Happy coding!

Hello! I'm having a similar issue. I'm running spyder (python 3.7) Anaconda
I've installed all the packages and the mycode.py file is in the same directory as the stocker.py file.
INPUT:
from stocker import stocker
MSFT is in the WIKI database, which is default
microsoft = stocker(ticker='MSFT')
TECHM is in the NSE database
techm = stocker(ticker='TECHM', exchange='NSE')
RESULT:
runfile('C:/Users/Joshua/Anaconda3/Lib/site-packages/stocker/stock_prediction.py', wdir='C:/Users/Joshua/Anaconda3/Lib/site-packages/stocker')
Traceback (most recent call last):
File "C:\Users\Joshua\Anaconda3\Lib\site-packages\stocker\stock_prediction.py", line 16, in
microsoft = stocker(ticker='MSFT')
TypeError: 'module' object is not callable


crash when using /cam fog off

reported by a few users, need to look into this

fixed in https://github.com/HasKha/GWToolboxpp/commit/750eeed736b201639371b5d258a9f4d0b475ab5d


Add visual indicator for command/edit mode

In the classic notebook we have an indicator in the notebook toolbar that shows when a cell is in edit mode. We need something in JupyterLab that shows this state, but it doesn't have to be in the notebook toolbar.
Some ideas:

Maybe in the notification area?
Maybe spatially colocated with the cell being edited?

Doesn't the border around the cell show this? Is it a color accessibility issue?

I think the colors meaning are still unclear to a regular user. A lot of people didnt pick up on that visual cue and relate that to command and edit modes.

How about changing the cursor for when it is on edit vs. command mode?

Maybe in the notification area?

This would be a great thing to put in a status bar at the bottom, similar to a word processor puts mode information like Insert/Overwrite status. cf. https://github.com/jupyter/jupyterlab/issues/512

Jason, yes, I really like the idea of having a status bar. Here is the one for VSCode:

Would you do that on a per tab basis or JupyterLab wide?

Probably Lab-wide, since I think it would be a bit heavy doing it per-tab. That would also be consistent with VSCode, Sublime, and other most other Windows MDI apps where the status bar is a global bar at the bottom of the app, which updates depending on which internal window was selected.


Obscure legal requirements destroy the intended purpose of the mainnet wizzard

Envisaged Purpose
The envisaged purpose of the mainnet wizzard is to provide a non-technical biz / gatekeeper user like Stefan or myself a centralized & easy way to interact with Raiden on mainnnet, e.g. to demonstrate the ease of use of Raiden to a non-developer.
Legal blockers
Disclaimers

Never have I ever seen any software that includes the user to go through e.g. navigate to, read through and click a Disclaimer for every single action taken, which for the average user-journey of this wizzard ranges to 8 disclaimers.

In my opinion this is completely unnecessary and rather a minimal viable legal job of not merging the disclaimers, rather than an actual legal constraint (even if one assumes to want to have beyond industry standard protection)

DEX Swap

It seems weird to me we can't just provide the cheapest market-rate between Uniswap & Kyber, as this as a criteria is as objective as it can get and therefore very far away from acting in the capacity of a "financial advisor", as there is no subjectivity assesment involved.

This would furthermore allow us to use a broader variety of DEX, to actually further delimitate the options of right now picking between two different DEX's, instead of a broader list.

Other non-legal questions

Provided my Envisaged Purpose description above is correct, I believe a lot of the information in the text is too technical, e.g. why would Stefan or I need to have access to a "Raiden Configuration File" ? Please confirm whether I am correct we should display as little nerd information as possible to provide a good UX or a non-technical biz person.

Thank you Gus!

Can you provide solutions to the above problem with pros and cons? Like what do you suggest as a solution?
Are there other products out there dealing with a similar legal problem but solving it with e.g. one disclaimer?
In case we need to keep that many disclaimers, is there a way to have a reasonable UX?

I propose to merge it into one active terms of use & privacy policy that has to be clicked through. As an extra level of shielding we can furthermore include fixed disclaimer text in the bottom of every page.

I have only seen other Web3 projects or software projects in general with initial passive or active consent to terms of use & privacy policy, back in the ICO days the most sketchy ICO I have seen, which was clearly an unregulated security, had 3 checkboxes upfront

I don't see we can have any reasonable UX with this many disclaimers, everyone that tries it out will be left with the feeling this is "scary, complicated, dangerous, sketchy" or whatnot, e.g. negative feeling providing the complete opposite of a "smooth & comfortable" experience

I am closing this issue as the main blocker, the number of active checkboxes was resolved in todays meeting


activate-build-cache-for-bazel 1.0.0

https://github.com/bitrise-steplib/bitrise-step-activate-build-cache-for-bazel/releases/1.0.0
What to do if the build fails?
At the moment contributors do not have access to the CI workflow triggered by StepLib PRs. In case of a failed build, we ask for your patience. Maintainers of Bitrise Steplib will sort it out for you or inform you if any further action is needed.
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

New Step
Thank you for the new Step share! The CI check might will fail due to our extended validation engine. Nothing to worry about yet, we will get back to you shortly.

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


[SEO][Rollout Monikered Canonical]Add URL moniker

Enable build config to generate canonical URL with moniker

Docs Build status updates of commit 5245af2:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/Mono.Android/en/docfx.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@davidbritch @pjcollins this pull request is to update docfx.json config to improve Docs url canonicalization, it won't affect any code functionalities, could you please help to review/approve and merge it?


rendering menus side by side? Having issue figuring out how

I'm trying to render multiple menu buttons side by side using this module, but coming into issue, as they render one on top of the other. Is this something related to the stylesheet, or am I missing a attribute/parameter somewhere?
Here's a code snippet below for reference
import React from 'react';
import {
    Menu,
    MenuItem,
    MenuButton,
    SubMenu
} from '@szhsin/react-menu';
import<EMAIL_ADDRESS>
class TopMenuDropdown extends React.Component {
    constructor(props) {
        super(props);
    }
    render () {
        return (

                {this.props.TMPMenuTestCategory.map (({name,items},i) =>
                    {
                    return <Menu
                        align={'end'}
                        key={i}
                        menuButton={<MenuButton>{name}</MenuButton>}
                        reposition={'initial'}
                        >
                        {items.map((item,j) =>
                            {
                                console.log(item,j);
                            return <MenuItem key={j}>{item}</MenuItem>
                            }
                        )}
                    </Menu>
                } )}

        )
    }
}

disregard, I'm still learning and I was just doing it with a wrong context. just had to change
 to
 and add style={{display:'flex', float:'left'}} to Menu attributes. Sorry for the time-waste


utils.js_to_json is broken: mishandles commented lines

Tested with youtube-dl 2020.01.15 and 2020.01.01.
>>> from youtube_dl import utils
>>> input = """{
...   foo: "value",
...   // bar: { nested:'x' },
...   bar: { nested:'x' },
...   chaff: "something"
... }"""
>>> print(utils.js_to_json(input))
{
  "foo": "value"

  "bar": { "nested":"x" },
  "chaff": "something"
}

Note that the "foo": "value" line has lost its trailing ',' with the transformation (it was there in the input). This is invalid JSON and is causing issue #23707.

d9d07a9 supposedly fixes this.

https://github.com/ytdl-org/youtube-dl/pull/28446#issuecomment-1975409285


V3 Prerelase

Where can I found the release notes ? What is the newest version ?
Thanks!

See here - https://github.com/NginxProxyManager/nginx-proxy-manager/discussions/1202. Latest version is 2.9.15.

Where can I find v3? Docker Hub?


Version bumps for intergration tests charm

Proposal

Update the integration test charm libs and deps
Update data_interfaces lib

Context
Release Notes

Update data_interfaces lib

Testing

BTW. JFMI, why the label here is "Libs our of sync"?


(PDB-3385) Clean up certname_packages when deleting nodes

I tried the purge-nodes query on our big dataset: it took ~2.5s to purge 800 nodes (1%) and ~22 s to purge 8k (10%). Subquery vs. CTE form makes no difference in this case.
I also tried a relational-ier "delete using" version of the query, but I got the same query plan (and perf) as the subquery.

Test PASSed


Clone fixest syntax parser

Hi Alex,
I am not familiar with fixest but was a heavy-user of Stata previously. Is there any approach to include a vector of similar variable names in the formula? For example:
reg y x*

This will include all variables like x1, x2, x3 ... into regression model. Is it fine for pyfixest to have this syntax? Not sure whether fixest has similar syntax. If you think this is feasible, I can do it. Some syntax I propose is
# Syntax 1: To include all variables like x1, x2, x3...
pf.feols("y~x*)

# Syntax 2a: To include variables pre_3, pre_2, post_0, post_1, post_2 (for event study)
pf.feols("y~pre_[3-2]+post_[0-2]")

# Syntax 2b: Similar to syntax 2a, but additionally support gaps
pf.feols("y~pre_[3(-1)2]+post_[0(1)2]")

# Syntax 3a: To include age_20, age_30, age_40 (for controlling age bins)
pf.feols("y~age_[20,30,40]")

# Syntax 3b: To include job_clerk, job_police (for controlling specific jobs)
pf.feols("y~job_[clerk,police]")

I guess syntax 1 will not break any existing syntax and is easy to learn. For syntax 2a-3b, I am not sure whether the benefit on convenience outweigh its learning cost, since they add some complexities, from user's perspective. Maybe we can introduce syntax 1 first, and ignore the rest until several other users propose?
By the way, I will add keep, drop, and exact_match to coefplot this week.
Best regards,
Dave

Hi Dave, this is definitely a very interesting suggestion! fixest allows for macros via xpd() but I have to admit that I never really used it. It's also a very advanced functionality, so it might be ok to deviate from fixest syntax.
More concretely, I really like this syntax
pf.feols("y~x*)

but we'd have to be careful, as * is a special symbol with Wilkinson formulas and if used slightly different, will produce an interaction term, i.e. y ~ x1*x2 evaluates to y ~ x1 + x2 + x1:x2.
More generally it would be amazing if you were to take a look at formula parsing via FormulaParser, which in my opinion it is the least clean part of the code base and will eventually require a major overwhaul 😄

Thanks for pointing out the Wilkinson formula problem! I thought for a while and maybe there are two alternatives:
Solution 1: Provide a helper function to resemble variable list
Xs = pf.varlist("X*")  # Xs = "X1 + X2"
pf.feols(f"y ~ {Xs} + f1", data=df)

Solution 2: Parse the varlist function in formula
pf.feols("y ~ vlist(X*) + f1", data=df)

Then we can replacevlist(X*) by "X1 + X2" first, and then pass the formula to formulaic. In this way, the formulaic always receive un-confusing strings.
Solution 2 looks easier for users to learn since it does not require users to have knowledge of f-string. If using solution 2, what name should this function called?

v() or V(): Easiest to type, but may not be easy to understand.
vlist()
list()
varlist()

How do you think Alex?

Hi Dave, I like both solutions!
I don't think that syntax as Y ~ X* is a problem per se, it might just work as well. Though I have a slight preference for either the helper method or direct formula parsing. I just went through the formulaic docs (the library that pyfixest uses to create the design matrices) and it looks like there might be a way to add custom operators. But for the beginning, it probably makes a lot of sense to keep the parsing within pyfixest. Though I will open an issue in formulaic to maybe get some guidelines on how one would add a custom parser.
For the immediate future, I'd be happy to accept any of the three solutions you have proposed!

Unsolicited feedback: Personally, I strongly recommend against adopting any Stata-specific syntax above (R) fixest's native API if you can avoid it.
It's obvs perfectly fine to write a wrapper package that does this for users that want it. (Or implement it as bonus functionality on top of the mimicked API). But similar to my comment here, I think you do a disservice to both packages, and the overall goal of this project, if the API begins to drift away from the upstream R fixest package.
P.S. Ideally, a Stata user could simply consult https://stata2r.github.io/fixest/ and make the direct translation to PyFixest. That's the beauty of having a consistent API across both packages ;-)

Hi @grantmcdermott, thank you so much for pointing out the https://stata2r.github.io/fixest/ website! It's really informative. So fixest has already supported such syntax
ctrls = c("age", "black", "hisp", "marr")
feols(wage ~ educ + .[ctrls], dat)

feols(wage ~ educ + ..('^x'), dat) # ^ = starts with
feols(wage ~ educ + ..('sp$'), dat) # $ = ends with
feols(wage ~ educ + ..('ac'), data)

I try in pyfixest, but such syntax is not supported.
import pyfixest as pf
df = pf.get_data()

Xs = ['X1', 'X2']
fit = pf.feols("Y ~ .[Xs] + f2", data=df)  # FormulaSyntaxError

fit = pf.feols("Y ~ ('^X') + f2", data=df)  # X1 and X2 not included

Do you think mimicking this syntax into pyfixest is a good idea? Given fixest already has such syntax, I wouldn't invent a new one anyway.

Do you think mimicking this syntax into pyfixest is a good idea?

Yes, I think so @Wenzhi-Ding . It may be a bit trickier to match the exact syntax under Pythonic constraints. But I think you can get close enough that the translation is clear.

I made a full review for both fixest and Stata formula syntax. To be honest, some fixest/Stata syntaxes do not follow a consistent design language.
Overall, I think syntax like sw(x1, x2) (stepwise), i(treat) (categorical), and f(wage, 1) (1-period lead) are good designs, that can be easily understood. Syntax like .[ctrls] (variable list pre-defined), ..('ac') (variables starts with), /, :, and statefips[year] are bad designs, which are not straightforward to be understood and remember.
My overall feeling is that we need to follow existing prevalent packages (to mitigate switching costs), but it is also worthwhile to provide alternatives that slightly deviate from the dependent path to reduce onboarding costs (for new users to comprehend and remember syntax quickly). And of course, these two ways can co-exist. R users can use fixest syntax, while new users may refer to a more readable way.
In this sense, I would like to propose a consistent "function in the formula" design pattern to make pyfixest formula more readable. The idea is that all special syntax within the formula should be used as a function with a meaningful name. And we should introduce as less symbols as possible. (Now we have ~, +, | for basic syntax and ^, *, :, / for interaction. I think that is already pretty much to be remembered)
For macros (referencing list outside formula):
controls = ["X1", "X2"]
pf.feols("Y ~ f2 + list(controls)", data=df)
pf.feols("Y ~ f2 + .[controls]", data=df)  # fixest's syntax supported

For wildcards (matching variable names by pattern):
pf.feols("Y ~ f2 + vars(X*)", data=df)  # support alias: v(X*)
pf.feols("Y ~ f2 + ..('ac')", data=df)  # fixest's syntax supported

For lead, lag, difference, and logarithm difference in panel data:
pf.feols("Y ~ f2 + lead(X,1)", data=df, id_var="id", time_var="time")  # support alias and fixest's syntax: f(X,1)
pf.feols("Y ~ f2 + lag(X,1)", data=df, id_var="id", time_var="time")  # support alias and fixest's syntax: l(X,1)
pf.feols("Y ~ f2 + diff(X,1)", data=df, id_var="id", time_var="time")  # support alias d(X,1) or fixest's syntax: d(X)
pf.feols("Y ~ f2 + logdiff(X,1)", data=df, id_var="id", time_var="time")  # support alias: logd(X,1)

Categorical with specified baseline (this is a good design from fixest)
pf.feols("Y ~ f2 + i(X,ref=1)", data=df)

Categorical/continuous: by default, the covariate part are continuous variables, and fixed effects part are categorical variables. But users can also specify variable type by function.
pf.feols("Y ~ c(f2) + i(X1) | group^c(year)", data=df)  # to control time trend for each group

Please let me know your opinion. But anyway I wouldn't try to implement all of them at once. And I will guarantee backward compatibility for any new syntax introduced, i.e., no existing script will be broken.

Here is a pyfixest, fixest, and Stata syntax comparison:
Reference:

https://stata2r.github.io/fixest/
https://s3alfisc.github.io/pyfixest/quickstart.html

Please correct me if anything wrong. Maybe we can add a webpage like this to smooth R and Stata user's switching.
Models

Item
pyfixest
fixest
Stata
Note

Simple regression
pf.feols("wage~educ + age", data=dat)
feols(wage ~ educ + age, data = dat)
reg wage educ age
✅

Categorical variables
pf.feols("wage~educ + i(treat)", dat)
feols(wage ~ educ + i(treat), dat)
reg wage educ i.treat
✅

Categorical variables (specify baseline)
pf.feols("wage~educ + i(treat)", dat, i_ref1=1)
feols(wage ~ educ + i(treat, ref = 1), dat)
reg wage educ ib1.treat
✅

Fixed effects
pf.feols("wage ~ educ | countyfips", data=df, vcov={"CRV1": "countyfips"})
feols(wage ~ educ | countyfips, dat, vcov = ~countyfips)
reghdfe wage educ, absorb(countyfips) cluster(countyfips)
✅

Weights
pf.feols("wage~educ + i(treat)", dat, weights=w)
feols(wage ~ educ + i(treat), dat, weights = ~w)
reg wage educ i.treat [aw = w]
✅

Instrumental variables
pf.feols("wage ~ marr | countyfips | educ ~ age", data=dat)
feols(wage ~ marr | countyfips | educ ~ age, dat)
ivreghdfe 2sls wage marr (educ = age), absorb(countyfips)
✅

Nonlinear models (Logit)

feglm(marr ~ age + black + hisp, dat, family = 'logit')
logit marr age black hisp
❌

Nonlinear models (Poisson)
pf.fepois("educ ~ age + black + hisp | statefips + year", dat)
fepois(educ ~ age + black + hisp | statefips + year, dat)
ppmlhdfe educ age black hisp, absorb(statefips year) vce(cluster statefips)
✅

Macros

ctrls = c("age", "black", "hisp", "marr")
local ctrls age black hisp marr
❌

feols(wage ~ educ + .[ctrls], dat)
reg wage educ ``ctrls'

Wildcards (starts with)

feols(wage ~ educ + ..('^x'), dat)
reg wage educ x*
❌

Wildcards (ends with)

feols(wage ~ educ + ..('sp$'), dat)
reg wage educ *sp
❌

Wildcards (contains)

feols(wage ~ educ + ..('ac'), dat)
reg wage educ *ac*
❌

Split sample

feols(wage ~ educ | countyfips, dat, split = ~hisp)

❌

Multiple dependent variables
pf.feols("wage + educ ~ age + marr | countyfips + year", dat)
feols(c(wage, educ) ~ age + marr | countyfips + year, dat)

✅

Stepwise regression
pf.feols("wage ~ educ + sw(age, marr)", dat)
feols(wage ~ educ + sw(age, marr), dat)

✅

Stepwise regression (cumulative)
pf.feols("wage ~ educ + csw(age, marr)", dat)
feols(wage ~ educ + csw(age, marr), dat)

✅

Stepwise regression (cumulative FE)
pf.feols("wage ~ educ | csw(year, statefips)", dat)
feols(wage ~ educ | csw(year, statefips), dat)

✅

Interactions

Item
pyfixest
fixest
Stata
Note

Interact continuous variables (single)

feols(wage ~ educ:age, dat)
reg wage c.educ#c.age
❌

Interact continuous variables (full)
pf.feols("wage ~ educ*age", dat)
feols(wage ~ educ*age, dat)
reg wage c.educ##c.age
✅

Interact continuous variables (polynomials single)

feols(wage ~ I(age^2), dat)
reg wage c.age#c.age
❌

Interact continuous variables (full)

feols(wage ~ poly(age, 2, raw = TRUE))
reg wage c.age##c.age
❌

Interact categorical variables

feols(wage ~ i(treat, i.hisp), dat)
reg wage i.treat#i.hisp
❌

Interact categorical variables

feols(wage ~ factor(treat)/factor(hisp), dat)
reg wage i.treat i.treat#i.hisp
❌

Interact categorical variables

feols(wage ~ factor(treat)*factor(hisp), dat)
reg wage i.treat##i.hisp
❌

Interact categorical with continuous variables
pf.feols("wage ~ I(educ,age)", dat)
feols(wage ~ i(treat, age), dat)
reg wage i.treat#c.age
✅

Interact categorical with continuous variables

feols(wage ~ factor(treat):age, dat)
reg wage i.treat#c.age
❌

Interact categorical with continuous variables

feols(wage ~ factor(treat)/age, dat)
reg wage i.treat i.treat#c.age
❌

Interact categorical with continuous variables
pf.feols("wage ~ I(educ,age)", dat)
feols(wage ~ factor(treat)*age, dat)
reg wage i.treat##c.age
✅

Interact fixed effects
pf.feols("wage ~ educ | statefips^year", dat)
feols(wage ~ educ | statefips^year, dat)
reghdfe wage educ, absorb(statefips#year)
✅

Interact fixed effects (Varying slopes)

feols(wage ~ educ | statefips[year], dat)
reghdfe wage educ, absorb(statefips#c.year) vce(cluster statefips#c.year)
❌

Standard errors

Item
pyfixest
fixest
Stata
Note

HC
pf.feols("wage ~ educ", dat, vcov = 'HC1')
feols(wage ~ educ, dat, vcov = 'hc1')
reg wage educ, vce(robust)
✅

HC
pf.feols("wage ~ educ", dat, vcov = 'HC3')
feols(wage ~ educ, dat, vcov = sandwich::vcovHC)
reg wage educ, vce(hc3)
✅

HAC

feols(y ~ x, dat, vcov = 'NW', panel.id = ~unit + time)
ivreghdfe wage educ, bw(auto) vce(robust)
❌

Clustered (auto clustered by FE)
pf.feols("wage ~ educ | countyfips", dat)
feols(wage ~ educ | countyfips, dat)
reghdfe wage educ, absorb(countyfips) vce(cluster countyfips)
✅

Clustered (twoway clustering)
pf.feols("wage ~ educ | countyfips + year", dat, vcov={"CRV1": "countyfips + year"})
feols(wage ~ educ | countyfips + year, dat, vcov = ~countyfips + year)
reghdfe wage educ, absorb(countyfips year) vce(cluster countyfips year)
✅

Clustered (interacted clustering)

feols(wage ~ educ | countyfips^year, dat, vcov = ~countyfips^year)
reghdfe wage educ, absorb(countyfips#year) vce(cluster countyfips#year)
❌

Conley standard errors

feols(wage ~ educ, dat, vcov = conley("25 mi"))

❌

Presentation
These are APIs beyond model formula. Not to be discussed in this thread.
Panel
No panel-set function for pyfixest yet.

Item
pyfixest
fixest
Stata
Note

Lag variables

feols(wage ~ educ + l(wage, 1), dat)
reg wage educ l1.wage
❌

Lead variables

feols(wage ~ educ + f(wage, 1), dat)
reg wage educ f1.wage
❌

First difference

feols(wage ~ educ + d(wage), dat)
reg wage educ D.x
❌

Thanks for sharing your perspective @grantmcdermott!
If I am honest, I wasn't really aware of fixest's macros and wildcards, but of course Laurent has implemented all convenience features users could think of and more 😄 I guess as an R-first user, I never had the need to properly consult (the excellent) stata2r . That given, I agree that there is a lot of value in keeping the syntax of both packages aligned, and if we claim that pyfixest is a faithful implementation of fixest, then we should prioritize this accordingly.
@Wenzhi-Ding , thanks for looking into this in so much detail. It'll probably take me a little longer to think through all of it, but here are my initial 5 cents:
Whenever possible, we should try to use formulaic context when parsing formulas. In a nutshell, context's allow us to do things as this:
import pandas
from formulaic import model_matrix, Formula

def my_transform(col: pandas.Series) -> pandas.Series:
    return col ** 2

# Manually add `my_transform` to the context
Formula("a + my_transform(a)").get_model_matrix(
    pandas.DataFrame({"a": [1, 2, 3]}),
    context={"my_transform": my_transform},  # could also use: context=locals()
)

This might for example be useful when we have to combine multiple variables to "interacted" fixed effects via ^ syntax, or for implementing lead() and lag().
On syntax, do I understand your suggestion correctly that you'd like to have both: compatibility with fixest syntax and special pyfixest syntax? That's a solution I would personally be more than happy with!

Hi @Wenzhi-Ding , I just merged a PR in which I reworked the logic of model_matrix_fixest. I have moved away from formulaic.model_matrix() to formulaic.Formula.get_model_matrix() as recommended in the formulaic developer guide. This facilitates the code logic in multiple dimensions - most importantly, I no longer have to keep track of NaN values dropped by instruments, endogeneous variables, or regression weights but instead .get_model_matrix() takes care of it. Additionally, I use formulaic contexts to map the fixed effects into integers (via pd.factorize). Here we could easily add additional syntax elements, like lag()andlead(). In general, I think it would be best to try to handle all additional formula syntax **within** model_matrix_fixest, except for multiple estimation parsing, which under the current flow of the program needs to happen at the very beginning. Moving multiple estimation parsing into model_matrix_fixest` might be desirable but requires larger refactoring, and I don't get very excited when thinking of this at the moment ...
I also like the idea of adding a comparison page to the docs that compares fixest syntax with pyfixest syntax so that users can easily track what is implemented in pyfixest or where syntax differs. As you have already added Stata comparisons, I'd also just include them, and we should also make sure to link to stata2r, as this has been your main source I believe? =)

Hi Alex @s3alfisc, it's great to hear your update! I have got a bit busy recently and haven't taken a look at implementing the above-mentioned syntax. I will work based on your update once I have time (maybe one or two weeks from now...).
And for the source of syntax comparison, I borrow them from stata2r (Thanks @grantmcdermott for sharing this great source. Help me a lot in switching my project!). But I haven't tested the consistency of the results produced. (I work on my research project recent days and found some inconsistency in clustered standard errors between pyfixest and reghdfe. I will dig deeper on this problem after I handle my research project over to my coauthors and maybe open a new issue if it is indeed a problem).

Hi Alex @s3alfisc, it's great to hear your update! I have got a bit busy recently and haven't taken a look at implementing the above-mentioned syntax. I will work based on your update once I have time (maybe one or two weeks from now...).

No worries and absolute 0 pressure! =)

I work on my research project recent days and found some inconsistency in clustered standard errors between pyfixest and reghdfe. I will dig deeper on this problem after I handle my research project over to my coauthors and maybe open a new issue if it is indeed a problem

On small discrepancies of clustered standard errors, the fixest docs can't be beat. I don't know how exactly reghdfe differs from fixest, but pyfixest clustered standard errors slightly differ from fixest when there are fixed effects. I have written a short note on this here. Aligning fixest and pyfixest on this is on my to do list because these things rarely matter in my use cases, but this is a good reminder that I should prioritize this going forward =)

Hi Dave,
After reworking the formula parsing, py-fixest is moving closer to fixest syntax =) I have dropped support for the i_ref1 argument in place of specifying reference levels within "i()" syntax:
%load_ext autoreload
%autoreload 2

import pandas as pd
import numpy as np
import pyfixest as pf
data = pf.get_data()

fit1 = pf.feols('Y ~ i(f1)', data = data)
fit2 = pf.feols('Y ~ i(f1) + i(f2)', data = data)
fit3 = pf.feols('Y ~ i(f1, ref=1)', data = data)
fit4 = pf.feols('Y ~ i(f1, X1, ref=1)', data = data)

Hi Alex, this is so great to see the update! I am sorry for this late reply. Got kind of busy last week. I will work based on your progress!


Async/Await support

Would it be possible to add async/await support in the producers? I'm creating a little state management library for personal use with the new context API and would like to bake in immer for immutable mutations.
I think the following typescript snippet demonstrates my use-case well:
import immer from "immer"

const test = async () =>
{
	interface Todo
	{
		description: string,
		done: boolean
	}

	interface State { todos: Todo[] }

	const initialState : State = {
		todos: [
			{
				description: "Use immer",
				done: true
			}
		]
	}

	const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))

	const addTodo = (todo: Todo) => async (state: State) =>
	{
		await wait(500) //await ajax call or sth
		state.todos.push(todo)
	}

	const newTodo : Todo = {
		description: "Await async await support",
		done: false
	}

	const newState = await immer(initialState, addTodo(newTodo))
}

test()

Currently the library throws: TypeError: Cannot perform 'get' on a proxy that has been revoked
Here is a codesandbox.

No, supporting async / await would break the mental model, as that means that multiple producer calls could interleave with each other and it becomes impossible to reason about what happens. For example what happens if one producer didn't see the state produced by another one because it didn't finalize the proxies yet? Then you would suddenly loose state...
Just use produce (or curried producers) at every 'tick'
e.g. something along these lines
const adder = produce((draft, Todo) => {
  draft.todos.push(Todo)
}

const addTodo = async (state: State, todo: Todo) =>
   await wait(500) //await ajax call or sth
   return adder(state, newTodo)
}

const newState = await addTodo(initialState, addTodo(newTodo))

Sorry to update this closed ticket, but it's the first result in Google.
There is a document that shows an alternative way of solving this, if you really have to do some async stuff when modifying an object.
https://github.com/immerjs/immer/blob/master/docs/async.md

Sorry to update this closed ticket, but it's the first result in Google.
There is a document that shows an alternative way of solving this, if you really have to do some async stuff when modifying an object.
immerjs.github.io/immer/docs/async

The downside of this approach is that you have to guarantee that the created "draft" won't be modified elsewhere during the async method execution


Fixes the layer mix matching issue

This PR aim to fix the issue https://github.com/Kitware/minerva/issues/398
The related events were associated with a singleton object and event is triggered in an async callback, making three different handlers being triggered by one event. However, the code is intended to have three event handler trigger by three different events.
This PR move events onto individual datasets.

@matthewma7 you can go ahead and merge it

@aashish24 Cool, thanks!


How to support CompletionItemKind#Color in LSP client completion?

The CSS language server returns CompletionItemKind#Color:

But I wonder how to interpret this Color in LSPclient side to show in completion the proper color like you did on vscode side.
It seems that LSP client should interpret the color name (ex: red), hexadecimal color (ex : #FFFFF) etc, is it the right direction?

This is actually a hack in VS Code itself. It interprets the details property and if this is a hexadecimal color value it takes that value to render the box. There is a VS Code issue to make this more friendly.

See https://github.com/microsoft/vscode/issues/166201


[Documentation] paremeter len in serialize_struct is hint, or must be exact?

Hi David, Incredible crate, as you already know!
https://docs.rs/serde/1.0.188/serde/trait.Serializer.html#tymethod.serialize_struct
Say I have this function:
impl Serialize for Foo {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: serde::Serializer,
    {
        let mut state = serializer.serialize_struct("Foo", 1)?;
        if let Some(bar) = self.bar {
            state.serialize_field("bar", bar)?;
        }
        state.end()
    }
}

It's not clear if I have to check the option and report the exact len, or if I can get away with hinting the len.
Thanks!

Hey,
I don't have an answer to this question but I am curious to know that as well. I bet that the length is usually a hint and we probably can't know for sure if it isn't saved into the resulting bytes without being checked against the number of serialized fields. And in that case, this can lead to bugs...
Fwiw the discrepancies when we pass different length then the number of serialize_field calls we make can be detected with a lint written in Dylint (see write Rust lints without forking Clippy which can be seen here.

Good point! This makes me think it's just a hint for preallocation, since why would they trust us when they can count it themselves.


Clarification on 2.1 going non-beta?

I just need a clarification for when 2.1 is going non-beta. I also noticed that the demo version is running 2.2.x.   I assume 2.2.x is alpha?

There's generally very little difference, as far as stability is concerned, between the stable/pre-release version (since no code lands without e.g. all tests passing).
Firefox Nightly, for example, is always using what's essentially the latest master version of the PDF.js library. Hence the decision to use "stable" or "pre-release" versions is really up each implementer (and note that unless something is really broken, patches are generally not back-ported).

I do agree that we should make a new release again. @brendandahl If we follow the release process, does the existing pre-release automatically become stable (on GitHub and NPM) or do we need to do that ourselves somehow?

I do agree that we should make a new release again.

In that case, how about making sure that #10794 is landed first?

I do agree that we should make a new release again. @brendandahl If we follow the release process, does the existing pre-release automatically become stable (on GitHub and NPM) or do we need to do that ourselves somehow?

If everything is working correctly it should.

I'd suggest trying to get PRs #10850 and #10851 (maybe #10879 as well) landed as soon as possible, and then just create a new release immediately afterwards (before considering landing any larger items).

Yes, I agree. Those three are mostly done, other PRs can wait. @brendandahl Could you fix up your two PRs?

I'm waiting for that too, but it seems it got stuck. Would be great to get a new release soon

I'm planning to make a new release next Wednesday.

Version 2.1 is now stable; refer to https://github.com/mozilla/pdf.js/releases.


Directory not found

I am trying to install MhcVizPipeline on windows operating system I keep on getting directory not found error.
./MhcVizPipe_install.sh:line175 :/home/abc/MhcVizPipe/Python/install/bin/python3: No such file or directory
I am not able to rectify this please assist.

Hello,
I have a new version of the tool which uses a different installation process. I will be putting it up as a release soon, but for now I will email you a copy of it to test out. I'll include instructions in the email.
Kevin

Hello,
I have a new version of the tool which uses a different installation process. I will be putting it up as a release soon, but for now I will email you a copy of it to test out. I'll include instructions in the email.
Kevin


Location does not get updated on the Redux store LOCATION_CHANGE

When you call routerActions.replace action, it does put correct action to the store, but the store does not take action to update the history.
I've got this fixed by using routerMiddleware provided by react-router-redux in the following way:
//src/main.js
import { syncHistoryWithStore, routerMiddleware } from 'react-router-redux';
//....
const store = configureStore(initialState, routerMiddleware(browserHistory));

And in src/redux/configureStore.js
export default function configureStore (initialState = {}, routerMiddleware) {
  //....
  if (routerMiddleware) {
    middleware = compose(applyMiddleware(routerMiddleware), middleware)
  }

This way we connect routerMiddleware to the store when we configure it and everything works perfectly.
What do you think about this? Does this change make sense or I didn't get the routing working correctly for some other reason?

So I intentionally didn't include the middleware, primarily because I've never actually used actions to change routes and it isn't exactly necessary to react-router-redux. Perhaps I should just add it, though, even if it goes unused since this is the second time it's been mentioned.

Closing as a duplicate of https://github.com/davezuko/react-redux-starter-kit/issues/552 since it's technically not an issue, but will be opening a PR to incorporate the middleware in the base starter kit.


Set the feed/itunes subscription button

The player will support an action button, to enable the listener to subscribe to the podcast associated with the episode being played.
The builder will support providing filling this with a subscribe button, which will link to the feed or itunes.
In this initial version, use the URL provided for the podcast feed itself, but allow override to the itunes url.

It's in there.


receptor signaling protein activity and its children

Hi,
I don't know if these are on Amelias obsoletion list or
not, but are the following (and some of their children)
really functions ?
Most are undefined. GO:0005076, GO:0005081, GO:0008268
and GO:0005082 are particularly confusing.
receptor signaling protein activity ; GO:0005057
receptor signaling protein serine/threonine kinase
activity ; GO:0004702
receptor signaling protein serine/threonine kinase
signaling protein activity ; GO:0005076
receptor signaling protein serine/threonine phosphatase
activity ; GO:0009400
receptor signaling protein serine/threonine phosphatase
signaling protein activity ; GO:0005081
receptor signaling protein tyrosine kinase activity ;
GO:0004716
receptor signaling protein tyrosine kinase signaling
protein activity ; GO:0008268
receptor signaling protein tyrosine phosphatase
activity ; GO:0004728
receptor signaling protein tyrosine phosphatase
signaling protein activity ; GO:0005082
regulator of G-protein signaling activity ; GO:0016299
transmembrane receptor protein serine/threonine kinase
signaling protein activity ; GO:0005071
transmembrane receptor protein tyrosine kinase
signaling protein activity ; GO:0005066
Since most of these terms represent >1 function, I
would vote to obsolete the grouping  terms below
GO:0005057 and replace annotations with process
signaling terms, and the 'kinase' and/or 'signal
transducer activity' function terms.
Children of these grouping terms, e.g. MAP kinase
activity could just be given the direct parents
'protein serine/threonine kinase activity' and 'signal
transducer activity'.
Becky
Reported by: beckyfoulger
Original Ticket: "geneontology/ontology-requests/1524":https://sourceforge.net/p/geneontology/ontology-requests/1524

thanks www.movied.org


The Three dots not showing!

Hey, You have made a great Theme! i just don't see the Mac Like buttons

It's not included in the css theme. The three dots is the windows buttons from awesomewm. These buttons are drawn by your window manager.


Tiny modification in ex5_19.cpp about the condition of rsp

There is no need to test whether the rsp is empty and whether test the first element is 'y'. Besides, when user input other words begin with 'y' would be considered as 'yes', which is not precisely. We can directly test the string whether equal to "y" or "yes".

Thx


False unnecessary semi-colon report

Version 0.24.0
When using should throw the Exception or should throw from kluent you often end up doing this:
    @Test
    fun `kluent issue`() {
        val any = Any(); //some setup
        {
            any.toString()
        } `should throw` Exception::class
    }

The semi-colon is reported as unnecessary: Unnecessary semicolon (cannot be auto-corrected)
But Android Studio doesn't mark it as unnecessary:

and removing it causes:

Fix is coming in 0.25.0.

0.25.0 released.


[Relay][docs] Details on comp. graphs in Relay dev intro

In response to a comment (https://github.com/dmlc/tvm/pull/2232#issuecomment-449588563) in #2232, I've added a few words on why traditional deep learning frameworks use the computation graph representation in the first place. Since I was making changes anyway, I also made some stylistic edits.
Unfortunately, I've screwed up the line endings somehow so the diff is blown up; I couldn't figure out how to fix the diff, unfortunately.

@slyubomirsky OK. Please address other minor issues I left then it will be good to merge I think.

Thanks, @yidawang @slyubomirsky , this is merged


Support if-asked for git-push-gpgsign

As of today, GitHub does not support signed git pushes, therefore setting git-push-gpgsign to true will actually fail the push.
However, as the git manual states in https://git-scm.com/docs/git-config, you can actually set push.gpgsign to not only false and true values, but also if-asked, which will effectively sign the push if the resulting server supports it, and avoid a failure if it does not.
It'd probably be a good idea for git-push-gpgsign to support if-asked option in addition to true and false. I don't see a good reason why it shouldn't, and supporting it would allow us to bullet-proof for the future when GitHub (and probably a lot of other git servers) enable that option on their backends.
Thank you in advance for considering this feature.

@JustArchi SGTM, thanks for your feedback.

Thank you! 👍


Incorrect product name and distribution years in NOTICE file inside jars

Search before asking

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

Please describe the bug 🐞
mvn clean package -DskipTests
jar xf ./xtable-core/target/xtable-core-0.1.0-SNAPSHOT.jar META-INF/NOTICE
cat META-INF/NOTICE

Currently the NOTICE file contains the following:
xtable-core
Copyright 2023 The Apache Software Foundation

The distribution years must reflect the current year (i.e., 2024) and instead of having the module name it may be preferred to use the product name (with the incubation mention) in the NOTICE file.
Apache XTable (incubating)
Copyright 2024 The Apache Software Foundation

Are you willing to submit PR?

[X] I am willing to submit a PR!
[ ] I am willing to submit a PR but need help getting started!

Code of Conduct

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

I have looked at the NOTICE files after pulling the latest main branch containing https://github.com/apache/incubator-xtable/pull/510
The file does reflects the correct date now.
xtable-core
Copyright 2024 The Apache Software Foundation

Pushed a PR for changing the module names in pom.xml to reflect the apache compliant name in NOTICE. Can you review if this version of the NOTICE file is okay ?
https://github.com/apache/incubator-xtable/pull/511
Apache XTable (incubating) Core
Copyright 2024 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).


Add support for CSV meta-data provision

https://grips.semantic-web.at/x/DIJ2B
Requirements 14, 63, 78

@brodecva Please provide a bit more details, link to the story or at least to the req

Please provide a bit more details, link to the story or at least to the req

Done.

The most essential things implemented as of https://github.com/odalic/sti/commit/e4097d0ac28f7d0ad61ef335dc01726cf92fa348 .


Bicep file specifies incorrect version.

The bicep file webapp.bicep specifies 'DOTNETCORE|6.0'. Needs to be 'DOTNETCORE|7.0' otherwise the deployed web app will fail to start. I'll raise a PR

Thanks @ElaMark!


Tutoral updates and small fixes

Checklist

[x] Add a Changelog entry
[ ] Add the ticket number which this PR closes to the comment section

I updated the tutorial to match the current release, and fixed a few small bugs triggered by the tutorial. I can split the fixes in to seperate PRs if you prefer.

Wow, thanks @stuart-cls! What a great PR to find. Thank you!


[remux] update remux with shutdown fix for rM1

the new rM update (2.5) removes rtcwake from the system. this version of remux no longer depends on rtcwake

It would be great to start shipping rtcwake as a package since it's got a nicer interface

The other sub-packages should have their release number bumped to ensure that they will register as an update.
When trying to launch remux it's turning off my device. https://pastebin.com/n0866iKF

harmony, mines, and nao/simple all seem to work fine though.


.NET Framework Docker Performance Issue Resolved

.NET Framework Docker Performance Issue Resolved
Multiple people have reported that .NET Framework performance in Docker images is poor. In the cases reported, performance was an order of magnitude slower than expected.
This issue has now been resolved for microsoft/dotnet-framework images. It was due to incorrectly generated NGEN images. They are now correctly generated and expected performance has been restored.
Details

dotnet-framework-docker #27

The .NET Framework uses NGEN as a primary mechanism for startup performance. .NET Framework assemblies are compiled to native code with the NGEN tool as part of the .NET Framework setup process. The benefit of these files is that they can be loaded and executed without any additional significant extra work required by the Common Language Runtime (CLR). The lack of  additional work means that performance is very good.
NGEN image generation interacts with a Windows subsystem that is not correctly supported in Windows containers. NGEN images are generated in Windows containers, but they are not valid. Fortunately, the CLR can still run in the presence of invalid images, but code execution is much slower.
We are in the process of fixing Windows containers so that NGEN will work correctly. In the interim, we have updated the dotnet-framework/ images to correctly generate NGEN images. The microsoft/windowsservercore/ images still have the performance problem that was initially reported. We are working on updating Windows containers so that NGEN works as expected. You are recommended to use the dotnet-framework/ base image if you can, so that you can get better performance.
One of the developers that reported the performance issue shared basic performance results. The first two rows are the before state. The last row is the dotnet-framework image after the fix. The improvement is quite significant.

Runing powershell -command (measure-command { powershell -command exit }).TotalSeconds in various images on our CI server produced this table of timings:

time (s)
image

10.7212372
microsoft/windowsservercore

8.3278793
microsoft/dotnet-framework:4.7

0.6426073
microsoft/dotnet-framework:4.7 (after fix)

I've pulled the latest image docker image pull microsoft/dotnet-framework:4.7 and still have the 10 second startup time. I'm testing this on a Windows 10 machine with version 1703 build 15063.674

Are you referring to the startup time of the image or the number of seconds that the PowerShell command above reports? The startup time of docker run is a different issue. For example, example, docker run -it --rm microsoft/dotnet-framework:4.7 doesn't load/run the CLR, so any startup time there is due to windows containers and the size of the image.
I just re-ran the scenario and see the performance I expected for the PowerShell command.

I updated the table above with the times for the microsoft/dotnet-framework:4.7.1-windowsservercore-1709 image.
Microsoft Windows [Version 10.0.16299.19]
(c) 2017 Microsoft Corporation. All rights reserved.

C:\>powershell -command (measure-command { powershell -command exit }).TotalSeconds
0.1642161

C:\>powershell -command (measure-command { powershell -command exit }).TotalSeconds
0.1477679

C:\>powershell -command (measure-command { powershell -command exit }).TotalSeconds
0.1314013

C:\>powershell -command (measure-command { powershell -command exit }).TotalSeconds
0.1526497

C:\>powershell -command (measure-command { powershell -command exit }).TotalSeconds
0.1507745


chore: Revert "build(deps): bump com.h2database:h2 from 2.1.214 to 2.2.224"

Reverts jeremylong/DependencyCheck#5940
Unfortunately, due to issue with Gradle the H2 dependency cannot be upgraded. we can reintroduce this PR once https://github.com/gradle/gradle/issues/27156 is resolved.

@jeremylong - given this reversion, is the note about the database breaking changes mentioned in the documentation still relevant?

While technically it won't break - it will basically act as if you've purged due to differences between the data feed and the API you will end up having to re-download the entire NVD dataset.


Update cross-tenant-mailbox-migration.md

Updated the requirement for GA for source tenant admin changes

@JohanFreelancer9 Please copy review

Issue#https://github.com/MicrosoftDocs/microsoft-365-docs/issues/6014


Usage of "±" - Char(177) as a Field Delimiter in all Reports

Hi,
first of all I am aware that this is not a small thing and can not be changed just now 😅
In the Standard Reports their is a Visual Basic Function for Setting and Getting the Report Header:

(Scrennshot from SalesShipment.rdlc)
I checked the base app for Char(177) and found a total of 83 layout files that use this delimiter
This Code Snippet is also Documented as an Example in the Mircosoft Docs:
https://learn.microsoft.com/en-us/dynamics-nav/how-to--print-report-header-information-on-multiple-pages

I therefore assume that partners and also end customers have copied the corresponding code line and are currently using it.
Within the ASCII table there are own control characters for delimiting data:

ASCII Code 30 - Record Separator (RS)
ASCII Code 31 - Unit Separator (US)

Wouldn't it make more sense to split the data with one of these characters? Since ± is currently used as a separator, it can no longer be used within the database because I run the risk that the data is separated incorrectly in reports.
Furthermore, the character ± is used to represent tolerances (e.g. for cut surfaces or lengths). The chance that an end user uses this character in the database is therefore relatively high.
Now to the real question:

Is it possible to change the code in question in a future Global update? This would make the Plus–minus sign usable again for the end user.

If this is not possible, I would like to move this issue to the Microsoft Docs repo and clarify where in the docs the current behavior is documented.  So that the character "±" is technically used for separation  and that it can cause problems within the reports when it should be printed.

@PiGlic have you tested on report with the "ASCII Code 31 - Unit Separator (US)"? I would expect that everythings works the same, but it should be tested at least.
I totally agree with you that a char separation isn't the best option.
Personally I would still prefer some kind of List Type instead of using char separator.
But using the correct char for unit separation seems to be at least a little bit better.
I created an a new idea for XmlPorts to support this special char, too: https://experience.dynamics.com/ideas/idea/?ideaid=d4eb678a-13eb-ed11-913b-0003ff459a6f

Thanks for creating idea, closing.


Publish on npm

Since Bower is pretty much (deprecated)[https://github.com/bower/bower#bower---a-package-manager-for-the-web] and most projects are using npm for their frontend dependencies, it would be nice if this package could be also published on npm in addition to Bower.

Yes, Bower recommends yarn now, for new projects at least and in conjunction with webpack, if necessary.
Source


There should be a hint when null checking a null literal under Null Safety

An expression of the form null! will always produce a runtime exception. There should be a hint to identify such cases.

Fixed with https://dart-review.googlesource.com/c/sdk/+/170122.


Change bitrate

Hello! First of all thanks a lot for this nice project!
Is there a way to change bitrate while streaming?

Do you mean adaptative bitrate?

hello，thanks for the project code,do you know some books about live video
using rtmp ?


Eq 12 and Eq 18: Determinant and Trace are Product and Sum of Eigenvalues

Determinant and Trace are Product and Sum of Eigenvalues
The eigenvalue as defined here is the same as the eigenvalue defined by mathlib for endomorphisms.

root_charpoly_iff_has_eigenvalue and lemmas for both directions
mem_eigs_iff_eigenvalue and lemmas for both directions

I ran the command `leanproject up' to get a new mathlib and it also changed lean version to 3.51.1 (in addition to changing mathlib).

Please merge master to resolve the conflicts


add users emails support

Coverage decreased (-0.06%) to 94.631% when pulling e82e59509d156792c279e4954b4bb05ddf0ed921 on falexandrou:user-emails-api into 4f8b64a6d8e4959e2aa95e8bdba3729f34a1134d on hirakiuc:master.

Coverage decreased (-0.06%) to 94.631% when pulling 423296bcb97b8bb253597ec8991d8c856e6240fa on falexandrou:user-emails-api into 4f8b64a6d8e4959e2aa95e8bdba3729f34a1134d on hirakiuc:master.


Support for ENUM type

With this change the ENUM type is sent as STRING and values are also sent as STRING. There is a test, however that doesn't work because the docker image doesn't have yugabytedb version that supports ENUM type yet

Does the test check for enum values?

yes, added the test.


BUG typo

The hallway is dark. You turn on the lights, which throws amber light on what would otherwise been bare white walls.

closed by 57e4154