[Feature Request] Lists and hash substitutions from settings.yml render

Description
When rendering it would be useful to specify more complex substitutions from settings.yml rather than being restricted to only single items.
For instance, I should be able to specify a list of volumes in settings perhaps like so:
myvols:
  - /tmp:/tmp
  - avol:/amount

and in my docker-compose.yml template refer to this:
services:
  atest:
    image: ${image}
    command: 'echo "test"'
    volumes: ${myvols}

Steps to reproduce the issue:

Specify a list in settings.yml
Attempt to refer to the list in docker-compose.yml
docker-app render

Describe the results you received:
Error: failed to load Compose file: invalid interpolation format for services.atest.volumes: "required variable myvols is missing a value". You may need to escape any $ with another $.
Describe the results you expected:
render completes successfully.
Additional information you deem important (e.g. issue happens only occasionally):
Output of docker version:
Client:
 Version:           18.06.1-ce
 API version:       1.38
 Go version:        go1.10.3
 Git commit:        e68fc7a
 Built:             Tue Aug 21 17:24:56 2018
 OS/Arch:           linux/amd64
 Experimental:      false

Server:
 Engine:
  Version:          18.06.1-ce
  API version:      1.38 (minimum version 1.12)
  Go version:       go1.10.3
  Git commit:       e68fc7a
  Built:            Tue Aug 21 17:23:21 2018
  OS/Arch:          linux/amd64
  Experimental:     false

Output of docker-app version:
Version:      v0.6.0
Git commit:   9f9c6680
Built:        Thu Oct  4 13:30:33 2018
OS/Arch:      linux/amd64
Experimental: off
Renderers:    none

Output of docker info:
Containers: 9
 Running: 0
 Paused: 0
 Stopped: 9
Images: 3948
Server Version: 18.06.1-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 apparmor
 seccomp
  Profile: default
Kernel Version: 4.4.0-134-generic
Operating System: Ubuntu 16.04.5 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 15.55GiB
Name: ******
ID: ZQ3P:BIEJ:D3AJ:5THN:U23Q:3ULB:CFUJ:EFI3:GUS3:HBLS:ZDEB:3C3U
Docker Root Dir: /home/dockerstuff
Debug Mode (client): false
Debug Mode (server): false
Username: ********
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
 <IP_ADDRESS>/8
Live Restore Enabled: false

WARNING: No swap limit support

Hi @mkubilus
There are some advanced templating features in the experimental build that you may want to try out. For example, you would be able to write the following docker-compose.yml file:
version: '3.5'
services:
  atest:
    image: abc
    command: echo test
    volumes:
{{range $i, $v := .myvols}}
        - {{$v}}
{{end}}

and render using the following command:
DOCKERAPP_RENDERERS=gotemplate docker-app render

Resulting in the following:
version: "3.5"
services:
  atest:
    command:
    - echo
    - test
    image: abc
    volumes:
    - type: bind
      source: /tmp
      target: /tmp
    - type: volume
      source: avol
      target: /amount

I'd love to see this feature available. Just wondering, for cases where only the values of the list (here myvols) are rendered, why not being able to just write volumes: ${myvols} ?


Grep http status codes from query result

Hey there,
i'm trying to fetch the status code from the error obj but it seems that it is not possible.
    // Error handling     error(error) {       console.error('We\'ve got an error!', error)     },
How do i get the code in this function?

Hi, try like this:
error ({ graphQLErrors, networkError }) {
  console.log(networkError.statusCode)
}

@jpikora  works like a charm :3 Thanks!


Issue in 03.API-EXAMPLE.md

It seems that there is the issue in the following example function stated in https://github.com/jerryscript-project/jerryscript/blob/master/docs/03.API-EXAMPLE.md#step-5-description-of-jerryscript-value-descriptors.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "jerryscript.h"

static void
print_value ( const jerry_value_t value)
{
(snip)
  /* String value */
  else if (jerry_value_is_string (value))
  {
    /* Determining required buffer size */
    jerry_size_t req_sz = jerry_get_string_size (value);
    jerry_char_t str_buf_p[req_sz];

    jerry_string_to_char_buffer (value, str_buf_p, req_sz);
    str_buf_p[req_sz] = '\0';
(snip)

Should the size of str_bug_p be not req_sz but req_sz+1? Otherwise, the stack area is thought to become corrupted.

Yes it should, please open a PR with the fix.

I issued #1919 for the fix.

Merged in https://github.com/jerryscript-project/jerryscript/commit/bb8ac29cce49ad6f2adb2af6c9558bdef6def515


Add displayName when registering a component in the component registry

This fixes this pattern in React dev tools was showing Anonymous as the name of the component.
  const Image = config.getComponent('Image').component || DefaultImage;

Then in JSX
<Image .../>

@tiberiuichim mmmm true.


Spelling Fixes

Additional Spelling fixes @Court72

@cherylmc - can you check the changes in your files, specifically 'includes/vpn-gateway-vwan-vpn-profile-download.md' and approve / sign-off if you agree. thanks!

#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team


Add support for angular-1.4.x

Update disabling functionality to work with or without ngDisabled
Update angular dependency to angular: ~1.4.0 in bower.json
Note that without ngDisabled browser standards are followed. Expressions should not be passed to the disabled attribute since disabling functionality can be dictated solely by it's presence, ignoring any value.

Why do you need to setup the angular dependency to 1.4? I'm pretty sure with this change we lose the ability to install with any angular version under 1.4.

My fix is strictly targeted towards angular 1.4, since under angular 1.3 there was nothing to fix. I did this thinking that you are following angular's versioning and not care about backwards compatibility with a minor update, just as all (official ones) the angular modules do. Not the best approach, but at least is consistent within angular environment.


Fix 'include Pundit is deprecated' warning

Fixes a handful of deprecation warnings:
DEPRECATION WARNING: 'include Pundit' is deprecated. Please use 'include Pundit::Authorization' instead.
 (called from include at app/controllers/application_controller.rb:2)

Codecov Report

Merging #1970 (0a862b7) into master (5e987d1) will decrease coverage by 62.50%.
The diff coverage is 25.00%.

@@             Coverage Diff             @@
##           master    #1970       +/-   ##
===========================================
- Coverage   88.94%   26.44%   -62.51%
===========================================
  Files         402      402
  Lines        8877    10992     +2115
  Branches     1288      740      -548
===========================================
- Hits         7896     2907     -4989
- Misses        782     7973     +7191
+ Partials      199      112       -87

Impacted Files
Coverage Δ

...ntrollers/active_storage/blobs/proxy_controller.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

...pp/controllers/investigations/alerts_controller.rb
0.00% <0.00%> (-90.25%)
:arrow_down:

app/forms/investigation_actions_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/controllers/application_controller.rb
44.00% <100.00%> (-56.00%)
:arrow_down:

app/models/incident.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/alert_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/comment_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/sign_in_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/forms/document_form.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

app/jobs/send_alert_job.rb
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 288 more

Continue to review full report at Codecov.

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


Add support for Debian

Affected Puppet, Ruby, OS and module versions/distributions

Puppet: 5
Ruby: 2.5
Distribution: Debian Buster
Module version: 1.0.0

Description
There are a few changes to make the module work on Debian

the nftables configuration file should /etc/nftables.conf instead of /etc/sysconfig/nftables.conf
the directory /etc/nftables is not created by the Debian package for nftables (managing it in the module would work?)
firewalld is not installed by default, so should be false instead of mask on Debian systems by default
(optional) for Debian Stretch, the version of facter shipped w/ the OS does not use structured facts. If it is desired to extend support to Debian Stretch, that case should be handled as well.

I have a WIP branch dev for which I will open a PR.
thanks

I would be very interested in this being incorporated. Debian is also a widely used distribution.
Can you foresee when things will go ahead here?

When people continue to push things on the outstanding pull request and make it possible to merge: #66 . This is a free software project and not a product, if you want something in either contribute or wait (patiently). Thank you.

Sorry, that was more of a hint in the direction of whoever opened the pull request and request.
If someone started it, maybe they should finish it.
Alternatively, of course, you can do it yourself or, as you write, wait ... Let's see what happens.

I believe that's done via https://github.com/voxpupuli/puppet-nftables/pull/134.


Request: add Pinterest to social media options

We <3 Pinterest and would love to have it added as an option in the footer.

Sure, I don't see why not.


Update javascript-query-api.md

Fix TYPO

@rahul230691 : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Looks good; thanks @rahul230691.


MDNS does not start in UWP app

I was always looking for a MDNS library that can query and announce services at the same time. Seems your library could be the perfect match. :)
While I got it running within .NET 4.6.1, it seems no to work for a Windows 10 UWP app.
I took your browser sample from here: https://github.com/richardschneider/net-mdns/blob/master/Browser/Program.cs
I have set all neccessary capabilities for private network and so on, and I split the code into one half setting up handlers and starting the service and another half that stops and disposes.
But unfortunately it seems the multicast service does not even start.
First I realized I never get the NetworkInterfaceDiscovered event... so I added another button for testing purposes which shall do the query anyway - but this one always throws an exception that mdns got not started. So I am wondering what could block mdns.start(); internally from starting?
Can anyone confirm this for UWP?

Did you make any changes to support .NET 4.6.1?  If so can you make a PR.
I have no experience with Windows 10 UWP.  Please point me to the repo that has the App for UWP.  I'll be happy to debug it.

After some investigation, it appears that System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces is throwing  a NotImplementedException; see this issue.

You need to set the UWP min version target to Build 16299; this uses .Net Standard 2 and implements GetAllNetworkInterfaces.

Ah, thanks for investigating!
Unfortunately my app is out in the wild and last version of Windows 10 Mobile does not support the FCU update (it does, but not on API level). That was yet another reason why I wanted to switch from Zeroconf, which also supports only .NET Standard 2 starting with their v3 release.
Do you consider supporting 1.4? Your current readme.md and the library's dependency graph do otherwise just "trick" people like me. :)

.Net Standard 1.4 is supported and is tested against CoreApp 1.1 See the Appveyor logs or try it on your machine with dotnet test -c Release test.
For 1.4 the package "System.Net.NetworkInformation" Version="4.3.0" is included. It appears that UWP does not include this package.
I'm sorry, bit I'm not interested in supporting old versions of UWP.  However, if you can figure out how to get old UWP to use new NetworkInformation then I am glad to accept a PR.


Issue with k8s.io/docs/tutorials/stateless-application/guestbook-logs-metrics-with-elk/

This is a Bug Report

Problem:
Could not start kube-state-metrics after executing "kubectl create -f examples/standard"
Proposed Solution:
After cloning kube-state-metrics, the yaml files used to create kube-state-metrics are in kube-state-metrics/examples/standard directory.
"kubectl create -f examples/standard" should be ""kubectl create -f kube-state-metrics/examples/standard".
Page to Update:
https://kubernetes.io/docs/tutorials/stateless-application/guestbook-logs-metrics-with-elk/

actually the command suggested is kubectl apply -f kube-state-metrics/examples/standard, i.e. the directory is there.
/close


Database locked error

Im experiencing this one with messagekit
code:internal/process/promises:288
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: storage error: Diesel result error: database is locked] {
  code: 'GenericFailure'
}

I think we might be able to close this out now. Let me know if anyone runs into this again.


GDScript: Fix message when calling non-tool function in tool mode

Closes #36592.
Alternative to #84045.
See also #94499.

Instead of the "Nonexistent function..." error, a more useful message is displayed:

res://addons/BugIsHere/addon_main.gd:15 - Invalid call function 'initialize' in base 'Control (AddonControl)': Attempt to call a method on a placeholder instance. Check if the script has the tool annotation.

Why not something along the lines of "Methods without the @tool annotation can't by called by scripts in tool mode."? "Check if" implies less of a fix.

Thanks!

Cherry-picked for 4.3.1.

No cherry-picking for 4.3.x for now as this caused regressions (fixed with #96173 and #96344, but this calls for some caution/more testing in 4.4).


No instructions

Doesn't look there is any readme or instructions for this tool. Any suggestions on where to start?

Sorry about that, I still need to get those added. For now, you can simply double-click on the executable and answer the questions in the command prompt window. It will start by attempting to locate your debug box on the network (assuming it's network-connected, powered on, and on the same network as your PC), you can then specify the local directory you'd like the info saved to, and answer yes to the xbdm/kernel/eeprom/hdd image dump questions; the last file-level one being optional.

Running Windows 11. When I run the executable, it flashes a blue screen (terminal window) and then immediately closes on me.

Does it create a log file with any additional information in the same directory as the EXE? You'll need to install the .NET 7 runtime from the link below, as well as make sure you're running the app after extracting it from the zip instead of from inside it.
https://dotnet.microsoft.com/en-us/download/dotnet/7.0

Description: A .NET application failed.
Application: OGXbdmDumper.exe
Path: C:\Users\name\Downloads\OGXbdmDumper.exe
Message: You must install or update .NET to run this application.

App: C:\Users\name\Downloads\OGXbdmDumper.exe

Bingo on the runtime not being installed. This was the output in Event Viewer. I'll download it and try again when I have time.


.stryker-tmp folder is added to the files array

Mentioned by @rexmq in #669
If the .stryker-tmp folder is not in your .gitignore file it will be added to the files array and thus also to the sandboxes.
This can be seen in the robobar example if you remove the .stryker-tmp folder from the .gitignore file:

Now we suddenly have over 400 files in the sandbox, while we generally only have around 40 with this repository.
When users use the stryker init we can add the .stryker-tmp folder to their .gitignore file, if they have any. But we should also make sure that we either clean the tmp folder when we start stryker or that we just ignore those files if they end up as the result of the git query.

I think we should ignore these files even if they show up in the git query. That way we don't have to rely on the users gitignore for this.


Add Mikrotik exporter

Thanks for you PR.
This exporter is taking a secret on the commandline which is insecure, can you fix that please?
What does this cover that the snmp exporter doesn't, and vice versa? Are there any key metrics missing?
I'd suggest a read of https://prometheus.io/docs/instrumenting/writing_exporters/ to help improve your exporter, for example:
Service discovery is the responsibility of Prometheus, not exporters. You should take the target from a URL parameter like the snmp exporter does, and not offer features like custom DNS resolution. I'd personally also suggest removing the single device mode as the multiple device mode should be sufficient, and make things a bit simpler for you.
I'm not sure of the wisdom of providing route-based BGP, the global routing table is not something you should try to expose to Prometheus as that's basically a database dump semantically plus it'll have cardinality issues. This is worth a warning in the docs at least.
Many metrics seem to have an incorrect  type. For example updates-sent sounds like a counter, but is exposed as a gauge. If you're not use, use untyped. Counters should also end in _total, and _count should be avoided for gauges as that indicates one of the counters of a summary/histogram.
Many metrics seem to be missing units. Some units also seem to not be base units. E.g. in w60g signal is a percentage rather than a ratio, frequency is in MHz rather than Hz, and txDistance lacks a unit.
In the dhcpcollector, expiresafter and status should be gauges - not labels. The main metric here should also have a _info suffix, and be a gauge.
On a parse error I'd recommend failing the whole scrape, rather than silently returning no or partial data.
The wlanif collector seems to be excluding disabled interfaces. In general it's best to fetch everything, so that there's no gaps if someone disables something or it otherwise breaks.
In resource collector (and other places) there are more labels on metrics than they should be. Boardname and version belong in an info metric, not on metrics such as memory usage. Name and address sounds like target labels, and should be handled on the Prometheus end (and may also be on an info metric).


Good IOU Score on training data, but bad segmentation on testing data.

I have used inceptionv3 as my backbone and trained it on 20 epochs, got mean iou score of 0.90. However, when i try to predict on test data, the results are like this:

My dataset contains images about tomato disease(10 classes). The Gt mask tells which part on leaf is healthy and which part is diseased, whereas Pr mask is just making the shape of the leaf.
Thanks

Hello @ranjan2601,
Could you share how you organized your class Dataset and built your model?
It will be easier to come up with a strategy for your problem.


Acquire mutex lock of Http2Stream before starting new transaction

After #3141, there're no guarantee of mutex of HttpSM is held by some thread.

Fix #3497
7.x backport candidate

Cherry-picked to 7.1.x.


Does this work for WebGL?

@MrRobinOfficial  If so, how? Can you make an example that allows to save a JSON for localization settings and save data, etc... without the need of downloading the JSON file before the game reads it? I'd use indexDB but the problem with that often is data limits. the amount of data an indexDB can hold. Of which I need alot of since I'm translating all the text of my game's characters among other things such as options menus, other menus, etc...
Thank you kindly!

Hey, sorry, this was not intended for WebGL. However, it wouldn't surprise me, if the code worked on WebGL.
This repo is currently experimental, meaning a lot of things can change.
Sadly, I can't help you with this, my recommendation that if you want to store huge amount of data, use a database.


AudioDevice can only be changed before initialization.

Hi Team,
I am getting this error AudioDevice can only be changed before initialization in 2.15.3. I previously used the version 2.14.3  and it worked fine there. As I see in the code, this error is thrown when the V3AudioDriver is active. The only thing I don't understand, why the V3AudioDriver is active. I already disconnected from the previous session and I try to create a new session with a custom audio device.
Could you please take a look at it?

Hi, I meet the same issue, do you have any method to fix it?

@fjzboy, unfortunately, I don't have, I switched back to 2.14.3

Hi!
I'm afraid that the AudioDevice cannot be changed after you use connect to a session of after building a publisher.

I just resolved this issue by removing the line enableStereoOutput: true.

For those coming here:
it will always crash if you have isCamera2Capable: true together with enableStereoOutput: true.
Setting isCamera2Capable: false allowed us to use this OT custom audio driver that handles audio routing in a much better way than the default one.


[CT-1909] [CT-1903] Unable to generate docs from dbt core

Is this a new bug in dbt-core?

[X] I believe this is a new bug in dbt-core
[X] I have searched the existing issues, and I could not find an existing issue for this bug

Current Behavior
dbt docs generate
throwing error
cross-db references allowed only in Redshift RA3.
but dbt compile is working properly
Expected Behavior
dbt docs generate should generate docs
Steps To Reproduce
define sources across dbs in redshift in dbt project
develop and execute models in a particular database
run dbt docs generate
Relevant log output
No response
Environment
- OS: windows
- Python:3.9
- dbt: 1.3.2

Which database adapter are you using with dbt?
No response
Additional Context
No response

Thanks for opening this issue @jaswanth-gaddipati !
Could you share more detail about the error it is throwing? i.e., could you share the relevant output and/or logs within logs/dbt.log?

I did some more research @jaswanth-gaddipati. I see now that you mentioned precise error was something like:
Cross-db references allowed only in Redshift RA3.* node. Got X

Could you try adding ra3_node to your profiles.yml configuration like below (and demonstrated here and here)?
  target: dev
  outputs:
    dev:
      type: redshift
      ...
      ra3_node: true # enables cross-database sources

Apparently, this configuration should enable cross-database sources if you are not actually using RA3 nodes.
One known problem is that dbt Cloud users do not have access to custom profiles.yml fields today, so this option won't be a possibility if you are a dbt Cloud user.

Hi @dbeatty10
Thank you. I am able to generate docs.

Thank you. I am able to generate docs.

🙌 Awesome @jaswanth-gaddipati !

can we create models in redshift across DBs

I don't think so due to the known limitations. I'm guessing you would need separate dbt projects per database. But if you discover that it does work somehow, please let us know!
 You can open a new one if you run into any bugs or have any feature requests.


re8 crash after Chris take my bady

re8 crash after Chris take my bady
re2_framework_log.txt
reframework_crash.dmp
v1.5.2 i use vr mod ,re8 crash after Chris take my bady
if change to no vr mod,it's ok
i go to the village find first save point saved
then change to vr mod , it crash after load the  save point
please save my life ,thanks

OS Windows 11
Graphics card 4080
CPU i5 13600kf

use the latest steam vr version
re8.exe version <IP_ADDRESS>
Runtime  OpenVR or OpenXR both crash

it seems relate to graphic settings, it's ok now


Metrics POC: Add config option to disable Opendata harvest if needed.

/api/endpoint should be enabled by default

Test would be nice

I will add test as debt, because been stuck with some issues at this moment.


Error: Value cannot be null. (Parameter 'input')

I updated SearchPlugin to use my Cognitive Search Index. When I ran and tested this bot, I was getting "Value cannot be null. (Parameter 'input')" error.
at System.Text.RegularExpressions.ThrowHelper.ThrowArgumentNullException(ExceptionArgument arg)
at System.Text.RegularExpressions.Regex.Match(String input)
at Microsoft.SemanticKernel.Planners.StepwisePlanner.ParseResult(String input)
at Microsoft.SemanticKernel.Planners.StepwisePlanner.<>c__DisplayClass2_0.<g__GetNextStepAsync|0>d.MoveNext()
at Microsoft.SemanticKernel.Planners.StepwisePlanner.d__2.MoveNext()
at Microsoft.SemanticKernel.NativeFunction.<>c.<b__35_4>d.MoveNext()
at Microsoft.SemanticKernel.NativeFunction.d__18.MoveNext()
at Microsoft.SemanticKernel.InstrumentedSKFunction.d__21.MoveNext()
at Microsoft.SemanticKernel.InstrumentedSKFunction.d__10.MoveNext()
at Microsoft.SemanticKernel.Planning.Plan.d__47.MoveNext()
at Microsoft.SemanticKernel.Kernel.d__21.MoveNext()
at Microsoft.BotBuilderSamples.SKBot.d__17.MoveNext() in E:\GitHub\semantic-kernel-bot-in-a-box\src\Bots\SKBot.cs:line 123
at Microsoft.BotBuilderSamples.StateManagementBot.d__5.MoveNext() in E:\GitHub\semantic-kernel-bot-in-a-box\src\Bots\StateManagementBot.cs:line 51
at Microsoft.Bot.Builder.ActivityHandler.d__0.MoveNext()
at Microsoft.BotBuilderSamples.StateManagementBot.d__3.MoveNext() in E:\GitHub\semantic-kernel-bot-in-a-box\src\Bots\StateManagementBot.cs:line 28
at Microsoft.Bot.Builder.MiddlewareSet.d__3.MoveNext()
at Microsoft.Bot.Builder.BotAdapter.d__23.MoveNext()
My updated code:

Please help me to fix this issue.

Hello @rnpramasamy, thank you for your interest in the project.
I see you implemented your own search document model SharePointDoc. Is that using the preview SharePoint Indexer? https://learn.microsoft.com/en-us/azure/search/search-howto-index-sharepoint-online
Also, have you been able to run the bot with the DEBUG flag enabled? Any insights into the planners thought process should be helpful in debugging the issue.

Closing this issue due to inactivity - please feel free to reopen if needed!


Class wrap

Codecov Report

Merging #2 (4494e07) into main (4d4a271) will increase coverage by 17.73%.
The diff coverage is 18.18%.

:exclamation: Current head 4494e07 differs from pull request most recent head 5206e6f. Consider uploading reports for the commit 5206e6f to get more accurate results

@@            Coverage Diff             @@
##            main       #2       +/-   ##
==========================================
+ Coverage   2.83%   20.56%   +17.73%
==========================================
  Files          5        4        -1
  Lines        141      141
==========================================
+ Hits           4       29       +25
+ Misses       137      112       -25

Impacted Files
Coverage Δ

air2neo/main.py
16.39% <14.78%> (+16.39%)
:arrow_up:

air2neo/config.py
28.57% <80.00%> (+28.57%)
:arrow_up:

air2neo/__init__.py
100.00% <100.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 4d4a271...5206e6f. Read the comment docs.


[cass_koopman_*] adjust rst whitespace+spacing in preparation for myst conversion

This PR fixes white space to conform to rst specification in preparation for myst conversion.
This PR should not change anything on the html site.

this PR has a minor visual change as sub-lists are no longer added as independent lists and are properly formatted as nested lists. The bullet for the nested list is an unfilled circle vs filled circles at the top level.


useDynamicMutation hook: Getting an error for returned executeMutation function with no variables

Hi! Thanks for the fantastic work 👏🏽
I found a bug, which turned out not to be so critical, but it might be useful to others to resolve it or be aware of it.
When I use the useDynamicMutation hook with no variable for the returned executeMutation function, I get an error: This argument cannot be applied without label.
In this case, it is possible to use useMutation, and that’s what I did eventually.
But with the useDynamicMutation used before there was no way to make it works.
getting an error:
let ({fetching, response}, executeCreateStoryline) =
    ReasonUrql.Hooks.useDynamicMutation(CreateStoryline.definition);
  let createStoryline = () => {
    let _: Js.Promise.t(ReasonUrql.Types.operationResult) = executeCreateStoryline(); // error: This argument cannot be applied without label
    ();
  };

works well:
let ({fetching, response}, executeCreateStoryline) =
    ReasonUrql.Hooks.useMutation(~request=CreateStoryline.make());
  let createStoryline = () => {
    let _: Js.Promise.t(ReasonUrql.Types.operationResult) = executeCreateStoryline();
    ();
  };

Huh, this is an interesting one and I'm not totally sure what's happening here! Does it give you a specific labelled parameter that it's expecting, or just "label"?
A good thing to note — we're going to be releasing v3.0.0 very soon (likely this weekend), which removes useDynamicMutation altogether. useMutation will function as useDynamicMutation does currently, where variables are applied at execution time — this brings it more inline with how urql works while still preserving the type safety on variables and responses from your GraphQL API.
So, for now, I don't think there's much to do on this end. Especially with standard useMutation as a workaround. I would bet that it may be related to the upstream PPX and how we integrate with the GraphQL query module internals, but since we're moving off of that PPX imminently I don't see too much point in investigating. If we find that similar behavior arises after v3 is released, let's reopen and dive in more. Thanks for using the library and for finding this!

v3.0.0 🥳
great news!
I will test the code again with the new version and update if it reoccurs.
just for the record, if anyone will need some more details later on -
it didn't expect any specific label, it was just the general error of: This argument cannot be applied without label. and it didn't help to pass some of the optional executeMutation arguments like requestPolicy etc.
Thank you for the detailed reply!


refactor: mocks and debug output (#80)

This pull request only does a small refactoring of the mocks generation function and the debug output.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>2
Details

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

Totals

Change from base Build<PHONE_NUMBER>6:
0.0%

Covered Lines:
310

Relevant Lines:
310

💛  - Coveralls


Fix to make the mod compatible with the latest Azerothcore changes.

Fix to make the mod compatible with the latest Azerothcore changes.
This fixes issue #23
I tested on my own server and now the mod works properly.

I tested it yesterday with rev d810c78, compilation works on Linux.

build fail for this error:
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_server.cpp.o
/home/runner/work/mod-solo-lfg/mod-solo-lfg/src/server/game/DungeonFinding/LFGMgr.cpp:29:100: fatal error: field 'm_Testing' will be initialized after field 'm_isSoloLFG' [-Wreorder-ctor]
    LFGMgr::LFGMgr(): m_lfgProposalId(1), m_options(sWorld->getIntConfig(CONFIG_LFG_OPTIONSMASK)), m_Testing(false), m_isSoloLFG(false)
                                                                                ^
1 error generated.
make[2]: *** [src/server/game/CMakeFiles/game.dir/build.make:860: src/server/game/CMakeFiles/game.dir/DungeonFinding/LFGMgr.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_spectator.cpp.o
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_tele.cpp.o
make[1]: *** [CMakeFiles/Makefile2:1350: src/server/game/CMakeFiles/game.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

build fail for this error:
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_server.cpp.o
/home/runner/work/mod-solo-lfg/mod-solo-lfg/src/server/game/DungeonFinding/LFGMgr.cpp:29:100: fatal error: field 'm_Testing' will be initialized after field 'm_isSoloLFG' [-Wreorder-ctor]
    LFGMgr::LFGMgr(): m_lfgProposalId(1), m_options(sWorld->getIntConfig(CONFIG_LFG_OPTIONSMASK)), m_Testing(false), m_isSoloLFG(false)
                                                                                ^
1 error generated.
make[2]: *** [src/server/game/CMakeFiles/game.dir/build.make:860: src/server/game/CMakeFiles/game.dir/DungeonFinding/LFGMgr.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_spectator.cpp.o
[ 32%] Building CXX object src/server/scripts/CMakeFiles/scripts.dir/Commands/cs_tele.cpp.o
make[1]: *** [CMakeFiles/Makefile2:1350: src/server/game/CMakeFiles/game.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

I think it is because github compiler treats a warning as an error, whereas the regular compiler used while compiling the server on the Dashboard installation, doesn't. I can certify my server is running fine, at least.


is it possible to change the id that's used to test a relationship?

Hi,
I have a somewhat odd situation where I need to change the id used when loading a belongs-to-many relationship. I have an Appointment model which has many pets. When I load appointment.pets, the following SQL is generated:
'select "pet".*, "appointment_pet"."appointment_id" as "_pivot_appointment_id", "appointment_pet"."pet_id" as "_pivot_pet_id" from "pet" inner join "appointment_pet" on "appointment_pet"."pet_id" = "pet"."id" where "appointment_pet"."appointment_id" in (?)'

The SQL works great, but I have a special case (I won't go into details yet) where I need to change the parameter that is passed into the where clause of this statement. Is there anywhere where this could possibly be done?
Updated w/ Details
I'm working on a platform that has a calendar component and that calendar needs to support recurring appointments. Rather than creating every potential instance of a recurring appointment, I'm generating these recurrences on the fly, which leads to much less maintenance going forward. My Appointment model also has relations that are associated with each instance. An Appointment can have many services, etc. When loading these relations using withRelated on an appointment that exists in the database (is not dynamically generated), the id of that appointment is passed into whatever relation withRelated attempt to load and works great.
However, with these dynamically generated appointments, I actually need to load the relations using the id of the parent appointment from which these instances were generated. Unfortunately, I can't seem to find a way to either specify to use that parent id or a place where I can intercept and change it before the relation is loaded.
Is this possible? Otherwise, I'd be open to a different solution.
Thanks!
James

I was finally able to get different ids injected into the above query by temporarily changing the idAttribute on the model from id to parent_id. The query is correct and parameters being passed are also correct, but the relationships are empty when the model is returned.
Here's a snapshot of what I have:
// appointment model
    pets() {

        return this.belongsToMany('Pet', 'appointment_pet', 'parent_id');
    },
},

// Returns all appointments
    fetchAll(businessId, options) {

        options = options || {};

        // If a start and end date are passed, return all appointments
        // within that range, with recurrences expanded.
        if (!_.isUndefined(options.startDate) &&
            !_.isUndefined(options.endDate)) {

            const startDate = Moment(options.startDate);
            const endDate = Moment(options.endDate);

            // Disable paging unless the date range is greater than 60 days
            if (Moment.duration(endDate.diff(startDate)).asDays() <= 60) {
                options.page = false;
            }

            // temporarily change id attribute so `parent_id` is used when looking up the relation
            Appointment.prototype.idAttribute = 'parent_id';

            return Appointment
                .query((qb) => {

                    qb.from(Bookshelf.knex.raw('get_appointments(?, ?, ?) AS appointment', [businessId, startDate.toISOString(), endDate.toISOString()]));
                })
                .fetchAll({
                    withRelated: [{
                        pets: (qb) => {
                            qb.select(['appointment_id as parent_id', 'pet.*']);
                        }
                    }]
                });
        }

        // Otherwise, return all appointments
        return Appointment.findAll({ businessId: businessId }, options);
    },

I see the following debug output:
{ method: 'select',
  options: {},
  bindings:
   [ null,
     '35a2941c-d73f-4cf3-87de-bfbcbc92fbc5',
     '5de28a57-ce4c-4fcc-865a-54cf97e08c6c',
     'bf4b6784-b96a-4321-8335-e449aa8dcda1',
     '695edc54-3a93-42a5-a3e0-b331f26912cf',
     '76a99204-9659-4270-904c-2c42e5c40a15',
     '28437e3c-abc1-4fd6-8c26-5543c09ab730',
     '350da29d-0e82-4e6c-b9fe-be31c64655b4',
     'bcaee041-c9ec-4a34-8c0d-8f21d2d79197',
     '91380fcc-2f0d-4344-a24b-dc37abe3931f',
     '31796797-5041-4fae-815b-0f2c368654b0',
     '94800af3-fd23-4b59-af88-15b1f622e8e1',
     'aa8c202d-249e-4ffc-ab55-e535f2c2121f',
     '8a1fd093-45a6-4864-8c52-ea8851740f77',
     '5f91ad6f-4231-4d18-b718-d99fcc17a18b',
     '5f879e43-a44f-41dd-b9dd-11f06af4cc8d' ],
  sql: 'select "pet".*, "appointment_pet"."parent_id" as "_pivot_parent_id", "appointment_pet"."pet_id" as "_pivot_pet_id" from "pet" inner join "appointment_pet" on "appointment_pet"."pet_id" = "pet"."id" where "appointment_pet"."parent_id" in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'}

Running this command in postgres, I see the correct output, but still no relations. I saw #1203 and tried adding the parent_id explicitly to the select, but still no luck.
@vellotis have you ran into anything like this?

@jamesdixon This is not supported currently. I actually think it wouldn't be too difficult to add support in if you want to poke around in the relation code.
Actually it's a very confusing part of the library, but this change shouldn't be too difficult (hopefully). We could add support for an interface like this:
// support old interface for back compatability, or new interface:
// belongsTo(model, { selfKey, foreignKey })

belongsTo(model, foreignKey) {

  // this code would probably be in the 'relation' file.
  let selfKey = null;
  if (isObject(foreignKey)) {
    selfKey = foreignKey.selfKey;
    foreignKey = foreignKey.foreignKey;
  }
  if (selfKey == null) {
    selfKey = this.idAttribute || 'id';
  }

  // ...etc etc
}

Sry @jamesdixon that I haven't had time to view your problem. Actually belongsToMany relations get attached not by 'person_id' values but by its pivotal values. If you debug your query you can fin something like
select ... , appointment_pet.parent_id as _pivot_parent_id`, ... from ...`

so you should change your query something like
pets: (qb) => {
  qb.select(['appointment_id as _pivot_parent_id', 'pet.*']);
}

I hope it works. I haven't checked it in action.

Hmm... I recognized that your qb.select actually didn't change the query at all. So my suggestion doesn't work as qb.select doesn't modify eagerly loaded relation query..

The project leadership of Bookshelf recently changed. In an effort to advance the project we close all issues older than one year.
If you think this issue needs to be re-evaluated please post a comment on why this is still important and we will re-open it.
We also started an open discussion about the future of Bookshelf.js here https://github.com/bookshelf/bookshelf/issues/1600. Feel free to drop by and give us your opinion.
Let's make Bookshelf great again


Standard Circom Gadget with Keccak example

Goal of this PR
The goal of this PR is to properly implement some standard Circom Gadget in our Lurk library, along with a Keccak example.
Current progress

Implemented two ways for the CircomCoprocessor to look for gadget, either via CLI or directly on a remote Github repository
Create a standard template for Circom Gadget on Github

Help required to pass it in public instead of private

Create keccak-circom-gadget repository based on the template.

Left TODO

[ ] Create pull request over circom-scotia to ensure that we can have slice returned as an output. Branch here.
[ ] Once merged, update the example for Keccak in lurk-rs to make it work
[ ] Finally, derive the example to implement the CircomKeccak implementing CircomGadget directly in our repository.

Current caveats
The goal of the following bullet points is to point out diverse part of the flow where I think I need external opinion before setting them in stone :)

Right now, the CircomCoprocessor looks for the CircomGadget files locally before fetching them from the remote rpeository. This is a great simple caching solution BUT it might be too naïve because it does not emcompasss the version of the gadget. Thus if I update my CircomGadget version it will still use the old one. Should I fix that?
I'd like to know if what I've done for the foundation of remote Circom Gadget seems alright.

Related issue
This is part of tackling the issue #962

Have you created a small toy repo where we'd be able to test this import mechanism? Perhaps try to run a GH import on nightly?

Not 100% sure about what you mean but I have adapted the template in a keccak example. The keccak example is also using this remote logic.

I like the approach of grabbing the files from an online location: even if I'm a bit sceptical about the bit about doing, specifically, a Github release, which I feel might add friction.

Would you have a recommendation of another place to host them?

I have adapted the template in a keccak example. The keccak example is also using this remote logic.

Oh, nice!

Would you have a recommendation of another place to host them?

For us at Lurk Lab? I'm fine with releases, for now (those gadgets can get huge)
But in I was thinking user may just give us 2 URLs to their S3 bucket, and perhaps we could work with that?

The fact that a change to lurk-lib is being shown on the diff is a bit weird. The submodule must be up to date with https://github.com/lurk-lab/lurk-lib/commit/a4b187bca631a24ada02fbd1831dd0cdc1183bf6

@arthurpaulino thanks for noticing! Fixed this!


use module list cmd for module check

This PR addresses module checking logic.
cc @ruoccofabrizio make sure this works for your use case with ACRE?

thanks @tylerhutcherson , it solves the issue with ACRE. @hwchase17


uv python pin should support writing to a uv.toml or pyproject.toml

We need to design the schema for this data. Probably at uv.python-version or uv.python.default-version.

Then, should it also be top-level command uv pin? since it tries to manage project/workspace directly.

That's a reasonable question. I'm not sure. I don't love it at the top-level since it's not obvious what we're pinning.

I duped myself, https://github.com/astral-sh/uv/issues/4359 covers reading from the configuration file.

(At least figure out the rough design prior to the release.)

I'm slightly concerned this will lead to more fragmentation of where third party ecosystems (such as Heroku, GHA setup-python, Dependabot, ...) will need to check for Python versions when bootstrapping an environment.
If there was a field in pyproject.toml that was guaranteed in the upstream spec to be a single Python version (either X.Y.Z or X.Y) rather than a range, then I'd be fine with the ecosystem consolidating around that, but as-is the existing pyproject.toml requires-python field isn't suitable for bootstrapping purposes, and so the .python-version file is the next best thing available - and pretty widely accepted at this point.

... as-is the existing pyproject.toml requires-python field isn't suitable for bootstrapping purposes, and so the .python-version file is the next best thing available - and pretty widely accepted at this point.

Agreed. That's why we've delayed implementing this. Unfortunately, we're getting quite a bit of confusion from users. I'm not sure how we'll address that.


ValloxMV Adapter 1.1.0

RE-CHECK!

Automated adapter checker
ioBroker.valloxmv

[ ] :heavy_exclamation_mark: [E506] Word "host" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E506] Word "port" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E506] Word "interval" is not translated to russian in admin/words.js. You can use https://translator.iobroker.in/ for translations
[ ] :heavy_exclamation_mark: [E801] No repository about text found. Please go to "https://github.com/hacki11/ioBroker.valloxmv", press the first "Edit" button you will find on the page and add the description.
[ ] :heavy_exclamation_mark: [E802] No topics found in the repository. Please go to "https://github.com/hacki11/ioBroker.valloxmv" and press Manage topics

Add comment "RE-CHECK!" to start check anew

@hacki11 can you please check the comments for the future versions?

RE-CHECK!

Automated adapter checker
ioBroker.valloxmv

[ ] :heavy_exclamation_mark: [E801] No repository about text found. Please go to "https://github.com/hacki11/ioBroker.valloxmv", press the first "Edit" button you will find on the page and add the description.
[ ] :heavy_exclamation_mark: [E802] No topics found in the repository. Please go to "https://github.com/hacki11/ioBroker.valloxmv" and press Manage topics

Add comment "RE-CHECK!" to start check anew

Fixed all issues in my adapter and in the adapter checker:
https://github.com/ioBroker/ioBroker.repochecker/pull/34

RE-CHECK!

Automated adapter checker
ioBroker.valloxmv

:thumbsup: No errors found
Add comment "RE-CHECK!" to start check anew

Bump

thank you


Automated UI Tests for iOS

Initial Automated UI Tests demo for Xcode

[x] Create initial UITest scaffolding for iOS
[x] Add UITests based on XCTest with deployment target of iOS 9.0
[x] Save a PNG screenshot to the UITest results. Add XCTest extension for screenshots
[x] Provide PNG & Video .MOV samples to demonstrate automated UITests running in Xcode
[x] Add flag to make iproj CI=1 to run in headless mode (for GitHub Actions & Xcode Server Bots)
[x] Add UITests for the Scheme iosapp
[x] Enable UITests for the Scheme bench while in the iosapp scheme
[x] For the Scheme bench, Write the Benchmark log to the Documents Directory of the Simulator or Device to facilitate testing of many Benchmarking runs and iterations for testing FPS.  Useful for Metal versus Open GL testing.
[x] Review tests for for FPS performance (for example, for Metal)
[x] Add Zero Configuration (Zeroconf) Styles to the Scheme iosapp to facilitate automated testing without an access token nor secrets (for GitHub Actions & Xcode Server Bots).

[ ] Add tests for other tile providers and TileJSON sources

[ ] Demonstrate automated UITests running in GitHub Actions
[x] Demonstrate with Xcode Server Bots (XCS) for locally made builds.
[ ] Determine where Xcode xcresult result bundles should be stored (for example, attached as part of a release)
[x] Test with command line builds (xcodebuild & make test)
[x] Demonstrate running automated UI Tests in AWS Device Farm
[x] Submit PR from working branch https://github.com/roblabs/maplibre-gl-native/commits/uitests

Sample Test PNG & MOV

setup initial conditions for position (0,0) and debug settings
Take a screenshot
Current source (easier to view in Xcode) - https://github.com/roblabs/maplibre-gl-native/blob/uitests/platform/ios/platform/ios/iosapp UITests/iosapp_UITests.swift#L38,L44

Sample output file saved in .xcresult
MapLibre-Screenshot-Null Island Tiles-iPhone 6s-13.7.png

[x] Add Zero Configuration (Zeroconf) Styles to the Scheme iosapp to facilitate automated testing without an access token nor secrets (for GitHub Actions & Xcode Server Bots).

Screen recording of Zeroconf Tiles using Xcode 12.5
https://user-images.githubusercontent.com/118112/110371008-3f48f280-8001-11eb-92f1-acfe3ca7af37.mov

Can this be closed @roblabs? It looks like to implemented automated ui tests in #47...


Does the shaders work normally on IOs using the Metal API?

I just have one question/curiosity if I'm not mistaken, opengl is deprecated in IOs, and I believe Apple will kill at some point and just use their new Metal API. The question is, will the glsl code work on IOS? We will be able to run these shaders without depending on the OS?
Sorry for the newbie question, I'm starting with shaders :/

GLSL is a programming language and not an API. The purpose of the package is to compile this language into SPR-V which is a portable interchange format. On the target platform it will be once again compiled into the main graphics API.
https://en.m.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation

Got it, thanks!


max_pca_components no reset during preprocessing.ica.ICA._reset

Hi everyone,
I've found that when refitting an ICA object, the property max_pca_components is not set to its original values during reset. This may lead to unexpected behaviour.
Example:

Set "max_pca_components=None", so that the object automatically sets it to use all computed PCs through the line "self.max_pca_components = len(picks)" when fitted with a dataset.

Now refit the object with a dataset with different number of sensors. As max_pca_components is not reset to None, the object won't be configured to use all the computed PCs (the previous value is kept), producing unexpected behaviour.

Thank you
Marcos
PS: I'm new on github so I'm not sure how this works. Should I fix this issue by myself and request a pull?

sounds like a bug indeed. Can you provide a code snippet to reproduce the
problem using the sample dataset?
thanks

Indeed sounds like a bug. I can take a look later or assist you in doing
your first PR ;)
2015-05-12 21:57 GMT+02:00 Alexandre Gramfort<EMAIL_ADDRESS>
sounds like a bug indeed. Can you provide a code snippet to reproduce the
problem using the sample dataset?
thanks
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/issues/2087#issuecomment-101401703
.

If you could give me a week, I'll pull a fix proposal :-)
Thanks

Let me do it now, this is rather urgent.

Oh, I see... If you haven't stated jet... I'm cloning the project now. I was excited with the idea of doing my first PR xD
If you've fixed it already. No worries. Next time

Yeah, next time! Happy ICAing and once more thanks for reporting this!
2015-05-13 12:48 GMT+02:00 Marcos del Pozo Baños<EMAIL_ADDRESS>
Oh, I see... If you haven't stated jet... I'm cloning the project now. I
was excited with the idea of doing my first PR xD
If you've fixed it already. No worries. Next time
—
Reply to this email directly or view it on GitHub
https://github.com/mne-tools/mne-python/issues/2087#issuecomment-101623062
.


Implement new Contract Design

The contract design proposed in #306 should be implement with the following additions

opshin build recursively searches the current directory for python files containing contracts. all found contracts are built.
the current functionality is mainted in a form similar to aiken export (https://github.com/aiken-lang/aiken/pull/843) to be reused for i.e. Plutus Bench

Bug bounty: 1500 ADA

This issue wasn't solved, yet? If so, I'll fix it.

No, not fixed yet :)


Enhancement/1366

Resolves 1366 by adding an onFailed listener and catching the error.
Pre-launch Checklist

[ ] I made sure the project builds.
[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is does not need version changes.
[ ] I updated CHANGELOG.md to add a description of the change.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I rebased onto main.
[ ] I added new tests to check the change I am making, or this PR does not need tests.
[ ] I made sure all existing and new tests are passing.
[ ] I ran dart format . and committed any changes.
[ ] I ran flutter analyze and fixed any errors.

Wow, great turnaround time!
Quick question as I'm not sure.   By adding the addOnFailureListener, should the addOnCompleteListener above it be changed to addOnSuccessListener so that it doesn't still catch failures, or will only the failure listener fire?
I'm not that familiar with the code, but based on the docs, I was expecting addOnCompleteListener was like a finally block.  If not, please ignore me.
Thanks!

Thanks so much for proposed solution, is it possible to finalise it so the pull request can be created?

hi @TimHoogstrate the crash points to LocationSettingsResponse lsr = response.getResult(); on FusedLocationClient line 162. The failure handling is applied on LocationServices.getSettingsClient(context).checkLocationSettings(new LocationSettingsRequest.Builder().build()) which seems to be successful since we are reaching the response.getResult() and encountering the crash from there.
I don't think the solution will fix the issue.
attaching also another similar issue with react native, and their approach resolves the issue. However, still it doesn't fix the root cause since they just added a simple try catch. This probably avoid crashes, while waiting for Google to fix it.
https://github.com/Agontuk/react-native-geolocation-service/pull/147/files

The problem is it still runs the code after the if (!response.isSuccessful()) block on failures, leading to checking the result regardless.  It should exit the method after calling listener.onLocationServiceError in that block if it was a failure, or wrap the rest in an else block.
If we add the addOnFailureListener as per the PR, then it also needs to change the addOnCompleteListener  to addOnSuccessListener, removing the check as it should be redundant, or leave it, but ensure we don't call listener.onLocationServiceError again if it was a failure.  Calling it twice returns a result on the method channel twice and that will also fail.
Not sure we'll use it, but the new error code is nice addition so that we can determine it failed to check, rather than default to disabled.

We are encountering exactly the same error.
Can we continue on this and merge the proposed PR by @tentenponce ?


chore(package manager)!: move from poetry to rye

closes #198

Great, thanks for bringing this to the last mile. One consideration: do you think you might want to relax some dependency constraints?

@baggiponte yes, what do you suggest?


Document how to make docs changes public in CONTRIBUTING.md

Summary
This is a followup issue regarding this discussion.
I contacted @elsalahy and he told me the process to make latest changes public is as follows:

run  make build.public on master branch
copy the public folder that gets created on master and make a PR that aims the gh-pages branch

After running make build.public, I also see the doc folder gets created automatically? Also, I couldn't make a PR that aims the gh-pages branch because the .hooks folder was lacking.
I somehow ended up with this: https://github.com/TheThingsIndustries/generic-node-docs/pull/55.
I have no idea how to proceed so @elsalahy @adriansmares can you please assist here? I can later add steps to CONTRIBUTING.md so others don't get this issue in the future.
EDIT: I changed the base branch on the PR from master to gh-pages, and now I see only changes related to files in the public folder, but I still think that changes in 148 files looks weird.
EDIT: We know how the process goes now, so I'll finish this.

We didn't deploy this in quite some time, so I'm not surprised that we have lots of changes.
We can try to merge this, look at how it looks, and decide what to do next. Worst case scenario we have to revert the merge - should not be a big deal.

@nejraselimovic you just need to copy the contents of the generated public folder to gh-pages branch
To make it easier for your self with the hooks, just checkout another version of this repo so that you would have two folders one for master and one for gh-pages (deployment) and copy the generated master files to the gh pages folder and make sure to overwrite the contents.
Check out this example #49

Closing this as I documented steps on Discuss and we're just waiting for this process to be automated, so docs get published automatically by merging to master branch.


"Wired" connection support?

Is your feature request related to a problem?
I have some issues with grabbing data from the stick, so i decided to connect the inverter via rs485 port. I am not sure if HA provides access to the serial port for the integrations, but maybe at least we can make it work via mbusd?
For now i am getting this error, seems like the integration completely ignores ip and obtaining logger's ip by serial number (.101 is TCP to Modbus gateway's ip which i am trying to use, .65 is inverter's ip).

Describe the solution you'd like
Provide ability to connect by TCP to Modbus Gateway
Describe alternatives you've considered
Dunno

Did not helped much, now i am getting "Device loading failed [TimeoutError]".
I see that it tries to connect to the gateway, so looks like there are some protocol issues. Maybe you can learn further how kellerza's addon works? As it's using pysolarman too i think there's should be a way to make it work.

Show me the debug log. 😉

As it's using pysolarman too

No, it does not use pysolarmanv5.

Oh, my bad, i guess it is using pysolarman only for connection via stick, not modbus.
Logger: homeassistant
Source: runner.py:147
First occurred: 22:37:27 (13 occurrences)
Last logged: 22:57:38
Error doing job: Task was destroyed but it is pending! (<Task pending name='ConnKeeper' coro=<PySolarmanV5Async._conn_keeper() running at /usr/local/lib/python3.12/site-packages/pysolarmanv5/pysolarmanv5_async.py:172> wait_for=>)
That's all what i have in the logs.

You need to enable debug logging.

2024-12-09 23:17:27.233 DEBUG (MainThread) [custom_components.solarman.api] [<id>] Auto reconnect enabled. Will try to restart the socket reader
2024-12-09 23:17:27.234 DEBUG (MainThread) [custom_components.solarman.api] [<id>] Successful reconnect
2024-12-09 23:17:27.234 DEBUG (MainThread) [custom_components.solarman.api] [<id>] Data expected. Will retry the last request
2024-12-09 23:17:27.235 DEBUG (MainThread) [custom_components.solarman.api] [<id>] Connection reset. Closing the socket reader.
Traceback (most recent call last):
  File "/usr/local/lib/python3.12/site-packages/pysolarmanv5/pysolarmanv5_async.py", line 172, in _conn_keeper
    data = await self.reader.read(1024)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/asyncio/streams.py", line 713, in read
    await self._wait_for_data('read')
  File "/usr/local/lib/python3.12/asyncio/streams.py", line 545, in _wait_for_data
    await self._waiter
  File "/usr/local/lib/python3.12/asyncio/selector_events.py", line 1003, in _read_ready__data_received
    data = self._sock.recv(self.max_size)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ConnectionResetError: [Errno 104] Connection reset by peer

Oh, and if forgot to mention that addon is using inverter SN for connection, not the stick SN

That's all? If so then you are not listening on the port. 😉

Oh, and if forgot to mention that addon is using inverter SN for connection, not the stick SN

Does not matter if it talks modbus tcp... it does not use serial at all.

But i am, it connects fine from the addon.
Here's what i see in the mbusd logs:
09 Dec 2024 23:43:12 conn_open(): accepting connection from <IP_ADDRESS>
09 Dec 2024 23:43:17 conn[<IP_ADDRESS>]: timeout, closing connection
09 Dec 2024 23:43:17 conn_close(): closing connection from <IP_ADDRESS>

Try:
https://github.com/davidrapan/ha-solarman/blob/4f20b5c27d07469e103186093974dd1449f3e322/custom_components/solarman/api.py#L47
switch it to True.
And give me whole log file, because if it listen it has to at least connect and send some data. And I can't see that it is doing just from log snippets. 😉

Here, check please.
home-assistant_solarman_2024-12-09T22-19-48.020Z.log

So there is communication... you did not see it? It even successfully reads registers 0 - 22. It fails afterwards when it requests registers 0 - 112. Doesn't have that gateway or anything along the way some limitation how big the request can be?

Don't put serial number of the stick into config, when you don't want to talk with the stick.

This will also disable that ip enforce, because no one will respond.

Show me if it also works w/ (set to False)

https://github.com/davidrapan/ha-solarman/blob/4f20b5c27d07469e103186093974dd1449f3e322/custom_components/solarman/api.py#L47

Then find out if the requests are not too big. Copy deye_string.yaml under custom folder and add to default section:
default:
    max_size: 20

More info about the exception from mbusd:
GATEWAY TARGET DEVICE FAILED TO RESPOND:

Specialized use in conjunction with gateways indicates that no response was obtained from the target device. This usually means that the device is not present on the network.

But the SN field is required. I am used serial number of the inverter.

Oh, yes, initially i forgot about that and used SN of stick.
I will check the rest tomorrow, thanks for help.

Anyway, it looks like there won't be any changes necessary for it to work.

Anyway can you show me debug log file with passthrough = False? Maybe I could make it work through autodetection. Depends on how it responds.

Maybe because you have string inverter?
No, i have SG05LP01 6kw 😁
With connection by stick it shows correctly. But via modbus it shows string inverter. Also battery temperature is incorrect(-85 °C)

Uploading home-assistant_solarman_2024-12-10T19-10-54.701Z.log…
Here's the log with passthrough=false

Can you then show me your log when you do connection via stick normally so I can compare it?

I will check it again tomorrow.

Here's the log with passthrough=false

Will you upload the file?

Yes, i will do that tomorrow, too sleepy already:)

Hello, sorry for busting here :), but I`m interested in this topic also.
I have an ESPHome board that talks with inverter via RS485, your work here means its possible to integrate that IP into solarman?.
Currently Solarman is getting data from wifi dongle sticked into inverter, but it would be nice if it could get data from my ESPHome board also.

Hi. As far as i know ESPHome does not have RTU to TCP proxy. But you should be able to do that by something like this

@voed
are you talking about this type of device?
https://esphome.io/components/modbus_controller.html

Yes, that's it.
I already have the data comming in via modbus_controller from my ESPHome board into HA, but in Solarman Application, there are custom sensors that I like, and those are missing from my ESPHome board.

you can add custom sensors in your configuration.yaml.
can use the sensors provided by the board as input sensor.
or, you can also use HA UI to create helpers to help you create many types of custom sensors

No, i mean a gateway that will relay modbus to the lan network so solarman can read it.

the simplest way i know is to make that sensor in configuration.yaml.
something like this:
template:

sensor:

name: Total PV Power
unit_of_measurement: "W"
state_class: measurement
device_class: energy
icon: mdi:solar-power
state: >-
{{ (states('${device_type}-PV1 Power')) |float |round(2) + (states('${device_type}-PV1 Power')) |float |round(2) }}

in this case i don't really know how the substitutes will work, you want to use actually sensor name.
give it a try and you'll figure it out. check for logs for any errors in your configuration.

Guys it's not related to this isue:)

@davidrapan mbusd gateway connection with passthrough = False
https://drive.google.com/file/d/18hIEncrcsFu34PlnbKFCkNGBSuEVAef7/view
Stick connection with passthrough = False
home-assistant_solarman_2024-12-11T12-00-38.589Z.log

Stick connection with passthrough = False

Unfortunately there isn't successful connection logged.

Not sure what do you mean, the first one was unable to connect because it needs passthrough i guess, and the second one is a successful connection and still receiving data from the inverter.

because it needs passthrough i guess

No, this can't affect initialization of the connection. This switch affects later sending of the data.

Anyway, this is really strange, reading of register 0 in standard mode results in device type detection as 0x3, which is hybrid inverter. And reding over that gateway results in 0x0200, which is string inverter. 😆 Someone is lying here! 😆

You did not wait long enough for the file to upload. 😉

Just now realized it lol. I thought you are saying that i am colleted not much enough data. Already deleted that log but i am sure it was the same that i have posted today: "Connection reset by peer" and nothing else

With "Connection reset by peer" it means that it did not even get to the point where it should use that passthrough switch.

I got it. No idea how passthrough affects that, but it is what it is:)

Just copy over deye_hybrid.yaml under custom folder and configure device using that copy of the file (when connecting through that gateway).

Um, but i am using copy of deye_hybrid profile now🤔

And where is that file located?

Looks like 39 is a maximum.

Also seems like the battery temperature register provides valid data, but without offset. Removed offset:1000 and values looks valid:

You should ask the author of that gateway bc it looks like it is changing a lot of things. 😉

It's fine, just saying.
So, are you going to implement that passthrough option or auto-detect for this purpose?

I would argue that changing device type from hybrid to string is not really fine. 😆

In kellerza's addon this value refers to "inverter", so maybe it just means any inverter, not string inverter:)

Everything else including SN, rated power etc is okay. So yes, i think it's fine

That means string inverter, every non-hybrid inverter is string inverter.
But the most important part is that it does not even report 2 but 512.

Which is 0x200 in hexadecimal

Yes, and? I know why I have it there but I was referring to your example from that addon. 😆


Only notify users to update with minor and major version change

Patch version changes can become a little noisy. If we silence the notification to update we can release as many as we want without disturbing the user.

1.3.1 -> 1.4.0 Notify users
1.3.2 -> 1.3.3 don't notify users


The rule border-zero has a wrong value

The rule border-zero is validating against zero when it should be 0.

Closed by #25.


Multithread access but single thread execution

Problem Description
hi, I have two requests,  the first one will spend 20s and the second one will spend 100ms.  I send  the second request after i send the first one. Curiously!!! the second request will spend 20s+ which means mitmporxy  execute requests in a serial manner.
that's unacceptable！！！！
any advice?
thank you very much
Steps to reproduce the behavior:

System Information
the latest version
Paste the output of "mitmproxy --version" here.

ok, i find the solution!
We have a single flow primitive, so when a script is blocking, other requests are not processed. While that’s usually a very desirable behaviour, blocking scripts can be run threaded by using the mitmproxy.script.concurrent decorator. If your script does not block, you should avoid the overhead of the decorator.
just like this
`import time
from mitmproxy.script import concurrent
@concurrent  # Remove this and see what happens
def request(context, flow):
print("handle request: %s%s" % (flow.request.host, flow.request.path))
time.sleep(5)
print("start  request: %s%s" % (flow.request.host, flow.request.path))`


Add dependencies to build the docs on Linux

Wonder how docs go from Github to ReadTheDocs?
Want to build them locally but don't know where to begin?
Some ideas to begin with

Install python (already there if you are on a popular Linux distro)
Install docutils, readthedocs theme (using pip).
Ensure that you have GNUmake.

I'll take a look at this.

@vharsh
So the documentation, and requirements/Make need to be updated for Linux?

Hi @codevbus
move the requirements.txt from the root of the repository to the documentation folder.
Also update the .travis.yml folder to update the path of the same.

Hi ! If no one is taking this issue, can I ? I guess it requires just the steps mentioned by @vharsh , right ? Am I also required to update the documentation ?

This is outdated. the docs have moved to docusaurus https://github.com/openebs/openebs-docs


Custom postgres settings needed

Is there any way to inject custom postgres.conf values? I'm struggling with setting up correct WAL behaviour and maximum worker count - default tobs install causes a lot of ioload later in the day, when it starts writing to disks in a manic way.

All the TimescaleDB related config can be configured using this values.yaml from timescaledb-single helm chart
At tobs side, to customize TimescaleDB config, all you have to do is add the required config under timescaledb-single field:
timescaledb-single:
  ...

@sokoow Did you get a chance to configure postgres settings in TimescaleDB section of values.yaml as mentioned above?

I should be good thanks


Fix AttributeError on accessing package author (#370)

Pull Request Check List

[x] Added tests for changed code.
[x] Updated documentation for changed code.

There is fix for #370, when poetry build crashed on accessing incorrect author fields.
Also, I could change AUTHOR_REGEX to support for email-only authors, but I don't think there is need to handle those situations. At least it's not crashing right now.
Or maybe better throw warning on authors like that?

Sure, tomorrow I add that in tests and try to throw away res, but idk about seventh. I think if there is comma in author, then it's user fault.
Didn't knew about mail.utils, thank you!

It's getting worse.
"Throwing a custom exception" makes me feel pleasant comparing to this buggy commit. The second half of the function messed up with the wrong cases to handle.
Not to mention the coding style.

Not arguing that. So I have to bring back old regex and throw ValueError (or something) on pattern mismatch?
I'm striving ¯_(ツ)_/¯

@kam1sh If I were you, I would make more discussion on the #370.

After short talk I decided to keep old regex and throw exception with text {} is not a valid author's name when it could not be parsed. Also added test for that.
What's next?

@kam1sh This thread would be a real thing if and only if you fix the regex to let the special characters match as I mentioned at the first review.

@kam1sh This is far from elegant. You should stop now or after next failure.
The regex of author name should keep being a whitelist.
The usage of email lib is unnecessary.
And the tests are worse thant not existed.
The PR can't be accepted at all and you kept striving to prove it.

I don't know what to say.
Fine, I'm closing the PR. Sorry for wasting your time.

@kam1sh This is far from elegant. You should stop now or after next failure.
And the tests are worse than not existing.
The PR can't be accepted at all and you kept striving to prove it.

@drunkwcodes I don't think this is a positive way to interact with someone who is willing to put in the effort of contributing.  I can't speak to the technical aspect of this thread, but I t hink this kind of messaging will turn people off to contributing.  That said, I appreciate that you're taking the time to do code reviews.

@uSpike But it saves time. For subscribers. Please. Fight me.

@drunkwcodes not saying anything is better than
@kam1sh just FYI you don't have to close this.

@uSpike Fight me.

No.
@kam1sh feel free to reopen this PR.  The only opinion that matters for this project is @sdispater

@drunkwcodes Please refrain from commenting or reviewing the work of others if you can't be nice or helpful while doing so. This is not the first time I've seen you being rude here so I will only ask this once: please be considerate in your comments or do not bother writing them at all.
@kam1sh You can reopen your PR. I will review it when I have time. I know I am not the most reactive at the moment but I will eventually do it. I have the final say when it comes to accepting or rejecting PRs, so as long as you haven't heard from me you can leave it open.


Recognizing the face by capturing an image from webcam without opencv and detecting issue

Hi,
I have tried capturing an  image using html and passing that captured image to the frame for recognizing , I am facing the issue regarding that.
code:
if flask.request.method == "POST":
image = request.files["image"].read()
npimg = np.fromstring(image, np.uint8)
file = cv2.imdecode(npimg, cv2.IMREAD_COLOR)
frame = file
Issue: I am not able to get the frame and face id for the image captured . Whether the libfaceid is used to detect only the images captured via opencv? Please suggest me to solve
Thanks and Regards

Hello,
The image should be base64 string and  this partdata:image/jpg;base64, removed from the string so u are left with /9vee ... something like that.
then convert the string to numpy array like this
`
payload = request.get_json()
base64_string = payload['image']
nparr = np.fromstring(base64.b64decode(base64_string), np.uint8)
im = cv2.imdecode(nparr, cv2.IMREAD_UNCHANGED)
u can now use im with openvc
`


Add another parser

To contribute your packages to the r-releases R universe, please create a text file for each new package and store all the text files in the packages/ folder. Each text file has these requirements:

The name of the file is the package name.
The file contains a single line with the package URL. The URL must be authentic and genuine. It must be the true location of the package according to its true owners.
The file ends with a newline character. (A terminating newline is included automatically if you create the file using the GitHub web interface.)

Please visit https://github.com/r-releases/help for more information. Please send bug reports to https://github.com/r-releases/help/issues and other feedback and questions to https://github.com/r-releases/help/discussions.

@shikokuchuo, were there merge conflicts originally on this one?

Maybe the API call failed. Feel free to merge manually or remove the manual-review label so the automation will try again.

I'm not sure what this is - does it not like the trailing slash? I just checked the Github - it doesn't actually have any releases, so we'll probably have to let this one go anyway

oh that's good to know about removing the label! very nice

If the trailing slash were a problem, it would have caught it earlier. From the error message, it looks like checks passed and it was legitimately trying to merge a perfectly valid contribution. What we saw just now comes from https://github.com/r-releases/r.releases.utils/blob/6fad05f09e28195cdf37666ecba0e366cb2a98b9/R/review_pull_request.R#L140-L181. It only tries to merge if the PR linting looks good.

Yes, I tried the details using the r.releases.utils package and it looks good there. I'll close this one, as there are no releases.


"Straja" is listed in the drop-down menu

Description:
"Straja" is listed in the drop-down menu alongside its corresponding county according to the law
Precondition:
The website is up an running.

Step 1
Write in the search bar "Straja".

Expected results
The location is listed in the drop-down menu as "Sat Straja SUCEAVA (Straja)".


Same problem with the end handshape of a compound needing to be taken from the last element of the compound

The error from Ashwin's system is still showing up.

Fixed


letfn doesn't indent its fns like fns.

I couldn't find anything in a  style guide about letfn, but I'm pretty sure it should indent each fn like a fn or defn, with 2 spaces instead of aligning to the argument vector like ->.
How it formats
(letfn [(first-fn [arg1 arg2]
                  (-> (doing-stuff)
                      (and-more-stuff)))
        (second-fn [arg1 arg2]
                   (-> (doing-stuff)
                       (and-more-stuff)))]
    (other-stuff))

How it should format
(letfn [(first-fn [arg1 arg2]
          (-> (doing-stuff)
              (and-more-stuff)))
        (second-fn [arg1 arg2]
           (-> (doing-stuff)
               (and-more-stuff)))]
    (other-stuff))

You make a good point.  I think it should format the way that you suggest.  Interestingly, it seems like you can't have a doctoring in a letfn function, which makes my job easier.
You must be using :style :community, as without that it is even worse:
(letfn [(first-fn [arg1 arg2]
                  (-> (doing-stuff)
                      (and-more-stuff)))
          (second-fn [arg1 arg2]
                     (-> (doing-stuff)
                         (and-more-stuff)))]
  (other-stuff))

since letfn is considered a :binding function in the :fn-map, which it most certainly is not.  Kind of looks like one, with the vector of things, but the vector doesn't contain a series of pairs of things, which is what :binding assumes.
So the current approach is wrong in several ways.  I'll fix this.  Which may require creating yet another function type, but I don't really know yet.
Thanks for creating an issue to get this fixed!

I have been exploring if there is a way to correctly format letfn using existing configuration tools.  I believe that I have something that works, though the number of actual letfn examples I have to try it out on is very small.
Here is the options map that you would add to whatever you are using now:
{:fn-map
   {"letfn" [:arg1
             {:list {:hang-expand 1000},
              :next-inner {:fn-style :fn},
              :next-inner-restore [[:list :hang-expand]]}]}}

Using it results in this:
zprint.core=> (czprint i221 {:parse-string? true :fn-map {"letfn" [:arg1 {:list {:hang-expand 1000} :next-inner-restore [[:list :hang-expand]] :next-inner {:fn-style :fn}}]}})
(letfn [(first-fn [arg1 arg2]
          (-> (doing-stuff)
              (and-more-stuff)))
        (second-fn [arg1 arg2]
          (-> (doing-stuff)
              (and-more-stuff)))]
  (other-stuff))

As I said, I have very few examples of letfn to try this out on.  Theoretically it should work, but the real world often upends theory.  I would be interested in your experience with this, and if it does what you expect (and want) for letfn.
I would also be interested in any realistic examples of the use of letfn that you might be willing to share.  Thanks!

Example 1
Looks mostly great to me.   This is both unexpected and very helpful.  What is going on is far from obvious, but I'll figure it out.  Real life examples are so useful.
I also have to say that I'm impressed having looked at your .zprint.edn -- you are clearly a zprint power user!  It pleases me to see that you managed to figure out how to tune zprint to your needs, that being the point of all of the many configuration options.

Glad they are helpful. And thanks! I've spent more time than I probably should have going over the reference and still discover new things. I only just discovered yesterday that we can define our own styles via :style-map and that they stack between .zprint.edns. I actually only included the part of my config I thought was relevant to you, but if you're interested, this is my (now) full config:

my ~/.zprint.edn
{:binding {:force-nl? true}
 :fn-map
 {"are"     :arg2-pair
  "cond"    :pair-fn
  "count"   :arg1
  "with-dx" :binding                    ; TODO Move to project
  "letfn"   [:arg1
             {:list               {:hang-expand 1000}
              :next-inner         {:fn-style :fn}
              :next-inner-restore [[:list :hang-expand]]}]
  "s/cat"   :pair-fn
  "s/fdef"  :arg1-pair-body
  "s/fspec" :pair-fn
  "testing" :arg1-force-nl
  "update"  :arg2}
 :map {:comma?    false
       :force-nl? true
       :justify?  true
       :sort?     true}
 :pair {:force-nl? true}
 :search-config? true
 :style [:community :justified-original :keyword-respect-nl :require-justify]
 :style-map
 {:re-com   {:vector {:option-fn (fn [opts n exprs]
                                   (when (>= n 2)
                                     (let [re-com? (let [current-fn (first
                                                                     exprs)]
                                                     (and (symbol? current-fn)
                                                          (#{"re-com"
                                                             "svg-views"}
                                                           (namespace
                                                            current-fn))))
                                           hiccup-with-style? (and
                                                               (keyword?
                                                                (first exprs))
                                                               (map? (second
                                                                      exprs)))]
                                       (cond re-com? {:pair    {:force-nl? true
                                                                :justify?  true}
                                                      :pair-fn {:hang? false}
                                                      :vector  {:fn-format
                                                                :pair-fn}}
                                             hiccup-with-style?
                                             {:vector {:fn-format
                                                       :arg1-force-nl}}))))}}
  :re-frame {:fn-map {"fn-traced"              :fn
                      "re-frame/->interceptor" :pair-fn
                      "reg-event-db"           :arg1-body
                      "reg-event-fx"           :arg1-body
                      "reg-fx"                 :arg1-body
                      "reg-sub"                :arg1-pair-body
                      "reg-sub-raw"            :arg1-pair-body}}
  :web-app  {:fn-map {"defstate"  :arg1-pair-body
                      "defstyles" :arg1-body
                      "defsyntax" :fn}
             :style  [:hiccup :re-com :re-frame]}}
 :width 80}

I'm really pleased with zprint, so thank you.

Wow, that is truly amazing.  I don't know anyone who has written an :option-fn other than myself.  Not that I would, I suppose, if they work, since I mostly only find out about things that do not work. But still, you have really figured it out!  It makes me so pleased that you made this work, as I've tried hard to document things and give examples, without knowing how well I have really explained it.
I understand what is wrong with my current left solution, and am working on a different kind of solution.  It will use something I implemented called "guides", so that I could do more complex style things that don't fit into the current code base.  I have considered documenting them, but figured that probably nobody would ever use them besides me, so why bother.  But seeing your zprint.edn has caused me to think that maybe somebody else beside me might use them after all.  Anyway, that is a conversation for another time.  I'll have a better letfn potential fix for you today or tomorrow.

The previous letfn approach failed because while it fixed the functions in the letfn vector, it forced a :fn-type on the let which was wrong.  There was no way to force the :fn-type on the first thing in the letfn and not the second.  Unless I used a :guide.  Here is my next try at something for letfn:
{:fn-map {"letfn" [:guided
                   {:guide [:element :indent 2 :options
                            {:next-inner {:fn-style :fn}} :element-best
                            :options-reset :newline :element-best-*]}]}}

This uses a heretofore internal "guide" API.  Typically I use an :option-fn to look at the code and produce a :guide based on the actual code, but sometimes that isn't necessary.  Which I think is the case here, since letfn has a pretty fixed format.
Here is what you get for one of your examples (without your exact .zprint.edn, just what seemed useful to me for testing):
zprint.core=> (czprint i221e {:parse-string? true :fn-map {"letfn" [:guided {:guide [:element :indent 2 :options {:next-inner {:fn-style :fn}} :element-best :options-reset :newline :element-best-*]}]} :style [:justified :community] :map {:force-nl? true}})
(defn get-reactome-id
  [ontology iri meta-mop & {:keys [post-mapping]}]
  (letfn [(biopax-filler [id mop]
            (->> id
                 (mt/get-ns :biopax)
                 mops/->id
                 (mops/filler-value mop)))
          (xref-db-id [db-name mop]
            (->> mop
                 (biopax-filler :xref)
                 (map mt/->iri)
                 (map #(mt/-get-mop ontology % meta-roles))
                 (filter (comp (partial some #{db-name})
                               (partial biopax-filler :db)))
                 (mapcat (partial biopax-filler :id))
                 first
                 keyword))
          (entity-db-id [db-name mop]
            (->> mop
                 (biopax-filler :entityReference)
                 (map mt/->iri)
                 (map #(mt/-get-mop ontology % meta-roles))
                 (map (partial xref-db-id db-name))
                 first))]
    (let [[id type]
          ;; TODO Dispatch on type or otherwise more cleverly.
          (or (->
                ;; ENSEMBL Gene
                "ENSEMBL"
                (entity-db-id meta-mop)
                (mt/cond-pred-> (vector :gene)))
              (->
                ;; UniProt Protein
                "UniProt"
                (entity-db-id meta-mop)
                (mt/cond-pred-> (vector :protein)))
              (->
                ;; Most other reactome things: Pathways, Reactions,
                ;; PathwaySteps,
                ;; Complexes, etc.
                "Reactome"
                (xref-db-id meta-mop)
                (mt/cond-pred-> (vector :reactome)))
              (-> iri
                  mops/->id
                  (mt/cond-pred-> (vector :default))))]
      (if-let [f (get post-mapping type)]
        (f id iri meta-mop)
        id))))

The challenge comes with the :community style, where "body" functions and "argument" functions are different.  As a Lisp person from way back, I find the distinction ... let's just say unhelpful.  But it seems to be a thing, so I've done my best to try to accommodate that approach.  It comes up here twice -- presumably letfn is a body function.  But :guided doesn't know about that, so I had to hack an :indent 2 into the guide.  Also, the functions in the letfn vector are themselves body functions, presumably, and they are working correctly as is.
I have detected an issue with the :fn function type -- it only handles single arity functions correctly.  It doesn't deal correctly with multi-arity functions.  For example, if I change one of your examples to have two multi-arity functions in the letfn you get:
(defn get-reactome-id
  [ontology iri meta-mop & {:keys [post-mapping]}]
  (letfn [(biopax-filler ([id mop]
                          (->> id
                               (mt/get-ns :biopax)
                               mops/->id
                               (mops/filler-value mop)))
                         ([id] (biopax-filler id nil)))
          (xref-db-id ([db-name mop]
                       (->> mop
                            (biopax-filler :xref)
                            (map mt/->iri)
                            (map #(mt/-get-mop ontology % meta-roles))
                            (filter (comp (partial some #{db-name})
                                          (partial biopax-filler :db)))
                            (mapcat (partial biopax-filler :id))
                            first
                            keyword))
                      ([db-name] (xref-db-id db-name nil)))
          (entity-db-id [db-name mop]
            (->> mop
                 (biopax-filler :entityReference)
                 (map mt/->iri)
                 (map #(mt/-get-mop ontology % meta-roles))
                 (map (partial xref-db-id db-name))
                 first))]
    (let [[id type]
          ;; TODO Dispatch on type or otherwise more cleverly.
          (or (->
                ;; ENSEMBL Gene
                "ENSEMBL"
                (entity-db-id meta-mop)
                (mt/cond-pred-> (vector :gene)))
              (->
                ;; UniProt Protein
                "UniProt"
                (entity-db-id meta-mop)
                (mt/cond-pred-> (vector :protein)))
              (->
                ;; Most other reactome things: Pathways, Reactions,
                ;; PathwaySteps,
                ;; Complexes, etc.
                "Reactome"
                (xref-db-id meta-mop)
                (mt/cond-pred-> (vector :reactome)))
              (-> iri
                  mops/->id
                  (mt/cond-pred-> (vector :default))))]
      (if-let [f (get post-mapping type)]
        (f id iri meta-mop)
        id))))

which isn't what I'd prefer.  But that isn't your issue, so I can deal with that in the next release.
Let me know how the letfn guide works out for you.  I think it should be close.  At least your lets should still be :binding functions!

Finally got around to testing your :guided approach to letfn and it seems to work great! Thanks a bunch for figuring out a good solution.

This is fully operational now (i.e., fixed) in 1.2.3.  Thanks for reporting the issue!


During docker push, calculate and compare sha256 digest even if it doesn't exist yet on the image

As far as I understand, the current workflow for docker push on a registry v2 is this:

If there is a cached sha256 digest for the image/layer, the do a HEAD call to the registry to see if it's already present; if present skip upload, continue to next layer
If there is no cached sha256 digest present, or it cannot be found on the registry, upload the layer through a set POST+ PATCH + PUT call (and then verify that uploading succeeded with a HEAD call). In the PUT call, the client generates the sha256 digest and sends this to the registry (to verify that it received the correct data).

Since the sha 256 is being calculated by the client anyways during upload, (if it's not cached already), it will be only minor overhead to calculate it before doing the actual upload and putting in an extra HEAD call.
The reason why I would like to have this, is that the sha256 digests are not preserved through a docker save / docker load cycle. I build my containers on CircleCI, and they suggest using docker load/save to have build cache (however even if the sha256 digest was preserved, it wouldn't help me, since the build cache directory is saved long before I push the image to the registry). As a result pushing to a v2 registry always results in uploading all layers, costing time and money (since I pay for traffic to my registry). Pushing to a v1 registry does only upload the changed layers (since it compares by imageid, not sha256 digest).
As an alternative to my request, I could imagine having a standalone command to generate the sha256 digest cache could be used.
In the slightly longer run, I think "fixing" docker load/save to cache sha256 and having a command to generate the sha256 digests (so I can do that before I run docker save) would work, since I think that even the calculating the sha256 for each image on each run is quite heavy.

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

/cc @stevvooe @tonistiigi @aaronlehmann

If implemented, may also solve (or alleviate) #15177

It used to work the way you suggest, but was changed in Docker 1.9. The current behavior makes most pushes a lot faster, because otherwise the compression has to finish entirely before starting the upload. It sounds like the real issue is that the cached digests aren't preserved through save/load. We could look at including them.

I think I saw this same behaviour on 1.8.2-circleci and 1.9.1, although I tested with 1.9.1 more extensively.
Preserving cache digests through load/save solves half the problem (and sounds like a good thing to do anyways, and (without knowing anything about the code) a not too complex addition).
In this particular case however it wouldn't solve my problem fully. I would still need a way to then generate the cache after building but before saving. Is there a way to calculate-and-set (and/or inspect) the digest cache either through the commandline or directly through the api?

@reinhrst IMHO, we should be saving full layer artifacts. There is not better solution for security and performance. It is absolutely insane that we try to regenerate layers on each and every push and it contributes to some of the complexities now present in the daemon. Unfortunately, we've favored disk space usage over resources that actually cost money, such as bandwidth and time.
As @aaronlehmann said, this will get better as we cache the layer digests.

@stevvooe @aaronlehmann Sorry, can you post some update here?

I don't think there's any active work going on related to this. The current behavior is a result of the present design of image storage and the tradeoffs it entails. Fixing this would be part of a broader discussion on changing that design.

@aaronlehmann @LK4D4 I think https://github.com/docker/docker/issues/26065 covers the original problem very well.


v2podman container create

create a container in podmanv2 using specgen approach.  this is the core implementation and still has quite a bit of code commented out specifically around volumes, devices, and namespaces.  need contributions from smes on these parts.
Signed-off-by: Brent Baude<EMAIL_ADDRESS>

If you feel comfortable merging this, LGTM. I can't really review since much functionality isn't working/comment out.

@vrothberg create is a massive piece, this seems like an mvp for create and then we nibble our way to fully functional.

updated

LGTM. Let's get something landed and iterate from there.

/lgtm
/approve
/hold

/lgtm

/lgtm

/hold cancel

boop


Live mode activation

Version of Kpow
factorhouse/kpow-ce:91.2.1
Describe the issue
I don't see live mode
Additional context
I need to change the default display time of data in a topic (1 hour). LIVE_MODE_PERIOD_MS does not change anything, LIVE_MODE_ENABLED is set to true.

Hi @KozyrevychYaroslav thanks for your message.
Live mode is a feature of our paid product only, if you would like to evaluate you can sign up for a trial here:
https://kpow.io/try/#standard


Mark Glow as tx-request-supporting

Relevant change to README.md — https://github.com/solana-labs/solana-pay/commit/d92f0cdaeec12ceff2bb0957ab0c356528d8f91c

Hmm, looks like this change was made independently. Sorry!


Test with data from worldstate

Test the parsers using actual data from worldstate to ensure that there are no major error or crashes

do we just want to get a snapshot of a time here and store it?

Closed by #47


Issue: 33

Issue: 27
Short description of what this resolves:
allows get via list, put and patch via update, delete via destroy.
serializer change->  include the author field in create, put, and patch requests, we need to define it in the QuestionSerializer and set the read_only attribute to False else runs into error.

use @api_view(['GET', 'PUT', 'PATCH', 'DELETE']) decorator and use if else ladder
basically it would be one view and url  but which brach to run would depend on method

You mean function based view? 🥲🥲
Do we really need this decorators in modelviewset?

yeah i was thinking about function based views for these methods as they are easy to read and work with
but we can stick to class based
let me test these and update you back

Perfect 🎉
I tested that on my end as well.

LGTM  ! Thanks