Duplicate message to subscribers even using AutoLockRenew

I am using AutoLockRenew class register method after receiving message from azure service bus topic subscription using azure sdk for python.
Even if you use AutoLockRenew.register() method in python which takes care of automatically renewing the lock for you - in case the renewable.renew_lock() throws an exception if message lock expired, it fails silently!
The parent thread which is still executing business logic keeps on executing (until it calls message.complete() when actually it would know about this) but the same time, the same message appears in the queue and second instance takes it up for processing! This mean the same message is now being processed simultaneously by 2 different receivers!
The exception should be propagated to the parent thread calling the auto renew so that it can stop processing the message and avoid duplicate message handling by another subscriber.
Just wanted to understand is this by design and what was the original thought process in failing this exception silently on a different thread.
The code looks like below -
auto_renewer = AutoLockRenew()
with sub_client.get_receiver() as receiver:
    for message in receiver:
        auto_renewer.register(message)
        .......

Echoing my response from SO here with some verbosity (Due to lack of character limit)
You're correct that the purpose of locking is to prevent another subscriber from taking it, the subtlety here is that the lock has been lost, it's just not doing so in a manner that throws an exception.  That is by design, and somewhat constrained by the language and calling pattern; we're limited in how we can expose an exception occuring out of band in a separate thread.  Instead we set the auto_renew_error property on the message to allow you to take action when you notice it, so it's hopefully not entirely silent.
(For other readers only seeing this half of the picture, I had previously detailed in SO here a probable reason for this background expiry, and a way to proactively detect it sooner by observing the auto_lock_renew property)
Now, while this may be by design as it stands, you've asked this question at a very apt time; we're currently in the process of producing the GA version of this library, currently in preview. (7.0.0b2, excuse the large version gap, it's due to beurocratic reasons)  I mention this to give some context before I pose a question to you:  Given the above explanation and the prior details I provided on SO as to how this functionality works, is this still a source of confusion? (or would better documentation have addressed this)  If so, is there a pattern that would have been more intuitive to you as a user?  We've been contemplating this and other overlapping problems internally, and getting input from someone running up against this pragmatically would be very useful.
(To be clear; don't let the latter point distract from your core question, feel free to let me know if you had further followups or if I could clarify better, I just wanted to take this opportunity to try and get two birds with one stone)

Thanks @KieranBrantnerMagee for detailed response. Few follow-up questions on this (I believe this would also take care of "two birds with one stone" you are talking about) -

I understand now this is by design and we could check the auto_renew_error property. However, question still remains as to how/when we should frequently check for auto_renew_error? Is there any callback (ideally)? We couldn't find any example or recommended practice of handling this in the main thread. It would be great if you can provide official comprehensive examples/sample code in an end-to-end way along with library release.

When can we expect 7.0.0b2 to be GAed - as I understand this being more stable.

You mentioned the library doesn't catch every possible exception but I do see a generic exception block except Exception as e - so I think it should take care of all exceptions, correct?

A few points in response.

Callback gets to my question of "what pattern do you expect" and unfortunately no, there is no callback in the existing library that would allow this, but I'll bring that suggestion up for 7.0 design; I can see the value in it.  I'll ensure we add samples for proper failure mode handling as well.
To answer your question about watching for failure, I would check the value commensurate with how much processing too long is going to hurt you.  (e.g. if you have hours of work, maybe check every ten minutes or so).  For smaller workloads simply observing that the complete() failed is often enough feedback.  Let me emphasize though that I hope if you upgrade to 0.50.3 you may hit the lost-lock less often due to fixes we applied.

Retry is one of the many bits we're improving for the GA release, you're correct that there is not explicit settlement retry in the 0.50 libraries, but it will behave as you expect in 7.0.  You will have the ability to set the retry properties as well to dictate the nature of the behavior.  Ensuring the message doesn't reappear on the queue during retries is hard, as said there can be unavoidable reasons a lock can be lost, and trying to be too clever about addressing that in a distributed system as opposed to simply discarding the failure and trying again, can be a painful route.

A few points:  I would hope you can upgrade simply to 0.50.3 (our last non 7.0 release) for slightly more stability; I'm working under a hypothesis that you're seeing a known failure causing lock loss after 10 minutes of processing a single message (since we've seen other users hit this.)  7.0.0b2 is already released, but it is a preview release, 7.0.0 (no b's) will be GA, and we don't have a hard date on that yet other than that it is likely a few months out; we will be releasing b3 within the next few weeks, however.

Assuming you're talking about catching the complete() exception, yes, that would Catch All Exceptions pretty thoroughly.  (I should make some noises that "best practice" in python is to be targeted when catching exceptions, but in leiu of our having cleaned up exception hierarchy for V7.0, what you wrote might be the most effective approach without wasting your time catching edge cases.)

I believe this should address your questions but don't hesitate to let me know if I missed anything, or if something requires more drill-down, we'll be glad to help; thank you once again for your patience!

Thank you Kieran for detailed explanation. However, I'm afraid, I still don't see much clarity on the solution. Comments below for some thoughts mentioned by you -
"To answer your question about watching for failure, I would check the value commensurate with how much processing too long is going to hurt you. (e.g. if you have hours of work, maybe check every ten minutes or so). For smaller workloads simply observing that the complete() failed is often enough feedback. "
I don't think, writing a function in my main thread to watch for failures which executes every 'n' minutes/seconds would be a good design - it would be polling rather than event driven and that 'n' cannot be specified easily. I hope you understand, there would still be a possibility of ending up two instances processing the same message and we are back to square one.
Consider this, how Azure function with service bus trigger work - it must also be using the locking and renew mechanisms and when locking doesn't happen, the Azure function code execution just aborts. We need to replicate exact same behavior here. If you can get details around this, would really help.
"Ensuring the message doesn't reappear on the queue during retries is hard, as said there can be unavoidable reasons a lock can be lost, and trying to be too clever about addressing that in a distributed system as opposed to simply discarding the failure and trying again, can be a painful route."
Again, I would cite the same example of how Azure function handles this internally. I hope you get that it's business critical in production that same message cannot be processed/picked up by 2 or multiple instances simultaneously. We can write code for idempotency check, but it has its own limits and we expect the libraries are smart enough to handle such basic cases for us out of the box - pre-empt the processing when such failure occurs. Again, we need to know how Azure function works and handles this behind the scenes - because we don't need to deal with such failures while writing business specific code - then wondering, why here?! Hoping you'll get back with more info on this...
Let me know if anything is unclear from my end or need more information.

Also, please note - I tried using the 0.50.3 library and it doesn't work when message LockTimeout period is maximum i.e. 5 minutes. Please try once at your end and let me know. The exception it gives is "AMQPConnectionError - Failed to open mgmt link: MgmtOpenStatus.Error".
With "7.0.0b2" it used to work earlier, but tried today and it is giving me lock lost exception almost every time.
A sample python client code (recommended one) which is working (for both the package version) and taking original issue into account as an answer to this post would really help.
Looking forward for your response!

Hey Deeagar,
I'll address the two "thrusts" of the discussion I see us having above distinctly.

locking/guaranteed single-ownership.  You bring up Azure Functions.  I'd first observe that this isn't the most apt comparison, since they provide a full runtime, whereas we only provide an SDK.  As such, its their prerogative to do things such as interrupt your runtime if lock is about to be lost.  I would imagine (though I would need to reach out to the team to confirm this) they have an approach where a watchdog looks at the expiry time, and some delta beforehand, attempts to renew the lock.  If this fails and the message would be lost, processing is interrupted.  This is largely why I asked re: the callback approach, since this would let you be slightly more responsive to this same failure mode as opposed to having to poll the variable yourself, although the end result would be the same: if lock renewal fails, you must terminate your own processing to avoid concurrent ownership, if such a pattern is desired.  HOWEVER at the end of the day, recognize you still will have some potential for double-processing, although not simultaneous.  The same would be true of Functions: You could have gotten 99% of the way through processing and written whatever result to your DB, only to have completion fail.  Without having those actions in a transactional scope this is unavoidable.  As a base "rule of distributed messaging" you either get receive-only-once (And if processing/locking fails it never gets received again) or receive-at-least-once, receive-exactly-once is a conceptual impossibility. (I don't think this is what you're asking for, I just want to be precise since the problem spaces overlap.)  I would hope the aformentioned explanation would answer the simultaneous double-processing concerns by ensuring you terminate the first processor before its lock would expire if you are unable to renew the lock.

Now, I had earlier been assuming that you were running into very rare occurances of lock renewal failure; or due to circumstance such as extremely long processing times.  Your post from Sunday implies you're running into something much more immediate; I would like to drill into this.  When you say LockTimeout, do you mean LockDuration, the property you set when creating a queue in ServiceBus?  This cannot be set more than 5 minutes as a service-level restriction.  If you meant a different LockTimeout period don't hesitate to clarify.  I have similar questions about the 7.0 release and the lock lost exception you're seeing, if you could show the code and exception/logs you're running into that would be appreciated, as we have this sample here demonstrating basic autorenewer usage that seems to be working properly on my end.

Finally, two notes:
First, you asked regarding a sample; I have a feeling you won't like my response to this, since your snippet in the top post is almost what you need, but the remaining bit will be VERY application specific (For instance, depending on app architecture, simply checking that you own the lock prior to committing the final result of your processing to an external store might be sufficient).  However, I'd emphasize that even in this happy-path case there can be pathological race conditions where, for instance, the lock would be renewed for N minutes, your code takes N+1 minutes to complete and all renewer threads are preempted such that it is not able to renew the lock.  This should almost never happen but CAN happen and thus application code should be written to be robust against it with idempotency at the synchronization point (e.g. DB) as you note above.  It is not sufficient to rely on thread-killing as well, as mentioned prior, this does not fully close the race.
auto_renewer = AutoLockRenew()
with sub_client.get_receiver() as receiver:
    for message in receiver:
        auto_renewer.register(message)
        start_work()
        while not work_done():
            if message.auto_renew_error:
                stop_work()
                break
            time.sleep(max(0, (message.locked_until - datetime.now() - 1)).total_seconds)

Second, your customer support folks reached out to us over the weekend asking to set up a call, since this is a somewhat involved topic/conversation I'd be willing to hammer this out, so if that would help you let's get that set up so we can get you unblocked ASAP.

Splendid ! Thanks Kieran for your detailed explanation - appreciate it!

Internally here, we are also somewhat aligned with your thoughts on having those checks before committing to DB.
Since you mentioned the code is working for you - I'll try from my end again today and let you know with complete stack trace if I get that exception.
Yes, I mean LockDuration property of Service bus.
Yes, since this is more involved - a call would expedite closure. However, I'll get back to you and to our customer support regarding this - since what you mentioned is exactly what we discussed a while back internally as a possible design.

P.S.: When I mentioned Azure function, I am considering "Microsoft Azure" as one team and whatever we experience in different platforms on it, thought it should be consistent across in terms of architecture and design approach. Anyways, just my thought.

@KieranBrantnerMagee  I verified and the renew_lock always fails with below error with
azure-servicebus==0.50.3 package giving below exception
'Management request failed: Failed to open mgmt link: MgmtOpenStatus.Error'
Any reason why its not working with the stable version?
With azure-servicebus==7.0.0b2, it fails always with below exception
_Failed to complete mgmt operation.
Status code: 410
Message: b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. Reference:, TrackingId:B2, SystemTracker::Topic:|, Timestamp:2020-06-02T07:16:19'
Although, with 7.0.0b2 version, if I increase the renew_period in AutoLockRenew class of SDK from 10 to say 50, it works. I think its taking time to renew which is more than 10 seconds.
So, immediate blocker on both version - would like to use the stable version in production anyways.
Looking forward for your response.

@KieranBrantnerMagee Thanks for getting back. Sorry didn't get back to you soon, was caught up in other things.
Firstly, I don't understand why I'd need to supply 'timeout' parameter. The execution of code has (or might have) many external calls and its always difficult to find how much time it will take to execute in a distributed. We just hope for the best and prepare for the worst. IMO, once I register with auto_renew.register() method, as long as the program is running, it should just renew for me the lock when before it expires.
When I see the library code, I see the use of timeout in below code and not sure why we need that if condition in first place. If main program execution stops abruptly due to any exception or something, or completes with message.complete() - shouldn't we consider that as an indication for the end of execution of auto_lock_renew thread for that message?
            while self._renewable(renewable):

                # Don't understand why do we need this check in first place?
                if (utc_now() - starttime) >= datetime.timedelta(seconds=timeout):
                    _log.debug("Reached auto lock renew timeout - letting lock expire.")
                    raise AutoLockRenewTimeout("Auto-renew period ({} seconds) elapsed.".format(timeout))

Secondly, I tried with your suggestion and see same issue. The exception occurs after 5 minutes when we try to renew_lock. Below is the code and exception -

Let me know if I'm missing anything here. Looking forward for your response.

No worries whatsoever (Re: time to respond back).  I should be thanking you for your patience as we work through this.
The timeout long predates me so this is an assumption, but I believe it exists to try and avoid a scenario where a caller processes indefinitely (as a problem, not intentionally), and never releases a message back to the queue to be taken by another node.  Whether we should allow a user to say "None" with the implicit "caveat emptor" may be an option the team can discuss if that would make your life easier.
I would note that if the main thread terminates, the renewer would likely terminate as well, since it's only split off via a python thread.  Similarly, to your point about if complete() should stop renewal, it does:  observe while self._renewable(renewable): on line 214.
Now, your code and still observing the failure is fascinating.  I have the following sample code here which I've been using for comparison and it appears very similar to the point that i'd be hard pressed to say that we're even doing anything differently.  (I've done my sample with both queues and topics, to be precise, same behavior in both cases).
This begs the question for me, "what is actually different" and my head starts going towards how the topic/subscription you're using were created, assuming you don't see anything glaringly different in my sample code above. @sagar027 actually pointed out something interesting when we synced on this, that when he created via the control_client code in python, the subscription when viewed in the Azure Portal had some very strange settings, and his version of this code was failing as well, albeit with different symptoms.  I'd be curious how you did creation, and if you create the topic and subscription via the Azure Portal with default settings, if it behaves as expected.  So to be clear, here's the action I'd take (and as I understand we'll be having another call shortly to sync on this as well):

Create a clean topic and subscription via the Azure Portal, and perform this test against them, using default settings.
Enable logging as demonstrated in my example (for both 'azure' and 'uamqp' loggers, as well as setting debug=True when creating your ServiceBusClient).  This log would be invaluable for seeing what's going on behind the scenes if 1 does not fix the problem.

As always don't hesitate to let me know if I can clarify anything.

Thanks @KieranBrantnerMagee for your response. With exactly the same code and enabling logging as you demonstrated for version 0.50.3 - same error. We can more deeper look over scheduled call of-course.
Attached is the complete error trace which I get from logging.
error.txt
Some important points to note -

Your suggestion of option 1 above of performing test by creating Azure portal - we can definitely do this. However, not sure how the findings will help. Even if it works, we would want this to make it work in our product which creates topic and subscriptions programmatically via .Net nuget package WindowsAzure.ServiceBus (3.4.6)
Since this needs to be part of our product release soon, I'd like to focus this investigation on the current stable version of azure-servicebus python package i.e. 0.50.3
Use LockDuration as 5 minutes for your testing if not already set.

Below is my code for your reference
import logging
import sys
import time
import re
from datetime import datetime
from azure.servicebus import ServiceBusClient, AutoLockRenew

auto_renewer = AutoLockRenew()
service_bus_client = ServiceBusClient.from_connection_string(
    "REDACTED", debug=True)

sub_client = service_bus_client.get_subscription(topic_name="REDACTED", subscription_name="REDACTED")

def get_logger(level):
    azure_logger = logging.getLogger("azure")
    handler = logging.StreamHandler(stream=sys.stdout)
    if not azure_logger.handlers:
        azure_logger.setLevel(level)
        handler.setFormatter(logging.Formatter('%(asctime)s %(name)-12s %(levelname)-8s %(message)s'))
        azure_logger.addHandler(handler)

    uamqp_logger = logging.getLogger("uamqp")
    if not uamqp_logger.handlers:
        uamqp_logger.setLevel(logging.INFO)
        uamqp_logger.addHandler(handler)
    return azure_logger

get_logger(logging.DEBUG)

with sub_client.get_receiver() as receiver:
    for message in receiver:
        try:
            auto_renewer.register(message, timeout=420)
            # This is where the business logic executes. Takes more than 5 minutes
            time.sleep(360)
            message.complete()
        except Exception as ex:
            print('Exception: ' + str(ex))

@KieranBrantnerMagee I see your code uses queues - I wonder why in this context. Anyways, I've used exactly your code with below change suggested by @sagar027
with service_bus_client.get_topic("test_topic").get_sender() as sender:
    print("Sending Message====================================")
    sender.send(Message("test1"))
    print("Sending Message====================================")
    sender.send(Message("test2"))

with service_bus_client.get_subscription("test_topic", "test").get_receiver() as receiver:
    for message in receiver:
        print("Got Message: " + str(message))
        auto_renewer.register(message, timeout=5*60)
        # This is where the business logic executes. Takes more than 5 minutes
        time.sleep(2 * 60) #... some business specific code...
        message.complete()
        print("Done completing message")

print("Done")
input()

Update - Just for testing purpose, I created new topic-subscription from Azure portal (keeping all defaults) - create a new venv for my python code - installed 0.50.3 version of python service bus package - used your code with above changes - didn't work.
Gives me following error -
2020-06-09 15:56:31,778 uamqp.mgmt_operation ERROR    Failed to complete mgmt operation.
Status code: 410
Message: b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. Reference:REDACTED_GUID, TrackingId:REDACTED_GUID_B4, SystemTracker:deetestlockrenew:Topic:testtopic|testsubscription, Timestamp:2020-06-09T10:26:42'
2020-06-09 15:56:31,778 uamqp.c_uamqp INFO     b'-> [DISPOSITION]* {true,2,2,true,* {}}'
2020-06-09 15:56:31,778 azure.servicebus.common.utils DEBUG    Failed to auto-renew lock: ServiceBusError("Management request failed: b'The lock supplied is invalid. Either the lock expired, or the message has already been removed from the queue. Reference: REDACTED_GUID, TrackingId: REDACTED_GUID_B4, SystemTracker:deetestlockrenew:Topic:testtopic|testsubscription, Timestamp:2020-06-09T10:26:42'",). Closing thread

Echoing our out-of-band conversation for progeny who finds this thread:
Once again the logs to the rescue; the full logs you linked contained the key breadcrumb: That when you set the lock duration at 5 minutes, the supposed maximum on the server, for whatever reason the expiry would show up as > than the 5 minute threshold, and thus the lock would be expired by the time we went to renew it.
When tuning to a lower value than 5 minutes we found a second problem via the error "the connection was inactive for more than the allowed 240000 milliseconds".  This was caused by setting the renew_period to be >4 minutes, after which due to idle on the link, the service would close the connection.
We've worked around both these issues by setting lock duration on the service entity to be <5 minutes, and either leaving renew_period at its default value, or using a value below 4 minutes.
We'll be closing this thread as resolved and tracking the work to investigate and address the aformentioned issues here
Thanks once again for all your patience as we worked through this @deeagar; feel free to reach out or reopen this if any further issues or anything we can help with.

Hi @KieranBrantnerMagee,
Hope you are doing well..!
We've been using this work-around mentioned above from past few months and while its working, we do get AutoLockRenew errors frequently with reasons all mentioned in our previous conversation.
Just wanted to check - do we have time frame when the 7.* version of this package will be GAed and we can expect some consistent and more deterministic behavior from this? It's been a while since its in preview.
Thanks!
Deepak Agarwal.


Fix dataframe tests to use eq / validate dask computation result

Follow up for #506 and #509. I've misunderstood that eq can't be used for DataFrame tests...

It seems ok to me to use tm.assert_frame_equal.  We should also consider improving eq or replacing it with our own assert_frame_equal function for dask.array.

Yep. One idea from #513 is checking the consistency of dask instance and its computation result. For example, currently dd.DataFrame.loc[1] results in dd.DataFrame, but the computation result is pd.Series.
I've added a validation logic and fixed:

DataFrame.loc[1] now return Series rather than DataFrame, by adding some constructor property same as pandas
SeriesGroupBy aggregations now return Series rather than DataFrame, by adding return_type kw to apply_concat_apply.

If it looks reasonable, I'll check other part and add more tests.

This all looks reasonable to me.

A couple of large PRs were recently merged which have likely caused merge conflicts.  I apologize for the inconvenience.  I'm happy to help with merge/rebase if necessary.

Thanks, rebased. I've summarized the changes in PR on the top.

This looks great to me.  Merging soon if no comments.


Feature disparity between CIS-EL8 and EL9

Describe the Issue
In the RHEL8 version of this role, control <IP_ADDRESS> and <IP_ADDRESS> exist that enforce user- and group quota's on the mount for /home.
In the RHEL9 version of the role, this is no longer the case and (in my case) running the role actively removes these mount options, leaving systems configured differently.
Is that intended by the CIS guidelines (and should I change my config)?
Expected Behavior
Both systems behave the same with regards of configuring mounts.
Actual Behavior
In my environment I am managing filesystem mounts with a role for both RHEL8 and RHEL9, but there's a idempotency issue right now :-)
Control(s) Affected
<IP_ADDRESS> and <IP_ADDRESS> (if they exist in RHEL9)
Environment (please complete the following information):

branch being used: master
Ansible Version: 2.16
Host Python Version: 3.12
Ansible Server Python Version: 3.9.18
Additional Details:

Possible Solution
If not mandatory, can we have a means of adding these mount options manually? :-)

hi @Thulium-Drake
Thanks as always fro your feedback. I am working on this currently hoping to have the PR raised asap.
Kindest regards
uk-bolly

hi @Thulium-Drake
Thank you again for this issue. The fix has been applied and is now in the main branch and release. I will close this issue, Please reopen if you feel this is not resolved.
Many thanks
uk-bolly


Support TLS ALPN policies for the NLB

Is your request related to a new offering from AWS?

Yes, since the middle of 2020.
Is your request related to a problem? Please describe.

No, but would be nice to support it if we want to use HTTP2 for our apps behind a NLB.
Describe the solution you'd like.

Add a variable as it's already done for the https_listener
alpn_policy     = lookup(var.https_listeners[count.index], "alpn_policy", null)
Describe alternatives you've considered.

Additional context

"Elastic Load Balancing now supports TLS ALPN policies for Network Load Balancers. Using TLS offloading with ALPN policies you can now offload your application’s TLS HTTP/2 traffic decryption/encryption logic to the Network Load Balancer, improving your service security posture and reducing operational complexity.  " It would really be nice to have this in terraform.

I literally need this right now 👍🏻  x 1000

/reopen

PR is welcome!

Ok, I'll try to come up with one in the following days, depending on my travels. Thanks Anton and best of luck 🙂

Please reopen this issue until I have time to create a PR.


extra ABI tests, in particular for DispatchFromDyn

@bors r+

:pushpin: Commit 42105b37d4e9c8fcc6e6a6a4db0f1f8506bd04d8 has been approved by RalfJung
It is now in the queue for this repository.

:hourglass: Testing commit 42105b37d4e9c8fcc6e6a6a4db0f1f8506bd04d8 with merge 13ad9d9a6970f7b9b47b1faed8506fbe564b3bc0...

:sunny: Test successful - checks-actions
Approved by: RalfJung
Pushing 13ad9d9a6970f7b9b47b1faed8506fbe564b3bc0 to master...


Running builds from /node_modules instead of /dist/vendor

Is there any reason to run builds from /dist/vendor? This not only requires an entry in angular-cli-build.js for every library that we want to add, but additional entries for every dependency of that library. This is very painful and completely unnecessary because npm has already done the hard job of recursively fetching all those dependencies into node_modules. Am I missing something? Is there an easy way to do this?

I believe some of the underlying tools are not yet able to understand how to find library files directly in node_modules. It is certainly possible: webpack does it by default, and rollup has a plug-in that enables it to understand node package resolution.  But, to serve the case where we aren't bundling files, this would mean node_modules is also served directly to the web browser, which is sort of ugly.

Still trying to understand how this case is different from angular2-seed - it serves the dev build from node_modules and the prod build from a compressed packaged bundle. I don't know anything about the underlying tools for angular-cli, but can't they support a similar workflow?

Unfortunately that is "over my pay grade" :-). Someone on the CLI team could possibly comment on why they have chosen to make CLI work quite differently from the seed project you linked. I personally have four different sets of build tooling for Angular 2 (we use it when teaching classes), and there are endless trade-offs and things partly done everywhere.

The decision was mostly because Angular-CLI is based on Ember-CLI, and that's how Ember-CLI did it.
That being said there are trade-offs between different approaches. For instance, it's still very valuable to generate a standalone, portable dist/ dir for deployments. Copying over all of node_modules isn't a good way of going about it because a lot of stuff there is needed for the build process rather than the runtime app.

@filipesilva, I don't see the trade off. Running from node_modules is only for dev builds. For prod builds, the tool should be smart enough to package only what's needed - automatically. What's painful currently is to manually figure out what's needed for either build. Please look at the angular-seed workflow - it has done this already.


[ThreadPool] Pending tasks threshold

Currently, all ThreadPool sentinels check if there are some BlockingTasks.
We should also provide a way to notify if there are too many pending tasks.

[THINKING] This kind of sentinel will be useful only if we are able to test the threshold over a time windows.


[Question]: Why don't need any permissions to access my SMB shares？

Is your question not already answered in the FAQ?

[X] I made sure the question is not listed in the FAQ.

Is this a general question and not a technical issue?

[ ] I am sure my question is not about a technical issue.

Question
Hello and thanks for the great project。
I ran virtualDSM using macvlan mode.And I've set permissions in DSM.
But when I access the SMB share with <IP_ADDRESS> on Windows, I don't need any permissions, what's the problem?
I need to add permissions to the smb share.Please help me.
------yml
services:
dsm:
container_name: dsm
image: ghcr.io/vdsm/virtual-dsm:latest
restart: on-failure
environment:
CPU_CORES: "2"
RAM_SIZE: "2G"
DISK_SIZE: "2048G"
HOST_SERIAL: "xxx"
HOST_MAC: "xx-..."
HOST_MODEL: "xxx"
GUEST_SERIAL: "xxx"
VM_NET_MAC: "xx-..."
devices:
- /dev/kvm
- /dev/vhost-net
cap_add:
- NET_ADMIN
ports:
- 5000:5000
device_cgroup_rules:
- 'c : rwm'
volumes:
- /volume1/docker/vdsm:/storage
stop_grace_period: 2m
networks:
vdsm:
ipv4_address: <IP_ADDRESS>
networks:
vdsm:
external: true

)

I have found the reason. My Windows account and password are the same as DSM's.


CLOUDSTACK-9142 Migrate VM changes xmlDesc in a safe way

The problem arises when the origin hypervisor has an ip addres that ends with 1, like '<IP_ADDRESS>' and the qemu VM description is containing an address that has that as part of its address, '<IP_ADDRESS>' for instance.
now migrating to '<IP_ADDRESS>' will change both addresses in the xml description file for qemu. It is fixed and unit tests are added. I am not sure yet how to integration test this. Regression will probably work so creating a PR now.

@DaanHoogland Please check, unit test error:
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.cloud.hypervisor.kvm.resource.LibvirtComputingResourceTest
log4j:WARN No appenders could be found for logger (org.reflections.Reflections).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Tests run: 144, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.726 sec <<< FAILURE! - in com.cloud.hypervisor.kvm.resource.LibvirtComputingResourceTest
testMigrateCommand(com.cloud.hypervisor.kvm.resource.LibvirtComputingResourceTest)  Time elapsed: 0.013 sec  <<< ERROR!
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
	at java.lang.String.substring(String.java:1960)

looking into this, probably been working on to much at the same time today, sorry

Looking at this test I see the problem indeed. I actually created this regression while fixing it.
One thing though, you mean that the IP of the NFS server is part of the XML desc, can you show me an example? I can't think of a way though.
The code seems good to me, but running a integration test on this is indeed hard to do.
This would btw also apply for a Ceph cluster. If a Ceph monitor has a IP which 'matches' that of the host the same situation could arrise.

Hi @DaanHoogland,
I would only suggest you extracting those magic numbers at line 97 to constant variables (using some descriptive names).
I also have a doubt,
Are we using that “@author” directive? Such as the one you have at line 26 of “LibvirtMigrateCommandWrapperTest”
BTW: I really liked the “replaceIpForVNCInDescFile” method. Very nice and descriptive method name, comprehensive java doc, test cases and the method itself is not complicated. I believe that should be our code quality goal. Congratulations !

Except for the concern that there may be multiple graphics element where the method would clearly fail, LGTM. Please also squash your commits.

@DaanHoogland This test is failing:
Test migrate VM ... === TestName: test_08_migrate_vm | Status : EXCEPTION ===
ERROR

Details:
======================================================================
ERROR: Test migrate VM
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/data/git/cs1/cloudstack/test/integration/smoke/test_vm_life_cycle.py", line 594, in test_08_migrate_vm
    self.vm_to_migrate.migrate(self.apiclient, migrate_host.id)
  File "/usr/lib/python2.7/site-packages/marvin/lib/base.py", line 653, in migrate
    apiclient.migrateVirtualMachine(cmd)
  File "/usr/lib/python2.7/site-packages/marvin/cloudstackAPI/cloudstackAPIClient.py", line 772, in migrateVirtualMachine
    response = self.connection.marvinRequest(command, response_type=response, method=method)
  File "/usr/lib/python2.7/site-packages/marvin/cloudstackConnection.py", line 379, in marvinRequest
    raise e
Exception: Job failed: {jobprocstatus : 0, created : u'2016-01-20T21:19:08+0000', cmd : u'org.apache.cloudstack.api.command.admin.vm.MigrateVMCmd', userid : u'95279fda-bed0-11e5-90a2-5254001daa61', jobstatus : 2, jobid : u'e7a1bb0f-39a5-4868-97c9-8fda5f8a8aa1', jobresultcode : 530, jobresulttype : u'object', jobresult : {errorcode : 530, errortext : u"org.libvirt.LibvirtException: internal error: process exited while connecting to monitor: 2016-01-20T21:19:09.852246Z qemu-kvm: Failed to start VNC server on `<IP_ADDRESS>:0,password': Failed to bind socket: Cannot assign requested address\n"}, accountid : u'95278d2a-bed0-11e5-90a2-5254001daa61'}

Tried the test again and it failed again. Can you investigate please?

@wido the problem we encountered in our env is not with NFS servers but with RBD. sorry for the misdirection.

@remibergsma that is serious. migration is failing for us with the tested code and the test is failing with the fix. I have work to do it seems. :) Can you send me the full log for comparison, please.

@rafaelweingartner I have no idea about 'those magic numbers' I didn't touch them.
I can remove the @author. it was auto generated.
thanks for the compliment, though I myself think the javadoc could have been even more terse.

@remibergsma I reproduced the error. I had not copied the newlines from the problematic system into my unit test. will push a fix without hurry.

@DaanHoogland Have you been able to fix this? Code-wise it still seems good.

@wido yes it was fixed. The problem was the newlines in the pattern to search for. I had not taken that in account for in the unit test. We are about to put this in production but first I have to check how the status of the tests are.

@remibergsma @wido can we merge this?

LGTM, 4.7.1 with this fix was installed on a live environment with success. Instances can now be migrated to and from the kvm node that has an IP address which partially matches one of the ceph monitor nodes.

It looks like @davidamorimfaria is using this in production now without issue, so that is a good sign.
@remibergsma do the tests that were previously failing now pass?
Thanks...

ACS CI BVT Run
Sumarry:
Build Number 122
Hypervisor xenserver
NetworkType Advanced
Passed=105
Failed=13
Skipped=4
Link to logs Folder (search by build_no): https://www.dropbox.com/sh/yj3wnzbceo9uef2/AAB6u-Iap-xztdm6jHX9SjPja?dl=0
Failed tests:
Skipped tests:
test_vm_nic_adapter_vmxnet3
test_deploy_vgpu_enabled_vm
test_06_copy_template
test_06_copy_iso
Passed test suits:
integration.smoke.test_deploy_vm_with_userdata.TestDeployVmWithUserData
integration.smoke.test_affinity_groups_projects.TestDeployVmWithAffinityGroup
integration.smoke.test_portable_publicip.TestPortablePublicIPAcquire
integration.smoke.test_over_provisioning.TestUpdateOverProvision
integration.smoke.test_global_settings.TestUpdateConfigWithScope
integration.smoke.test_scale_vm.TestScaleVm
integration.smoke.test_service_offerings.TestCreateServiceOffering
integration.smoke.test_loadbalance.TestLoadBalance
integration.smoke.test_routers.TestRouterServices
integration.smoke.test_reset_vm_on_reboot.TestResetVmOnReboot
integration.smoke.test_snapshots.TestSnapshotRootDisk
integration.smoke.test_deploy_vms_with_varied_deploymentplanners.TestDeployVmWithVariedPlanners
integration.smoke.test_network.TestDeleteAccount
integration.smoke.test_non_contigiousvlan.TestUpdatePhysicalNetwork
integration.smoke.test_deploy_vm_iso.TestDeployVMFromISO
integration.smoke.test_public_ip_range.TestDedicatePublicIPRange
integration.smoke.test_multipleips_per_nic.TestDeployVM
integration.smoke.test_regions.TestRegions
integration.smoke.test_affinity_groups.TestDeployVmWithAffinityGroup
integration.smoke.test_network_acl.TestNetworkACL
integration.smoke.test_pvlan.TestPVLAN
integration.smoke.test_volumes.TestCreateVolume
integration.smoke.test_ssvm.TestSSVMs
integration.smoke.test_nic.TestNic
integration.smoke.test_deploy_vm_root_resize.TestDeployVM
integration.smoke.test_resource_detail.TestResourceDetail
integration.smoke.test_secondary_storage.TestSecStorageServices
integration.smoke.test_vm_life_cycle.TestDeployVM
integration.smoke.test_disk_offerings.TestCreateDiskOffering

Update on this? Is this ready to be merged? We are missing one LGTM.
Code looks good to me.

LGTM, though it would be great if @DaanHoogland can move part of the test string from the Test to an xml file under resources

@rhtyd tomorrow #kingsday, I will have some free time ;) loadResourceFromClassPath you are talking about, huh?

@DaanHoogland yes that or something similar so test data can be separate to its own file

@rhtyd as a part of loading from resource I am restructuring the project layout to adhere to maven standards. Doing so it seems not appropriate to include such a change in this bug fix.@swill I think this can be merged.

So if I am following this correctly, we are all set.  @rhtyd requested a change to move the test data to an overridable location, but did not require this change for his LGTM.  @DaanHoogland would have to restructure the plugin in order to make that happen and feels it is outside the scope of this fix and would prefer to address that to a future improvement.  Does that all make sense?
I will put this in my merge queue, but will wait for confirmation that we are good to go before merging.  Thanks guys...

That's correct. I am doing the restructure now based on this PR's source branch and will make a new PR shortly. If it gets tested before this one I will close this one but it is really a pedantic play-with-myself kind of thing and the wether outside is fine.

@swill yes that was a good to have suggestion; keep large string based test data separated from test, though since this request is cosmetic in nature I'm okay if we decide to merge

Thanks guys.  I am fine with merging it as is, but does it make sense to wait a bit to see what the discussion brings up in the #1521 PR?  Or will it not affect this PR?

No it won't. the fix in here is valid whichever way we go.

Ok perfect.  I will add this to my merge queue.  Thanks for clarifying guys...


key-manager: define and use a typed log schema

This also fixes the issue where all log lines were reported coming from a single location in source by removing and log function and using the log macros explicitly.

Thanks, @bmwill! I wasn't aware that we were logging source lines. Thanks for fixing that!

/land
Yeah the log macros expand and capture the module, file and line number of the log line. Makes things easier to debug later ;)


TypeError: Cannot read property 'parseHTML' of undefined

I'm trying to implement the Froala editor inside another directive, so I may be adding an unexpected layer of abstraction. But, $isEmpty in the Froala directive doesn't seem to take into account the possibility that the value passed in could be undefined.

Hmm... I was using master. When I switched to EditorV.2 branch, the issue went away. So, maybe I tripped over a work in progress. Sorry if I am reporting unnecessary issues!


Brings in builder pattern for #2263

Hi @Paul-Hadfield, there are a few conflicts here on the controller tests, would you be able to resolve?

Hi @MisterJames, sorry I missed your comment about the conflicts, I think I've sorted these now (and it's passed build test)


Add div to a container div

Hello,
My layout does have a navigation menu and a content area, however sweetalert2 does by default add the alert in the body, not giving me the option to centering it relative to the content area.
Is there a chance you could add something like this?
Thanks

I'm not sure how to implement this. Which bahaviour of gray overlay you're expecting - to fill only parent element?

That's a good question, and that's another problem I've came up with, and I've not yet solved.
Well, it could be even more flexible and we could be able to specify which element we want the gray overlay to be, as in my case I would like to have the navigation menu overlayed, however it the alert should be centered to the content area.

Sorry, but your case is pretty custom. You can fork SA2 and add that functionality to forked version of SA2.

Thanks a lot anyway.
By the way, could you tell me how would you pass the extended params variable to the init function?
AFAIK init function is responsible for creating the main div in body, and it will be there that, according the params I would change the destination div, however, as init() is called once the page is loaded, I am not able to pass parameters to it.
What are your suggestions in this case?
Thanks!

@IvoPereira take a look at https://github.com/limonte/sweetalert2/commit/e141f58c230d70552886267a01b86ed0033a76ac
There's you can find the simple example of adding new params to SA2 and processing them in setParameters() method.

I've successfully added some additional params and I am totally able to process them in modalDependant function.
However, as you in see here https://github.com/limonte/sweetalert2/blob/master/lib/sweetalert2.js#L491 - init function appends the sweet wrapper in body, however at this time I don't have the params defined, as they are just defined when swal() function is called in code.
Once document is ready, init function is called, and I am not able to pass any additional params - https://github.com/limonte/sweetalert2/blob/master/lib/sweetalert2.js#L763

Yeah, you're right. You will need to refactor plugin to accept parameters before initialization. Not simple task, as I sensed :)

Exactly what I tought!
Thanks a lot for your support @limonte!


fix server rendering

ReferenceError: window is not defined
@mbasso look at this, plz

@AmilKey I'll publish it as soon as possible, thank you :)

<EMAIL_ADDRESS>is now online 🎉


otree: init at 0.1.0

Description of changes
addition otree package, which is a command line tool to view objects (json/yaml/toml) in TUI tree widget
try the package
nix run github:anas-contribs/nixpkgs/by-name/otree#otree

Things done

Built on platform(s)

[x] x86_64-linux
[x] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Is there any way we could remove the dependency on git for building?

in v0.1.0 i dont think so

Upstream seems to offer BUILD_OTREE_WITH_GIT_INFO and CARGO_PKG_VERSION could those be helpful here?

oh, that's would help ofc, i think with this we can remove git from our native build deps. but we have to wait until they release these modifications

Maybe a TODO comment in the package regarding removal of the git dependency via use of BUILD_OTREE_WITH_GIT_INFO and CARGO_PKG_VERSION for the next release might helpful. What do you think, @0x61nas?

good idea

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4071

@0x61nas any idea what could cause the ofborg-eval check failure?

Format using nixfmt-rfc-style
nix run nixpkgs#nixfmt-rfc-style -- pkgs/by-name/ot/otree/package.nix

Done in #358397


docs: sync readme with emqx/emqx

We also need update  https://github.com/docker-library/docs/tree/master/emqx

@Rory-Z https://github.com/docker-library/docs/pull/2267


bro why this is happened

Describe your problem here.
i compile 0.7.3 version and this error comed
Warning: Ignoring unknown fps=""
D:/MY GAMES/FNF/PHYCH ENGUNE/0.7.3(compiled)/compiled results/FNF-PsychEngine-0.7.3/.haxelib/SScript/21,0,0/src/macro/Macro.hx:10: characters 96-100 : SScript is not available, thanks to everyone for their support.
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
no

Try this: https://github.com/CobaltBar/SScript-Archive

it works, but the character editor is full with black

it works, but the character editor is full with black

Try https://github.com/ShadowMario/FNF-PsychEngine/pull/14495

source/states/editors/CharacterEditorState.hx:1069: characters 27-52 : Type not found : ConfirmationPopupSubstate

nvm. I fix it, Thanks!


"neighbour: ndisc_cache: neighbor table overflow"

The default ARP table size in the kernel has a limit of 1024 entries.
If you launch more than a thousand containers, you will fill up the time
and no new entries get accepted because each container takes up an entry in the ARP table.

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

@simos Forgot the Signed-off-by line in your commit message.

Added the signed-off-by.


I can't turn on 'Mode ZHA or zigbee2mqtt [ADV]'

Hi,
I'm trying connect some devices via zigbee and Xiaomi Gateway 3, but I can't set Mode ZHA or zigbee2mqtt [ADV] option. I know sometimes ago it has been possible but now I reinstalled all home assistant and it's not working. HA is on Raspbery Pi 4.
Error: Unknown error occurred
Logs: Try to update Zigbee NCP to version v6.7.10
2022-01-05 14:11:32  DEBUG    utils         NCP flash error: Traceback (most recent call last):
File "/config/custom_components/xiaomi_gateway3/core/utils.py", line 215, in flash_zigbee_firmware
utils.connect(host, port)
ConnectionRefusedError: [Errno 111] Connection refused
Reinstall doesn't help.

Hello,
just yesterday i had same error on a brand new gateway 3. About 15 days ago a setup another gateway 3 without issues on a similar setup (rpi4) and same vertions of addons/os between the two installations.

Hello
after an A/B comparison, i noticed that on my system (i call it A - with Xiaomi GW3 v1.65) there is a GUI (see shot) GUI slightly different if compared with the other rpi4 (the one i can't turn 'Mode ZHA or zigbee2mqtt' ON - i call B). On the B system, there is also Xiaomi GW3 v1.65 intalled BUT (ie) the debug option is under a dropdown menu.
I'm not running the integration along with beta versions so i'm a little bit confused about the two different GUIs...
Anyway, i took the GW3 on my system (A system the one with the GUI in the screenshot) and got it to work as a proof that there should be something wrong in the B system even if the integration is reporting the same version number.
Just a thought...

Hello
after some further comparison, finally i think i at least catched the discriminant.
The problem seems to raise ONLY when using wifi connection on the rpi4. Tried that on two different rpi4 with almost same OS.
If i stick with ethernet connection (eth0 on my systems), the setup of ZHA or zigbee2mqtt seems ok. When i switch to wifi connection, the setup GUI (xiaomi gw 3) is slightly different and the setup fails.
That's all i'm able to report
Someone on this please?
TIA

It is not recommended to use the Hass server when connecting on WiFi. It will not work well

ok thanks
so i can turn zigbee2mqtt mode to ON while on ethernet.
After setting it up, can i switch to wifi on my rpi4? It sound a little bit crazy to have wifi options available even on the HA gui and still being not able to use it...
Many thanks

My Pi is connected via Ethernet, and I still can't turn on this option.

You need to find the reason why Hass cannot connect to the gateway. Sometimes rebooting the gateway or wifi router helps

But hass is connected to the gateway correctly. I see all parameters from another sensors like temperatures, humidity etc.

@dawidc1994 maybe you block internet for gateway and it can't load important binary file. Or you have problems with internet connection to sourceforge.net

Hi Guys,
I'm running into that same issue: after checking the option for ' [DANGER] Mode ZHA or zigbee2mqtt ' and clicking SUBMIT I'm getting an error message "Unknown error occurred"
The Xiaomi Gateway 3 ver is 2.0.4 (it behaved the same with 2.0.3)
My Gateway is:
IP: <IP_ADDRESS>
MAC: 54:EF:44:22:7A:A0
Token: 6c39706b6d336e324e5446685157316f
Model: lumi.gateway.mgl03
Region: tw
HASS 2022.2.6
here is a screenshot of the error:

TNX

@giluriel you need to check logs

Hi, have the same problems
@giluriel Did you fix it?

Hi,
Yes, I did. I will try to remember how I did it....
(you saw that there are two versions of the telnet command to put there,
right? only one works with each model)
Gil
On 08/06/2022 01:20, Roman wrote:

Hi, have the same problems
@giluriel [1] Did you fix it?
--
Reply to this email directly, view it on GitHub [2], or unsubscribe
[3].
You are receiving this because you were mentioned.Message ID:
@.***>

Links:
[1] https://github.com/giluriel
[2]
https://github.com/AlexxIT/XiaomiGateway3/issues/588#issuecomment-1149230324
[3]
https://github.com/notifications/unsubscribe-auth/ABOZRKNLDC2PSELBE3DI4SLVN7DMDANCNFSM5LJ4RX4A

The error disappeared when I installed version 1.5.0_0102

Please reopen the issue if it is still relevant


Can support to codellama34b?

CodeLlamas are also Llama models, so we have already supported them :). https://huggingface.co/codellama/CodeLlama-34b-Instruct-hf/blob/main/config.json


First fixes for not executed testcases

Some fixes for not executed testcases, see #114.

Only message at context level.
When context has no description, use message as description.

Add pseudo status NOT_EXECUTED is currently equal to the status wrong at Dodona.

I doesn't have take these rare cases into account.

Context with lots of testcases is executed completely, within time, but not a lot left, e.g. 9 of out 10 seconds.

@niknetniko Do you mean when the message De beoordeling is vroegtijdig gestopt. is added, the status must be set to NOT_EXECUTED?

I'm not sure if I get what you mean. Point 1 was to set up the scenario: a context with a number of testcases was executed within time limits, but there isn't a lot of time left.
However, on second thought, we'll have to revisit how this works anyway I think, since if we put all tests in one context (for performance reasons), a time-out will result in no feedback.


Add support for windows

Description
This PR implement compilation support for flagser.
What's does it implement

[x] Implement compilation and execution of flagser on Windows
[x] Compiles and work on Linux
[x] Currently passes 17/17 test (UPDATED)
[ ] 0 warnings with windows compilation

Current Issues
:warning: FIXED :warning:
I have a 16 of 17 test passing, at the moment 1 cannot pass:
medium-test-data.flag, produces only on Windows the following error:
dim H_0 = 20726
Could not find coboundary 83|0|209 .
Could not find coboundary 82|3|12 .
Could not find coboundary 22|15|394 .
Could not find coboundary 274|2|478 .

Any help or hint could help me a lot to find a solution why only one test is failing.
Remaining
I only tested flagser because there's only test written for it. Maybe adding more test to the other functionalities could make more robust PR ?
Cheers,
Julián

I added some automatic tests on different platforms, everything passes on Windows. Thanks for making the effort to fixing the bugs! I will remove all warnings one of these days, if it is urgent to you feel free to open another pull request. Thanks!

Hi @luetge,
Sorry for my delayed answer, I was on Holiday.
Thank you for merging PR and added more tests, it's really useful.
For the warnings, it can hide an untested problem, let see if any user report a bug :)
Julián

Hi,
I brought it down to a single warning (but a huge one), if you know how to fix that I would appreciate it, otherwise I might merge the new branch even with that one warning and fix it at a later point.
https://travis-ci.com/luetge/flagser/jobs/283312066
Cheers,
Daniel


Updated gradle version to 7.3.1. Moved from jcenter to mavenCentral a…

…s it got deprecated. Bumped compileSdkVersion to 33. (#131)
Fix #131
Fix #105
Fix  #82
Possibly will fix more android issues as the project used very old android dependencies.

It looks like I have created a duplicate pr of #145  and #144 with more content.
Will keep it open as the extra changes are also important.

Thank you for this contribution, but I don't have any time to maintain this package, so it is now marked as discontinued and app_links recommended replacement.


(URGENT) XML: Entries in Bibliography all missing

IEEE 2021 Style Manual supports a Bibliography as the first Annex.
Currently, Metanorma is not generating the contents of the Bibliography at all:

This can be seen at https://github.com/metanorma/SWF-Corpus_and_IEEEP2874-D2
This may be a Metanorma XML problem.

In the presentation xml there aren't bibliographic entries:
<annex id="_" obligation="" language="" script="" displayorder="9">
	<title>
		Annex A

(informative)</title>
	<references id="_bibliography" normative="false" obligation="informative">

Bibliographical references are resources that provide additional or helpful material but do not need to be understood or used to implement this standard. Reference to these resources is made for informational use only.

	</references>
</annex>

Also there is another issue - a redundant page break:

@Intelligent2013 thanks for the investigation.

'Page break' issue fixed:


Ensure all methods that can be final are final #335

I used a regex and found other examples of methods which are not final, which should be made final, e.g.:

Schedule.scala

Schedule.run
Decision.done
Decision.cont

Etc. I'd expect probably around 20 cases where we've forgotten to add final.


UIPopoverPresentationController not available in tvOS

Thanks for this package @Jaesung-Jung
Unfortunately unable to build on tvOS because of the UIPopoverPresentationController not available

@gabors Oh this is my mistake, I'll fix it quickly and deploy it, sorry for the delay.

Thanks @Jaesung-Jung !

@gabors
Released 1.1.1 with a build error fix on tvOS.
Removed popoverPresentation(_:) interface on tvOS.


More flexible xt::arange

For testing I often use arange. However, I find it currently a bit restrictive. It would be great to allow:
xt::xtensor<double,2> A = xt::arange<double>({5,5});

Hmm... I think the pattern that's used in NumPy is arange(10).reshape(2, 5).
With the reshape_view we could achieve this effect easily, or we could add a reshape function to the xgenerator class that returns the reshape_view.
I see that it's annoying to use the arange - reshape pattern with xtensor ...

We shouldn't strive to get stuck at few shortcomings of NumPy 😏.


Update create-a-phone-system-call-queue.md

Adding link to LBR voice apps section

Learn Build status updates of commit e6b784b:
:bulb: Validation status: suggestions

File
Status
Preview URL
Details

Teams/create-a-phone-system-call-queue.md
:bulb:Suggestion

Details

Teams/create-a-phone-system-call-queue.md

Line 31, Column 14: [Suggestion: duplicate-descriptions - See documentation] Attribute 'description' with value 'Learn how to set up call queues in Microsoft Teams. Call queues provide a greeting message, hold music, call redirecting, and other features.' is duplicated in 'create-a-phone-system-call-queue-smb.md(27,14)', 'create-a-phone-system-call-queue.md(31,14)'.

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings or suggestions unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@DaniEASmith
PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Quick access panel should be in primary view on mobile

On mobile, the main window (Schedule, Profiles, Notifications) is the primary view, while the quick access panel is the secondary view (accessed via the hamburger button):

On desktop, both the main window and quick access panel are always visible:

According to the design of Squid, users will interact more with the quick access panel than with the main window, so the quick access panel should be in the primary view on mobile. Options for mobile are:

Both the main window and quick access panel should always be visible
The quick access panel should be the primary view and the main window should be the secondary view (accessed via the hamburger button)

It is unlikely that Option 1 is viable on mobile, especially in portrait mode.
Note that "mobile" refers to the Galaxy Tab A7 Lite (8.7") only (resolution of 800 x 1340).

Reopening to be consistent with issues in other repos but no plans to fix this.


Deployment failed error in app catalog when using webApiPermissionRequests in package-solution.json file

Category

[ ] Question
[ ] Typo
[X] Bug
[ ] Additional article idea

Expected or Desired Behavior
For the package to deploy to the app catalog without error.
Observed Behavior
If I build my package (just the default SPFX Web Part with very little changes) and deploy it to the SharePoint app catalog it will deploy ok. The issue comes if I add a "webApiPermissionRequests" section to my package-solution file I get the error in the app catalog:
Deployment failed.  Correlation ID: 71dec89e-102f-0000-9151-f0729a9f0b6b
If I remove this node it deploys without issue. The app catalog shows "Valid App Package: Yes".
My package-solution.json:
{   "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json",   "solution": {     "name": "demo-client-side-solution",     "id": "09781193-a491-44b4-88fb-04bbcfa71eb7",     "version": "<IP_ADDRESS>",     "includeClientSideAssets": true,     "skipFeatureDeployment": true,     "isDomainIsolated": true,     "webApiPermissionRequests": [       {       "resource": "1049ad91-dec9-4934-822b-d1720ed616c8",       "scope": "user_impersonation"       }     ]   },     "paths": {     "zippedPackage": "solution/demo.sppkg"   } }
Steps to Reproduce
Add a webApiPermissionRequests node to the package-solution.json file and deploy it to SharePoint.
Thanks for your contribution! Sharing is caring.

Turns out this was being caused by the preview property:
"isDomainIsolated": true,
I removed this from the package-solution.json file and it deployed successfully.


Perforce password (P4PASSWD) invalid or unset :<

Hello! I've been trying to get this to work, even though I have noooo idea what I'm doing when it comes to these kinds of setups.
I figured I'd ask for help, I've looked through the other 2 issues that has been resolved but I can't verify my issues the same way as they did as I don't have a "p4dctl.conf.d/master.conf" (guessing since I'm not running p4dctl to run my servers?)
I think I've set up the trigger correctly as I see it with the p4 logging options in p4v, but the main issue I have is that I'm getting
"Perforce password (P4PASSWD) invalid or unset", which I'm guessing is the root of the issue.
If I run the " ./perforce_discord_webhook.sh x x"-command it sends the msg to discord :S
Any advice in how I can debug this thing? Been trying for a couple of days now to get it working but no luck:D

Hey, sorry for the late response.
Regardless of running perforce via p4dctl or not, you can see in the debug section that you are indeed running the server as the perforce user.
The first thing that comes to mind is to make sure that, when issuing the p4 login command, you're also doing that using the perforce user, otherwise it won't work.
In other words, make sure your bash prompt is showing perforce@hostname:~$ p4 login by running sudo su perforce.
If that is not the issue, then we can dig deeper, but i'm almost sure that's the issue.

I've also been researching ways to auto-login when running the trigger, but I haven't found a way to do it without storing the password in plain text, which is not secure.
If you wanna try it, you can put those around line 18 on the perforce_discord_webhook.sh:
p4 set P4PORT=ssl:localhost:1666
p4 set P4USER=your.username
p4 set P4PASSWD=MD5_hashed_password

and see it it works, but i highly discourage it.

Hey saadbruno!
Thanks for the reply; However I tried that and it didn't work:< got some perforce client warnings instead.

I also am on the correct p4 login

I did however find a way to make it work, it's fugly AF and I think if this would be a more important server than just a hobby-project I would never dare, but by adding the login credentials in the p4-command in the perforce_discord_webhook.sh with -u XX -P XXX it works as intended!

Though while I have you, do you know what I would have to change in order to get the bot to only write out the username and not with the workspace as well?
Currently getting:
"Change 108 by<EMAIL_ADDRESS>would rather cut it at the @
Also many thanks for this script!


Use personal access token to trigger release on a new tag

Trying this out from https://github.community/t/triggering-a-new-workflow-from-another-workflow/16250/37

Looks interesting

Looks interesting


add example of linked service

Hi Maxim,
I'm trying to make a TV Service with the new Homekit services and characteristics of 12.2 IOS,
I'm trying to convert this homebridge plugin:
https://github.com/merdok/homebridge-webos-tv
In the code I see some "this.tvService.addLinkedService" and you have done linked support on your HOMEKIT library but how it works?
Can you post an example please?
Thanks in advance

Here is my implementation of a TV, you might find answers there.


QUESTION: possibility to Install the v.1 on laravel 6.0

This is more a question than anything, it's possible to install the v.1 of this package, I tried to update the lib but there are some serious problem with how the layout is displayed and we need to maintain the same layout but we must update the laravel version of our project.
if there is a restraint please let me know.
Thanks in advance.

We can not give support for the v1. Sorry for that.


strip www from host names

If a host name begins with "www." strip it off and redirect to the naked host name.
I don't know if you want to add this to your code, but I find it helpful as I have both www.example.com and example.com coming in to be handled by nginx and sent to containers. But I prefer all users get redirected to see just the example.com URL in their browsers.

If a host name begins with "www." strip it off and redirect to the naked host name.
I don't know if you want to add this to your code, but I find it helpful as I have both www.example.com and example.com coming in to be handled by nginx and sent to containers. But I prefer all users get redirected to see just example.com in their browsers.

Thanks.  That file is just an example starter template.


Running alembic via the container image is problematic

Because nix is used to build the container image, it's not easy to run alembic.
For 0.9.1, the alembic binary happens to be at /nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/bin/alembic. Seems like we need to set this as an --entrypoint to invoke it.
It appears that we also need to pass a config to it, which happens to live at /nix/store/5q2rmk3i4cvjzb5x6s19s5gmv34gjpf6-python3.8-matrix-registration/alembic.ini.
Looks like we also need to run the alembic command with a working directory like /nix/store/5q2rmk3i4cvjzb5x6s19s5gmv34gjpf6-python3.8-matrix-registration (passed to docker run via -w).

In the end, I've gotten to a command like this:
docker run \
-it \
--rm \
--name matrix-registration-db \
--log-driver=none \
--user=991:991 \
--cap-drop=ALL \
--network=matrix \
--mount type=bind,src=/matrix/matrix-registration/config,dst=/config,ro \
--mount type=bind,src=/matrix/matrix-registration/data,dst=/data \
-w /nix/store/5q2rmk3i4cvjzb5x6s19s5gmv34gjpf6-python3.8-matrix-registration \
--entrypoint=/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/bin/alembic \
docker.io/zeratax/matrix-registration:v0.9.1 \
-c /nix/store/5q2rmk3i4cvjzb5x6s19s5gmv34gjpf6-python3.8-matrix-registration/alembic.ini upgrade head

Yet I still get some error like this:
Traceback (most recent call last):
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/bin/.alembic-wrapped", line 9, in <module>
    sys.exit(main())
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/config.py", line 577, in main
    CommandLine(prog=prog).main(argv=argv)
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/config.py", line 571, in main
    self.run_cmd(cfg, options)
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/config.py", line 548, in run_cmd
    fn(
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/command.py", line 298, in upgrade
    script.run_env()
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/script/base.py", line 489, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/util/pyfiles.py", line 98, in load_python_file
    module = load_module_py(module_id, path)
  File "/nix/store/lcbqvdllxb7lnrk85zq4pdl63yxdbb4z-python3.8-alembic-1.4.2/lib/python3.8/site-packages/alembic/util/compat.py", line 184, in load_module_py
    spec.loader.exec_module(module)
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "alembic/env.py", line 14, in <module>
    from matrix_registration import config as mr_config
ModuleNotFoundError: No module named 'matrix_registration

So I'm guessing the command above needs even more work.

Is it possible to adjust the container-building script, so that it puts binaries (or symlinks to them) at a predictable path?
What would be the proper way to invoke alembic from a container image?

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1208

https://github.com/ZerataX/matrix-registration/blob/2a36ebb4fa660bbd75600946b592119c497f1fba/docker.nix#L13-L26
I could easily add something to this like
Env = [ "PATH=${pkgs.matrix-registration.alembic}/bin/" ];

and maybe also add a symlink for the ini to /data?
kinda wish i could just set two entrypoints for both alembic and mreg.
Hmm the other nix approach might be to make a wrapper, e.g. I use this:
{
matrix-registration-cli-wrapper = pkgs.stdenv.mkDerivation {
    name = "matrix-registration-cli-wrapper";
    buildInputs = [ pkgs.makeWrapper ];
    buildCommand = ''
      mkdir -p $out/bin
      makeWrapper ${pkgs.matrix-registration}/bin/matrix-registration "$out/bin/matrix-registration" \
        --add-flags "--config-path='${matrix-registration-config}'"
    '';
  };
}

if I put both configured like that on the PATH I could just use a default entrypoint and default CMD to matrix-registration-cli-wrapper.
that might be sensible.

I'm not sure I understand what the above nix configuration does, but anyway.. writing out the entire command sounds (matrix-registration serve, instead of just serve) sounds good.


Carthage will build "Realm iOS static" scheme.

Goals
Skip "Realm iOS static" scheme when build by carthage with --no-use-binaries option if this is not expected behavior.
Expected Results
Only build "Realm" and "RealmSwift" scheme.
Actual Results
additionally building "Realm iOS static" scheme.
Steps for others to Reproduce
v5.3 no need building "Realm iOS static"
$ carthage update --platform iOS --no-use-binaries
Please update to the latest Carthage version: 0.36.0. You currently are on 0.35.0
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v5.3.0"
*** xcodebuild output can be found in /var/folders/y8/jt2b97z12lg4xms5_pgcdcr40000gn/T/carthage-xcodebuild.A6awb9.log
*** Building scheme "Realm" in Realm.xcworkspace
*** Building scheme "RealmSwift" in Realm.xcworkspace

v5.4 building "Realm iOS static"
$ carthage update --platform iOS --no-use-binaries
Please update to the latest Carthage version: 0.36.0. You currently are on 0.35.0
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v5.4.0"
*** xcodebuild output can be found in /var/folders/y8/jt2b97z12lg4xms5_pgcdcr40000gn/T/carthage-xcodebuild.JTHZ02.log
*** Building scheme "Realm iOS static" in Realm.xcworkspace
*** Building scheme "Realm" in Realm.xcworkspace
*** Building scheme "RealmSwift" in Realm.xcworkspace

Code Sample
n/a
Version of Realm and Tooling
Realm framework version: tested 5.3.0 and 5.4.0
Realm Object Server version: n/a
Xcode version: 11.7
iOS/OSX version: 13.7
Dependency manager + version: Carthage 0.35.0

@r-plus Can you take a look at v5.4.3+, we introduced some changes to help with Carthage installation issues.

@leemaguire Hi, thanks for your response.
But v5.4.3 also building "Realm iOS static" scheme.
$ carthage update --platform iOS --no-use-binaries
Please update to the latest Carthage version: 0.36.0. You currently are on 0.35.0
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v5.4.3"
*** xcodebuild output can be found in /var/folders/y8/jt2b97z12lg4xms5_pgcdcr40000gn/T/carthage-xcodebuild.mAMsD7.log
*** Building scheme "Realm" in Realm.xcworkspace
*** Building scheme "Realm iOS static" in Realm.xcworkspace
^C

and latest stable version v5.4.7 too.
$ carthage update --platform iOS --no-use-binaries
Please update to the latest Carthage version: 0.36.0. You currently are on 0.35.0
*** Fetching realm-cocoa
*** Checking out realm-cocoa at "v5.4.7"
*** xcodebuild output can be found in /var/folders/y8/jt2b97z12lg4xms5_pgcdcr40000gn/T/carthage-xcodebuild.f3Oc2y.log
*** Building scheme "Realm" in Realm.xcworkspace
*** Building scheme "RealmSwift" in Realm.xcworkspace
*** Building scheme "Realm iOS static" in Realm.xcworkspace

Carthage does not provide us with any way to control which schemes are built.

I've created a script for me, feel free to copy and adapt for your needs.
https://gist.github.com/bguidolim/46f05bea5e0e9534493010dd444d24f9

Is this expected behavior? If so that’s fine.

It is, the only thing Carthage allows you to configure is "which plataform", but not the target of that platform.

Closing as we cannot control which schemes are built by Carthage.


Fix broken links in docs

Signed-off-by: Kaige Ye<EMAIL_ADDRESS>
What problem does this PR solve?
Problem Summary:
The links in the document was broken, this PR is to update the links' URL
What is changed and how it works?
What's Changed:
Update 2 URLs
Tests

Manual test

/merge


"Import from an XML file" does not work

Drag and Drop a Kettle file does not work either.
Regression in <IP_ADDRESS>.

Resolved by 6d14d0cad871892aac598638b58429ec5ea407eb which explicitly includes commons-fileupload.
This dependency should be defined in pom.xml of org.eclipse.rap.fileupload.


add redis-watcher-ex for Jcasbin

Fix: #1

Replaced by: https://github.com/jcasbin/redis-watcher-ex/pull/4


Long click on text to start highlighting, for text copying

Is your feature request related to a problem? Please describe.
Currently there doesn't seem to be a way for users to highlight texts in rendered PDF, would be good to enable this.
Describe the solution you'd like
Being able to select portions of text on screen, with standard gestures on text.
Describe alternatives you've considered
Doesn't look like there are any alternatives to text selection.

Due to its capability of rendering PDFs in image format, selecting or highlighting them is impossible. We haven't explored the OCR yet. Thank you


Avoid setting join timeout to zero for cross-site tests

Oops

Merged, thanks

we want this on 14.0.x too


How could I mark logs from different channels ?

I use different logging channels in my laravel app. I log them all in bugsnag but it seems I'm unable to filter them then. Does anybody using channels ? How could I do that ?
thanx

Hi @smknstd, the suggested way would be to use callbacks.  I would be to add a callback in each channel identifying the channel in question, like:
Bugsnag::registerCallback(function ($report) {
        $report->setMetaData([
        'logging channel' => [
            'name' => 'channel 3'
        ]
    ]);

Then when a message from a particular channel is sent to Bugsnag, the channel name should appear as metadata.  You may have an issue if messages are being sent through multiple channels, as each callback will be trigged in the event of a notification, but you should still be able to filter through by channel.

Hi @Cawllec, thanx for your quick answer. Adding metadata manually seems like a good idea, but I don't get how would I register a different callback for each channel. Do you have any idea ?

Also, dashboard filtering based on the new metadata field would require a "Custom filter" which is only available on pro plan...

You could also use the context field which is filterable by default, but then you would lose the ability to filter based on what is in there right now.

You can use report.setContext from https://github.com/bugsnag/bugsnag-php/blob/master/src/Report.php#L454
Bugsnag::registerCallback(function ($report) {
        $report->setContext('channel 3');
});

Thanx for your help ! But I have the same problem as before... I don't get how would I register a different callback for each channel.

You can't. You'd have one callback and then you'd have to figure out which channel the log message came from.
Depending on how you are hooking up the log channels you could do this as a part of the notify call (setting the context).

My question was about laravel 5.6 logging channels https://laravel.com/docs/5.6/logging#writing-to-specific-channels, I can't set context specifically every time...
Log::channel('stripe')->error('Payment refused');
...
Log::channel('emailing')->error('Sending email failed');


Strange effect on display png images with transparent background.

When I display the images, they have a dark border around, but the issue only happen in iphone and ipad. I created the images with GIMP.
Is there any solution to solve this problem?
Partial screenshot form ipad

from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.gridlayout import GridLayout
from kivy.uix.image import Image

class ShowImage(GridLayout):
    def __init__(self, *args, **kwargs):
        super(ShowImage, self).__init__(**kwargs)

        self.size_hint = (1, 1)
        self.rows = 1
        self.cols = 3

        self.add_widget(Image(size_hint=(1/3., 1), source='img01.png'))
        self.add_widget(Image(size_hint=(1/3., 1), source='img02.png'))
        self.add_widget(Image(size_hint=(1/3., 1), source='img03.png'))

        self.rect = None
        with self.canvas.before:
            Color(1, 1, 1, 1, mode='rgba')
            self.rect = Rectangle(pos=self.pos, size=self.size)

        def update_pos(instance, pos):
            self.rect.pos = pos
        def update_size(instance, size):
            self.rect.size = size
        self.bind(pos=update_pos)
        self.bind(size=update_size)

class TestApp(App):
    def build(self):
        return ShowImage()

if __name__ == '__main__':
    TestApp().run()

To fix this issue in Android, I add the "png" recipe to the requirements in buildozer.spec. But I can not find a solution for iOS.

can you try setting KIVY_IMAGE=sdl2,pil env var before any of your kivy imports. Make sure to do this before any kivy import.

I tried to compile the kivy-ios with 'pil' support, but failed
$ ./toolchain.py build pil pyobjus plyer openssl pycrypto kivy
...
Install frameworks for libjpeg
Install_frameworks libjpeg
Install sources for libjpeg
Install_sources libjpeg
Install libjpeg
Install libjpeg
# (ignored) Download openssl
# (ignored) Extract openssl
# (ignored) Build_all openssl
# (ignored) Download sdl2
# (ignored) Extract sdl2
# (ignored) Build_all sdl2
# (ignored) Download hostpython
# (ignored) Extract hostpython
# (ignored) Build_all hostpython
# (ignored) Download sdl2_image
# (ignored) Extract sdl2_image
# (ignored) Build_all sdl2_image
# (ignored) Download sdl2_mixer
# (ignored) Extract sdl2_mixer
# (ignored) Build_all sdl2_mixer
# (ignored) Download sdl2_ttf
# (ignored) Extract sdl2_ttf
# (ignored) Build_all sdl2_ttf
Download host_setuptools
Extract host_setuptools
Extract host_setuptools for i386
Error: cannot detect root directory
Unrecognized extension for /Users/prrcarvalho/Development/kivy-ios-master/.cache/host_setuptools-
Traceback (most recent call last):
  File "./toolchain.py", line 1311, in <module>
    ToolchainCL()
  File "./toolchain.py", line 1082, in __init__
    getattr(self, args.command)()
  File "./toolchain.py", line 1106, in build
    build_recipes(args.recipe, ctx)
  File "./toolchain.py", line 974, in build_recipes
    recipe.execute()
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 585, in execute
    self.extract()
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 56, in _cache_execution
    f(self, *args, **kwargs)
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 621, in extract
    self.extract_arch(arch.arch)
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 625, in extract_arch
    dest_dir = join(build_dir, self.archive_root)
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 577, in archive_root
    value = self.get_archive_rootdir(self.archive_fn)
  File "/Users/prrcarvalho/Development/kivy-ios-master/toolchain.py", line 458, in get_archive_rootdir
    raise Exception()
Exception

PIL is not really needed unless you are loading a gif. Just setting KIVY_IMAGE=sdl2 should work too.

Before any of your kivy imports I add this two lines of code:
import os
os.environ['KIVY_IMAGE'] = 'sdl2'

and I get this error message :
Exception: Unknown  type, no loader found.

I think that i found the image:
https://github.com/kivy/kivy/blob/master/kivy/data/images/image-loading.gif

I replace the image https://github.com/kivy/kivy/blob/master/kivy/data/images/image-loading.gif with a png image and set the environment variable  KIVY_IMAGE=sdl2. When I display the images, they have a dark border around. The sdl2 don't fix the issue.

Just to let you know, i got that too. Your issue is from the created gimp image + OpenGL Blending + OpenGL texture filter.
The issue is: when you stretch an image, the alpha doesn't match the rgb on the same pixels. Blending happen, and it does not do what you which it does. Let me explain you in detail.
Image that doesn't work

Create a full transparent image
Draw a circle in the middle of it in white
Now analyse the RGBA layers:

RGB have white only where you draw: it has only white and black values
A is full opacity on the circle, and smoothing the edge, fully transparent outside the circle: it has a full range of 0-255 values.

Now stretch that.

RGB will blend between pixels, and the "generated" texture will contain
Alpha will blend too, but it will blend where there is "black" basically.

= You see the glitch from between pixels.
How to fix the image

On the RGB layer, extend the "white" outside the circle. You won't see it due to the Alpha channel

Then when you stretch the image, there wont be any blending on RGB, and so alpha blended pixels will always match white, not black.
Conclusion
Image works correctly when used at scale 1. You need to fix your image for upper scale. :)

Hi. I don't get you. I'm quite new to kivy. I'm working on an app for Android, on it it I need to display a png image with some transparency but on my Android mobile a black rectangle is displayed in the position where the image is supposed to be. This same image is used as the splash screen of the app and it works just fine but within the app it shows all black. The image also displays fine in my laptop

@princeIta that's a different issue, it's possible that your image is bigger than the maximum opengl texture on your phone, try downscaling it. (to 2048x2048 max).

Thanks so much for the response @tshirtman. I Tried down scaling but it  did not work. Every other png or jpg image displays when I run my app on phone, but this particular image doesn't. It is able to display on the apps splash screen. And the image happens to be the logo I intend to use for my application. The image is a write-up in black colour and I'm trying to put it on a white background.

can you open a new issue about that, and put the image (or another showing the same issue) in it?

Hi,
I got this problem (I guess) too.
What I figured out, and what fixed it, is that when blending alpha-pixels, the alpha-pixels color isn't multiplyed with the alpha when blended.
So a semi transparent red pixel will for example add 50% red, which is correct.
But a almost transparent pixel (say at 5%), will still add 50% of color to the blend... which is wrong
If anyone knows where the blending is done, I'll have a look if you want.
Cheers
Ludvig Larsson aka Valmond
ps. to fix it, I 'painted' the almost transparent pixels with the background color (you won't see a difference in Photoshop, but in the gamy you will), this won't fix the problem if the background changes so it's kind of useless often (or use 50% transparent pixels and not less, which is cumbersome).


Cannot have multiple structs with the same name under different namespaces

Due to the way extractStructNameIfAvailable is written, if you have two structs say LibraryA.data and LibraryB.data, typechain will export only one of them with the name Data<something>.
One solution would be to keep the names before the .. Another would be to keep a map of full names and add an index to each new struct encountered, so you would export Data1, Data2, etc. Happy to try one of the solutions.

Not sure what #576 fixed, but it is definitely possible to still have 2 structs with the same name, under 2 namespaces, and end up with struct shadowing in the typechain-generated file.
For instance, with
// S1.sol
struct S {uint a;}
// S2.sol
struct S {string b;}
// Gather.sol
import "./S1.sol" as S1;
import "./S2.sol" as S2.
function f(S1.S memory s1, S2.S memory s2) external {}

the resulting abi will look like
{
  components: [
    {
      internalType: "uint256",
      type: "uint256",
      name: "a",
    },
  ],
  internalType: "struct S",
  name: "s1",
  type: "tuple",
},
{
  components: [
    {
      internalType: "string",
      type: "string",
      name: "b",
    },
  ],
  internalType: "struct S",
  name: "s2",
  type: "tuple",
}

Note that the abi file has lost the namespace information, but the components still let you differentiate. Unfortunately, typechain generates something like:
export type SStruct = {
  a: PromiseOrValue<BigNumberish>;
};

What it could do instead is generate multiple, numbered structs like SStruct1, SStruct2, ...


clarify default value

closes https://github.com/MicrosoftDocs/OfficeDocs-SharePoint-PowerShell/issues/113

Docs Build status updates of commit fa220c3:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOTenant.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@tiburd Please merge this PR. Thanks.

Docs Build status updates of commit 8888378:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-online/Set-SPOTenant.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Autofilter look'n feel improvements

Make autofilter field look correct and follow light/dark themes

This is duplicate of #97 (yes, I made both, sorry)


🌱 Add golangci-lint file

/cherry-pick release-1.1

/retest

/test all

/retest

I think the addition of golangci is somehow making the tests heavier and this timeouts are happening, lets merge this and if it happens again , I will increase the timeout .
/retest

/test-ubuntu-integration-main


[AutoPR powerbiembedded/resource-manager] typo: powerbiembedded/resource-manager/Microsoft.PowerBI

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/4729

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/3972


Please review.

IPG 263.

@dubeejw - review complete; one comment added

@mdeuser, ready for another review.

@dubeejw - refactor of CLI path processing looks good.

Merged as https://github.com/openwhisk/openwhisk/commit/4f185e6d2c2137812b6df7ddc663e15cf12bbc16.


Ditch DuckDB Support

It would be easier to support only one implementation, and I think Polars made some great progress. Also, community support is way better at Polars.

Ok,but would wait to see if polars works good for some time in production.
For DuckDB I expect the next release to improve Azure Story a lot. So maybe wait also for that one


Is there an option to specify a JSON or XML file path?

Want to generate custom JSON file for Slack message with attachments etc based on tests results to not follow the link every time to check what's going on. Didn't find it anywhere in docs.
Pretty much the same as for jUnit:
      post {
        always {
            junit 'test-report-junit.xml'
        }
        failure {
          slackSend 'test-report.json'
        }
      }

I don't think this feature makes sense, closing in favour of:
https://github.com/jenkinsci/slack-plugin/issues/387
which would simplify the api for attachments