AWS MWAA compatibility request

the authentication modes:

basic (username+password)
oauth2_token

are incompatible with AWS managed Apache Airflow.
I went through the and issued an MWAA login token, aws doc, however this token is only valid for the forced api method /aws_mwaa/aws-console-sso?login=true#{token}. Which in turn probably vends an browser session cookie.
I could not find a way to convert an active MWAA session into either a username + password (creating a user is possible in MWAA but i didn't find a way to assign a password and even if I could, mwaa does not present a login page anywhere that I found), or into an oauth2 token, i was hoping there was a simple apache airflow method for vending oauth2 tokens but I did not see one.
My goal is to support MWAA's unusual login modes, though I understand if managing a cookie jar to make mwaa api requests is impossible due to technical reasons.
Thank You

@dylan-shipwell Have you found a solution in the end?

@obax sorry, no new info.
semi-related, word of caution, I have tried to use https://registry.terraform.io/providers/Mastercard/restapi/ as a terraform-facing HTTP client, Masterard/restapi which claims to be built with the goal of being the "curl of terraform" except it doesn't expose nearly any curl option that would be required to do anything that curl can conventionally do, it's really specifically for one and only one flavor of REST JSON Web API.
so, in cases where I need to orchestestrate http requests directly, i've been using a nasty hack like this, where i have a custom http client ex. named "my_http_client_script" that will receive the environment variable ex. named "TF_NULL_RESOURCE_JSON" which contains all of the dynamic parts of the payload that terraform is the input for.
that can do whatever, like make a proper curl request with sufficient options to accomplish the http state mutation intended.
# main.tf
resource "null_resource" "my_http_state_name" {
  triggers = {
    my_input_var = var.my_input_var
    my_http_payload = sha512(local.my_http_payload)

    # timestamp = "${timestamp()}" # debug, enable to always recreate
  }

  provisioner "local-exec" {
    command = "${path.module}/my_http_client_script"
    environment = {
      TF_NULL_RESOURCE_JSON = jsonencode({
        my_http_param = "https://example.org/my_api_method/"
        my_data_param = local.my_http_payload
        # ...
      }) # use an environ to transfer secrets like HTTP Authorization header value
    }
    on_failure = fail
  }
}

but, this is extremely DIY and fragile.
if using this pattern, i recommend logging when "my_http_client_script" starts running and just before it exits, as well as logging its PID on every log message because terraform will not report diagnostic info.
this doesn't solve anything to do with MWAA though. if you want to manage MWAA with terraform, it might be possible to manage MWAA with this script and have this script be auto-run by terraform with a hook like this. but this would 100% bypass the terraform-provider-airflow tooling specifically because
terraform-provider-airflow and MWAA have no compatible authentication modes that i'm aware of at time of writing 2024-02-13
Thanks!

Out of the scope of this provider but i may be able to create a mwaa token data source in the aws provider to use it here :D how does that sound?

Thanks, @dylan-shipwell, for the detailed explanation and the word of caution. I've also wondered if I could curl my way into making this happen. I wish the approach to getting this done was more abstracted instead of having to make scripts. @DrFaust92 - super interested in your solution


Anyone use mitm option?

I am trying to get it worked. But no luck. If anyone get it work, would be nice if you share the steps.

are you stuck at TypeError: parser.reinitialize is not a function too?

It is now integrated seamless in the 4.0.0 version

Hey there! 🌟 Exciting news! Scrapoxy 4 is ready to rock 🚀. Check it out at Scrapoxy.io (explore the "get started" guide, deployment documentation, and more 📚).
I can't wait to hear your feedback on this new version! Send me your coolest screenshots with as many proxies as possible! 📸💻
Join the Discord community if you have any questions or just want to chat. You can also open a GitHub issue for any bug or feature request 🐞✨.
See you soon!  😎
Fabien


Fix proposal_form field disable or wrong proposal_form issue

Fixes Determination form wrong proposal form issues

Please push to live. Thank you!


Can't Remove Url:file:///C:/filename.mp4

I want to try to block my local video files, but there are some problems.
The Url address is not displayed properly after adding it, it seems to support only domain addresses.
Can't display this blocking rule properly and can't remove it.

I'm pretty sure I've set the extension to allow access to the file URls.

Hi @dehydrate-man ,
The extension does not support blocking local files, I actually never tried it. I'll try it myself and see why you can't remove it.

@ofekmiz Thanks for the reply,
I guess the bug is caused by complex characters or paths.


Use template query param to select initial template if given

Fixes https://github.com/microbiomedata/issues/issues/157

Confirmed that
https://microbiomedata.github.io/submission-schema/_playground?template=nmdc_submission_schema/SoilInterface
takes me directly to the SoilInterface


Fix for issue #1117, temporary fix for set_ttl test on Windows, this …

…test was crashing on Windows because, on Windows calling setsockopt on a
not connected socket is undefined behavior. More details can be found in issue #1117.
Signed-off-by: Daniel Tacalau<EMAIL_ADDRESS>

This change looks good to me, two questions:

Does this apply to more methods on TcpStream?
Can you add some documentation to TcpStream::set_ttl (and perhaps other methods) that it's required to receive an before using the method?

Does this apply to more methods on TcpStream?

@Thomasdezeeuw you mean other TcpStream methods which are using setsockopt? It so, there's only set_nodelay which suffers from the same issue, but its test has been already fixed.

Can you add some documentation to TcpStream::set_ttl (and perhaps other methods) that it's required to receive an before using the method?

Absolutely, ATM there are two affected: set_ttl and set_nodelay, others?

If the problem is calling setsockopt on an unconnected socket then I think only set_ttl and set_nodelay are a problem. So only those two methods would need docs.
But does that same hold for getsockopt? Then it would also apply to ttl and nodelay (the getter methods).

But does that same hold for getsockopt? Then it would also apply to ttl and nodelay (the getter methods).

Could be, will check all 4 of them.

Latest changes:

on Windows, all 4 methods: set ttl, get ttl, set nodelay, get nodelay require a connected stream to work. I've added tests for all of them, also added documentation notes.
added set/get ttl tests for TcpListener;
added set/get ttl tests for UdpSocket;

Can you rebase on master and fix the last couple things, then we can merge this.

Done


Wrong admin icon files with Django 1.9

Hello,
icon-no.gif and icon-yes.gif seems to have been replaced by icon-no.svg and icon-yes.svg since Django 1.9. and there are still used by django-constance.

We are already aware of it at #123
Thanks.


test_commands.py::TestRedisCommands::test_acl_getuser_setuser and test_commands.py::TestRedisCommands::test_acl_list fail in 3.5.3

Version: redis-py 3.5.3 and redis 6.2.1 (both packaged in openSUSE)
Platform: Linux/openSUSE/Tumbleweed
Description: while packaging your package for openSUSE/Tumbleweed we always run as much of test suite of every package as we can. While running the test suite it fails in these two tests:
[   64s] + echo python36
[   64s] + python_flavor=python36
[   64s] + PYTHONPATH=/home/abuild/rpmbuild/BUILDROOT/python-redis-3.5.3-2.5.x86_64/usr/lib/python3.6/site-packages
[   64s] + PYTHONDONTWRITEBYTECODE=1
[   64s] + pytest-3.6 --ignore=_build.python36 --ignore=_build.python38 -v
[   64s] 1204:C 09 Mar 2021 16:38:48.914 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
[   64s] 1204:C 09 Mar 2021 16:38:48.914 # Redis version=6.2.1, bits=64, commit=00000000, modified=0, pid=1204, just started
[   64s] 1204:C 09 Mar 2021 16:38:48.914 # Configuration loaded
[   64s] 1204:M 09 Mar 2021 16:38:48.915 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
[   64s] 1204:M 09 Mar 2021 16:38:48.916 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
[   64s] 1204:M 09 Mar 2021 16:38:48.916 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
[   64s] 1204:M 09 Mar 2021 16:38:48.916 * monotonic clock: POSIX clock_gettime
[   64s] 1204:M 09 Mar 2021 16:38:48.916 * Running mode=standalone, port=6379.
[   64s] 1204:M 09 Mar 2021 16:38:48.916 # Server initialized
[   64s] 1204:M 09 Mar 2021 16:38:48.916 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[   64s] 1204:M 09 Mar 2021 16:38:48.917 * Ready to accept connections
[   65s] ============================= test session starts ==============================
[   65s] platform linux -- Python 3.6.13, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3.6
[   65s] cachedir: .pytest_cache
[   65s] rootdir: /home/abuild/rpmbuild/BUILD/redis-3.5.3
[   68s] collecting ... collected 475 items

[ ... many passing tests skipped ...]

[   80s] =================================== FAILURES ===================================
[   80s] __________________ TestRedisCommands.test_acl_getuser_setuser __________________
[   80s]
[   80s] self = <tests.test_commands.TestRedisCommands object at 0x7fca4ef9b588>
[   80s] r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
[   80s] request = <FixtureRequest for <Function test_acl_getuser_setuser>>
[   80s]
[   80s]     @skip_if_server_version_lt(REDIS_6_VERSION)
[   80s]     def test_acl_getuser_setuser(self, r, request):
[   80s]         username = 'redis-py-user'
[   80s]
[   80s]         def teardown():
[   80s]             r.acl_deluser(username)
[   80s]         request.addfinalizer(teardown)
[   80s]
[   80s]         # test enabled=False
[   80s]         assert r.acl_setuser(username, enabled=False, reset=True)
[   80s] >       assert r.acl_getuser(username) == {
[   80s]             'categories': ['-@all'],
[   80s]             'commands': [],
[   80s]             'enabled': False,
[   80s]             'flags': ['off'],
[   80s]             'keys': [],
[   80s]             'passwords': [],
[   80s]         }
[   80s] E       AssertionError: assert {'categories'...': False, ...} == {'categories'... ['off'], ...}
[   80s] E         Omitting 5 identical items, use -vv to show
[   80s] E         Differing items:
[   80s] E         {'flags': ['off', 'sanitize-payload']} != {'flags': ['off']}
[   80s] E         Left contains 1 more item:
[   80s] E         {'channels': []}
[   80s] E         Full diff:
[   80s] E           {...
[   80s] E
[   80s] E         ...Full output truncated (12 lines hidden), use '-vv' to show
[   80s]
[   80s] tests/test_commands.py:108: AssertionError
[   80s] _______________________ TestRedisCommands.test_acl_list ________________________
[   80s]
[   80s] self = <tests.test_commands.TestRedisCommands object at 0x7fca4e658c50>
[   80s] r = Redis<ConnectionPool<Connection<host=localhost,port=6379,db=9>>>
[   80s] request = <FixtureRequest for <Function test_acl_list>>
[   80s]
[   80s]     @skip_if_server_version_lt(REDIS_6_VERSION)
[   80s]     def test_acl_list(self, r, request):
[   80s]         username = 'redis-py-user'
[   80s]
[   80s]         def teardown():
[   80s]             r.acl_deluser(username)
[   80s]         request.addfinalizer(teardown)
[   80s]
[   80s]         assert r.acl_setuser(username, enabled=False, reset=True)
[   80s]         users = r.acl_list()
[   80s] >       assert 'user %s off -@all' % username in users
[   80s] E       AssertionError: assert ('user %s off -@all' % 'redis-py-user') in ['user default on nopass ~* &* +@all', 'user redis-py-user off sanitize-payload -@all']
[   80s]
[   80s] tests/test_commands.py:196: AssertionError
[   80s] =========================== short test summary info ============================
[   80s] FAILED tests/test_commands.py::TestRedisCommands::test_acl_getuser_setuser - ...
[   80s] FAILED tests/test_commands.py::TestRedisCommands::test_acl_list - AssertionEr...
[   80s] ================== 2 failed, 472 passed, 1 skipped in 15.11s ===================

Complete build log with all details, versions of packages used and exact steps what we do.

Noticed the same on Gentoo.
Here's the problematic part (edited to remove noise):
E         Full diff:
E           {
E            'categories': ['-@all'],
E         +  'channels': [],
E            'commands': [],
E            'enabled': False,
E         -  'flags': ['off'],
E         ?                 -
E         +  'flags': ['off',
E         +            'sanitize-payload'],
E            'keys': [],
E            'passwords': [],
E           }

Given sanitize-payload is new in 6.2.x, it seems to be a compatibility issue with newer Redis (especially given that 3.5.3 passed for me in the past, I believe).


New Profile for Temperature and Humidity Sensor

Hey,
I pulled the attached firmware from this smart life temperature and humidity sensor over serial with bk7321tool:
https://www.amazon.de/dp/B0B9Y4D4PR?psc=1&ref=ppx_yo2ov_dt_b_product_details
I think it must be the same as this. At least the inside components are the same as well as the Main Module number:
https://de.aliexpress.com/item/1005004755749389.html?spm=a2g0o.order_list.order_list_main.45.79ef5c5fQDqyAe&gatewayAdapt=glo2deu
I tried to build a new profile myself but I could not get a token, because my version of Smart Life is too new.
Could mabye somebody help me with that? I also need it kind of urgently so any help would be really appreciated. :)
Thanks and best
Francesco

eMylo_th08---Temperature-Humidity-Sensor.bin.zip

If this works we could also close #473

Or if somebody could tell me how to acquire the token with the smart life app approach, I would be really thankful. :)

Is that a dump from the device you've tried to flash in #473?

Nope, that is a different one. :)

Okay. Why do you need the profile urgently if you've already managed to dump the firmware? (and you can flash ESPHome via UART too)

I am working on an art project for my arts university, where I need to flash a couple of those temperature sensor to control them for an installation.
And I thought it might be easier if I just need to flash one via serial and I can flash the rest with tuya-cloudcutter so I do not need to open everyone of them. :)
In addition I also wanted to generate a YAML for ESPHome from that profile with something like UPK2ESPHome so I already have all the pins and controls in that YAML. Does this make sense? Or can I generate that also from the firmware directly? :)

By the way this is the log when I tried to build the profile myself:
tuya-cloudcutter/profile-building [main] » python3 build_profile.py eMylo_th08---Temperature-Humidity-Sensor.bin
[+] Processing file='eMylo_th08---Temperature-Humidity-Sensor.bin' as eMylo_th08---Temperature-Humidity-Sensor
RBL containers:
	0x10f9a: bootloader - [encoding_algorithm=NONE, size=0xea20]
		extracted to /Users/fscheffczyk/DevProjects/tuya-cloudcutter/profile-building/eMylo_th08---Temperature-Humidity-Sensor
	0x129f0a: app - [encoding_algorithm=NONE, size=0xdfa20]
		extracted to /Users/fscheffczyk/DevProjects/tuya-cloudcutter/profile-building/eMylo_th08---Temperature-Humidity-Sensor
Storage partition:
	0x1ee000: 68 KiB - 11 keys
	- 'gw_bi'
	- 'gw_di'
	- 'tls_ca_cnt'
	- 'wf_start_md'
	- 'gw_wsm'
	- 'timer_arr'
	- 'gw_ai'
	- 'is_stride'
	- 'record_head'
	- 'baud_cfg'
	- 'em_sys_env'
		extracted all keys to /Users/fscheffczyk/DevProjects/tuya-cloudcutter/profile-building/eMylo_th08---Temperature-Humidity-Sensor/eMylo_th08---Temperature-Humidity-Sensor_storage.json
App code `user_param_key`:
	- not found!
[+] Searching for known exploit patterns
[+] Matched pattern for BK7231N version SDK 2.3.1, payload type ssid
[+] Searching for ssid payload address
[+] ssid payload address gadget (THUMB): 0xC64B5
[+] Searching for finish address
[+] Finish address gadget (THUMB): 0x1B52F
[+] uuid: f0aff6ba4254392f
[+] auth_key: u7kToY6e0rYsq9393BNeJfJAGmTXcg5V
[+] ap_ssid: SmartLife
[+] swv: 2.1.0
[+] bv: 40.00
[+] firmware key: keyr5qhaxgstx9ys
[+] product key: xlk3mtpjo1zkmdvh
[!] No gw_di, No version or key stored, manual lookup required
[+] SDK: 2.3.1
[+] Device class: bk7231n_lowpower_common_ty
[!] No token provided.
[!] On any device on the same network as you're device running this script, please log into the Smart Life app ('Try as Guest' works fine if you do not already have an account)
[!]  Note: no real device should currently be in pairing mode, or the instructions below may not match.
[!]  - Start the add device procedure (hit '+' in the upper-right and select 'Add Device')
[!]  - Under 'Add Manually' select 'Socket (Wi-Fi)'
[!]  - Enter your network credentials as instructed
[!]  - Do not follow any of the instructions about putting a device into pairing mode, instead select 'next' until it asks the status of the indicator and select 'Blink Slowly'
[!]  - Select 'Go to Connect', then in your wifi selection screen, hit the back button to return to Smart Life.
[!] A new token should be sent to your network, and this script will continue.
[!] Note: this will join an unresponsive device to your account.  You can safely delete it afterwards.
[+] Waiting for multicast token from app...
^C[!] Cancelled waiting for token.
[!] Error receiving new token.

Maybe this helps. :)

Added as eMylo CSAC905 Temperature and Humidity Sensor Display (may take a few minutes to process).
You're not easily going to be able to control this display, as it is a TuyaMCU device.

Thanks @Cossid, really appreciate the help. :)
What could become the problem with controlling the screens of TuyaMCU devices?

I mean you won't be able to customize it, it's controlled by the TuyaMCU, and since the temperature sensor is also behind the MCU and not GPIO, you can't really change the values much.  You'll mostly be limited to what they already support.

This must have been processed before we had proper checks for patched binaries.  This one actually is patched (and on the known patched list since), so the profile for it will be removed, since it cannot work.


Format code using 'cargo fmt'

Sorry, but formatting this code with rustfmt requires strategically-placed rustfmt_ignore annotations. Some of the constants in this code are 4x4 (or other size) matrices, and were manually formatted to make this clear. For instance, the shuffle matrices were formatted to make it clear what is being rotated, but this is obscured when they are placed as a single line.


Graceful stop is not possible with enableKeepAlive

Hi.
As much as I have seen throughout examples and issue comments, the only advertised way to stop running server is to call EventLoop::stop(). I agree that it's a perfectly viable solution, however ReactPHP docs state that usage of this method is not recommended to stop the loop, and there are projects that rely on automatic loop termination istead.
The problem I encountered is that enableKeepAlive() created periodic timer that is never ever cancelled, resulting in websocket server never terminating without call to EventLoop::stop() (which I do not rely on).
I would suggest adding another method that would disable keep-alive and cancel periodic timer.
A workaround I use is to create a timer with 0.1 second timeout that would call EventLoop::stop(). But this is not as alegant as it could be.

What's the use case you'd want stop a running WebSocket server without ending the Unix process?

The use case is running asynchronous pre-terminate tasks after websocket server has stopped listening for incoming connection.

I'm thinking if we return the timer object from enableKeepAlive you could then call cancelTimer with it. Would that work for you?

That certainly would work.


German untranslated OPDS strings

Note: I thought there was a fallback to English configured in i18next, but this is visibly not the case as shown by opds.addForm.namePlaceholder in the screenshot.

In the PR that discovers missing locale keys, I have also implemented a consistent fallback to English:
https://github.com/readium/readium-desktop/pull/506

This issue is superseded by https://github.com/readium/readium-desktop/issues/515


Fixed issue #269

Description
Fixed issue #269
Fixes #269
Type of change

Refactor (refactoring code, removing useless files)

Testing steps
N/A
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #291 (ca7d9d9) into master (a273cfe) will not change coverage.
The diff coverage is 0.00%.

@@          Coverage Diff           @@
##           master    #291   +/-   ##
======================================
  Coverage    5.80%   5.80%
======================================
  Files          15      15
  Lines         844     844
======================================
  Hits           49      49
  Misses        795     795

Impacted Files
Coverage Δ

conf/configuration.go
0.00% <0.00%> (ø)

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 a273cfe...ca7d9d9. Read the comment docs.


Fix max dbs error

Factor the way we open environments to make sure they are always opened with the same options.
The issue was that indexes were first opened in snapshots with incorrect options, and heed cache returned an environment with incorrect open options on subsequent index open.
fix #2190

bors cancel
@MarinPostma Could you please apply the Clippy changes first?

@Kerollmops yep it's done


Is it possible to have PS1 and PSP games show up without making bubbles?

Simple question I guess. I was using this app, and I really like it. It loads quick, and I like the Switch theme. I was having fun making Switch-style tiles for all my games.
Thing is, I bought a bigger sd card, and put a LOT more games on my Vita. To use this app properly, I'd have to have over 200 bubbles for PS1/PSP games, on top of the 90-ish Vita games, and another 14 homebrew ports (plus homebrew app stuff, and stock apps). And that's not counting anything else I end up adding later. So, I ended up having to swap back to Retroflow for now, since it doesn't require bubbles to still list the games. I know I could technically fit them all into bubbles, and be under the 500 bubble limit, but still, I don't particularly want over 300 bubbles.
I would love to go back to this, and use the Switch theme again.
Also, I hope this was okay to ask here. I'm not super familiar with github outside of downloading stuff from it. And I didn't see anywhere else to specifically ask questions or make requests for this version of the app. Sorry if I did something wrong. I saw someone else making requests and stuff and thought it'd be okay.

Yes. Support for Adrenaline Launcher and PSP categories Lite is working in the experimental non-public version. It's expected to be public in the next version. It has a lot of dependencies (ex: it messes with your cache a lot and turning it ON/OFF takes a long time) and I'm trying to make it work more cleanly, the same way you can turn RetroFlow ON/OFF and it will load all of them in super clean and fast.

Cool beans, I look forward to 3.0 then. I appreciate the reply. I'll definitely look at that link too. It sounds useful.
And definitely wouldn't mind the mod, at least for the mean time, if you don't mind that is.

Seemed to be easy enough to just copy over the few lines of code, but getting a strange error. Probably something really easy to fix. I'll check it out Friday evening or on the weekend if I can!

https://www.mediafire.com/file/u3u3rq4kq0gjq16/TXFDA%2527s_Modpack.rar/file
Instructions are included, the index.lua file inside is the source code. It's pretty easy to install.  Feel free to do literally whatever you want with this code as long as you have RetroFlow team's permission, post it, make a VPK, I don't really care. This will be able to tide you over until I finish bugtesting for my final update with the features that are making you want to use RetroFlow instead!
It is a modpack for RetroFlow 6.0.0/6.1.0/6.1.1
Mod list:

Touch-scrolling smoothness upgrade
It will always load the SwitchView assets upon startup
View 5 is replaced with SwitchView
The SwitchView's bottom menu is fully functional. It can be accessed with touch, analog, or D-pad.
"DrawCover" function math optimization (there are other things to reduce lag but is the easiest to add)
THE SHADOW AT THE BOTTOM OF SWITCHVIEW CAN'T BE DISABLED LIKE IT CAN IN HEXFLOW CUSTOM... because I was too lazy to mess with the complicated RetroFlow settings menu. As such I'd recommend using one of the custom backgrounds he provides, such as 'Blur 1'.
Horizontal visual snap has been reduced so it looks super smooth in SwitchView, but may look worse in the 3D views when RetroFlow's 'smooth scroll' is enabled, and note: it is enabled by default.

https://www.mediafire.com/file/uezpocdeb8rfu2f/index.lua/file
Put this file in "ux0:app/HXLC00001/index.lua" and it will add Adrenaline Launcher to HexFlow Custom v2.2
Putting "Adrenaline Launcher: ON" in settings will slow loading time by about 1 second. This build is fairly stable but lacks support for PSP Categories Lite, lacks the ability to rename/override the PSP/PS1 games, lacks the overhaul for custom categories, and lacks the ability to have the extra RetroFlow categories like MAME. Do not override Vita or homebrews to the PSP/PS1 category as they will effectively be hidden in this experimental build.
It will be cool if you try it out and let me know any feedback, because I feel it should be pretty stable! Thank you in advance if you do.


Standardize width settings and styling amongst all components

I'm noticing that Checkbox and Radio button are the only ones that handle width differently than all the other components. I'm wondering if it would be a good time then to implement more standardized width settings for all of the components so we don't run into this issue in the future again. I can see that if we add a RichText box that it would also now be out of sync with checkbox, radio, and richText.

Width of paragraph text is odd on mobile devices, please connect with me when this issue is in progress to ensure we are adopting the right strategy for dealing with line lengths and text widths on all devices.


NullPointerException in 2.1.0-beta, when ClasspathFileSource is pointing to resources inside a jar

In my project I am packaging json stubs inside a jar, which breaks in 2.1.0-beta. See
https://github.com/ePages-de/restdocs-wiremock/issues/6
Problem is line 85 of JsonFileMappingsSource. mappingFile.getUri().getPath() returns null for a resource that is not in a resource folder, but coming from inside a jar file.
mappingFile.getUri().getPath().replace(mappingsFileSource.getUri().getPath(), "");

Stacktrace:
java.lang.NullPointerException
    at com.github.tomakehurst.wiremock.standalone.JsonFileMappingsSource.getFileName(JsonFileMappingsSource.java:85)
    at com.github.tomakehurst.wiremock.standalone.JsonFileMappingsSource.loadMappingsInto(JsonFileMappingsSource.java:72)
    at com.github.tomakehurst.wiremock.core.WireMockApp.loadMappingsUsing(WireMockApp.java:87)
    at com.github.tomakehurst.wiremock.core.WireMockApp.loadDefaultMappings(WireMockApp.java:83)
..

If you want to see it in action, run ./gradlew build on this feature branch: https://github.com/otrosien/restdocs-wiremock/tree/feature/wiremock_2_1_0_beta

@tomakehurst  Thumbs up for the immediate fix. I just tried 2.1.4-rc3 but when looking at the release source jar (and still getting the same NPE) could it be that the release is broken or somehow missed to include the fix?

I haven't pushed a new release yet as I was waiting for some feedback on another bug fix before doing so. I'll hopefully have done that by the end of today.
Perhaps you could build from source in the meantime?

@tomakehurst sorry, my mistake. I'll try via maven local, and will report back if that fixes my problem.

Looking good. :+1:

Thanks!


HBASE-24274 RESTApiClusterManager attempts to deserialize response using serialization API

Use the correct GSON API for deserializing service responses. Add
simple unit test covering a very limited selection of the overall API
surface area, just enough to ensure deserialization works.
Assuming this works for you folks, I'll port to appropriate branches.

Actually, let me add explicit dependencies for the new classes introduced. Everything I used was already available on the class path via transitive deps, but better to make them explicit.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 37s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
3m 31s
branch-2.3 passed

+1 :green_heart:
compile
0m 26s
branch-2.3 passed

+1 :green_heart:
shadedjars
4m 26s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 15s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 11s
the patch passed

+1 :green_heart:
compile
0m 26s
the patch passed

+1 :green_heart:
javac
0m 26s
the patch passed

+1 :green_heart:
shadedjars
4m 25s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 14s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 55s
hbase-it in the patch passed.

19m 40s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 93d0edd51eb5 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Default Java
1.8.0_232

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/testReport/

Max. process+thread count
422 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 47s
Docker mode activated.

-0 :warning:
yetus
0m  6s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
5m 49s
branch-2.3 passed

+1 :green_heart:
compile
0m 37s
branch-2.3 passed

+1 :green_heart:
shadedjars
7m 18s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 18s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 29s
the patch passed

+1 :green_heart:
compile
0m 34s
the patch passed

+1 :green_heart:
javac
0m 34s
the patch passed

+1 :green_heart:
shadedjars
7m 24s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 16s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
1m  6s
hbase-it in the patch passed.

31m  1s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 194d21341fa9 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Default Java
2020-01-14

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/testReport/

Max. process+thread count
445 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 35s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
3m 34s
branch-2.3 passed

+1 :green_heart:
checkstyle
0m 19s
branch-2.3 passed

+1 :green_heart:
spotbugs
0m  0s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m  8s
the patch passed

+1 :green_heart:
checkstyle
0m 16s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
16m 46s
Patch does not cause any errors with Hadoop 2.10.0 or 3.1.2 3.2.1.

+1 :green_heart:
spotbugs
0m  0s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 14s
The patch does not generate ASF License warnings.

31m 42s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
dupname asflicense spotbugs hadoopcheck hbaseanti checkstyle

uname
Linux 5256cf8b12a8 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Max. process+thread count
103 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/1/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 34s
Docker mode activated.

-0 :warning:
yetus
0m  7s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
3m  5s
branch-2.3 passed

+1 :green_heart:
compile
0m 26s
branch-2.3 passed

+1 :green_heart:
shadedjars
4m 29s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 13s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 13s
the patch passed

+1 :green_heart:
compile
0m 25s
the patch passed

+1 :green_heart:
javac
0m 25s
the patch passed

+1 :green_heart:
shadedjars
4m 29s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 13s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 53s
hbase-it in the patch passed.

19m 15s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux baead1503d20 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Default Java
1.8.0_232

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/testReport/

Max. process+thread count
429 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m  9s
Docker mode activated.

-0 :warning:
yetus
0m  8s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
5m 22s
branch-2.3 passed

+1 :green_heart:
compile
0m 35s
branch-2.3 passed

+1 :green_heart:
shadedjars
7m 24s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 15s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 20s
the patch passed

+1 :green_heart:
compile
0m 35s
the patch passed

+1 :green_heart:
javac
0m 35s
the patch passed

+1 :green_heart:
shadedjars
7m 17s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 16s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 53s
hbase-it in the patch passed.

30m 25s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 83687e85172c 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Default Java
2020-01-14

Test Results
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/testReport/

Max. process+thread count
450 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 33s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ branch-2.3 Compile Tests _

+1 :green_heart:
mvninstall
3m  9s
branch-2.3 passed

+1 :green_heart:
checkstyle
0m 16s
branch-2.3 passed

+1 :green_heart:
spotbugs
0m  0s
branch-2.3 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 10s
the patch passed

+1 :green_heart:
checkstyle
0m 16s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
xml
0m  1s
The patch has no ill-formed XML file.

+1 :green_heart:
hadoopcheck
16m 33s
Patch does not cause any errors with Hadoop 2.10.0 or 3.1.2 3.2.1.

+1 :green_heart:
spotbugs
0m  0s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 12s
The patch does not generate ASF License warnings.

31m  7s

Subsystem
Report/Notes

Docker
Client=19.03.8 Server=19.03.8 base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/1600

Optional Tests
dupname asflicense hadoopcheck xml spotbugs hbaseanti checkstyle

uname
Linux 86dd6b8f6bd6 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.3 / 5d117afc77

Max. process+thread count
79 (vs. ulimit of 12500)

modules
C: hbase-it U: hbase-it

Console output
https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-1600/2/console

versions
git=2.17.1 maven=(cecedd343002696d0abb50b32b541b8a6ba2883f)

Powered by
Apache Yetus 0.11.1 https://yetus.apache.org

This message was automatically generated.


[websocket] Rewrite Auth related test cases using a single service and a client

Description:
Current test cases are written using 2 services and 2 clients this can be reduced to 1 client and a service.
https://github.com/ballerina-platform/module-ballerina-http/blob/master/http-ballerina/src/http-tests/tests/integration-tests/service/websocket/39_authentication_success_client.bal

This is fixed with https://github.com/ballerina-platform/ballerina-standard-library/issues/820


LieYing Browser

LieYing Browser - https://github.com/WhichBrowser/Parser-PHP/issues/234
Uses Chrome browser see code for more info.

Coverage remained the same at 100.0% when pulling 5f40bacc5611adfc33e10f01274459f4e23bdf48 on ayumi-cloud:LieYing into 4899110cd2f87b01e04ced62dbb9dec541031dee on WhichBrowser:master.

data/regexes/applications-others.php has been edited due to this pr not being merged yet: https://github.com/WhichBrowser/Parser-PHP/pull/508/files

@NielsLeenheer Please can you merge this pr.

cleaned version: https://github.com/summercms/Parser-PHP-v3.x.x/pull/187/files


BLE

Hi,
i am working on ble features to add ble scan and ble client functionality for esp32. Basically i have it running and almost ready to make initial PR, just i have some question to maintainers who maybe are working on it. For ble scan i need some BLE structure similar to this one in esp-idf, but i wish it would be more generic for all SoC chips:
static esp_ble_scan_params_t* xScan_params = {
    .scan_type = BLE_SCAN_TYPE_ACTIVE,
    .own_addr_type = BLE_ADDR_TYPE_PUBLIC,
    .scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,
    .scan_interval = 349,
    .scan_window = 49,
    .scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE
};

Any help will be appreciated.

Hello,
I am sorry, we don’t accept PR for individual at the moment, thought that may change in the future.
It is very hard to get 1 to 1 mapping between stack. If we make to stack similar to ESP-IDF's then it will diverge from another vendor stack.
You pull closer on one side, it will get further away on the other.
Setting up the parameters is made by using those three calls:
/**
*
* @brief Setup scan filter params.
*
* @param[in] xFiltParam
* @return Returns eBTStatusSuccess on successful call.
*/
BTStatus_t ( * pxScanFilterParamSetup )( BTGattFiltParamSetup_t xFiltParam );
/**
 *
 * @brief Configure a scan filter condition.
 *
 * @param[in] ucAdapterIf Adapter interface ID. Returned from BTRegisterBleAdapterCallback_t after calling pxRegisterBleApp.
 * @param[in] ulAction
 * @param[in] ulFiltType
 * @param[in] ulFiltIndex
 * @param[in] ulCompanyId
 * @param[in] ulCompanyIdMask
 * @param[in] pxUuid UUID of the attribute.
 * @param[in] pxUuidMask
 * @param[in] pxBdAddr Address of the Remote device.
 * @param[in] cAddrType
 * @param[in] xDataLen
 * @param[in] pcData
 * @param[in] xMaskLen
 * @param[in] pcMask
 * @return Returns eBTStatusSuccess on successful call.
 */
BTStatus_t ( * pxScanFilterAddRemove )( uint8_t ucAdapterIf,
                                        uint32_t ulAction,
                                        uint32_t ulFiltType,
                                        uint32_t ulFiltIndex,
                                        uint32_t ulCompanyId,
                                        uint32_t ulCompanyIdMask,
                                        const BTUuid_t * pxUuid,
                                        const BTUuid_t * pxUuidMask,
                                        const BTBdaddr_t * pxBdAddr,
                                        char cAddrType,
                                        size_t xDataLen,
                                        char * pcData,
                                        size_t xMaskLen,
                                        char * pcMask );
/**
 *
 * @brief Sets the LE scan interval and window in units of N*0.625 msec.
 *
 * @param[in] ucAdapterIf Adapter interface ID. Returned from BTRegisterBleAdapterCallback_t after calling pxRegisterBleApp.
 * @param[in] ulScanInterval
 * @param[in] ulScanWindow
 * @return Returns eBTStatusSuccess on successful call.
 */
BTStatus_t ( * pxSetScanParameters )( uint8_t ucAdapterIf,
                                      uint32_t ulScanInterval,
                                      uint32_t ulScanWindow );

In those you will find most parameters from the structure you mentioned.
From API standpoint, you don't need to map each and every one of the input.
Best,
Hugues

Hi,
yes, i know if i will try to match parameters to esp32 then i will not fit other chips, thats why i asked.
Like i said, i have almost ready ble stack for esp32, but i will keep it in my repository.
Thanks


Refactor createConn() to handle mock injection better

ConnectionImpl#createConn() should unconditionally produce a new TCPConnection instance. Currently it checks for this.conn == null to determine whether a TCPConnection has been injected (i.e. a mock), or it needs to create a new TCPConnection. This logic interferes with the way the reconnect sequence works for TLS connections. createConn()
createConn() should call a static factory method to create a new TCPConnection, thereby leaving implementation details, including whether or not a new object is actually created, to the implementing subclass.

Refs #32


Running CouchDB 2 on the Raspberry Pi

Can I help get CouchDB working on the Raspberry Pi?
I've written a few small web apps on the Raspberry Pi using Couch 1.2, which came as part of the Weezy Raspbian repo - CouchDB was an easy choice because it was easy to install, was lightweight enough and had the right features. E.g.: https://github.com/ericclack/clojure-photo-bank
After upgrading to Raspbian Stretch I see that CouchDB is no longer in the Raspbian repo, and I can't work out how to build it without errors (Segmentation Faults, Illegal Instructions) -- see post here: https://raspberrypi.stackexchange.com/questions/77511/how-to-install-couchdb-2-on-raspberry-pi
I see from other GitHub posts that one of the problems is that you don't have an ARM computer to test your builds on. I can't donate a computer, but would be happy to donate some of my time to investigate and report problems on my Pi.
I don't have any experience with Erlang, but do have a programming background (in Python, Clojure and many years ago C and C++), so I would probably need to pair with someone.
(Note: If I understand other posts correctly it may be that the problems are with Erlang or Rebar on the Pi, in which case I would be happy to follow that up with the right group.)
Let me know what you think...
-Eric.

A progress update: I've tried the Erlang version from the Debian Stretch repo and then installing CouchDB from source and all seems to work well, so perhaps there is a problem with the Erlang package from Erlang Solutions repository?

Is there anything else we can do here? Please re-open if yes.

No, nothing more needed. Many thanks for your help.


[Request] Auto-update based on percentage, not time

Would it be possible to update progress based on the percentage read? Instead of calling the Hardcover API every n minutes, we would do so at every n% of the book read. This way, regardless of a book's length, we would send a fixed number of API calls to the Hardcover servers.
For example:
If I set my update interval to every 20 minutes, a 5-7 hour book would generate 17 to 23 requests. Meanwhile, a 40-hour book would result in 122 requests.
However, if I set auto-update to every 10% read, both books would generate exactly 11 requests:

1 request to set the status to "Currently reading."
9 requests to update the progress at each percentage milestone (10%, 20%, ..., 90%).
1 request to set the status to "Read" (Finished).

You would need to convert the page numbers into percentages, but I imagine that making fewer API calls would help Hardcover and also reduce clutter in the reading journal:
.
I tried to implement this myself, but my limited Lua knowledge (outside of nvim) and the sparse Koreader API documentation made it too challenging.
Lastly, thank you so much! I got my Kobo last week and have been reading non-stop with Koreader and your plugin. It works flawlessly and feels very intuitive to use.

I like that idea :+1:

Added in v0.0.7!

Awesome, thank you so much! I'm reading through The Complete Malazan with 17k+ pages next year, and this should really come in handy 😅


server code hangs

my code is getting stuck at
import Expo from 'exponent-server-sdk';
when i execute my index file like this ./index.js
with code
import Expo from 'exponent-server-sdk';
it never returns back

@abhitheawesomecoder I am facing the same error... Apparently, there is no class/function with the name Expo being exported from 'exponent-server-sdk' module.
There is already a class named Expo in the 'expo' module that was first installed using npm.
And why are there 2 libraries with the same functionality and a different name! Utterly confusing!
@abi Unable to proceed, please help.

@abhitheawesomecoder are you sure you have the package installed?
@ashishd751 it sounds like you're trying to load this within your Expo app -- this library is only for use on your server.

Closing this since we haven't heard back and don't have enough information.


 This is the important feature! Let's leave :edit for last.

[x] Make the fs mapping the authoritative job list source, query for run status
[x] If a plist is added or removed, launchk should show changes in its list accordingly
[x] Omnibox :load (need XPC frame)
[x] Omnibox :unload (need XPC frame)
[ ] Would be nice if the rows had an indicator of a service about to be added/removed (column for row? highlight row?)
[x] What do we do with errors? Modal? How do we get access to the siv instance?

Misc:

What if a plist is invalid?

Yay! fsnotify stuff works, from some basic logs of me fiddling in my local launch agents:
rm ~/Library/LaunchAgents/com.dstancu.lol

FS RECV NoticeRemove("/Users/dstancu/Library/LaunchAgents/com.dstancu.lol")
FS RECV Remove("/Users/dstancu/Library/LaunchAgents/com.dstancu.lol")

Barring a few bugs and unknowns (still need to test more around type, uid, and provided session types) -- it loads and unloads Homebrew plists!!!!

Going to cut it here -- remaining issues to sort:

[ ] Change indicator
[ ] launchctl enable/disable
[ ] Termcap issues after leaving $EDITOR


fixes link for server-side data example

the link in the readme to the detailed server-side example currently 404s - this PR points it to the correct location.

Fixes https://github.com/react-tools/react-table/issues/929


For the writing of the java language, this is a fatal bug, because you can't see the complete package namespace, which makes it impossible to select the correct class for code writing. This fatal bug has been proposed for more than two years. Why no one has priority to solve this problem? The problem, if it is a technical problem, you can refer to the relevant implementation and source code of Eclipse or VisualStudio2019!

For the writing of the java language, this is a fatal bug, because you can't see the complete package namespace, which makes it impossible to select the correct class for code writing. This fatal bug has been proposed for more than two years. Why no one has priority to solve this problem? The problem, if it is a technical problem, you can refer to the relevant implementation and source code of Eclipse or VisualStudio2019!

Take a look at Eclipse

This logic function is very simple to implement! Nothing is difficult! Why hasn't it been repaired?
This logic function written by Visual Studio 2019 in C# is better and worth learning.

You already filed this issue and I already replied, you can reply there if needed.


Umbrella issue: Get Google Cloud Builder CI working properly

We still have some issues related to Google Cloud Builder. Lets use this issue to track getting them done:
Firstly, there's a bug in GCB, so it only runs on PR's for which the main repo is the base:
https://github.com/GoogleCloudPlatform/cloud-builders/issues/380
But it does run fine for PR's where the source branch is in the main repo, e.g:
https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/478
Secondly, we don't yet have the ruby component of GraalVM installed in the base image.  That needs to be rebuilt and re-uploaded:
https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/480
As a temporary hack I tried installing it before running gradle build:
https://github.com/Huawei-PaaS/DCAP-Sapphire/pull/481
Then we have a few flaky tests, but those can be followed up separately.
@jeevan-kamkar Could you upload the rebuilt base image as per #480 above?

@quinton-hoole @sungwook-moon @VenuReddy2103
Travis or Circle CI are better options now for CI.
Please let me know your opinion.

@nehraankit Can you please explain why you think that to be the case?

@quinton-hoole
As mentioned above , Google cloud builder currently do not support build when PR raised from personal fork which is supported by Travis and Circle CI. Also on Travis , K8S cluster can be deployed and run work load which is needed in testing Amino.Run-Demo application test.

@nehraankit As far as I'm aware Google Cloud Builder works fine on public repos.  Read  GoogleCloudPlatform/cloud-builders#380  carefully.
We only had the problem when this repo was private.
Please correct me if I'm wrong.
I do not want us to have to run our own CI servers (for example Jenkins), or unnecessarily pay for a CI service.  GCB apparently works fine and is free for the volumes of build we need.  It just needs to be set up correctly.


ngOnChanges missing input argument

To make the module AoT compliant, ngOnChanges needs to have an optional input argument.
angular2-nvd3.directive and angular2-nvd3.component are missing that argument. Their methods should be:
    ngOnChanges(changes?) {
        this.ngNvD3.updateWithOptions(this.options, this.data);
    }

Hey, well spotted. I didn't run into this issue before (don't know why exactly), so I missed this one making the config-related changes for AOT. Guess I'll have to make another pull request.


dis implementation

Please star this repository to show your support, in the meantime I am reviewing your code.


Request for more ion-slides properties

Ionic version:  (check one with "x")
[ ] 1.x
[x] 2.x
I'm submitting a ...  (check one with "x")
[ ] bug report
[x] feature request
[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
Current behavior:
As you know, currently (at RC 5) ion-slide doesn't have some properties.
I opened this issue to ask for some properties as @brandyscarney said in this issue : https://github.com/driftyco/ionic/issues/9988#issuecomment-272473892
Expected behavior:

I think these properties are so common and I used them in many projects :

slidesPerView
centeredSlides
spaceBetween

Thanks for your perfect product

Agreed, stuck between ionDidChange not firing on rc3 and not being able to use slidesPerView: auto on rc4-5.  Please fix ASAP!

spaceBetween, slidesPerView, and centeredSlides are all still there. Instead of having a component with 20+ inputs that can be set, we've created inputs for the more common ones.
https://github.com/driftyco/ionic/blob/master/src/components/slides/slides.ts#L147
Any other property that is not an input, can still be set/changed via the component instance.
http://ionicframework.com/docs/v2/nightly/api/components/slides/Slides/#advanced
This is how values will be set going forward. We do not want to keep adding additional inputs when the component instance will do just fine.


Make protocolSlotLengths stateful

At the moment, we have
  protocolSlotLengths :: NodeConfig p -> SlotLengths

which assumes that the slot lengths are known statically. That is not the case, since the timing of the hard fork is not known statically. This therefore becomes ledger state dependent, which is a bit of a headache.

Not required for the Shelley testnet, which will have a single slot length.

Related: https://github.com/input-output-hk/ouroboros-network/issues/1205

Rename protocolSlotLengths to knownSlotLength.


Create a connection validator resource

Some Puppet modules (mongodb[1], puppetdb[2]) do provide a X_conn_validator resource, where X is the name of the service to check. This make it possible to "suspend" (while validating) the puppet run, until the service is actually up and running.
Elasticsearch bootstrap is not instantaneous, hence currently, it is possible to apply resources that depends on the Elasticsearch instance to be up and running, but that is not (even with ordering).
Proposed solution

First patchset : create an es_instance_conn_validator resource that would check that port P is listening on host H, applying the same pattern as mongodb and puppetdb.

es_instance_conn_validator { 'myinstance' :
  server  => 'foo.bar',
  port    => '9200',
  timeout => 60,
}

Second patchset : create a $validate_instance parameter for elasticsearch::instance, that if enabled will integrate the es_instance_conn_validator_resource in the catalog for that instance.

[1] https://github.com/puppetlabs/puppetlabs-mongodb/blob/master/lib/puppet/type/mongodb_conn_validator.rb
[2] https://github.com/puppetlabs/puppetlabs-puppetdb/blob/master/lib/puppet/type/puppetdb_conn_validator.rb

The first patchset hasb een merged.
Feel free to send a PR for the second one.
Cheers.

Hiya, will you be having time to work on this further? Worst case i'll leave this open for some one else to implement or when i have time.

Heya @electrical, sorry for the lack of activity on this one. Unfortunately I won't have time in the near future to work on that issue, I agree on leaving it open if anyone wants to take it.


move url util to ubiquerg

fine with me -- but it's only a 1 line function so nothing major
1 questions:  does this make ubiquerg depend on urlparse? that comes with a bunch of python2/3 hairness...
are you sure you want to do that? right now it has no deps

The imports are conditioned on Python version, but isn't it part of the standard library in both? To me, standard library stuff isn't as worrisome for dependency since there's no PyPI install required.

awesome, I didn't realize that. no problem then!


Failed to create project with RN v0.64.0-rc.4(rc.4 regression)

Description
I wanted to create a rn project using npx with react-native v0.64.0-rc.4. I used the following command:
npx react-native init xxx --version 0.64.0-rc.4

When I do
npx react-native init xxx --version 0.64.0-rc.3

(just use rc.3) it works alright. It fails on pod install step. When I manually trigger pod install in the ios directory I get something like this:
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
[!] CocoaPods could not find compatible versions for pod "FlipperKit/FlipperKitNetworkPlugin":
  In Podfile:
    FlipperKit/FlipperKitNetworkPlugin (~> 0.75.1)

None of your spec sources contain a spec satisfying the dependency: `FlipperKit/FlipperKitNetworkPlugin (~> 0.75.1)`.

You have either:
 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.

React Native version:
Run react-native info in your terminal and copy the results here.
OUTPUT:
info Fetching system and libraries information...
System:
    OS: macOS 11.1
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
    Memory: 519.04 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 14.14.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 6.14.8 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.10.1 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: iOS 14.3, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
    Android SDK:
      API Levels: 28, 29, 30
      Build Tools: 28.0.3, 29.0.2, 30.0.3
      System Images: android-30 | Google Play Intel x86 Atom
      Android NDK: 22.0.7026061
  IDEs:
    Android Studio: 4.1 AI-201.87<IP_ADDRESS>42882
    Xcode: 12.3/12C33 - /usr/bin/xcodebuild
  Languages:
    Java: 1.8.0_242-release - /usr/bin/javac
    Python: 2.7.16 - /usr/bin/python
  npmPackages:
    @react-native-community/cli: Not Found
    react: 17.0.1 => 17.0.1
    react-native: 0.64.0-rc.4 => 0.64.0-rc.4
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

npx react-native init xxx --version 0.64.0-rc.4
watch it failing

Expected Results
app should be built with no errors
NOTE
I haven't spent any time debugging this because I expect it to work just like that, additionally, when I tried the same command with rc.3 and it worked, I decided to not look into this as it looks like just a regression.
In a case when it works on somebody else's machine, what would be the local factors that impact the build?

Make sure Cocoapods is at least 1.10.1 :)

Make sure Cocoapods is at least 1.10.1 :)

I have exactly 1.10.1

Make sure Cocoapods is at least 1.10.1 :)

I have exactly 1.10.1

I solved this issue by running the script: pod repo update

It worked, thanks! (I think it's closeable)

Closing as this version of React Native is several years old. Please re-open a new issue against the latest stable if the issue persists


Update library versions

Codecov Report

:exclamation: No coverage uploaded for pull request head (update-library-versions@a5f6f68).

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 ba98e43...a5f6f68. Read the comment docs.

Thanks @n4to4! This looks good to me.


SAP HANA Studio, Setup a new project

This tutorial makes no sense. It misses vital information for a "beginner" that I was only able to advise my colleague on due to reading the full documentation. Namely: it doesn't say that you need to switch to the developer view when in the previous tutorial you were in the Hana Admin View. It doesn't explain what goes into the xsapp file and most significantly it provides instructions that don't match the options available in eclipse - one has to guess that "XS Application Description File" is the xsapp file. (note the space there).
Basically, this "Beginner" tutorial appears to make assumptions at every step that the user has a non-beginner familiarity with the architecture of an XS project.

Thank you for the feedback, it's unfortunately the result of us creating a tutorial "on the fly" while at an event and then not taking the time to look through it again. I appreciate you bringing it to our attention and we have made the first set up changes and will look to address more as soon as we can.


Show Call Hierarchy on functions doesn't show consistent behavior.

Code Snippet

# declare.py

def func():
    return 1

# consume.py

from declare import func as foobar

Repro Steps

Go to consume.py, right-click on func in consume.py and select "Show Call Hierarchy"
Go back to consume.py, right-click on func in consume.py and select "Show Call Hierarchy"

Expected behavior
Both show expected results and consistent behavior.
Actual behavior
Step 1 shows expected results, navigates to the declare.py file, where func is declared.
Step 2 shows expected results, doesn't navigate away from the current file(consume.py).

You are not calling func in consume.py, so it's not part of a call hierarchy.
Change consume.py to the following and then show the call hierarchy at the call site.
from .test12 import func

func() # <- Show the call hierarchy from here

There is an open issue regarding call hierarchies that involve aliasing through an import x as y statement.

Step 1 shows expected results, navigates to the declare.py file, where func is declared.
Step 2 shows expected results, doesn't navigate away from the current file(consume.py).

@erictraut, are you saying that navigating to the declaration on the first attempt, but not on the second attempt is by design somehow?

Navigating at all seems like an unexpected distraction to the user.

Navigation is performed by VS Code when it applies focus to the panel that displays the call hierarchy. I think the difference has to do with the focus applied to the panel that displays the call hierarchy. If you feel strongly about the navigation behavior, you could file a bug against VS Code. This isn't something that pylance can control.

I couldn't repro this anymore, show call hierarchy is giving me consistent behavior.


Add and remove

Milestones:

Add a task to the array
Remove the task from an array
Edit task description
update index of each task on delete
save changes in localstorage

Add and remove task section.


Refactor Authorization header parsing

Current implementation is not RFC compliant. It breaks on URI's with commas and probably in other cases as well.
Suggesting alternative implementation, based on passport-http digest implementation

Thank You!

Sure thing! Thank you for a great library!
On Tue, May 26, 2015 at 9:18 PM, Gevorg Harutyunyan <
<EMAIL_ADDRESS>wrote:

Thank You!
—
Reply to this email directly or view it on GitHub
https://github.com/gevorg/http-auth/pull/48#issuecomment-105623595.

--
Regards,
Arie Teter


Pylance fails to derive the type defined in class attributes

Environment data

Language Server version: ms-python.vscode-pylance-2023.12.1
OS and version: Windows 11 23H2
Python version (& distribution if applicable, e.g. Anaconda): 3.10 CPython

Code Snippet

from abc import ABC
from dataclasses import dataclass

@dataclass(kw_only=True)
class BaseRecordType:
    """database record type"""

    key: int

class BaseDatabase(ABC):
    """database class"""

    record_type = BaseRecordType

    def read(self, key: int) -> record_type:
        """read the record from database and return record_type"""
        data = {"key": key}  # simulate reading from the database

        return self.record_type(**data)

@dataclass
class DerivedRecordType(BaseRecordType):
    """let say we have another database which has extra field

    fist, we need to define the derived data type"""

    extra: str = "default extra field"

class DerivedDatabase(BaseDatabase):
    """then, we override the class attribute to change the record type"""

    record_type = DerivedRecordType

def read_derived_database(key: int) -> DerivedDatabase:
    database = DerivedDatabase()
    database.read(key)

    #     Expression of type "record_type" cannot be assigned to return type "DerivedDatabase"
    #   "record_type" is incompatible with "DerivedDatabase"PylancereportGeneralTypeIssues
    return database.read(key)

print(read_derived_database(1))

Repro Steps

Paste the above code into VSCode with Pylance installed
Pylance raises PylancereportGeneralTypeIssues for the line return database.read(key)
However, if we run the code, it works as expected

Expected behavior
Pylance should not raise any issue
Actual behavior
Pylance raises Expression of type "record_type" cannot be assigned to return type "DerivedDatabase" "record_type" is incompatible with "DerivedDatabase"PylancereportGeneralTypeIssues
Logs

XXX

Pyright (the type checker upon which pylance is built) is working correctly here. The read method in BaseDatabase is declared as returning the type record_type. This is a type alias for the type BaseRecordType.
If your intent is for read to return a different type for each subclass, then the base class should be defined as generic, like this:
from typing import Generic, TypeVar

TRecord = TypeVar("TRecord", bound=BaseRecordType)

class BaseDatabase(ABC, Generic[TRecord]):
    record_type: type[TRecord]

    def read(self, key: int) -> TRecord:
        data = {"key": key}

        return self.record_type(**data)

Or if you're using Python 3.12, you can use the new syntax for generics:
class BaseDatabase[TRecord: BaseRecordType](ABC):
    record_type: type[TRecord]

    def read(self, key: int) -> TRecord:
        data = {"key": key}

        return self.record_type(**data)


Crashed with creation ViewNode with Plane object

When I need to create a Plane object, I also have to use a ViewNode. But the Plane object, when created, lost some parameters that will be needed in the future, and I have a crash.

ViewNode:

I think the main source of the problem is the Plane.kt arch, because the Plane class has no parameters from Geometry.
@ThomasGorisse Maybe you should reconsider creating a Plane.kt class?

Hi @ozh-dev.
Thanks for the report. I have to admit that I messed how will calls be at the end.
You're right on this Geometry fact
Would you mind creating a PR with a structure change proposal so we can discuss around it?

I will then publish a SceneView 1.0.0 (3D only) to maven central.

Hi @ozh-dev. Thanks for the report. I have to admit that I messed how will calls be at the end. You're right on this Geometry fact Would you mind creating a PR with a structure change proposal so we can discuss around it?

I have been doing a feature for my work with SceneView, And after  it I'll think about fix for it, maybe I'll find more bugs

I will then publish a SceneView 1.0.0 (3D only) to maven central.

Hi, I fixed the crash here, the fix isn't ideal, but I think it should be considered a hot fix until the architecture of the parent is refactored


Updated ScrollView's keyboardShouldPersistTaps doc

I noticed that even when a ScrollView's keyboardShouldPersistTaps prop is set to true, the ScrollView's children can still respond to tap events (even if the scroll view itself will not respond to tap events and the keyboard does not dismiss automatically). This is a point of ambiguity in the React Native docs; it implies that no touch events can be handled if keyboardShouldPersistTaps is set to true.

By analyzing the blame information on this pull request, we identified @sahrens and @nicklockwood to be potential reviewers.

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at<EMAIL_ADDRESS>Thanks!

Good to go once the minor eslint nit is addressed (I'm aware this is a doc change and the linting rules shouldn't apply, but it will help keep others from getting pinged about this in the future when editing this file).

@simonayzman updated the pull request.

@simonayzman updated the pull request.

@simonayzman updated the pull request.

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review internal test results.


Make Ebiten work with node-gles

https://github.com/google/node-gles
This should be a good preparation for Nintendo Switch with go2cpp.

Hard to require a third party library from wasm_exec.js.


Support comments within FZF_DEFAULT_OPTS_FILE content

Checklist

[X] I have read through the manual page (man fzf)
[X] I have searched through the existing issues
[ ] For bug reports, I have checked if the bug is reproducible in the latest version of fzf

Output of fzf --version
0.54.3 (af4917d)
OS

[X] Linux
[ ] macOS
[ ] Windows
[ ] Etc.

Shell

[X] bash
[X] zsh
[ ] fish

Problem / Steps to reproduce
When defining options via FZF_DEFAULT_OPTS_FILE the config parser doesn't support comment strings,
resulting in an invalid command line string error.
Example fzf config:
FZF_DEFAULT_OPTS_FILE="~/.config/fzf/config"
# Jump back to the first item when query text changes
--bind='change:first'

# Additional key bindings for feature toggles
--bind='alt-a:toggle-all'
--bind='alt-g:ignore'
--bind='alt-p:toggle-preview'
--bind='alt-s:toggle-sort'
--bind='alt-y:yank'

While the typical use of FZF_DEFAULT_OPTS doesn't easily support comments in this fashion do to how string work within shell scripts, I sort of just assumed this would work in the config file because other tools with a similar configuration format such as ripgrep do support comments within the file's contents?
Example ripgrep config:
# Search hidden files and directories
--hidden

# follow symlinks
--follow

I'm not all that familiar with Golang, but after messing around with it a bit, I managed to add a basic sanitization step before the file content is sent to the options parser.
You can find the PR here: #3960
This seems like an easy enough addition, but if the implementation isn't ideal, I'd love to learn about it, thanks!

See https://github.com/mattn/go-shellwords/pull/58
Then we can
diff --git a/src/options.go b/src/options.go
index 1593d6f..450ce38 100644
--- a/src/options.go
+++ b/src/options.go
@@ -2915,6 +2915,12 @@ func postProcessOptions(opts *Options) error {
 	return processScheme(opts)
 }

+func parse(str string) ([]string, error) {
+	parser := shellwords.NewParser()
+	parser.ParseComment = true
+	return parser.Parse(str)
+}
+
 // ParseOptions parses command-line options
 func ParseOptions(useDefaults bool, args []string) (*Options, error) {
 	opts := defaultOptions()
@@ -2928,7 +2934,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) {
 				return nil, errors.New("$FZF_DEFAULT_OPTS_FILE: " + err.Error())
 			}

-			words, parseErr := shellwords.Parse(string(bytes))
+			words, parseErr := parse(string(bytes))
 			if parseErr != nil {
 				return nil, errors.New(path + ": " + parseErr.Error())
 			}
@@ -2940,7 +2946,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) {
 		}

 		// 2. Options from $FZF_DEFAULT_OPTS string
-		words, parseErr := shellwords.Parse(os.Getenv("FZF_DEFAULT_OPTS"))
+		words, parseErr := parse(os.Getenv("FZF_DEFAULT_OPTS"))
 		if parseErr != nil {
 			return nil, errors.New("$FZF_DEFAULT_OPTS: " + parseErr.Error())
 		}

Nice! I did play around with it a bit, and it looks like I was going in the right direction but didn't land on anything solid. Hopefully it gets accepted! 👍

Hi @junegunn, do you have an idea of when 0.55.0 will be released with these changes?

In a few days, hopefully. I was hoping to get #3951 sorted out, but we're not making much progress, so 0.55.0 will probably be released without it.

Sounds good. Thanks for the quick response!


unit tests for sealed interfaces

Worth bumping a version? even if we don't publish it?

Hmm I don't think we need a version bump.


.enableRegistration returning a undefined.

kodiDriver.enableRegistration(
       {
         type: 'SECURITY_CODE',
         headerText: 'Kodi Password',
         description: 'Please enter the password you use with KODI',
       },
       {
         register: (pass) => {
           console.log ('Pass',pass);
           controller.addDeviceDiscoveryPassword(pass)},
         isRegistered: () => {console.log('isRegistered')},
       }
     )

the logging shows:
isRegistered
Pass undefined

expected:
isRegistered
Pass 1234

See #97 as I mentioned there's a bug in registration, should be fixed in the @next release.

Pushed update to @next branch. feel free to reopen if not solved.
Thanks for reporting @nklerk


VNSWRR reduces memory usage with GCD

#1667

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

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

We are best to move the logic of caculating g, ngx_http_upstream_gcd function () and definition of g variable into modules/ngx_http_upstream_vnswrr_module/*.[c or h]. Otherwise you will added too many T_NGX_XXXX macro into nginx core to include your code, which is hard to maintain.
Caculating g may be here as following :
ngx_http_upstream_init_vnswrr
{
...
    if (ngx_http_upstream_init_round_robin(cf, us) != NGX_OK) {
        return NGX_ERROR;
    }

    /* maybe here to insert your logic of caculating g */
}

Thanks, I will fix that :)

Hello @chobits , I tried to move this calculation logic, but I found it difficult, because of the same control flow I have to make a new copy (guard statement, filter condition, etc.), and g(gcd) and w( total_weight) is a feature of this list, so I think it is appropriate to calculate it together with w

gcd can be calculted firstly as a local variable in ngx_http_upstream_init_vnswrr.
Then after vpeers ( and backup vpeers) have been created, gcd varirable can be saved into uvnscf

gcd can be calculted firstly as a local variable in ngx_http_upstream_init_vnswrr. Then after vpeers ( and backup vpeers) have been created, gcd varirable can be saved into uvnscf

Hello @chobits , this has been fixed. But when I try to test my submit, I get this error
tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t ....
Dubious, test returned 2 (wstat 512, 0x200)

I'm new to perl, so I don't know how to fix it, could you help me?

added TEST_NGINX_VERBOSE=yes before command prove, it will output debug log of Test::Nginx.pm
as following:

TEST_NGINX_VERBOSE=yes  TEST_NGINX_UNSAFE=yes TEST_NGINX_BINARY=$nginx_binary prove -v -I $nginx_tests_lib_path $proxy_connect_test_cases

with all compilation error fixed, then you can run old test case, I found a segment fault ( copy test case nginx.conf into local then start nginx):
$ gdb sbin/nginx  -q
Reading symbols from sbin/nginx...
(gdb) run -t
Starting program: /home/xiaochen/work/jtengine/output/sbin/nginx -t
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
ngx_http_upstream_init_vnswrr (cf=0x7fffffffdf30, us=0x683650)
    at modules/ngx_http_upstream_vnswrr_module/ngx_http_upstream_vnswrr_module.c:214
214             backup->gcd = g;
(gdb) print backup
$1 = (ngx_http_upstream_rr_peers_t *) 0x0

Hello, @chobits . I carefully read the README, and repeatedly confirmed to configure, compile and install according to the installation chapters. But when I use gdb to debug, it always prompts me that the corresponding functions and symbols cannot be found. Later, I checked the generated object and found that the vnswrr module was not compiled, it just compiled the nginx native module.
When I searched for vnswrr globally in the project, I found that I needed to add --add-module=./modules/ngx_http_upstream_vnswrr_module to install the corresponding module, and found my compilation error according to it, and it works fine after repairing Compile passed.
I think there should be a corresponding prompt or accessible Contribute documentation in the README to tell newbies that they need to add configuration options to compile their own modified modules (and the default ./configure may not contain Tengine modules)
Now my modification can be tested normally, thanks :)

with updated my changes. cases passed
 $ git diff
diff --git a/modules/ngx_http_upstream_vnswrr_module/ngx_http_upstream_vnswrr_module.c b/modules/ngx_http_upstream_vnswrr_module/ngx_http_upstream_vnswrr_module.c
index b7689f8..20fe0a7 100644
--- a/modules/ngx_http_upstream_vnswrr_module/ngx_http_upstream_vnswrr_module.c
+++ b/modules/ngx_http_upstream_vnswrr_module/ngx_http_upstream_vnswrr_module.c
@@ -235,6 +235,8 @@ ngx_http_upstream_init_vnswrr(ngx_conf_t *cf,
         ubvnscf->last_number = NGX_CONF_UNSET_UINT;
         ubvnscf->last_peer = NULL;

+    if (us->servers) {
+        server = us->servers->elts;
         g = 0;
         for (i = 0; i < us->servers->nelts; i++) {
             if (!server[i].backup) {
@@ -250,6 +252,7 @@ ngx_http_upstream_init_vnswrr(ngx_conf_t *cf,

         ubvnscf->gcd = g;

+    }
         uvnscf->next = ubvnscf;
         uvnscf->next = ubvnscf;

         if (!backup->weighted) {
diff --git a/tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t b/tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t
index a29454e..6228ec0 100644
--- a/tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t
+++ b/tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t
@@ -116,7 +116,7 @@ http {

 EOF

-$t->try_run('no upstream vnswrr')->plan(10);
+$t->try_run('no upstream vnswrr')->plan(13);

 $ sh runtest.sh 2>/dev/null
./tests/nginx-tests/tengine-tests/ngx_http_upstream_vnswrr.t .. ok
tests/nginx-tests/tengine-tests/vnswrr4dynamic_ups.t .......... ok
All tests successful.
Files=2, Tests=23, 15 wallclock secs ( 0.02 usr  0.00 sys +  0.17 cusr  0.01 csys =  0.20 CPU)
Result: PASS

Hello, @wangfakang. I refactored my code to make calculating gcd and backup gcd in single loop, PLAT.

If no other changes, you need to squash all commits  into one. Then merged commit log will be clean.
(may git rebase -i .. && git push --force )

Hello, @chobits. All commits in this PR have already been squashed, PLAT


Patch Cygwin and BSD

Added support for Cygwin, BSD, and generic UNIX platforms.

@wvenialbo Thanks for the patches! Could you please split  this pull request into two:

one, with Added support for BSDs and generic UNIX platforms
one, with CYGWIN support (please, merge your two CYGWIN commits into one)

Just want to keep VCS history more clear :)

Done


Add longfile linter

Originally done at #8016
Limit the maximum file length to 1500 lines in the tests package for now. One
exception for tests/utils.go and tests/reporter/kubernetes.go
exists.
pkg and staging are excluded for now.
nogo is used to ensure good developer experience, since it runs all
linters during normal compilation, including caching which makes it
lightweight. Also no dedicated jobs are needed while at the same time
consistent results between CI, the merge queue and local development
environments is guaranteed.
Potential errors look like this:
pkg/virt-launcher/virtwrap/live-migration-source.go:1079:2: file has a length of 1079 which is more than 1000 lines (longfile)
pkg/virt-launcher/virtwrap/manager.go:1933:2: file has a length of 1933 which is more than 1000 lines (longfile)

Signed-off-by: Roman Mohr<EMAIL_ADDRESS>
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Release note:

None

If this PR is still WIP please convert it to draft please

/test pull-kubevirt-unit-test
/test pull-kubevirt-generate
/ test pull-kubevirt-build

/test pull-kubevirt-unit-tes

/test pull-kubevirt-unit-test

/test pull-kubevirt-unit-test

/test pull-kubevirt-unit-test

/test pull-kubevirt-generate
/test pull-kubevirt-build
/test pull-kubevirt-manifests

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/test pull-kubevirt-build
/test pull-kubevirt-generate
/test pull-kubevirt-unit-test
/test pull-kubevirt-e2e-k8s-1.24-operator

/retest-required

/retest-required

/test pull-kubevirt-e2e-k8s-1.24-sig-compute

/retest-required

/test pull-kubevirt-e2e-kind-1.22-sriov

/test pull-kubevirt-e2e-k8s-1.23-sig-storage

/test pull-kubevirt-e2e-k8s-1.23-sig-storage

/retest-required

/test pull-kubevirt-e2e-kind-1.22-sriov

/test pull-kubevirt-e2e-kind-1.22-sriov

@vladikr PTAL

/sig code-quality

/retest-required

/lgtm

I just demonstrated how to create a small linter which can run in nogo and would check the file length, because the favoured solution by Dan was a bash script in a dedicated linter CI job which would maximize developer friction. I don't think this is needed, it is just an approach which keeps the developer friction to a minimum.


❓ [Question] How do you ....?

❓ Question
Hi, could you please explain how this is better than pytorch to Onnx to TensorRT export path?

This path provides a few benefits vs. ONNX.

IR - One of the issues with ONNX is that you 1. need to have a valid mapping from all PyTorch operators to ONNX operators and 2. you need a valid mapping of all ONNX operators to TensorRT Layers via the ONNX parser. This is not always the case and has been a blocking problem for many users. Torch-TensorRT uses TorchScript which is a built in IR for PyTorch which has much better coverage of PyTorch Operators. Torch-TensorRT goes directly from TorchScript to TensorRT.
a. Integration - Torch-TensorRT produces valid TorchScript programs. This means without any extra code you can fully integrate compiled graphs into larger PyTorch programs. The execution of these graphs will feel no different to standard PyTorch
b. Partial Compilation - Because TorchScript comes with an interpreter and can be executed natively in PyTorch, this opens the possibility to compile subsets of the program to TensorRT while leaving components that are not currently supported in PyTorch. This lets users get some performance gains instead of being all or nothing

Ease of Use - We initially developed Torch-TensorRT in the context of automotive and embedded scenarios so we wanted to make common tasks like compilation and portability pretty simple. In contrast to the boilerplate needed to convert and then run TensorRT engines from ONNX, including a standalone inference application, Torch-TensorRT only requires a few lines of code to compile a model and produces a self contained artifact that is portable w.r.t. TRT portability rules. This means we need to only ship a single file which has the model code to our deployment platforms. The inference code for Torch-TensorRT programs is the same code you would have developed for your PyTorch code. There is other QoL components available like a CLI which is especially nice for compiling models for embedded systems that do not have python and a runtime which will automatically select the proper device for your model.

Those are probably the two major reasons but you can find more information here if you are interested: https://www.nvidia.com/en-us/on-demand/session/gtcfall21-a31107/

Moving this to a discussion thread so others can find it later


Configure multiple instances of a pipe-DAG (issue #17)

Checklist

[ ] Added a CHANGELOG.rst entry

@NMAC427 this is a considerable change to configuration concepts. So I would like to get some feedback from you.

I'm still not convinced that associating a specific "Instance Config" with a flow is in any way necessary or even desirable. It should be possible to run the same flow with different configurations without having to reinstantiate the flow multiple times. A flow should just be a graph consisting of stages and task - nothing else.
I much prefer having a mechanism for specifying which "instance" / "config variation" to use as part of flow.run. I believe this results in more elegant code both on the user side, as well as on the side of pipedag / pipetest. Implementing this should just require changing ConfigContext.from_file so that it also accepts an instance name in addition to a file path (in addition to the new yaml based config reader).
By checking if flow.run is being called inside a ConfigContext, and using it instead of creating a now one, it should also be relatively easy to test a flow on different instances:
@pipetest.run(instances=["full-prefect", "full-dagster"])
def test_foo():
    flow = get_flow()
    flow.run()

The pipetest.run decorator just has to open the correct config context manager for each instance:
# This pseudo code is far from correct, but demonstrates how the same test
# function could be run with different instances without passing around
# config objects as described in
# https://github.com/pydiverse/pydiverse.pipedag/issues/17#issuecomment-1328210380
def pipetest_run(instances):
    for instance in instances:
        with ConfigContext.from_file(instance=instance):
            test_function()

I would also use the instance config for some flow modifying attributes. Of course the creator of the flow could extract it from the config and feed it as separate inputs to the flow creating function. This is actually a pretty standard case where filtering mini-DBs is most easy from an already loaded full-DB.

@NMAC427  I tried to encorporate most of the feedback. I don't like flow.run() receiving instance parameters even though this would still work as an additional change. I prefer to have a configuration for one pipedag-Instance from which one can use flow_attributes during flow creation which can also be passed into flow.run(). With statement wrappers are nice, but they hide quasi-global communication. So I won't use them much outside of flow.run(). But I have no problem for other people to use it, so I also implemented that mode.

We might still have a naming confusion. InstanceConfig is the configuration for all instances at once. ConfigContext is the configuration for one pipe-DAG-Instance. Any naming suggestions here?

Looking through your code, I don't see why the class InstanceConfig is even needed.
The only two things it does is provide a way to initialize a ConfigContext and it is passed to the _init_conf_ functions where instance_config.get_flow_name() is accessed.
The latter use, however, is incorrect. This is how the name config parameter (which doesn't refer to the flow name - the flow name is set when calling Flow.init) is defined in the documentation:

The name of the project. Optional
Currently, the main purpose of the project name is as a namespace for the lock manager.
That way you can use the same manager (e.g. Zookeeper) for two projects that run on different databases without causing any issues.

This means that if we run a flow on two different "instances" (btw. I'm still not entirely sure what you are referring to by instance) they should have different "names". This means that the name config parameter should be moved to the instance section instead.
Consequently, it doesn't make sense to pass an InstanceConfig to _init_conf_, because we need an explicit config (given by ConfigContext) to do proper namespacing.

You can achieve the exact same effect by using ConfigContext without the need for an instance config object:
# Version 1 - Dynamic flow creation without context-local state
config = ConfigContext(file=None, instance="default")

with Flow("FLOW") as flow:
    with Stage("simple_flow_stage1"):
        if not config.attrs["copy_filtered_input"]:
            ...

flow.run(cfg)

# Version 2 - Dynamic flow creation with context-local state
def init_flow(cfg):
    config = ConfigContext.get()

    with Flow("FLOW") as flow:
        with Stage("simple_flow_stage1"):
            if not config.attrs["copy_filtered_input"]:
                ...

    return flow

with ConfigContext(file=None, instance="default"):
    flow = init_flow()
    flow.run()

# Version 3 - Static flow creation with context-local state
@materialize
def input():
    config = ConfigContext.get()
    if not config.attrs["copy_filtered_input"]:
        ...

with Flow("Flow") as flow:
    x = input()

config = ConfigContext(file=None, instance="default")
flow.run(config)
# or
flow.run(instance="default")

Additionally I would rename flow_attributes to attrs because a config file doesn't necessarily refer to a specific flow (e.g. all the flows in the pipedag test cases use the same config file).

I like to decouple reading yaml configuration + potentially overriding some aspects of that via command line args / environment variables from selecting an instance out of the config. So InstanceConfig is this intermediate representation of the yaml that may be used in various ways.

I called flow_attributes like that because the are interpreted by the flow. attrs seems too unspecific to me to see that they are something radically different than the other sections of an instance. I am still open to renaming though.

This means that if we run a flow on two different "instances" (btw. I'm still not entirely sure what you are referring to by instance) they should have different "names". This means that the name config parameter should be moved to the instance section instead.

I would like to keep the name on instance level. I see the highest value in this name to be a flow identifier for human consumption that might also be used when looking at DAG orchestration UI. There should be one name for multiple instances in the hierarchy level below. For ZooKeeper, I suggest to create extra name components to disambiguate different run instances. Locking is most important for a specific database connection + schema name. I am unsure whether we should prevent a collision of mssql://.../master, schema=mydb.stage1 and mssql://.../mydb, schema=stage1

@NMAC427 I think we have three aspects that have influence on the config/flow interaction which are overlapping in meaning:

I want to make it easy to think about a DAG as one thing under which I can have DAG instances (different input data, different materialization schemas, per user/team shared, ...).
Since we don't have a hard coupling of a flow and a pipedag configuration, multiple flows may be executed with the same config
The user may want to run only some stages of a DAG instance/flow combination and he might even develop exploratively in the sense of a large variety of flows under one flow name

You seem to prefer putting the flow top level, mixing it mainly with technical configuration that is potentially shared across flows. I like to put the DAG top level and see different flows executed in a DAG context just like executing substages of one flow. Essentially the DAG may be a forest of many flows / stage-selections executed with the same pipedag config. If flows overlap in a schema name, it is suggested that everything up to and including this schema name is identical code. If not, those flows will compete for cache resources and might evict each other. Branch-based CI executions with a branch independent database is such a case of resource contention. This can either be solved by the cache managing more than two schemas, or by branch specific databases with a database purging logic.


IAM policy versions

@heddle317 I've rebased on your branch and added a commit with tests. Don't merge this, just run the following:
git add remote JackDanger https://github.com/JackDanger/moto.git
git reset --hard JackDanger/iam_policy_versions
git push -f

and then open your own PR against spulec/moto


Something is going wrong with time stamps when endpoint is WordPress

I will investigate and figure out where the problem lies

https://dougbeal.com/2017/06/23/509/#commentsd
https://ownyourswarm.p3k.io/checkin/594dc5b25a2c916a34193afc/50c0ba0a22b78562c51d09ec7512c0a9 2017-06-24 01:51:46	2017-06-24 01:55:00
Swarm says:
2017-06-24 at 1:51 am	(Edit)
Your first Tapas Restaurant.
via ownyourswarm.p3k.io

:sigh: timezones. Looks like Wordpress is converting this and displaying it in UTC rather than in the local timezone. I'm not sure where in the Wordpress flow that's happening, but OwnYourSwarm sends the timestamp in the local time with the timezone offset. (2017-06-23T18:51:46-07:00)

I resolved this in the Micropub plugin in October. It's in the GitHub version

Suggest you close