How to override velocities passed to the advection kernels

(My example is for adding Stokes drift to the ocean velocities used for advecting particles.  The general idea of combining velocity fields in a non-invasive way is very interesting for various applications, though.)
We were working on the inclusion of Stokes drift. Ideally, we'd just make sure that the velocities used for advection are U_ocean + U_stokes. The following is a first stab at sub-classing FieldSet to make FieldSet.UV return a sum of (U, V) and the Stokes-drift velocities:
from parcels import FieldSet, Field
import numpy as np

class StokesFieldSet(FieldSet):
    """FieldSet with additional stokes velocities.

    :param U: :class:`parcels.field.Field` object for zonal velocity component
    :param V: :class:`parcels.field.Field` object for meridional velocity component
    :param US: :class:`parcels.field.Field` object for zonal stokes velocity component
    :param VS: :class:`parcels.field.Field` object for meridional stokes velocity component
    :param fields: Dictionary of additional :class:`parcels.field.Field` objects

    """
    def __init__(self, U, V, US=None, VS=None, fields={}):
        super(StokesFieldSet, self).__init__(U, V, fields=fields)

        if US:
            self.add_field(US)
        if VS:
            self.add_field(VS)

        self._UV = self.UV

        UV = Field('UV', None)
        UV.fieldset = self
        self.UV = UV
        self.UV.getUV = self.getUV_with_stokes

    def getUV_with_stokes(self, time, x, y, z):
        _U, _V = self._UV[time, x, y, z]
        if "US" in [f.name for f in self.fields]:
            _U = _U + self.US[time, x, y, z]
        if "VS" in [f.name for f in self.fields]:
            _V = _V + self.VS[time, x, y, z]
        return (_U, _V)

def test_stokes_fieldset():
    np.random.seed(1)

    xdim = 2
    ydim = 2

    lon = np.linspace(-20, 20, xdim, dtype=np.float32)
    lat = np.linspace(-20, 20, ydim, dtype=np.float32)

    dimensions = {'lon': lon, 'lat': lat}

    U = Field('U', np.random.randn(ydim, xdim), lon=lon, lat=lat)
    V = Field('V', np.random.randn(ydim, xdim), lon=lon, lat=lat)
    US = Field('US', np.random.randn(ydim, xdim), lon=lon, lat=lat)
    VS = Field('VS', np.random.randn(ydim, xdim), lon=lon, lat=lat)

    fs = FieldSet(U, V, fields={"US": US, "VS": VS})
    sfs = StokesFieldSet(U, V, US=US, VS=VS)

    assert fs.U[1, 2, 3, 4] == sfs.U[1, 2, 3, 4]
    assert fs.V[1, 2, 3, 4] == sfs.V[1, 2, 3, 4]

    assert fs.US[1, 2, 3, 4] == sfs.US[1, 2, 3, 4]
    assert fs.VS[1, 2, 3, 4] == sfs.VS[1, 2, 3, 4]

    assert fs.UV[1, 2, 3, 4][0] + fs.US[1, 2, 3, 4] == sfs.UV[1, 2, 3, 4][0]
    assert fs.UV[1, 2, 3, 4][1] + fs.VS[1, 2, 3, 4] == sfs.UV[1, 2, 3, 4][1]

test_stokes_fieldset()

The test is passing, which means that for the new class StokesFieldSet, the returned velocities are a sum of the ocean velocities and Stokes drift.
Using this class to create a fieldset and integrating trajectories fails if we use JIT. If I understand http://www.oceanparcels.org/#writing-parcels-kernels correctly, we cannot expect the code generator for the compiled parts of Parcels to handle too general Python code.
I did not dive into the JIT-details of Parcels.  Before doing so: Do you think overriding Field or FieldSet is a viable option at all?

cc: @sruehs

A very interesting approach, @willirath. However, I'm not surprised it doesn't work in JIT, as the compiler indeed really covers only a very small subset of all python commands.
A completely different approach is to rewrite the AdvectionRK4 kernel to use both fieldset.UV and fieldset.UVstokes. E.g.
(u1o, v1o) = fieldset.UV[time, particle.lon, particle.lat, particle.depth]
(u1s, v1s) = fieldset.UVstokes[time, particle.lon, particle.lat, particle.depth]
(u1, v1) = (u1o+u1s, v1o+v1s)

The big advantage of this is that Stokes and ocean currents don't need to be on the same grid then. In many cases, the Stokes flow is computed on a completely different, often coarser, grid (also in your case)?
If you want to take this approach, the trick is to create a new FieldSet fieldset.UVstokes. This may not be trivial either, however.
If you're working on a Rectilinear grid (i.e. longitudes and latitudes only 1D vectors, so that no rotation is required), then you can simply do (u1s, v1s) = (fieldset.Ustokes[time, particle.lon, particle.lat, particle.depth], fieldset.Vstokes[time, particle.lon, particle.lat, particle.depth]) where fieldset.Ustokes and fieldset.Vstokes are fields with the Stokes flow. But on a Curvilinear grid, you will need to rotate, and I'll have to think about how best to do that. @delandmeterp, do you have any ideas?
By the way, if the ocean and stokes data are on the same grid, can't you simply add them up before doing pset.execute()? I.e. something like fieldset.U.data += fieldset.Ustokes.data and similar for the V fields?

To summarise:

On curvilinear grids, UV interpolation requires the existence of fields called cosU, sinU, cosV, sinV, that rotate the velocity to the correct zonal/meridional directions. cosU and sinU are defined on the same grid as U, and so on for field V

We followed this approach because usually, curvi-grid based models store the U, V velocities on still aligned to their grid

For the moment, only UV can be rotated this way. We could think about also rotating UVstokes the same way, but using which rotation fields?

To think about what to do, we should have a better idea of what are the Stokes drift data.
Are the velocities alignes in zonal/meridional or not?
 (If they are small, it would be easier to rotate correctly the data in some prepro, before any interpolation.)
Is it a feature we want to deal within Parcels, or is it something we want to treat with a kernel such as
 def stokesKernel(...):             cU = fieldset.cosUstokes[time, x, y, z]             sU = fieldset.sinUstokes[time, x, y, z]             cV = fieldset.cosVstokes[time, x, y, z]             sV = fieldset.sinVstokes[time, x, y, z]             zonal = U * cU - V * sV             meridional = U * sU + V * cV             p.lon += zonal * dt             p.lat += meridional * dt
It is important to have in mind that the code hereabove is more or less what is done with this fieldset.UV. The UV interpolation is not faster, it only enables to write much shorter the advectionRK4 kernel itself.
So to conclude, depending on the data you have (size, grid equal or not to UV, curvi or recti) and how much it should be interpolated within parcels or within the scripts calling parcels, we have to design the solution!
Could you give us more information about those different points?
Thanks!

Thanks for these comments!  And thanks for pointing out that the rotation may have to be performed manually.
First of all:  For the moment, we'll probably just directly rewrite the RK4 kernel.  So there's no real urgency to come up with a general solution.  Having said that, it would be very helpful to have an easy way of superposing different velocity fields on different grids directly in Parcels.  Here's why I think this is the case:

It allows for much faster and cheaper setup of experiments. I also have things like U_mean_flow + U_meso_scale, or U_from_ocean_model + U_inertial_oscillation etc. in mind.

As far as I understand, fieldset.UV[...] just triggers IO for the very data necessary to interpolate the fields to the desired location.  This could make things very efficient at least for a moderate number of particles.

Having fieldset.UV return a superposition of velocity fields rather than adapting kernels limits the work necessary to maintain and debug the code: Testing that fieldset.UV in fact returns the correct data is much easier than making sure than checking for subtle bugs in, e.g., a modified version of AdvectionRK45.

I like these ideas yes.
I guess we would then need to have a way to label a field as U-like or something. Because note that there are also a lot of scalar fields (temperature, ssh, mixed_layer_depth) that shouldn't be rotated. And what if one grid is curvilinear and the other rectilinear? Then it becomes really tricky how to handle this.
Nevertheless, I agree that simply being able to add Fields, irrespective of their underlying grid, would be nice. Not in the next version, but certainly down the line before v2.0?

For the moment, the special treatment for UV is simply hardcoded in Parcels.
I think the solution for this new (great!) idea will be having a meta-Field UV, that is simply a list of different vector fields to superpose.
(We don't always want to simply superpose them. For example a particle located at the surface can typically follow the flow field + 2% of wind velocity, but this correction factor should be taken into account in field.set_scaling_factor, in the same way as for unit conversion)
Every vector field is also a list of two horizontal fields, plus potentially 4 rotation fields.
This should not be technically too difficult to do. When we come to that development, it would be good to work on it together, since it is important to have a practical application to test it!

This should not be technically too difficult to do. When we come to that development, it would be good to work on it together, since it is important to have a practical application to test it!

Then, let's leave it at this collection of ideas for now.  Count me in!

This has been implemented in #393 and is explained in the tutorial at http://nbviewer.jupyter.org/github/OceanParcels/parcels/blob/master/parcels/examples/tutorial_FieldLists.ipynb


how to deploy node js application using pm2 config

Hi @wellyshen,
Please help me.

Dear @kmrigendra, by the guides on the issue template, you should leave a question or issue or idea about the react-cool-starter. Not just leaving please help.
For such these question you can search and read about configs and do it by yourself or leave a question on Stack Overflow. you even can search on the closed issues. for example this issue.
This is is exactly like your desire. if I was in your place, definitely I would close this current issue.

@kmrigendra Close this issue due to @amerllica's suggestion. If it's really difficult to integrate PM with this starter that you can call for helping by re-open this issue.


cluster-roletemplate-sync runs excessively

This controller runs excessively and appears to be a good candidate to stop it from being a lifecycle and move it over to an owner reference relationship.
pkg/controllers/user/rbac/roletemplate_handler.go

rancher/rancher:master-head 2/11
These issues re: scalability are hard to reproduce without testing at scale, so focused on regressions via automation:

Deployed Rancher
Deployed multiple custom clusters
Ran automation smoke tests and long running tests for a total of ~400 tests
Automation runs succeeded with only a few known failures


Support Update Prompt in App Store / TestFlight builds

Describe the solution you'd like
App Center's in-app update feature is incredible for keeping testers always using the latest version of the app. We'd love to be able to have a similar mechanism to force update actual customers in either TestFlight or App Store. I understand that in-app update won't work because install has to be through the app store, but it would be super handy to pop up an alert and take user directly to TestFlight / app store page to update upon pressing "ok", or force a mandatory update as need be.
Describe alternatives you've considered
Building a custom micro-service that talks to the App Center API and figures out what's the latest build for a given install. This is quite a bit of work and also not re-usable for other developers using app center.
Additional context
Add any other context or screenshots about the feature request here.

Thanks for the feature request @tonyxiao! Tapping in @botatoes to take a further look on this.


Used Signing Configs for KeyStore

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 1

See the complete overview on Codacy


added MSVC_COMPILER_WINDOWS in VERSIONS to specify the exact compiler version to use under Windows.

This PR added the exact compiler version to use under Windows. This will be the version that oskar will use to compile the packages. The PR by itself does not change anything in ArangoDB, the correspsonding changes are in Oskar. No backport are planned for 3.9 or less.
Scope & Purpose
(Please describe the changes in this PR for reviewers, motivation, rationale - mandatory)

[ ] :hankey: Bugfix
[x] :pizza: New feature
[ ] :fire: Performance improvement
[ ] :hammer: Refactoring/simplification

Checklist

[ ] Tests

[ ] Regression tests
[ ] C++ Unit tests
[ ] integration tests
[ ] resilience tests

[x] :book: CHANGELOG entry made
[ ] :books: documentation written (release notes, API changes, ...)
[ ] Backports

[ ] Backport for 3.10: (Please link PR)
[ ] Backport for 3.9: (Please link PR)
[ ] Backport for 3.8: (Please link PR)

Related Information
(Please reference tickets / specification / other PRs etc)

[ ] Docs PR:
[ ] Enterprise PR:
[ ] GitHub issue / Jira ticket:
[ ] Design document:

https://jenkins01.arangodb.biz/view/PR/job/arangodb-matrix-pr/24034/


Fix new flake8 tests

Description

Update flake8 compliance
Motivation and Context

Flake8 started linting against stricter standards. This patch fixes the new ones.

E722 - bare except
E741 - ambiguous variable name
E742 - ambiguous class definition

Have you tested this? If so, how?

Travis will run.

Added test exclusions to wrong tox line :/

Why are these ones excessive? E741 and E742 only catch three test cases where we use l and I as class and variable names. For the bare except, I see a couple we can fix but the rest can just get around it by catching BaseException. There are only 13 instances of bare excepts in the repo, so it's still a quick fix. Note that if we had this enabled, it would have caught the latest docker commit, which has a bare except where it should be catching an AttributeError.
The reason your commit fails is that you modified the wrong line. The line you modified only runs flake8 on the docs. The line above is the one that runs it on everything else.

@daveFNbuck I've taken your guidance and fixed the current flake8 failures. I didn't spend the time to really determine what the except clauses should be catching except for the docker AttributeError.

I think most of them were meant to catch arbitrary exceptions, so that's fine. The redshift one should probably just be removed. No point in catching an exception just to re-raise it.

@daveFNbuck Good for me to merge?

LGTM


Update kube-aws-cluster-updates.md

spelling

Current coverage is 63.85% (diff: 100%)

Merging #109 into master will not change coverage

@@             master       #109   diff @@
==========================================
  Files             3          3
  Lines           830        830
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
  Hits            530        530
  Misses          230        230
  Partials         70         70

Powered by Codecov. Last update 8dbba73...5424fc1

@bfallik Thanks 👍 LGTM


Superresolution at x1

Hello, I am new to SR and playing with your creation. Decided to use it on formerly scanned paper printed photos from past and get very nice results. But the problem is, scans are already big in filesize so I am splitting them to many pieces due to GPU mem limit.
If we can use SR to just to enhance photo while preserving the same resolution, It will (probably) consume less memory during process, meaning less parts to split. May it be possible to give a command like below, one day? :)
python main.py --data_test Demo --scale 1 --pre_train ../experiment/model/EDSR_baseline_x1.pt --test_only --save_results
I appreciate if you consider possibilities for this.

Hello.
As I understand, you want to enhance the image quality without increasing their resolutions.
However, we do not use the term 'super-resolution'.
I guess simple edge sharpening or denoising can give you nice outputs in that case.
If you are having problem with limited GPU memory, we support --chop argument for inference.
It internally chops down the input image and prevent GPU memory overflow, so you can use very large images for the input.
I am wondering if I understood your question correctly.
Please let me know if you have any trouble with my answer.
Thank you!

First, thank you very much for your kind answer.
For enhance, I need more than regular image enhancement tools available in photshop etc.
Old photos (developed from film roll) is mostly not sharp or not detailed, or slightly out of focus, slightly blurry in general. Thats why I desired to utilize a SR network, and the fact is, I am very happy with the results, compared to traditional enhancement methods, my only issue is, when stitching SR-applied pieces together manually, seam lines was appearing but you are saying theres a -chop option. I am going to try this as soon as possible.
Again, appreciate for this code.

it seems you just want to deblur, denoise, but not super resolution, I think you can search some DL algorithm for deblur and denoise

@suke27 Thanks I will investigate this option too, but my split-rebuild problem is already solved thanks to the chop option. Since number of photo scans are not so many, the code is working very well for my need. My request for x1 was related to the need to manually split images (GPU mem limit), which is not necessary anymore. Just tested with a 7200x5400  jpeg image, processed in 111 seconds, perfect.
@thstkdgus35 Accidentally realized capital file extensions may cause failure, like .JPG, for your information.


Simple recipe for coffee.

Fixes https://github.com/ChildrenOfUr/cou-issues/issues/1668

Minor tweaks for lower level player game balance


Alternative Gatways

Hi,
Does/ Can Vanilo incorporate  gateways built with the Omnipay framework?

Sorry for the super late response. I've been thinking about it in the last weeks and I'm leaning towards the idea to build an Omnipay bridge for Vanilo Payments.
Any further thoughts on that from your side?

Sorry for the super late response. I've been thinking about it in the last weeks and I'm leaning towards the idea to build an Omnipay bridge for Vanilo Payments.
Any further thoughts on that from your side?

@fulopattila122
I've had some success building custom payment gateways for invoiceninja and I'm looking at doing something similar with crater which doesn't have a design pattern for such integrations as yet...I'm looking into using modules to accomplish this.

@fulopattila122
I've had some success building custom payment gateways for invoiceninja and I'm looking at doing something similar with crater which doesn't have a design pattern for such integrations as yet...I'm looking into using modules to accomplish this.

Has anything ever happened with this, @fulopattila122 ?

Has anything ever happened with this, @fulopattila122 ?

No, not yet. Currently, it's not among the plans for the next 2 months.

Update on this: currently it's not on our roadmap to build an OmniPay bridge for Vanilo Payments.
If anyone is interested in building it please drop me a line, I'll be happy to help with the specs (what would be required from Vanilo side).
In the meantime, we've added a skeleton for building new payment gateways: https://github.com/vanilophp/payment-gateway-skeleton
It's a good starting point to use that package and bootstrap a new gateway with it.


Enable "Full Width" on YouTube embeds

Wordpress supports YouTube embeds, along with multiple alignment settings for those code blocks.
Currently, the only alignment options are "left / center / right." We need to have "Full Width" enabled so that video embeds will consume the full width of the page and scale accordingly, similar to how images behave.
Wordpress documentation says this needs to be enabled on the Theme level.
Current example in CMS:

Output on published blog:

Yes, I'll take a look at that tomorrow

Hi Jason, I added support for full-width embeds in #63. Once that is merged and released, you can set the newly available block options for align-wide or align-full, which both will make the youtube embed as wide as the surrounding text.


cmd/cgo: should have a length-limited version of C.GoString

Right now it's quite tempting and perhaps obvious to use C.GoString() on C struct fields that are declared as char field[N] (especially in light of issue #12427). However this usage is wrong in a subtle and dangerous way, because the traditional common definition of such fields is that their contents are not null-terminated if they contain something exactly N characters long. Use of C.GoString() thus risks running off the end of the field and into unrelated and possibly unallocated memory under rare circumstances.
If you know about this issue it is possible to work around it in Go code (call C.GoStringN() and then remove everything after the first 0 byte). However I think it would be better to provide a support function for this both to make the issue visible to people using cgo and to make it easy to do the right and safe thing.

cc @ianlancetaylor

That's a fairly specific request.  It's not a goal of cgo to provide a full set of C string manipulation functions.  If I understand correctly, you can do what you want with
C.GoStringN(p, C.strnlen(p, N))
I don't think we need an additional function for this specific use.

Does this happen frequent enough to warrant a
new cgo special call?
The user code can count the characters (e.g. with
strnlen in C) and then use C.GoStringN.

With @ianlancetaylor showing the simple way to deal with this, I agree that no additional function is needed. My concern can be dealt with with a documentation note telling people to do this for copying such struct fields instead of just using C.GoString() (and not necessarily in cmd/cgo's godoc; there's the wiki and other supplementary materials on cgo).
(If left alone with no guidance I think that many people will just use C.GoString(), especially if they are not experienced C programmers but are instead just using cgo to connect Go to some C library or the like. Even relatively experienced C programmers sometimes commit this mistake in C code, after all, and it slipped my mind recently when I was writing cgo code. Treating struct fields as C strings is easy and really tempting and it works almost all of the time.)

I think even in C, having a fixed array of chars acting as
storage for a C string is a pretty bad API design practice
(even if it guarantees that the string is always NUL-
terminated and it can easily lead to buffer overflow
problems too, and strncpy doesn't always copy NUL)

It is a bad API. But it's unfortunately a common one, either explicitly (you're told that this is the case) or implicitly (some struct has a char field[N] field and documentation doesn't say it's always null-terminated). People creating certain sorts of C APIs love embedded fixed-size char fields instead of out of line char * pointers because it requires less allocation and simplifies things like moving these structs across user space/kernel boundaries. And then people writing Go packages to interface with these C APIs get to deal with the mess.


Not able to run make install run with go version 1.19 and operator version 1.28

What did you do?
Tried running the operator using make install run
What did you expect to see?
Operator should come up, should see logs of operator
What did you see instead? Under which circumstances?
/home/bruce/go/src/deploy/server-operator/bin/controller-gen rbac:roleName=manager-role crd webhook paths="./..." output:crd:artifacts:config=config/crd/bases
/home/bruce/go/src/deploy/server-operator/bin/kustomize build config/crd | kubectl apply -f -
customresourcedefinition.apiextensions.k8s.io/biosschemaregistries.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/biossettings.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/bmcs.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/bootordersettings.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/odims.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/rulebasedaggregates.infra.io.odimra configured
customresourcedefinition.apiextensions.k8s.io/volumes.infra.io.odimra configured
/home/bruce/go/src/deploy/server-operator/bin/controller-gen object:headerFile="hack/boilerplate.go.txt" paths="./..."
/usr/local/go/src/sync/atomic/type.go:39:16: expected ']', found any
/usr/local/go/src/sync/atomic/type.go:39:19: expected ';', found ']'
/usr/local/go/src/sync/atomic/type.go:39:19: expected type, found ']'
/usr/local/go/src/sync/atomic/type.go:50:34: expected declaration, found 'return'
/usr/local/go/src/sync/atomic/type.go:39:16: expected ']', found any
/usr/local/go/src/sync/atomic/type.go:39:19: expected ';', found ']'
/usr/local/go/src/sync/atomic/type.go:39:19: expected type, found ']'
/usr/local/go/src/sync/atomic/type.go:50:34: expected declaration, found 'return'
/usr/local/go/src/sync/atomic/type.go:39:16: expected ']', found any
/usr/local/go/src/sync/atomic/type.go:39:19: expected ';', found ']'
/usr/local/go/src/sync/atomic/type.go:39:19: expected type, found ']'
/usr/local/go/src/sync/atomic/type.go:50:34: expected declaration, found 'return'
Error: not all generators ran successfully
run controller-gen object:headerFile=hack/boilerplate.go.txt paths=./... -w to see all available markers, or controller-gen object:headerFile=hack/boilerplate.go.txt paths=./... -h for usage
make: *** [Makefile:100: generate] Error 1
Environment
$ operator-sdk version
operator-sdk version: "v1.28.0-5-gaf140625", commit: "af14062577914e4c79c77d8a31d2cf808e5ed76b", kubernetes version: "v1.26.0", go version: "go1.19.5", GOOS: "linux", GOARCH: "amd64"
Also saw an inconsistency in the documentation for 1.28 release
The version of go for 1.28 is different in each of these links:
1.https://v1-28-x.sdk.operatorframework.io/docs/installation/
2.https://v1-28-x.sdk.operatorframework.io/docs/building-operators/golang/installation/

@kavyamani596 Could you provide a link to your project? This seems to be coming from controller-tools, @OchiengEd can help in looking into this issue.

hi @varshaprasad96 , yep , it was due to the old version of controller-gen executable.
I updated the controller-gen version to the latest, i.e 11.1 and it worked for go 19.5
but this is not mentioned in the operator documentation, it would be helpful if this is documented cause we took lot of time to arrive at this.

Thanks for the update; I am glad you were able to identify the root cause of the issue.

@kavyamani596 I have changed the milestone to v1.30.0. I will try to get some eyes on this as well.

Closing this issue, since an unsupported version of controller tools was being used.

I am also facing the same kind of issue, can anyone from here, help me?
I have controller-gen version of v0.12.0 on my machine, but while compilation I can see v0.80. I dont understand why its happening. Same with the go, on my system it shows 1.22.5 but on VS code it shows, 1.17.6
I am in trouble, please help
Error: not all generators ran successfully run controller-gen object:headerFile=hack/boilerplate.go.txt paths=./... -w to see all available markers, or `controller-gen object:headerFile=hack/boilerplate.go.txt paths=./... #6789


Suggestion: Add IHandler Interface on NetPeer

If there is a better way to do this, please let me know.  Otherwise, I have a suggestion to improve library.
Presently, I am instancing a custom Connection object for each Peer connection to my server.
I implemented INetEventListener and used a static dictionary of connected peers -- indexed by ConnectId.  When a packet arrives, my code looks into the ConnectedPeers dictionary to find out which Connection Object I need to call to handle the packet.
Existing code looks like this:
public static class NetServer
{
	private static Dictionary<long, ConnectionManager> Connections = new Dictionary<long, ConnectionManager>();

    public class ServerListener : INetEventListener
    {
        public NetManager Server;

        public void OnPeerConnected(NetPeer peer)
        {
            try
            {
                Connections.Add(peer.ConnectId, new ConnectionManager();
            }
            catch {   log.Write("ERROR");     }
        }

        public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod)
        {
            ConnectionManager ThisConn;
            Connections.TryGetValue(peer.ConnectId, out ThisConn);
            ThisConn.HandleInboundPacket(reader.Data);
        }

    }

}

This solution works well except for one problem -- I am doing an unnecessary dictionary look up for every single packet received.  My suggestion is this:
You could add an IHandler Interface to Peer class.  It might start with only one function:  HandlePacket(), but you could certainly add more methods.
Then consumer of your library could do this:
public class myConnectionHander : IHandler
{
    public void HandlePacket(byte[] Pkt)
    {
        //Do something with the packet here.
    }
}

public class ServerListener : INetEventListener
{
    public void OnPeerConnected(NetPeer peer)
    {
        peer.Handler = new myConnectionHandler();
    }

    public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod)
    {
        peer.Handler.HandlePacket(reader.Data);
    }

}

It would completely eliminate the need for consumer to maintain a list that maps Handlers to Peers, which would also increase performance by eliminating a custom container look-up for every single packet.
If I'm using the library incorrectly, please tell me.  I just don't see how to get around the need for a container look-up right now.

I stopped reading at the word static dictionary. Using static is an anti pattern that should be avoided at all costs. This breaks the scalability and the extensibility of the application. Specifically, think about test scenarios where you may need to open up several Network instances within the same process.
We should not break or clean design for a feature that adds no new functionality

Yeah.  I don't want to use a dictionary.  That's the point.  I'm asking how to map incoming Peer packets to a customer handler without using my own look up container.  Is there already a way to do this in the library?   I want to avoid a custom connection list entirely.

@pha3z that is good idea. I will investigate your proposal.

@pha3z but you can use NetPeer tag object to store anything you want.

So using Tag, I would do the following like this?
public class ServerListener : INetEventListener
{
    public void OnPeerConnected(NetPeer peer)
    {
        peer.Tag= new myConnectionHandler();
    }

    public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod)
    {
        myConnectionHandler Handle = peer.Tag as myConnectionHandler;
	Handle.HandlePacket(reader.Data);
    }
}

I guess that works, but it requires use of "as" keyword.   Am I correct?

@pha3z

So using Tag, I would do the following like this?

Yes

I guess that works, but it requires use of "as" keyword. Am I correct?

Faster will be simple cast
    public void OnNetworkReceive(NetPeer peer, NetDataReader reader, DeliveryMethod deliveryMethod)
    {
        myConnectionHandler Handle = (myConnectionHandler)peer.Tag;
	Handle.HandlePacket(reader.Data);
    }

Well this is certainly a lot faster than a container look-up.  Thank you! :)
I still think a Handler Interface would be really nice, though. :)  Best performance... plus intuitive for demonstrating how to use library.


How to dinamically remove a Validator from a field

Hello
I need to handle my form dinamically.
I mean to enable and disable validation on certain fields due to other constraints
More in detail I have an email field (set by default with addValidator:EZFormEmailAddressValidator) I need to disable in a specific condition (so that EZform doesn't check if it contains an email address)
Is there a way to do it?
Thanks
Paolo

A recent change adds -[EZFormField setValidator:] so you can replace validators on a field. Passing nil will clear validators, so you could use this to clear and re-set validators as you need them.


won't work anymore

I reinstalled kodi-recently-added (the version that is for HA 0.115 and above)
and i put the sensors in my configuration.yaml but they don't show up.
In my log file I see the following:
Logger: homeassistant.components.sensor
Source: custom_components/kodi_recently_added/sensor.py:48
Integration: Sensor (documentation, issues)
First occurred: 10:53:18 (1 occurrences)
Last logged: 10:53:18
Error while setting up kodi_recently_added platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/kodi_recently_added/sensor.py", line 48, in async_setup_platform
data = hass.data[KODI_DOMAIN][config_entry.entry_id]
KeyError: '5a5c9f95010011eb8d4ad5a5ae663505'

What I would suggest is completely removing the kodi integration via the integrations page and re-adding it.  Afterwards restart HA and let me know if you are still seeing the error.

Done, I have removed kodi via the integrations page and re-adding it.
after the restart i get the same error:
Logger: homeassistant.components.sensor
Source: custom_components/kodi_recently_added/sensor.py:48
Integration: Sensor (documentation, issues)
First occurred: 0:50:04 (1 occurrences)
Last logged: 0:50:04
Error while setting up kodi_recently_added platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/kodi_recently_added/sensor.py", line 48, in async_setup_platform
data = hass.data[KODI_DOMAIN][config_entry.entry_id]
KeyError: '5a5c9f95010011eb8d4ad5a5ae663505'

Are you comfortable enough with your setup to be able to replace the sensor.py mentioned in the error with a custom version that could help debug this issue?  My current guess is that there are multiple config entries for the host you have used and for some reason the old one is being found first that no longer has data in the kodi domain within hass.data.
If you are comfortable doing this I can provide an updated version that adds some additional logging that might help figure out how to resolve this issue.

If you are able to copy this file: https://gist.githubusercontent.com/boralyl/383dbedf943d185a70b99ca9ea35c050/raw/512c52b9203ba74aadfc621d0afb9298ccaa2e8a/sensor.py to /config/custom_components/kodi_recently_added/sensor.py and restart HA you should see some new warning logs that will provide some more insight into your issue.
If you could post each warning, there will be at least 2 but possibly more that will help out.  Please make sure that you scrub the pasted logs of any sensitive information like passwords/usernames.  You can just replace those values with an empty string.

I get one error:
Logger: homeassistant.components.sensor
Source: custom_components/kodi_recently_added/sensor.py:25
Integration: Sensor (documentation, issues)
First occurred: 20:47:39 (1 occurrences)
Last logged: 20:47:39
Error while setting up kodi_recently_added platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/kodi_recently_added/sensor.py", line 35, in async_setup_platform
config_entry = find_matching_config_entry_for_host(hass, host)
File "/config/custom_components/kodi_recently_added/sensor.py", line 25, in find_matching_config_entry_for_host
if entry.data[CONF_HOST] == host:
KeyError: 'host'

I also added a second kodi and then I get another error:
Logger: homeassistant.components.sensor
Source: custom_components/kodi_recently_added/sensor.py:51
Integration: Sensor (documentation, issues)
First occurred: 21:00:37 (1 occurrences)
Last logged: 21:00:37
Error while setting up kodi_recently_added platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/kodi_recently_added/sensor.py", line 51, in async_setup_platform
data = hass.data[KODI_DOMAIN][config_entry.entry_id]
KeyError: '5a5c9f95010011eb8d4ad5a5ae663505'
maybe also worth mentioning, I use MySQL as a common database for all my kodis in the house.
Previously this was no problem and it just worked.

Oh, I saw 2 still there:
1e
Logger: custom_components.kodi_recently_added.sensor
Source: custom_components/kodi_recently_added/sensor.py:50
Integration: Kodi Recently Added Media (documentation, issues)
First occurred: 21:00:36 (5 occurrences)
Last logged: 21:00:36
kodi domain config entry ids: ['3f2e1289069511ebb60f0b8767d165ca', 'd989d614069311eb89d82358eba11511']
2e
Logger: custom_components.kodi_recently_added.sensor
Source: custom_components/kodi_recently_added/sensor.py:49
Integration: Kodi Recently Added Media (documentation, issues)
First occurred: 21:00:36 (5 occurrences)
Last logged: 21:00:36
config_entry: {'entry_id': '5a5c9f95010011eb8d4ad5a5ae663505', 'version': 1, 'domain': 'kodi', 'title': 'Ignored', 'data': {'host': '<IP_ADDRESS>', 'port': 8080, 'name': 'donald-2'}, 'options': {}, 'system_options': {'disable_new_entities': False}, 'source': 'ignore', 'connection_class': 'local_poll', 'unique_id': '936f3519-6be0-4bba-9019-084899a6628d'}
config_entry: {'entry_id': '5c300c0d010011eba0102bcd7677b8ab', 'version': 1, 'domain': 'kodi', 'title': 'Ignored', 'data': {}, 'options': {}, 'system_options': {'disable_new_entities': False}, 'source': 'ignore', 'connection_class': 'local_poll', 'unique_id': 'dff98f68-94ab-4611-a40a-b2066b6b1764'}
config_entry: {'entry_id': '694e851a010011eb8dc5c9ad9ea08da8', 'version': 1, 'domain': 'kodi', 'title': 'Ignored', 'data': {}, 'options': {}, 'system_options': {'disable_new_entities': False}, 'source': 'ignore', 'connection_class': 'local_poll', 'unique_id': '25470886-d7b8-4f48-8280-76baad9697be'}
config_entry: {'entry_id': 'd989d614069311eb89d82358eba11511', 'version': 1, 'domain': 'kodi', 'title': '<IP_ADDRESS>', 'data': {'name': None, 'host': '<IP_ADDRESS>', 'port': 8080, 'ws_port': 9090, 'username': '', 'password': '', 'ssl': False, 'timeout': 5}, 'options': {}, 'system_options': {'disable_new_entities': False}, 'source': 'user', 'connection_class': 'local_poll', 'unique_id': None}
config_entry: {'entry_id': '3f2e1289069511ebb60f0b8767d165ca', 'version': 1, 'domain': 'kodi', 'title': '<IP_ADDRESS>', 'data': {'name': None, 'host': '<IP_ADDRESS>', 'port': 8080, 'ws_port': 9090, 'username': '', 'password': '', 'ssl': False, 'timeout': 5}, 'options': {}, 'system_options': {'disable_new_entities': False}, 'source': 'user', 'connection_class': 'local_poll', 'unique_id': None}

Thanks for posting, I think I see what's going on.  It appears to be including what look like ignored entries.  I'll have a fix you can try out later tonight.

Would you mind trying replacing your sensor.py with the latest version in master? https://raw.githubusercontent.com/boralyl/kodi-recently-added/master/custom_components/kodi_recently_added/sensor.py
Let me know if this fixes your issue and I can create a new release after adding some tests.

i still get an error:
Logger: homeassistant.components.sensor
Source: custom_components/kodi_recently_added/sensor.py:26
Integration: Sensor (documentation, issues)
First occurred: 11:17:07 (1 occurrences)
Last logged: 11:17:07
Error while setting up kodi_recently_added platform for sensor
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/kodi_recently_added/sensor.py", line 36, in async_setup_platform
config_entry = find_matching_config_entry_for_host(hass, host)
File "/config/custom_components/kodi_recently_added/sensor.py", line 26, in find_matching_config_entry_for_host
if entry.data[CONF_HOST] == host and entry.source != "ignore":
KeyError: 'host'

Whoops, I missed the other error you had posted.  I pushed a fix for that to master.  I think that should resolve your last issue.

Yes it works again, thanks.
But what does this mean when there is another update of Kodi Recently Added Media. is the error in it again or do you process the solution in the new version?

I will roll this into the next release, so the next time you see an update in HACS it will include this fix.


Update a11y for SliverAppBar

Set cacheExtent for sliverAppBar so it's not dropped from the semantics tree.
Update its toolbarOpacity in a11y mode to 1.0. When scrolling in a11y mode and the focus is back to the sliverAppBar, the content should be visible.
fixes: https://github.com/flutter/flutter/issues/143437

Pre-launch Checklist

[ ] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] I read the Tree Hygiene wiki page, which explains my responsibilities.
[ ] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[ ] I signed the CLA.
[ ] I listed at least one issue that this PR fixes in the description above.
[ ] I updated/added relevant documentation (doc comments with ///).
[ ] I added new tests to check the change I am making, or this PR is test-exempt.
[ ] I followed the breaking change policy and added Data Driven Fixes where supported.
[ ] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@Piinks ping for review :)


feat: change the Twitter logo

Tested on IntelliJ
Dark modeLight mode
ℹ Taken form https://logowik.com/twitter-x-rounded-icon-logo-vector-59295.html. I didn't see any copyright to add.
Closes #31

🎉 Live on GitHub

Mode
Screenshot

Dark

Light


buildah: 1.11.0 -> 1.11.1

Signed-off-by: Sascha Grunert<EMAIL_ADDRESS>
Motivation for this change
Update to the latest version
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[x] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @vdemeester @Profpatsch

@GrahamcOfBorg build buildah


Improve contrast of resizer in dark mode

Spectrum hasn't updated the xd file for column resizing yet, so just matching the old colors as closely as possible for now.

Robot - https://reactspectrum.blob.core.windows.net/reactspectrum/ddff13495e9a4a10871f10e38c9753e82c9395de/storybook/index.html


Branch update user guide

Added Redo command in UG

LGTM. But checks are failing!

Oh, let me take a look again. This is scary!

Hello all is fixed


go-demo-6 to 1.0.38

Promote go-demo-6 to version 1.0.38

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approvers:
If they are not already assigned, you can assign the PR to them by writing /assign  in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Increase the quality of the slide images in the exported pdf #18

Closes #18

This feature is proving to be more difficult than anticipated.
The first approach I took was using Excalidraw's exportToSvg util to generate an svg to embed in the pdf. Implementing the svgSlideRenderer is actually quite easy (see gist), but it turns out it's not possible to embed svgs in pdfs! (At least not with the pdf-lib library Excalideck uses, but for what I've found, it's also not possible in general).
That leaves me with the following options:

switch to the pptx format for the exported file, which allows embedding svgs
just generate higher-quality pngs
generate the pdf from the svg (calling pdf-lib 's drawCircle, drawLine, etc)
avoid generating pdfs/pptx-s altogether, save files as .excalideck (json) and just implement a presentation mode ( #29 )

Before going into the pros and cons of each option, I'll mention another problem that I noticed when - as a quick second approach - I tried to just  generate higher-quality pngs: performance.
Generating higher quality pngs takes a significant amount of time, to the point that when clicking on the save button for the first time, several seconds pass before the save dialog opens (this is less of a problem for the subsequent save operations, since there's a UI element indicating that the save operation is in progress, and some steps of the operation are memoized). What's worse is that if the operation takes too much time (I didn't figure out the threshold), the save dialog never opens, because the browser "loses" the connection between the user action of clicking on the save button and the js call to the save-dialog-opening API, and therefore rejects the call as not authorized / not triggered by a user action.
In general this performance issue needs to be addressed whichever option is chosen. But let's go through the pros and cons of each option.
Option 1: switch to the pptx format for the exported file, which allows embedding svgs
Pros:

slides are exported with the best possible quality
pptx is a well-known format for presentations

Cons:

it's more difficult to work with pptx. The PptxGenJs library seems quite good, but it only generates pptx files. Excalideck also needs to read them in order to extract the embedded metadata to restore from. Fortunately pptx files are actually just zip archives, so it might be possible to inject-into and read-from the archive a json file with the metadata
embedding Excalidraw's fonts into the pptx might not be possible
a pdf -> pptx conversion tool of some sort would be needed for users with "old" Excalideck pdf files
I imagine generating slide svgs + the pptx file wouldn't be much quicker than generating pngs + the pdf file

Option 2: just generate higher-quality pngs
Pros:

performance issues aside, it's just a matter of increasing the export scale

Cons:

quality can never be as good as with svgs
text in the generated pdf is not selectable (not a regression from the current situation, but still a con to consider)
the file size of the exported pdf would increase by x times
it takes a long time to generate high-quality pngs

Option 3: generate the pdf from the svg (calling pdf-lib 's drawCircle, drawLine, etc)
Pros:

slides are exported with the best possible quality

Cons:

I think the conversion would be quite difficult and possibly a source of many rendering bugs

Option 4: avoid generating pdfs/pptx-s altogether, save files as .excalideck (json) and just implement a presentation mode
Pros:

slides are presented with the best possible quality
implements a much-requested feature
simplifies file saving and loading
improves performance of saving and loading to the point of avoiding the performance problem mentioned above
would make it possible to identify Excalideck files (very good for many reasons, e.g. implementing double-click-to-open a file in Excalideck)
would lay the basis for other features (export to html, share url to presentation, etc)

Cons:

is a bigger feature to develop
the possibility to export to pdf or other formats would still be desirable

And here are some mockups for a "UI solution" to the performance issue mentioned in the previous comment.
Save modal
The first time the user clicks on the save icon, the following modal appears:

Generation completed
When the file-generation-process is completed, the modal transitions to this state:

Subsequent save operations
For subsequent save operations, the modal is not needed anymore, but the current UI could be updated to show a progress bar:

Having thought over the various options for a while, I think the simple **Option 3: just generate higher-quality pngs
** is actually the best approach.
The pdf format is the most flexible of all: it's well understood by users, it can be viewed on any device and it can be previewed by other software, which greatly helps in managing the file (e.g. when you get an email with a pdf attached, you get a preview right in your email client and immediately understand what the file contains).
To solve the file-saving performance issue, the "UI solution" described above seems suitable.
Of course, choosing option 3 doesn't prevent the development of other features - like presentation mode, or exporting to different file formats. It just means that, for the time being, the Excalideck file-saving format will remain pdf.


Use HttpHeaderName in Strongly Typed Header Classes

Use HttpHeaderName when deserializing HttpHeaders in strongly typed header classes.

nit, it might cause SDK be more dependent on later version of azure-core.

nit, it might cause SDK be more dependent on later version of azure-core (for pre-defined constants).

It will cause generated code to be dependent on azure-core 1.34.0+, is there anywhere version requirements are being documented?

It will cause generated code to be dependent on azure-core 1.34.0+, is there anywhere version requirements are being documented?

At present, I only write it in release info https://github.com/Azure/autorest.java/releases
Shouldn't be a big deal, as GA data-plane lib should be in the big pom and they've aligned on azure-core version. And we had doc for solving dependency conflict.


Changes to make it compatible with Minecraft 1.18

I used these changes locally to make a version that seems to work okay in Minecraft 1.18

If you are feeling brave and willing to trust a stranger on the internet, I compiled the above branch and made the .jar available here: https://random.wolfen.za.net/vanilla-hammers-9.0.0-1.18-WOLF.jar

Thanks for the contribution! I had to make a few additional changes for a relicense to take place, so I ended up bumping all the versions it in a separate commit. I still appreciate your help in getting a 1.18 version out to the public early!😆
CurseForge for those who are interested: https://www.curseforge.com/minecraft/mc-mods/vanilla-hammers/files/3575049


Add method to get number as string

The generateNumber method does not work on systems where the result of the Luhn algorithm calculation is a number that is greater than PHP_INT_MAX. This is because the string that results from combining the supplied number with the checksum is cast to an integer, which if it exceeds PHP_INT_MAX is changed to the maximum integer.
This has been solved by adding a generateString method that avoids casting the result of the Luhn algorithm to an integer.
I've also added a test for the generateString method.

Hi @lindyhopchris thanks for this PR, you've raised fair points. I'll get that discussed with my colleagues if we want to suggest any amendments and we will get back to you asap.

Some further info:

http://php.net/manual/en/reserved.constants.php
as most of the time we are based on 64 bit system maximum is<PHONE_NUMBER>854775807
potentially with bigger numbers we should check if generated number would fit in int range
so string solutions would be needed for numbers greater than<PHONE_NUMBER>854775807
as well I think there should be some validation in ::generateString() if string represents valid number

@wnowicki thanks for your replies so far!
As a bit of background, we actually discovered this problems as we have a 32-bit system, so the max int is smaller than the 14/15 digit numbers we're running through the Luhn algorithm.
I'd agree with some validation and perhaps an InvalidArgumentException should be thrown if the supplied string is not all digits.

Hi @lindyhopchris if I can get your opinion on changes I've made to the PR before merging it.

@wnowicki hope the comments help! If you want me to make the changes and/or update the tests then let me know as I'm happy to help

@wnowicki
thanks for the changes, these are looking great.

@wnowicki The changes are looking good to me.
@lindyhopchris thanks for raising this, its nice to see people interested in our packages. If you're happy with all of the changes we can get this merged into PayBreak's master branch.

@EvanBarbour3 no problem - thanks for open sourcing this, it's really useful.
All the changes look good. I've tried it out on the 32-bit system that we discovered the problem on and it all seems to be working fine.


Make SIP.js (hopefully) buildable on Windows

If eslint requires LF, make sure JS files get checked out that way

Hey @seanbright, thanks for the PR. I have outlined some of my thoughts below. We are developing in a UNIX environment so I am really not all that familiar with getting this to run on Windows.
I am uncomfortable with the .gitattributes change. I think it may cause adverse side effects particularly on the release branch with minified javascript. Based on my reading, it appears the correct solution is to set the attributes locally in your dev environment.
In terms of the copy files, can you provide some evidence that this is a generally accepted approach? I have found a few different ways to achieve this and it appears that the most minimal and accepted way of doing this is to actually write a node script to copy the file and then execute that script with node, which we should expect to be available on all systems. The concern here is that we are using tools and an approach that is not really all that common and it could create more problems than it solves, especially in terms of future support.

I am uncomfortable with the .gitattributes change. I think it may cause adverse side effects particularly on the release branch with minified javascript. Based on my reading, it appears the correct solution is to set the attributes locally in your dev environment.

I assume you mean by setting core.autocrlf but that is a global git configuration flag, not a per-repository one.

In terms of the copy files, can you provide some evidence that this is a generally accepted approach?

I cannot. I just looked around for other people experiencing the same problems with Unix specific commands and environment variable and determined what their solution was.

I am uncomfortable with the .gitattributes change. I think it may cause adverse side effects particularly on the release branch with minified javascript.

If this is something that I can assist with testing, I am more than willing.

Hi @seanbright,
While we appreciate the effort to make this work, we are not going to take this PR. You can clone the repo with --config core.autocrlf=input which will fix the crlf issue. Additionally, you can compile SIP.js using git bash on windows without adding further dev dependencies to our repo.
We looked at other (bigger) projects on Github to see what they were doing in regards to these things cross platform and they are not addressing it in this matter. As far as I can tell the recommended solutions are to clone with the config flag or change your core git config. As for the cp, the recommended solutions is to use git bash.

Hey @egreenmachine,
Was there anything done on your side to see if the .gitattributes change would actually have any negative impact on your release process or are you just assuming that it would?

As for the cp, the recommended solutions is to use git bash.

Recommended by whom?

We did not do any testing to see if the change would have a negative impact. My assumption currently is that there would be little to no impact, but it is not something that we need to do. The issue is really outside the scope of this project.
It is a generally recommended approach for getting a UNIX like shell on PC. Similar to the CRLF issue, we believe that getting cp to work on a system is outside the scope of this project.

I tested the --config core.autocrlf=input flag on clone and that seemed to do the trick. The bug about using the cp command instead of a webpack plugin will just have to remain outstanding.

The issue is really outside the scope of this project.

I am not sure that I consider build failures on non-Unixy platforms "out of scope" for a project that assembles a handful of smaller text files into one larger text file - especially considering that every component of your build toolchain supports cross platform development. We'll just have to agree to disagree.


The non_exhaustive_omitted_patterns lint changed

Hi! In https://github.com/rust-lang/rust/pull/116734 I changed how the lint works to make it more consistent. A consequence is that it no longer makes sense to set the lint level on a specific arm like was recommended before:
match Bar::A {
    Bar::A => {},
    #[warn(non_exhaustive_omitted_patterns)]
    _ => {},
}

It is now recommended to set it on the whole match, or even globally.
#[warn(non_exhaustive_omitted_patterns)]
match Bar::A {
    Bar::A => {},
    _ => {},
}

I didn't realize there was heavy usage of this lint when I made the change, but I understand syn recommends it to avoid breakage? Once https://github.com/rust-lang/rust/pull/117094 lands, setting the lint level on a single arm will raise an error, so the users can update. I thought I'd warn you before, also lmk if I should wait or do it differently. If it's really bad I can emulate the old behavior for a while.

Thank you for the heads up, and for your ongoing contributions to this lint!
From reading the summary of https://github.com/rust-lang/rust/pull/116734, I have a hard time making sense of what this lint, as newly formulated, is intended to detect.
The first code snippet suggests that maybe it triggers on "any _ pattern whose matched value could possibly contain within it any enum variant that belongs to a non_exhaustive enum", which seems like a useful formulation.
The second code snippet tells me my first guess cannot be right, because that match contains a wildcard pattern that can match variants of a non_exhaustive enum, but the explanation indicates a lint is not expected to trigger in that case.
My second guess is that it triggers on "any match whose scrutinee contains a 'place' whose type is a non_exhaustive enum, and not every variant of that enum is individually mentioned in that place among all the match arms". But I have no idea how to tell whether this guess is on the right track.
Then from experimenting with some cases myself, I figured out my second guess cannot be right, because a lint does not trigger for match Some(Enum::A) { Some(_) => (), None => () }. (Note: does this make the lint useless for empty non_exhaustive enums, such as syn::ImplRestriction?) My revised guess is that at least one enum variant needs to be matched by name and at least one by wildcard pattern. So the lint is "any match whose scrutinee contains a 'place' whose type is a non_exhaustive enum, at least one variant of that enum is explicitly matched in that place, and at the same time not every variant of that enum is matched in that place among all the match arms". Is that accurate, or could you help me write a more correct statement?
I am starting to think that in the pursuit of being useful, this lint may be getting too smart in a way that makes it challenging for users to use correctly, especially if the failure mode for using it incorrectly is that silently it does nothing when a variant is added upstream.
It's challenging to check whether you have used it correctly. I think you'd need to fork the dependency, introduce a new variant for the non_exhaustive enum you care about, get the dependency's code to compile again by inserting cases into all its exhaustive matches of that enum (this is likely the most time-consuming step), use a patch to depend on the fork, and finally be able to check whether the expected lint appears in your crate.
Compare against the original formulation in https://github.com/rust-lang/rust/issues/81657: lint that triggers if "a specific arm is reachable at runtime for any reason, assuming the match itself is reachable". Compare how this is trivial for a user to use correctly; if they care about finding out about new variants in a particular 'place', they can add an arm that matches if and only if a currently non-existent variant appears. It's easy to predict whether or not the lint will trigger without a nuanced understanding of how it's formulated.
As I recall, the original reason for implementing as a smart deny(non_exhaustive_omitted_patterns) over a simple deny(reachable) was in order to work well as a module-level / crate-level lint. In other words #![deny(non_exhaustive_omitted_patterns)] is a thing that makes sense while #![deny(reachable)] makes no sense.
But in hindsight, is module-level non_exhaustive_omitted_patterns a real use case? From my experience in the prettyplease crate, we occasionally match syn::Expr exhaustively, but more often match syn::Expr non-exhaustively.

So the lint is "any match whose scrutinee contains a 'place' whose type is a non_exhaustive enum, at least one variant of that enum is explicitly matched in that place, and at the same time not every variant of that enum is matched in that place among all the match arms". Is that accurate, or could you help me write a more correct statement?

Yep, precisely! Couldn't have done it better.
The reason I require at least one variant is for consistency. If I didn't, match Some(Enum::A) { None => (), Some(_) => () } would warn, but not match Some(Enum::A) { _=> () } because we don't dig into wildcards deeper than required by existing patterns. And we can't dig deeper else we'd dig forever. Maybe that consistency is not worth the surprise? I don't have a strong opinion.
The intuition I'm aiming for is "look at the match, do you see all variants or not?". I think you're greatly overestimating how predictable the old formulation was; imo the rewrite is a ton more predictable. Just an example: in what follows the first match used to trigger the lint and the second didn't, for reasons internal to how exhaustiveness proceeds. https://github.com/rust-lang/rust/pull/116734 has more examples in the tests, specifically this file.
match (true, x) {
    (true, Enum::A) => {}
    (true, Enum::B) => {}
    (false, Enum::C) => {}
    _ => {}
}
match (x, true) {
    (Enum::A, true) => {}
    (Enum::B, true) => {}
    (Enum::C, false) => {}
    _ => {}
}

It's challenging to check whether you have used it correctly.

Can't you just remove an arm that mentions one of the variants and see if the lint triggers?

"look at the match, do you see all variants or not?"

Now that I think about it, that could be an implementation strategy: just look at all the variants mentioned in the match, with no extra cleverness. That would be a pain to implement tho.

As I recall, the original reason for implementing as a smart deny(non_exhaustive_omitted_patterns) over a simple deny(reachable) was in order to work well as a module-level / crate-level lint

I recall a different reason: in the following, deny(reachable) would say that (Foo::A, false) is caught by the wildcard, but we don't care since all the variants are mentioned. For our uses this would require a useless (Foo::A, false) branch to appease the lint.
match x {
  (Foo::A, true) => {}
  (Foo::B, _) => {}
  #[deny(reachable)]
  _ => {}
}


Conversation API building blocks.

Description
Curl building block scripts for:

[x] Conversation
[x] User
[x] Member
[x] Event
[x] Leg

Testing
Test:

[x] Conversation
[x] User
[x] Member
[x] Event
[x] Leg
[x] Script for testing (manual process for now - see README.md for details)
[x] All tested OK.

In the interests of progressing the Conversation API docs merged without review. Please let me know if there are issues.


Idea: Set up a webhook for updating grammars

VSCode Version: Code - Insiders 1.15.0-insider (0e7546c978fa1b62dbf36f07a77d1b9a4241d6f7, 2017-07-28T11:23:06.089Z)
OS Version: Windows_NT x64 10.0.15063
Extensions:

Extension
Author (truncated)
Version

Bookmarks
ale
0.15.2

npm-intellisense
chr
1.3.0

path-intellisense
chr
1.4.2

regex
chr
0.1.0

gitignore
cod
0.5.0

vscode-dash
dee
1.7.0

vscode-npm-source
dku
1.0.0

python
don
0.6.9

gitlens
eam
4.3.2

tslint
eg2
0.17.0

vscode-npm-script
eg2
0.2.0

LogFileHighlighter
emi
1.1.1

vscode-reveal
evi
0.0.9

php-debug
fel
1.11.1

php-intellisense
fel
1.5.0

auto-close-tag
for
0.4.3

auto-rename-tag
for
0.0.14

gc-excelviewer
Gra
1.1.15

composer
ika
0.5.0

smarty
imp
0.2.0

code-guid
jam
1.0.1

StretchTimer
jpa
0.0.1

json-to-ts
Mar
1.5.2

Runner
mat
0.1.14

vscode-apache
mrm
1.1.1

cpptools
ms-
0.12.1

github-issues-prs
ms-
0.3.1

php-docblocker
nei
1.2.0

emoji
Per
0.0.3

vscode-versionlens
pfl
0.19.1

datetime
rid
1.0.5

vscode-icons
rob
7.12.0

sharecode
Rol
0.4.1

todotasks
san
0.5.0

code-settings-sync
Sha
2.8.2

vscode-spotify
shy
2.0.0

packagelinker
sin
0.0.3

code-spell-checker
str
1.3.2

pdf
tom
0.2.0

lorem-ipsum
Tyr
1.0.0

vscode-arduino
vsc
0.2.4

vscode-todo-highlight
way
0.5.8

highlight-trailing-white-spaces
yba
0.0.2

(2 theme extensions excluded)

I'd like it that you automatically update your grammar files when it has been updated in the origin repository, so we (the community) does not need to ask whether you can update the grammar.
Reproduces without extensions: Yes

When updating a grammar, most of the time we have to review the changes to the test inputs we have. We would have to refine that and probaby can't avoid manual work.

As metioned, there's still some reviewing needed. Also we want to pick good times for the update, e.g. not in an endgame or right before the release.
So, cool idea, bit not planed right now.


MONDO:0006196 endometrial serous adenocarcinoma & MONDO:0003629 [Merge]

Mondo term (ID and Label)
MONDO:0003629 uterine corpus serous adenocarcinoma
Reason for deprecation
The 'uterine corpus serous adenocarcinoma' reports an exact match of  "endometrial serous adenocarcinomaDOID "
And "uterine corpus serous adenocarcinoma" is an NCI-sourced synonym on  MONDO:0006196 (NCI code = C27838 confirms NCI treats these as synonyms)
Term to be merged with
MONDO:0006196  endometrial serous adenocarcinoma
Your nano-attribution (ORCID)
If you don't have an ORCID, you can sign up for one here

Confirming merge of MONDO:0003629 uterine corpus serous adenocarcinoma into MONDO:0006196 endometrial serous adenocarcinoma based on NCIT considering uterine corpus serous adenocarcinoma a synonym of endometrial serous adenocarcinoma.
https://nciterms.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI_Thesaurus&code=C27838


quill-cassandra - add encoders for collection type columns

Hi,
I have noticed there are no encoders for collection type columns. It would be worth to have them built in.
Version: (e.g. 0.5.0)
Module: (e.g. quill-cassandra)
The tricky part is cassandra support indexes on sets and maps - on maps even a few types.
@getquill/maintainers

Is there a workaround for the current version?

I have been quite busy lately (moving to a new flat,...) but I'm back! @fwbrasil I'm not quite sure if this should be considered easy due to how this is supported by the driver. For primitive types should be pretty straight forward but... if somebody wants to read/write a Set[LocalDateTime], then we would have a problem.
There are two signatures for the getSet function (the same applies for all other supported collections):
public <T> Set<T> getSet(int i, Class<T> elementsClass);

public <T> Set<T> getSet(int i, TypeToken<T> elementsType)

In both cases, we need the TypeCodec for T be registered with the CodecRegistry (see CASSANDRA.md)
We would need to make some changes in the encoding/decoding infrastructure for the Cassandra plugin so we can derive the TypeCodec from our existing Encoders/Decoders. I have a couple of ideas I want to test first.

Closed in #758


Wallet Keeps Crashing

Can't even sync. Crashes within 10 minutes or so. No errors, just quits.

Will be fixed at wallet version v2 -> #25
Please close the ticket.


Add gRPC libraries to optional dependencies

Motivation

To fix the CI, this PR adds gPRC libraries to the optional dependencies.
Description of the changes

Install grpcio and protobuf for tests.

@nabenabe0928 Could you review this PR?


fix: add valid cache time to apt cache update

adding a valid cache time will prevent updating cache every time, speed up deployment and improve idempotency

addressed in https://github.com/artis3n/ansible-role-tailscale/pull/278

Completed in #278


ceph-fuse not installed for clients on non-debian machines

Specifically, I had this problem on CentOS 7.
Copied from: http://tracker.ceph.com/issues/17304

This is valid to me, let's add this to the roles/ceph-common/tasks/installs/install_on_redhat.yml and roles/ceph-common/tasks/installs/install_rh_storage_on_debian.yml and use when: client_group_name in group_names.


Prevent discharge is ignored

Describe the bug
The configured battery mode is ignored.
Steps to reproduce

activate "Prevent discharge in fast mode and scheduled charging."
start charging

Configuration details
network:
  # schema is the HTTP schema
  # setting to `https` does not enable https, it only changes the way URLs are generated
  schema: http
  # host is the hostname or IP address
  # if the host name contains a `.local` suffix, the name will be announced on MDNS
  # docker: MDNS announcements don't work. host must be set to the docker host's name.
  host: <IP_ADDRESS>
  # port is the listening port for UI and api
  # evcc will listen on all available interfaces
  port: 7070

interval: 30s # control cycle interval. Interval <30s can lead to unexpected behavior, see https://docs.evcc.io/docs/reference/configuration/interval

# database configuration for persisting charge sessions and settings
# database:
#   type: sqlite
#   dsn: <path-to-db-file>

# sponsor token enables optional features (request at https://sponsor.evcc.io)
sponsortoken: abc123

# telemetry enables aggregated statistics
#
# Telemetry allows collecting usage data (grid and green energy, charge power).
# Data is aggregated, no individual charging sessions are tracked. The collected,
# anonymous data can be retrieved using https://api.evcc.io.
#
# See https://github.com/evcc-io/evcc/pull/4343 or details.
#
# For time being, this is only available to sponsors, hence data is associated with
# the sponsor token's identity.
#
# telemetry: true

# log settings
log: info
levels:
  site: debug
  lp-1: debug
  lp-2: debug
  cache: error
  db: error

# modbus proxy for allowing external programs to reuse the evcc modbus connection
# each entry will start a proxy instance at the given port speaking Modbus TCP and
# relaying to the given modbus downstream device (either TCP or RTU, RS485 or TCP)
modbusproxy:
  #  - port: 5200
  #    uri: solar-edge:502
  #    # rtu: true
  #    # readonly: true # use `deny` to raise modbus errors

# meter definitions
# name can be freely chosen and is used as reference when assigning meters to site and loadpoints
# for documentation see https://docs.evcc.io/docs/devices/meters
meters:
  - name: my_grid
    type: template
    template: sunspec-hybrid
    usage: grid
    modbus: tcpip
    id: 240
    host: <IP_ADDRESS> # IP-Adresse oder Hostname
    port: 502 # Port (optional)
  - name: my_pv
    type: template
    template: fronius-gen24
    usage: pv
    host: <IP_ADDRESS> # IP-Adresse oder Hostname
    port: 502 # Port (optional)
  - name: my_battery
    type: template
    template: fronius-gen24
    usage: battery
    host: <IP_ADDRESS> # IP-Adresse oder Hostname
    port: 502 # Port (optional)

# charger definitions
# name can be freely chosen and is used as reference when assigning charger to vehicle
# for documentation see https://docs.evcc.io/docs/devices/chargers
chargers:
  - name: my_charger
    type: template
    template: vestel
    # Modbus TCP
    modbus: tcpip
    id: 255
    host: <IP_ADDRESS> # Hostname
    port: 502 # Port

# vehicle definitions
# name can be freely chosen and is used as reference when assigning vehicle to loadpoint
# for documentation see https://docs.evcc.io/docs/devices/vehicles
vehicles:
  - name: my_car
    type: template
    template: enyaq
    title: Enyaq # Wird in der Benutzeroberfläche angezeigt (optional)
    user: mail # Benutzerkonto (bspw. E-Mail Adresse, User Id, etc.)
    password: password # Passwort des Benutzerkontos (bei führenden Nullen bitte in einfache Hochkommata setzen)
    vin: # Erforderlich, wenn mehrere Fahrzeuge des Herstellers vorhanden sind (optional)
    capacity: 62 # Akkukapazität in kWh (optional)
    timeout: 10s # optional

# site describes the EVU connection, PV and home battery
site:
  title: Home # display name for UI
  meters:
    grid: my_grid # grid meter
    pv:
      - my_pv # list of pv inverters/ meters
    battery:
      - my_battery # list of battery meters
  residualPower: 100 # additional household usage margin
  maxGridSupplyWhileBatteryCharging: 0 # ignore battery charging if AC consumption is above this value

# loadpoint describes the charger, charge meter and connected vehicle
loadpoints:
  - title: Carport # display name for UI
    charger: my_charger # charger
    #meter: charge # charge meter
    mode: "off" # default charge mode to apply when vehicle is disconnected; use "off" to disable by default if charger is publicly available

    # remaining settings are experts-only and best left at default values
    priority: 0 # relative priority for concurrent charging in PV mode with multiple loadpoints (higher values have higher priority)
    soc:
      # polling defines usage of the vehicle APIs
      # Modifying the default settings it NOT recommended. It MAY deplete your vehicle's battery
      # or lead to vehicle manufacturer banning you from API use. USE AT YOUR OWN RISK.
      poll:
        # poll mode defines under which condition the vehicle API is called:
        #   charging: update vehicle ONLY when charging (this is the recommended default)
        #   connected: update vehicle when connected (not only charging), interval defines how often
        #   always: always update vehicle regardless of connection state, interval defines how often (only supported for single vehicle)
        mode: charging
        # poll interval defines how often the vehicle API may be polled if NOT charging
        interval: 120m
      estimate: true # set false to disable interpolating between api updates (not recommended)
    enable: # pv mode enable behavior
      delay: 3m # threshold must be exceeded for this long
      threshold: -4300 # grid power threshold (in Watts, negative=export). If zero, export must exceed minimum charge power to enable
    disable: # pv mode disable behavior
      delay: 20m # threshold must be exceeded for this long
      threshold: 500 # maximum import power (W)

# tariffs are the fixed or variable tariffs
tariffs:
  currency: EUR # three letter ISO-4217 currency code (default EUR)
  grid:
    # either static grid price (or price zones)
    type: fixed
    price: 0.342 # EUR/kWh
    #zones:
    #  - days: Mon-Fri
    #    hours: 2-5
    #    price: 0.2 # EUR/kWh
    #  - days: Sat,Sun
    #    price: 0.15 # EUR/kWh

    # or variable tariffs
    # type: tibber
    # token: "476c477d8a039529478ebd690d35ddd80e3308ffc49b59c65b142321aee963a4" # access token
    # homeid: "cc83e83e-8cbf-4595-9bf7-c3cf192f7d9c" # optional if multiple homes associated to account

    # type: awattar
    # region: de # optional, choose at for Austria
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional

    # type: elering # Nordpool
    # region: ee # or lt, lv, fi
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: energinet # Energinet using the price in DKK
    # region: dk1 # or dk2
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: entsoe # Entso-E european market data
    # domain: BZN|DE-LU # https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_areas
    # securitytoken: # api token
    # charges: # optional, additional charges per kWh
    # tax: # optional, additional tax (0.1 for 10%)

    # type: pun # PUN - Prezzo unico nazionale - Hourly Italian wholesale prices
    # charges: 0 # optional, additional charges per kWh
    # tax: 0 # optional, additional tax (0.1 for 10%)

    # type: amber
    # token: # api token from https://app.amber.com.au/developers/
    # siteid: # site ID returned by the API
    # channel: general

    # type: custom # price from a plugin source; see https://docs.evcc.io/docs/reference/plugins
    # price:
    #   source: http
    #   uri: https://example.org/price.json
    #   jq: .price.current

  feedin:
    # rate for feeding excess (pv) energy to the grid
    type: fixed
    price: 0.0789 # EUR/kWh

    # type: octopusenergy
    # tariff: AGILE-FLEX-22-11-25 # Tariff code
    # region: A # optional

    # type: amber
    # token: # api token from https://app.amber.com.au/developers/
    # siteid: # site ID returned by the API
    # channel: feedIn
  co2:
    # co2 tariff provides co2 intensity forecast and is for co2-optimized target charging if no variable grid tariff is specified
    # type: grünstromindex # GrünStromIndex (Germany only)
    # zip: <zip>

    # type: electricitymaps # https://app.electricitymaps.com/map
    # uri: <uri>
    # token: <token> # needs to be a token with forecast (not in the free tier)
    # zone: DE

    # type: ngeso # National Grid Electricity System Operator data (Great Britain only) https://carbonintensity.org.uk/
    # provides national data if both region and postcode are omitted - Choose ONE only!
    # region: 1 # optional, coarser than using a postcode - The region details are at https://carbon-intensity.github.io/api-definitions/#region-list
    # postcode: SW1 # optional - Outward postcode i.e. RG41 or SW1 or TF8.
Linux
Nightly build

[X] I have verified that the issue is reproducible with the latest nightly build

Version
0.130.11

DEBUG 2024/09/18 20:16:54 set battery mode: hold

Scheint bei dir nicht zu funktionieren. Das müsste mal einzeln mit
evcc meter

getestet werden.


The 'thisArg' parameter should be used to type 'this' in callbacks to map, filter, etc.

TypeScript Version:  (2.2.0-dev.20161128)
Code
tets.ts
class A {
    options: any[]
    addOptions(options: any[]) {
        if (!this.options) {
            this.options = [];
        }
        options.forEach(function (item) {
            this.options.push(item);
        }, this);
        return this;
    }
}

tsc --module commonjs --noImplicitThis --noEmit test.ts

Expected behavior:
compile with no error output
Actual behavior:
test.ts(8,13): error TS2683: 'this' implicitly has type 'any' because it does not have a type annotation.
As some built-in method of array can assign this, could it be inferred through the scopes?

forEach should actually contextually type this based on the thisArg.

PRs welcomed. You can find more information about contributing lib.d.ts fixes at https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md#contributing-libdts-fixes.

@mhegazy I've fixed the source. But where should i write the tests?

@mhegazy I've fixed the source. But how can i write the tests for changes? The test suite is so huge, it could take time to figure out. So ask you for how is more direct.

Should this be reopened in light of #16223?

Aren't some of these inaccurate?
In definitions like the following:
forEach(callbackfn: (this: undefined, value: T, index: number, array: ReadonlyArray<T>) => void): void;
forEach(callbackfn: (this: undefined, value: T, index: number, array: ReadonlyArray<T>) => void, thisArg: undefined): void;
forEach<Z>(callbackfn: (this: Z, value: T, index: number, array: ReadonlyArray<T>) => void, thisArg: Z): void;

this: undefined ignores the fact that the this value is actually set, although what it gets set to depends on the execution environment (e.g. window in a browser). Also, this doesn't account for when thisArg is null, which has the same behaviour as when it's undefined.
Demo code:
var array = [0];

// [object Window] in a browser, [object global] in Node
array.forEach(function () {
	console.log(this.toString());
});
array.forEach(function () {
	console.log(this.toString());
}, undefined);
array.forEach(function () {
	console.log(this.toString());
}, null);

// 7 in both
array.forEach(function () {
	console.log(this.toString());
}, 7);

Considering this, shouldn't the definitions look more like the following?
forEach(callbackfn: (this: object, value: T, index: number, array: ReadonlyArray<T>) => void, thisArg?: null): void;
forEach<Z>(callbackfn: (this: Z, value: T, index: number, array: ReadonlyArray<T>) => void, thisArg: Z): void;


[SPARK-42717][BUILD] Upgrade mysql-connector-java from 8.0.31 to 8.0.32

What changes were proposed in this pull request?
The pr aims to upgrade mysql-connector-java from 8.0.31 to 8.0.32
Why are the changes needed?
1.This version brings some bugs fixes, the release note as follows:
https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-32.html
2.Bugs Fixed(https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-32.html#connector-j-8-0-32-bug), eg:

Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA.

thanks, merged to master


Support for Container Registry API

I was taking a look to the code but I think it's not supported yet.
https://docs.gitlab.com/ee/api/container_registry.html. If you're ok with it, can I submit a PR for this?
Thanks!

Thanks for reaching out @ivanetchart! And by all means, PRs are always welcome 👍

Cool
Just made it. Looking forward for feedback,
Thanks!

Thanks for the PR @ivanetchart!


When using useAction() can you directly import the server action in the client component or do you pass it down from a server component?

In the docs on this page it seems as if the function is being directly being imported from the file it is defined in, however other sections of the docs discuss passing it down through the server function.
Which is the correct way to go about this? Thanks!

other sections of the docs discuss passing it down through the server function

Are you referring to old READMEs? I thought I updated all sections of the new documentation with the correct information. Please let me know if this isn't the case, thank you!
You can almost always directly import server actions in Client Components, there are a few cases when this doesn't work properly, I discussed the behavior in #25. So, if you experience some weird revalidation bugs, you should instead pass them as props from Server Components.

I'm closing this issue for now. If something is still unclear, please leave a comment here and I'll reopen the issue. Thank you!


Align recipes for cocktails starting with B + more

I've been through the cocktails starting with B to align their recipes to keep a common recipe style/format. I've generally done one commit per recipe to make for easy reviewing, feel free to squash if you'd prefer.
There are some notable changes in this pull request other than minor wording changes:

The Black Margarita recipe has been rewritten and ingredients list updated as the recipe and ingredients didn't align, and parts of the instructions weren't very clear.
The Bloody Punch recipe was an interesting one. What does 7.5DL of strawberries mean? If someone wanted to make this, it's not exactly clear how to make one person's worth. I found the original recipe and in my opinion it's much clearer how to make a whole bowl rather than one glass worth. Also the recipe was already written as if you were making a whole bowl of punch. So in the end I changed this to the original recipe that makes a bowl of punch not just one glass. I'm happy to revert this if you disagree, but in my opinion the single glass recipe is too hard to follow, and I think it's ok to have a punch recipe be for a whole bowl.
I have completely removed the "Cream Soda" cocktail. See #563 for my reasoning, but basically it's because it's a duplicate of Happy Skipper.

Let me know if you want me to make any changes or revert any of the above.

Everything looks great!
Thank you 🚀


Repo sync for protected CLA branch

The pull request is created from master637619654708407485 to master to fix git push error for protected CLA branch

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


Add a start time to the job and task

Summary of the Pull Request
Add a start time to the job and task
closes #3357

Codecov Report

Merging #3440 (898664b) into main (6d8be1a) will decrease coverage by 3.76%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #3440      +/-   ##
==========================================
- Coverage   34.46%   30.71%   -3.76%
==========================================
  Files         299      135     -164
  Lines       36201    14506   -21695
==========================================
- Hits        12478     4456    -8022
+ Misses      23723    10050   -13673

Files Changed
Coverage Δ

src/ApiService/ApiService/OneFuzzTypes/Model.cs
70.44% <100.00%> (+0.06%)
:arrow_up:

... and 164 files with indirect coverage changes


PullRequestReviewsEnforcementRequest struct should also include the RequireLastPushApproval field

Currently, the only way to enable the RequireLastPushApproval feature is to use UpdatePullRequestReviewEnforcement.
According to the docs, we should be able to do it via UpdateBranchProtection. This would require updating the PullRequestReviewsEnforcementRequest struct.

Thank you, @liaodaniel !
Do you want to put together a PR for this issue, or shall I open it up to other contributors to this repo?

@gmlewis, happy to submit the PR

@gmlewis, happy to submit the PR

Thank you, @liaodaniel !
It's yours.


Dan criteria instances

@david-a-wheeler Please review this work to convert Criteria to a real class with an instance for each criterion. The key insight was from http://stackoverflow.com/a/36559091/1935918 which is that the class can and should instantiate if it is ever empty, such as on first use and when using reload! from rails console.
Regarding accessors, please note that you are currently testing for 3 accessors that are not present in criteria.yml. I dynamically generate the set of unique accessors and then manually add in those 3, plus :name.
Also note that I added memoization for most class methods via .each, which calls .all, which is memoized. I separately added memoization for  .active and each use of .find_by_name.
Comments welcome as always. Otherwise, please mark that you approve and I'll squash merge.

(Repeat of private email):
I wonder – would it be better to split this into 2 classes, “Criterion” to represent a single one, and “Criteria” to represent the collection of them all?
The “Criteria” class could be the place for queries like the badge level, as well as ways to get particular sets of Criteria (e.g., the “active” / non-future criteria).

It seems like the class/instance method distinction perfectly matches the difference between Criteria and each criterion. Criteria.active correctly captures the appropriate subset, and memoizes the result for fast re-access. I'm not seeing the benefit of a separate Criterion class at this time (though we could always add it later if the need comes up).

@david-a-wheeler Could I please get the OK to merge?

OK to merge with caveats:

File doc/testing.md fails "rake", need to fix.  Just add a blank line before ```bash.  You should also add a newline at the end of the file.
Document that you need to run "npm install phantomjs-prebuilt" first.  Probably needs to go into install script.
At least document that you need to change PATH, e.g.: export PATH="$PATH:node_modules/.bin/" ; is there a way to do that gracefully in the rakefile?  If not, at least document the problem, and the error message that results so new co-developers won't have trouble.

Thanks so much for doing this.

Ok to merge!


[main] upgrading OpenIPMI to v2.0.32

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

[x] The toolchain has been rebuilt successfully (or no changes were made to it)
[x] The toolchain/worker package manifests are up-to-date
[x] Any updated packages successfully build (or no packages were changed)
[ ] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
[x] All package sources are available
[x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/tools/cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
[x] LICENSE-MAP files are up-to-date (./SPECS/LICENSES-AND-NOTICES/data/licenses.json, ./SPECS/LICENSES-AND-NOTICES/LICENSES-MAP.md, ./SPECS/LICENSES-AND-NOTICES/LICENSE-EXCEPTIONS.PHOTON)
[x] All source files have up-to-date hashes in the *.signatures.json files
[x] sudo make go-tidy-all and sudo make go-test-coverage pass
[x ] Documentation has been updated to match any changes to the build system
[x] Ready to merge

Summary

What does the PR accomplish, why was it needed?
Change Log

upgrading OpenIPMI to v2.0.32

Does this affect the toolchain?

NO
Test Methodology

Local build and install on test vm

For some reasons when i do a local build (not a mock build), the build fails with a warning and an error:
File listed twice: /usr/share/licenses/OpenIPMI/COPYING"
File not found: /usr/src/mariner/BUILDROOT/OpenIPMI-2.0.32-1.cm2.x86_64/usr/lib/perl5/vendor_perl"

Although, via mock the build works. I would request if we can double check.

Thanks for catching some of my mistakes, went a bit too quick on this one :/ However I have built it locally without mock and installed all the rpms on a test 2.0 VM. I just rebuilt it to be sure now. Are you able to reproduce that build issue? Should I run a pipeline build to be sure?


Update concepts-transactions.md

Fix a typo

Please check this patch.

Thanks for your contribution. Does this affect only master or other versioned docs?
If latter, could you please help update all affected versions? Thanks

@wongxingjun any feedback on this? Thanks

@wongxingjun any feedback on this? Thanks

@wongxingjun any feedback on this? Thanks

Same problem exists in both branch 2.7 and 2.8 and I fixed it in 2 new pull requests.

@wongxingjun all your PRs submit same doc changes for the same doc version, please update versioned docs here (https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs) in master branch, thanks.

@wongxingjun all your PRs submit same doc changes for the same doc version, please update versioned docs here (https://github.com/apache/pulsar/tree/master/site2/website/versioned_docs) in master branch, thanks.

Done in  #11676


ApplicationUser is used without explanation

This sample code uses an assumed customer-provided class called ApplicationUser, but this use is not explained anywhere in this document.  I assumed it was a class that I had just not linked in and it took me finding https://docs.microsoft.com/en-us/aspnet/core/security/authentication/customize-identity-model?view=aspnetcore-2.2 to learn that this is a "naming convention" for an application-specific user class.
This documentation should either use IdentityUser in the services.AddIdentity call, or it should explain or provide a class example for ApplicationUser.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 59d6d442-8d46-3f9e-e75a-ad9d900fc117
Version Independent ID: d07c4058-452f-cdac-c59d-8f09e70a43f3
Content: Authenticate users with WS-Federation in ASP.NET Core
Content Source: aspnetcore/security/authentication/ws-federation.md
Product: aspnet-core
GitHub Login: @chlowell
Microsoft Alias: scaddie

@42degrees 	thanks for pointing this out. The 1.1 templates generated a class for ApplicationUser. I'm fixing it in #10975


Batchnorm Variant#0 ASM changes

Batchnorm Variant#0 ASM changes

@muralinr ASM code issues.
Also, can you post some relative performance numbers?

@muralinr ASM code issues.
Also, can you post some relative performance numbers?

Hi Daniel, I am looking issues.  I will post numbers once I address code issues.


JCenter Migration

https://developer.android.com/studio/build/jcenter-migration

@wangerekaharun
Can we look into this as well?

Sure we can.

We need to maybe create some tickets on the Project tab to track tickets and work done

This is probably has a bit of admin-related tasks too.

When publishing. Let me check and send an invite to you as well


Only use noexcept in functions that definitely cannot throw

Brief feature description
Currently almost all functions are marked as noexcept. This has severe implications: every function that would throw and exception will terminate when the exception tries to leave the function (it is still generated in this function or lower in the call stack).
The goal is to only mark functions as noexcept if we can guarantee that they cannot throw under any circumstances. This is generally not trivial, but feasible due to iceoryx design and Error Handling philosophy.

iceoryx itself never throws directly
Linked 3rd party libraries will not throw across library boundaries (we also do not use any lib that can internally throw - needs to be checked)
C functions (e.g. POSIX calls) will never throw
we only use header-only libraries (STL) that cannot throw (in our use cases)

There are only two kinds of functions: those that could throw, and those that cannot. It is sometimes hard to classify them correctly, as this will depend on the implementation.
We keep the noexcept for functions where we are sure that they can never throw. In case where we cannot be sure we should not mark the function with noexcept as it is better to err in this way.
If a deployment that uses noexcept everywhere is required we can use the noexcept compile flag (is this portable?) and basically arrive at the current behavior.
Detailed information

We have to be careful for any generic code, such as vector<T> where e.g. emplace can throw if the constructor of T throws (which it might, we cannot restrict T to non-throwing types within the C++ language). On the other hand functions like size will never throw.
Types like string are less generic and should mostly not throw but we have to be careful since we use STL constructs internally (e.g. std::min<T>). We need to ensure that those cannot throw, which in the case it cannot for the unsigned integer data types we use it with.
All constructs that involve hook functions that can be defined by client code, most prominently cxx::function can in principle throw (depends on the wrapped function) and hence cannot be noexcept.
All posix wrappers should never throw as they only use C library calls and non-throwing STL code.
Iceryx code itself cannot contain any throw directive.

Based on this it should be possible to correctly identify all non-throwing functions and mark them with noexcept.
Interface implications
noexcept is only part of the signature for e.g. overloading from C++17 onward.
Nevertheless functions that previously would terminate if a exception is thrown (by user code) will now propagate the exception and hence it must be considered API breaking (as it changes observable semantics).

This is incomplete and requires agreement about the overall strategy before we proceed. It is, however a separate issue from
https://github.com/eclipse-iceoryx/iceoryx/issues/1032 which is concerned with the ErrorHandler.

@MatthiasKillat Thanks for opening this issue! Based on thhis custom clang-tidy rule I might be able to parse the implementation of the methods and check the method calls for a noexcept keyword. Not 100% if this will work, though.


⚠ Bofrost.fr has degraded performance

In 098a5ce, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1133 ms

Resolved: Bofrost.fr performance has improved in b74db01 after 13 minutes.


Random Lightning Bolt Spawning

The Apotheosis Mod seems to be causing lightning bolts to "spawn" at random times. The lightning bolts themselves are not visible to the player (as far as I know) and they can occur even if the weather is set to clear and in the Nether and End dimensions respectively.
Mod Version: Apotheosis-1.15.2-3.1.2, Placebo-1.15.2-3.0.2
Here are a few screenshots:
Note: I turned on Subtitles so I could screenshot whenever the bolt spawns. (Check bottom left corner.)

Same issue here, same MC version, same mod version.
It's annoying to the point where I have to disable the mod even though I love its content.

the lightning bolts signal a boss spawn, if you dont want random boss spawns, disable them in the configs.  The fact that its happening in other dimensions is a bug that is fixed in dev but not yet released

Oh thank the lord!
Could you maybe add a config option to just disable the thunder?

yeah, thats probably a reasonable idea

yeah, thats probably a reasonable idea

Thanks for responding :D


Gui 2.0 Requirements

Skype
For pesky 365 domains
-OverrideAdminDomain
-OverrideDiscoveryUri

Current UI design scheduled for 0.7 release