:bug: check country for french dataset with GPS coordinates

Describe the bug
There are some sheep animals assigned to a wrong country; this can be verified by inspecting the GPS coordinates and doing a reverse geocoding
To Reproduce
An example of this are animals coming from this dataset:
# collect geo data from Romanov sheeps
romanov_sheep <- get_smarter_geojson(
  "Sheep",
  query = list(breed = "Romanov")) %>%
    sf::st_cast("POINT", do_split = FALSE)

# display data with leaflet
leaflet::leaflet(
  data = romanov_sheep
  ) %>%
    leaflet::addTiles() %>%
    leaflet::addMarkers(
      clusterOptions = leaflet::markerClusterOptions(), label = ~smarter_id
    )

Expected behavior
Those animals need to be assigned to the proper country (ie RUSSIA* for Romanov sheeps)
Additional context

[x] check samples with reverse geocoding
[x] fix countries and their respective dataset
[ ] import and re-generate IDS (however, this raise again a problem spotted in #73)
[ ] new database release

fixed with aee403d81119f95cefa1c66b43d3d7397755fccb


Which variable to get the name of a player to execute a command? InteractiveBooks 1.5.2

I would like to know in which variable to obtain the name of a player to execute a command
Example:

'<tooltip:&0&nClicando aqui "/examplecommand"><run command:/daritems %player_name% ativacaoprime>Click here to run a command'

InteractiveBooks uses PlaceholderAPI placeholders: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki/Placeholders

For player names is %player_name%.

This command is executed by the player, you would have to put an option to force the console to execute the command or simulate a player with op, example:
op: / kit% playername% starter

It's not possible since commands are hard-coded into the book data, and it's not a server-side event.


Support zero-prefixed switch names

This PR adds support for switch names that are prefixed with 0. It goes up to 1000, e.g. a switch named 001 will correctly be relayed to PinMAME as 1, or 099 as 99. But it won't work for let's say 0001, in this case we'll do a normal lookup, and print an error if the ROM doesn't have a switch alias named 0001.
The implementation is somewhat hacky. We just add zero-prefixed references to the lookup tables when registering the strings and keep the rest of the code "simple". We could also have added another int-based lookup table that would work for any number. @jsm174 let me know if you prefer the latter.
See also freezy/VisualPinball.Engine#430 for the same feature for coils.
This PR also adds a new s_spawn_ball event that adds a ball on the playfield for debugging.

The implementation is somewhat hacky. We just add zero-prefixed references to the lookup tables when registering the strings and keep the rest of the code "simple". We could also have added another int-based lookup table that would work for any number. @jsm174 let me know if you prefer the latter.

Looks good!  I would probably prefer the later just to be cleaner and less hacky.


Doesn't work on jdk 15

Figure out why and fix it.
Also, I believe the default jdk on digitalocean's ubuntu 20.04 image is 8; hence I've been using that in development personally. We should probably change the provisioner script to use jdk 11 instead.

I've added a note about this to the Requirements section, but I'll leave this issue open since I'd still like to find out what's going on with jdk 15. It's slightly inconvenient for me since jdk 15 hasn't hit Arch Linux's official repos yet, but I'll get around to it... some time.
One person said jdk 15 worked fine for them, so maybe we won't need to do anything.

Perhaps this was an issue with Crux. I've added a link in Biff's requirements section that goes to Crux's requirements section, which has a note about JDK 16 and some other stuff.


Message box usage question

Trying to use message boxes and found that by default when message box is shown - all other content will still work. So I have two questions:
1 How to disable everything on the screen except message box?  I mean disable clicking for all objects except message box.
2 How to close message box from action function? The message box is shown even after button press, and it doesn't matter what value was returned from the message box action function (LV_RES_INV or LV_RES_OK).
Could you help me with these questions?

Hi,

I usually do it like this:

static lv_style_t gray_style;
lv_style_copy(&gray_style, &lv_style_plain);
gray_style.body.opa = LV_OPA_70;
gray_style.body.main_color = LV_COLOR_HEX3(0x111);
gray_style.body.grad_color = LV_COLOR_HEX3(0x111);

lv_obj_t * gray_bg = lv_obj_create(lv_scr_act(), NULL);
lv_obj_set_style(gray_bg, &gray_style);
lv_obj_set_size(gray_bg, LV_HOR_RES, LV_VER_RES);

static const char * btns[] = {"Yes", "No", ""};

lv_obj_t * mbox = lv_mbox_create(gray_bg, NULL);
lv_mbox_set_text(mbox, "Are you sure you want to power off?");
lv_mbox_add_btns(mbox, btns, poweroff_mbox_action);
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);

....

static lv_res_t poweroff_mbox_action(lv_obj_t * btns, const char * txt)
{
	lv_obj_t * mbox = lv_mbox_get_from_btn(btns);
	lv_obj_t * gray_bg = lv_obj_get_parent(mbox);
	lv_obj_del(gray_bg);

	return LV_RES_INV;
}

See poweroff_mbox_action

Thank you very much for your answer and the code!


Publish status when the diff isn't reviewable

[Current coverage][cc-pull] is 92.48%

Merging [#108][cc-pull] into [master][cc-base-branch] will increase coverage by <.01%

@@             master       #108   diff @@
==========================================
  Files            50         50
  Lines          2767       2769     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           2559       2561     +2
  Misses          208        208
  Partials          0          0

Powered by Codecov. Last updated by [15cf7e3...4a42c13][cc-compare]
[cc-base-branch]: https://codecov.io/gh/markstory/lint-review/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/markstory/lint-review/compare/15cf7e366b146fd792e2a0eb325213207f22d00e...4a42c134c10aab8efbf4580f750d55ed237e3fe7
[cc-pull]: https://codecov.io/gh/markstory/lint-review/pull/108?src=pr

I did this in a rush (again), so I'm not quite sure if it's the cleanest solution. I can cleanup later if you want.

Looks good. I would be great to get a test for this.

Code coverage didn't re-report after my changes

codecov works in mysterious ways :smile:


Reevaluate using Babel over TypeScript

We currently use Babel to translate our TypeScript to JavaScript. This is cool because of multiple reasons (see below), but it is also inconsistent with some of the choices we made. We use the TypeScript ESLint plugin for linting, for example, which uses the TypeScript compiler internally, and we also use the TypeScript compiler directly ourselves to do type checking. This could potentially lead to weird behavior where these tools understand different features.
We should be fine if we just use TypeScript, because presumably all TS tooling should understand that. And if we agree on this, the current tooling setup might actually be a good choice because of the combination of the advantages of both approaches (see below), although we might want to think about enforcing the "only standard TypeScript" rule somehow, for example using Babel configuration and/or linter rules.
If we choose to unify the tooling (use TS compiler over babel OR use Babel based linting and ??? for type checking), here is a rough overview over that trade off:
Babel > TypeScript:

Potentially more cool modern ES (or not-quite-yet-ES, aka proposed ES) features!
We could even use crazier stuff that is not just for ES backwards compatibility, like babel-plugin-macros
More control over the output

TS let's you specify a target ES version, Babel let's you turn on/off individual features, we have browserslist integration, ...

TypeScript > Babel

Better integration of type checking and the build process

In the "Babel only case" I don't know how to get type checking
In our current setup, type checking is an independent step; if the code is syntactically correct but doesn't type check, we (can) still get a build

This might actually be good sometimes for prototyping, but overall I think it is kind of defeating the purpose of a type checker

The TypeScript based linting can incorporate types in its rules

TL;DR
We should traverse the following decision tree:

Unify our transpiler tooling to avoid weird compatibility traps?

Base everything on Babel?

How to do type checking?!

Base everything on TypeScript?

Stick with our current setup, and potentially find different ways to do so?

Find ways to restrict our code to things that both, Babel and TypeScript understand?
Actually we could also consider switching just the linter from TS to Babel, or even use both, but I guess this decision can still be deferred to when we find good reasons.

I personally would favor 1.ii over 1.i because of the type checking, but I like 2.i even more. As for 2.ii, I don't care, yet.

I unfortunately also favor 2.i. I really dislike having this mix of many different build tools, but AFAIK babel is just better for output generation compared to TS. And AFAIK, type checking (which we obviously want somehow) is only possible with TS right now.
Regarding linters: I don't mind more linters.
Making sure that we only use code understood by TS and Babel is a good idea. But shouldn't this be checked by CI already as that typechecks AND runs babel?
I agree that creating a build without type checking is... meh. But since typechecking and building are two separate steps, typechecking will make the build notably slower, which is a shame. But I wouldn't mind modifying the build:* scripts to include typechecking. Most of the time, we will use other tools (file watchers, ...) to do the building for us anyway.

Making sure that we only use code understood by TS and Babel is a good idea. But shouldn't this be checked by CI already as that typechecks AND runs babel?

That's a fair point, I didn't think about that. :see_no_evil:

@JulianKniephoff  What's the state here? Are you still considering to switch somehow? Otherwise, we can maybe close this?

No. :)


feat: Adding API v2 Bigquery export samples

Description
b/335222583
Note: Before submitting a pull request, please open an issue for discussion if you are not associated with Google.
Checklist

[x] I have followed Sample Format Guide
[ ] pom.xml parent set to latest shared-configuration
[ ] Appropriate changes to README are included in PR
[ ] These samples need a new API enabled in testing projects to pass (let us know which ones)
[ ] These samples need a new/updated env vars in testing projects set to pass (let us know which ones)
[x] Tests pass:   mvn clean verify required
[x] Lint  passes: mvn -P lint checkstyle:check required
[ ] Static Analysis:  mvn -P lint clean compile pmd:cpd-check spotbugs:check advisory only
[ ] This sample adds a new sample directory, and I updated the CODEOWNERS file with the codeowners for this sample
[ ] This sample adds a new Product API, and I updated the Blunderbuss issue/PR auto-assigner with the codeowners for this sample
[ ] Please merge this PR for me once it is approved

@rafaelMurata @RajviM I see this PR refactors the existing v1 samples. Acc to previous discussions, IIUC, we are trying to create new samples in addition to the existing ones right?

@Sita04  @RajviM
I did not participate in the IIUC discussions. I removed the previous samples due to the fact that v1 is no longer available. But if you prefer, I can return to v1 classes, no problem.
com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: This API is no longer available. Please use API V2.

@rafaelMurata Kindly address the test failures.

@rafaelMurata Kindly address the test failures.

Done.
Please try again.

/gcbrun

@Sita04
Please run kokoro again. Thanks.

@Sita04
I had the same problem when trying to create a bigquery dataset in my machine. so I changed it to be the same way as in v1, but apparently I have the same problem. I suspect it is permission in kokoro. Is there anything I can do?
[ERROR] vtwo.BigQueryExportIT  Time elapsed: 1.817 s  <<< ERROR!
com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: The caller does not have permission
Caused by: io.grpc.StatusRuntimeException: PERMISSION_DENIED: The caller does not have permission


Attest trezor-firmare core/v2.6.0 with mac support

Verified build using macOS Ventura 13.3.1 (a) (22E772610a)

Awesome.  I'll tag the current tree at v0.1 then merge and tag at v0.2
After the merge I'll cut a new branch "mac-support" to try some revisions.  I'll test for shasum and grealpath to prevent the need for extra installs or symlinks.  But at this point ChatGPT is may macOS consultant, so might need someone to check my work.

Sure np

OK... see if the mac_support branch works.  I've put a bunch of the version checks into settings.sh.
https://github.com/brianddk/attestation/tree/mac_support
Also, your attest file had mis-matched checksums so I failed it, but hopefully you can get a clean build with the updates.

Ok, I'll see if I can get to it. (at the very latest this weekend).  Been really busy today on my day job.

Sure... thx... BTW... grab latest, Just pushed 519f0c4 with a few more changes.

Here is a screenshot of the checksum.  I'm getting the same value I got before.  I wonder if its because I'm running an M1 chip for my macbook air?

qq:
Should the checksums be the same for each 'trezor-2.6.0.bin' and 'repo/build/core/firmware/firmware.bin' below?
c33e336869964cfb1ef193195894e8b6667955b4ea3044558c380b1787168e38  trezor-2.6.0.bin
d8650a84f119ac1cde2bf7f07471aa8f75cabad90e8e8a99707e9d8fcdf40028  repo/build/core/firmware/firmware.bin
c0b7696ce45ac9fe593eb9af1eb561f66cdf8be4d6a6bea6e538e252843e8a2f  trezor-2.6.0-bitcoinonly.bin
17619deda90e1bf9e3170b15b82c67acd2f1b5e3ebd969199372ed34e2dfbe9f  repo/build/core-bitcoinonly/firmware/firmware.bin


Format Table fails to format tables with alignment

Affected Version: 0.11.2
Formatting a table like
|a|b|
|--:|---|
|1|2|

fails and only produces an error message. Using : for left/right/center alignment is supported by GFM tables.
The error message is only shown in the console log.
/usr/share/code/resources/app/out/vs/workbench/workbench.main.js:10 Cannot read property 'forEach' of null: TypeError: Cannot read property 'forEach' of null
	at MarkdownDocumentFormatter.provideDocumentFormattingEdits (/home/jbushart/.vscode/extensions/yzhang.markdown-all-in-one-0.11.2/out/src/tableFormatter.js:15:15)
	at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:437723
	at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:92953
	at new n.Class.derive._oncancel (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:72291)
	at Object.t.asWinJsPromise (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:92916)
	at e.provideDocumentFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:437677)
	at /usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:449093
	at e._withAdapter (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:445314)
	at e.$provideDocumentFormattingEdits (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:449055)
	at t.e.invoke (/usr/share/code/resources/app/out/vs/workbench/node/extensionHostProcess.js:4:509443)

I would suggest using at least 3 hyphens - (that says ---: rather then --:)


The App is not running when deployed on Bluemix using "cf push" command

I have changed the .env file with Alchemy_api_key, Conversation, Weather and Cloudant   credentials.
In the manifest.yml file I have specified a different name under applications and I have mentioned the services under application as well.
The training data is also present.
The app works fine in the Bluemix console but doesn't respond when deployed to Bluemix.

Can you post the output of  cf logs --recent  please?

urmis-mbp-2:text-bot urmibhakta$ cf logs weather-conversation-bot1 --recent
Connected, dumping recent logs for app weather-conversation-bot1 in org Watson_chatbot1 / space Watson_chatbot1 as<EMAIL_ADDRESS>2016-10-28T09:42:56.83-0400 [RTR/1]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:56.811 +0000] "GET / HTTP/1.1" 304 0 0 "https://console.ng.bluemix.net/dashboard/applications/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:24290 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:140b0b85-82fe-401e-4e01-27f14debda2f response_time:0.023799531 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"361097025"
2016-10-28T09:42:56.91-0400 [RTR/3]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:56.907 +0000] "GET /css/style.css HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:26097 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:795c777f-4734-4d3a-40d4-c9dcea60d05f response_time:0.007115443 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"2650227463"
2016-10-28T09:42:56.98-0400 [RTR/1]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:56.979 +0000] "GET /js/common.js HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:24290 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:1acb2af4-539b-4bfc-4d63-18a007fe440c response_time:0.003326968 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"3248846735"
2016-10-28T09:42:57.05-0400 [RTR/2]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.046 +0000] "GET /js/api.js HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:44222 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:2c75af58-ec4e-4826-5d73-e74a0bca845a response_time:0.005154477 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"2650227703"
2016-10-28T09:42:57.11-0400 [RTR/0]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.110 +0000] "GET /js/payload.js HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:14825 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:89777ff5-d7ac-4dd8-4f5c-6c190455b82d response_time:0.003848518 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"361097649"
2016-10-28T09:42:57.11-0400 [RTR/1]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.109 +0000] "GET /js/conversation.js HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:47298 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:b3779d2e-33f4-4e12-7a85-28d557f966e6 response_time:0.005796436 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"737526607"
2016-10-28T09:42:57.18-0400 [RTR/0]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.180 +0000] "GET /js/global.js HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:15079 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:fc74dc7c-b787-4ab9-6e30-d87168a7e147 response_time:0.005615103 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"2650227831"
2016-10-28T09:42:57.20-0400 [RTR/0]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.198 +0000] "GET /images/icon-sms.svg HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:16972 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:1fd88c9d-9612-4d16-7304-475da1d66a06 response_time:0.006760312 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"361097745"
2016-10-28T09:42:57.20-0400 [RTR/0]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.201 +0000] "GET /images/x.svg HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:15282 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:e68e6cd4-8540-4a65-4d87-f46752831e51 response_time:0.004585248 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"361097761"
2016-10-28T09:42:57.28-0400 [App/0]      ERR Fri, 28 Oct 2016 13:42:57 GMT bot:controller 1. Process new message: {
2016-10-28T09:42:57.28-0400 [App/0]      ERR   "text": "Hello"
2016-10-28T09:42:57.28-0400 [App/0]      ERR }.
2016-10-28T09:42:57.29-0400 [RTR/1]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.245 +0000] "GET /images/icon-fb.svg HTTP/1.1" 304 0 0 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:25374 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:22b2a68a-c5b1-40b4-653e-479656635756 response_time:0.047903217 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"361097937"
2016-10-28T09:42:57.72-0400 [App/0]      ERR /home/vcap/app/lib/api/alchemy-language.js:53
2016-10-28T09:42:57.72-0400 [App/0]      ERR       debug('text: %s, entities: %s', params.text, JSON.stringify(response.entities));
2016-10-28T09:42:57.72-0400 [App/0]      ERR                                                                           ^
2016-10-28T09:42:57.72-0400 [App/0]      ERR TypeError: Cannot read property 'entities' of null
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at /home/vcap/app/lib/api/alchemy-language.js:53:75
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at /home/vcap/app/node_modules/watson-developer-cloud/lib/alchemy_error_formatter.js:34:7
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at Request._callback (/home/vcap/app/node_modules/watson-developer-cloud/lib/requestwrapper.js:82:5)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at Request.self.callback (/home/vcap/app/node_modules/watson-developer-cloud/node_modules/request/request.js:187:22)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at emitTwo (events.js:87:13)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at Request.emit (events.js:172:7)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at Request. (/home/vcap/app/node_modules/watson-developer-cloud/node_modules/request/request.js:1044:10)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at emitOne (events.js:77:13)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at Request.emit (events.js:169:7)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at IncomingMessage. (/home/vcap/app/node_modules/watson-developer-cloud/node_modules/request/request.js:965:12)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at emitNone (events.js:72:20)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at IncomingMessage.emit (events.js:166:7)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at endReadableNT (_stream_readable.js:921:12)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at nextTickCallbackWith2Args (node.js:442:9)
2016-10-28T09:42:57.72-0400 [App/0]      ERR     at process._tickCallback (node.js:356:17)
2016-10-28T09:42:57.75-0400 [RTR/2]      OUT weather-conversation-bot1.mybluemix.net - [28/10/2016:13:42:57.248 +0000] "POST /api/message HTTP/1.1" 502 72 67 "https://weather-conversation-bot1.mybluemix.net/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36" <IP_ADDRESS>:23757 x_forwarded_for:"<IP_ADDRESS>" x_forwarded_proto:"https" vcap_request_id:462ceca0-fe50-4525-73f1-01cc31926be7 response_time:0.502273634 app_id:dd6661dc-678d-40d4-a7c0-86b37f36747c x_global_transaction_id:"737527023"
2016-10-28T09:42:57.77-0400 [App/0]      ERR npm ERR! Linux 3.19.0-33-generic
2016-10-28T09:42:57.77-0400 [App/0]      ERR npm ERR! argv "/home/vcap/app/vendor/node/bin/node" "/home/vcap/app/vendor/node/bin/npm" "start"
2016-10-28T09:42:57.77-0400 [App/0]      ERR npm ERR! node v4.6.0
2016-10-28T09:42:57.77-0400 [App/0]      ERR npm ERR! npm  v3.10.9
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! code ELIFECYCLE
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR<EMAIL_ADDRESS>start: node server.js
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! Exit status 1
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR!
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! Failed at the<EMAIL_ADDRESS>start script 'node server.js'.
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! Make sure you have the latest version of node.js and npm installed.
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! If you do, this is most likely a problem with the text-bot package,
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! not with npm itself.
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! Tell the author that this fails on your system:
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR!     node server.js
2016-10-28T09:42:57.78-0400 [App/0]      ERR npm ERR! You can get information on how to open an issue for this project with:
2016-10-28T09:42:57.79-0400 [App/0]      ERR npm ERR!     npm bugs text-bot
2016-10-28T09:42:57.79-0400 [App/0]      ERR npm ERR! Or if that isn't available, you can get their info via:
2016-10-28T09:42:57.79-0400 [App/0]      ERR npm ERR!     npm owner ls text-bot
2016-10-28T09:42:57.79-0400 [App/0]      ERR npm ERR! There is likely additional logging output above.
2016-10-28T09:42:57.80-0400 [App/0]      ERR npm ERR! Please include the following file with any support request:
2016-10-28T09:42:57.80-0400 [App/0]      ERR npm ERR!     /home/vcap/app/npm-debug.log
2016-10-28T09:42:57.95-0400 [API/7]      OUT App instance exited with guid dd6661dc-678d-40d4-a7c0-86b37f36747c payload: {"cc_partition"=>"default", "droplet"=>"dd6661dc-678d-40d4-a7c0-86b37f36747c", "version"=>"d381838c-8746-415f-afab-d48f29a11843", "instance"=>"227017b8d05b4bba986007d9046199b5", "index"=>0, "reason"=>"CRASHED", "exit_status"=>1, "exit_description"=>"app instance exited", "crash_timestamp"=>1477662177}
2016-10-28T09:43:28.39-0400 [DEA/151]    OUT Starting app instance (index 0) with guid dd6661dc-678d-40d4-a7c0-86b37f36747c
2016-10-28T09:43:46.86-0400 [App/0]      OUT
2016-10-28T09:43:46.86-0400 [App/0]      OUT ><EMAIL_ADDRESS>start /home/vcap/app
2016-10-28T09:43:46.86-0400 [App/0]      OUT > node server.js
2016-10-28T09:43:47.76-0400 [App/0]      ERR Fri, 28 Oct 2016 13:43:47 GMT bot:server Initializing WebUI
2016-10-28T09:43:47.77-0400 [App/0]      ERR Fri, 28 Oct 2016 13:43:47 GMT bot:server Server listening on port: 64583
2016-10-28T09:43:47.93-0400 [App/0]      OUT Uploaded stats { ok: true }
urmis-mbp-2:text-bot urmibhakta$ clear

Urmi : Like we discussed, need to edit the .env file with the WEATHER_URL property empty as well as the cloudant db 'botdb' create.

Fixed #19.  I updated the README instructions as well as enabled botdb to be auto created if one doesn't exist in Cloudant. The Weather URL is fixed as well.


Sentry ASG integration not working for FastAPI

import sentry_sdk
from sentry_sdk.integrations.asgi import SentryAsgiMiddleware
from core.app import app
sentry_sdk.init(dsn="https://xxx.ingest.sentry.io/xxxx")
asgi_app = SentryAsgiMiddleware(app)
raise ValueError()

and
app = FastAPI()
class CustomSentryAsgiMiddleware(SentryAsgiMiddleware):
    def event_processor(
        self, event: "Event", hint: "Hint", asgi_scope: Any
    ) -> "Optional[Event]":
        result_event = super().event_processor(event, hint, asgi_scope)
        route: Optional[APIRoute] = asgi_scope.get("route")
        if route and result_event:
            result_event["transaction"] = route.path
        return result_event

app.add_middleware(CustomSentryAsgiMiddleware)
raise ValueError()

Description
Unable to make Sentry starter code send exceptions (not  HTTPExceptions) from FasAPI starter template.
I followed instructions:
here: https://docs.sentry.io/platforms/python/guides/asgi/
here: https://fastapi.tiangolo.com/advanced/middleware/#httpsredirectmiddleware
And traced related issues & latest contribution to Sentry's github:
https://github.com/tiangolo/fastapi/pull/4603
https://github.com/getsentry/sentry-python/pull/1349
I can confirm that I was able to push errors using basic sentry as described here but this was a workaround from a while back: https://philstories.medium.com/integrate-sentry-to-fastapi-7250603c070f
Any suggestions are appreciated.
macOS
fastapi==0.75.0
Python 3.9.10
sentry-sdk==1.5.8

try this one https://github.com/encode/sentry-asgi

same issue here T_T

Sentry released this: https://docs.sentry.io/platforms/python/guides/fastapi/


Overriding firstDay

Is there a way to make Sunday the first day in the calendar? If not, would you have any interest in supporting this? I think it would just be:
firstDay: this.get('firstDay') || 1,

https://github.com/edgycircle/ember-pikaday/blob/master/addon/components/pikaday-input.js#L18

Opened a PR for this https://github.com/edgycircle/ember-pikaday/pull/41

Hi i am using the add on in my bootstrap application, but it is not allowing me  to set a year range.
{{pikaday-input yearRange="2004,2005" value=Birthday class="form-control input-sm" format='YYYY-MM-DD' placeholder="YYYY-MM-DD" required='required' type="date"}}

@evosweet I tried your example code and it work's exactly as intended, what is not working for you?
Please open a new issue in the future instead of hijacking unrelated ones, thanks.

My apologies,  I am new to this sort of thing. Will do Regards.
On Tue, Jul 21, 2015, 01:58 David Strauß<EMAIL_ADDRESS>wrote:

@evosweet https://github.com/evosweet I tried your example code and it
work's exactly as intended, what is not working for you?
Please open a new issue in the future instead of hijacking unrelated ones,
thanks.
—
Reply to this email directly or view it on GitHub
https://github.com/edgycircle/ember-pikaday/issues/40#issuecomment-123173933
.


BUG: fix inverted splits in quandl data

cc @paulperry, this is the cause of the issues we were seeing the other day.  (All the splits ratios in the Quandl dataset are inverted from what they should be.)

assuming this looks good I will upload the corrections to the s3 bucket for use with the quantopian-quandl bundle so people don't need to re-download the quandl data

LGTM, merge on pass


Added spring arm node

Thanks to @AndreaCatania, Godot now can have a Spring Arm node!
Closes #16508.
The spring arm node is a node that pushes all its children back on his local z considering collision with the environment. If there is a collision, the spring arm will reduce its length.
The spring arm only moves its immediate children, and only the location( rotation control it's left in the hands of the developer ). It supports collision masks and specific body exclusion. It has a shape as property which is the shape that will be cast to do collision avoidance. Multiple shapes are not supported.
This type of node comes in handy when making 3rd person cameras, but it's not bound to that.
Example usage:
A classic responsive 3rd person camera can be achieved by simply adding the spring node as a child of the character, regulating its orientation to match the desired angle, and adding a camera as a child of the spring arm node. This implementation can be modified in various ways, for example, moving the spring arm on the shoulder of the character will achieve a shoulder camera with minimal effort.
The spring arm itself does not move on his own, so it is possible to control its motion , for example, for a racing game it's useful to have damping on the camera movement, and this can be easily achieved by scripting the spring arm node.

corrected the license, also added a method to get the current spring length.

@vnen, yeah, sorry. Fixed

I think that is better if you initialize current_spring_length to 0 and mask to 1 ( that is the same value of all other physics body)
This line is not required : excluded_objects = Set<RID>();
In the header you have to reorder correctly "set" and "get" functions

Done :)

This looks nice, but I'm not sure this should be core, it does not seem like something you will use very often and could be very well provided by a script in the asset library

Most 3D games will probably use this, @reduz

@reduz i think it would be nice to have, i felt the need for this and i think also the people in #16508 did :)
With @AndreaCatania  modifications, this code is simple, lightweight, and very general purpose anyway.

I agree with @Zireael07 and @QbieShay, imho it'd be more convenient to have it core rather than having to import it every time. Moreover, for something as performance-intensive as a spring arm, to me C++ appears as a better choice than gdscript.

This is useful unless the game is in first person or camera movement is deterministic. I don't think I can make unobscured third person view without implementing something similar to this, and doing so takes a considerable amount of time and coding skill. I think it is justified according to this.

Is anyone interested in adding enabling camera lag for location and rotation?
There's camera lag speed and camera rotation lag speed variables and a max camera lag distance.
Bonus points for adding arm debugging helpers.

 I believe you can also use an interpolated camera and have it out of the box

It's working.
I placed a dummy CameraTarget as a child of the spring arm node, then put the interpolated camera somewhere not as a child of the spring arm node. (its location should be close to the controlled mesh, this defines the minimum camera distance.) and set the interpolated camera's target to be CameraTarget.

@QbieShay A lot of users really insisted about this feature, so in the latest PR meeting review we have decided to merge it, as such, I will review it for inclusion.

Gizmos changed recently due to @JFonS , so this will need re-adapting to the new way gizmos are done.
Once conflicts are fixed, I will merge it. I will also probably test it well on a few scenarios and existing demo scenes and possibly do small changes, but I think as is this is good.

@QbieShay you can take the new RayCastSpatialGizmoPlugin as an example on how to convert your gizmo, and ask away if you have any doubts.

This Node is lacking an icon.
I made one by modifying <damped spring joint 2d> but i not sure i should PR it, so just leave it here.

icon_spring_arm.zip


Possible to Assign Namespace?

Consider the following assemblies:
Namespace
Namespace.Other
Namespace.Testing

I would like to have Namespace.Testing handle the tests for both assemblies.  When a test from Namespace.Other is generated, ideally it would go into Namespace.Testing.Other.  I tried playing around with this and didn't have much luck, so wanted to ping here to see if there's a consideration that I am unaware of.  Thank you for any assistance!

FWIW the tests are generating and everything is working, it's that the tests are placed in the root testing namespace Namespace.Testing rather than the ideal Namespace.Testing.Other.  If I move the test to that folder, the related files finds it there, too.  So, it's just the location of the created file that is the issue here.

Good day! I've just implemented the feature and new version should be published soon. Read here: https://github.com/zvirja/ReSharperHelpers#test-project-sub-namespace.
Now you can configure sub-namespace via .editorconfig file. It works really nice. You can even configure it per folder if there is a need 😊
Not sure it's still brings value to you and implemented it because I need it in my new project 😅


Add ShaderInclude class icon

Seemed like a better option than something abstract like a jigsaw edge
Also fixes a few icons where I forgot to add the xml namespace. This didn't bring issues into Godot, but some renderers wouldn't handle those icons properly (e.g. my OS's previews). So it's best to just include that annoying header.

Thanks!


[Followup] Use asList method in some existing configOptions

What changes were proposed in this pull request?
Use asList method in some existing configOptions

Why are the changes needed?
Directly use the asList method in ConfigOptions to get the config list values, and then avoid splitting values by users.

Does this PR introduce any user-facing change?
No.

How was this patch tested?
UTs.

Codecov Report

Merging #18 (f05fe5e) into master (eb15611) will decrease coverage by 0.83%.
The diff coverage is 89.47%.

@@             Coverage Diff              @@
##             master      #18      +/-   ##
============================================
- Coverage     56.27%   55.43%   -0.84%
+ Complexity     1168     1095      -73
============================================
  Files           152      143       -9
  Lines          8397     8034     -363
  Branches        812      784      -28
============================================
- Hits           4725     4454     -271
+ Misses         3408     3324      -84
+ Partials        264      256       -8

Impacted Files
Coverage Δ

...in/java/org/apache/uniffle/server/HealthCheck.java
59.52% <50.00%> (ø)

...rg/apache/uniffle/common/config/ConfigOptions.java
91.37% <100.00%> (+0.47%)
:arrow_up:

.../org/apache/uniffle/coordinator/AccessManager.java
100.00% <100.00%> (ø)

...rg/apache/uniffle/coordinator/CoordinatorConf.java
96.15% <100.00%> (+0.03%)
:arrow_up:

...a/org/apache/uniffle/server/ShuffleServerConf.java
99.28% <100.00%> (+<0.01%)
:arrow_up:

...org/apache/uniffle/server/ShuffleFlushManager.java
76.70% <0.00%> (-1.71%)
:arrow_down:

...e/uniffle/server/storage/SingleStorageManager.java
65.57% <0.00%> (-1.64%)
:arrow_down:

.../apache/uniffle/coordinator/ClientConfManager.java
91.54% <0.00%> (-1.41%)
:arrow_down:

...org/apache/spark/shuffle/writer/AddBlockEvent.java

.../org/apache/spark/shuffle/writer/WriterBuffer.java

... and 8 more

Continue to review full report at Codecov.

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


Assortment of fixes

Remove scroll bar from index.html because they are not necessary and look bad across operating systems.
Fix some typos in index.html, but not all of them.
Add .DS_Store to .gitignore.

Great, thanks!


restic crashes when trying to backup large files (>200MB)

Output of restic version
restic 0.6.1 (v0.6.1-17-g9cd664c)
compiled with go1.7.3 on linux/amd64
How did you start restic exactly? (Include the complete command line)
restic  backup /path_to/Downloads/
What backend/server/service did you use?
Minio
Expected behavior
Be able to make a backup.
Actual behavior
restic backup /path_to/Downloads/
panic: client.PutObject: Put http:///bucket/restic/data/5ea4b6c3389263ae9ecf8940f114db5eb2c6d17d8e31d95b5cda648247bf450f: http: ContentLength=4728031 with Body length 2139917
goroutine 142 [running]:
panic(0x90ec40, 0xc420165520)
/usr/local/Cellar/go/1.7.3/libexec/src/runtime/panic.go:500 +0x1a1
restic/archiver.(*Archiver).saveChunk(0xc420127310, 0x1128d8, 0x2da3cc, 0x18363f13e00000, 0xc420b14000, 0x2da3cc, 0x300000, 0xc4202389a0, 0xbca960, 0xc42007a038, ...)
src/restic/archiver/archiver.go:163 +0x282
created by restic/archiver.(*Archiver).SaveFile
src/restic/archiver/archiver.go:237 +0x38b
Steps to reproduce the behavior
restic backup /path_to/Downloads/
Do you have any idea what may have caused this?
restic crashes when trying to backup large files (>200MB).
We also suspect this problem occurs when the network bandwidth is small (2Mbit) or network equipments (switch/router) are not good.

Whoops, thanks for the report! Restic is able to backup large files (I've heard reports of up to 700GiB), so we need to find out what's going on here. From the error message it looks like as if either the minio server or the s3 client library (minio-go) returned an error. In order to debug this further could you please create a debug log? Please be aware that it may contain sensitive things, such as your minio credentials and file/dirnames. Thanks!

Can you please also repeat your test using the branch update-minio-go (see #1010)?

Thanks for reply, this is a debug-file, and a test is using "update-minio-go".
restic-test-debug.zip

I tried again with  "GODEBUG=http2client=0,http2server=0"
and the error log seems slightly different this time. Hope this helps.
restic-test-debug-with-GODEBUG.zip

Hi @fd0. I'm able to reproduce the issue with a file of 1.2GB with restic 0.6.1 MacOS.
[0:00] 0 directories, 1 files, 1.184 GiB\nscanned 0 directories, 1 files in 0:00\npanic: client.PutObject: Put http://<IP_ADDRESS>:2008/younes/restic/data/bf851fe0ede7ea292691e8fb1e56d0a0a655e36bdb1c3178157fea1f471e16f2: http: ContentLength=4341450 with Body length 0\n\ngoroutine 191 [running]:\npanic(0x50ade0, 0xc420615080)\n\t/usr/local/Cellar/go/1.7.3/libexec/src/runtime/panic.go:500 +0x1a1\nrestic/archiver.(*Archiver).saveChunk(0xc4222e8050, 0x2cffc27, 0x17a13e, 0x933f708300000, 0xc422e20000, 0x17a13e, 0x18a000, 0xc4222dc0b0, 0x7c5ba0, 0xc4201e6048, ...)\n\tsrc/restic/archiver/archiver.go:163 +0x282\ncreated by restic/archiver.(*Archiver).SaveFile\n\tsrc/restic/archiver/archiver.go:237 +0x38b\n

Thanks! I'm having a look now. Sounds like a bug in minio/minio-go...

Hm, I'm unable to reproduce it... I'm unable to reproduce this on Linux with minio RELEASE.2017-05-05T01-14-51Z (from the minio/minio docker container) with a 2.7GiB video file.
@harshavardhana I'm really sorry to bother you again, do you have any idea what's going on here?

Ah, the error message is from the Go http client: https://golang.org/src/net/http/transfer.go#L338

I still don't have any idea what's going on. I've pushed a new commit which adds a bit of debug output to the branch fix-1013, could one of you please run a backup again while writing a debug log, and upload the panic as well as the debug log here? thanks!

@mnesrine Were there any error logs from the minio server? The second log file contains a single HTTP response with HTTP/1.1 500 Internal Server Error...

@fd0 here is the complete DEBUG log + the panic error using the fix-1013 branch
restic-debug-fix-1013.zip
log_error.zip

@fd0 no error in the Minio's log unfortunately.

@harshavardhana I'm really sorry to bother you again, do you have any idea what's going on here?

This i have seen usually happens when Go client saw a network disconnection etc. @fd0 . So i am not sure  either without further debug information.
If there is a consistent reproducer that would be nicer.

@mnesrine Hm, that error seems to be different now, do you maybe have the full output of restic somewhere? The panic/stacktrace you sent is missing a few lines at the top...
@harshavardhana thanks for having a look. A network disconnect would be unusual, at least @yhafri used a local instance of the Minio server, so there's no real network in between...

@fd0 here are the results with two version of Minio using restic fix-1013 (debug mode enabled).
I've also exported the environment variable during the tests:
export GODEBUG=http2client=0,http2server=0
$ minio version
Version: 2017-03-16T21:50:32Z
Release-Tag: RELEASE.2017-03-16T21-50-32Z
Commit-ID: 5311eb22fd681a8cd4a46e2a872d46c2352c64e8

minio-version-5311eb22fd681a8cd4a46e2a872d46c2352c64e8.zip
$ minio version
Version: 2017-05-05T01:14:51Z
Release-Tag: RELEASE.2017-05-05T01-14-51Z
Commit-ID: 40985cc4e3eec06b7ea82dc34c8d907fd2e7aa12

minio-version-40985cc4e3eec06b7ea82dc34c8d907fd2e7aa12.zip

@mnesrine Thank you very much for taking the time to debug this with us! This helps a lot!
It is indeed a different error, I may have introduced it in the patches in branch fix-1013. I've pushed a new commit which disables the panicking code, could you please run it again? I think it's sufficient to use the latest version for Minio.
Could you describe your setup a bit? You're using a remote instance of Minio, are you contacting the server directly? Or is there some kind of proxy/reverse proxy/tls terminator/load balancer in between?

It is indeed a different error, I may have introduced it in the patches in branch fix-1013. I've pushed a new commit which disables the panicking code, could you please run it again? I think it's sufficient to use the latest version for Minio.

Ok here is the result with the last Minio version with the patch for fix-1030.
debug-log-minio-version-40985cc4e3eec06b7ea82dc34c8d907fd2e7aa12.zip

Could you describe your setup a bit? You're using a remote instance of Minio, are you contacting the server directly? Or is there some kind of proxy/reverse proxy/tls terminator/load balancer in between?

I'm working on an Ubuntu 14.04 and using a remote Minio instance. There's no proxy/reverse-proxy between my local restic and the remote Minio. It's a plain direct connection (not TLS, LB involved).
The test file I'm using is about ~350MB.
My internet bandwidth is kind of small (2Mbit/sec) via WiFi.
However, I've noticed that with small (few KB) to medium (max. 25MB) files, all tests were OK in general.

Linux: Netem
Linux: tc
MacOS: Network Link Conditioner

@mnesrine thank you very much. Unfortunately you haven't' included the debug log in the zip...
@yhafri sure, I can do that and have already experimented with it, but was unable to reproduce the error...

@yhafri Can you describe your setup? Maybe we can found out what's going on then. You're using a local instance of Minio on OS X, right?

Sure. I'm using restic 0.6.1 on MacOS with the latest Minio.
My internet connection is quite stable (fiber channel).
I tried with a file of 1.2GB as described above.

Can you reliably reproduce the issue?

Sorry, he it is again with DEBUG_LOG included.
debug-log-minio-version-40985cc4e3eec06b7ea82dc34c8d907fd2e7aa12.zip

Can you reliably reproduce the issue? Could you also create a debug log from the branch fix-1013 and paste the panic stack trace here?

Unfortunately i'm not able to reproduce it anymore.

Hm, that's a different error now, the error message is We encountered an internal error, please try again., the full error:
 minio.ErrorResponse{
    XMLName:xml.Name{Space:"", Local:"Error"},
    Code:"InternalError",
    Message:"We encountered an internal error, please try again.",
    BucketName:"", Key:"", RequestID:"3L137",
    HostID:"3L137", Region:"us-east-1",
    Headers:http.Header{"X-Amz-Bucket-Region":[]string{"us-east-1"},
    "Date":[]string{"Sat, 10 Jun 2017 10:58:41 GMT"},
    "Accept-Ranges":[]string{"bytes"},
    "Content-Type":[]string{"application/xml"},
    "Server":[]string{"Minio/RELEASE.2017-05-05T01-14-51Z (linux; amd64)"},
    "Vary":[]string{"Origin"}, "X-Amz-Request-Id":[]string{"14C6BD88C32EB686"}}}

@harshavardhana when does the Minio server return an internal error without logging anything to stdout/stderr?

@fd0 @harshavardhana
Here is the same crash but this time with Minio's log included.
debug-log-minio-restic.zip
Hope this helps.

So what is seen from server side is following
{"cause":"#has incomplete body","level":"error","msg":"Unable to create an object. /nesrine/restic/data/84a9a1f3dc356c26e5a0c83ef20d15af61c2b17202b195dd664e35104a361ca4","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:35+02:00"}
{"cause":"unexpected EOF","level":"error","msg":"Failed to create object nesrine/restic/data/8aabad96a1d33feff104b04655e2d1ff8eb517a2664561fc61557cf641cc643d","source":"[fs-v1.go:577:fsObjects.PutObject()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:40+02:00"}
{"cause":"#has incomplete body","level":"error","msg":"Unable to create an object. /nesrine/restic/data/8aabad96a1d33feff104b04655e2d1ff8eb517a2664561fc61557cf641cc643d","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:40+02:00"}
{"cause":"unexpected EOF","level":"error","msg":"Failed to create object nesrine/restic/data/f10849a53ded4a3556783d7fde74168e319c24f80d713f8be2eb62e115b1ddc6","source":"[fs-v1.go:577:fsObjects.PutObject()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:46+02:00"}
{"cause":"#has incomplete body","level":"error","msg":"Unable to create an object. /nesrine/restic/data/f10849a53ded4a3556783d7fde74168e319c24f80d713f8be2eb62e115b1ddc6","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:46+02:00"}
{"cause":"unexpected EOF","level":"error","msg":"Failed to create object nesrine/restic/data/a33a0b8f9ed7eb67a62b081ab38e21f7e2be1b36c4146b94e23942bb908ebbf2","source":"[fs-v1.go:577:fsObjects.PutObject()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:51+02:00"}
{"cause":"#has incomplete body","level":"error","msg":"Unable to create an object. /nesrine/restic/data/a33a0b8f9ed7eb67a62b081ab38e21f7e2be1b36c4146b94e23942bb908ebbf2","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","stack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:51+02:00"}

{"cause":"read tcp <IP_ADDRESS>:2222-\u003e<IP_ADDRESS>:26612: i/o timeout","level":"error","msg":"Unable to create an object. /nesrine/restic/
data/1d89ef620697971fdeba73b26324a9c98d6bf355673143d6f2b7f15bda0fbb3f","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","s
tack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:
536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:49:55+02:00"}
{"cause":"read tcp <IP_ADDRESS>:2222-\u003e<IP_ADDRESS>:26669: i/o timeout","level":"error","msg":"Failed to create object nesrine/restic/data/
49c79992be0495a5c29cd82ff21e16b6fb16a6c66829284c769930427ffa19cb","source":"[fs-v1.go:577:fsObjects.PutObject()]","stack":"fs-v1-helpers.go:268:fs
CreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjec
tHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:00+02:00"}
{"cause":"read tcp <IP_ADDRESS>:2222-\u003e<IP_ADDRESS>:26669: i/o timeout","level":"error","msg":"Unable to create an object. /nesrine/restic/
data/49c79992be0495a5c29cd82ff21e16b6fb16a6c66829284c769930427ffa19cb","source":"[object-handlers.go:539:objectAPIHandlers.PutObjectHandler()]","s
tack":"fs-v1-helpers.go:268:fsCreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:
536:objectAPIHandlers.PutObjectHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:00+02:00"}
{"cause":"read tcp <IP_ADDRESS>:2222-\u003e<IP_ADDRESS>:26651: i/o timeout","level":"error","msg":"Failed to create object nesrine/restic/data/
a0e70d10b479023556287bd7cb1af2eed985c13626714bb231a61741c194b278","source":"[fs-v1.go:577:fsObjects.PutObject()]","stack":"fs-v1-helpers.go:268:fs
CreateFile fs-v1.go:574:fsObjects.PutObject \u003cautogenerated\u003e:338:(*fsObjects).PutObject object-handlers.go:536:objectAPIHandlers.PutObjec
tHandler api-router.go:60:(objectAPIHandlers).PutObjectHandler-fm","time":"2017-06-10T18:50:05+02:00"}

So server has a 15sec timeout on the incoming i/o on idle clients, If the i/o takes longer then the i/o is automatically closed and client connection is closed returning an error.  Strangely minio is sending an odd message which we need to fix.
@fd0 yes minio-go retries the internal error anything with http.Status >= 500
Is the network speed from your laptop to remote machine really slow? @mnesrine - would you mind gathering iperf output from client to server? to see affective raw bandwidth ?

@harshavardhana on behalf of @mnesrine here is the iperf output:
------------------------------------------------------------
Client connecting to x.x.x.x, TCP port 5001
TCP window size: 45.0 KByte (default)
------------------------------------------------------------
[  3] local <IP_ADDRESS> port 38754 connected with x.x.x.x port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  2.0- 3.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  3.0- 4.0 sec  0.00 Bytes  0.00 bits/sec
[  3]  4.0- 5.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  5.0- 6.0 sec  0.00 Bytes  0.00 bits/sec
[  3]  6.0- 7.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  7.0- 8.0 sec  0.00 Bytes  0.00 bits/sec
[  3]  8.0- 9.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  9.0-10.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 10.0-11.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 11.0-12.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 12.0-13.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 13.0-14.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 14.0-15.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 15.0-16.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 16.0-17.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 17.0-18.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 18.0-19.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 19.0-20.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 20.0-21.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 21.0-22.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 22.0-23.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 23.0-24.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 24.0-25.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 25.0-26.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 26.0-27.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 27.0-28.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 28.0-29.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 29.0-30.0 sec   128 KBytes  1.05 Mbits/sec
[  3] 30.0-31.0 sec  0.00 Bytes  0.00 bits/sec
[  3]  0.0-33.9 sec  2.00 MBytes   495 Kbits/sec

Hm, so restic opens a few connections to the server in parallel, is it maybe possible that some of these connections starve in this low bandwidth situation?
@mnesrine to test my theory, you can try setting the number of connections to 2 or even 1 with:
$ restic -o s3.connections=2 backup [...]

@fd0 you sure about this option:
./restic-fix-1013-linux  -o s3.connections=2  backup  /home/nesrine/qt-opensource-linux-x64-5.4.2.run
debug log file /home/nesrine/restic-debug-fix-1013.log
debug enabled
option s3.connections is not known

Ah, sorry, you need to use the master branch for that, I based the fix-1013 on 9cd664c (from the original report).

@fd0 Here is the crash log with master branch:
debug-log-minio-restic.zip
Also, i've tried with both -o s3.connections=1 and -o s3.connections=2 and got the same crash.
Minio's log was empty. Strange, isn't it?

It's super strange :)

Oh, now that's (again) a completely different error, the options parsing broke... hm.

Sigh, please try again with the latest master (including the commit that fixed option parsing for uint).

@fd0 trying with -o s3.connections=2 makes me backup 19MB out of ~356MB (original file). I never made it so far. But still, it crashes after couple of minutes.
Logs include restic and Minio ones.
debug-log-restic-mater.zip

Ok, the underlying issue here is that Minio returns an internal server error after some time...

I'm finally able to reproduce it by limiting my upstream bandwidth to about 10KiB/s with tc:
tc qdisc add dev eth0 handle 1: root htb default 11
tc class add dev eth0 parent 1: classid 1:1 htb rate 10kbps
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps

The code in the branch fix-1013 fixes this issue.  I was able to upload a ~532MB file after couple of hours.
$ ./restic-master-linux  -o s3.connections=1  backup /home/nesrine/qt-opensource-linux-x64-5.4.2.run
debug log file /home/nesrine/restic-debug-fix-1013.log
debug enabled
scan [/home/nesrine/qt-opensource-linux-x64-5.4.2.run]
scanned 0 directories, 1 files in 0:00
[4:40:21] 100.00%  32.366 KiB/s  531.676 MiB / 531.676 MiB  1 / 1 items  0 errors  ETA 0:00
duration: 4:40:21, 0.03MiB/s
snapshot 9c135283 saved

debug-log-restic-mater.zip
I still don't consider that as a fix for this issue because there's no reason for it to work with -o s3.connections=1 and not with -o s3.connections=2 :-(
Hope that you guys @fd0 @harshavardhana will come up with a proper solution (chunked-encoding) soon.
Please do not hesitate if you want me to test again.

Thanks for the feedback, could you please test the branch fix-1013 again? I have force-pushed the branch, you may need to delete it and check it out again.

The code in the branch fix-1013 fixes this issue. You need to manually run git checkout master; git fetch origin; git branch -D fix-1013; git checkout fix-1013, I have force-pushed it.

This step produced an error, but I think it's OK, right?
$ git branch -D fix-1013
error: branch 'fix-1013' not found.
I'm re-running the test now ...

The error is ok, depends on how you checked out the branch before. Running git show on the branch should show the following commit:
commit 9e14609effe05c36414939207ac78c747616edf6 (HEAD -> fix-1013, origin/fix-1013)
Author: Alexander Neumann<EMAIL_ADDRESS>Date:   Sun Jun 11 11:15:15 2017 +0200

    s3: Switch back to high-level API, limit connections

@fd0 I'm looking at the changes in fix-1030. What this change is supposed to do?
+	be.sem.GetToken()
+	n, err := be.client.PutObject(be.bucketname, objName, rd, "application/octet-stream")

I've reverted the code to use the high-level client minio-go provides. be.client is the default client, coreClient was a lower-level variant. See http://godoc.org/github.com/minio/minio-go#Client.PutObject vs http://godoc.org/github.com/minio/minio-go#Core.PutObject.
The main difference is that the former automatically does larger uploads in several parts which can be resumed, in addition it automatically retries operations when the server drops the connection and so on.

@fd0 unfortunately it crashes again on a 100MB test file.
./restic-fix-1013-linux backup xaa

debug-log-restic-mater.zip

I'm sorry to ask, but: Are you sure you are in the right branch? What's the current commit ID in the branch? Could you please run git describe?

$ git show
commit 9e14609effe05c36414939207ac78c747616edf6
Author: Alexander Neumann<EMAIL_ADDRESS>Date:   Sun Jun 11 11:15:15 2017 +0200

    s3: Switch back to high-level API, limit connections

diff --git a/src/restic/backend/s3/config.go b/src/restic/backend/s3/config.go
index 3ae6038..6e8e9f2 100644
--- a/src/restic/backend/s3/config.go
+++ b/src/restic/backend/s3/config.go
@@ -25,7 +25,7 @@ type Config struct {
 // NewConfig returns a new Config with the default values filled in.
 func NewConfig() Config {
        return Config{
-               Connections: 20,
+               Connections: 5,
        }
 }

diff --git a/src/restic/backend/s3/s3.go b/src/restic/backend/s3/s3.go
index beac864..0590377 100644
--- a/src/restic/backend/s3/s3.go
+++ b/src/restic/backend/s3/s3.go

Thank you very much for your patience! I'm currently running the backup again myself, with the default number of 5 connections. It feels to me as if your connection to the server tends to starve connections if they completely max out the bandwidth, that doesn't happen with my test setup here locally.
Next, you can try with -o s3.connections=1 again.

I'm already trying with -o s3.connections=2 and it's still running ... crossing fingers

Unfortunately backup test with -o s3.connections=2 it crashes on a 100MB test file.
debug-log-restic-mater.zip
Now i will try with -o s3.connections=1.

The backup it's ok wihen i use  -o s3.connections=1

Nice, so that's at least something. I still have the feeling that something in between you and the minio server is maybe doing strange things (buffer bloat?) so the connections don't survive. I'll merge the branch later today and declare this issue as resolved then. You need to pass -o s3.connections=1 for every call of restic for now.

I've just found another s3 quirk, if you like you can run the code from the fix-1013 branch again. While the branch is checked out, run git fetch origin; git reset --hard origin/fix-1013, then build restic as usual. Maybe then it will even work with 2 or 5 connections...

Nice, so that's at least something. I still have the feeling that something in between you and the minio server is maybe doing strange things (buffer bloat?) so the connections don't survive. I'll merge the branch later today and declare this issue as resolved then. You need to pass -o s3.connections=1 for every call of restic for now.

The problem here is visible in the iperf output the bandwidth isn't sufficient 1.05 Mbits/sec this is in bits now divide this by 8 you would get 0.131 Mbytes/sec - given that the connection can only upload 2MB in 33secs the latency is quite high.

[  3]  0.0-33.9 sec  2.00 MBytes   495 Kbits/sec

No wonder it can only work with single connections, using more connections such as 8 by default your bandwidth is sufficiently halved more.
Especially with 15sec timeout on the Minio server side for idle connections the incoming data transfer is too slow. We can bump this value on our end but it would indeed increase allowed idle connections. Since this requirement is rare i don't know if it makes sense to bump this value.

Testing now with -o s3.connections=5 from this branch:
$ git describe
v0.6.1-69-g422c0df

$ git show
commit 422c0dfb5eb72e4bf03ec46f58b229c2471a58cd
Author: Alexander Neumann<EMAIL_ADDRESS>Date:   Sun Jun 11 14:38:16 2017 +0200

    s3: Exit test loop for minio server on success

diff --git a/src/restic/backend/s3/s3_test.go b/src/restic/backend/s3/s3_test.go
index 470a7ab..12ca73a 100644
--- a/src/restic/backend/s3/s3_test.go
+++ b/src/restic/backend/s3/s3_test.go
@@ -53,13 +53,12 @@ func runMinio(ctx context.Context, t testing.TB, dir, key, secret string) func()
                time.Sleep(200 * time.Millisecond)

                c, err := net.Dial("tcp", "localhost:9000")
-               if err != nil {
-                       continue
-               }
-
-               success = true
-               if err := c.Close(); err != nil {
-                       t.Fatal(err)
+               if err == nil {
+                       success = true
+                       if err := c.Close(); err != nil {
[...]

@harshavardhana

Especially with 15sec timeout on the Minio server side for idle connections the incoming data transfer is too slow. We can bump this value on our end but it would indeed increase allowed idle connections. Since this requirement is rare i don't know if it makes sense to bump this value.

Playing with timeouts will not resolve anything, IMHO. It's better safe to stick with this 15sec for now (or even lower it).
Q: I read from the above that there's a retry mechanism in the protocol. How may attempts before giving up?
@fd0 Can't you dynamically adapt the number of connections -o s3.connections=X to Minio if you get too many retries? Something between: -o s3.connections=1 -> -o s3.connections=X?

Q: I read from the above that there's a retry mechanism in the protocol. How may attempts before giving up? Is it hardcoded?

Its 5 times before the minio-go gives up. @yhafri given its a network error or any http error >= 500

I see. Can we set this to a bigger value while starting Minio?

I see. Can we set this to a bigger value while starting Minio?

Actually this value is not configurable yet in client SDK, but it can be done.. @yhafri . Let me explore this..
Minio server on the other hand will actually stay at 15 sec for now until we re-factor some code to make it dynamic in subsequent months.

@harshavardhana thanks

I've just found another s3 quirk, if you like you can run the code from the fix-1013 branch again. While the branch is checked out, run git fetch origin; git reset --hard origin/fix-1013, then build restic as usual. Maybe then it will even work with 2 or 5 connections...

@fd0 if failed with -o s3.connections=5 but worked with -o s3.connections=2

Thanks for the feedback. I'm going to merge the branch later today, and I'll also keep that in mind when I refactor the archiver part. At the moment I imagine that there will be some code in between the archiver and the backend which measures the bandwidth and latency, starts saving single files and only if that's  fast enough starts saving multiple files in parallel. The s3.connections setting should only be an upper bound for the number of connecitons.
Thanks for your patience while debugging this!

@harshavardhana can you please show me where in the Minio's source code i can increase this retry variable to a bigger value? I would like to test again these corner cases. Thanks.

Since another user also reported that with a connection limit of 2 it worked well, I'm considering lowering the default value to 2. What do you think?

can you please show me where in the Minio's source code i can increase this retry variable (default to 5) to a bigger value? I would like to test again these corner cases. Thanks.

@yhafri you can change this value with minio.MaxRetry = 10 in restic whereever restic uses minio.New()
https://github.com/minio/minio-go/blob/master/retry.go#L28

Since another user also reported that with a connection limit of 2 it worked well, I'm considering lowering the default value to 2. What do you think?

AWS is notorious in closing connections it would be worth it @fd0 and would work for most people i would think.

The branch is merged, thanks for your patience!

you can change this value with minio.MaxRetry = 10 in restic whereever restic uses minio.New()

Thanks @harshavardhana
@fd0 do you think you can make the minio.MaxRetry = 5 as environment option?
Something like: -o s3.minio.maxretry =5
This would simplify testing with different values.

I can indeed create a test branch for you to use, just a moment please :)

Since another user also reported that with a connection limit of 2 it worked well, I'm considering lowering the default value to 2. What do you think?

@fd0 honestly, i can't see any difference in term of speed when using 2, 5, or even 50 connections. So 2 is fine for me as long as we can save some resources.

see #1027 (branch s3-set-retry). That branch has the -o s3.retries=x option

@yhafri For backup having only two connections is not a problem, but for the expensive operations that load metadata from the repo it is (prune, find, ls, etc)

@yhafri Did you find the time to have a look yet?

@fd0 the -o s3.retries=X works like a charm

Ok, nice. I'm going to leave the PR open, I haven't decided if it's valuable to merge this, or if it was just interesting for your tests. What do you think?

With X=15 we were finally able to use more than 2 parallel connections.
It's a very useful option IMHO. Not for everyone, but still useful.

@fd0 did you merge it?

Yes, I merged it into master.


Color code Explore vs Workbench top bar

Explore keeps the Green aesthetic
Workbench gets a pleasing shade of gold/yellow.
Easily helps people know what side they are on :)

I just realized our interface top bar is grey. Maybe grey vs green. or something. everything grey except the top bar?

Limit green to Workbench only, not intro screen.
This is in
paleobot/pbot-client@900947df99181b129fea339e6b505caf5e542503
merged to master and running on dev and stage


[AIFlow][chart] Update chart to use differennt DB for different component.

Describe the feature

Describe the solution you'd like

Describe alternatives you've considered

Additional context

fixed in #214


Fix py3 pynio backend

Fix backend for pynio with python 3 support. Also fixes tests for pynio, and adds a test for development version of pynio that includes python 3 support until pynio releases an official version with python 3 support.

[x] Closes #1611
[x] Tests added / passed
[x] Passes git diff upstream/master **/*py | flake8 --diff
[x] Fully documented, including whats-new.rst for all changes and api.rst for new API

I'm not sure why but git diff upstream/master | flake8 --diff is reporting some non-conforming lines that seem to either follow conventions used in the surrounding code, and in lines that I did not modify (attached).
flake8_diff.txt

This looks like its complete. Thanks @brhillman!
@shoyer - any problem adding another dev test for pynio? I think this should be a temporary addition, one that can be removed after pynio produces a full release with python3 support.

@jhamman no problem, more than happy to finally be able to contribute in some way. Thanks for your help putting this together!


More fixes for IsolatedNodes.

Nice!
I switched to a dedicated UnsupportedInlineNode implementation for scientist and made the XML editable. Just somehow managed to brake the inline-wrapper stuff, so figures are gona. Maybe you can have a look or we check it together.

Moving crossref editing into a modal as well, just less noise during the editing.

Cool

The UnsupportedIN work is on scientist?

yep. structured branch.


Add Temporary CNAME record

Temporarily redirect traffic to beta.iliosproject.org to show that this site is incomplete.
I already added a CNAME to our bluehost DNS record so this should work once it is merged.
Fixes #1

LGTM. Merging.


CI: break when results found in sonobuoy

"Someone" forgot to add a break, so even if we got the results
they would be ignored and the retries maximized.
Shame on "someone", but fortunately I fixed it for "them"
Why is this PR needed?
Does it fix an issue? addresses a business case?
add a description and link to the issue if one exists.
Fixes #
Reminder: Add the "fixes bsc#XXXX" to the title of the commit so that it will
appear in the changelog.
What does this PR do?
please include a brief "management" technical overview (details are in the code)
Anything else a reviewer needs to know?
Special test cases, manual steps, links to resources or anything else that could be helpful to the reviewer.
Info for QA
This is info for QA so that they can validate this. This is mandatory if this PR fixes a bug.
If this is a new feature, a good description in "What does this PR do" may be enough.
Related info
Info that can be relevant for QA:

link to other PRs that should be merged together
link to packages that should be released together
upstream issues

Status BEFORE applying the patch
How can we reproduce the issue? How can we see this issue? Please provide the steps and the prove
this issue is not fixed.
Status AFTER applying the patch
How can we validate this issue is fixed? Please provide the steps and the prove this issue is fixed.
Docs
If docs need to be updated, please add a link to a PR to https://github.com/SUSE/doc-caasp.
At the time of creating the issue, this PR can be work in progress (set its title to [WIP]),
but the documentation needs to be finalized before the PR can be merged.
Merge restrictions
(Please do not edit this)
We are in v4-maintenance phase, so we will restrict what can be merged to prevent unexpected surprises:
What can be merged (merge criteria):
    2 approvals:
        1 developer: code is fine
        1 QA: QA is fine
    there is a PR for updating documentation (or a statement that this is not needed)

force merging, as the CI failures are caused by trainsitory changes on k8s packages, more over, this PR is absolutely unrelated to skuba  or skuba-update, this only affects CI execution.


Windows - Fresh install causes timezone error when clicking on Settings

Describe the bug
Upon fresh install via pip3 install n Windows, python 3.12.18 Clicking on the Settings button causes a 500 internal service error and the CMD shows this error:
File "C:\Program Files\Python312\Lib\zoneinfo_common.py", line 24, in load_tzdata
raise ZoneInfoNotFoundError(f"No time zone found with key {key}")
zoneinfo._common.ZoneInfoNotFoundError: 'No time zone found with key UTC'
Version
0.48.01
How did you install?
Windows, pip3 install via python 3.12.8
To Reproduce
Steps to reproduce the behavior:

Click Settings

Desktop (please complete the following information):

OS: Windows Server 2019 Datacenter
Browser: Chrome
Version: 10.0.17763 Build 17763

can you attach the whole log? thanks!

Could you try pip3 install tzdata ? does that solve it?

Yep, installing that package solves the problem! tysm!

My general tab was unavailable until I installed that package.  Thanks!  Love the scheduler.


Readme for Pacco?

I know this isn't an issue but what is Pacco?

This is our project for microservices workshops :)


docker build crashes my machine

Not sure if this is a problem with my machine or not but I have a 32 core machine i9 with 128 GB of RAM & this pegs all my cores at 100%. Looks like there is some substantial compiling going on. The second time it spikes up my machine crashes. I was trying to figure out how to limit the number of cores it uses.. not sure but it might also spike memory usage up to 128GB or that could be an artifact of HTOP being disconnected over a SSH session hard to say.
Not my area of expertise but I haven't run into to many containers doing this kind of intensive build, normally it's just software installations and configuration.
I'm including the terminal logging that I captured.
dockerbuild_terminal_logging.txt

OK just confirmed that it also crashes on a Google Cloud VM, 22 Cores, 128GB of ram. Looks like this one ran out of RAM as well..
gc_docker_build_fail_22core_128.txt

Hi! I had the same issue. I changed the Dockerfile so to include the env variable MAX_JOBS:
RUN rm -rf ./flash-attention/* &&
pip uninstall flash_attn -y &&
git clone https://github.com/Dao-AILab/flash-attention.git &&
cd flash-attention/csrc/rotary && MAX_JOBS=4 python setup.py install &&
cd ../layer_norm && MAX_JOBS=4 python setup.py install &&
cd ../../ && MAX_JOBS=4 python setup.py install
RUN MAX_JOBS=4 pip install ninja tokenizers==0.14.1 einops transformers==4.34.1
I used 4, but I guess you can go for something higher (maybe 10).

@nedRad88 AH thank you.!! It's been a long time since I worked with Docker. I was trying MAX_JOBS in with the docker build command and it wouldn't work. .

Yes! @nedRad88 's suggestion should work 👍 . ninja can use a lot of resources when building flash-attn if MAX_JOBS is not specified. Feel free to re-open if the issue persists.

I'd recommend updating the documentation to explain this workaround. Otherwise others might not think to check this thread.

@nedRad88 & @orangetin
This work around did not work for me. I updated the Docker file with the MAX_JOBS set to 4 and I'm still running out of memory.
`FROM nvcr.io/nvidia/pytorch:23.06-py3
WORKDIR /workdir
RUN rm -rf ./flash-attention/* &&
pip uninstall flash_attn -y &&
git clone https://github.com/Dao-AILab/flash-attention.git &&
cd flash-attention/csrc/rotary && MAX_JOBS=4 python setup.py install &&
cd ../layer_norm && python setup.py install &&
cd ../../ && python setup.py install
RUN MAX_JOBS=4 pip install ninja tokenizers==0.14.1 einops transformers==4.34.1`

OK I got it to build.. had to rent a VM big enough to handle this.. for some reason the max_jobs setting didn't seem to do anything for me.
96 Core & 604 GB (300+ used at peak).

MAX JOBS controls how many processes to launch in parallel for compilation. You could try adding that as env variable or setting that for each flash_attn install step e.g.,
cd flash-attention/csrc/rotary && MAX_JOBS=4 python setup.py install &&
cd ../layer_norm && MAX_JOBS=4 python setup.py install &&
cd ../../ && MAX_JOBS=4 python setup.py install


docs: move docs to vike.dev/vike-solid

See https://vike.dev/vike-solid.
The goal being to move all vike-{react,vue,solid} documentation to vike.dev, while keeping the documentation of other Vike extensions (e.g. vike-react-query and vike-vue-pinia) in their respective README.md files. Feel free to disagree.

I also think that main integrations should appear directly on Vike website, so I totally agree whit that 👍


Master -> Live

Docs Build status updates of commit dbe8866:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mrtk-docs/index.md
:warning:Warning
View
Details

.openpublishing.publish.config.json
:white_check_mark:Succeeded

mixed-reality-docs/hand-menu.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-troubleshooting.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-version-history.md
:white_check_mark:Succeeded
View

mixed-reality-docs/images/UX/HandMenu_AffordanceExample.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/UX/HandMenu_SizeExample.png
:white_check_mark:Succeeded
View

mixed-reality-docs/mixed-reality-capture-for-developers.md
:white_check_mark:Succeeded
View

mixed-reality-docs/porting-guides.md
:white_check_mark:Succeeded
View

mrtk-docs/TOC.yml
:white_check_mark:Succeeded
View

mrtk-docs/breadcrumb/toc.yml
:white_check_mark:Succeeded

mrtk-docs/docfx.json
:white_check_mark:Succeeded

mrtk-docs/index.md

Line 1, Column 1: [Warning-author-missing] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel

Docs Build status updates of commit 81ed57f:
:warning: Validation status: warnings

File
Status
Preview URL
Details

mrtk-docs/index.md
:warning:Warning
View
Details

mixed-reality-docs/hand-menu.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-player.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-troubleshooting.md
:white_check_mark:Succeeded
View

mixed-reality-docs/holographic-remoting-version-history.md
:white_check_mark:Succeeded
View

mixed-reality-docs/images/UX/HandMenu_AffordanceExample.png
:white_check_mark:Succeeded
View

mixed-reality-docs/images/UX/HandMenu_SizeExample.png
:white_check_mark:Succeeded
View

mixed-reality-docs/mixed-reality-capture-for-developers.md
:white_check_mark:Succeeded
View

mixed-reality-docs/porting-guides.md
:white_check_mark:Succeeded
View

mrtk-docs/TOC.yml
:white_check_mark:Succeeded
View

mrtk-docs/breadcrumb/toc.yml
:white_check_mark:Succeeded

mrtk-docs/index.md

Line 1, Column 1: [Warning-author-missing] Missing required attribute: 'author'. Add the current author's GitHub ID.
Line 1, Column 1: [Warning-title-missing] Missing required attribute: 'title'. Add a title string to show in search engine results.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


While trying to jump to specific time in video player the video pause for a split second before continuing normally on new time

Steps to Reproduce

Created the controller of Video Player
Added a widget to skip 10 seconds using seekTo method of the controller
Used that button

Expected results:
There is a slight pauses in the video for a split second
Actual results:
Should have been smooth as I tried on different video player also.
I tried changing the seekTo time to different parts of the video and noticed there is different amount of delay at different position in the video

Logs

This is what it is shows in debug console when I try to jump to a specific time in the video
D/CCodecBuffers(17859): [c2.android.aac.decoder#0:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 0
D/CCodecBuffers(17859): [c2.android.aac.decoder#0:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 1
D/CCodecBuffers(17859): [c2.android.aac.decoder#0:1D-Output.Impl[N]] Client returned a buffer it does not own according to our record: 2
I/CCodecConfig(17859): query failed after returning 16 values (BAD_INDEX)
W/Codec2Client(17859): query -- param skipped: index =<PHONE_NUMBER>.
W/Codec2Client(17859): query -- param skipped: index =<PHONE_NUMBER>.
W/Codec2Client(17859): query -- param skipped: index =<PHONE_NUMBER>.
D/CCodecBufferChannel(17859): [c2.android.aac.decoder#0] onWorkDone: output format changed to AMessage(what = 0x00000000) = {
D/CCodecBufferChannel(17859):   int32_t channel-count = 2
D/CCodecBufferChannel(17859):   string mime = "audio/raw"
D/CCodecBufferChannel(17859):   int32_t sample-rate = 44100
D/CCodecBufferChannel(17859): }
D/AudioTrack(17859): getTimestamp_l(909): device stall time corrected using current time<PHONE_NUMBER>6248

[√] Flutter (Channel stable, v1.17.5, on Microsoft Windows [Version 10.0.19041.329], locale en-IN)
• Flutter version 1.17.5 at C:\AndroidDev\Flutter
• Framework revision 8af6b2f038 (11 days ago), 2020-06-30 12:53:55 -0700
• Engine revision ee76268252
• Dart version 2.8.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
• Android SDK at C:\AndroidDev\SDK
• Platform android-29, build-tools 30.0.1
• ANDROID_HOME = C:\AndroidDev\SDK
• Java binary at: C:\AndroidDev\Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Android Studio (version 4.0)
• Android Studio at C:\AndroidDev\Studio
• Flutter plugin version 47.1.2
• Dart plugin version 193.7361
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code, 64-bit edition (version 1.47.0)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 3.12.2

Hi @Shubham20091999,
Can you please provide a minimal complete reproducible code sample that shows this issue ?
Thank you

I made a simple test app to get a video file using file picker and added two buttons to move the video forward or backward by 10 sec
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  VideoPlayerController controller;
  Future<void> _initializeVideoPlayerFuture;

  ini() async {
    controller = VideoPlayerController.file(await FilePicker.getFile(
      type: FileType.custom,
      allowedExtensions: ['mp4'],
    ));

    _initializeVideoPlayerFuture = controller.initialize();
    controller.play();
    setState(() {});
  }

  @override
  void initState() {
    ini();

    super.initState();
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: FutureBuilder(
          future: _initializeVideoPlayerFuture,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Center(
                    child: controller.value.initialized
                        ? AspectRatio(
                            aspectRatio: controller.value.aspectRatio,
                            child: VideoPlayer(
                              controller,
                            ),
                          )
                        : Container(),
                  ),
                  LinearProgressIndicator(
                    value: controller.value.position.inSeconds /
                        controller.value.duration.inSeconds,
                  ),
                ],
              );
            } else {
              // If the VideoPlayerController is still initializing, show a
              // loading spinner.
              return Center(child: CircularProgressIndicator());
            }
          },
        ),
        floatingActionButton: Row(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            FloatingActionButton(
              onPressed: () async {
                await controller
                    .seekTo(await controller.position - Duration(seconds: 10));
                setState(() {});
              },
              child: Icon(Icons.arrow_back),
            ),
            FloatingActionButton(
              onPressed: () async {
                await controller
                    .seekTo(await controller.position + Duration(seconds: 10));

                setState(() {});
              },
              child: Icon(Icons.arrow_forward),
            ),
          ],
        ),
      ),
    );
  }
}

Hi @Shubham20091999,
Can you please provide a minimal complete reproducible code sample that shows this issue ?
Thank you

I made a simple test app to get a video file using file picker and added two buttons to move the video forward or backward by 10 sec
class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  VideoPlayerController controller;
  Future<void> _initializeVideoPlayerFuture;

  ini() async {
    controller = VideoPlayerController.file(await FilePicker.getFile(
      type: FileType.custom,
      allowedExtensions: ['mp4'],
    ));

    _initializeVideoPlayerFuture = controller.initialize();
    controller.play();
    setState(() {});
  }

  @override
  void initState() {
    ini();

    super.initState();
  }

  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: FutureBuilder(
          future: _initializeVideoPlayerFuture,
          builder: (context, snapshot) {
            if (snapshot.connectionState == ConnectionState.done) {
              return Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Center(
                    child: controller.value.initialized
                        ? AspectRatio(
                            aspectRatio: controller.value.aspectRatio,
                            child: VideoPlayer(
                              controller,
                            ),
                          )
                        : Container(),
                  ),
                  LinearProgressIndicator(
                    value: controller.value.position.inSeconds /
                        controller.value.duration.inSeconds,
                  ),
                ],
              );
            } else {
              // If the VideoPlayerController is still initializing, show a
              // loading spinner.
              return Center(child: CircularProgressIndicator());
            }
          },
        ),
        floatingActionButton: Row(
          mainAxisSize: MainAxisSize.min,
          children: <Widget>[
            FloatingActionButton(
              onPressed: () async {
                await controller
                    .seekTo(await controller.position - Duration(seconds: 10));
                setState(() {});
              },
              child: Icon(Icons.arrow_back),
            ),
            FloatingActionButton(
              onPressed: () async {
                await controller
                    .seekTo(await controller.position + Duration(seconds: 10));

                setState(() {});
              },
              child: Icon(Icons.arrow_forward),
            ),
          ],
        ),
      ),
    );
  }
}

Hi @Shubham20091999,
I tried to replicate this issue on latest dev channel but didn't notice the pause while skipping.
61303.mp4.zip
Can you post video or gif of your observation so that we'll have a better idea ?

Screen Record.zip
The pauses are of different length in different parts of video

HI @Shubham20091999,
Thanks for filing the issue, I could see the  video seeking smoothly between different positions. I would request you to upgrade to latest version of flutter and use the latest plugin video_player ^2.1.6 and verify the issue, If you are still able to see the pause feel free to revert back with more details.

code sample
import 'dart:io';

import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:video_player/video_player.dart';

void main() {
  runApp(
    MaterialApp(
      home: VideoPicker(),
    ),
  );
}

class VideoPicker extends StatefulWidget {
  @override
  _VideoPickerState createState() => _VideoPickerState();
}

class _VideoPickerState extends State {
  PickedFile? _pickedFile;
  final picker = ImagePicker();

  Future getVideo() async {
    var v = ImageSource.gallery;
    var pickedFile = await picker.getVideo(source: v);

    setState(() {
      if (pickedFile != null) {
        _pickedFile = pickedFile;
        initializeVideo();
      } else {
        print('No image selected.');
      }
    });
  }

  void initializeVideo() {
    if (_pickedFile != null) {
      _controller = VideoPlayerController.file(File(_pickedFile!.path));
      _controller.initialize().then((value) => setState(() {}));
    } else {
      _controller = VideoPlayerController.file(File(''));
    }
  }

  late VideoPlayerController _controller;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    initializeVideo();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Image Picker Example'),
      ),
      body: Center(
        child: Builder(
          builder: (c) {
            if (_pickedFile == null) return Text('Select Video!');
            return AspectRatio(
              aspectRatio: _controller.value.aspectRatio,
              child: Stack(
                alignment: Alignment.bottomCenter,
                children: [
                  VideoPlayer(_controller),
                  VideoProgressIndicator(_controller, allowScrubbing: true),
                ],
              ),
            );
          },
        ),
      ),
      floatingActionButton: Row(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          FloatingActionButton(
            onPressed: () async {
              await _controller.seekTo(
                  (await _controller.position)! - Duration(seconds: 10));
              setState(() {});
            },
            child: Icon(Icons.arrow_back),
          ),
          SizedBox(
            width: 10,
          ),
          FloatingActionButton(
            onPressed: () async {
              await _controller.seekTo(
                  (await _controller.position)! + Duration(seconds: 10));

              setState(() {});
            },
            child: Icon(Icons.arrow_forward),
          ),
          SizedBox(
            width: 10,
          ),
          FloatingActionButton(
            onPressed: () {
              getVideo();
            },
            tooltip: 'Pick Video',
            child: Icon(Icons.add_a_photo),
          ),
          SizedBox(
            width: 10,
          ),
          FloatingActionButton(
            onPressed: () {
              setState(() {
                // If the video is playing, pause it.
                if (_controller.value.isPlaying) {
                  _controller.pause();
                } else {
                  // If the video is paused, play it.
                  _controller.play();
                }
              });
            },
            tooltip: 'Pick Video',
            child: Icon(
              _controller.value.isPlaying ? Icons.pause : Icons.play_arrow,
            ),
          ),
        ],
      ),
    );
  }
}

Output
https://user-images.githubusercontent.com/31410839/123818461-a1ae6180-d916-11eb-8232-41a05586c7e4.mov

flutter doctor -v
[✓] Flutter (Channel stable, 2.2.2, on macOS 11.4 20F71 darwin-arm, locale en-IN)
    • Flutter version 2.2.2 at /Users/mahesh/Documents/flutter
    • Framework revision d79295af24 (3 weeks ago), 2021-06-11 08:56:01 -0700
    • Engine revision 91c9fc8fe0
    • Dart version 2.13.3

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

[✓] Xcode - develop for iOS and macOS
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.4, Build version 12D4e
    • CocoaPods version 1.10.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] IntelliJ IDEA Community Edition (version 2021.1.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 57.0.5
    • Dart plugin version 211.7233

[✓] VS Code (version 1.57.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.23.0

[✓] Connected device (3 available)
    • iPhone 12 Pro Max (mobile) • 6A434744-B348-4FB3-AB10-131292174456 • ios            •
      com.apple.CoreSimulator.SimRuntime.iOS-14-4 (simulator)
    • macOS (desktop)            • macos                                • darwin-arm64   • macOS 11.4
      20F71 darwin-arm
    • Chrome (web)               • chrome                               • web-javascript • Google Chrome
      91.0.4472.114

• No issues found!

Thank you.

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


Suggestion: Remove dev dependency on global packages

In package.json:
`-    "postinstall": "typings install",

"test": "gulp test"

"gulp": "node node_modules/.bin/gulp",
"typings": "node node_modules/.bin/typings",
"test": "npm run gulp test",
"postinstall": "npm run typings -- install"`

Now gulp install (global gulp) is npm run gulp install.
This approach, while a little more verbose, is more accommodating for users or CI environments with a different version of typings or gulp installed globally.

Closing this issue, as this approach has caused difficulties for cross-platform dev. Specifically, the files in node_modules/.bin for Windows are bash scripts, but on OS X, they are JavaScript.