Partitions rebalance listener for Consumer

When using processors with in-memory state, it's important to know the partitions assigned and de-assigned. This allows to load and unload the state, and to recover based from a durable eventually consistent snapshot by loading it based on these partitions.
At the moment, you can try to derive this information from the Message IDs, but there are 2 problems with this approach.

You don't know when a partition is de-assigned for a Consumer. This forces you to use a time-based cache eviction policy.
When you recover from a crash, you don't know the whole set of partitions assigned, meaning you're forced to load from durable storage the state for each partition when you encounter it in a MessageID. This means a less efficient startup.

Ideally, you should expose something like the ConsumerRebalanceListener in Kafka.

I think there's no rebalance concept in Pulsar. Pulsar consumer doesn't maintain a partition assignment internally like what Kafka consumer does. Pulsar's consumption model is push, while Kafka's is pull. In Pulsar, the dispatcher at broker side determines which partition should the message be sent.

Maybe you can check the docs in org.apache.pulsar.client.api.ConsumerEventListener.
Once the broker choose a consumer for receiving messages in failover mode, it will send an event to client. You can add a listener to this event through ConsumerEventListener.

@sollecitom Close this for now, feel free to reopen this if you have further questions.

@Jason918 I believe the author of this ticket was talking about Pulsar through their understanding of Kafka. I've been looking for something similar to this in Pulsar and have not been able to find it, nor find a work around. Pulsar key shared subscriptions work similarly to Kafka, where as Kafka balances assignment of partitions to consumers Pulsar key shared subscriptions just divide the hash key space among all consumers which are consuming the same key shared subscriptions. The key difference here is that Pulsar is not assigning partitions to consumers, but rather assigning them a key space for which they'll received the messages for. In this context "rebalancing" might be the wrong word, but ultimately what it being talked about is letting consumers know when their hash ranges have changed.
This is common in distributed data processing work flows where the data you see come in informs you to consume other topics and combine the latest from each source. So I might have a key share subscription to feed out work to a pool of consumers, and based on the data they see they might consumer other subscriptions to retrieve dependent data. If another consumer joins it will subdivide the key space on another consumers therefore the other consumer needs to know to stop consuming these other topics, as they are no longer needed and the key shared subscription will no longer send them. In Kafka you handle this issue by notifying the consumer that a rebalance occurred. That means that the client can evaluate what it should stop consuming.
ConsumerEventListener might be a good place to expand into for providing this feature, but as it stand the functionality of this event listener does not provide similar functionality to the mentioned ConsumerRebalanceListener in Kafka. Pulsar may not do partition reassignment, but Pulsar doesn't provide similar functionality to handle changes in a key shared consumer's keyspace, making it difficult to effectively implement combined latest processing strategies, and even simple things like invalidating local caches which might cache based on previously seen data from that key shared subscriptions.

You can create a consumer listener and register it on your consumer. Pulsar indeed has a subscription type that behaves exactly like Kafka does when it comes to partitions and partition assignment changes.
The ConsumerListener
class PublishingConsumerEventListener : ConsumerEventListener {

    private val changes = MutableSharedFlow<PartitionAssignmentChange>()
    val partitionAssignmentChanges: Flow<PartitionAssignmentChange> get() = changes

    override fun becameActive(consumer: Consumer<*>, partitionId: Int) = runBlocking {
        changes.emit(PartitionWasAssigned(partitionId, consumer.topic, consumer.consumerName))
    }

    override fun becameInactive(consumer: Consumer<*>, partitionId: Int) = runBlocking {
        changes.emit(PartitionWasUnassigned(partitionId, consumer.topic, consumer.consumerName))
    }
}

And you can register it with consumerBuilder.consumerEventListener(consumerEventListener).subscribe().
I hope it helps.


Re-do the twine upload because the classifiers are not showing on pypi

when the version was 2.0.0, the classifiers did not show up
In the alpha version before 2.0.0

In the 2.0.0

Probably need to recreate the package and upload it since the setup.cfg looks correct.
# Create the package
python setup.py sdist bdist_wheel

# Upload it to PyPI
twine upload dist/*

Closed by #254!


Broken: Please update auth server

Source: https://community.home-assistant.io/t/setup-failed-for-tado/105570/3
tado is discontinuing the old OAuth2 endpoints at my.tado.com. Starting March 2019, authentication will require retrieving access and refresh tokens from auth.tado.com. The client public-api-preview can be used as is (with the same client secret) on the new endpoint.
The new authentication will also be a standard OAuth2 system, but will use JWT as a format for refresh tokens. So be aware that this will increase the size of the refresh tokens.
Additionally, the new endpoints implement refresh token rotation. A new refresh token is issued with every access token refresh response. The previous refresh token is invalidated.
More:
People are talking about it here:
https://community.home-assistant.io/t/setup-failed-for-tado/105570

Duplicate of #22048
Fix PR  #22145 already merged in dev

It´s still not working??? Did you change my.tado.com to auth.tado.com? I´m running latest version 0.90


WSL2 Network problem not working ~ Trying to fix since 2 days. shit couldn't get it

Windows Build Number
19043.1165
WSL Version

[X] WSL 2
[X] WSL 1

Kernel Version
5.10.16
Distro Version
Ubuntu-18.04
Other Software
Nothing installed yet now.. it's just a fresh one.
Repro Steps
I have just installed WSL and Ubuntu 18.04  that's it
After installation is done it doesn't work networking.  I can't install packages or anything.
Expected Behavior
Because it's just a fresh setup, I was expecting everything to work out of the box including the network
Actual Behavior
When I tried to use the internet throughout my WSL2 Ubuntu setup it just doesn't work
suppose when I do sudo apt-get install PACKAGE it retrieve package details. but then can't do the download and stack like this

and when it happens my network on windows also doesn't work, I mean when I'm trying to use the internet inside the WSL box my local Windows internet also seems gone.. I'm using the internet through a WIFI network.
Diagnostic Logs
I have tried to get this done for the last few days. managed to waste enough hours but still, it seems doesn't work.
Tried few configs from people here who facing similar issues but doesn't work at all.
Tried things
I haven't had enabled Hyper-V, then enable it and did network bridging with VETHERNET WSL2  with my wifi network, didn't work.
#I checked that the virtual Adapter that trying to use the internet has different IP address series than the one I have on my local windows.
#I tried a few more stuff it didn't work at all
NOTE; When I do make my mobile phone a hotspot and then connect it through WIFI it works. but my regular router's internet doesn't work
network details FROM WSL2 Ubuntu

This config below assigns automatically, by selecting obtain IP automatically, it still doesn't work

details from windows

at this moment I'm super stack with this issue.

Me too

I try to stay in windows as a developer, but they insist this is a disaster.
After a fresh install wsl2 totally useless. There is no way to at least do apt-get update

I try to stay in windows as a developer, but they insist this is a disaster.
After a fresh install wsl2 totally useless. There is no way to at least do apt-get update

Same here.. I might need to switch to Linux based system again. as it's not working at all.

Check your antivirus. I had the same problem, I solved it by uninstalling the antivirus. (Note: it is recommended to have an antivirus).

Check your antivirus. I had the same problem, I solved it by uninstalling the antivirus. (Note: it is recommended to have an antivirus).

The one I have is Windows defender, disabled all the security and then tried again, seems to have no result. it's not that easy thing I guess.

I cant make it work either.
I'm new to linux/wsl and this is pure bananase.
I've got literally 0 idea how to fix it & every post/forum I follow does not solve the issue. Nice one MS nice one.


Standardize provided dataset label and data members

This is in related to: https://discuss.pytorch.org/t/solved-simplest-way-to-increment-multiple-dataset-labels-using-the-operator/16809/5
Summary:  There is no consistent way to access members such as the dataset labels across the provided datasets, eg:
MNIST: uses self.train_labels here: https://github.com/pytorch/vision/blob/master/torchvision/datasets/mnist.py#L53
SVHN : uses self.labels here: https://github.com/pytorch/vision/blob/master/torchvision/datasets/svhn.py#L76
This should be standardized across the provided datasets in case for example users want to concat datasets and increase the labels as the datasets increase (see forum summary for more info)

If the user wants to concatenate both datasets, why not use torch.utils.data.ConcatDataset?

@fmassa : this doesn't have logic to change the labels of the second dataset. Eg:

dataset0 :  labels 0-9
dataset1 : labels 0-9

ConcatDataset here will not change the labels of dataset1. What I want is something like ConcatDatasetExtendLabels to ensure that dataset1's labels to be shifted from 10-19

I think you can do this in a simple manner: add a target_transform to one of your datasets that shifts the labels, and then use ConcatDataset
What do you think?

Good point! Didn't actually think of this. This is probably the most appropriate way to get access to the underlying members


ItemListFormAction::pos can become invalid when sorting feeds

Newsboat version: 974207ac2b4b680a71ec808b67e6e90773089e9f (master)
Config file (copy from ~/.newsboat/config or ~/.config/newsboat/config):
# empty

Steps to reproduce the issue:

Setup a URLs file with 2 feeds, make sure they have at least 1 unread article each. Let's call them A and B

Open itemlist A

Press v (open dialoglist) and select the feedlist

Press G followed by n to reverse the sorting direction

Repeat step 3 (only needed because of issue https://github.com/newsboat/newsboat/issues/1094)

Press v to switch back to the open itemlist A

Press A to mark all items as read

Press v to switch back to the feedlist

Expected:

At step 7: all visible items are marked as read
At step 8: The feedlist shows feed A as read while feed B still has unread articles

Actual:

At step 7: No visible changes
At step 8: The wrong feed is marked as read (B marked as read while A still has unread articles)

Other info you think is relevant:
The ItemListFormAction has a variable pos which contains the feed index (index into FeedContainer.feeds).
This has several issues:

The index becomes invalid when the feeds are sorted (1 resulting error described/reproduced above, there are probably more)
Search feeds don't occur in FeedContainer.feeds so pos is always invalid. One incorrect use got fixed in https://github.com/newsboat/newsboat/commit/087532309344b870987d348afe9f02be8e210d1e. (I didn't see more pos+search issues but it is too easy to introduce new ones)

To reproduce this, I had to do a step nine: press ? then q to open and close a help dialog, forcing feedlist to redraw. Without that step, both A and B had non-zero unread counts.


Comunication between devices

Hi, i'm trying to connect from another device to the server using the wifi direct IP, but when i try to connect the output is:

client error failed to connect to /<IP_ADDRESS> (port 8007) from /<IP_ADDRESS> (port  36497): connect  failed: EINVAL (Invalid argument).

To get the server address ip i'm using react-native-wifi-p2p.
When i use the ip to connect from the same device of the server it work.

It looks like you are trying to connect to LAN IP from an invalid IP (<IP_ADDRESS>).

Sorry... the problem is that i'm using the localAddress: "<IP_ADDRESS>", in client server, my bad.
Thx for the library.


0.16.0: [plugin] has no propType for native prop [plugin].renderToHardwareTextureAndroid of native type boolean

Android:  After updating to 0.16.0 many third party plugins including https://github.com/brentvatne/react-native-video, https://github.com/brentvatne/react-native-linear-gradient, https://github.com/mapbox/react-native-mapbox-gl are causing the errors to be thrown:
RCTMapbox` has no propType for native prop `RCTMapbox.renderToHardwareTextureAndroid` of native type `boolean
After manually setting the renderToHardwareTextureAndroid Proptype in the plugin, it proceeds to throw more Proptype errors for all of the following :
  renderToHardwareTextureAndroid

  onLayout

  accessibilityLiveRegion

  accessibilityComponentType

  importantForAccessibility

  accessibilityLabel

  testID

Again manually adding in the plugin seems to make the issue go away, but in some cases (Video / LinearGradient @brentvatne ) the plugin completely stops working. Obviously I do not want manually edit anything in node_modules so this should be addressed.

This seems to have been introduced with this commit - in particular I think it is this line. cc @mkonicek

Nevermind @jforaker - I looked into this myself :)

+1

We've migrated all internal RN components to declare their propTypes inheritance explicitly in dd09c88571f5397346903e0e8c73224cbf40c862. This allows for better control on which props can be used. In order to make those third-party components to work it should be sufficient to add ...View.propTypes to the map of propTypes in the component definition (see dd09c88571f5397346903e0e8c73224cbf40c862 for an example).
I apologize as this should've been marked as a breaking change so that ppl have time to update their libs before the release.

Ahh, that makes sense. Thanks @kmagiera! I updated the release notes here: https://github.com/facebook/react-native/releases/tag/v0.16.0


Alignment

There should be a way to allow alignment of code. For example:
Integer i;    // int
String  s;    // string
File    file; // file

Another use case (from #105):
shared actual Boolean equals(Object that)
        => if (is This that)
           then this.thing == that.thing
           else false;

Another one, from https://github.com/ceylon/ceylon.formatter/issues/105#issuecomment-169006171:
void method(A a,
            B b){}


Catch exception if remove_veth throws one

What's the plan for picking up the change to libcalico?

Once the libcalico change goes in, I'll set a tag on libcalico and update install.sh/requirements.txt where libcalico is installed to use the new tag.

This tag will be included as a new release.

One comment, then LGTM


Animeonline360

Source information and language
Animeonline360 13.1
Steps to reproduce
I was to restart the app
Expected behavior
The all movies played right one
Actual behavior
When I was trying to watch movies it keeps playing the another movie
Aniyomi version
Aniyomi App version: 0.14.3-6147
Android version
Motorola
Other details
No response
Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version <IP_ADDRESS>
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Closing as this issue was resolved on discord. The problem was that the website was displaying the wrong movie, but that's a website issue which has nothing to do with Aniyomi.


What table/schema needed for ghz web

I am trying to run against a MySQL dB and wanted to know as what should be the schema. I am using the latest 37 version .
Message = bad request error 1146 table ghz.replorts doesn’t exist
Can you tell us different table , data types and structure that need to exist

hey is it possible to get a reply

Hello, very busy ATM. The ghz-web application should automatically create all the tables and indexes needed at startup. If you set logging to debug you should see all the SQL statements. Is there specific logs you can share?

let me set that to debug then and see what's going on with the latest release.

I see this error in the log. --> Bad Request: sql: Scan error on column index 1, name "created_at": unsupported Scan, storing driver.Value type []uint8 into type *time.Time"

I saw the solution for mysql and will probably submit a PR later. For now I will stick with Postgres as that seems to be working

Unfortunately I do not have easy access to test with MySQL. I tested using sqlite and Postgres and the database client I am using should support MySQL as well. But there may be edge cases with MySQL. I will try and install MySQL and test. PR's are welcome.


无法实例化拓展实例

Extension instance (name: registry, class: interface org.apache.dubbo.rpc.Protocol) couldn't be instantiated: null

Could you please provide a demo?

If you don’t get feedback for a long time, please close the issue temporarily, if you still have a problem, you can reopen it.


cloud social provider hardening

Three main things:

all rejections should use the weird freedomjs-style {message: 'whatever'}; objects
save contacts immediately, so there is virtually no chance of a new cloud server failing to add the contacts list for, e.g. temporary SSH failure https://github.com/uProxy/uproxy/issues/2377
factor out the "pinging" logic from the provisioner and have the installer use it too, allowing us remove the retry logic altogether from the social provider https://github.com/uProxy/uproxy/issues/2419

This change is

Nice changes! 👍


github enterprise version?

any plans?

No plans. We're not adding any options to this extension.

You should be able to just edit the URLs in https://github.com/sindresorhus/refined-github/blob/master/extension/manifest.json to make it work though.

thx

GitHub Enterprise support been added!


nit: Update ctx make targets to be portable

Using "." in podman volume arguments doesn't work on mac.
As a pull request owner and reviewers, I checked that:

[x] Appropriate testing is done and actually running

/approve


hawk/dove: add and visualize agent payoffs

[ADDED 11/22]
This idea is fairly straightforward for simulations 1 [single risk-attitude] and 2 [multiple unchanging risk-attitudes]. Could be good to include mean, minimum, and maximum total payoff by risk-attitude: calculate total payoff for each agent, and then, for each risk attitude, take the mean, min, and max of the payoffs for agents who have that risk attitude. [Importantly: we don’t want to take, for example, the minimum payoff some agent gets on a round–we want to take these statistics for each agent’s total.] It will be boring for simulation 1: since we very quickly get a blinking state, everyone has the same average payoff. For simulation 2, we know that the risk-seekers play H more and the risk-avoiders play D more; we want to know whether the risk-seekers are doing better, and are all of them doing better, or are there some “big winners” and other “big losers” etc.
For simulation 3, there’s a difficulty in breaking it up by risk attitude, since the risk attitudes are changing. I think what we’re interested in is which end-states have the highest payoffs for the agents in them (for example, are end-state populations with more risk-avoidant agents better off, sort of vindicating Simon’s idea?). So maybe we want to calculate, for each simulation, (1) the average payoff for all agents; and (2) the average payoff for agents in each “band” (0-2, 3-5, 6-8).
dev notes

[x] implement a wealth payoff chart for hawk/dove multi; create a box plot of total wealth for each risk attitude
[x] re-order charts on hawk/dove multi interface - move rolling % hawk last; add new wealth payoff chart after the % hawk by risk attitude

implemented in #69


should ion update julia be supported?

Both of these currently fail:
[simeon@majestix ~]$ ion update julia latest
ERROR: MethodError: no method matching (::IonBase.var"#8#9"{Tuple{String,String}})()
Closest candidates are:
  #8(::Any) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:106
Stacktrace:
 [1] map(::IonBase.var"#8#9"{Tuple{String,String}}) at abstractarray.jl:2247
 [2] update(::String, ::Vararg{String,N} where N; level::Int64, glob::Bool) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:106
 [3] update(::String, ::Vararg{String,N} where N) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:103
 [4] command_main(::Array{String,1}) at /home/runner/.julia/packages/Comonicon/6OS1s/src/codegen/ast.jl:255
 [5] command_main() at /home/runner/.julia/packages/Comonicon/6OS1s/src/codegen/ast.jl:46
 [6] julia_main() at /home/runner/.julia/packages/Comonicon/6OS1s/src/parse/cast.jl:316
 [7] julia_main() at none:32
[simeon@majestix ~]$ ion update julia
ERROR: MethodError: no method matching (::IonBase.var"#8#9"{Tuple{String}})()
Closest candidates are:
  #8(::Any) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:106
Stacktrace:
 [1] map(::IonBase.var"#8#9"{Tuple{String}}) at abstractarray.jl:2247
 [2] update(::String; level::Int64, glob::Bool) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:106
 [3] update(::String) at /home/runner/.julia/packages/IonBase/cqJsJ/src/command/pkg.jl:103
 [4] command_main(::Array{String,1}) at /home/runner/.julia/packages/Comonicon/6OS1s/src/codegen/ast.jl:255
 [5] command_main() at /home/runner/.julia/packages/Comonicon/6OS1s/src/codegen/ast.jl:46
 [6] julia_main() at /home/runner/.julia/packages/Comonicon/6OS1s/src/parse/cast.jl:316
 [7] julia_main() at none:32

Would this be possible to support?

we currently forward some CLI commands to Pkg, so ion update is for updating packages in current environment. and julia is actually a registered package in General: https://github.com/JuliaRegistries/General/tree/master/J/julia
this is why it didn't say julia is not a package.
update an application can use ion upgrade in principle, but this is not implemented.


TP2000-768 Show proper description and url for geo area memberships in workbasket

TP2000-768 Show proper description and url for geo area memberships in workbasket

Why

URL did not work
Content was not very helpful/descriptive

What

Updates the __str__ method to get the proper description for geo area memberships
Adds GetTabURLMixin to get the proper URL for geo area memberships

Codecov Report
Patch coverage: 100.00% and no project coverage change.

Comparison is base (677be35) 92.26% compared to head (5413f4f) 92.27%.

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #875   +/-   ##
=======================================
  Coverage   92.26%   92.27%
=======================================
  Files         412      412
  Lines       27335    27353   +18
  Branches     2051     2051
=======================================
+ Hits        25221    25240   +19
+ Misses       1725     1724    -1
  Partials      389      389

Impacted Files
Coverage Δ

common/tests/test_models.py
96.73% <100.00%> (+<0.01%)
:arrow_up:

geo_areas/models.py
95.78% <100.00%> (+0.28%)
:arrow_up:

geo_areas/tests/test_models.py
100.00% <100.00%> (ø)

measures/tests/test_views.py
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


[Feature] I hope to use this connector as a slave library to read data from the main library

Search before asking

[X] I had searched in the issues and found no similar issues.

Description
I hope to use this connector as a slave library to read data from the main database, just like Flink SQL connector mysql cdc can read binlog logs and capture data changes in the database. Because we have a requirement to read data changes processed by the big data department, we do not want to use interval reading to sense their changes
Use case
No response
Related issues
No response
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

Currently doris does not support binlog


OSX syncing issues

osx_native_app/7.4.7
Similar syncing issues have been reported by other users as well. Logs: #423569

Connected to #2108

This is fixed in latest beta v7.4.18


Race between SimpleLink WiFi driver FastConnect and networking app startup.

To simplify the WiFi provisioning of the SimpleLink WiFi based device, the SimpleLink WiFi driver is configured to do an automatic connect ("FastConnect") to the previously connected Access Point (AP).
The initialization of the WiFi driver occurs in the driver's iface_init call: simplelink_iface_init() , which is called by the networking subsystem before the main networking application begins.  However, the WiFi connection may complete sometime later, after the main networking application begins, so networking apps may simply fail in their socket or getaddrinfo() calls, due to the lack of WiFi connection.
There is a provision in the networking subsystem to configure a synchronization point between networking events and the start of the main application:  CONFIG_NET_CONFIG_AUTO_INIT, which causes a call to init_net_app() before the main application starts, which can wait with a timeout for configured networking events (likeNET_EVENT_IPV4_ADD_ADD for example).
However, there are issues with this approach:

The WiFi driver can post the event before init_net_app() registers a handler to listen for it - so the event is missed;
init_net_app() does not listen for WiFi connections (as that could be an option instead of IPV4);
to build init_net_app() requires setting CONFIG_NET_CONFIG_SETTINGS, which forces hardcoded values for IP address, which is not desired for an offload driver which already handles DHCP, and brings in other unnecessary functions.

To reproduce, build/run the samples/net/sockets/http_get example on the cc3220sf_launchxl.
This example often fails unless there is a breakpoint at main allowing some time to for the WiFi connection to succeed.
Some options for a solution:

Block in simplelink_iface_init() until the connection is made.  This would be the simplest fix, not involving any changes to the networking config module.
Update networking auto config to understand WiFi drivers which offload DHCP, and add an option to (first) check, then wait, for a connection event.

The option 2. is probably the best one to implement. Our network config library is quite simple still and needs some TLC indeed.
If the user does not set hard coded IP addresses in prj.conf file, then the net config library cannot add any addresses itself. So there should be no issue with this in real life, except that by default all the samples set some IP address to the application. But I would argue that the samples need typically tweaking anyway and should not be used blindly. Suggestions how to make this more user friendly are welcome of course.
One thing we could do is to create subsys/net/lib/config/wifi_settings.c or similar that could make sure that the config init is done only after the wifi is ready to serve. So perhaps wifi driver etc could send an event when the network is ready and IP addresses etc can be set.

Yes, option 2 would be a more generic approach.
Perhaps the first step would be to get net/lib/config/init.c to build if CONFIG_NET_CONFIG_AUTO_INIT=y even when CONFIG_NET_CONFIG_SETTINGS=n.
Regarding adding a new wifi_settings.c, it may not be necessary if the race in awaiting an NET_EVENT_IPV4_ADDR_ADD event were somehow fixed.
For example, if !defined(CONFIG_NET_CONFIG_MY_IPV4_ADDR), could we first check that an IPV4 address has not been set at the interface (via DHCP), and if not, then register the ipv4_addr_add_handler() and then wait?  If it was already set, then we pass the init_net_app() stage.
This isn't strictly waiting for a "connection event", but for the SimpleLink case this would work because the DHCP is always enabled, and a net_if_ipv4_addr_add() always occurs soon after.


Unlock nightly builds

Changes
Nightly builds are broken, it seems to be related to an issue with ko and ko:// URLs: https://github.com/google/ko/issues/164
This PR temporarily reverts the change that adds ko:// to our image URLs, until the issue
it fully understood and solved, so that we may continue to have nightly builds.
Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[ ] Commit messages follow commit message best practices

See the contribution guide for more details.
Double check this list of stuff that's easy to miss:

If you are adding a new binary/image to the cmd dir, please update
the release Task to build and release this image.

Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS, and they must first be added in a backwards compatible way.
Release Notes
Describe any user facing changes here, or delete this block.

Examples of user facing changes:
- API changes
- Bug fixes
- Any changes in behavior

I think this is a fine fix to give us time to understand what's happening!
/lgtm

hmm the tekton-robot seems to be going a bit mad


[stable/home-assistant] - probes reconfiguing and bump image version

Is this a new chart

make all probes optional
introduce (optional)
startupProbe (intoroduced in kubernetes 1.16) which is disabled by default
bump the home-assistant version to 103.3

What this PR does / why we need it:
Home Assistant startup time can vary greatly depending on the configuration and number of integrations, therefore in some situations, relying on probes is problematic and there should be an option to disable probes when it isn't feasible to use them.
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md
[x] Title of the PR starts with chart name (e.g. [stable/mychartname])

@runningman84 can you please take a look at this PR?

/assign @runningman84

/approve

/lgtm


~/.z file changes owner to root after run z in sudo fish

After run z command in sudo fish mode, the ~/.z file will change owner to root, and I got permission denied error when I back to normal mode.
awk: ~/.config/fish/functions/z.awk:34: fatal: cannot open file '~/.z\' for reading (Permission denied)

@explosic4 What should z do in this case then?

@jbucaran maybe change the permission mode of ~/.z file to -rw-rw-rw- so the user can access it after leaving sudo mode.
Currently not only the owner is changed after sudo mode, the permission mode is also changed to -rw-------

@explosic4 I don't think z should be responsible of changing file permissions. What do you think @jethrokuan?

@jbucaran @explosic4 it shouldn't change file permissions. Perhaps the temp file was created with root permissions only: this will need to be corrected. I'll need to take a look at the underlying code again (its been a while). Thanks for the report.

I'm curious how you installed fisherman and z, because for me it's only available for the current user, and not available with su or sudo fish.

@jethrokuan  I installed z with fisher z, but I am not sure how I installed fisherman.

@explosic4 reviving this again. What do you think the appropriate behaviour should be? The file can be created with rw permissions for all users and groups. I'd much rather leave these things to the OS.

Instead of replacing the $Z_DATA file with the new file, I think we can just overwrite its content:
cat $tmpfile > $Z_DATA
rm $tmpfile

This will leave the permission and owner unchanged and solve the problem.

@explosic4 I like this approach. Great suggestion!


chore(main): release 1.0.1

:robot: I have created a release beep boop
1.0.1 (2024-06-23)
Documentation

add .env.example (7a6ba9a)
change camelCase ref (497c93b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/pythoninthegrass/oklahoma_cooling_centers/releases/tag/v1.0.1 :sunflower:


Rework Scale 'DropDown'

currently in different browsers the 'Change Scale' behaves strange (one reasons is, that the hidden selected disabled properties are interpreted differently depending on browser and os see immage Chrome @ Intel Mac )

Maybe it is time for a non-native dropdown?

Fixing this bug should hopefully also fix the flickering of the selector on a scale change, which is only visible in the production build.


feat: add Polish language support

I added the Polish language support. All translation sets are written in similar syntax to English (order of keywords, etc) and are easy to understand. Also, I added Polish to the example app.
I had to remove some template expressions due to language specifics, some phrases have to be conjugated by hand.
Changes passed all tests.

Codecov Report

Merging #66 (1435cdc) into main (14cd85b) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff            @@
##              main       #66   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines          250       250
  Branches        45        45
=========================================
  Hits           250       250

Flag
Coverage Δ

core
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@TeraWattHour Dziękuję!
Great! I will merge this PR and release.

@all-contributors please add @TeraWattHour for translation and test


#89

Issue #89
Some first attempt changes submitted for review
Changes
Added command option for system and used default model system as a first step
Related Issues

Hi @vipulbhj Any progress on this? Any other help you might need? We've had a couple of requests for this fix 🙂

Hey, sorry for being unresponsive. Its a religion week in india right now celebrate at country scale, so I been a little occupied. I would love to get all the help I can for sure. Thank you so much :) and I be getting back to constant communications in a day or two at max

@vipulbhj I need to push the timeline for this forward since a user is waiting for a fix. I've rebased your change to https://github.com/accordproject/concerto/tree/js-vi-fix-issue-89 which includes your initial code, and I'll be working in this. This should preserve your commit for posterity (and #hacktoberfest).
I'm closing this PR and will open a new one for #89


How to integrate Doctrine 2?

Does anybody know if it's possible to use Doctrine collections with Dingo responses and transformers?
I haven't been abled to google information related to Dingo + Doctrine.
Apparently Dingo only deals with \Illuminate\Support\Collection
I will appreciate if somebody points me to the right direction. Any article, tutorial, video related to this topic will be gladly welcome.
Thanks.

I've not done it, but it shouldn't really matter what you want to return. You're either going to return an array, or an object that can be identified for a transformer to convert that into an array.


Admin user can install it but not use

Being logged as Admin after installing the RC version of this pro app and obtaining trial license, I can't use it properly - I see some velocity codes and error on "AdminTools.WebHome"

However, if I enable superadmin account and login with it, app is usable

Did you test it on jetty or Tomcat?

Logs for Admin
2024-02-28 11:25:35,483 [http-nio-7635-exec-5 - http://localhost:7635/xwiki/bin/view/AdminTools/] WARN  c.x.x.XWiki - Error on too many recursive includes for topic AdminTools.Code.Macros
2024-02-28 11:25:35,557 [http-nio-7635-exec-5 - http://localhost:7635/xwiki/bin/view/AdminTools/] WARN  c.x.x.XWiki - Error on too many recursive includes for topic AdminTools.Code.Macros

@ChiuchiuSorin you can see from screen it's Tomcat servlet

It does not reproduce to me. Could you give me more info about the used environment?

Here's the entire log of issue

I upgraded my XWiki on Tomcat servlet with PostgreSQL this week from 16.1-RC to 16.1.0 (before it's 16.0). I haven't changed the permanent directory path, I only backup my configuration files with hibernate (to prevent overwriting them during the upgrade). I installed Admin Tools (Pro) there were no errors or warning in install logs from EM.

I did try with different users: the default Admin created at installation and user added to the admin group and it does not reproduce. I will check with Lavinia to see her opinion on this.

Confirm I can't reproduce after uninstall app with its dependency License app, and install again. Before it I had License app (without any pro app installed alongside)

Alright. Could you please check if #46 it still reproduces?


Fix docker stats missing mem limit

- What I did
closes #21852 , fix docker stats missing memory limit
- How I did it
- How to verify it
- A picture of a cute animal (not mandatory but encouraged)
Signed-off-by: Lei Jitang<EMAIL_ADDRESS>

@thaJeztah  This is a regression, it should be fixed in the release, so I added a milestone

thanks!

Please sign your commits following these rules:
https://github.com/docker/docker/blob/master/CONTRIBUTING.md#sign-your-work
The easiest way to do this is to amend the last commit:
$ git clone -b "fix_stats" git@github.com:coolljt0725/docker.git somewhere
$ cd somewhere
$ git commit --amend -s --no-edit
$ git push -f

Ammending updates the existing PR. You DO NOT need to open a new one.

On win2lin:
09:21:14 # github.com/docker/docker/integration-cli
09:21:14 .\docker_api_stats_test.go:232: undefined: memoryLimitSupport

ping @cpuguy83  @icecrime  @tonistiigi  PTAL

LGTM

ping @docker/core-engine-maintainers PTAL

LGTM 🐰


TypeScript prompts an error when importing @vueuse/motion

TypeScript prompts an error when importing @vueuse/motion

Steps to Reproduce:
Run

pnpm create vite to create a new Vite project.
Choose Vue + TypeScript as the project template.
pnpm add @vueuse/core @vueuse/motion

Expected Behavior:
The packages @vueuse/core and @vueuse/motion should be installed and imported without any TypeScript errors.
Actual Behavior:
When importing @vueuse/motion, TypeScript provides the following error message:

Could not find a declaration file for module '@vueuse/motion'. '/home/user/test/node_modules/.pnpm/@vueuse+motion@2.0.0-beta.27_vue<EMAIL_ADDRESS>implicitly has an 'any' type.
There are types at<EMAIL_ADDRESS>but this result could not be resolved when respecting package.json "exports". The '@vueuse/motion' library may need to update its package.json or typings.ts(7016)

Additional Information:
package.json
{
  "dependencies": {
    "@vueuse/core": "^10.1.2",
    "@vueuse/motion": "2.0.0-beta.27",
    "vue": "^3.2.47"
  },
  "devDependencies": {
    "@vitejs/plugin-vue": "^4.1.0",
    "typescript": "^5.0.2",
    "vite": "^4.3.2",
    "vue-tsc": "^1.4.2"
  }
}

I get the same result when trying to incorporate this package into my typescript vue build

same error

same error...

This only seems to happen on ts 5 builds

Same for me

To solve this problem, modify the tsconfig.json file

I tried the above fix but I am still getting the aforementioned error.
src/main.ts:1:30 - error TS7016: Could not find a declaration file for module '@vueuse/motion'. <EMAIL_ADDRESS>implicitly has an 'any' type.
  There are types at<EMAIL_ADDRESS>but this result could not be resolved when respecting package.json "exports". The '@vueuse/motion' library may need to update its package.json or typings.

1 import { MotionPlugin } from '@vueuse/motion'
                               ~~~~~~~~~~~~~~~~

Found 1 error in src/main.ts:1

ERROR: "type-check" exited with 2.

I solved this issue by changing the tsconfig.json with this
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "lib": ["dom", "esnext"],
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "incremental": true,
    "moduleResolution": "node",
    "forceConsistentCasingInFileNames": true
  },
  "exclude": ["node_modules", "dist"]
}

setting moduleResolution to node woked for me
"moduleResolution": "node"

that configuration doesnt work on my project, i dont know why

I'm unable to reproduce this issue by following your reproduction steps using the latest release v2.1.0, so I think this issue has been resolved and can be closed.

Can confirm that this release fixed the issue


[BEAM-1584] Add file clean up util for Python integration tests

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Run mvn clean verify to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Wrap FileSystems.delete to do file cleanup in integration tests. Retry will happen if delete operation failed ( raise BeamIOError).
Add output cleanup to WordCountIT.

retest this please

retest this please

Run Python PostCommit

Run Python PostCommit

+R: @aaltay
Presommit build failed since java-io-hbase tests timeout, which is absolutely unrelated to this PR.

retest this please

Coverage decreased (-0.007%) to 69.968% when pulling 599ae22050de5638fb31def868af2a0e2d5b0ad3 on markflyhigh:cleanup-file into 04f5bc6f805868f9ed1494128b90d33bb2fe0e66 on apache:master.


What are we sending in response to !tech command?

Should we just be sending the title? Is there something more we can add to make things more interesting?
Example title:
Aircraft Engine Icing Event Avoidance and Mitigation

Unfortunately Twitch does not seem to allow sending images (even though they are really cool). I might send the link to the image. The only problem with that is the length. Maybe I could make it tiny.
Example with title and image tiny URL:
Aircraft Engine Icing Event Avoidance and Mitigation
https://tinyurl.com/yf4oa2ab

Are there any hard requirements about which details I return?

Closing this, because it is not consequential enough to warrant a question.


Implementation of MCD capability descriptor and SA-Attestation Object (SAAO) as per ISO/IEC JTC 1/SC 17/WG 4 N 4566

Add module issuance::mcd with the structures for MCD capability descriptor and SA-Attestation Object (SAAO).

@cobward @timothee-haudebourg please review this when you get a chance


MINOR: Replace unused variable with underscore

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

run pluggable_test.py with this PR on my local. it passes. will merge it to trunk


Access Violation

librealsense
2.49.0 RELEASE

OS
Windows

Intel RealSense Viewer / Depth Quality Tool has crashed with the following error message:
Unhandled exception escaping from a worker thread!
Error type: Access Violation!

Hi @EMIIA  There was a recent case of this error at https://github.com/IntelRealSense/librealsense/issues/9741 that was resolved by the RealSense user downloading and running an older version of the RealSense Viewer program.  The current Viewer version then started working normally.
Please go to the 'Assets' file list of the older 2.48.0 version at the link below and download and run the file called Intel.RealSense.Viewer.exe.  This is a standalone version of the Viewer that can be launched with a double-leftclick from the computer folder location that it is downloaded to (the launch shortcut icon for the Viewer on the Windows desktop will not launch this file).
https://github.com/IntelRealSense/librealsense/releases/tag/v2.48.0
After the standalone 2.48.0 Viewer is run, does this correct the Access Violation error with the current Viewer version launched with the desktop shortcut, please?

Hi @EMIIA  Do you require further assistance with this case, please?  Thanks!

Case closed due to no further comments received.


Conditionally allow mainline winit for external integration purposes

I'd like to integrate iced UI rendering in other projects, however the usage of the forked winit can break some dependency handling. I've made it so that users can toggle between it and the mainline version through a feature (defaulting to the forked version).

Just tested your branch, and it seems to work for me. Out of curiosity, are you planning on publishing this version? If it wouldn't be too much of a burden, would it be possible to have versions of this crate in sync with new versions of wgpu and winit on crates.io? If you'd like, I can assist with the updating process as necessary.

Yes, I have plans to publish 0.4 soon. But before that, I'd like to have the new website ready and the "Architecture" chapters of the book finished.
At that point, it'll be just a matter of coming up with a proper announcement with a nice change log. A lot has happened since the last release!
I'd appreciate any help on these fronts!


[CXF-8378]:Fix NoClassDefFoundError: org/apache/cxf/common/util/Refle…

…ctionUtil

how to slove the bug for version 3.4.1，or provide a release version

how to slove the bug for version 3.4.1，or provide a release version

This is included in  3.4.2 release : https://github.com/apache/cxf/tree/cxf-3.4.2

how to slove the bug for version 3.4.1，or provide a release version

This is included in  3.4.2 release : https://github.com/apache/cxf/tree/cxf-3.4.2


v8 Localization

Mekanism v8 needs a new round of localization updates - quite a bit has been added.

Russian is done.
@Sakarias-Longhorn, @Mr-tanaka3, @al-myr, @puyo061, @Mrkwtkr, @mymagadsl, mind providing updated translations? :)

@Vexatos, we could also use a German translation.

@Mr-tanaka3, @Mrkwtkr and everyone else, make sure you do the changes on the development branch.

I'm on it!
I'm quite busy right now, so it might take a day or two.

Also calling @TheVikingWarrior and @DragonsLover it might take more time for your translations but you might be interested in it. I'll also send another PR with Russian update today.

Will PR a Norwegian translation soon.

@Adaptivity It's a German word, just don't translate it, pretend it was a scientific name.

Closing, now that the brunt of this is done.


Fix server 2016 crash

This change will export the __USE_MINGW_ANSI_STDIO macro for MINGW users. This will prevent older msvcrt.dll users from having crashes when logging size_t/ssize_t along with strings

I think it would be better to set it at CMAKE_C_FLAGS level


Redirect / Create Tenant Job

Hi,
First off great package really enjoying using it :) 👍
I've just hit a roadblock trying to implement the Redirect Auth Login code from here -> https://github.com/stancl/tenancy/issues/194#issuecomment-552500495
I keep getting this error:
Argument 1 passed to App\Providers\AfterCreatingTenant::__construct() must be an instance of Stancl\Tenancy\Tenant or null, instance of Illuminate\Foundation\Application given, called in /Users/jake/Sites/menu/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 208
app/providers/AfterCreatingTenant.php
namespace App\Providers;

use App\User;
use Stancl\Tenancy\Tenant;

class AfterCreatingTenant
{

    /**
     * AfterCreatingTenant constructor.
     * @param mixed|Tenant|null $getTenant
     */
    public function __construct(?\Stancl\Tenancy\Tenant $getTenant)
    {
        $tenant = tenancy()->getTenant('id');

        $tenant->run(function ($tenant) {
            User::create(['name' => $tenant->admin_fullname, 'email' => $tenant->email, 'password' => $tenant->password, 'admin' => true]);
        });

        $tenant->deleteKey('admin_fullname');
        $tenant->set('initial_migration_complete', true);
    }
}

Any help would be awesome,
Thanks Jake.

The constructor should inject the Tenant and store its id in a $tenantId property.
Then the handle() method should do what you see in the comment for the AfterCreatingTenant job https://github.com/stancl/tenancy/issues/194#issuecomment-552500495

@stancl Thanks for getting back :)
I think I'm being dumb with figuring this out.
I'm now getting this issue:
Argument 1 passed to Stancl\Tenancy\TenantManager::find() must be of the type string, null given, called in /Users/jakehenshall/Sites/menu/app/Providers/AfterCreatingTenant.php on line 24
app/providers/AfterCreatingTenant.php

namespace App\Providers;

use App\User;
use Illuminate\Support\ServiceProvider;
use Stancl\Tenancy\Tenant;
use Stancl\Tenancy\TenantManager;

class AfterCreatingTenant extends ServiceProvider
{
    public $tenantId;

    public function register()
    {
    }

    public function boot()
    {
    }

    public function __construct($id)
    {
        $tenant = tenancy()->find($this->tenantId);

        $tenant->run(function ($tenant) {
            User::create(['name' => $tenant->admin_fullname, 'email' => $tenant->email, 'password' => $tenant->password, 'admin' => true]);
        });

        $tenant->deleteKey('admin_fullname');
        $tenant->set('initial_migration_complete', true);
    }
}

`

Thanks Jake.

AfterCreatingTenant should be a job, not a Service Provider. The constructor should accept a Tenant and store its id. The handle() method should do the actual logic.
<?php

namespace App\Jobs;

use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Stancl\Tenancy\Tenant;

class AfterCreatingTenant implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /** @var string */
    protected $tenantId;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(Tenant $tenant)
    {
        $this->tenantId = $tenant->id;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        $tenant = tenancy()->find($this->tenantId);

        $tenant->run(function ($tenant) {
            User::create(['name' => $tenant->admin_fullname, 'email' => $tenant->email, 'password' => $tenant->password, 'admin' => true]);
        });

        $tenant->deleteKey('admin_fullname');
        $tenant->set('initial_migration_complete', true);
    }
}

@stancl Thanks for providing that example, your time and also help on this,
I've now created the job file.
but I now get this issue.
Argument 1 passed to App\Providers\AppServiceProvider::__construct() must be an instance of Stancl\Tenancy\Tenant, instance of Illuminate\Foundation\Application given, called in /Users/jakehenshall/Sites/menu/vendor/laravel/framework/src/Illuminate/Foundation/ProviderRepository.php on line 208
app/providers/AppServiceProvider.php
namespace App\Providers;

use App\Jobs\AfterCreatingTenant;
use App\User;
use Illuminate\Support\ServiceProvider;
use Stancl\Tenancy\Tenant;
use Stancl\Tenancy\TenantManager;

class AppServiceProvider extends ServiceProvider
{

    public function __construct(Tenant $tenant)
    {
        tenancy()->hook('database.creating', function (TenantManager $m, string $db, Tenant $tenant) {
            return [
                new AfterCreatingTenant($tenant->id)
            ];
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register(): void
    {
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(): void
    {
    }
}

What are you doing with the service providers? Why are you adding an argument to the construct method? You aren't even supposed to use constructors in service providers.
Paste the code in your boot() method and don't add any arguments to the method.

@stancl Sorry copied the complete wrong code into the comment please ignore that.
I get this issue.
Argument 1 passed to App\Jobs\AfterCreatingTenant::__construct() must be an instance of Stancl\Tenancy\Tenant, string given, called in /Users/jakehenshall/Sites/menu/app/Providers/AppServiceProvider.php on line 31

Show me your AppServiceProvider and AfterCreatingTenant.

@stancl
app/Providers/AppServiceProvider.php
namespace App\Providers;

use App\Jobs\AfterCreatingTenant;
use Illuminate\Support\ServiceProvider;
use Stancl\Tenancy\Tenant;
use Stancl\Tenancy\TenantManager;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register(): void
    {
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot(): void
    {
        Tenancy::hook('database.creating', function (TenantManager $m, string $db, Tenant $tenant) {
            return [
                new AfterCreatingTenant($tenant->id)
            ];
        });
    }
}

app/Jobs/AfterCreatingTenant.php
namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Stancl\Tenancy\Tenant;

class AfterCreatingTenant implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    /** @var string */
    protected $tenantId;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(Tenant $tenant)
    {
        $this->tenantId = $tenant->id;
    }

    /**
     * Execute the job.
     *
     * @return void
     * @throws \Stancl\Tenancy\Exceptions\TenantCouldNotBeIdentifiedException
     */
    public function handle()
    {
        $tenant = tenancy()->find($this->tenantId);

        $tenant->run(function ($tenant) {
            User::create(['name' => $tenant->admin_fullname, 'email' => $tenant->email, 'password' => $tenant->password, 'admin' => true]);
        });

        $tenant->deleteKey('admin_fullname');
        $tenant->set('initial_migration_complete', true);
    }
}

Your constructor accepts a Tenant object but your hook passes a string - the tenant's id.
Make it consistent.


Integrate iCloud into testsuite

Although calendar sync seemed to work fine, there have been some problems with contacts synchronization to iCloud. They're all fixed, but testing against iCloud still would be nice.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/6952829-integrate-icloud-into-testsuite?utm_campaign=plugin&utm_content=tracker%2F574345&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F574345&utm_medium=issues&utm_source=github).

iCloud doesn't really support the way vdirsyncer currently does collection creation, neither standards-conforming extended MKCOL nor MKCALENDAR works.
iOS usees MKCALENDAR, and the request looks fairly similar to what I've tried.

Trying to switch to MKCALENDAR to accommodate iCloud tripped up ownCloud, see https://bugs.php.net/bug.php?id=69655 and https://github.com/fruux/sabre-dav/issues/603

@geier Somewhere in the khal issue tracker you talked about "Apple developer relations". How does this work?

You file a bug in the shittest bug tracker the world has seen since the
early nineties and at some undefined time in the future your bug gets
marked as duplicate or won't fix.
Quoting Markus Unterwaditzer (2016-04-01 00:50:38)

@geier Somewhere in the khal issue tracker you talked about "Apple developer relations". How does this work?

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/pimutils/vdirsyncer/issues/149#issuecomment-204162562

cool, cool.
I thought about having iCloud in CI, but without proper MKCOL it won't work.

the url is http://bugreport.apple.com
Quoting Christian Geier (2016-04-01 00:57:10)

You file a bug in the shittest bug tracker the world has seen since the
early nineties and at some undefined time in the future your bug gets
marked as duplicate or won't fix.
Quoting Markus Unterwaditzer (2016-04-01 00:50:38)

@geier Somewhere in the khal issue tracker you talked about "Apple developer relations". How does this work?

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/pimutils/vdirsyncer/issues/149#issuecomment-204162562

That asscancer again! Everytime I try to log in it redirects me back to the login page.

In the case of the ill-defined VTIMEZONE they actually claim to have
fixed the problem, as I have no icloud account I cannot test it though.
Quoting Christian Geier (2016-04-01 00:59:18)

the url is http://bugreport.apple.com
Quoting Christian Geier (2016-04-01 00:57:10)

You file a bug in the shittest bug tracker the world has seen since the
early nineties and at some undefined time in the future your bug gets
marked as duplicate or won't fix.
Quoting Markus Unterwaditzer (2016-04-01 00:50:38)

@geier Somewhere in the khal issue tracker you talked about "Apple developer relations". How does this work?

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/pimutils/vdirsyncer/issues/149#issuecomment-204162562


x/build/internal/task: factor out twitter client creation to caller

Currently, the task package has been responsible for implicitly fetching secrets from environment, and creating a client.
CL 382935 factors out those secrets to be provided explicitly to the task functions by their caller.
We want to take another code transformation step that factors out the client creation out of the task package, and make it a responsibility of the caller. In the case of tweet task functions, they're responsible for taking care of authentication (i.e., using OAuth1 to be able to use Twitter's standard API v1.1), so this would be factored out as well. For tests and "dry run" mode of relui, mocks/fakes implementing the same interface would be used instead.
This is the tracking issue for doing so, which involves the following effective change to task.ExternalConfig:
-// TwitterAPI holds Twitter API credentials that
-// can be used to post a tweet.
-TwitterAPI secret.TwitterCredentials
+// TwitterClient can be used to post a tweet.
+TwitterClient interface {
+	// PostTweet posts a tweet with the given text and PNG image,
+	// both of which must be non-empty, and returns the tweet URL.
+	//
+	// twitter.ErrTweetTooLong error is returned if posting fails
+	// due to the tweet text length exceeding Twitter's limit.
+	PostTweet(text string, imagePNG []byte) (tweetURL string, _ error)
+}

Once this is done for all other external services, the DryRun bool will stop being needed, and the ExternalConfig struct can go away in favor of passing the needed clients to respective task functions.
CC @golang/release.

I think we're in a good state here now after the 2 CLs above, and I'll call this done.


remove travis

I didn't realize how many different CI/CD configs were already present here.  I already have the required services configured for wercker and have tests being run, given that travis is basically just installing the app I'm going to drop it so we are not triggering three builds everytime we merge a pr

This was successfully done, a new commit needs to be pushed to next for this to be evident.


tests: Add the description for hsr and interface admin state integration tests

description: Configure the hsr interface hsr0, set the config port to eth1 and eth2, set the hsr multicast spec to 40, set the hsr protocol to prp
interfaces:
- name: hsr0
  type: hsr
  state: up
  hsr:
    port1: eth1
    port2: eth2
    multicast-spec: 40
    protocol: prp
description: Delete the hsr interface hsr0
interfaces:
- name: hsr0
  type: hsr
  state: absent
description: Set the mtu of the ethernet device eth1 to 1400
interfaces:
- name: eth1
  type: ethernet
  state: up
  mtu: 1400
description: Delete the ethernet interface eth1
interfaces:
- name: eth1
  type: ethernet
  state: absent
description: Bring down the ethernet interface eth1
interfaces:
- name: eth1
  type: ethernet
  state: down
description: Set down the ethernet interface eth1
interfaces: []
description: Bring down the eth1 interface
interfaces:
- name: eth1
  type: ethernet
  state: down


Change "pip install faststream[test]" to "pip install faststream[testing]" in index page

User shouldn't install [test] or [testing] at all. This is the our repo private dependencies, not public one
Tests are already available in the regular distribution


selectric-change event not fired on mobile

Hello,
my config looks like this
$('select.filter-select');
   .selectric({
       disableOnMobile: false,
       onInit: () => {
           $('.filter-box__content').removeClass('blurred');
           // TODO - If is mobile remove first option from selects
       },
       onBeforeOpen: () => {
           const items = $('.selectric-items li');
           items.removeClass('selected');
           items.removeClass('highlighted');
       },
       onOpen: () => {
           const items = $('.selectric-items li');
           items.removeClass('selected');
           items.removeClass('highlighted');
       },
       labelBuilder: (curItem) => {
           const outerSelect = $(curItem.element[0].parentElement);
           return outerSelect.data('filter');
       }
   .on('selectric-change', (event, element, selectric) => {
       $('.mapudo-indicator').show();
       window.location.href = selectric.items[selectric.state.selectedIdx].value;
   });

When I now open my page on mobile, open a select box and select an entry I would hope that the selectric-change event is fired, but in fact it is not.
If I use nativeOnMobile: false it is fired, however, I would like for the user to have the default select box behavior on mobile. Do I need to manually bind an change event on the select boxes as well for mobile to work? Is this the expected behavior?

Hi, I don't get how you worked around the issue. Could you please show me how to do it?
Thanks

@jeffceriello What I did was simply listening to the change event of the select box.


4x semantic resolution: Reduce tile size to 256 (16x semantic resolution with  128 tile size, and patch size to 16)

We currently use an image tile size of 512x512, which defines the area of a semantic embedding. That means a 262k:1 ratio of spatial to semantic area information.
We reduce 262k pixels  (512x512 pixels) to a single semantic.
It's unclear how many pixels are needed for the minimum semantic, but something like 64x64 pixels, or 4k pixels, seems more appropriate.
We cannot reduce the image tile too much, or the self-attention patches of the transformers will not have enough information. Nor we will have enough patches so that masking 25% retains enough semantic for the reconstruction.
Clearly there is minimum bound given by the self-attention patch, and number of patches, and a maximum bound by the usable user-embedding being as small as possible
The actual answer is to sweep with different patch sizes and tilesizes, and see performance, but I don't think we are there yet.
v0 has patch_size=32x32 and tile_size=512x512, so num_patches=16x16=256
For the moment I propose we retain the patch_size as 32x32 but decrease tile_size to 256 (num_patches=8x8). We will have  1/4 of the self-attention patches to train on, but we will also have 1/4 semantic resolution.
Looking at the samples below, may be even path_size=16 and image_size 128.
Downstream applications with coarser chipsizes or resolutions are still doable, e.g. averaging embeddings, but we currently cannot provide semantics smaller than 512x512 pixels.
As it currently is, a Sentinel 10m^2 resolution image provides 5km^2 semantics. It seems excessively coarse.

Rough areas: Red 512x512 is current semantic/image unit. Green is proposed 256x256. Blue is patch unit 32x32.

Closeup to the patch_size unit of ~32pixels to show the self-attention unit of semantics. We might even want to go with a patch size of 16.

I like the thought behind this, but I have a suggestion on ow to approach it slightly differently:

Let's fix a pixel size for the model that makes most sense, maybe 256x256.
Input data at different resolutions, so that we input tiles to the model for each box in the image above, but with 256x256 pixels every time. I.e. just changing the resolution of the data, even if that means a bit over/under sampling when compared to the original
Like this the model will learn semantics at different scale, and will be able adapt accordingly depending on input. The critical contextual embedding here will be the "resolution" in meters of the image, which defines the scale.

Let's go with 256x256 for the image. We still need to figure out the right patch size, which right now is 32x32 which might be right.
I agree that giving it a different resolution is a great way to deal if smaller details. My concern is that at any resolution you are having a tile of size 512x512 times of that image resolution. I.e. sentinel at 10m yields a single embeddgin for 5km right now. It is not clear to me to what degree the semantic embedding conveys location within the image. E.g. we can cluster images with houses, but can we say what part of the image they are?
This is another reason I wanted to push for a single embedding per image on the Unet architecture, instead of one embedding per patch. Forcing the Unet to reduce the many patch embeddgins into a single image embedding will force the encoding of location within the image, and prevent us from making the rough approximation of making an average. (Tracked here #107 )

I believe this is being done. @yellowcap to confirm and close.


Allow site key to be configured by environment

See https://github.com/cloudflare/wrangler/pull/1573

hi @oliverpool — we've migrated our content to a new repo https://github.com/cloudflare/cloudflare-docs, so going to close this.


edited_message not handled

Expected behavior
edited_message must be handled.
Actual behavior
edited_message not handled.
To Reproduce
just edit an existing message.
dispatch { message {} } won't work.
Fast solution
Added_handling_edited_message_patch.txt

I was helped by simply putting ktor in build.gradle :)


PK-4: Add userID in r.Context after successful login. close #4

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

13 of 15 (86.67%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+1.9%) to 47.923%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

handlers.go
0
2
0.0%

Totals

Change from base Build<PHONE_NUMBER>8:
1.9%

Covered Lines:
150

Relevant Lines:
313

💛  - Coveralls


Improve symlink handling and preflight

This PR:

Adds .gitattributes to allow checking out directory symlinks pointing to submodules.
Fix sdist to pass preflight check. sdist does not contain third_party.

/test mini


wasm plugin config update make envoy memory leak

Title: wasm plugin config update make envoy memory leak
Description:

I am updating the wasm configuration in envoyfilter and saving the configuration by parsing it in the on_configure phase of wasm. But when I pass a large configuration and constantly update it, I found that the memory of envoy keeps increasing and is not reclaimed.

envoyfilter.yaml:
wasm-old-envoyfilter.txt
rust wasm code about on_configure, and memory fluctuations and upward trends are more severe in the wasm written by tinygo:
impl RootContext for HttpHeadersRoot {
    fn get_type(&self) -> Option<ContextType> {
        Some(ContextType::HttpContext)
    }

    fn on_configure(&mut self, _: usize) -> bool {
        if let Some(config_bytes) = self.get_plugin_configuration() {
            if str::from_utf8(&config_bytes).is_err() {
                return false;
            }
            let t: PluginConfiguration =
                serde_json::from_str(str::from_utf8(&config_bytes).unwrap()).unwrap();
            self.configuration = Rc::new(t);
            return true;
        } else {
            return false;
        }
    }

    fn create_http_context(&self, _: u32) -> Option<Box<dyn HttpContext>> {
        Some(Box::new(HttpHeaders {
            configuration: Rc::clone(&self.configuration),
        }))
    }
}

Repro steps:

Apply the envoyfilter yaml, then constantly update this plugin configuration to have it deployed to wasm.

Versions:
Any version.

Wasm is latched to requests - are you sure you don't have any draining / long requests for old configurations.
Can you share wasm-related stats?
CC @PiotrSikora @mpwarres

I'm not very good at envoy, can you tell me how to get stats about wasm related data?

Query prometheus endpoint (:15000/stats/prometheus on istio) and search for strings with "wasm".

Query prometheus endpoint (:15000/stats/prometheus on istio) and search for strings with "wasm".

Probably these, is there anything missing?
TYPE envoy_wasm_envoy_wasm_runtime_null_created counter
envoy_wasm_envoy_wasm_runtime_null_created{} 25
TYPE envoy_wasm_envoy_wasm_runtime_v8_created counter
envoy_wasm_envoy_wasm_runtime_v8_created{} 1450
TYPE envoy_wasm_remote_load_cache_hits counter
envoy_wasm_remote_load_cache_hits{} 0
TYPE envoy_wasm_remote_load_cache_misses counter
envoy_wasm_remote_load_cache_misses{} 0
TYPE envoy_wasm_remote_load_cache_negative_hits counter
envoy_wasm_remote_load_cache_negative_hits{} 0
TYPE envoy_wasm_remote_load_fetch_failures counter
envoy_wasm_remote_load_fetch_failures{} 0
TYPE envoy_wasm_remote_load_fetch_successes counter
envoy_wasm_remote_load_fetch_successes{} 0
TYPE metric_cache_count counter
metric_cache_count{cache="hit",wasm_filter="stats_filter"} 79900
metric_cache_count{cache="miss",wasm_filter="stats_filter"} 16
TYPE envoy_wasm_envoy_wasm_runtime_null_active gauge
envoy_wasm_envoy_wasm_runtime_null_active{} 28
TYPE envoy_wasm_envoy_wasm_runtime_v8_active gauge
envoy_wasm_envoy_wasm_runtime_v8_active{} 40
TYPE envoy_wasm_remote_load_cache_entries gauge
envoy_wasm_remote_load_cache_entries{} 0

I made an attempt to dynamically obtain a large configuration through dispatch_http_call and found that the memory issue was significantly improved. However, it also led to other problems, such as this issue #27311.

@kyessenov Any clue here?

Wasm is latched to requests - are you sure you don't have any draining / long requests for old configurations. Can you share wasm-related stats?

This could potentially be a leak of the configuration string and/or RootContext, which are not latched to a single request.
Perhaps this fixes it? https://github.com/proxy-wasm/proxy-wasm-cpp-host/pull/357

Wasm is latched to requests - are you sure you don't have any draining / long requests for old configurations. Can you share wasm-related stats?

This could potentially be a leak of the configuration string and/or RootContext, which are not latched to a single request.
Perhaps this fixes it? proxy-wasm/proxy-wasm-cpp-host#357

Does the rust sdk have this problem?

Wasm is latched to requests - are you sure you don't have any draining / long requests for old configurations. Can you share wasm-related stats?

This could potentially be a leak of the configuration string and/or RootContext, which are not latched to a single request.
Perhaps this fixes it? proxy-wasm/proxy-wasm-cpp-host#357

I am now using a new approach where I dynamically load the required configuration through the tick function inside the Wasm plugin, so the Wasm plugin config itself doesn't need to be updated every time by EnvoyFIlter. However, I noticed that the memory of the Istio-proxy still increases. I am puzzled, and I wonder if this PR can fix this issue?


DeviceList: fix iOS scroll refresh bug

Would prefer to remove the PullDownReload component so that this workaround isn't required everywhere, but Safari removes the native pull down to refresh gesture for PWAs..

We don't really need the pull down to refresh inside the iOS PWA. I only asked for it because we previously had a hard time refreshing state (particularly the routes) appropriately, e.g. when the PWA was opened. If we just fix that, we can remove the pull down.


Move ember-decorators to dependencies

Oh my... 🤦♂
Need to cut a new release after merging this.

Published 3.0.0-rc.5!


Options for all methods

Hello and thank you for your work.
A suggestion : it would be nice to have an options second parameter for all methods.
The first option that comes to mind for all methods would be the possibility to prevent recursion or set a max number of recursions.
Thank you.

I've considered this, but realized that avoiding recursion can be done by simply using node's built-in methods with a single callback.  This library was not meant to be a replacement for node's already robust file system methods, but to reduce the complexity of recursing through multiple levels of subdirs.  That being said, I suppose if there was enough requests for this and/or some contribution to add it in a pull request (with tests) I might revisit this.  Thanks for your input though. :)


Sample code for generating ECDSA key pair

Hello, where can I find some example code for generating an ECDSA kay pair (say P256, for instance) ?

You can find an example in my pkcs11-tester project here: https://github.com/qpernil/pkcs11-tester
See line 97 and on int Program.cs
You might need other attributes in the template depending on the pkcs11 library, but this works for me.

Thank you, I will give it a try soon.

Just checked in a bit neater examples


Changed Horror psychic and speed lightning

They no longer provide energy while not attached to a pokemon

Ideally they would not return any energy before they were attached but im not sure if that would bug out the game.

 HORROR_PSYCHIC_ENERGY_172

 SPEED_LIGHTNING_ENERGY_173


SqsIO.write input / construction of Sqs request

SqsIO.write should support arbitrary types T and be implemented in terms of a mapper function that converts T into an AWS request.
The current implementation of write as PTransform<PCollection<SendMessageRequest>, PDone> is a rather poor choice. It may requires an additional unnecessary serialization & deserialisation round. But even worse, the current SendMessageRequestCoder does not support any advanced configuration beyond queueUrl and messageBody and will silently drop it without even warning the user.
Imported from Jira BEAM-13416. Original Jira may contain additional context.
Reported by: mosche.

Obsolete, schemas support for AWS Pojos makes sure all fields are de/-serialized correctly


add NumberToString conversion map

useage:
type MyType<I extends number> = ... NumberToString[I]

@amir-arad how do you use this type? I'm trying to do the following but got some errors (ts v2.4.2)
import { StringEq } from '../src'

export type NumberToString = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']

// Type 'N' cannot be used to index type '["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]'
export type GetString<N extends number> = NumberToString[N]

// Type 'A' cannot be used to index type '["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]'.
// Type 'B' cannot be used to index type '["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]'.
export type NumberEq<A extends number, B extends number> = StringEq<NumberToString[A], NumberToString[B]>

I use it percisely to avoid such errors in different scenarios :)
declare type THListLengthNum<L extends THList> = {
    true: 0;
    false: Increment[THListLengthNum<THListTail<L>>];
}[THListIsTHNil<L>];
type Func<A extends THList, ...> = {
0:...
1:...
2:...
...
}[NumberToString[THListLengthNum<A>]];

Wow, I love the workaround. That hadn't occurred to me so far.
I guess then its opposite StringToNumber may serve to resolve the same error for this one.
Anyway, I'd filed this issue earlier at https://github.com/Microsoft/TypeScript/issues/15768.


INT B-18313 Multi-Moves Profile Validation & Create a Move Btn Functionality INTEGRATION

INTEGRATION
Agility ticket
Summary
As we transition to allowing for multiple moves, we need to allow for the customer to validate their profile prior to starting a new move. If the service member does not have a previous move, then there's no need for them to validate their profile - technically it should already be current.
I went ahead and leveraged the useLocation hook to pass around a state value (needsToVerifyProfile) when a user is validating their profile. At first I was using searchParams but it felt a little clunky and was a lot harder to test, so I transitioned to using local state and passing that state to the relevant components.
This PR does the following:

updates profile links to pass around the state object holding the current value of needsToVerifyProfile
based on that state, specifically in the Profile component, conditional rendering will occur of links and an alert banner
updated tests

How to test Scenario 1 (previous moves)

Access MM as a customer
Once logged in, put in http://milmovelocal:3000/moves into the url
You'll see the multi move dashboard (currently using dummy/static data)
With default data, click on the Create a Move button
This will navigate the user to the profile page with an alert, a Create a Move button, and Return to Dashboard (instead of Return to Move)
Validate any data/cancel any data and the alert/button/dashboard link should remain
Once you're finished, click the Create a Move button and you'll be navigated to the current home page

How to test Scenario 2 (no previous moves)

Access MM as a customer
Once logged in, put in http://milmovelocal:3000/moves?moveData=noMoves into the url
You'll see the multi move dashboard with no current or previous moves
Click on the Create a Move button
This will navigate the user to the current home page since there is no previous data to validate

Screenshots

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'm not sure why they can't edit that

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'll make these changes. The user should be able to edit that page if they have orders uploaded so I'll just make that consideration when implementing this.

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'm not sure why they can't edit that

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'll make these changes. The user should be able to edit that page if they have orders uploaded so I'll just make that consideration when implementing this.

I think they can edit that section as long as the move is in a draft status, if I remember correctly but you may want to double check me on that

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'm not sure why they can't edit that

On the validation step, should the customer be able to edit their Service Info like Name, Branch, and Dod ID#? I can edit the Contact Info and Okta info but not Service info.
(The Pay grade and Current duty location fields are removed from the Service info section in B-18742 so they won't appear as blank in the future, they just won't appear)

I'll make these changes. The user should be able to edit that page if they have orders uploaded so I'll just make that consideration when implementing this.

I think they can edit that section as long as the move is in a draft status, if I remember correctly but you may want to double check me on that

That is correct. Just pushed the changes.


feat: Added Modal component

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Move benchmark driver doc into README

Used pandocs to convert rst file
Added converted README.md file to presto-benchmark-driver
Removed rst file
Removed mention of rst file in installation.rst

Looks like the md file renders ok in github
https://github.com/m57lyra/presto/tree/benchmark-driver-readme/presto-benchmark-driver

I am requesting review from @electrum to get this merged.

I also checked what the markdown renders in github and it looks good.


account for the possibility that save actions are not defined

WHY
BEFORE - What was wrong? What was happening before this PR?
This had been reported in gitter https://flareapp.io/share/dPbXE1A5#F62, but I recall that this had been reported here too, just can't find the issue.
I was not able to reproduce this, but some people reported that in devtools they get this error when creating a new model and previewing.
I just now created a new model, and a new migration in devtools and couldn't reproduce it, so it is possible that it's a race condition somewhere.
But since I've seen this error reported more than once, I think it's wise to assume that sometimes the save actions may be empty and account for that before using array_filter.
AFTER - What is happening after this PR?
We check for the possibility of save actions beeing undefined at that time and use an empty array to prevent errors in array_filter().
Is it a breaking change?
No I don't think so.
How can we test the before & after?
I was not able to reproduce the error, but if you are able, just test it again with this branch and you should get no errors.

A new inspection was created.


Apply filter parameters on 2D patches to remove empty patches

Checklist
GitHub

[x] I've given this PR a concise, self-descriptive, and meaningful title
[x] I've linked relevant issues in the PR body
[x] I've applied the relevant labels to this PR
[x] I've assigned a reviewer

PR contents

[x] I've consulted ivadomed's internal developer documentation to ensure my contribution is in line with any relevant design decisions
[x] I've added relevant tests for my contribution
[x] I've updated the relevant documentation for my changes, including argparse descriptions, docstrings, and ReadTheDocs tutorial pages

Description
This PR aims to apply filters on patches in addition to entire image to remove empty patches from dataset, as described in #979.
I added a PatchFilter class in loader/patch_filter.py (similar to SliceFilter) with 3 filters on a patch basis:
filter_empty_mask
filter_absent_class
filter_empty_input
contrary to "slice" filters, the "patch" filters only apply at training time (training and validation) as we don't want to remove patches for testing or segment.
I updated the documentation accordingly here, added a test, and updated doctrings for SliceFilter.
The SliceFilter behavior remains unchanged except for the Default value filter_empty_mask=False, now harmonized with the default value from the config file.
Linked issues
Fixes #979

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

32 of 40 (80.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.05%) to 70.824%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

ivadomed/loader/slice_filter.py
21
29
72.41%

Totals

Change from base Build<PHONE_NUMBER>:
0.05%

Covered Lines:
4333

Relevant Lines:
6118

💛  - Coveralls

This PR is ready for review. See comment above for description.
Questions:
The documentation and docstrings do not indicate the default behavior for the slice filters.
In addition, the default behavior is different between config_default.json and the SliceFilter init for filter_empty_mask.

config_default.json:

        "slice_filter_params": {
            "filter_empty_mask": false,
            "filter_empty_input": true
        },

SliceFilter init:

    def __init__(self, filter_empty_mask=True,
                 filter_empty_input=True,
                 ...

Do we want to document the default behavior of the filters?
If yes, what should be the default behavior of filter_empty_mask?
@charleygros, @andreanne-lemay, maybe you have some insights on this?
Thanks!

This PR is ready for review. See comment above for description.

Sorry for the<PHONE_NUMBER> delay.

The documentation and docstrings do not indicate the default behavior for the slice filters.

I agree, it should be documented: IMO, the default behaviour should be: "filter_empty_input": true and "filter_empty_mask": false.

In addition, the default behavior is different between config_default.json and the SliceFilter init for filter_empty_mask.

Whooops.. yea so IMO, we should correct this and follow the values currently used in config_default.json.

@dyt811
I revisited this PR and chose to split the SliceFilter and PatchFilter in two separate classes. It is much easier to understand the code logic (no nested if loops) and will be easier to maintain as well.
I also corrected all the docstrings and documentation issues raised in the comments.
I went with PatchFilter for now because I'm still unsure about the "right" wording. I will be able to change it afterwards once we are settled.
My issue with Selector instead of Filter is that intuitively, I would think it selects or "keeps" some patches based on a condition, whereas in reality it's the opposite, it "removes" patches (same goes for SliceFilter).
And the params in the config file are for example:
"filter_empty_mask": false,
"filter_empty_input": true

If we change them for select_empty_something, it's even more confusing because true means they are not selected and vice-versa.
We would need to replace Filter by a synonym like Remove or Discard.
If we want Select, then we need to change the implementation and make it compatible with the previous Filter params, which may not be trivial.
Thoughts?

We would need to replace Filter by a synonym like Remove or Discard. If we want Select, then we need to change the implementation and make it compatible with the previous Filter params, which may not be trivial.
Thoughts?

Yeah, I think we totally don't need to worry about it in this PR yet. Default values certainly clarified the expected behavior a lot more so great change there.
I reviewed all the latest change as of 2021-12-31T175842EST. I don't have any issues with them but since I am not exactly the subject expertise, I am not sure if I should approve it or not. since it is still in draft. Let me know if I should pull it down and test it further, From all the code changes so far, I think it is more readable than before so great job there!
A lot of the other concerns raised, I think can be noted in other future refactoring PRs.

Thank you @dyt811 for your help on this PR.
I addressed all your comments and the PR is now ready for a final review.

Thank you @dyt811 for the review and for your patience with this PR.

I mentioned a few points for discussion more as food for thoughts. I do not think they are mandatorily enforced for the PR acceptance.

As mentioned in https://github.com/ivadomed/ivadomed/pull/980#discussion_r792076016 , I would be ready to merge this PR but we may want to take care of renaming before. Let me know your thoughts.

We will likely have to make a eventual 3.0 release based on this since I believe these two parameters are mandatory now going forward, if I am reading correctly?

I don't think a new major release is necessary. I updated the config_default.json so if the parameters are missing in the config file, they are added by the config manager. I don't see this new feature as more important than any other and I would only release a 2.9.3 version eventually when we need it for SCT or ADS.
(I have another draft PR (https://github.com/ivadomed/ivadomed/pull/1050) that will be necessary for ADS, so I will need a new release soon anyway).

Hi @dyt811,
Just for your information, I was able to have all the CI tests passing on the 2nd attempt.
As I mentioned in a previous comment, I discussed with Julien and we agreed to merge this PR as is and take care of the renaming/refactoring afterwards with issue #997.
Following this merge, we will need a patch release (2.9.3) for integration with ADS.


Websocket ratchet server stop after a while and gives warning

The warning:
PHP Warning:  Error while sending QUERY packet
Note:There was no activity on the website

Hi, I think your problem is related to the maximum waiting time of your database (I guess it's MySQL :)
You can try increasing the wait_timeout for the database, but this is not an eternal solution, as it has a maximum wait time limit.
For solve this problem I reconnect to my DB every minute(depends on your settings), sample code:
use App\Models\Message;
use Ratchet\App;
use React\EventLoop\Factory;

$loop = Factory::create();
$server = new App('localhost', 8080, '<IP_ADDRESS>', $loop);
$server->route('/chat', new Chat, ['*']);
$loop->addPeriodicTimer(60, function() use ($DB) {
    $DB->reconnect(); // For example, change to your reconnection logic
});
$server->run();

Are you using https://github.com/friends-of-reactphp/mysql to connect with the database?

I think I'm having a similar issue. Could I get a short explanation of why the alternate mysql connector is recommended?

@nivshah Well in short, the build in Database connectors in PHP don't support non-blocking, the connector I linked is created specifically to support doing MySQL queries in non-blocking environments like Ratchet