Can't build example in Arduino

Hi, I'm getting this build error...
RPI_Pico_device_info:319:1: error: 'usbh_class_driver_tconst' does not name a type; did you mean 'usbh_class_driver_t'?
319 | usbh_class_driver_t const* usbh_app_driver_get_cb(uint8_t* driver_count){
| ^~~~~~~~~~~~~~~~~~~~~~~~
| usbh_class_driver_t
The compiler seems to be ignoring the space.
It compiles if I remove the code and braces after, but obviously that isnt going to work.
I'm using a RP2040 device with Adafruit_TinyUSB which in turn uses Pico-PIO-USB
I've got the host functions working with HID devices, getting button reports etc..
I didnt realise the XBox controller was not HID so wanted to try and add it.
Is there anything I can do to fix this?

Weird. Make sure it's actually a space character and not something weird
You could probably remove that const keyword anyway

This appears to work...
usbh_class_driver_t const* usbh_app_driver_get_cb(uint8_t* driver_count);
usbh_class_driver_t const* usbh_app_driver_get_cb(uint8_t* driver_count)
{
*driver_count = 1;
return &usbh_xinput_driver;
}
however the linker complains about not being able to find usbh_xinput_driver, this is because either CFG_TUH_XINPUT or CFG_TUH_ENABLED isnt defined.
Your instructions say to add CFG_TUH_XINPUT=1 into tusb_option.h (which isnt so easy in arduino) but im not sure exactly where to put it in the file, can you give an example?
As a hack i added:
#define CFG_TUH_XINPUT 1
#define CFG_TUH_ENABLED 1
to xinput_host.c to get it to compile which it does now.

Awesome. I haven't tried tinyusb on Arduino so I'm glad you got it working 🙂


Can't get infinite scroll to work

CodeSandbox: https://codesandbox.io/s/natural-gallery-js-issue-czh8cg
My best guess is I'm using setItems() when maybe I should be using addItems()?

Anything look obviously wrong in that CodeSandbox?


Update cents to_string to take negative values

Update cents.to_string to take negative values.
This allows us to have the app eventually allow users to cash out more than they bought in, which can happen when

Winners attempt to cash out before all users have bought in
There has been an user error in computing cash outs.

Hello @MatthewUng! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file src/game/route.py:

Line 336:80: E501 line too long (125 > 79 characters)

In the file src/game/validation.py:

Line 11:80: E501 line too long (135 > 79 characters)

In the file src/utils/cents.py:

Line 3:1: E302 expected 2 blank lines, found 1
Line 5:80: W291 trailing whitespace
Line 18:80: W291 trailing whitespace
Line 23:19: E701 multiple statements on one line (colon)
Line 28:80: W291 trailing whitespace
Line 39:23: E701 multiple statements on one line (colon)


Unpack error when handling multiple requests

When handling multiple request at once, an Unpack error can occur.

When more data is returned to the buffer, we copied the 'extra' info to the pkg. This data must not be copied. Fixed by copying the correct data to a pkg.


Fixes for most open issues

Recently used this in a project and encountered myself almost every issue opened.
One change is rather significant: left and right alignment stand for appropriate side of the (marker) position. Canvas is sized according to text measures, so text alignment is always left, while canvas is put relatively to the position using margin-left.

Went from banging my head against the wall to having it Just Work when I switched to this fork.


Can't save draft - Error 405

Describe the bug
When a draft is saved, a green checkmark will appear next to the text "undefined 0NaN:0NaN". On reopening the page, no draft is loaded.
Chrome Webconsole shows the error "PUT http://SERVERNAME:8081/ajax/page/55/save-draft 405 (Method Not Allowed)"
Steps To Reproduce
Steps to reproduce the behavior:

Open any page in edit mode and press CTRL + S
See error

Expected behavior
A draft should be saved on CTRL+S - when the same user reopens the page later, the saved draft should be loaded again to give the user the option to resume previous work.
Your Configuration (please complete the following information):

Exact BookStack Version (Found in settings): BookStack v0.29.3
PHP Version: 7.4
Hosting Method (Nginx/Apache/Docker): Windows Server 2016 + IIS 10

Additional context
.env Value APP_URL=http://SERVERNAME:8081
Every other feature other than saving draft seem to work

Hi @navvienna,
Sorry to hear you're experiencing this issue.
Just to confirm, can you successfully upload images & files to a page without issue? Just trying to determine if this is maybe an issue with all background requests on your instance.

Hi @ssddanbrown
uploading files / images works without issue. As far as I can see, every other feature is working fine for us.

Hi @ssddanbrown
apparently we are also unable to delete attachments - I'm not sure if this is linked to this problem, I just wanted to mention it. After the confirmation dialog, I see a green checkmark without text, but the attachment doesnt get deleted.
Thank you for your help and best regards

Any chance to get help with this issue?

Hi @navvienna,
Sorry for the lack of help, I generally feel a bit clueless when it comes to IIS specific issues.
The operations you describe, that are failing, are some of the only PUT/DELETE HTTP requests in the app, all others are GET/POST or only pretend to be PUT/DELETE.
A search of ISS along with the response message seems to pick up quite a few results: https://www.google.com/search?q=iis+method+not+allowed
Many of these point to the WebDAV module interfering with these kinds of requests. Do you have that installed and is that something you can try disabling to test?
Otherwise we'll need to dig to see if this fails at IIS level or BookStack level.

Hi @ssddanbrown
I checked the installed roles on the server and the WebDAV module is neither activated nor installed.
Attached you can find the google chrome webconsole error which appears when saving a draft - maybe it helps? I tried googling the error, but couldnt find anything useful to be honest.

Uploading here doesnt work, here is a link: https://ibb.co/0QW64mY

Thanks @navvienna,
Unfortunately that does not provide much extra detail.
If you can, Can you open the chrome devtools, re-create the error, go to the "Network" tab, Click on the last red line, Then view the "preview" tab as see what the response looks like (If any)?

Also, Do you have anywhere to configure HTTP verbs for requests to the application as per this guide?: https://support.deskpro.com/en/kb/articles/configuring-http-verbs-on-windows-iis

Hi @ssddanbrown
thank you so much - apparently the HTTP verbs for request were the problem. I followed the article (although you have to set it for both php handlers), restarted IIS and now everything works as it should.
Best regards

@navvienna That's awesome to hear, Glad that got things working. Will try to remember if I see issues for other IIS users. Will therefore close this off.

In addition to enabling All verbs in the PHP Handler Mappings in IIS (noted above), I needed to do the following:

Internet Information Services (IIS) Manager
Select your BookStack site
WebDAV Authoring Rules feature menu
Disable WebDAV from the Action Menu on the right
Modules feature menu
Remove WebDAV Module
Handler Mappings feature menu
Remove WebDAV
Restart BookStack website

Reference
https://stackoverflow.com/a/29415149/860698
Apologies for responding to a closed issue. This is the top Google result on this issue so hopefully IIS folks will see this.

Hi everyone, I have 403 error for the automatic save draft action

My server is hosted on OVH (french web host). It is a shared server
Is it because of the HTTP PUT verb which will not be accepted by my host?

Did you follow the steps mentioned in the previous posts?
Von: Valentin Golliot @.>
Gesendet: Donnerstag, 20. Juli 2023 20:06
An: BookStackApp/BookStack @.>
Cc: Manuel Halwachs @.>; Mention @.>
Betreff: Re: [BookStackApp/BookStack] Can't save draft - Error 405 (#2218)
Attention:  This email originated from outside of the organization. DO NOT click links or open attachments unless you recognize the sender and know the content is safe!
Hi everyone, I have 403 error for the automatic save draft action
[image]https://user-images.githubusercontent.com/138471496/254969966-1d0dad48-4a1b-49d0-b501-f38e494333f3.png
[image]https://user-images.githubusercontent.com/138471496/254970295-e17cbecc-f3b1-4f43-816b-ddcdbbff80df.png
[image]https://user-images.githubusercontent.com/138471496/254970430-0924ec8c-cd0e-4065-929a-502a47c12efa.png
My server is hosted on OVH (french web host). It is a shared server
Is it because of the HTTP PUT verb which will not be accepted by my host?
—
Reply to this email directly, view it on GitHubhttps://github.com/BookStackApp/BookStack/issues/2218#issuecomment-1644368365, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQR65NZPHKF3X5UXM3QUH3LXRFXQ7ANCNFSM4PZ44MCQ.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Did you follow the steps mentioned in the previous posts?

It's for IIS Microsoft server, mine is a LAMP

@valentinkang I'd be very surprised if OVH were blocking specific HTTP verbs, especially since I don't think that'd be visible to them over HTTPS traffic anyway (without sketchy goings on).
Since your scenario and environment is different to one discussed here please open a new support issue so you can detail out your specific case/environment.


Timeout does not work

Hi,
One of my neo4j servers had a problem. But the script has a default timeout of 15 but didn't work.

It looks like timeout for socket_connect is from ini default_socket_timeout. Timeout set with socket_set_option works for established connection. Sadly I can't use method ini_set because it can be disabled for security reasons.
You can change it by yourself in php.ini file or with ini_set before creating Bolt instance.
I'll add this info to wiki.


auxiliaries are not bound

the nerual network of the example cifar10 has lots of auxiliaries, which are currently not bound in the inference/training process. This leads to an error of the following:
1/1563 <CrossEntropy: NaN>[14:25:25] /home/jwu/incubator-mxnet/dmlc-core/include/dmlc/./logging.h:308: [14:25:25] src/executor/graph_executor.cc:555: Check failed: aux_top < aux_states.size() (0 vs. 0)

fixed b0418665b54e9950505a8bb8bedfab8c513072ae


Raids [BACKEND ONLY]

Raid infos are implemented, feel free to add this fuctionnality on the frontend (I'm just using a personnal discord bot)
Table fort_raids
Fields :

id = Column(Integer, primary_key=True)
fort_id = Column(Integer, ForeignKey('forts.id'))
raid_seed = Column(Integer)
raid_battle_ms = Column(Integer, index=True)
raid_spawn_ms = Column(Integer, index=True)
raid_end_ms = Column(Integer, index=True)
raid_level = Column(Integer)
complete = Column(TINY_TYPE)
pokemon_id = Column(TINY_TYPE)
cp = Column(TINY_TYPE)
move_1 = Column(SmallInteger)
move_2 = Column(SmallInteger)

pokemon_id,cp,move_1 and move_2 are updated when raid battle starts

Can you do a rebase with whitespace / newline fix?
It is very difficult to review as is.

Everything should be stable now. Tell me if you still have some troubles

I'm not sure why it happens, but when I run locally on my windows pc, it works fine.
However when I run this on my ubuntu server it doesn't write to the mysql database. when I stop scan.py it has a huge backlog of items it still wants to push to the DB.
It works fine without this addition however.
So it looks like it isn't able to write the data to the fort_raids table (because that stays empty) and that is clogging upp the writing to the DB.

Can you drop fort_raid table, rerun create_db and retest it plz? (Don't forget to pull the lastest version of the PR)

Removing everything and reinstalling it all seems to have worked. However, the update function seems to be clogging it all up now.
On a fresh database everything works fine. but as soon as it tries to update an entry to include the raid boss, it blocks up the DB again.

Corrected notifDiscord ;)
Sorry for that

I just want to make sure that this will work with SPAWN_ID_INT = false ?

Ok Im testing this out and Im getting a bunch of MySQL errors when the raid hasn't started yet since move_1, move_2, etc can not be "None" since they are smallint according to your specs, so the only thing that can be saved at this point are actual raid battles, not raid eggs.

Yep the raid_seed is a negative number for what i saw

@sebast1219 Im unsure if I have the proper MySQL column types, do you have a create table that I can compare to? Also as I've been running this it doesn't seem like the raids are updated. I get the initial raid is going to start, so all the moves, etc are NULL, but they never update to the actual raid info when it starts. I have a bunch of NULL in the database and only a very few that actually have the raid info after it has started, but I have a feeling that it was the first time it put those raids in the database and the raid was going when that happened.. so basically it doesn't seem to be updating the raid info. Also is there a way to keep track of when a raid is going to start and then deploy an account to get the raid info, just like a spawnpoint TTL?

@sebast1219 I know I asked on the gym one, but maybe a combo of gym and raid webhook? So when a gym changes teams and also when a raid is announced and starts?


MP4's exported incompatible with android and whatsapp web

macOS version: 11.2.3
Kap version: 3.3.2
Steps to reproduce
record and export MP4 then try to upload to whatsapp web or open in android
Current behaviour
Video isn't playable like it used to be.
Expected behaviour
Video should upload to whatsapp web and should be playable without downloading
Workaround

To my knowledge there were no changes in how we output MP4 files in the time leading up to this issue, so I think this is unrelated to Kap. It seems that you are able to play the video file, maybe there's a setting to not automatically download files?

We upgraded ffmpeg in https://github.com/wulkano/Kap/pull/1021. That might have caused it.
Make sure you use MP4 (H264) and not HEVC. There might be some services/phones that don't support HEVC.


Update display characteristics of mapping operations view

After using the editor with some larger models and getting feedback from users, it would be nice to see the following updates to the mapping operations view in the editor:

Decrease the % size of the operations view compared to the model views - make the operations view smaller and the model views larger.
Allow the operations view to be resized, which would allow users to adjust the size as necessary.
Allow the operations view to be minimized.

So to summarize, we're looking for are:

A slider between the top and bottom panels
Resizable columns for the table in the top panel (Source Item/Operation/Target Item)
Sliders between the source, operation ("=>"), and target areas of the bottom panel

Is that correct?

Created a PR here - https://github.com/fabric8io/data-mapper/pull/86
It includes the three bullet points in my last comment.

I wasn't envisioning all of this.  It seems like the only thing we were missing was the slider between the operations view at top and the model views at bottom.  Resizing the columns seems unnecessary in both top and bottom, especially if that includes resizing the operation column in top/bottom.  Being able to resize the entire editor, along with being able to scroll within each model view, seems more than sufficient.  I don't like the idea of adding the extra visual complexity if it's not really warranted.

Thanks for banging this out @bfitzpat.  I played around with it a bit and have the following feedback:

I would leave out the resize of the model views and the operations view at this point.  It was interesting to play around with, but I don't think it's required now and we should probably see how the layout pans out before deciding what else can be resized.
The slider for the top/bottom panel resizing works great.  Is there any chance we could have a small visual anchor (e.g. line/bar) that indicates where a user would click in order to adjust the sizing?  It took me a second to find the spot where I could actually slide the panel up/down.
One thing resizing the model views revealed to me is that we don't have scroll bars on those views right now.  I think that would be good to add.
Can we adjust the default % for the top panel (operations view) to be closer to 25%?  People can size up or down from there, but a 25/75 split for top/bottom seems better to me for people just starting out on a map.

I'll see what I can do guys. Thanks for the feedback.

Updated the PR as requested. Let me know if there are any other tweaks guys!

AFAICT, everything's been addressed here.  The model views already have scroll bars, so maybe they just weren't noticed since they appear only as necessary.


Add more questions to OCF's form

From @kaylarep:

A couple questions I'd want to add to OCF's form:

What do you plan to do with raised funds?
How did you hear about us?
How long is this collective intended to last? and then (unlimited) (time limited) (specify….) so we know when and how to work with groups better.
and/or What are your plans for the future of your group?

Originally posted by @kaylarep in https://github.com/opencollective/opencollective/issues/5354#issuecomment-1378085867

On hold, since OCF is not accepting new applications ATM


User Management

The user who wants to create and share a board should create an account in order to do so. This is interesting if we want to realise features where, users can manage their boards on a dashboard for example.

We need to think about about another solution. I kind of dislike the idea of account management. Closing for now.


Added tailored conceptscheme

Some codelists need to be generated at runtime, this is the code
See also https://github.com/lblod/app-digitaal-loket/pull/229

Codelist seems to be generated correctly


Incorrect power options

When connecting to my openelec machine I get the option "quit" while the option "reboot"  is missing.
Quit isn't an option on openelec while reboot is. Not sure if the jsonrpc response for getting the options is correct or not.  iirc it should only return the options that the htpc actually supports

Reboot should indeed be included. Didn't include it because i only tested it on a PC, and reboot isn't really helpful there.
As for quit, i didn't find anything in jsonrpc that indicates whether it is supported or makes sense. @Montellese Am i missing something? System.GetProperties lets you know whether the system can suspend/reboot/shutdown/hibernate, but not whether quit is appropriate.

Reboot is in c6dfce29a4857e5bcc1df313381b4ae9c98de2c6.
Can't find anything in jsonrpc that specifies whether quit makes sense or not (there's only info about cansuspend, shutdown, restart), therefore i think this should be closed.


add align parameter

@resfandiari I tested it works perfectly but I added some comments on the pull request changes

@resfandiari I tested it works perfectly but I added some comments on the pull request changes

Your changes are fine, I checked them

@resfandiari I tested it works perfectly but I added some comments on the pull request changes

Your changes are fine, I checked them

okay I will merge and I will rename the parameter after


#24604: Add new "IsZip" method and "ExtractEntry" overload

Add new "IsZip" method and new overload for "ExtractEntry".
@pri-kise haven't got the chance to really test this in the context of the System Application (copied somewhat from another app of mine where I implemented this). Not exactly sure, but I'm having a lot of issues with getting System.Drawing (among others) to load properly in this repo, following the getting started guide. Any idea?

And that someone of microsoft who is responsible for the system application accepts this PR there should be some tests added (copied) for checking your new methods.

A test, we would need. Other than that, this looks fine, I'd say!

@hemisphera to get your test-App to work with, you only have to add Any to the dependency in the app.json of your TestApp.
I had the same issue today:
https://github.com/microsoft/ALAppExtensions/pull/24667/files#diff-ba6aadc04b9281606c6d381e675e81649a214df954df883f3f00d303bb9cad15

Releases with 23.0 🥳

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 12071.


Mat 4597/measure details unsaved changes

MADiE PR
Jira Ticket: MAT-4597
(Optional) Related Tickets:
Summary
measure details unsaved changes
All Submissions

[ ] This PR has the JIRA linked.
[ ] Required tests are included.
[ ] No extemporaneous files are included (i.e Complied files or testing results).
[ ] This PR is merging into the correct branch.
[ ] All Documentation needed for this PR is Complete (or noted in a TODO or other Ticket).
[ ] Any breaking changes or failing automations are noted by placing a comment on this PR.

DevSecOps
If there is a question if this PR has a security or infrastructure impact, please contact the Security or DevOps engineer assigned to this project to discuss it further.

[ ] This PR has NO significant security impact (i.e Changing auth methods, Adding a new user type, Adding a required but vulnerable package).
[ ] All CDN/Web dependencies are hosted internally (i.e MADiE-Root Repo).

Reviewers
By Approving this PR you are attesting to the following:

Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose.
The tests appropriately test the new code, including edge cases.
If you have any concerns they are brought up either to the developer assigned, security engineer, or leads.

Matt has completed this ticket


Add builder for windows

tested on windows 10
please test

To test this builder I have to first intall all node packages right?

yes, and pkg in system node modules
npm i -g pkg
it does not work as project module

Ok @kylon sorry for being late, having to prioritise studying rn :D
This works flawlessly, good job


[Bug] README Link issues

Bug Description

Section link1, link2:

Reason:
Referenced file path error.
Suggestion:
Change the reference file path to ../scripts/post-init-setup.ps1

Section link:

Reason:
Referenced file path error.
Suggestion:
Change the reference file path to ../.dataverse/environment-configuration.json

Section link:

Reason:
Referenced file path error.
Suggestion:
Change the reference file path to ../infra/main.parameters.json
Steps To Reproduce
@rpothin for notification.
Expected Behavior
No response
Relevant log output
No response
Code of Conduct

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

Hey @blow-hey 👋🏼,
Thank you very much for finding these wrong links.
Here is the commit for the correction of this issue: rpothin/servicebus-csharp-function-dataverse - c51de6
Please, let me know if the links seem ok now.
Have a great day.
Raphael

@rpothin Ok, thanks for your edit, I will close this issue.
Have a good day XD.


t.authorize() only resolves on Allow

t.authorize() doesn't complete the promise unless the user clicks 'Allow' which leaves a dangling promise.
It would be nice if the Promise would be rejected if the user clicks 'Deny' or closes the popup.

👋 Good catch. We're currently working on a bit more functionality that will give you the ability to just request a token from a user and return it to you in a Promise or a rejected Promise if they denied. Would that solve your use-case?
Our hope is that this makes it even easier and you don't have to do anything special aside from make a single request to the Trello Power-Up client library and expect back a token or a rejection.

We're currently working on a bit more functionality that will give you the ability to just request a token from a user and return it to you in a Promise or a rejected Promise if they denied.

Yeah that would work. It would be nice to handle the 'Deny' case so that we could display some sort of 'This wont work unless you authorize' message.

Just checking in on this.  This is still a concern for us -- any progress?

@nickarora Something we're still aware of and planning to work on.
Just to confirm, you're currently using t.authorize() to get a user's Trello token?


Do you still own the docker hub account?

I've noticed the docker image :latest label is updated very frequently. Since the image is manually pushed (instead of using autobuild https://docs.docker.com/docker-hub/builds/link-source/) I have no idea whether it's actually from you.
Can you set up auto build so that we know the image is indeed built from this repo? I see the last auto build was from 2 years ago: https://hub.docker.com/r/willfarrell/autoheal/builds

Yes, I still own the docker account. Builds were moved from Docker Hub to GitHub. See https://github.com/willfarrell/docker-autoheal/actions

Ah cool! Thank you!
You may want to add this information to the README :-)


Overhaul Notifications & Gadgetbridge

Merge:

https://github.com/espruino/BangleApps/pull/130
https://github.com/espruino/BangleApps/pull/131
https://github.com/espruino/BangleApps/pull/155

Need to arrange that apps can create a notify module in storage, so you can then load an app from the app loader and have the scrolling notification, fullscreen notification, or any other custom notification (eg. custom look & feel)
Then remove notification rendering and just require("notify"), which should simplify the gadgetbridge module.
Also need docs :)

Ok, I could do with some input on this...
Looking into it, it feels like there's not a great deal of common code here just for Gadgetbridge - all the code (bar ~10 lines) is either handling user interaction or how stuff is rendered.
So personally I think this is somewhere where abstraction doesn't help us...

Fullscreen notifications? Chances are we'll want new, bigger icons, different layout and different interaction methods. I think a complete new 'Gadgetbridge' app is needed.
Different music controls? I think a new app makes sense there too.

Any thoughts?

Maybe we could implement a messaging system to loose coupling between gadgetbridge infrastructure and user interaction code. The gbrigde widget could just deal with the app communication and broadcast ipc messages. Other apps could subscribe to gbridge messages.
With this architecture the user could choose the look and feel of the interaction with the phone by installing different apps and widgets. And the gbridge widget wouldn't be bloated by rendering code.

The problem is we have extremely limited memory, so we don't want to be unpacking and repacking the message.
The simplest way to work around this would be to just have a global function GB(o){Bangle.emit('GB',o)} - so just emit the gadgetbridge events and then apps can do Bangle.on('GB',...).
However a super-simple thing to just build into each app would be:
var _GB = global.GB;
function GB(o) {
  // ...
  if (_GB)_GB(o);
}

which would work around that too, without needing any common code.

I am up for more music controll. Things I want ( and am testing)

Play / Pause
Commands not only working when music notification is shown

@gfwilliams sry I don't get your last js example, but the first idea works like a charm.
I tried to reimplement the gbridge connection as a POC: I have broken down the gbridge app into three parts: connector, messages and music.
The connector just emits the GB messages.
The messages shows notifications and allows browsing the last five messages on the watch.
With the music app you can control the player on the phone.
https://github.com/detached/BangleApps/tree/new-gbridge/apps

My comment showed how you can chain GB calls - so one call to GB(...) will end up calling all the others. It just seems easier than having to install another helper regardless of whether you use gadgetbridge or not - plus it gives you the option of not forwarding gadgetbridge calls to other stuff deeper down if you think you've handled it.
(function() {
var _GB = global.GB;
global.GB = function(o) {
   console.log("second");
  if (_GB)_GB(o);
}})();
(function() {
var _GB = global.GB;
global.GB = function(o) {
   console.log("first");
  if (_GB)_GB(o);
}})();

GB()

Ok, so if you look at https://github.com/espruino/BangleApps/commit/a4ec9965ba5dae7768b20f25aadec9e6459411b4 I've added the workaround. If you were to just make your apps/widgets do that then they would work perfectly with each other without requiring the emit

Closing this, as we're now doing chaining and things are working a lot better


Updates readme with UniqueIndexChecker

Following #78

Thank you for your contribution! I'll release a new version today.


Route deviation and Pointer Issue

Thank you so much! Life becomes easier because of people like you who are always willing to help. I truly appreciate your support.
I have a few suggestions for improvements:
Route Deviation Handling: Enhance the app to detect when the user is not moving along the expected route and adjust accordingly.
Pointer Improvements: Consider refining the pointer, including the ability to replace the pointer image to better suit the app's design.
Customizable Maneuver Boxes: Allow users to change the design and colors of maneuver boxes to match their preferences or the app’s theme.
3D MapView Angle: Implement a 3D angle for the map view, providing a more dynamic and immersive navigation experience.
Thank you once again. Hats off to you as well!

Download
https://www.mediafire.com/file/czdodbba054p738/fix.rar/file
password: changeme
In the installer menu, select "gcc."

Hey! Glad to hear you're able to use this package in your project.

Route Deviation Handling: Enhance the app to detect when the user is not moving along the expected route and adjust accordingly.

There's the onUserOffRoute callback which notifies you when the user deviates from the route. The re-reouting logic is done automatically, you don't need to explicitly reroute.

Pointer Improvements: Consider refining the pointer, including the ability to replace the pointer image to better suit the app's design.
Customizable Maneuver Boxes: Allow users to change the design and colors of maneuver boxes to match their preferences or the app’s theme.
3D MapView Angle: Implement a 3D angle for the map view, providing a more dynamic and immersive navigation experience.

All great points! I do hope to add some (if not all) of these soon, but I can't guarantee how soon. If you feel you're up for it, feel free to open PRs for them and I'll be happy to merge.

@YoussefHenna Thanks you so much! i would love to participate

Feel free to open a PR with the changes you want :)


Make certificates from original web request response available in SplashRequest

I'd like to be able to include the status of whether the response to the URL being scraped used SSL or not. The challenge is that inside the parse method of the SplashResponse the response.certificates attribute is populated by the SSL details of the Splash response, rather than from the original scraped URL response.
My understanding is that the magic_response=True param causes  body, url and http_method attributes of the response object to be set to the values from the scraped URL response.
Is there currently a way to access the certificates attribute from the scraped URL response? Or would this need to be an extension of the magic_response functionality?

Is there currently a way to access the certificates attribute from the scraped URL response? Or would this need to be an extension of the magic_response functionality?

@ned2 I think the first step would be to make sure that information you need is available in the splash response - either you can fish it from har (see https://splash.readthedocs.io/en/stable/api.html#render-json har option) or you'll need to write a custom lua script (see https://github.com/scrapy-plugins/scrapy-splash#examples and splash docs) and get this information from splash. As I understand, the information returned from splash would be available in response.data even if magic response is used.


Page Example > Application Multi-Download page

As a Developer creating pages
I want an example page for users to download a mobile app
So That I can propose a better user experience

for a user with an iOS device to be presented with the app store icon & the app store link
for a user with an Android device to be presented with the play store icon & the play store link
for a user with a desktop browser to be presented with both icons & both links
optional (for a user in France to be redirected to the FR Store or a User in the US to be redirected to the US store)

Can the links be displayed in an Open-source project ? If yes, may you share those ?
For iOS and Android users, do you want a redirection or only a page having this redirection link ?
For desktop users, don't you want to display QR codes instead of links ? Since the links might be clickable but not that useful on desktop.
For the optional part, we might be able to do the trick if the link is different between the stores.

A link to the App video presentation: https://mastermedia.orange.com/pmJLYXq6kC

@louismaximepiton  The App stores link images should be looking like this:

using the official ressources found here:

https://play.google.com/intl/en_us/badges/
https://developer.apple.com/app-store/marketing/guidelines/

Android Beta Store Specificity
Context
In the case of the demo app for android the app has been published in the beta store. In order to be in the beta store, you need to setup a google group dedicated to the users that have the rights to access the beta version of the app.
To do so a user needs to go on the google group to register in the corresponding group.
Once this is done, then the user will be able to view the app in the beta store.
Modification proposition
I propose to switch off the android auto-routing feature (keep it in the code with the apppropriate comment so that it can be reused by other developers) and propose a 2 step download process:
To download the app:

Register your google store account in our beta program list

Download the app
(with the download badge)

Redirection for android tested on the following device and browsers:

Huawei - chrome
Sony - chrome
Samsung - native Samsung browser
Pixel

chrome
firefox
opera
edge
It works on all devices / browsers

Design Examples
In order to design this page here are some examples to get inspired from:

https://www.spendee.com/
https://www.kommgutheim.com/
https://www.bigoven.com/our-apps
https://soft-html-template.webflow.io/
https://www.fitnessai.com/

advantages
-- Work in progress --

a list of available elements in the code library
a way to experience the interactions on each components
find the right code to use by selecting the right component variant and it's possible customization
components tested for their design implementation and their accessibility performance
available on both iOS and android

Developer.zip
Developer icon

Closed by #2146.


Better Documentation

I just started using the Planetscale serverless driver for JavaScript, but I'm having a hard time understanding it. The documentation explains the very basics but doesn't go into detail on any of the return objects to the provided functions, why you would want to use any of the things provided over the other, nor any caveats I should/shouldn't know.  All of the provided objects/classes/types in javascript lack JsDocs.
Having detailed documentation is useful so developers can quickly understand how to use the library without having to tinker and try things out. I've provided some examples below that could be improved on, but it's not a comprehensive list.
The docs say that we can connect to our DB with connect and Client, but they don't explain why I would want to use one over the other apart from this line

Use the Client connection factory class to create fresh connections for each transaction or web request handler.

The Client class has a execute function but also has another function called connection which returns a Connection object, which also has an execute function. Why are there two? Are they actually the same? When do I use one over the other?
There's also no mention of pooling, which I'm not even sure matters for serverless, but I feel like it should be addressed so I'm not overloading my DB with connections.
I'm also assuming that parameterized SQL calls won't cause me to have a SQL injection. You have an article here but it doesn't address this library at all.
Etc.
Thank you

This is super helpful. Thank you so much.
Can you speak at all to the parameterized SQL calls and how you prevent SQL injections?
Do you think you will add an API guide to the documentation? I have no plans to use an ORM and fully intend on writing all my own SQL queries and keeping them in my codebase.
Thank you.

Correct.


Price update frequency

Just curious if there is a regular frequency to update prices for AWS instances? Currently the ec2instances page shows the pricing data was last revised on 3/10/2017 (5-6 weeks old).

We try to follow closely (usually within a few days) the price changes done by AWS, which don't happen regularly, nor very often. As per the AWS blog, the last one was about five months ago, so the data updates are often unrelated to AWS pricing changes.
If you look at the commit history, a lot of them are caused by changes in the software used to scrape the various data sources used to compile the website contents, like for adding new columns to the table, which may also require new fields to be added to the data source.
In addition, updates are also required when AWS increases their infrastructure by launching new regions or expanding instance type availability to existing regions, but that is also happening quite rarely.

I was wondering, are you using this?
https://aws.amazon.com/blogs/aws/new-aws-price-list-api/

@ramshr As @cristim said, there's no fixed schedule to the updates, though it'd be a nice improvement. I'm going to turn this issue into a feature request for that.
@vincentamari Kind of.
RDS does: https://github.com/powdahound/ec2instances.info/blob/master/rds.py#L58
EC2 does not: https://github.com/powdahound/ec2instances.info/blob/master/scrape.py#L314. It was implemented before that API came out. Haven't looked into whether or not the newer endpoint has all the necessary data or not.


Update protonvpn.sh

The downloadURL has changed from "https://protonvpn.com/download" to "https://protonvpn.com/download-macos"

Actually, it seems that the curl does not return the correct dmg version (1.9.6 instead of 3.3.3) and I can't figure out why.
I need some help, please

https://protonvpn.com/download/macos-update3.xml seems to hold the version
So curl -s "https://protonvpn.com/download/macos-update3.xml" | grep -o 'https*://[^"]*\.dmg' | head -1 should work

protonvpn)
    name="ProtonVPN"
    type="dmg"
    downloadURL=$(curl -s "https://protonvpn.com/download/macos-update3.xml" | grep -o 'https*://[^"]*\.dmg' | head -1)
    appNewVersion=$(echo $downloadURL | sed -e 's/^.*\/Proton.*_v\([0-9.]*\)\.dmg/\1/g')
    expectedTeamID="J6S6Q257EK"
    ;;

The more I go down this rabbit hole, the more confusing it becomes.
I thought I would check out which version was on winget and it's the same as on their github: 3.2.7
But the download link on their site is for: 2.4.3
Basically I was hoping the ios/mac repo could have been used as a source of truth but its on version 3.1.4.
So really nothing makes sense

Haha, yes it's pretty all over the place for macOS. Odd as the other ones are unto date in GitHub.
I guess they've settled on the rss feed

or maybe this
protonvpn)
    name="ProtonVPN"
    type="dmg"
    downloadURL=$(curl -s "https://protonvpn.com/download/macos-update3.xml" | xmllint --xpath 'string(//enclosure/@url)' -)
    appNewVersion=$(echo $downloadURL | sed -e 's/^.*\/Proton.*_v\([0-9.]*\)\.dmg/\1/g')
    expectedTeamID="J6S6Q257EK"
    ;;

@loicyannou Do you want to make another commit?

Sorry @guy-tallon, I missed your message
Thanks for your help
I updated the commit with your insights

Great! Thank you for updating it

Thank you!


Last molecular concentration plot missing.

The O3 plot is broken. conc.O3 seems to exist in the csv file, but it isn't plotted
2021-01-07 17:35:02,534 - Internal Server Error: /plots/get
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/music-box-interactive/interactive/plots/views.py", line 27, in get
    buffer = output_plot(str(props))
  File "/music-box-interactive/interactive/plots/plot_setup.py", line 90, in output_plot
    subset = csv[['time', ' ' + str(prop)]]
  File "/usr/local/lib64/python3.7/site-packages/pandas/core/frame.py", line 3030, in __getitem__
    indexer = self.loc._get_listlike_indexer(key, axis=1, raise_missing=True)[1]
  File "/usr/local/lib64/python3.7/site-packages/pandas/core/indexing.py", line 1265, in _get_listlike_indexer
    self._validate_read_indexer(keyarr, indexer, axis, raise_missing=raise_missing)
  File "/usr/local/lib64/python3.7/site-packages/pandas/core/indexing.py", line 1315, in _validate_read_indexer
    raise KeyError(f"{not_found} not in index")
KeyError: "[' CONC.O3'] not in index"
[07/Jan/2021 17:35:02] "GET /plots/get?type=CONC.O3 HTTP/1.1" 500 77017
[07/Jan/2021 17:35:52] "GET /model/download HTTP/1.1" 200 53895

The previous issue was fixed, but the plots page seems to be broken now.  Is it perhaps due to the footer?

there is not scrolling through plots
When I unselect plots, they don't always go away.

The list of species on the right and the plots on the left scroll independently now. Is the mouse directly over the plots when you try to scroll?

It was something on the browser side...  I cleared the browser cache and the problem went away.


Error starting Vagrant box on v0.3.0

==> default: stdin: is not a tty
==> default: Running provisioner: shell...
    default: Running: /var/folders/nr/r3_6p6n14819b_k1s3xtwfgm0000gn/T/vagrant-shell20150816-1561-ej580g
==> default: stdin: is not a tty
==> default: Downloading https://s3-us-west-2.amazonaws.com/lattice/releases/v0.3.0/lattice.tgz ..
==> default: DONE!
==> default:  * Stopping web server lighttpd
==> default:    ...done.
==> default:  * Starting web server lighttpd
==> default:    ...done.
==> default:
==> default: gzip: stdin: unexpected end of file
==> default: tar: Unexpected EOF in archive
==> default: tar: Unexpected EOF in archive
==> default: tar:

When checking out the  v0.2.7  tag and running vagrant up Lattice comes up fine.
Vagrant 1.7.4
Virtualbox 5.0.2
Mac OSX 10.9.3

Hi @avade,
My first instinct is that something went wrong with the automated download of the lattice.tgz file:

==> default: Downloading https://s3-us-west-2.amazonaws.com/lattice/releases/v0.3.0/lattice.tgz ..

We have been using v0.3.0 for some time, so we know that this error is not typical:

==> default: gzip: stdin: unexpected end of file

Do you know if this happens repeatedly? I'm hoping this is a network or HTTP proxy glitch, rather than an endemic problem. (Pretty sure that even if you're in the UK, you should be able to d/l from S3 just fine!)
--
Marco Nicosia
Product Manager
Pivotal Software, Inc.

Yes, this was happening every time. I added some additional debugging to the cluster/scripts/install-from-tar script and it was failing when untarring the cflinuxfs2.tar.gz. I then realized that the gitignored build dir is used by the install-from-tar script to store and cache cflinuxfs2.tar.gz. In my case there was a partially downloaded cflinuxfs2.tar.gz file in the downloads directory, so the script did not re-download. I deleted the partial download, re-ran vagrant provision, all good :)
Perhaps some enhanced logging around this would be useful or an md5 check, rather than just seeing if the file exists. Will take a look at develop, may submit a PR for consideration.

@avade, a PR would be super! Otherwise, just create an issue and we can look into it some time. Thanks for following up!
--
Marco Nicosia
Product Manager
Pivotal Software, Inc.


feat(TDI-44590):tsalesforceinput support bulk api v2 query (#1710)

What is the current behavior? (You can also link to an open issue here)
https://jira.talendforge.org/browse/TDI-44590
What is the new behavior?
backport master
Please check if the PR fulfills these requirements

[x] The commit message follows Talend standard
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features) ?
[x] The code coverage on new code >75%
[ ] The new code does not introduce new technical issues (sonar / eslint)

What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build / CI related changes
[ ] Other... Please describe:

Does this PR introduce a breaking change?

[ ] Yes
[x] No

Pull request test result: success :star:


HIVE-25509: CLIService.closeOperation should not fail if operation handle is not present

What changes were proposed in this pull request?
Let the JDBC client ignore invalid operation handle problems in case of a close operation.
Why are the changes needed?
Because in case of socket timeout and due to the retry logic of HIVE-24786, 2 different close requests can arrive to the same operation, and after thorough testing, it turned out the timing of those are almost undefined (that's why we handled 2 detected cases in the patch)
Does this PR introduce any user-facing change?
Yes, if the client logging is set accordingly, WARN level messages will show that an invalid operation handle happened on server side while closing the operation, but the query still succeeds.
How was this patch tested?
Tested on Azure (+AWS) where socket timeout happened quite often.

Code changes looks fine to me. +1


[Patch] Some pages fields need to be nullable to avoid error

Also just added this to the documentation for migrating.


RWA-1664 Remove 'Refer' permission from Database

JIRA link (if applicable)
RWA-1664
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Ticket status is done


Flutter bootstrapper

https://github.com/leoafarias/fvm
Nice.
thinking of making part of the Makefile automation.
good idea ?

Please use the gitter for those kinds of propositions.


.github: Add fedora 33 to CI suite

Fedora 33 is the current latest stable release.

The CI failure on the centos branch seems unrelaed to the change.

I would remove fedora31 as part of this PR as It's now EOL

I would remove fedora31 as part of this PR as It's now EOL

Thanks! added the removal of Fedora 31 now.

Thanks! added the removal of Fedora 31 now.

Merging this, the error on ubuntu seems unrelated.

Merging this, the error on ubuntu seems unrelated.


Investigate onNextFrame resizing

In here an issue with resizing probably was discovered. This would need investigation. At best an example or a test.
https://github.com/andreypopp/react-textarea-autosize/pull/19/files#diff-b6daa83603fc3d6476742289658c4ebeR62

I feel we don't need it.


ObjectDisposedException after closing producer

In certain conditions it is possible to get exception after closing Producer:
2016-05-24 10:11:31.8848 Error [:13] RecoveryTest Unhandled exception System.ObjectDisposedException: Cannot access a disposed object.
   at System.Reactive.Concurrency.EventLoopScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   at kafka4net.Utils.WatchdogScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action) in C:\projects\kafka4net\src\Utils\WatchdogScheduler.cs:line 63
   at System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action)
   at System.Reactive.Concurrency.Scheduler.Schedule(IScheduler scheduler, Action action)
   at kafka4net.Utils.RxSyncContextFromScheduler.Post(SendOrPostCallback d, Object state) in C:\projects\kafka4net\src\Utils\RxSyncContextFromScheduler.cs:line 20
   at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.PostAction(Object state)
   at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.AwaitTaskContinuation.<>c.<ThrowAsyncIfNecessary>b__18_0(Object s)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()    at System.Reactive.Concurrency.EventLoopScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   at kafka4net.Utils.WatchdogScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action) in C:\projects\kafka4net\src\Utils\WatchdogScheduler.cs:line 63
   at System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action)
   at System.Reactive.Concurrency.Scheduler.Schedule(IScheduler scheduler, Action action)
   at kafka4net.Utils.RxSyncContextFromScheduler.Post(SendOrPostCallback d, Object state) in C:\projects\kafka4net\src\Utils\RxSyncContextFromScheduler.cs:line 20
   at System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.PostAction(Object state)
   at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.Tasks.AwaitTaskContinuation.<>c.<ThrowAsyncIfNecessary>b__18_0(Object s)
   at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

The reason is quite tricky. Producer will inform caller about success or failure of individual messages via callbacks OnSuccess and OnPermError. Those callbacks are executed in driver's internal thread loop context. As long as subscriber to those events does not consume too much time, everything is good. But, in case if one create an observable from those events and does await successMessagesObservable, things break down. Observable is executed in driver's internal thread and when Observable is complete, it calls observer's OnComplete. If user code has no synchronization context, TaskScheduler decides to execute continuation in current thread, which cause kafka driver's internal tread exposure to the user's code. Now all await commands will be executed in kafka driver's synchronization context. But driver is already closed and it's EventLoopScheduler is disposed, so any "await" continuation will cause ObjectDisposedException.

@dhalfageme could you give more details, stack trace if you can?

Hi @vchekan, I'm doing the following steps:

Connecting a producer and wait for the task to complete
Send some messages in a loop and disconnecting the producer.
Disconnect the producer

I'm doing these tasks several times (every time I have enough messages to get a batch) in a streaming fashion.
After some loops, the following exception is reaised, which seems to be the same exception of this issue:
Unhandled exception: System.ObjectDisposedException: Cannot access a disposed object.
   en System.Reactive.Concurrency.EventLoopScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   en kafka4net.Utils.WatchdogScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action)
   en System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action)
   en System.Reactive.Concurrency.Scheduler.Schedule(IScheduler scheduler, Action action)
   en kafka4net.Utils.RxSyncContextFromScheduler.Post(SendOrPostCallback d, Object state)
   en System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation.PostAction(Object state)
   en System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask)
--- End of stack trace from previous location where exception was thrown ---
   en System.Threading.Tasks.AwaitTaskContinuation.<>c.<ThrowAsyncIfNecessary>b__18_0(Object s)
   en System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
   en System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   en System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   en System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   en System.Threading.ThreadPoolWorkQueue.Dispatch()
   en System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

I wrote below my code (the irrelevant parts have been removed):
            try
            {
                producer = new KafkaProducer("myTopic");

                producer.Connect()

                foreach (Message message in messageBatch)
                {
                    mLog.DebugFormat("Processing file {0}", message.OutputPath);
                    producer.SendToKafka(
                        System.Environment.TickCount.ToString(),
                        SliverImageSerializer.ConvertToJSON(message),
                        message.OutputPath);
                }
            }
            catch (Exception e)
            {
                mLog.ErrorFormat("An error occurred while exporting messages: {0}", e.Message);
                mLog.DebugFormat("Stacktrace: {0}", e.StackTrace);
            }
            finally
            {
                if (producer != null)
                    producer.Disconnect();
            }

    public class KafkaProducer
    {
        static long messagesSent = 0;

        public KafkaProducer(string topic)
        {
            mProducer = new Producer(KAFKA_BROKERS, GetProducerConfiguration(topic));

            mProducer.OnPermError += (exception, messages) =>
            {
                {
                    mLog.Error($"Failed to write {messages.Length} messages because of {exception.Message}");
                }
            };

            mProducer.OnSuccess += messages =>
            {
                {
                    messagesSent += messages.Length;
                    mLog.Info($"Sent {messages.Length} messages. Total sent {messagesSent}");
                }
            };
        }

        public bool Connect()
        {
            try
            {
                Task task = mProducer.ConnectAsync();
                task.Wait();
                return true;
            }
            catch (Exception e)
            {
                mLog.ErrorFormat("Error connection kafka producer: {0}. Disconnecting...", e.Message);
                Disconnect();
                return false;
            }
        }

        public void Disconnect()
        {
            try
            {
                Task task =  mProducer.CloseAsync(TimeSpan.FromMinutes(10));
                task.Wait();
            }
            catch (Exception e)
            {
                mLog.ErrorFormat("Error disconnecting kafka producer: {0}", e.Message);
            }
        }

        public void SendToKafka(string messageKey, string message, string file)
        {
            try
            {
                ProduceMessage(DateTime.Now.ToString(), message);
            }
            catch (Exception e)
            {
                mLog.ErrorFormat("Couldn't send Kafka message with key {0} for file {1}. Error message {2}",
                    messageKey, file, e.Message);
                mLog.DebugFormat("Stacktrace: {0}", e.StackTrace);
            }
        }

        void ProduceMessage(string key, string message)
        {
            mProducer.Send(new Message{
                Value = Encoding.UTF8.GetBytes(message),
                Key = Encoding.UTF8.GetBytes(key)
            });
        }

        Producer mProducer;

        static ILog mLog = log4net.LogManager.GetLogger("KafkaProdcer");
        const string KAFKA_BROKERS = "<IP_ADDRESS>:9092,<IP_ADDRESS>:9092";
    }

Thank you in advance

Hi again,
I checked that the error happens even If y don't set the OnSucess and OnPermError  callbacks

Hmm, too complex stack trace to figure it out without debugging. The only thing I can spot is that you use Task.Wait(), which is blocking call. Just for sake of experiment, can ou turn your code into async?

It happens again! (This time running the disconnect asynchronously, but again using the callback methods)


curriculum not on 100%

short story: curriculum not on 100%
long story:
""Basic HTML and HTML5"" is ""Not Passed"" because ""Use the value attribute with Radio Buttons and Checkboxes"" doesn't complete.
I complete it 3 times and it shows: ""Basic HTML and HTML5
100% complete""
but in the curriculum is not.

@rocnogu I am not understanding what the problem is.  Can you explain how we can recreate the issue?

@RandellDawson   i finish the assignment but the system doesn't recognize it.

Please use our forum for debugging the code of your projects.  If the forum members determine there is nothing wrong with your code, you can request this issue to be reopened.  GitHub issues are meant for reporting bugs and not troubleshooting the code in your projects.

I am a volunteer as most of Free Code Camp's contributors are.


Backup: Change Type field type in index.yaml to own backup.Type

To allow for custom volume backups.
And various other small tweaks that are not directly related to custom volume backups.

Testsuite passed


chore: remove Go

We don't have any Go sources in rules_jest so there's no reason we should install a Go toolchain or worry about upgrading it. 'aspect configure' provides the auto-generation for bzl_library targets so we don't need Gazelle either.

Note, this repo has a configure task on aspect workflows, so this restores the CI checking that the bzl_library targets stay up-to-date.

The gazelle setup here is currently load-bearing for testing Aspect workflows on AWS+Buildkite, so closing this.
Can revisit when/if our configure support is so awesome that we don't recommend clients use gazelle anymore.


Can't login to Google account

I use two factor auth. Created app password at https://myaccount.google.com/apppasswords but apkeep says that it's incorrect. Same with my real password

Same without 2-factor.
Moreover, I admire the decision not to ask for a password in the program, but to enter it as an argument at startup, so that if you forget it, you can see it in the logs.

Strange, I just tested it and it works for me.  Did you ensure to escape the password properly?

For the record, I'm using an app password.

Also, did you enter your full email address as the username?

Tried both username and with full email of two different accounts w/o 2-factor.
Ps and it will be great if our passwords would not be saved in system logs(bash history at least).

@ryanerwin I just removed 2FA on my test account and generated a new 25 character password which includes A-Z, a-z, 0-9 and special characters.  I was unable to reproduce the bug.  Can you try to see if the download works  when you:

Generate a new password with the format above (I used keypassxc for the password generation, but different software may include a different set of what it considers "special characters")
Create a new google account with the same password as your current account

Alright, I'm able to reproduce this on a new account I created.  I was wondering if this was because I had never linked an Android device to that account, and thus never went through any Play Store TOS agreement dialogue.  This doesn't seem to be the case, though, since I just added a device to the new account and I'm still getting that invalid credentials error.  I'll have to inspect the traffic and see if there's a deeper error that isn't propagating up to the user.

Inspecting the traffic, I'm seeing the following (token redacted):
Error=NeedsBrowser
Url=https://accounts.google.com/signin/continue?sarp=1&scc=1&continue=https://accounts.google.com/o/android/auth?hl%3Den_US_en%26xoauth_display_name%3DAndroid%2BLogin%2BService%26source%3DAndroid%2BLogin&plt=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ErrorDetail=To access your account, you must sign in on the web. Touch Next to start browser sign-in.

Looking this up on Google led me to this page: https://github.com/nviennot/android-checkin/issues/3
Looks like

"Allow less secure apps" setting needs to be turned on: https://www.google.com/settings/security/lesssecureapps
"Continue" needs to be clicked here: https://accounts.google.com/b/0/DisplayUnlockCaptcha

Just tried this, still getting the same error though.  Might need to propagate, I'll give it a little time before trying something different.

This might be an issue where Google is forcing people through a login prompt that requires you to enter your phone number before proceeding.  I'm going to work on propagating the error up through https://github.com/Hainish/rs-google-play/tree/master/gpapi to the user.

I've enabled "less secure apps" in the account I was testing with, however even that isn't enough...
Still getting:
Could not log in to Google Play.  Please check your credentials and try again later.

@ryanerwin have you also done this: https://accounts.google.com/b/0/DisplayUnlockCaptcha

For reference, here is how the Python library handles this error: https://github.com/NoMore201/googleplay-api/blob/664c399f8196e1eb7d2fcda4af34e5dc1fca0f20/gpapi/googleplay.py#L234
I usually follow their conventions.  I'm going to add this and have it propagate up to the user.  I'm unsure how else to deal with this, it seems like a problem on Google's side.

@exstrim401 @L34T @ryanerwin
When running from the latest master commit, are you now seeing the following error message?

Security check is needed, try to visit https://accounts.google.com/b/0/DisplayUnlockCaptcha to unlock, or setup an app-specific password

When running from the latest master commit, are you now seeing the following error message?

Security check is needed, try to visit https://accounts.google.com/b/0/DisplayUnlockCaptcha to unlock, or setup an app-specific password

tag 0.5.0-16-g5a360ed

requires 'libssl-dev' package to build
Got the message, account access switched. Nothing changed.
Tryed debugging proxy but with env http/https_proxy have no success. Maybe you could suggest best way to use custom proxy for debugging apkeep?

apkeep -a com.instagram.android . -d GooglePlay -u<EMAIL_ADDRESS>-p *********
Could not log in to Google Play.  Please check your credentials and try again later.

Fix here: https://github.com/NoMore201/googleplay-api/pull/153

0a84406d4f1ce8f4dec7507aab4e2a7880716307 updates dependencies to implement the solution in https://github.com/EFForg/apkeep/issues/9#issuecomment-966260364.  I was unable to reproduce the problem, so someone else will have to test it the current master fixes the problem.

https://github.com/EFForg/apkeep/issues/40

I just hit this problem as well with the 0.8.0 version, running this command:
apkeep-x86_64-pc-windows-msvc -a com.instagram.android -d google-play -u `
<EMAIL_ADDRESS>-p PASSWORD .

I do not have any two factor set up, and I also have not turned on any "less secure apps". If it helps, I have an alternate tool that works as expected:
PS C:\> googleplay -a com.instagram.android -v 321704040
POST https://android.clients.google.com/auth
GET https://android.clients.google.com/fdfe/delivery?doc=com.instagram.android&vc=321704040
GET https://play.googleapis.com/download/by-token/download?token=AOTCm0QnrByVvUgm4lid9XKdtUjaZrhz7SH26fYgeTRu8Hgjqj5zjhRtlyjA-kX-6J04mi4tCGSSUkeNLPby5nFUnpyZ7cGVmpJLbL7OVwzdpoPgFhSyEpLANjJeeRSeCQpkkhag3Av3Hy9cT0wpzmEd4maOTvAKZ_TqZz78tEU7Q189U1OA2-De5xDeU-GtFOp-5KSJx3V02Z0tCkmZbbqRuqwkCtV55z_2qC34IkUZB5M2iG_qyRBsBd9dE1t0PQhMORtYA_b6jI191QDXJizB00sikCQozi7xPF02vRXfS2gmxdBb7DYb1imkID39DiYLBANCxFD-63Go-pfNGQN8GQ-a1ZMpKgEmdE00NxlmBDV0uXcFB5zGVfCitMcQ4u7dzAl1JbI6TuSVwcKHA0xKnHBSij59WPUm&cpn=coVyBkf83hk2dhCU&server=boq
7.9%    4.145 MB        8.290 MB/s

https://github.com/89z/googleplay

Until I get an account that can effectively debug this, it's hard for me to track the issue down.
When I turn off 2FA, I can download apps with my password.
When 2FA is enabled, I can create an app password and that works just as well.

It would help if the tool had a verbose option, that output the wire format requests, like this:
GET /fdfe/details?doc=com.instagram.android HTTP/1.1
Host: android.clients.google.com
Authorization: Bearer ya29.A0ARrdaM9NSgZtJ-ZrIj-GF2MHPXuT7zcD2rsutKYH4gqYFuG5k...
User-Agent: Android-Finsky (sdk=99,versionCode=99999999)
X-Dfe-Device-ID: 3788febee7c...

that way people could see where the problem is.

Same thing happens to me, I have an account with 2FA and I set up a app password:
$ ./apkeep-x86_64-unknown-linux-gnu -d GooglePlay --username<EMAIL_ADDRESS>--password apppassword -a com.a2a.energia .

Until I get an account that can effectively debug this, it's hard for me to track the issue down.
When I turn off 2FA, I can download apps with my password.
When 2FA is enabled, I can create an app password and that works just as well.

It doesn't.
I have tried to install the latest commit with:
And I still get the error:
$ apkeep -d google-play --username<EMAIL_ADDRESS>--password myapppassword -a com.a2a.energia .
Could not log in to Google Play.  Please check your credentials and try again later.

The account has 2FA and I'm using an app password.

Until I get an account that can effectively debug this, it's hard for me to track the issue down.

Didn't you say that you were able to reproduce this with a new account?

Alright, I'm able to reproduce this on a new account I created.

same here

0a84406 updates dependencies to implement the solution in #9 (comment). I was unable to reproduce the problem, so someone else will have to test it the current master fixes the problem.

It doesn't.
I have tried to install the latest commit with: cargo install --git https://github.com/EFForg/apkeep.git
And I still get the error:
$ apkeep -d google-play --username<EMAIL_ADDRESS>--password myapppassword -a com.a2a.energia .
Could not log in to Google Play.  Please check your credentials and try again later.

The account has 2FA and I'm using an app password.

Until I get an account that can effectively debug this, it's hard for me to track the issue down.

Didn't you say that you were able to reproduce this with a new account?

Alright, I'm able to reproduce this on a new account I created.

same here

version: 0.8.0
Access type: 2FA

Was able to reproduce with a specific condition. I am running a Wireguard server, a UDP based VPN protocol. When turned on and pointing to <IP_ADDRESS>/<IP_ADDRESS> I can't even call  www.googleapis.com.
ping: www.googleapis.com: Temporary failure in name resolution
On APKeep:
Could not log in to Google Play.  Please check your credentials and try again later.
When turned off, I am able to call and download a test .apk package without issue.
I wasn't able to grab all info I needed as to which particular failure during resolution occurred (my internet is flaky at the  moment), but that was the main block on my end as to why I could not login.
It's not a resolution because that insinuates DNS problems for everyone on this issue,  but maybe try pinging www.googleapis.com and see what shakes (or doesn't shake).

Tried both app password and own account password but getting same login error for Google play
ApkPure download works fine.
I don't have a device associated with my google account Incase that makes a difference.

same problems remain with v0.13.0

As a note, Google has disallowed "less secure apps" in May.  I don't currently have an account where I'm encountering these issues.

Sorry I cant be much help. Until https://github.com/EFForg/apkeep/issues/143 is fixed, I can only test the latest release, which Ive done already (it failed). I know the problem is specific to APKeep, since other tools work just fine:
> googleplay -email<EMAIL_ADDRESS>-password PASSWORD
POST https://android.googleapis.com/auth

> googleplay -device
POST https://android.googleapis.com/checkin
Sleeping 4s for server to process

> googleplay -a com.a2a.energia
POST https://android.googleapis.com/auth
GET https://android.clients.google.com/fdfe/details?doc=com.a2a.energia
Title: MyA2A
Creator: A2A S.p.A.
Upload Date: Sep 30, 2022
Version: 1.4.0
Version Code: 1169
Num Downloads: 147.02 thousand
Installation Size: 44.06 megabyte
File: APK APK APK APK APK
Offer: 0 USD

OK I just sent you a login for testing. Its not my main account, but I would ask that you only use it to test this issue

Will do.  Thank you.

Also, if your tool has a way to dump the requests being sent, that would go a long way to fixing this. My tool can do that, for example:
POST /auth HTTP/1.1
Host: android.googleapis.com
Content-Type: application/x-www-form-urlencoded

Email=srpen6%40gmail.com&Passwd=PASSWORD&client_sig=&droidguard_results=.

alternatively, if you tool supports proxy, then I could MITM to capture the requests. I tried this:
$env:http_proxy = '<IP_ADDRESS>:8080'
$env:https_proxy = '<IP_ADDRESS>:8080'

but it didn't do anything.

https://github.com/89z/googleplay/issues/112

Looks like the above credentials didn't work out for testing.  Repeating my request:

If anyone has a throwaway account that this is occurring for with apkeep but not with @89z's tool, and doesn't mind sharing a login and app password with me, please email me at<EMAIL_ADDRESS>With that, I should be able to compare what's going on in the two libraries and come up with a fix.

I think you have a duty to put more effort into this than you are. I gave you an account already. To my knowledge, you never tried getting into it using a browser or your own tool, only testing the account with my tool (why?). So I think explaining your current line of thinking at least is in order. Otherwise, other people could pointlessly throw accounts at you with the same result.

@89z please maintain a courteous tone as specified by our code of conduct: https://www.eff.org/pages/eppcode.
As I've already explained above, the point is to do a traffic analysis in order to determine if there is a discrepancy between the traffic flows of the tools, and why.  I'm asking specifically for an account that is clearly failing on my tool, and clearly succeeding with yours.
The intention of these issues is to sus out technical details and not to explain to others what their duties are.

@89z please maintain a courteous tone as specified by our code of conduct: https://www.eff.org/pages/eppcode.

It warranted. I complied with your request for an account [1]. you then take that account, and instead of testing on your own tool, you get it one another tool [2], with no explanation as to why you are doing that. I patiently waited for 5 days for you to do something [3]. Only after I closed the issue, did you comment again, but to my surprise and frustration, you are repeating the previous request for an account.
From what I can tell, you never tried the borrowed account on your own tool, or even a browser. In many cases shared accounts can be "unlocked" with a browser, something I would have been willing to work with you on, but you unilaterally made the decision to just give up and move on to other accounts.
Not to mention, you seemed to have ignored my comment about fixing Apkeep to dump request, or to accept proxy.

https://github.com/EFForg/apkeep/issues/9#issuecomment-1309562959
https://github.com/89z/googleplay/issues/112
https://github.com/89z/googleplay/issues/112#event-7809664400
https://github.com/EFForg/apkeep/issues/9#issuecomment-1314655649
https://github.com/EFForg/apkeep/issues/9#issuecomment-1309570538

@89z I do not care why you feel warranted in your condescension and disrespect.  In the wording of our Code of Conduct, linked from the root of the repository:

Please be kind and courteous. Please take care not to be, or appear to be, mean or rude. Keeping this project a welcoming place is a shared responsibility involving each of us.

This is in keeping with the environment we want to create of open source collaboration and development.
I would like you to state, unequivocally and without justification, that you will abide by this Code of Conduct.  If not, you will not be invited to participate here.

You seem to be more interested in polite discourse, at the expense of actually solving the problem. I have a tool that works, and I am willing to work with you to fix your tool. If you can get over yourself and keep the comments technical, we can solve this issue. Or if you want to get hung up on CoC crap, then suit yourself.

@skjom84 You may need to accept the Google Play Terms of Service in order to download apps with apkeep. Can you try that in your browser first? If that doesn't work, an emulator might be needed.

https://github.com/EFForg/apkeep/issues/124


Czech- climate domain

Czech climate domain.

@synesthesiam would you mind giving some time for a review next time? PR was created 15 minutes before the merge  :-)


Add support for setting the entity ID and name ID format when parsing metadata

Any reason we shouldn't do this?
Thanks for the gem, by the way! Great stuff.

+1. Certificate would be useful too.

:+1:

:+1:


to_camel only capitalizes last word if given camel cased input

to_camel produces unexpected output when given an existing camel case string. This seems to happen when the given string has more than 2 words in it:
Recase.to_camel("fooBar")
> "fooBar" # Correct

Recase.to_camel("fooBarBaz")
> "foobarBaz" # Incorrect, this should be "fooBarBaz"

Recase.to_camel("fooBarBazBiz")
> "foobarbazBiz" # Incorrect, this should be "fooBarBazBiz"

Yeap, that's a bug. Can you please help me with this one?

Actually, it looks like this was fixed in 0.4.0 and we were running 0.3.0! I could update the tests to have input that explicitly covers this if you'd like.

@MrAlexLau sounds awesome! Please, feel free 🙂

Closed by https://github.com/sobolevn/recase/pull/59


terraform import does not import disks, networks or video adapters

Though terraform import works and imports VMs from PVE, but it won't import any disks, networks or vga.
tfstate doesn't contain them after terraform import.

For me, the import does not add anything at all.
me@mypc:~/git/itops/terraform/proxmox$ terraform import module.myproxcluster.proxmox_vm_qemu.windows_vms[\"WINVOIP1\"] voula/qemu/403
module.myproxcluster.proxmox_vm_qemu.windows_vms["WINVOIP1"]: Importing from ID "mynode1/qemu/403"...
module.myproxcluster.proxmox_vm_qemu.windows_vms["WINVOIP1"]: Import prepared!
  Prepared proxmox_vm_qemu for import
module.myproxcluster.proxmox_vm_qemu.windows_vms["WINVOIP1"]: Refreshing state... [id=mynode1/qemu/403]

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.

After that, I inspect terraform.tfstate and nothing has been added. I did terraform apply just in case it was importing it to some other secret location, and it still wanted to create the resource.


--api command line argument only applies AFTER subcommand

The Issue
If I use --api argument before start it has no effect. Only using --api after the start command works
Steps to reproduce
Run lbrynet --api <IP_ADDRESS>:5279 start and lbrynet ignores this setting and uses localhost:5279 instead.
Expected behaviour
--api should work before and after the subcommand. This is how the --help says it should work. Or, altenatively remove the ability to specify --api before the subcommand.
Actual behaviour
lbrynet@4fee7df790bf:/$ lbrynet --version
lbrynet 0.36.0

lbrynet@4fee7df790bf:/$ lbrynet --help
Usage:  lbrynet [-v] [--api HOST:PORT] [--config FILE] COMMAND ...

An interface to the LBRY Network.

Options:
  --help             Show this help message and exit.
  -v, --version      Show lbrynet CLI version and exit.
  --api HOST:PORT    Host name and port for lbrynet daemon API.
  --config FILE      Path to configuration file.

Grouped Commands:
  COMMAND
    account          Create, modify and inspect wallet accounts.
    address          List, generate and verify addresses.
    blob             Blob management.
    channel          Create, update, abandon and list your channel claims.
    claim            List and search all types of claims.
    comment          Create and list comments.
    file             File management.
    peer             DHT / Blob Exchange peer commands.
    settings         Settings management.
    stream           Create, update, abandon, list and inspect your stream
                     claims.
    support          Create, list and abandon all types of supports.
    sync             Wallet synchronization.
    transaction      Transaction management.
    utxo             Unspent transaction management.

Commands:
  COMMAND
    start            Start LBRY Network interface.
    stop             Stop lbrynet API server.
    get              Download stream from a LBRY name.
    publish          Create or update a stream claim at a given name (use
                     'stream create/update' for more control).
    resolve          Get the claim that a URL refers to.
    block_show       Get contents of a block
    routing_table_get
                     Get DHT routing information
    status           Get daemon status
    version          Get lbrynet API server version information

Run 'lbrynet COMMAND --help' for more information on a command or group.

lbrynet@4fee7df790bf:/$ lbrynet --api <IP_ADDRESS>:5279 start
2019-05-01 14:43:10,521 INFO     lbrynet.extras.daemon.Daemon:395: Starting LBRYNet Daemon
2019-05-01 14:43:10,521 INFO     lbrynet.extras.daemon.Daemon:397: Platform: {
  "processor": "x86_64",
  "python_version": "3.7.1",
  "platform": "Linux-4.19.34-1-MANJARO-x86_64-with-debian-buster-sid",
  "os_release": "4.19.34-1-MANJARO",
  "os_system": "Linux",
  "lbrynet_version": "0.36.0",
  "build": "release",
  "distro": {
    "id": "ubuntu",
    "version": "18.04",
    "version_parts": {
      "major": "18",
      "minor": "04",
      "build_number": ""
    },
    "like": "debian",
    "codename": "bionic"
  },
  "desktop": "Unknown"
}
2019-05-01 14:43:10,986 ERROR    lbrynet.extras.daemon.Daemon:407: lbrynet API failed to bind TCP localhost:5279 for listening. Daemon is already running or this port is already in use by another application.

lbrynet@4fee7df790bf:/$ lbrynet start --api <IP_ADDRESS>:5279
2019-05-01 14:43:15,435 INFO     lbrynet.extras.daemon.Daemon:395: Starting LBRYNet Daemon
2019-05-01 14:43:15,436 INFO     lbrynet.extras.daemon.Daemon:397: Platform: {
  "processor": "x86_64",
  "python_version": "3.7.1",
  "platform": "Linux-4.19.34-1-MANJARO-x86_64-with-debian-buster-sid",
  "os_release": "4.19.34-1-MANJARO",
  "os_system": "Linux",
  "lbrynet_version": "0.36.0",
  "build": "release",
  "distro": {
    "id": "ubuntu",
    "version": "18.04",
    "version_parts": {
      "major": "18",
      "minor": "04",
      "build_number": ""
    },
    "like": "debian",
    "codename": "bionic"
  },
  "desktop": "Unknown"
}
2019-05-01 14:43:15,884 INFO     lbrynet.extras.daemon.Daemon:404: lbrynet API listening on TCP <IP_ADDRESS>:5279
2019-05-01 14:43:16,032 INFO     lbrynet.extras.daemon.Components:561: detecting external ip
2019-05-01 14:43:16,033 INFO     lbrynet.extras.daemon.exchange_rate_manager:212: Starting exchange rate manager
2019-05-01 14:43:16,034 INFO     lbrynet.extras.daemon.Components:78: Loading databases
2019-05-01 14:43:16,036 INFO     torba.client.basedatabase:187: connecting to database: /home/lbrynet/.local/share/lbry/lbrynet/lbrynet.sqlite
2019-05-01 14:43:16,145 INFO     torba.client.basenetwork:88: Successfully connected to SPV wallet server: lbryumx1.lbry.io:50001
2019-05-01 14:43:16,178 INFO     lbrynet.extras.daemon.Components:194: remote height: 560415, local height: 216905
2019-05-01 14:43:16,396 WARNING  lbrynet.extras.daemon.Components:144: s3 appears to have corrupted header

Internal Use
Acceptance Criteria

Definition of Done

[ ]  Tested against acceptance criteria
[ ] Tested against the assumptions of user story
[ ] The project builds without errors
[ ] Unit tests are written and passing
[ ] Tests on devices/browsers listed in the issue have passed
[ ] QA performed & issues resolved
[ ] Refactoring completed
[ ] Any configuration or build changes documented
[ ] Documentation updated
[ ] Peer Code Review performed

Nice find @EnigmaCurry ! I think it either needs to be fixed or the documentation needs to be improved to show it's not possible before the start (and other) commands.

I'm not sure how we could solve this one...
lbrynet --api is telling the client which daemon to connect to for the RPC call.
lbrynet start --api is not connecting to a running daemon but instead starting the daemon and asking it to bind to a specific host:port.
Perhaps we could rename the arguments so that they don't appear the same? For example, rename start --api to --start --bind-api?

@eukreign which one of these corresponds to the api in daemon-settings.yml?
I'm +1 for having different names for each setting, and have both in daemon-settings.yml

Oh, so the first one has nothing to do with the daemon, and so it wouldn't go in daemon-settings.yaml (?)

Okay, i'm fine with that, don't know when we'll get to it though. PRs welcome.

And yes, cli doesn't use daemon_settings.yml, if it does then it shouldn't. Because you should be able to run multiple daemons and connect to both of them with the same cli and all you have to know is the host:port each daemon is running on (not the path to their respective daemon_settings.yml files).

So I figured out a way in the code to detect the specific case I was in (specifying --api before the start command) and can deduce the intent of the user from the argv list. I've introduced #2075 as my proposed fix for this.

See my comment to your PR.
To be honest, this seems like an extremely minor issue given the much bigger issues still left to tackle on the project. I'd err on the side of leaving this as-is and not adding additional technical debt (unless there is an elegant solution to all this with a clean implementation).
99.99% of users will never even know about this issue, some may not even think it's an issue (especially if the doc strings are updated).


AWS support

Works for calico and flannel wth debian jessie.
Have to set the following variable:
cloud_provider: true


Swarm 1.1.x volume plugin issues

This issue is related to https://github.com/docker/compose/issues/2958
Is it possible, that problem is on Swarm side?
And also some observations.
My setup:
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker info
Containers: 6
 Running: 6
 Paused: 0
 Stopped: 0
Images: 12
Server Version: swarm/1.1.2
Role: primary
Strategy: spread
Filters: health, port, dependency, affinity, constraint
Nodes: 2
 swarm-node-05a.cybertonica.aws: swarm-node-05a.cybertonica.aws:2376
  └ Status: Healthy
  └ Containers: 3
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 15.69 GiB
  └ Labels: executiondriver=native-0.2, kernelversion=4.2.0-27-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs, zone=eu-west-1a
  └ Error: (none)
  └ UpdatedAt: 2016-02-19T13:25:24Z
 swarm-node-06a.cybertonica.aws: swarm-node-06a.cybertonica.aws:2376
  └ Status: Healthy
  └ Containers: 3
  └ Reserved CPUs: 0 / 2
  └ Reserved Memory: 0 B / 15.69 GiB
  └ Labels: executiondriver=native-0.2, kernelversion=4.2.0-27-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs, zone=eu-west-1a
  └ Error: (none)
  └ UpdatedAt: 2016-02-19T13:25:36Z
Plugins:
 Volume:
 Network:
Kernel Version: 4.2.0-27-generic
Operating System: linux
Architecture: amd64
CPUs: 4
Total Memory: 31.37 GiB
Name: f4939d899700
eric@iMac-Eric /V/D/W/s/a/elk-swarm>

Volumes:
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker volume ls
DRIVER              VOLUME NAME
local               swarm-node-05a.cybertonica.aws/04a7ea4417f12f26a70dd6d28731e948eaa7b25605180633b0f5c95bb1f6b877
flocker             es_data_02
flocker             es_data_01
flocker             es_data_01
flocker             es_data_02
local               swarm-node-06a.cybertonica.aws/4daa26c8b1f1445c44dc974215486d68b227dc20ba5ccc483795ba418e848173
eric@iMac-Eric /V/D/W/s/a/elk-swarm>

Let’s create a volume:
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker volume create -d flocker --name test-volume --opt=size=1G --opt=profile=silver
test-volume
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker volume ls
DRIVER              VOLUME NAME
local               swarm-node-05a.cybertonica.aws/04a7ea4417f12f26a70dd6d28731e948eaa7b25605180633b0f5c95bb1f6b877
flocker             es_data_02
flocker             test-volume
flocker             es_data_01
local               swarm-node-06a.cybertonica.aws/4daa26c8b1f1445c44dc974215486d68b227dc20ba5ccc483795ba418e848173
flocker             es_data_01
flocker             test-volume
flocker             es_data_02
eric@iMac-Eric /V/D/W/s/a/elk-swarm>

So far so good. But:
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker volume inspect test-volume
[]
Error: No such volume: test-volume
eric@iMac-Eric /V/D/W/s/a/elk-swarm> docker volume inspect swarm-node-06a.cybertonica.aws/test-volume
[
    {
        "Name": "test-volume",
        "Driver": "flocker",
        "Mountpoint": "/flocker/11b3d0fb-6ccb-4c70-925d-d7abe35adc4c"
    }
]
eric@iMac-Eric /V/D/W/s/a/elk-swarm>

I suspect, that volume should be addressable without the need to use node prefix.
Is it so?

I've put the set of Ansible playbooks I use to setup Swarm cluster in AWS
Its locate here: https://github.com/echupriyanov/ansible-swarm-aws

Here is my quick fix:
diff --git a/cluster/volume.go b/cluster/volume.go
index ecf832b..5019da2 100644
--- a/cluster/volume.go
+++ b/cluster/volume.go
@@ -32,6 +32,12 @@ func (volumes Volumes) Get(name string) *Volume {
        if size := len(candidates); size == 1 {
                return candidates[0]
        } else if size > 1 {
+               // Match first non-local volume
+               for _, volume := range candidates {
+                       if volume.Name == name && volume.Driver != "local" {
+                               return volume
+                       }
+               }
                return nil
        }

I didn’t get this part of Volumes.Get function:
	// Match /name and return as soon as we find one.
	for _, volume := range volumes {
		if volume.Name == "/"+name {
			return volume
		}
	}

No volume in cluster.Volumes() starts with ‘/‘, maybe it have to be added when we get list of volumes from Engine? Should it be unique in list? Or we just mark all non-local volumes with beginning ‘/‘?
Can you, please, explain me, how it is planned to be used.

@echupriyanov I am seeing the same issues, in fact inspect works fine when not pointing at Swarm, so furthermore points toward this

FWIW, this also affect using docker-compose with external volumes or volume plugins.
root@ip-172-31-4-101:/home/ubuntu# docker-compose -f docker-compose.yml up -d
ERROR: Volume myvol declared as external, but could not be found. Please create the volume manually using `docker volume create --name=myvol` and try again.

@wallnerryan yes, its already linked here: https://github.com/docker/compose/issues/2958
proposed PR https://github.com/docker/swarm/issues/1872 fixes that issue too

@echupriyanov yup just saw and commented on it. Thanks for bring this up. let me know if and how I can help any. (disclaimer: i work for ClusterHQ and want this fixed as well). Wanted to make sure it wasn't caused by our plugin.

@wallnerryan I think its not related to flocker at all. Also there is one more issue with Swarm and volume drivers. I seen it reported for rexray driver, but I seen it with flocker too - https://github.com/emccode/rexray/issues/291
It can be easily catched when you start to monitor open files with lsof on swarm node with volume driver plugin (either flocker or rexray)
You can check it with:
for i in $(seq 1 30) ; do lsof |grep flocker.sock|wc -l ; sleep 60 ; done

yup, i've seen this in the past with swarm. When I was hacking with swarm it seems to relate the connections being made as you allude to.

@vieux sorry to bother. Any comments on this issue?
At present state its impossible to use volume plugins (like flocker or rexray) with docker-compose.
I was told there are plans for a swarm-level volume plugins. Is it so?
Where can I find any info on this subject.

Same problem here...

@echupriyanov does https://github.com/docker/swarm/pull/1872 work? Have you done anymore work to get it to pass CI or waiting for review of this issue first?

@wallnerryan It compiles and works locally.
As far as I can tell, CI failures are related to Docker Engine build, and not related to this particular PR.
I can try to re-submit PR, maybe it will pass now, but I’m not sure this is a good idea.
So I’m waiting for someone from Swarm team to clear out this situation.

nods thanks

Closing issue, fixed with #1872.
@echupriyanov thanks for the fix. Please post back here if you face further issues.