Allow disableOnClickOutside as a state variable

Allowing disableOnClickOutside in state, so the parent component don't need to know about the inner mechanics of the component.
This can be used together with enableOnClickOutside/disableOnClickOutside if the whole component isn't part of the callout/dialog. (Which probably isn't good style in general, but sometimes you do what you got to do.

in that case we'll need to change this so that the conditional check only involves this.state, and bootstrap that using the construction properties:
getInitialState: function() {
  return {
    disableOnClickOutside: !!this.props.disableOnClickOutside
  };
},
...

However, that said whether or not the component is to be bypassed is the kind of thing that you, as UI designer, should be explicit about in the owning component. I'm not sure that letting the component decide this on its own is going to yield an as-intentional, as-obvious UI implementation.
Can you explain the use case you had in mind?

closing due to inactivity


Adjusted schema.org markup on blog detail page

Added

publisher property

Changed

name to headline
dateCreated to datePublished

Replaced

standalone author with inline definition

1. Why is this change necessary?
Because the Google Structured Data testing tool had 4 errors and 2 warnings on the blog article page. After the change the errors are gone.
2. What does this change do, exactly?
It adds, changes and replaces some schema.org markup on the blog detail template
3. Describe each step to reproduce the issue or behaviour.
See results (errors / warnings) here: https://search.google.com/structured-data/testing-tool?hl=de#url=https%3A%2F%2Fwww.shopwaredemo.de%2Fblog%2Fnews-sit-amet
4. Please link to the relevant issues (if any).
5. Which documentation changes (if any) need to be made because of this PR?
6. Checklist

[x] I have written tests and verified that they fail without my change
[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

Hello,
thank you for creating this pull request.
I have opened an issue on our Issue Tracker for you. See the issue link: https://issues.shopware.com/issues/SW-20583
Please use this issue to track the state of your pull request.

Hey @marvinschroeder,
thanks for your contribution. Please remember to sign the CLA.

Hi @marvinschroeder, your PR was merged in 12f77e0fd6eb73b66a9932277a53d7930447717a, thank you very much for your contribution! 💙 👍
Please accept our apology for taking so long- :(


[PSR-2] Namespace issues

<?php namespace App\Models;

using "--level=psr2", namespace remains on the same first line of "<?php" and namespace "App\Models" becomes "app\Models"
<?php namespace app\Models;

any suggestions?

It's not a psr-2 rule to move it. It just says that if it is moved, there should be a blank line first.

Adding this symfony level fixer to the mix should do what you want though: single_blank_line_before_namespace.

"single_blank_line_before_namespace" doesn't work using level=psr2.. needs
symfony
2015-06-14 23:21 GMT+02:00 Graham Campbell<EMAIL_ADDRESS>
Adding this symfony level fixer to the mix should do what you want though:
single_blank_line_before_namespace.
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/1264#issuecomment-111876808
.

No, I'm saying, you need to enable this fixer yourself...

--level=symfony seems to do everything I need.

moves namespace on separate line
removes unused uses statements
puts opening braces on the next line

thanks.
2015-06-14 23:21 GMT+02:00 Graham Campbell<EMAIL_ADDRESS>
Adding this symfony level fixer to the mix should do what you want though:
single_blank_line_before_namespace.
—
Reply to this email directly or view it on GitHub
https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues/1264#issuecomment-111876808
.

I wasn't suggesting using the symfony level, though if it does what you want, that's fine. Please close this.


Playground : edit inline / delete input message

Edit and delete icon needs to be implemented:

Edit : Message become editable
Delete : Message is deleted
After these 2 actions the playground is reloaded

Partially linked to issue #109 (For the link/anchor part), and I think that the Edit button should call exactly the same function (At least for intents)


Add the ability to specify a custom socket

As per your complaints on my PR #131 I have implemented the ability to specify a custom socket object. There are minimal code changes (about 3 lines, not including the indenting). I've tested the code using the example as well as my own projects, and there is no impact on existing code.

Can you provide a use case for using proxy?

If you're working with a lot of accounts and want to proxy for... various reasons
I've found a better solution than using proxies though, and this code is really rough. I'm going to abandon this for now.

If you're working with a lot of accounts and want to proxy for... various reasons

I am working with many different accounts. They are all legitimately my accounts and have occasionally been trade banned (sometimes scammers dump items to one of my accounts when my code can't find any suspicious activities for those items/accounts via steamrep and other sources) and subsequently (and insanely fast) unbanned by Steam Support (<1 day) even though I clearly stated that this involved automatic trading bots in the Support Ticket. Never lost an account or a whole batch of accounts with this; acting from only two different IP addresses.
So I'm not sure why you would need this, but it doesn't sound as if what you're doing is allowed by the Steam EULA (hell, what I'm doing is in a gray area or even forbidden and even my accounts never got perma banned).

I have explicit permission at this point for what I'm doing so it's no longer relevant. There doesn't seem to be any built-in IP limits, though.
At the time I was doing this due to Dota 2 restrictions on requests per IP for replays, however, these days it's easy enough with the cloud to grab a new IP address when needed.

For me blocked 10 accounts, here support does not answer already about two months, I do not know that to do.


UDP Client Example

No example code exists for using UDP functionality in the influxdb-python client.  Additionally, the documentation is sparse as to what is contained in the packet to be written.

There is one example here: http://influxdb-python.readthedocs.org/en/latest/api-documentation.html
# using UDP
client = InfluxDBClient(host='<IP_ADDRESS>', database='dbname', use_udp=True, udp_port=4444)

But it is a little tough to find and could easily be repeated in the main readme as well.

Usage of the client does not change if you are using UDP. What else could be documented? Closing unless you have suggestions. Feel free to comment again.


Issues with API Gateway

So I recreated my backend successfully, but now my API Gateway is wonk. I'd like to access it by guests and users, but restrict its access to only be readable by users. I'm currently getting the [Error] Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin. error. I previously had this because of permissions. I don't remember how I fixed it, but I thought I'd ask you guys how to fix it.
$ amplify add api
? Please select from one of the below mentioned services: REST
? Provide a friendly name for your resource to be used as a label for this category in the project: blogAPI
? Provide a path (e.g., /book/{isbn}): /
? Choose a Lambda source Create a new Lambda function
? Provide an AWS Lambda function name: blogAPILambda
? Choose the runtime that you want to use: NodeJS
? Choose the function template that you want to use: CRUD function for DynamoDB (Integration with API Gateway)
? Choose a DynamoDB data source option Create a new DynamoDB table

Welcome to the NoSQL DynamoDB database wizard
This wizard asks you a series of questions to help determine how to set up your NoSQL database table.

? Please provide a friendly name for your resource that will be used to label this category in the project: blogDB
? Please provide table name: blogDB

You can now add columns to the table.

? What would you like to name this column: PK
? Please choose the data type: string
? Would you like to add another column? Yes
? What would you like to name this column: SK
? Please choose the data type: string
? Would you like to add another column? Yes
? What would you like to name this column: GSI1PK
? Please choose the data type: string
? Would you like to add another column? Yes
? What would you like to name this column: GSI1SK
? Please choose the data type: string
? Would you like to add another column? No

Before you create the database, you must specify how items in your table are uniquely organized. You do this by specifying a primary key. The primary key uniquely identifies each item in the table so that no two items can have the same key. This can be an individual column, or a combination that includes a primary key and a sort key.

To learn more about primary keys, see:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.PrimaryKey

? Please choose partition key for the table: PK
? Do you want to add a sort key to your table? Yes
? Please choose sort key for the table: SK

You can optionally add global secondary indexes for this table. These are useful when you run queries defined in a different column than the primary key.
To learn more about indexes, see:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.SecondaryIndexes

? Do you want to add global secondary indexes to your table? Yes
? Please provide the GSI name: GSI1
? Please choose partition key for the GSI: GSI1PK
? Do you want to add a sort key to your global secondary index? Yes
? Please choose sort key for the GSI: GSI1SK
? Do you want to add more global secondary indexes to your table? No
? Do you want to add a Lambda Trigger for your Table? Yes
? Select from the following options Create a new function
Successfully added resource blogDBTrigger03315463 locally
Successfully updated resource blogDBTrigger03315463 locally
? Do you want to edit the local blogDBTrigger03315463 lambda function now? No
Successfully added DynamoDb table locally

Available advanced settings:
- Resource access permissions
- Scheduled recurring invocation
- Lambda layers configuration

? Do you want to configure advanced settings? No
? Do you want to edit the local lambda function now? No
Successfully added resource blogAPILambda locally.

Next steps:
Check out sample function code generated in <project-dir>/amplify/backend/function/blogAPILambda/src
"amplify function build" builds all of your functions currently in the project
"amplify mock function <functionName>" runs your function locally
"amplify push" builds all of your local backend resources and provisions them in the cloud
"amplify publish" builds all of your local backend and front-end resources (if you added hosting category) and provisions them in the cloud
Succesfully added the Lambda function locally
? Restrict API access Yes
? Restrict access by? Auth/Guest Users
? Who should have access? Authenticated and Guest users
? What kind of access do you want for Authenticated users? create, read, update, delete
? What kind of access do you want for Guest users? read
Current auth configuration is: userPoolOnly, but identityPoolAndUserPool was required.
Auth configuration is required to allow unauthenticated users, but it is not configured properly.
Successfully updated auth resource locally.
? Do you want to add another path? No
Successfully added resource blogAPI locally

Some next steps:
"amplify push" will build all your local backend resources and provision it in the cloud
"amplify publish" will build all your local backend and frontend resources (if you have hosting category added) and provision it in the cloud

Which Category is your question related to?
Rest API
Amplify CLI Version
4.37.1
What AWS Services are you utilizing?
API Gateway
Lambda
Provide additional details e.g. code snippets
This used to work fine, but the new Amplify backend I created won't allow guests to access it.
/**
 * Gets the project through the API.
 * @param {String} slug  The slug of the project.
 * @param {String} title The title of the project.
 */
export const getProject = async ( slug, title ) => {
  try {
    const { project, error } = await API.get(
      process.env.GATSBY_API_BLOG_NAME,
      `/project?slug=${ slug }&title=${ title }`,
    )
    if ( error ) return { error: error }
    return { project: project }
  } catch( error ) { return { error: error } }
}

CORS?!

@tnorlund When you added auth using the manual configuration flow - did you go ahead with the userpool + identity pool option and turn on access for unauthenticated users? You can update your auth resource and choose those functionalities using the amplify auth update command.
f45c89966b0d:authruletest kaustavg$ amplify auth update
Please note that certain attributes may not be overwritten if you choose to use defaults settings.

You have configured resources that might depend on this Cognito resource.  Updating this Cognito resource could have unintended side effects.

Using service: Cognito, provided by: awscloudformation
 What do you want to do? Walkthrough all the auth configurations
 Select the authentication/authorization services that you want to use: User Sign-Up, Sign-In, connected with AWS IAM controls (Enables per-user Storage feat
ures for images or other content, Analytics, and more)
 Allow unauthenticated logins? (Provides scoped down permissions that you can control via AWS IAM) (Use arrow keys)
❯ Yes
  No
  I want to learn more.

@tnorlund When you added auth using the manual configuration flow - did you go ahead with the userpool + identity pool option and turn on access for unauthenticated users? You can update your auth resource and choose those functionalities using the amplify auth update command.
f45c89966b0d:authruletest kaustavg$ amplify auth update
Please note that certain attributes may not be overwritten if you choose to use defaults settings.

You have configured resources that might depend on this Cognito resource.  Updating this Cognito resource could have unintended side effects.

Using service: Cognito, provided by: awscloudformation
 What do you want to do? Walkthrough all the auth configurations
 Select the authentication/authorization services that you want to use: User Sign-Up, Sign-In, connected with AWS IAM controls (Enables per-user Storage feat
ures for images or other content, Analytics, and more)
 Allow unauthenticated logins? (Provides scoped down permissions that you can control via AWS IAM) (Use arrow keys)
❯ Yes
  No
  I want to learn more.

I don't want unauthenticated logins. They are off. I'd like for guests to have read access through the API, while authenticated users should have read, write, update, and delete accesses.

Unauthenticated logins in the above flow allows for guest access to your backend only if you choose to allow Guest's to access the resource - in your case API Gateway. You can scope down as you have already the scope of the unauthenticated access to just read. Without adding unauthenticated access in your auth-resource, you wouldn't be allowed to add Guest access for your API Gateway resource.

I updated the auth:
$ amplify auth update
Please note that certain attributes may not be overwritten if you choose to use defaults settings.

You have configured resources that might depend on this Cognito resource.  Updating this Cognito resource could have unintended side effects.

Using service: Cognito, provided by: awscloudformation
 What do you want to do? Walkthrough all the auth configurations
 Select the authentication/authorization services that you want to use: User Sign-Up, Sign-In, connected with AWS IAM controls (Enables per-user Storage features for images or other content, Analytics, and more)
 Please enter a name for your identity pool. blogIdentityPool
 Allow unauthenticated logins? (Provides scoped down permissions that you can control via AWS IAM) Yes
 Do you want to enable 3rd party authentication providers in your identity pool? No
 Do you want to add User Pool Groups? Yes
? Select any user pool groups you want to delete:
? Do you want to add another User Pool Group No
✔ Sort the user pool groups in order of preference · User, Admin
 Do you want to add an admin queries API? No
 Multifactor authentication (MFA) user login options: OFF
 Email based user registration/forgot password: Enabled (Requires per-user email entry at registration)
 Please specify an email verification subject: Your verification code
 Please specify an email verification message: Your verification code is {####}
 Do you want to override the default password policy for this User Pool? No
 Specify the app's refresh token expiration period (in days): 30
 Do you want to specify the user attributes this app can read and write? No
 Do you want to enable any of the following capabilities? Email Verification Link with Redirect, Add User to Group
 Do you want to use an OAuth flow? No
? Do you want to configure Lambda Triggers for Cognito? No

I'm still getting the same Access-Control-Allow-Origin error. Is there anything else I can do?

Did you run amplify push post these changes?
Also, since you're getting a CORS error, is your lambda function tied to the API Gateway endpoint adding the CORS header to the response?

Unauthenticated logins in the above flow allows for guest access to your backend only if you choose to allow Guest's to access the resource - in your case API Gateway. You can scope down as you have already the scope of the unauthenticated access to just read. Without adding unauthenticated access in your auth-resource, you wouldn't be allowed to add Guest access for your API Gateway resource.

Did you run amplify push post these changes?
Also, since you're getting a CORS error, is your lambda function tied to the API Gateway endpoint adding the CORS header to the response?

I pushed the changes.
I've added CORS to both API Gateway,

and the lambda function,
// Enable CORS for all methods
app.use( function( request, response, next ) {
  response.header( `Access-Control-Allow-Origin`, `*` )
  response.header(
    `Access-Control-Allow-Headers`,
    `Origin, X-Requested-With, Content-Type, Accept`
  )
  next()
} )

The 'test' in API Gateway works fine, but the client produces the error.

The identity pool supports unauthenticated identities.

I found the problem. The ARN produced by Amplify was broken.
OLD
...
            "Resource": [
                "<ARN>staging/GET/*",
                "<ARN>/staging/GET//*",
            ]
...
}```

*NEW*
```{
...
            "Resource": [
                "<ARN>staging/GET/*",
                "<ARN>/staging/GET/*/*",
            ]
...
}```

@tnorlund how did you discover the ARN generated by Amplify was incorrect? Also where is this ARN resource located?
New to amplify and running into a very similar issue.

@aliciakw The ARN is in API Gateway. The ARN is not incorrect, but the resource is incorrect. Notice how the new resource accepts all paths for get requests. Hopefully this helps.


Requesting support for variadics with varargs in arbitrary but contiguous positions in .d.ts files

Some libraries with variadic methods that use varargs don't always place the parameters at the end of the parameter list. One such example is lodash's assign method whose signature and API documentation is as follows.
_.assign(object, [sources], [customizer], [thisArg])

object (Object): The destination object.
[sources] (…Object): The source objects.
[customizer] (Function): The function to customize assigned values.
[thisArg] (*): The this binding of customizer.

TypeScript does not currently support this use case, and will report the error "A rest parameter must be last in a parameter list."
A way around this is to write an arbitrary number of method declarations (which is what lodash's .d.ts file does); one for each possible length of varargs. As I'm sure is clear, the arity being infinite, there is a concrete limit to how many of these declarations can exist. It also unfortunately "dirtys" the type hinting, making the method look more complex than it is. Lastly, maintaining these kinds of declarations is prone to error.
Edit:
Having thought about this a bit more, I realize the issue may actually lie with the .d.ts file. The documentation for writing declaration files recommends that optional parameters are not supplied as part of a function declaration. A possible fix, then, is to write another declaration with the varargs, and one without.

We have had previous requests for this (not requiring optional/rest params to be last) but I cannot find them via search at the moment...

#1024 seems vaguely related. Maybe that's what you're looking for @danquirk

No I think it was a specific request for optional parameters in the middle of the param list due to some particular JavaScript APIs doing this.

Is it #1360?

That looks like it, thanks. Will close this as a dupe unless there's something unique to your request that isn't captured there.


[CLOUDGA-14378] Add terraform support for YBM users

Can you please add some examples under the examples folder?


make get and post values work with datamodel objects

It would be convenient if get|post_observation_values and get|post_forecast_values  accepted Observation/Forecast objects in addition to observation|forecast_id strings. Maybe a line in each function and then a utility function like below
# in get_observation_values
observation_id = observation_id if isinstance(observation_id, str) else object_to_id(observation_id)

def object_to_id(obj):
    attr = type(obj).__name__.lower() + '_id'
    return getattr(obj, attr)

:/ if we do this, it should apply across the board. So if something expects a site_id, passing a Site will extract the id etc

related to APISession.get_values introduced in #256


Added education section in index.html

Added education section in index.html: Added details about Manav's educational history including GPA, institution name, and the field of study.

This pull request closes issue #18


Intellisense not working

Issue Type: Bug
All plugins are not working including intellisense.. :-(
VS Code version: Code 1.22.1 (950b8b0d37a9b7061b6f0d291837ccc4015f5ecd, 2018-04-06T00:27:19.487Z)
OS version: Windows_NT ia32 10.0.16299

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz (4 x 2400)

Memory (System)
7.81GB (3.53GB free)

Process Argv
C:\Program Files (x86)\Microsoft VS Code\Code.exe

Screen Reader
no

VM
0%

Extensions (21)

Extension
Author (truncated)
Version

better-comments
aar
1.2.1

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

vscode-npm-script
eg2
0.3.3

vscode-great-icons
emm
2.1.30

auto-rename-tag
for
0.0.15

code-runner
for
0.9.3

beautify
Hoo
1.3.0

angular2-switcher
inf
0.1.6

vscode-angular2-emmet
jak
2.0.3

docthis
joe
0.6.0

Angular2
joh
2.16.1

comment
kar
5.0.2

auto-comment-blocks
kev
1.0.1

Angular-BeastCode
Mik
6.0.10

python
ms-
2018.3.1

debugger-for-chrome
msj
4.3.0

vscode-docker
Pet
0.0.26

vscode-icons
rob
7.22.0

addDocComments
ste
0.0.8

code-spell-checker
str
1.6.6

Can you provide more details? Pick a language, like TypeScript. Do you get Intellisense there?

On a heavy load . Intellisense is not working.
And in some unknown cases.

I'm trying to get you to give me more details. Please provide as many details as you can.
What language, specifically? Can you send me a screen recording of the behaviour?

I am using TypeScript,Html

OK let's focus on TypeScript.

Does this issue reproduce if you disable all extensions? Please share some example code and repo steps.


Hide edit sessions view until explicitly shown

This PR fixes https://github.com/microsoft/vscode/issues/156235

Hello


[MRG] Add micro F1 score

F1 micro: Calculate metrics globally by counting the total true positives, false negatives and false positives.
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.f1_score.html


[feature] Add tab to autocomplete file name

While using -pp param it would be useful to have the tab autocomplete function to load the file name.
For instance, I want to use the file brute.force.txt into the param word here:
alterx -p '{{word}}.{{suffix}}' -pp word=brute.force.txt

I think that's because the shell knows when to autocomplete paths usually when they come right after a command or flag. The shell treats "word=brute.for<TAB>" as a single string, so it doesn’t recognize it as a path that needs completing because it's mixed with other text ("word=").
For the workaround, you can set up a simple custom completion script for alterx to handle completions:
# if you're using Bash :)
_alterx_custom_completion() {
    local cur

    cur="${COMP_WORDS[COMP_CWORD]}"
    COMPREPLY=( $(compgen -f -- "$cur") )
}

complete -F _alterx_custom_completion alterx

Thank you.
Works good. But doing source .bashrc gave me a different result than closing the terminal and opening it again.


[31mFATA[0002] address xx.xx.xx.xx: missing port in address

Getting this message when defining an ingress. Tried it with the sample "get-python" and got the same message.
Command issued was: kubeless ingress create route01 --function get-python
On GKE with node version 1.7.8, running kubeless v0.2.3 from windows 10

Same here on MacOSX, GKE with node version 1.7.6 (default), running kubeless head.

The ingress will still fail. Tracking ingress support for GKE with #244

Tried it with a dummy host, and getting this issue. https://stackoverflow.com/questions/45738404/gce-loadbalancer-invalid-value-for-field-namedports0-port-0-must-be-gr
This does not look like a kubeless issue.

This is not the same issue. The PR I have submitted fixes the initial problem. I was able to create ingress using the kubeless client which was not possible before the fix.

It's automatically closed as the PR #380 got merged.

I think this issue is solved.

I was on a tight timeline and I got around the issue with straight K8S ingress. Will try next time.


bskyweb: fetch post thread and profile from AppView (no login); apply labels

Currently, bskyweb tries to fetch profile and post thread content from PDS, using the golang XRPC client, with auth. This works for just a couple minutes, then the XRPC client auth token expires, and is not automatically refreshed.
A quick fix would be to point bskyweb at the AppView directly instead of PDS. These routes don't require auth there.
A related fix to get in would be to parse labels and not embed images in embeds based on some labels. In particular, takedowns, warn, etc. Code should be flexible to the label authority and set of values, so we can make quick/simple policy changes.

@Jacob2161 I'm punting this bad boy to you

Yup, I'll definitely fix this. I actually have a fix for the current xrpc client but I think it might be better to just use AppView as Bryan suggested, since that should be possible now and is more correct.

@Jacob2161 @bnewbold Has this been fixed?

Yes, @bnewbold fixed it!


chore: require ab e2e run to be successful if e2e dir is changed

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 79.007%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
2243

Relevant Lines:
2839

💛  - Coveralls

already addressed


Type mismatch in Renter API

According to this document, the value of "currentperiod" looks a string, however, Sia daemon v1.3.3 returns it as a number like this:
$ curl -s -H "User-Agent:Sia-Agent" http://localhost:9980/renter | jq .
{
  "settings": {
    "allowance": {
      "funds": "8119111750262431730364430380",
      "hosts": 90,
      "period": 12960,
      "renewwindow": 2160
    },
    "maxuploadspeed": 0,
    "maxdownloadspeed": 0,
    "streamcachesize": 2
  },
  "financialmetrics": {
    "contractfees": "529714582534027464540630000",
    "downloadspending": "0",
    "storagespending": "0",
    "totalallocated": "2766512151941273034050102132",
    "uploadspending": "0",
    "unspent": "7589397167728404265823800380",
    "contractspending": "2766512151941273034050102132"
  },
  "currentperiod": 160779
}

Environment

Sia version: 1.3.3
OS: macOS 10.13.5

Good catch. The docs should treat it as a number. Do you mind submitting a PR to remove the quotation marks in the docs? You can do it really quickly using the GitHub editor interface.

Sure.


allow defaut_value if key doesn't exist

allow defaut_value if key doesn't exist

This was superseded by a later refactoring of Marshal. Thanks for the contribution.


Update jQuery to version 3.4.1 in recorder (CVE-2019-11358)

Thanks!

When is this going to be released ?


ValueError: max() arg is an empty sequence怎么解决

Traceback (most recent call last):
File "D:\MockingBird-main\pre.py", line 74, in
preprocess_dataset(**vars(args))
File "D:\MockingBird-main\synthesizer\preprocess.py", line 88, in preprocess_dataset
print("Max input length (text chars): %d" % max(len(m[5]) for m in metadata))
ValueError: max() arg is an empty sequence

Looks like you are in a windows OS.
In README it says "Not compatible with Windows."


Adds TLS support

Hi @repejota
This is my initial commit to implement TLS support as request in https://github.com/repejota/phpnats/issues/121
Its pretty rough at the moment, e.g. its missing the ability to specify a custom CA cert, and does not verify the server's cert.
However I hope it is a basis for further development and an opportunity to check that you are happy with the approach.
Thanks
Tom

@repejota I've updated this PR to allow a custom stream context to be passed in, allowing any of the TLS options to be configured externally to the library. This has been added to the ConnectionOptions class.
Example usage:
<?php
require_once __DIR__.'/vendor/autoload.php';

$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'verify_peer', true);
stream_context_set_option($context, 'ssl', 'cafile', '/var/lib/puppet/ssl/certs/ca.pem');

$connectionOptions = new \Nats\ConnectionOptions();
$connectionOptions->setHost('localhost')->setPort(4443)->setStreamContext($context);
$client = new \Nats\Connection($connectionOptions);
$client->connect();
// Simple Subscriber.
$client->subscribe(
    'foo',
    function ($message) {
        printf("Data: %s\r\n", $message->getBody());
    }
);

// Wait for 1 message.
$client->wait();
$client->close();

So, I've been looking into why this pull request failed. What I suspect might be the cause is a recent commit to NATS (June 21st) adds omitempty to several fields including auth_required. This seems to cause undefined index notices when using NATS 1.2.0. This would normally not be an issue but the PHPUnit XML in this repo converts notices to exceptions.
This code was passing in master, possibly as the Docker image for NATS has been updated since the last commit 68e6d24232e8b5aaf134697e47de2652b3ebff6f (June 9th) which is before the aforementioned commit adding omitempty.
@repejota: Is there a way to -- and would you want to -- restrict which version of the Docker image you are using?
As I can't seem to commit directly here, I've prepared a patch file which @tomponline can apply to fix this.

@repejota this has been updated to work with unit tests on latest gnatsd server now, are you OK to merge?

Hi @repejota have you had a chance to look at this since you've come back from holiday? Would be great to get this merged if you're happy with it. Trying to avoid having to fork. Cheers

Awesome thanks @repejota

Gonna be adding a few things (mostly documentation and help files for
github) and will release 0.9 version.
Again thanks for your work mate! :D
On Wed, Sep 5, 2018 at 2:56 PM TomP<EMAIL_ADDRESS>wrote:

Awesome thanks @repejota https://github.com/repejota
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/repejota/phpnats/pull/122#issuecomment-418720392, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AACPQa4gmMnvi0GGPVZ-tF9OkT_UuwRAks5uX8oPgaJpZM4VZlKJ
.

--
Raül Pérez<EMAIL_ADDRESS>

@repejota Really need this to go live. We are a company using the package but we cant go to production before TLS is supported. :)


Move DEPRECATED to a place where it won't be removed in changelog automation

This would fail change log entry validation for release but that validation doesn't apply to already released packages.

/check-enforcer evaluate


Bring division-ids submodule up to date

This PR brings this namespace package up-to-date. Could you also cut a release for pypi @jpmckinney

Coverage remained the same at 85.507% when pulling 91a3e45b179caa891b8f1272621fad8bf7adda69 on datamade:master into 7d2daae1690e3165d643cee68e02b68da6428f84 on opencivicdata:master.

Thanks! Could this be pushed to pypi.

I think @jamesturk will have to do that. I don't have PyPi access.


absorbed radiation is not zero if LAI is zero

Purpose
Fixes #645
To-do
deal with 1/cos(theta) when theta = pi/2
deal with exp(-K*LAI) when K ~ 1/eps(FT) (from 1/cos(theta)) and LAI ~ eps(FT)
Content
added failing test

[X] I have read and checked the items on the review checklist.

@Espeer5 in case you have any ideas, but I can implement/try and fix

Im closing this PR because for now we are clipping LAI


windows: fsevents v1 is getting built

When doing an install of dependecies on my windows based system, fsevents 1.2.11 attempts to run node-gyp, asking for Python.  When Python is not found  node-gyp sets the exitcode to npm as non-zero. This causes our CI to fail the build.
It seems that fsevents could do a check ahead of time for a darwin based system before calling node-gyp since fsevents is strictly for darwin systems.
Below is the captured output:
><EMAIL_ADDRESS>install C:\Users\jchappell\Projects\wida\alkami.client.widget.myaccountsv3\node_modules\fsevents
> node-gyp rebuild

C:\Users\jchappell\Projects\wida\alkami.client.widget.myaccountsv3\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp info it worked if it ends with ok
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack     at PythonFinder.failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:484:19)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:509:16)
gyp ERR! stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\polyfills.js:282:31
gyp ERR! stack     at FSReqWrap.oncomplete (fs.js:153:21)
gyp ERR! System Windows_NT 10.0.18362
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\Users\jchappell\Projects\wida\alkami.client.widget.myaccountsv3\node_modules\fsevents
gyp ERR! node -v v10.16.3
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok

You should update to chokidar 3 / fsevents 2. fsevents 1 is unsupported.

If it's unsupported, why 1.2.11 was released 12 days ago breaking existing projects where 1.2.9 did not?
Please, fix.

1.2.9 was downloading binaries from AWS to which we no longer have access to. There were no binaries for node 13 which made 1.2.9 unusable for people on node 13. Which is why we released 1.2.11, so that people are able to build it now. If the software doesn’t build on your system, it’s system’s problem. You need python now etc.

2.x doesn’t require any of those, which is why we recommend it.

yep, sorry, I did not look into original report, which relates to missing build dependencies.
However, my Windows system has the build dependencies installed, it reports a different error, which actually does not fail the install.
><EMAIL_ADDRESS>install [...]\node_modules\@babel\cli\node_modules\fsevents
> node-gyp rebuild

[...]\node_modules\@babel\cli\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Traceback (most recent call last):
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py", line 50, in <module>
    sys.exit(gyp.script_main())
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 554, in script_main
    return main(sys.argv[1:])
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 547, in main
    return gyp_main(args)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 532, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 2034, in GenerateOutput
    sln_projects, project_objects, flat=msvs_version.FlatSolution())
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1791, in _GatherSolutionFolders
    return _DictsToFolders('', root, flat)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1744, in _DictsToFolders
    for folder, contents in bucket.items():
AttributeError: 'MSVSProject' object has no attribute 'items'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1

Interesting. fsevents should not build at windows at all. Not sure why this happens -- package.json field "os" should block the compilation. cc @pipobscure

Interesting. fsevents should not build at windows at all. Not sure why this happens -- package.json field "os" should block the compilation. cc @pipobscure

I guess this was my point. If windows had python or not, the package shouldn’t even be trying to compile on Windows because it’s not needed.

yep, sorry, I did not look into original report, which relates to missing build dependencies.
However, my Windows system has the build dependencies installed, it reports a different error, which actually does not fail the install.
><EMAIL_ADDRESS>install [...]\node_modules\@babel\cli\node_modules\fsevents
> node-gyp rebuild

[...]\node_modules\@babel\cli\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
Traceback (most recent call last):
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py", line 50, in <module>
    sys.exit(gyp.script_main())
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 554, in script_main
    return main(sys.argv[1:])
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 547, in main
    return gyp_main(args)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 532, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 2034, in GenerateOutput
    sln_projects, project_objects, flat=msvs_version.FlatSolution())
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1791, in _GatherSolutionFolders
    return _DictsToFolders('', root, flat)
  File "C:\ProgramData\nvm\v12.13.1\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1744, in _DictsToFolders
    for folder, contents in bucket.items():
AttributeError: 'MSVSProject' object has no attribute 'items'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1

Yeah it’s interesting, I would get a successful install but the exit code returned from npm was 1. This set the lastexitcode environment variable to be set. This caused my automated CI build to fail.

We have the same issue.

Running npm ci is causing this node-gyp build in our application which fails in our build environment and locally.
We are using Windows 10 x64.
Here is our dependency tree
`--<EMAIL_ADDRESS>  `--<EMAIL_ADDRESS>    `-- UNMET OPTIONAL DEPENDENCY<EMAIL_ADDRESS>
Here is the log of the fsevents build attempt
><EMAIL_ADDRESS>install C:\dev\projects\our_project\node_modules\fsevents
> node-gyp rebuild

So this is what I have been talking about @pipobscure
https://github.com/webpack/webpack-dev-server/issues/2351
Webpack, and tons of other dependencies cannot just bump fsevents to v2, because they still support node v6 etc. We should not just "ditch" fsevents v1 for at least 3-6 months YET.
Can we get new AWS binaries? Or can you describe what do I need to do to set up an AWS account with the binaries? I understand how to host files, but I don't know which exactly files should lie there.

npm ci ignores the os field in package.json. I've raised a bug in the npm repo. That's why<EMAIL_ADDRESS>still works, where 1.2.11 does not. The package is installed regardless of the os field, and node-gyp is always executed in ci environments. Which causes very old (npm@3) errors to reappear on Windows CI environments.

Bonus: Because 1.2.11 was released as a patch version, I now have to manually rollback each package-lock.json that updates a dependency that has fsevent 1.x as a deep dependency, even if the package that leans on fsevents has not changed (webpack in my case).
This gets really annoying really quickly. Especially when you have a set of shared packages that you actively develop on and update multiple times a day throughout multiple different projects. I think you can imagine this matrix of changes where I constantly have to rollback a package.json.

I know this is annoying, but GYP is a ticking time bomb. All the dependencies really need to upgrade to fsevents v2.

I get that. To help I've also raised an issue with watchpack. But creating a patch release that breaks other environments will give you even more Github issues. On top of that it goes directly against semver. I don't think that is a great idea for the 1.x branch.

I talked with @pipobscure. Initially i've thought he has added binary hosting on AWS. Apparently, the S3 storage was added in 96e1acee756f82cc353a171fecad691041fbbf99 via PR #59.
We (maintainers of fsevents) don't have access to the S3 storage. Which makes it unsafe to use. Adversaries could've replaced binaries with rogue software that steals credentials.
This could be fixed by someone diving into .travis.yml for fsevents v1.2 and deciphering the way fsevents binaries are published. As soon as we understand how they're built, we can set up a new S3 account, and publish binaries for v1.2.11.

In 1.2.10 binaries were still being published to:
https://fsevents-binaries.s3-us-west-2.amazonaws.com
See https://github.com/fsevents/fsevents/commit/909af26846834642c81d19f4148afa3b7557b058#diff-b9cfc7f2cdf78a7f4b91a753d10865a2L27 for more info.
This URL can be changed to a new S3 bucket. Combined with a new environment var in Travis, node-pre-gyp can push to that to the new bucket.

I don't understand. If i'm publishing the binary from macos with node v12, how will a node v13 binary appear?

The old travis.yml ran with all versions of node each then pushing the compile result to S3 somehow.

Travis is configured with a matrix: https://github.com/fsevents/fsevents/blob/909af26846834642c81d19f4148afa3b7557b058/.travis.yml#L7-L14
The AWS SDK is used for publshing:
https://github.com/fsevents/fsevents/blob/909af26846834642c81d19f4148afa3b7557b058/.travis.yml#L44
See the node-pre-gyp docs for more info on setting up the environment:
https://github.com/mapbox/node-pre-gyp#configuring

Sidenote
If you really need npm ci to work on windows environments, you can (temporarily) lock the version in your own dependencies list:
{
  "dependencies": {
    ...
    "fsevents": "1.2.9"
  }
}`

This works until the issue is resolved in a more sustainable manner.

Got the same issue after the upgrade to Angular 9 but with fsevents version 2.1.2 . "chokidar" requires "fsevents": "~2.1.2" that leads to this error.  --no-optional does not work since the chokidar dependency is not optional.

My issue disappeared over the weekend.

If you use yarn, selective dependency resolutions may can save you. e.g. webpack:
{
  "resolutions": {
    "webpack-dev-server/chokidar": "^3.3.1",
    "webpack/watchpack/chokidar": "^3.3.1"
  }
}

is this problem just apper into windows CI enviroments? now i am try to build in a CI/CD Linux eviroments and give some similar errors
i am using node 10.5.1, npm 6.0.1 and fsevent 1.2.11 (i was using fsevents 1.2.9 but the same error is used)
ui-dev/node_modules/.staging npm timing stage:rollbackFailedOptional Completed in 412ms npm timing stage:runTopLevelLifecycles Completed in 76478ms npm verb stack Error: Unsupported platform for<EMAIL_ADDRESS>wanted {"name":"fsevents","version":"1.2.11","description":"Native Access to Mac OS-X FSEvents","main":"fsevents.js","dependencies":{"bindings":"^1.5.0","nan":"^2.12.1","node-pre-gyp":"*"},"os":["darwin"],"engines":{"node":">=4.0"},"scripts":{"test":"node ./test/fsevents.js && node ./test/function.js 2> /dev/null","install":"node-gyp rebuild"},"repository":{"type":"git","url":"git+https://github.com/strongloop/fsevents.git"},"keywords":["fsevents","mac"],"author":{"name":"Philipp Dunkel","email":"pip@pipobscure.com"},"license":"MIT","bugs":{"url":"https://github.com/strongloop/fsevents/issues"},"homepage":"https://github.com/strongloop/fsevents","_resolved":"https://npm-registry.fif.tech/fsevents/-/fsevents-1.2.11.tgz","_integrity":"sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==","_from":"fsevents@1.2.11","gypfile":true,"bundleDependencies":["node-pre-gyp"],"_id":"fsevents@1.2.11","_requested":{"type":"version","registry":true,"raw":"fsevents@1.2.11","name":"fsevents","escapedName":"fsevents","rawSpec":"1.2.11","saveSpec":null,"fetchSpec":"1.2.11"},"_spec":"1.2.11","_where":"/var/tmp/workspace/cmr/cl/apertura/web-ui-dev","_args":[["fsevents@1.2.11","/var/tmp/workspace/cmr/cl/apertura/web-ui-dev"]]} (current: {"os":"linux","cpu":"x64"}) npm verb stack     at checkPlatform (/usr/local/lib/node_modules/npm/node_modules/npm-install-checks/index.js:45:14) npm verb stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23) npm verb stack     at ret (eval at makeNodePromisifiedEval (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promisify.js:184:12), <anonymous>:13:39) npm verb stack     at readJson.then.catch.then (/usr/local/lib/node_modules/npm/lib/install/action/refresh-package-json.js:31:12) npm verb stack     at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23) npm verb stack     at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31) npm verb stack     at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18) npm verb stack     at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10) npm verb stack     at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18) npm verb stack     at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18) npm verb stack     at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:582:21) npm verb stack     at Promise._settlePromise0 (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:614:10) npm verb stack     at Promise._settlePromises (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:693:18) npm verb stack     at Promise._fulfill (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:638:18) npm verb stack     at Promise._resolveCallback (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:432:57) npm verb stack     at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:524:17) npm verb pkgid<EMAIL_ADDRESS>npm verb cwd /var/tmp/workspace/cmr/cl/apertura/web-ui-dev npm verb Linux 3.10.0-1062.12.1.el7.x86_64 npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--verbose" "--userconfig=.npmrc" npm verb node v10.5.0 npm verb npm  v6.1.0 npm ERR! code EBADPLATFORM npm ERR! notsup Unsupported platform for<EMAIL_ADDRESS>wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm ERR! notsup Valid OS:    darwin npm ERR! notsup Valid Arch:  any npm ERR! notsup Actual OS:   linux npm ERR! notsup Actual Arch: x64 npm verb exit [ 1, true ] npm timing npm Completed in 80960ms
i check dependencies with npm list fsevent and another package use lowest version of fsevent like chokidar, any advice?

Just encountered the same issue,
Until it's resolved I have set the command npm ci to ignore errors on windows:
npm ci 2>nul

This allows the build to continue without errors,
It has the risk of other errors not being reported as well, so use if you do the same keep that in mind.

That's a very reckless approach. npm ci was designed to throw an error when the package-lock & package.json are out of sync. It's better to just use npm i then instead.
More info:
https://github.com/npm/cli/issues/558#issuecomment-580392554
Better yet, use this temporary setup:
https://github.com/fsevents/fsevents/issues/301#issuecomment-572607085

Can you guys setup a new AWS S3 bucket?

@guidobouman is there a reason S3 needs to be used? Instead the artifacts could be uploaded to the "Releases" page, for example. That would avoid problems with the maintainers losing access to AWS or another service

Fundamentally v1.x is deprecated. There is no valid reason anyone should use it. Please bug upstream maintainers to upgrade to v2.x which has been available for a year already. Anyone not doing so is a serious threat to security.

Sure, but implementors like webpack@4 can not upgrade because of breaking semver when upgrading dependencies. So yes, for new versions they can implement the newer version. But for current packages this is often not an option. The intermediate option would be to get chokidar@2 to upgrade to fsevents@2, and release a bug fix. But that's the same issue: breaking semver.
Sorry to be so blunt, but in the end this is all caused by you guys breaking builds & semver support in a patch release.

@rajivshah3 S3 is used in the old setup, so this is the easiest route to get an old version to work again.

@guidobouman sorry to be so blunt, but this is caused by people neglecting their dependencies. The only difference between chokidar@2 and chokidar@3 is that the latter has an async close method to stop monitoring. This has been an issue for a year now and we’ve been trying to minimise the impact while asking upstream users to upgrade quickly due to security issues. So if webpack (for any value of webpack) can’t be asked to upgrade for a security issue, when there are only miniscule api differences, then they are part of the problem.

This is not simply a case of neglecting dependencies.
chokidar@3 drops node@6 & node@7:
https://github.com/paulmillr/chokidar/releases/tag/3.0.0
I've brought this up with other maintainers before:
https://github.com/webpack/watchpack/issues/137
So packages that have supported node@6 before can not upgrade.
Yes, node@6 has been EOL for a long time. But that shouldn't mean that a rebuild of an old build (that used to work) should break suddenly because a package has broken support in a patch release. Supporting new versions of node is a new feature change. Dropping old ones is a breaking change. Neglecting this is the reason semver is not widely trusted, and the need for version locks is required.

Don't get me wrong, I want to fix the situation. But every step of the way I am met with resistance. Some resistance is grounded, some is less so.
I'm even offering to do the whole pull request and add support back for the old platforms.

I've tried setting up builds using your comments (thanks for that), but got nowhere. It's complicated. We're open if someone is able to resolve it.

Until S3 is sorted out, I think this can help in the meantime: https://github.com/fsevents/fsevents/pull/322

Non-Mac will no longer attempt building since v1.2.13


Use CDN for downloading data, binaries and miniconda

Currently, data and binaries are hosted on OSF + neuropoly website (as a mirror where OSF is not accessible for some countries).
This approach is suboptimal as:

it requires more maintenance (two URLs to manage)
download could be faster if server is closer to user

A suggestion would be to use a CDN for data, binaries and miniconda.
Related to #2403

The advantage to the current approach is that we have some redundancy.
We could also make a Github project for each binary/data package we need and use Github Releases as our CDN. Github is less blocked around the world than what we're using now.
I think we can probably eventually package everything -- the data, the binaries -- as python packages, and then we can trust in PyPI's CDN and there's minimal maintenance on our end -- all we need is to run twine somewhere, and as we saw this week in https://github.com/neuropoly/ivado-medical-imaging/pull/217 we can fully automate that.

i'm not sure i understand where physically the data/binary would be, and how we would maintain them.

https://pypi.org/sponsors/

PyPI uses Fastly's CDN to quickly serve content to end-users, allowing us to minimize our hosting infrastructure and obscure possible downtime.

So, files get uploaded to PyPI's core mirrors and are stored there -- probably in the US? When a request comes in for a user via Fastly it hits Fastly's servers, which are scattered around the world, and if those servers have that file cached they return it, if not they go talk to PyPI's core mirror first, download it, then relay it to the user.
(if we're worried about slow/blocked downloads in certain countries then it's important to note that Fastly only has one mirror in China and two in Africa and none in Russia/north Asia.)
Other CDNs work the same way. They're basically just automated mirrors, doing what we're currently doing by hand but on-demand, and usually they're paired with high bandwidth datacenters.

I just did some experiments and found that Github has a CDN too. Here in Canada, Github serves from lb-*-iad.github.com (eg lb-140-82-114-4-iad.github.com); from Germany, it serves from lb-*-ams.github.com(eglb-140-82-118-4-ams.github.com`). "iad" is somewhere in the US according to MaxMind, and "ams" is short for Amsterdam -- Amsterdam has become something of a big data hub lately.

Putting it on github on the other hand, I don't see a problem with that. If anything it's improving traceability at the same time.

I'm not a huge fan of storing arbitrary data on PyPI, it's not very nice.

Why not? What have you run into with it?

And it's not arbitrary data, it's key software components of the project. Even the neural network models are just compiled binaries for an unusual processor architecture by another name.

I think we can close this issue. We now have our data and binaries stored on GitHub, and https://github.com/spinalcordtoolbox/spinalcordtoolbox/issues/2669 covers the possibility of using PyPI to host dependencies.


Fix signing build BotBuilder-DotNet-Signed-daily #190814-1

Broken on internalsvisibleto. https://fuselabs.visualstudio.com/SDK_v4/_build/results?buildId=75247&view=results
...from PR [Botkit] Add Twilio adapter port #2290.
https://github.com/microsoft/botbuilder-dotnet/pull/2290

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1

:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.Luis.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.AI.QnA.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.ApplicationInsights.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Azure.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.Dialogs.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Builder.TemplateManager.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Configuration.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Connector.dll compared against version 4.3.1
:heavy_check_mark: No Binary Compatibility issues for Microsoft.Bot.Schema.dll compared against version 4.3.1


All-up review prior to release to main

Migrated from GitLab: https://gitlab.com/meltano/sdk/-/issues/69
Originally created by @aaronsteers on 2021-03-29 19:13:55

Before releasing 0.1.0 and merging to main, we should do one more all-up code review.

View 5 previous comments from the original issue on GitLab


Upload failed: Certificate is not valid (Cannot read properties of null (reading '1'))

Discussed in https://github.com/ZoeyVid/NPMplus/discussions/841

Originally posted by shedowe19 May 28, 2024
I become the Error of Certbot Certs and Custom Certs when i import the Cert...
Please Help me.

should be fixed now


fix(fx-2413): handles empty state for shows/booths without artworks

The type of this PR is: Bugfix
This PR resolves FX-2413
Description
Pretty much the same implementation as web

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)
[x] I have added a CHANGELOG.yml entry or my changes do not require one.

Perfect-o.


Update Makefile

The tests folder was renamed to examples. I made this change also in the makefile

Thanks so much for this @flashspys


Feat paypalpayment detail

Creates a paypal-payment detail for messages, so that the paypal bot can be used more easily (paypal bot adaptations pending)

It's possible to enter a negative price (or a price of 0)
"Who pays" can't be selected unless all other fields have content
the receiver id should be checked to be an actual email address
"Who pays" is an unclear label, is this supposed to be the connection the payment is for? Or is this a selection for who will pay any additional payment fees?

If it's supposed to select the connection the payment is for, it should not show owned needs - with owned needs it's confusing, especially if there is only one connection.
If it's supposed to specify who will pay additional fees, it would be better to just have a "you"/"them" selection instead of showing specific needs. In this case a need selection is missing.


Anyone have a sample script to simply create a new folder in datacenter?

Hello,
I'm facing a strange issue. Maybe I'm doing it wrong, but I'm trying to create a folder into a DC if the folder is not found in a first place:
    vm_folder = "shuttle"
    dc = content.rootFolder.childEntity[0]
    test_folder = get_obj(content, [vim.Folder], vm_folder)
    if test_folder is None:
        print "here:", test_folder
        vim.FileManager.MakeDirectory(name=vm_folder, datacenter=datacenter_name, createParentDirectories=True)

I don't understand why I'm having the following error:
  File "/usr/local/lib/python2.7/dist-packages/pyVmomi/VmomiSupport.py", line 560, in __call__
    return self.f(*args, **kwargs)
TypeError: _InvokeMethod() takes at least 2 arguments (1 given)

As per the documentation I'm providing 3 arguments (one mandatory and two optional), but the python error tells me I'm only providing 1.
I've been looking around, and there is no example of how use this feature.
Many thanks in advance for your help.

i'll soon upload an example to create folders under a desired datacenter.

Hi,
I have a issue too with this function, it seems there is a problem with parsing argument.
I have the following code :
  ..
  print type(datacenter)
  file_manager.MakeDirectory("[datastore1]/myvm/", datacenter)
  ...

Here the error and ouput :
<class 'pyVmomi.VmomiSupport.vim.Datacenter'>

File "myapp/vmware/vim.py", line 109, in manage_volumes
    file_manager.MakeDirectory("[datastore1]/myvm/", datacenter)
  File "/myapp/.venv/fabenv/lib/python2.7/site-packages/pyVmomi/VmomiSupport.py", line 560, in __call__
    return self.f(*args, **kwargs)
  File "/myapp/.venv/fabenv/lib/python2.7/site-packages/pyVmomi/VmomiSupport.py", line 374, in _InvokeMethod
    map(CheckField, info.params, args)
  File "/myapp/.venv/fabenv/lib/python2.7/site-packages/pyVmomi/VmomiSupport.py", line 949, in CheckField
    % (info.name, info.type.__name__, valType.__name__))
TypeError: For "name" expected type str, but got vim.Datacenter

Fatal error: One or more hosts failed while executing task 'process_run_vmware_item'

Underlying exception:
    For "name" expected type str, but got vim.Datacenter

Aborting.
1 failure(s) out of 0.

Do you have any ideas ?

Thanks to @chinmayb  a new pull have been done on github (https://github.com/vmware/pyvmomi-community-samples/pull/223).  This pull is perfect for creating physical folders. The problem is I need to create logical folders.
From @chinmayb example, it enables physical folders as shown bellow:

The challenge is to create logical folders:

I believe, the way to achieve that is using vim.FileManager.MakeDirectory function.
Kind regards.

@3pr0mpt :  As per that doc,
"This managed object type provides a way to manage and manipulate files and folders on datastores" if you use "vim.FileManager", the folders will be created on to the datastore,
something like this
content.fileManager.MakeDirectory("[datastore1]/foldername", dc_obj, createParentDirectories=True)

@3pr0mpt you want VM folders, Will update my patch.


md-tabs: scroll shouldn't be visible on mobile

What is affected?
Component
Description
There is no scroll in specs: https://m3.material.io/components/tabs/guidelines#b0e3794c-059f-41e2-87a6-fe2498fc7fe8

Reproduction
not applicable
Workaround
not applicable
Is this a regression?
No or unsure. This never worked, or I haven't tried before.
Affected versions
1.3.0
Browser/OS/Node environment
Chrome 121.0.6167.187
Windows 11

Shouldn't this be left to the developer to decide?
In the specifications GIF image you provided it's easy to tell it can be scrolled because the text is cropped, but in some other cases it may not be that obvious and the scrollbar (which is furtively shown on mobile devices) gives a hint to the users that the area can be scrolled.

Shouldn't this be left to the developer to decide?
In the specifications GIF image you provided it's easy to tell it can be scrolled because the text is cropped, but in some other cases it may not be that obvious and the scrollbar (which is furtively shown on mobile devices) gives a hint to the users that the area can be scrolled. Without it they may lose a chance to know that there are more options to look at on the right.

Actually, in https://m3.material.io/components/tabs/guidelines#e8be085b-7b39-4dbe-b8ec-cfa15c8d809a is specified that
"When using scrollable tabs, the first visible tab should be offset by 52dp from the left side of the device for both web and mobile." , precisely to indicate that it is scrollable
so the scrollbar can be omitted, at least on mobile. on the web, however, it should be possible to modify it, as the standard one is unsightly

Speaking from memory, I'm pretty sure whether or not a scrollbar appears is dependent on the browser, OS, and user preferences. For example, in Chrome on my Android Pixel, a scrollbar does not appear on the tabs page.
We use overflow: auto, which tells the browser to only display a scrollbar if the content is overflowing. In practice, how browsers implement this UX varies between browsers and platforms (Chrome on Windows has different scrollbar behaviors compared to Chrome on Mac OS).
You mentioned in your issue the platform is Chrome on Windows. Is there a mobile device that is displaying unexpected scrollbars?


Select Product

As a vendor
I want customers to select products
So that I can give them an incentive to put money in the machine
There are three products: cola for $1.00, chips for $0.50, and candy for $0.65.
When the respective button is pressed and enough money has been inserted, the product is dispensed and the machine displays THANK YOU.
If the display is checked again, it will display INSERT COIN and the current amount will be set to $0.00.
If there is not enough money inserted then the machine displays PRICE and the price of the item and subsequent checks of the display will display either INSERT COIN or the current amount as appropriate.

VendingMachine.Dispense(sku)

[ ] Enough money
[ ] Not enough Money, no coins inserted
[ ] Not enough money, coins already inserted


port: Better binary data support in Expression/LG functions

Fixes #3385
Details
Replace Buffer operations with TextDecoder/TextEncoder and other libraries.(btoa-lite)
Support binary input for prebuilt function string
Now, string would support converting a binary object into a normal string with UTF-8 decoding.
For example:
string(binary('hello'))  -> 'hello'
Refine fromFile
Originally, fromFile accepts only one parameter that refers to the file path. The step is as follows:

Find file
Read file with string stream and get the string result
Evaluate the text

In this PR, we introduce the second parameter of fromFile.
Its value could be: evaluated (default), raw or binary
So the change of this function is:
fromFile(path: string) ->
fromFile(path: string, format: 'evaluated'(default) | 'raw' | 'binary')
raw format
In some situations, users do not want to evaluate the text, and just want to keep the original content text.
Example:
There is a file, xx.txt, content is:
hi ${name}

Original, user could use fromFile('xx.txt') to get hi jack, hi Lucy,etc. according to the memory/properties passed in.
But there is no way to get the original text.
Now, user could use fromFile('xx.txt', 'raw') to get hi ${name}
binary format
In another situation, the user wants to get the binary result of the file.
Example:
string(fromFile('xx.txt', 'binary'))  => 'hi ${name}'
If you want to evaluate it directly, just append expandText function:
expandText(string(fromFileBinary('xx.txt')))  => 'hi Jack', 'hi Lucy' ...
Another example for Bot builder:
For Bot response, if the user wants to send a local image to the client, here is the solution:
# attachmentTemplate
[Attachment
    name = myImageName
    contentType = image/png
    contentUrl = data:image/png;base64,${${base64(fromFile(xx/name.png, 'binary'))}}
]

Additional  change: Migrate all myget feed package to yarnpkg registry in yarn.lock

Another question:
Here is the history: I want to drop the use of Buffer, instead with Third-party library "atob-lite" and "btoa-lite" and TextDecoder/TextEncoder.
Here are the concerns and thinking:
TextDecoder/TextEncoder is introduced into node.js during v8.3, but as a global variable in v11.0, so, in node 10.(Which we should support currently in CI pipeline.), May apply this code:
const util = require('util');
const encoder = new util.TextEncoder();

But in node >= 11 and browser(> IE 11), the below code is enough:
const encoder = new TextEncoder();

There are several options:

Dynamic check the environment and node version, to apply the implements for different platform and versions.
Upgrade our minimum supported node from 10 to 12， which is consistent with Composer.
Use some third-Party libraries, like @sinonjs/text-encoding
Keep Buffer operation.
@joshgummersall what do you think?

It looks like require('util').TextEncoder still works in Node 12+
~ > node -v
v14.16.0
~ > node -e 'console.log(require("util").TextEncoder)'
[class TextEncoder]

I would just use that as it's backward-compatible.

Pull Request Test Coverage Report for Build 659580814

0 of 0   changed or added relevant lines in 0 files are covered.
57 unchanged lines in 6 files lost coverage.
Overall coverage decreased (-0.09%) to 85.014%

Files with Coverage Reduction
New Missed Lines
%

libraries/botbuilder-lg/src/templateExtensions.ts
1
84.48%

libraries/adaptive-expressions/src/builtinFunctions/string.ts
2
88.24%

libraries/adaptive-expressions/src/triggerTrees/node.ts
2
90.51%

libraries/adaptive-expressions/src/functionUtils.internal.ts
8
94.69%

libraries/botbuilder-lg/src/evaluator.ts
14
92.02%

libraries/botbuilder-lg/src/expander.ts
30
74.02%

Totals

Change from base Build 658708963:
-0.09%

Covered Lines:
18790

Relevant Lines:
21054

💛  - Coveralls


After Core update 2024.1.5 Failed setup

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Can you please add more information.
What is the exact error message? Do you have any log information?

Works again.

Works again


Add CI using travis

You might want to look at the quick-and-dirty approach I took in deis/etcd#11. (It's a pain already trying to keep this infrastructure synced up between the multiple projects, but I guess for now making an effort toward standardization is the best we can do.)

Yuo.  Already noticed that PR and was planning to model it after that... but first I need something to test.  :)

Closed by #15


Frontend stuck at displaying "fetching data" when server does not respond

no data is displayed if the server does not respond, just the add $something option


Video not working between Chrome/Firefox and Edge

Browsers and versions affected
Microsoft Edge 40.15063.0.0 (Running in Windows 10 pro Creator's Update)
Chrome Version 57.0.2987.98 (64-bit) (running in Debian Wheezy)
Firefox 53.0.3 (Running in Debian Wheezy)
Latest adapter
Description
Not sure if this is really an adapter issue but I'm hoping that I could get some help here. I am using adapter.js in our RTC project, and things work great except between the given version of Edge and Chrome/FF. Everything seems to work but the videos don't display. I've given a bit more detail here:
https://stackoverflow.com/questions/44708692/webrtc-differing-stream-ids-and-formatting-between-chrome-ff-and-edge
Here are the main issues:

The call can only be initiated by the Edge user, otherwise the transfer of sdp information doesn't complete.

When initiated by Edge user, the full exchange happens, but remote videos can't be seen, which I thought I had narrowed down to a discrepancy in stream ids between the two clients, but I was then informed that stream identification didn't matter much. What I can say further about this is that stream ids produced locally in Chrome are a full 36 character length string, restricted letters and numbers, while the stream produced by edge has dashes incorporated in its stream ids. Remote ids in chrome to chrome have dashes as well, so I'm assuming that there's some conversion of this id when transferred from chrome browsers if it's not in the dashed representation.

One ancilliary issue that I've noticed with Edge is that when the success function fires from the navigator.mediaDevices.getUserMedia function, the video camera starts up, but then immediately shuts down. I have to enable it afterwards through javascript and then obtain stream ids, otherwise chrome/other client won't even get correct stream information of edge's running stream. I was told in my SO post that this is expected behavior in Edge.
I also am not able to get the appr.tc site to work between either Chrome/FF and Edge client.
Steps to reproduce
RTC application between either Chrome/FF and Edge
Currently unable to test Edge to Edge...
Expected results
Remote video display between clients
Actual results
Video element has black screen, no errors given through whole process (after adjusting for Edge's distaste for data channel)

Do you have a chrome://webrtc-internals JSON dump from the failure case? (remember to open that page before making the call)
What I am looking for (see here is whether the full offer-answer cycle completes and the correct ice candidates are exchanged.
Does appear.in work in the same setup?

I had no idea about these tools, I'll get a dump and go through the testing tomorrow at work and see if there's some info worth posting back.
appear.in does work in the same setup, I tested it today, I was really happy to see some proof of rtc working between edge and everything else. Thanks for the tips again!

I've gotten edge to work now, I believe the biggest issue is that edge doesn't support data channels, and I don't think the adapter accommodates for this, for I kept getting error from the adapter for the 'addRemoteCandidate can't be accessed from undefined'.
I'm now struggling a little with edge's handling of video resolution. On the same setups as stated in my first post, when communicating from Edge to browser to any other client, the non Edge client's remote stream's resolution is quite bad... anyone dealt with this before? Both systems are using the same camera, and drivers have been installed for the camera on both.

do you remember the line where the exception happens? addIceCandidate could be a bit more robust here, I think the following piece of code shows the problem:
var sdp = "v=0\r\no=-<PHONE_NUMBER>14521964 2 IN IP4 <IP_ADDRESS>\r\ns=-\r\nt=0 0\r\na=msid-semantic:WMS *\r\nm=application 9 DTLS/SCTP 5000\r\nc=IN IP4 <IP_ADDRESS>\r\na=ice-ufrag:someufrag\r\na=ice-pwd:somelongpwdwithenoughrandomness\r\na=fingerprint:sha-256 8C:71:B3:8D:A5:38:FD:8F:A4:2E:A2:65:6C:86:52:BC:E0:6E:94:F2:9F:7C:4D:B5:DF:AF:AA:6F:44:90:8D:F4\r\na=setup:actpass\r\na=mid:data\r\na=sctpmap:5000 webrtc-datachannel 1024\r\n";

var pc = new RTCPeerConnection();
pc.setRemoteDescription({type: 'offer', sdp: sdp})
.then(() => {
  return pc.addIceCandidate({sdpMid: 'data', candidate: 'candidate:702786350 1 udp 41819902 <IP_ADDRESS> 60769 typ host'})
})
.then(() => {
  console.log('yay')
}, (e) => {
  console.error(e);
});

shouldn't be fatal but this needs to check the m-line is not rejected :-/


Update and correct owo.vc information

Updates owo.vc's link to point to the correct page for API documentation, as well as updates the link text with the full and more accurate name of the service.

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not have more than 100 characters
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[ ] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

It must be safe using and I must be incharge of my properties


Feature/rule equals

Reviewers
@jframos @jesuspg @hmunfru
Description
Correction of the equals function and inclusion of the corresponding tests including the correction of the SecurityGroup test.
Test
tested locally

LGTM

LGTM


Leandojo didn't trace newly created .lean file

I'm using the trace function of Leandojo. The code is as follows:
from lean_dojo import LeanGitRepo, trace

repo = LeanGitRepo("https://github.com/yangky11/lean4-example", "7d711f6da4584ecb7d4f057715e1f72ba175c910")
trace(repo, dst_dir="traced_lean4-example")

This works just fine.
However, then I created a new .lean file in the directory of lean4-example and then uploaded everything to Github. Leandojo didn't trace the new .lean file for me. Locally on my own machine, every theorems in the newly created .lean can be compiled by the Lean4 compiler.
I'm not sure why is this problem happening. I do notice that in build/ir directory there is no .trace or olean file for my newly created .lean file.
Do you know why this is happening? Thanks!

Hi,
Did you push the new file to a GitHub repo? Can you point me to the repo?

The GitHub link is https://github.com/chenyang-an/lean4_example_test with commit number 0454bbe5855cfbebf840db2868f8d10cab0d6a2e.
I directly use the Lean 4 toy example code and one more .lean file to it.
Here is the tracing code:
from lean_dojo import LeanGitRepo, trace
repo = LeanGitRepo("https://github.com/chenyang-an/lean4_example_test","0454bbe5855cfbebf840db2868f8d10cab0d6a2e")
traced_repo = trace(repo)
data = []

print(traced_repo.num_traced_files)
print(traced_repo.get_traced_file('Lean4Example.lean').get_traced_theorems())

print(traced_repo.get_traced_file('Lean4Example_1.lean').get_traced_theorems())

Here is the error
python load_data.py
、2023-11-04 16:13:54.894 | INFO     | lean_dojo.data_extraction.trace:trace:174 - Loading the traced repo from /home/chenyang/.cache/lean_dojo/chenyang-an-lean4_example_test-0454bbe5855cfbebf840db2868f8d10cab0d6a2e/lean4_example_test
2023-11-04 16:13:57,076	INFO worker.py:1633 -- Started a local Ray instance. View the dashboard at <IP_ADDRESS>:8265
 30%|████████████▏                            | 184/620 [00:08<00:13, 31.41it/s](raylet) [2023-11-04 16:14:06,983 E 1959119 1959134] (raylet) file_system_monitor.cc:111: /tmp/ray/session_2023-11-04_16-13-55_357538_1958868 is over 95% full, available space:<PHONE_NUMBER>08; capacity:<PHONE_NUMBER>8496. Object creation will fail if spilling is required.
 75%|██████████████████████████████▌          | 462/620 [00:16<00:02, 57.96it/s](raylet) [2023-11-04 16:14:16,988 E 1959119 1959134] (raylet) file_system_monitor.cc:111: /tmp/ray/session_2023-11-04_16-13-55_357538_1958868 is over 95% full, available space:<PHONE_NUMBER>36; capacity:<PHONE_NUMBER>8496. Object creation will fail if spilling is required.
100%|█████████████████████████████████████████| 620/620 [00:23<00:00, 25.95it/s]
620
[TracedTheorem(theorem=Theorem(repo=LeanGitRepo(url='https://github.com/chenyang-an/lean4_example_test', commit='0454bbe5855cfbebf840db2868f8d10cab0d6a2e'), file_path=PosixPath('Lean4Example.lean'), full_name='hello_world')), TracedTheorem(theorem=Theorem(repo=LeanGitRepo(url='https://github.com/chenyang-an/lean4_example_test', commit='0454bbe5855cfbebf840db2868f8d10cab0d6a2e'), file_path=PosixPath('Lean4Example.lean'), full_name='foo'))]
Traceback (most recent call last):
  File "/home/chenyang/leandojo_project/proplogic/load_data.py", line 11, in <module>
    print(traced_repo.get_traced_file('Lean4Example_1.lean').get_traced_theorems())
  File "/data/chenyang/anaconda3/envs/atpself/lib/python3.10/site-packages/lean_dojo/data_extraction/traced_data.py", line 1474, in get_traced_file
    return self.traced_files_graph.nodes[str(path)]["traced_file"]
  File "/data/chenyang/anaconda3/envs/atpself/lib/python3.10/site-packages/networkx/classes/reportviews.py", line 194, in __getitem__
    return self._nodes[n]
KeyError: 'Lean4Example_1.lean'

Thanks!

This is probably because Lean4Example_1.lean is not actually used by the project. If you run lake build, you wouldn't find it in the "./build" directory.

I see. But why is the file Lean4Example_1.lean not able to be traced by leandojo? ./build is not uploaded so I guess it's not the problem.

LeanDojo only traces files that are actually used

I see. Thanks!

Huge thanks for your quick reply, the following is a minimal example to reproduce the problem using the latest main branch of LeanDojo (v2.2.0).
output: KeyError: 'Mathlib/Data/Relqk2dq38z.lean'
from lean_dojo import *

# my local cache : lean_dojo/leanprover-community-mathlib4-29dcec074de168ac2bf835a77ef68bbe069194c5/mathlib4
# also equal to :
# repo = LeanGitRepo(
#     "https://github.com/leanprover-community/mathlib4",
#     "29dcec074de168ac2bf835a77ef68bbe069194c5",
# )
# traced_repo = trace(repo)

cached_path = os.path.expanduser(
    "/scratch2/nlp/zhuxuekai/reasoning_flow/baselines/.cache/lean_dojo/leanprover-community-mathlib4-29dcec074de168ac2bf835a77ef68bbe069194c5/mathlib4")

build_deps = True
traced_repo = TracedRepo.load_from_disk(cached_path, build_deps)

traced_file = traced_repo.get_traced_file("Mathlib/Algebra/ContinuedFractions/Translations2qx3rbck.lean")
print(traced_file)

I cannot run this example due to /scratch2/nlp/zhuxuekai/reasoning_flow/baselines/.cache/lean_dojo/leanprover-community-mathlib4-29dcec074de168ac2bf835a77ef68bbe069194c5/mathlib4

Thank you for your checking.
I provide more concise sample as follow:
output: KeyError: 'Mathlib/Data/Relqk2dq38z.lean'
from lean_dojo import *
repo = LeanGitRepo(
    "https://github.com/leanprover-community/mathlib4",
    "29dcec074de168ac2bf835a77ef68bbe069194c5", )
traced_repo = trace(repo)

traced_file = traced_repo.get_traced_file("Mathlib/Algebra/ContinuedFractions/Translations2qx3rbck.lean")
print(traced_file)

I finally solved this bug by:
remove all dependencies installed before.
Then:
1. install elan
2. install leandojo from main branch
3. the eof error disappear.

Thank @yangky11  very much for your quick reply!

Great. I'll mark this issue as resolved.


Dropping support for python 3<x<3.6

All code passes on py36, py26, py27

Why won't you drop support for Python 2.6 while you are at it?
It's pretty old.


Update CODEOWNERS to actually assign code

Tickets addressed: #589
Review: By commit
Merge strategy: Merge

Description
It appears none of the files in the repo were being marked as owned. This should assign all files to be owned by BSK reviewers, and enforce that they provide a review. See this for more details on syntax:
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners
Verification
Checked in my test repository that this format will correctly assign ownership of all files. Files previewed on GitHub will show a little lock by the name and list code owners once this change is made; note that our files don't currently show this.

Future work
None.

Will this provide PR approval privileges to just the BSK repo, or to all the AVSlab GitHub repos?  I was wondering about your BSK-RL repo in particular.

No, this is a per repository setting (which can be configured to even apply specific files/directories within the repo if desired)

Ok, I see.  this file is inside the BSK repo, thus it just acts there.  @patkenneally , you see any issues with this?  Looks good to me.

Agreed


Migrate the proxy server tests.

This is based on user_test.py.  But there are some improvements, such as better testing of the edit post handler.  I will also go back to user_test.py to improve it after this.

@jpevarnek to take a look too

I had a couple of random nits, but the structure and asserts look fine to me!

Reviewed 1 of 1 files at r1.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

ufo/proxy_server_test.py, line 11 [r1] (raw file):
You probably don't need a lot of this. I've been slowly cleaning it up in my tests, but you should be able to get rid of each of the following imports:
import os
from flask.ext.testing import TestCase
import json
from . import app
from . import db
as well as the BASE_DIR constant.

ufo/proxy_server_test.py, line 103 [r1] (raw file):
Nit: Indent

ufo/proxy_server_test.py, line 144 [r1] (raw file):
Nit: Indent

ufo/proxy_server_test.py, line 159 [r1] (raw file):
Nit: Indent

Comments from the review on Reviewable.io

Thanks for the review!

Review status: 0 of 1 files reviewed at latest revision, 4 unresolved discussions.

ufo/proxy_server_test.py, line 11 [r1] (raw file):
Done, great tip.  But still need the os.

ufo/proxy_server_test.py, line 103 [r1] (raw file):
Done.  Is travis catching this, or something it can do?

ufo/proxy_server_test.py, line 144 [r1] (raw file):
Done.

ufo/proxy_server_test.py, line 159 [r1] (raw file):
Done.

Comments from the review on Reviewable.io

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

ufo/proxy_server_test.py, line 11 [r1] (raw file):
Out of curiosity, what for? I was able to remove it in mine without an issue once the BASE_DIR constant was removed.

ufo/proxy_server_test.py, line 103 [r1] (raw file):
Hmmm, I'm not sure. Landscape would catch it, but it has been acting up recently. I've been trying to track the progress, but basically some things went haywire, and the sole developer on the project got in a car accident, so he has been unable to fix things and get it back up and running lately. If it continues to be a problem then I'll start looking into another tool to monitor code health and general lint errors.

Comments from the review on Reviewable.io

Review status: 0 of 1 files reviewed at latest revision, 4 unresolved discussions.

ufo/proxy_server_test.py, line 11 [r1] (raw file):
Done.  Removing os this time works!  Maybe I was looking at the wrong errors.  Thanks for following up on this.  :)

Comments from the review on Reviewable.io

I've tried to only mention things once as I saw them, sorry if I repeated myself a bit.  In general, just a couple comments on the scope of unit testing, and it looks like we use the model in a few places we do not have to, but otherwise looks good.

Reviewed 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 11 unresolved discussions.

ufo/proxy_server_test.py, line 53 [r3] (raw file):
Same question as usual, not sure what this is actually testing.

ufo/proxy_server_test.py, line 65 [r3] (raw file):
This is testing that an arbitrary id we chose is in the response data for a specific route, I'm honestly not sure here what kind of errors we want to catch.

ufo/proxy_server_test.py, line 69 [r3] (raw file):
I'd feel a lot better if we got the data directly from the test data instead of first initializing a real model here.

ufo/proxy_server_test.py, line 81 [r3] (raw file):
Hardcoded id should not be necessary.

ufo/proxy_server_test.py, line 91 [r3] (raw file):
Should be a separate test
To expand a bit more on the conversation we had earlier today:
The idea with a unit test should be that we are looking at a single piece of functionality in the code.  In this case, I'd ever say testAddProxyServer might be a better name as it asserts that the proxy server gets added by the test.  Having another test, testRedirectsToListAfterAddingServer (I suck at naming stuff, can you tell) that checks the redirect would be useful as well, but I don't think it makes sense here.
go/unit-test-practices#behavior-testing seems to expand upon this a bit

ufo/proxy_server_test.py, line 98 [r3] (raw file):
I'd feel a LOT better if we were not relying on hardcoded IDs in the data we create.

ufo/proxy_server_test.py, line 139 [r3] (raw file):
Should be a separate test

Comments from the review on Reviewable.io

Review status: 0 of 1 files reviewed at latest revision, 10 unresolved discussions.

ufo/proxy_server_test.py, line 53 [r3] (raw file):
This is to verify that the list page is actually gotten.  i.e. asserting on a couple of text elements on list page.  Dropping them, and I am open to any other suggestions.

ufo/proxy_server_test.py, line 65 [r3] (raw file):
Changed to asserting on the route will render the appropriate html.

ufo/proxy_server_test.py, line 69 [r3] (raw file):
Done.  Was doing it just to make things a bit cleaner.

ufo/proxy_server_test.py, line 81 [r3] (raw file):
Done.

ufo/proxy_server_test.py, line 91 [r3] (raw file):
That's a great link for behavioral testing, thanks!  But I think it makes more sense to keep the redirect assert here because it's on the same code execution path.  For a counter example, the get parameter triggers a different execution flow, thus deserving to have a separate test (which we do have).  Also, this is what the user_test.py is also doing.
Changed the name.  But it breaks the pattern of names that's already in place.

ufo/proxy_server_test.py, line 98 [r3] (raw file):
In this case, I'm not sure I understand why using the pre-defined ID is not so hot.  But I went ahead to retrieve it back from the db.

ufo/proxy_server_test.py, line 139 [r3] (raw file):
As mentioned above, this is on the same code execution path, so it makes sense to keep it here and test this right away after saving.

Comments from the review on Reviewable.io

Review status: 0 of 1 files reviewed at latest revision, 9 unresolved discussions.

ufo/proxy_server_test.py, line 53 [r3] (raw file):
I think just checking that the expected template is actually the one that got rendered would handle this fine.

Comments from the review on Reviewable.io

Review status: 0 of 1 files reviewed at latest revision, 9 unresolved discussions.

ufo/proxy_server_test.py, line 53 [r3] (raw file):
Thanks for the review.  Done.  To me, this seems only possible by mocking the render_template(), and check its call history.  So, I'm doing this separately in a new test method:
testListHandlerRendersTheListTemplate()

Comments from the review on Reviewable.io

No further comments, :thumbsup: at your discretion

Reviewed 1 of 1 files at r6.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

ufo/proxy_server_test.py, line 91 [r3] (raw file):
Okay, fine with leaving it here for now, I'm still going to assert for unit tests that we should not be having the single test be responsible for too much, even if it is on the same code execution path.  If something breaks, I'd love to be able to tell exactly what is wrong from which test failed.

ufo/proxy_server_test.py, line 98 [r3] (raw file):
It's not that it's that bad, it just does not seem necessary.

Comments from the review on Reviewable.io

Thanks for the review!  Will merge this now.

Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from the review on Reviewable.io