fixing the build, the dependencies are not available on the given URL…

…s any more
Hi Dan, let me know what you think. I wanna make some changes and the build did not run locally for me.

Hey buddy,
There are lots of things in this change set that shouldn't be (6.5k changes!), Shelved changes, hard coded paths etc. Please break this down into single PRs so I can review what each change is meant to do. Like upgrading to java 8, updating lib Y etc.
Does that make sense? I'm going to close this then I'll review the single PRs
Dan

Sorry, I did not realise I was committing to the same branch!  I just wanted to fix the build in the first PR. This rest was nowhere near ready as you can see, work in progress pushed to github cos I only have time on Wednesdays to do it, I thought I was on a separate branch :D Ill split it into single PRs when I am ready.


New Development

To be added by 10/27 (Friday)
File Structure

tests dir to root
auto docs like in legacyzpts

Inputs

new MoG fits to DR3, 5 replacing KDE, and for both ELGs and stars
how do this for desi sims (each random has a spectra?)
join sample on N(z)
repeat for eBOSS color boundaries
e1,e2 not b/a, phi

Outputs

sims only fits coadd in grz, with apflux matching the truth table fluxes

Qa

qa to take the rs0 hdf5 file and use it to make a coadd of image + postage stamp, ensure that it is identical to the fits coadd automatically created by the code
qa code to compare image coadd b/w obiwan run and the DR trying to ran as, should be identical

Tests

the grz flux object I inject should be the same grz flux object in the tractor catalogue. have 100x100pix stamp where have star and galaxy and tractor cat for them. add the same grz flux simulated star and galaxy to this stamp, detect it in the obiwan tractor catalogue and that that grz flux is very close to the hdf5 simulated randoms file

Production runs

py3.6
scaling tests with the various MPI flags in slurm script, threads to obiwan, and chunksize
legacysurveydirs.tar.gz, legacysurveydir_dr5/survey-ccds-legacypipe-hdufix-45455-nocuts.fits.gz has gain hardcoded to 4.0
randoms, whatever KDEs ended up with for ELGs

done


Fix e2e TestClusterGroup on kind flaky

Fixes #3387.
This PR adds a Poll to the deletion of namespace, that is done after
completion of a particular test. So, that the namespaces are deleted
completely and no content remains, so as to prevent race condition when
performing further test.

Codecov Report

Merging #3417 (b826a63) into main (7dc81f0) will decrease coverage by 20.92%.
 Consider uploading reports for the commit c5f3c0a to get more accurate results

@@             Coverage Diff             @@
##             main    #3417       +/-   ##
===========================================
- Coverage   63.32%   42.40%   -20.93%
===========================================
  Files         268      200       -68
  Lines       26871    24296     -2575
===========================================
- Hits        17017    10303     -6714
- Misses       7996    12931     +4935
+ Partials     1858     1062      -796

Flag
Coverage Δ

kind-e2e-tests
?

unit-tests
42.40% <ø> (-0.03%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/ovs/openflow/default.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/util/runtime/runtime.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/openflow/groups.go
0.00% <0.00%> (-100.00%)
:arrow_down:

pkg/agent/nodeportlocal/k8s/annotations.go
0.00% <0.00%> (-93.55%)
:arrow_down:

pkg/ovs/openflow/logs.go
9.52% <0.00%> (-90.48%)
:arrow_down:

pkg/apis/controlplane/register.go
0.00% <0.00%> (-90.00%)
:arrow_down:

pkg/agent/controller/networkpolicy/reject.go
0.00% <0.00%> (-87.91%)
:arrow_down:

pkg/agent/client.go
0.00% <0.00%> (-77.42%)
:arrow_down:

pkg/flowaggregator/certificate.go
0.00% <0.00%> (-76.58%)
:arrow_down:

...agent/controller/traceflow/traceflow_controller.go
0.00% <0.00%> (-69.86%)
:arrow_down:

... and 183 more

I'm also skeptical on this fix being sufficient to address the flake. If you look at a typical failed run like https://github.com/antrea-io/antrea/runs/5473607541?check_suite_focus=true, the timeline is like
I0309 02:16:35.024369   18017 k8s_util.go:706] Deleting AntreaClusterNetworkPolicies test-log-acnp-deny
I0309 02:16:35.035897   18017 k8s_util.go:951] Deleting test Namespace x
I0309 02:16:35.040597   18017 k8s_util.go:951] Deleting test Namespace y
I0309 02:16:35.044396   18017 k8s_util.go:951] Deleting test Namespace z
=== CONT  TestAntreaPolicy
    fixtures.go:396: Deleting 'antrea-test' K8s Namespace
--- PASS: TestAntreaPolicy (1077.56s)

I0309 02:18:27.862708   18017 k8s_util.go:221] Creating Namespace x...
I0309 02:18:27.872338   18017 k8s_util.go:228] Unable to create Namespace x, let's try updating it instead (error: object is being deleted: namespaces "x" already exists)
I0309 02:18:27.882251   18017 k8s_util.go:239] Namespace x status: &Namespace{ObjectMeta:{x    eb4597f9-fbc6-4713-aafa-7ea28441d104 5482 0 2022-03-09 01:58:45 +0000 UTC 2022-03-09 02:16:35 +0000 UTC <nil> map[kubernetes.io/metadata.name:x ns:x] map[] [] []  [{e2e.test Update v1 2022-03-09 01:58:45 +0000 UTC FieldsV1 {"f:metadata":{"f:labels":{".":{},"f:kubernetes.io/metadata.name":{},"f:ns":{}}}}} {kube-controller-manager Update v1 2022-03-09 02:16:41 +0000 UTC FieldsV1 {"f:status":{"f:conditions":{".":{},"k:{\"type\":\"NamespaceContentRemaining\"}":{".":{},"f:lastTransitionTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}},"k:{\"type\":\"NamespaceDeletionContentFailure\"}":{".":{},"f:lastTransitionTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}},"k:{\"type\":\"NamespaceDeletionDiscoveryFailure\"}":{".":{},"f:lastTransitionTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}},"k:{\"type\":\"NamespaceDeletionGroupVersionParsingFailure\"}":{".":{},"f:lastTransitionTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}},"k:{\"type\":\"NamespaceFinalizersRemaining\"}":{".":{},"f:lastTransitionTime":{},"f:message":{},"f:reason":{},"f:status":{},"f:type":{}}}}}}]},Spec:NamespaceSpec{Finalizers:[kubernetes],},Status:NamespaceStatus{Phase:Terminating,Conditions:[]NamespaceCondition{NamespaceCondition{Type:NamespaceDeletionDiscoveryFailure,Status:True,LastTransitionTime:2022-03-09 02:17:35 +0000 UTC,Reason:DiscoveryFailed,Message:Discovery failed for some groups, 3 failing: unable to retrieve the complete list of server APIs: controlplane.antrea.io/v1beta2: the server is currently unable to handle the request, stats.antrea.io/v1alpha1: the server is currently unable to handle the request, system.antrea.io/v1beta1: the server is currently unable to handle the request,},NamespaceCondition{Type:NamespaceDeletionGroupVersionParsingFailure,Status:False,LastTransitionTime:2022-03-09 02:16:41 +0000 UTC,Reason:ParsedGroupVersions,Message:All legacy kube types successfully parsed,},NamespaceCondition{Type:NamespaceDeletionContentFailure,Status:True,LastTransitionTime:2022-03-09 02:17:19 +0000 UTC,Reason:ContentDeletionFailed,Message:Failed to delete all resource types, 1 remaining: unexpected items still remain in namespace: x for gvr: /v1, Resource=pods,},NamespaceCondition{Type:NamespaceContentRemaining,Status:True,LastTransitionTime:2022-03-09 02:16:41 +0000 UTC,Reason:SomeResourcesRemain,Message:Some resources are remaining: pods. has 1 resource instances,},NamespaceCondition{Type:NamespaceFinalizersRemaining,Status:False,LastTransitionTime:2022-03-09 02:16:41 +0000 UTC,Reason:ContentHasNoFinalizers,Message:All content-preserving finalizers finished,},},},}
I0309 02:18:27.882275   18017 k8s_util.go:909] Creating/updating Pod 'x/a'
I0309 02:18:27.882288   18017 k8s_util.go:247] Creating/updating Deployment 'x/xa'
E0309 02:18:27.888757   18017 antreapolicy_test.go:101] deployments.apps "xa" not found
unable to create/update Deployment 'x/a'

The time elapsed between namespace deletion and recreation is much more than 10 seconds, so the poll will definitely fail there as well. I personally think that we might need to get to the bottom on why the namespace deletion can be stuck for that long /cc @antoninbas @tnqn

I agree with @Dyanngg that something is not right given the long time gap between the delete and create operations.
Based on the Namespace Status, it is possible that the TestReconcileGatewayRoutesOnStartup test which happens in between and causes an Agent restart has a negative effect on the test by affecting networking on that Node.
If this is specific to Kind, it is very possible that https://github.com/antrea-io/antrea/pull/3413 will help.

I also did a quick search: https://www.redhat.com/sysadmin/troubleshooting-terminating-namespaces I think we could check before we delete ns, what resources or anything else remains in the ns that affect its deletion.
As a backup, I'm not sure if the 'force deletion' provided in the link above is a little bit too much for us.

I also did a quick search: https://www.redhat.com/sysadmin/troubleshooting-terminating-namespaces I think we could check before we delete ns, what resources or anything else remains in the ns. We could delete them following the dependency between them? As a backup, I'm not sure if the 'force deletion' provided in the link above is a little bit too much for us.

I will not recommend using this approach. Forcefully removing finalizer of a Namespace can cause other resources in the Namespace still hanging, and in my past experiences it creates other sorts of troubles if there are actually resources waiting to be cleaned up

We set deleting namespace timeout to 90s for other tests: https://github.com/antrea-io/antrea/blob/a51003a42ff301613f2ec4d2e0ad4d1930651a93/test/e2e/fixtures.go#L391-L400
I did a test: deleting 3 namespaces takes 15s in my local cluster. The gap between TestAntreaPolicy and TestReconcileGatewayRoutesOnStartup is 44s, if the 3 namespaces were not deleted in that window, it may be affected by the network disruption by TestReconcileGatewayRoutesOnStartup, and may take longer time. If we wait for namespace deletion first in the teardown phase of TestAntreaPolicy, it wouldn't be affected and should take less time.
Since we already wait at most 90s for other tests, it should make sense to do same for TestAntreaPolicy. If it's just because deleting 3 namespaces may take longer than 44s somtimes, the issue should be gone.
We could also add a time stats to deleteNamespace method to see how long it takes typically.

@antoninbas @Dyanngg @GraysonWu from the added stats, we can see not only deleting namespace of AntreaPolicy but also deleting antrea-test sometimes takes more than 40s. So regardless of whether this is an antrea issue, it's not specific to AntreaPolicy, and it should be fair to make all test using same timeout for namespace deletion. How about we merging the fix first to avoid more failures and diging into why it takes more than 40s via another issue?
I0310 14:40:07.158913   18804 framework.go:630] Deleting Namespace antrea-test took 54.009549429s
    fixtures.go:385: Deleting 'flow-aggregator' K8s Namespace
I0310 14:40:50.431497   18804 framework.go:630] Deleting Namespace flow-aggregator took 43.008262304s

/skip-all

I am merging this. I think we could consider creating new Namespaces as needed (with a random suffix or a counter suffix) and see if it speeds up the tests (as we no longer need to wait for Namespace deletion all the time).


Failure running pub get

This issue was originally filed by<EMAIL_ADDRESS>
What steps will reproduce the problem?

Unzip Dart Editor (after renaming old install)
Create toy web app, run pub get.
Error message says to run "pub --trace 'get' " as listed below

What is the expected output? What do you see instead?
--- Nov 7, 2013 8:54:59 AM Running pub get ... ---
Pub get failed, [1] Resolving dependencies....................
Downloading browser 0.9.0 from hosted...
tar: /home/david/.pub-cache/_temp/dirM4gMLM: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Failed to extract .tar.gz stream to /home/david/.pub-cache/_temp/dirM4gMLM (exit code 2).
This is an unexpected error. Please run
    pub --trace 'get'
and include the results in a bug report on http://dartbug.com/new.
** Warning: Application may fail to run since packages did not get installed.Try running pub get again. **
--- Nov 7, 2013 8:59:37 AM Running pub get ... ---
Pub get failed, [1] Resolving dependencies............
Cannot create link
What version of the product are you using? On what operating system?
Editor 0.8.10_r30036, SDK <IP_ADDRESS>_r30036.  Ubuntu 12.04, 32bit
Please provide any additional information below.
david@p7-1037c:~/dart/dart-sdk/bin$ ./pub --trace 'get'
Error in pubspec.yaml:
Could not find a file named "pubspec.yaml" in "/home/david/dart/dart-sdk/bin".
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/pubspec.dart 205    Pubspec.Pubspec.load
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/package.dart 64     Package.Package.load
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/entrypoint.dart 53  Entrypoint.Entrypoint
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/command.dart 134    PubCommand.run.<fn>
dart:async                                                                                Future.Future.sync
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/command.dart 121    PubCommand.run
../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/bin/pub.dart 87             main.<fn>
dart:async                                                                                _createTimer.<fn>
timer_impl.dart 151                                                                                _Timer._createTimerHandler._handleTimeout
timer_impl.dart 166                                                                                _Timer._createTimerHandler.<fn>
dart:isolate                                                                                _RawReceivePortImpl._handleMessage
---- Log transcript ----
FINE: Pub 0.8.10+6.r30036
FINE: Clean up system cache temp directory /home/david/.pub-cache/_temp.
ERR : Error in pubspec.yaml:
    | Could not find a file named "pubspec.yaml" in "/home/david/dart/dart-sdk/bin".
ERR : ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/pubspec.dart 205    Pubspec.Pubspec.load
    | ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/package.dart 64     Package.Package.load
    | ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/entrypoint.dart 53  Entrypoint.Entrypoint
    | ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/command.dart 134    PubCommand.run.<fn>
    | dart:async                                                                                Future.Future.sync
    | ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/lib/src/command.dart 121    PubCommand.run
    | ../../../../../mnt/data/b/build/slave/dart-editor-linux-stable/build/dart/sdk/lib/_internal/pub/bin/pub.dart 87             main.<fn>
    | dart:async                                                                                _createTimer.<fn>
    | timer_impl.dart 151                                                                                _Timer._createTimerHandler._handleTimeout
    | timer_impl.dart 166                                                                                _Timer._createTimerHandler.<fn>
    | dart:isolate                                                                                _RawReceivePortImpl._handleMessage
    |
---- End log transcript ----
david@p7-1037c:~/dart/dart-sdk/bin$

This issue has been moved to dart-lang/pub#710.


fbp-tests: fix expected error messages after a fix on error message

:+1:
Well, I expect you ran check-fbp and everything is ok :-P

Agh! Merge it.


Fault Domain of Availability Test

Can you discuss fault domains as it relates to Availability Tests?  Yesterday's Azure network outage appears to have reduced the number of availability tests performed in my environment.  Availability shows 100% but I suspect that the tests weren't actually performed to determine whether my site was accessible.  It seems as though the network may be a single point of failure.

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

ID: 10858323-1827-1c73-b93a-7c133bae54ba
Version Independent ID: 3ed5fda4-c916-dcb0-a3b2-a0bb534d8bdb
Content: Monitor availability and responsiveness of any web site
Content Source: articles/azure-monitor/app/monitor-web-app-availability.md
Service: application-insights
GitHub Login: @lgayhardt
Microsoft Alias: lagayhar

@bdschaap Thank you for reaching out to us!  We'll get back to you with an answer shortly.

@bdschaap The test requests are sent from within the Azure Datacenters and we recommend testing from multiple locations (with a minimum of 5 locations) to prevent false alarms that may result from transient issues with a specific location.  You can get a bit more information from this answer regarding high availability and disaster recovery with Application Insights (and I'll apologize again for being a bit vague):
https://github.com/MicrosoftDocs/azure-docs/issues/12260

I apologize in advance for being vague in these answers, but the inner workings of Disaster Recovery and High Availability for Application Insights are generally not publicly documented in detail.
What DR/HA setup is in place for App Insights?
Generally speaking, you don't have to worry about DR/HA scenarios with Application Insights (as that is built into Azure). DR/HA is automatically integrated with Application Insights with nothing that needs to be done on your end.
In what situations would our normal App Insights be unavailable?
In the unlikely event that there is an outage your data center, you will be unable to retrieve Application Insights telemetry at that time.
Do we need to setup a second App Insights for that circumstance? Can the App Insights Client SDK be configured to failover between the two?
Major outages at data centers are very rare events, so the general recommendation is not to set up a second Application Insights instance. This can be done, but is not recommended.
For additional information, I would recommend looking at the documentation for Disaster Recovery for Azure Key Vault: https://docs.microsoft.com/en-us/azure/key-vault/key-vault-disaster-recovery-guidance


Issues with generating bindings

Hi, I have tried to use CppSharp to create bindings for alsa
using System;
using System.IO;
using System.Linq;
using CppSharp;
using CppSharp.AST;

namespace AlsaSharp
{
    class AlsaSharp : ILibrary
    {
        static void Main(string[] args)
        {
            ConsoleDriver.Run(new AlsaSharp());
        }

        public void Setup(Driver driver)
        {
            var options = driver.Options;

            options.LibraryName = "AlsaSharp";
            options.Headers.Add("alsa/asoundlib.h");
            options.OutputDir = "AlsaSharp";
            options.Verbose = true;
            options.CheckSymbols = true;
        }

        public void SetupPasses(Driver driver)
        {
        }

        public void Preprocess(Driver driver, ASTContext ctx)
        {
        }

        public void Postprocess(Driver driver, ASTContext lib)
        {
        }
    }
}

This looks basically like the SDL example. But it does not produce anything.
The file asoundlib.h has only includes, just like the SDL example:
/**
 * \file include/asoundlib.h
 * \brief Application interface library for the ALSA driver
 * \author Jaroslav Kysela<EMAIL_ADDRESS> * \author Abramo Bagnara<EMAIL_ADDRESS> * \author Takashi Iwai<EMAIL_ADDRESS> * \date 1998-2001
 *
 * Application interface library for the ALSA driver
 */
/*
 *   This library is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU Lesser General Public License as
 *   published by the Free Software Foundation; either version 2.1 of
 *   the License, or (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU Lesser General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 *
 */

#ifndef __ASOUNDLIB_H
#define __ASOUNDLIB_H

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
#include <fcntl.h>
#include <assert.h>
#include <endian.h>
#include <sys/poll.h>
#include <errno.h>
#include <stdarg.h>

#ifndef __GNUC__
#define __inline__ inline
#endif

#include <alsa/asoundef.h>
#include <alsa/version.h>
#include <alsa/global.h>
#include <alsa/input.h>
#include <alsa/output.h>
#include <alsa/error.h>
#include <alsa/conf.h>
#include <alsa/pcm.h>
#include <alsa/rawmidi.h>
#include <alsa/timer.h>
#include <alsa/hwdep.h>
#include <alsa/control.h>
#include <alsa/mixer.h>
#include <alsa/seq_event.h>
#include <alsa/seq.h>
#include <alsa/seqmid.h>
#include <alsa/seq_midi_event.h>

#endif /* __ASOUNDLIB_H */

But it doesn't produce anything, even though all the other files exist. Maybe I am doing something wrong which is obvious to you @tritao ?

Can you paste the log?

It is basically empty:
mono Test.exe
Parsing libraries...
Indexing library symbols...
Parsing code...
Triple: x86_64-unknown-linux-gnu
ignoring nonexistent directory "./lib/clang/3.7.0/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
Parsed 'alsa/asoundlib.h'
Triple: x86_64-unknown-linux-gnu
ignoring nonexistent directory "./lib/clang/3.7.0/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
Processing code...

Log looks good, try removing the options.CheckSymbols = true option.

The output is the same:
Parsing libraries...
Indexing library symbols...
Parsing code...
Triple: x86_64-unknown-linux-gnu
ignoring nonexistent directory "./lib/clang/3.7.0/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
Parsed 'alsa/asoundlib.h'
Triple: x86_64-unknown-linux-gnu
ignoring nonexistent directory "./lib/clang/3.7.0/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/4.8
 /usr/include/x86_64-linux-gnu/c++/4.8
 /usr/include/c++/4.8/backward
 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
Processing code...

Have you figured it out? If not feel free to send me a package with your solution and ALSA headers and I'll take a look.

No, not really. This is the file: http://bentkus.eu/~bentkus/alsa.tar.gz


Storage cannot be implemented by others

The current Storage interface returns Prefix structs. But the Prefix struct contains private fields which cannot be filled/returned by external implementations as they do not see this fields. But the Prefix implementation relies on these fields and their correctness.
i see the following options:

extend the Storage interface with methods for manipulating the current private fields
create a new StoragePrefix which is returned/consumed by a storage and contains only the data from the storage. the Prefix always copies the data to it's own fields.
make the interface private and remove the NewWithStorage fuction. new storage backends have to be provided by the library and must provided as PR's

i'd propose the third option as atm i cannot see any other implementations for Storage from outside of our project.

I agree with your findings and propose the third option as well, having support for different storages was introduced more from the abstraction and testing  perspective.

As we already have support for plenty of databases implemented, i am closing this.


Fix t-tests when variance is zero

Just a quick fix, should probably replace most of this code with scipy.stats.ttest_ind/ scipy.stats.stats.ttest_ind_from_stats with equal_var=False.

#620

Someone should review this before it's merged. I think this won't cause any problems, but I'm also not too familiar with the DE code.

I wonder why this wasn't done in the first place. Is scipy not already a dependency of scanpy? Or is this slower than the initial implementation?

Looks great! I wasn't aware of this high-dimensional version of a t-test in Scipy, which seems to be as efficient as the current implementation. I only investigated thoroughly for Wilcoxon rank and found that Scipy doesn't have a scalable version to offer.
But yes, this will get merged after 1.4.1.

1.4.1 is out, are we sure this is as scalable as it was before and not a backwards breaking change. If yes, we can merge immediately.

I'm not completely sure this doesn't break anything, but the regression tests pass. The internal code is very similar, so I'm not too worried about these changes.
It does look like it's (very) slightly slower. Running this a thousand times for pbmc68k dataset took ~2.3% longer (about 1.4 ms per run) than the previous version. That said, we're very inefficient about mean and variance calculation, so I think that's a better place to optimize.

Great! 2.3% is nothing...


IBM-Swift/Kitura-Credentials#6 Add constructors to UserProfile nested…

Add constructors to UserProfile nested structures
Description

Motivation and Context

Resolves IBM-Swift/Kitura-Credentials#6
How Has This Been Tested?

Checklist:

[ ] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

Looks OK. Merging.


cloudmgr: Move the package to pkg/adaptor/cloud

This patch changes the location of the cloudmgr package, so that we can share this package with commands
other than cloud-api-adaptor. The code for processing command line arguments and environment variables for each cloud provider is also moved to the corresponding provider package.
Fixes #786
Another PR will follow to update the reference to this package in peerpod-ctrl, after this PR gets merged.
https://github.com/confidential-containers/cloud-api-adaptor/blob/019f6810132c95791c13aac1a1f236d90cb97a5d/peerpod-ctrl/main.go#L35
A separated PR is necessary, since peerpod-ctrl is a independent Go module, and directly refers the remote module in GitHub, instead of the local package.
https://github.com/confidential-containers/cloud-api-adaptor/blob/019f6810132c95791c13aac1a1f236d90cb97a5d/peerpod-ctrl/go.mod#L6

LGTM, thanks!


Loose typechecking on innerJoin/leftJoin comparisons

This was a bit surprising, as it shows a type error correctly on where comparisons, see this simple example using branded types
https://kyse.link/?p=s&i=PjMrcBVj8yaFueFzYI9B

whereRef also has the same loose type issue. You used where which compares the column to a value "u.id".

Oh yeah, I always forget these two are separate, my bad, gonna update the example


Does not download from kickass(kat.cr)

I tried using torrent files download from kat.cr(Kickass torrents) but the client does not download them. Client does download files from other torrent sites like learflakes.net

Usually their files are gzip'ed, run file ___filename___ to verify

so how can i make ttorrent work with kickass.

You just have to decompress the file. After you download the torrent file, do something like this:
file file.torrent # should return "GZIP file" (or something similar)
mv file.torrent file.torrent.gz
gzip -d file.torrent.gz
file file.torrent # should return "BitTorrent file"

file torrentFileDownloadedFromKickass.torrent
returns Bittorrent file

Please either post the .torrent file, or the output logs of ttorrent. Thanks

Closing for inactivity. Please re-open if this is still an issue or if you can post output logs of ttorrent that would help us see what's going on or what error you're seeing.


CB-12609: added<EMAIL_ADDRESS>release blog post

Please review!
I think the summary about us updating the way we use gradle could use more info. Any suggestions @infil00p?
@dpogue how does the resource-file section look?

@infil00p's makes a great point here:

We should explicitly state here that we now require either Gradle or Android Studio to be installed, since our old configuration didn't require either of these things to be installed previously.

We should call this out at the top-level IMO, and not within the CB bug list. I say right alongside the note about the SDK Tools 25.3.1 changes.


Display a suggested end date when creating a booking

Changes in this PR

When creating a book, a suggested end date is shown

Screenshots of UI changes

 Display a suggested end date when creating a booking


Feat/cache

@mkundu1 this is looking very good - many thanks for taking it on! Do we still think there's an issue with BeginStreaming on the server-side for some datamodels (e.g., workflow)?

@mkundu1 this is looking very good - many thanks for taking it on! Do we still think there's an issue with BeginStreaming on the server-side for some datamodels (e.g., workflow)?

@seanpearsonuk I don't think there are any issues with BeginStreaming on the server-side for specific datamodel. We will probably face some issues due to usage of NoCommandsDifferencer for extracting the diff in server side.

Rebased and squashed the branch


[Communication] - Phone Numbers - Enable Search Toll Free Phone Number Tests

Service previously disabled searching for toll free numbers because of fraud issues but it was recently re-enabled so we can enable our tests as well

/azp run java - communication - tests

/azp run java - communication - tests

/azp run java - communication - tests


interprocedural data flow

Data flow should take account of the ABI and propagate across procedure boundaries.

Ref: #529

This is now present and is used to handle global pointer usage.


add XFCC-related config tests for invalid values

Description
Following up with XFCC-related tests to ensure invalid config values result in errors.
Related Issues
#2053

One interesting thing I noticed when plumbing the test code: ResourceFetcher.handle_k8s() silently ignores blocks that KubernetesObject won't parse. I forgot to place the name attr in a metadata section in the config hunks in this PR, which led to some tail chasing.
I don't have a ton of context here, might make sense to log in this case? Looks like it's got access to the logger instance.
        try:
            obj = KubernetesObject(raw_obj)
        except ValueError:
            # The object doesn't contain a kind, API version, or name, so we
            # can't process it.
            return

The challenge with logging in that case is... what would we log? "Hey, you have an illegally-formed object to which we can't refer.... somewhere"? 🙂
(We could always spit out its serialization, but it could be very large, so we'd need to be careful to only do it once... hmmm...)


Allow suggestions and tooltips to be provided as collections in addition to arrays

This PR simply adds overrides for passing collections for arguments and tooltips as well as using arrays.
The aim of this is to avoid conversion into arrays when generating suggestions or tooltips. This can be particularly irritating when generics get involved, so instead collections avoid this problem.
For example in ArgumentSuggestions
	 /**
	 * Suggest hardcoded strings
	 *
	 * @param suggestions array of hardcoded strings
	 *
	 * @return an {@link ArgumentSuggestions} object suggesting hardcoded strings
	 */
	static ArgumentSuggestions strings(String... suggestions) {
		return (info, builder) -> future(suggestionsFromStrings(builder, suggestions));
	}

gets an additional overload
	/**
	 * Suggest hardcoded strings
	 *
	 * @param suggestions collection of hardcoded strings
	 *
	 * @return an {@link ArgumentSuggestions} object suggesting hardcoded strings
	 */
	static ArgumentSuggestions strings(Collection<String> suggestions) {
		return (info, builder) -> future(suggestionsFromStrings(builder, suggestions));
	}

This is repeated for all methods in ArgumentSuggestions, SafeSuggestions, Tooltip, and StringTooltip that use array arguments or varargs.
Unfortunately due to Generic erasure with the Function type, it was not possible to keep all overloads with the same name
	/**
	 * Suggest an array of strings as the result of a function
	 *
	 * @param suggestions function providing the strings as an array
	 *
	 * @return an {@link ArgumentSuggestions} object suggesting the result of the function
	 */
	static ArgumentSuggestions strings(Function<SuggestionInfo, String[]> suggestions) {
		return (info, builder) -> future(suggestionsFromStrings(builder, suggestions.apply(info)));
	}

	/**
	 * Suggest a collection of strings as the result of a function
	 *
	 * @param suggestions function providing the strings as a collection
	 *
	 * @return an {@link ArgumentSuggestions} object suggesting the result of the function
	 */
	static ArgumentSuggestions stringCollection(Function<SuggestionInfo, Collection<String>> suggestions) {
		return (info, builder) -> future(suggestionsFromStrings(builder, suggestions.apply(info)));
	}

In my opinion it's not worth deprecating the original method in favour of something like stringArray(Function<SuggestionInfo, String[]>) but this is of course possible if required.
The return type of methods in Tooltip and StringTooltip have all been migrated to use Collection instead of array to avoid problems with generic array creation and unchecked casts.
It doesn't entirely sit right with me just how many methods now exist in these classes, but this is due to the inflexibility of Java's type system. This is also why I created ArgumentSuggestions and SafeSuggestions classes, to store these factory methods without needing to modify the Argument implementation.

Sounds good to me 👍
I'm aware there are lots of overloads and it's a pain because it adds more bloat than actually necessary, but these tiny details makes the API easier to use and that's always a big plus.


Fix parse_coordinate_system

Fix Result.parse_coordinate_system such that it correctly returns a dictionary as originally intended. This allows for coordinate systems generated with CSYS (or the default cyclic system 12), to be accessed by index.

@germa89's out of office for a couple of days (until next week) - since I am no MAPDL expert I will leave it to him. Maybe @mikerife wants to weigh in while he is out and give feedback?

Merged to get 0.53.0 out


init_DB should be updated to insert new needed intial data.

Part of init_DBs job is to insert dependent structural data from CSVs. If we add to these we need init_DB to insert the new stuff. Right now we would have to delete the DB and have init_db remake it which is not functional.
Helpful notes:

The methods that insert the reference information should be changed to ignore duplicates.
If the queries ignore duplicates you could always insert the CSVs every time and it would be fine.
A row of the CSV might have to be quarried to detect a change and perhaps a need and update? This might not matter as you really shouldn't change and structural row like a mapping, and if you do that might be a bigger job than what init_DB is supposed to handle.

Create a python script for each change:

Check a version number in the DB to determine weather to run or call something else first
Should have one method that makes the changes to the DB
Should have one method that rolls back the changes to the DB


Add initial tests for App and generator

This PR adds some unit tests and user interaction tests for issue https://github.com/Open-SL/serverless-permission-generator/issues/10
I've also enabled coverage report and add a test job as part of the build workflow. Hope this helps! 😃

 PASS  src/generator/__test__/index.test.js
  ✓ generating minimum policy (4ms)

 PASS  src/App.test.js (5.901s)
  ✓ display the generated policy for the given project data (2034ms)
  ✓ display error for invalid account ID (905ms)

--------------------|----------|----------|----------|----------|-------------------|
File                |  % Stmts | % Branch |  % Funcs |  % Lines | Uncovered Line #s |
--------------------|----------|----------|----------|----------|-------------------|
All files           |    39.82 |    38.46 |    18.18 |    39.82 |                   |
 src                |    14.29 |    11.11 |     5.56 |    14.29 |                   |
  App.js            |     87.5 |      100 |       50 |     87.5 |                81 |
  index.js          |        0 |      100 |      100 |        0 |             10,20 |
  serviceWorker.js  |        0 |        0 |        0 |        0 |... 32,133,135,138 |
 src/components     |    64.29 |    38.89 |    44.44 |    64.29 |                   |
  Form.js           |      100 |       50 |      100 |      100 |... 48,279,310,341 |
  ResourcesArray.js |     37.5 |    16.67 |    16.67 |     37.5 |    27,31,41,52,61 |
 src/generator      |       44 |       50 |     12.5 |       44 |                   |
  index.js          |       44 |       50 |     12.5 |       44 |... ,92,97,100,105 |
 src/validation     |       72 |    61.76 |      100 |       72 |                   |
  index.js          |       72 |    61.76 |      100 |       72 |... 28,32,36,40,44 |
--------------------|----------|----------|----------|----------|-------------------|
Test Suites: 2 passed, 2 total
Tests:       3 passed, 3 total
Snapshots:   0 total
Time:        8.164s, estimated 9s
Ran all test suites.


CreateDefaultPlatform is deprecated warning (V8 6.4.291)

"Use NewDefaultPlatform instead".
v8/v8@ffee558e14e28fc8b1f9a3c10ea3615e0d686c7b

For some reason upgrading from CreateDefaultPlatform() to NewDefaultPlatform()  doesn't work well.
Hello world example throws:
/home/vagrant/php-v8/scripts/test_v8/hello_world.cpp:21: undefined reference to `v8::platform::NewDefaultPlatform(int, v8::platform::IdleTaskSupport, v8::platform::InProcessStackDumping, std::unique_ptr<v8::TracingController, std::default_delete<v8::TracingController> >)'

Extension itself is unable to load:
/home/vagrant/.phpbrew/php/7.2-debug/bin/php: symbol lookup error: /home/vagrant/php-v8/modules/v8.so: undefined symbol: _ZN2v88platform18NewDefaultPlatformEiNS0_15IdleTaskSupportENS0_21InProcessStackDumpingESt10unique_ptrINS_17TracingControllerESt14default_deleteIS4_EE

After spending some time on troubleshooting, I think we need more eyes on this. I posted to v8-users mailing list (https://groups.google.com/forum/#!topic/v8-users/Jb1VSouy2Z0).

It came up that the issue was in how libv8 was build (it wasn't build in a relocatable way and thus wasn't quite good for packaging).

Done in #87. Thanks for taking care!


vertical alignment

Hi, @moshi4,
Thank you for this sharing. I like this work since it can be integrated into other components in matplotlib. I wonder if the tree visualization can be produced in vertical alignment. Although it may be handled after producing the image, it will be more integratable if other component in matplotlib will be added onto the same axes.
thanks a lot
YC

Hi @b87401116,
phyTreeViz only allows tree plots in the horizontal direction.
I think adding vertical tree plotting functionality is a good idea, but implementing that functionality in phyTreeViz is quite cumbersome. Therefore, I am not currently considering implementing a vertical tree plot feature.
I am sorry that I could not meet your request.


Restrict service and service plan descriptions to 10000 characters

Previously, there was a database-imposed limit of 255 characters on description fields on MySQL only.
For MySQL users, this will be an increase in the possible length of the description field. For Postgres users, this will be a decrease (i.e., a new restriction).
This is, therefore, a breaking change for anyone who is using Postgres and has a description field in their broker catalog of larger than 10_000 characters. If such a broker exists, they will get an error the next time they update the service broker. They can fix this by reducing the size of the description to 10_000 characters or less.
Thanks, Services API Team (@ablease an @lurraca)

[x] I have reviewed the contributing guide

[x] I have viewed, signed, and submitted the Contributor License Agreement

[x] I have made this pull request to the master branch

[x] I have run all the unit tests using bundle exec rake

[x] I have run CF Acceptance Tests

@Gerg @zrob Do you have any thoughts on this?

@tcdowney We amended the commit that was the reference for previous conversations, so we lost the comment history on this PR. But from your suggestion, we added a comment explaining why we are disabling the rubocop check.
Luis & @ablease

Thanks everyone, I've merged it!


Add integration test for Go FhirIO Read transform

This ticket is a follow up to https://issues.apache.org/jira/browse/BEAM-14451 and it consists of adding integration testing to the Read transform added on the mentioned ticket.
Buganizer ticket: https://b.corp.google.com/issues/234357022/
Imported from Jira BEAM-14532. Original Jira may contain additional context.
Reported by: lnogueir.

Unable to assign user @lnogueir. If able, self-assign, otherwise tag @damccorm so that he can assign you. Because of GitHub's spam prevention system, your activity is required to enable assignment in this repo.

Hi, I am unable to self-assign @damccorm

There's a pull request opened for this issue: #17803. I am unable to link them, could you do that @damccorm?

Hey @lnogueir if you mention this issue in a comment or the description it will automatically add a link in this issue (just like it added a link in the PR when you mentioned #17803 in your comment)

Hey @lnogueir if you mention this issue in a comment or the description it will automatically add a link in this issue (just like it added a link in the PR when you mentioned #17803 in your comment)

Nice! Thanks.

Oh, if you want it to close the PR after merging, instead of just mentioning the issue you can add Fixes #21679 in the description. That should cause it to show up in the development section

Oh, if you want it to close the PR after merging, instead of just mentioning the issue you can add Fixes #21679 in the description. That should cause it to show up in the development section

Thanks, that's exactly what I was looking for!


Implement clickCount on HTML5 and Native.

Added missing implementation for counting click sequences. needs to be merged for (https://github.com/openfl/openfl/pull/2587)

The FileDialog update is in the commit log becuase of my last contribution, doesnt do anything though

woops, turns out i do need Flash & air implementations for clickCount (even if theyre very basic)

The FileDialog update is in the commit log becuase of my last contribution, doesnt do anything though

You should put each PR into a different branch to avoid this. It'll make things easier to merge.

The FileDialog update is in the commit log becuase of my last contribution, doesnt do anything though

You should put each PR into a different branch to avoid this. It'll make things easier to merge.

Yeah, luckily this update has already been merged so it doesn't change anything. About flash & air, turns out I don't need to implement those

Looks like lime sample fails because it listens to window.onMouseDown, which now requires 4 arguments  instead of 3. Where are the lime samples?

https://github.com/openfl/lime-samples

https://github.com/openfl/lime-samples

Do I need to make a PR there too before this gets merged? (A pr to add a cluckCount argument to onMouseDown functions)

I don't know if we're going to merge this at all, given that it breaks existing code. If we did merge it, then yes, someone would need to update the samples.

I don't know if we're going to merge this at all, given that it breaks existing code. If we did merge it, then yes, someone would need to update the samples.

The reason I want it to get merged is because clickCount is needed for word & paragraph selection in TextField. There's no way for it to not break existing code  given that it changes the function signature in the c/c++ code, and the extra arguments needs to be present somewhere in mouse event management

The selection thing is actually the reason we discovered clickCount was unimplemented

Tricky. If only things were implemented differently, maybe there would be a non-breaking way to do this. Like passing the MouseEventInfo object instead of individual arguments. But of course, at this point that would be an even bigger breaking change.
That said, clickCount is listed in the documentation, which means it definitely should be implemented, breaking change or no. It still isn't appropriate for a micro patch like 8.0.1, but maybe a minor patch like 8.1.0. We'll have to get some more opinions on that.

We are definitely going to implement this. I was going to do it myself over the past weekend as I already mentioned but I didn't quite have enough time and you guys got a bit ahead of me. Slow down a bit and give me a chance to look at this more so I can provide some better input.

I think if we want to avoid breaking changes, we need to add a separate property for click count somewhere in Lime that a listener for onMouseDown can access.
Perhaps simply on lime.ui.Window.
public var onMouseDown(default, null) = new Event<Float->Float->MouseButton->Void>();
public var clickCount(default, null):Int = 0;

It's not ideal, but I don't see many other options, unless we're okay with a breaking change that requires Lime 9. I think it's too soon to jump to 9, so if we really need a breaking change, this PR should probably wait. Personally, I don't think that this PR should wait, so we need to consider this or other alternatives.

Now that you mention it, I did the same thing in this situation when rewriting the threading classes. I looked for other options but didn't find any good ones.

@joshtynjala I think we should just handle it exclusively internal and use it temporarily until Lime 9 in OpenFL, similarly to how we discussed doing Process to fix the issue from hxcpp. There will be no noticeable changes in Lime for now. I think it provides a clean stop-gap measure that avoids any confusion between versions and gives us time to save any breaking changes for a major version release.

Yeah, making it an internal API that only OpenFL can access for now sounds fine.

I don't think I have any problem (time-wise) trying to extract clickCount from onMouseDown. Yhe question is how should I do that

If I manage to make this not a breaking change, would it be merged soon?

I think the plan for now is
public var onMouseDown(default, null) = new Event<Float->Float->MouseButton->Void>();
@:allow(openfl.display.Stage)
private var clickCount:Int = 0;

Why private? Isn't this info useful for lime users too?
I think going the extra mile by making it public and (default, null) is preferred

Where isouse related data usually stored? Just want to be consistent

Ok, this is what i think can be implemented, and it might be a nice structure to adopt temporarily to avoid breaking changes:
Ill create a new file called MouseData, in which ill insert a public, unsettable field called clickCount. other status changes/values can be passed onto that structure. when dispatching MouseEvent.MOUSE_DOWN/MOUSE_UP/CLICK/DOUBLE_CLICK, ill get the value from the MouseData class and dispatch it. its not a breaking change, and it welcomes other types of enrichment in the mouse/keyboard/joystick department:
//MouseData will be in lime.data
package lime.data;

@:allow(openfl.display.Stage)
class MouseData {
    public var clickCount(default, null):Int;
    //MouseData can be easily expanded when needed

    function new() {
        clickCount = 0;
    }
}

//in Stage.hx

MouseEvent.__create(..., mouseData.clickCount);

Im ofc open to other suggestions, i like this one because it allows expanding upon existing i/o features without any breaking changes to both OpenFL and Lime.

Why private? Isn't this info useful for lime users too?

Yes, it is useful for Lime users, but we need to consider future maintenance and user impact as well.
We would prefer to change the signature of onMouseDown, but we can't until the next major version. So, as an alternative, we create a separate property for clickCount. That's where things get tricky. If we exposed clickCount publicly, do we keep it around if we later add it to onMouseDown too? Or does it get removed, since it will become redundant? It's either a breaking change or legacy code to be maintained. Both have downsides.
If we start out by making it private for OpenFL use, we avoid those downsides, while creating minimal impact on the Lime API. Sure, there's yet another downside that Lime-only users won't be able to access it, but they couldn't before either, so it's not like we're taking anything away. Moreover, it's technically possible to write code with the existing APIs to calculate click count manually.
In the future, as Lime 9 approaches, we can look again at how to expose the click count for Lime users too. We might add it to onMouseDown, as I mentioned. Or we might even keep the clickCount property, but change it from private to public, if our final decision is that it's too much of an impact on a core API like onMouseDown, even for a major version. We still have that option.
Finally, right now, I think that it's more important to get clickCount in OpenFL. Spending too much time worrying about how to expose the API in Lime today will delay that, when all of us have limited time to work on these projects.

ok, ill get to implementing rn.
what i think im gonna do is set the clickCount every time a MouseEventInfo object of type MOUSE_UP or MOUSE_DOWN is created. is that ok?

ive just removed the breaking change, can somebody run CI to check?

oh it runs automatically 😅

ive just realized the value isnt getting passed onto the function anymore 🤔 lemme fix this and then merge this

everything works now, tested on HL, neko and html

can somebody run CI again? haxelib misbehaving...

The main question I still have is cleanup. Here's how I see it:
If we could, we would have added another argument to the event. However, we can't do this because it would break backwards compatibility. Instead, our best option is to add a private variable. Because this private variable is replacing a function argument, it must exist for the duration of the function, and doesn't need to exist afterwards.

I'll do it your way (cleanup wise). I'll commit when I'm done. Thanks for the help :)

Yeah, I requested by accident and for some reason didn't find a way to cancel the request 😆


update error message and nodepool commands

Need it for update and resize

Update command is currently under development, we will add it soon


[Automation] Generate SDK based on TypeSpec 0.19.1 DEV

[Automation] Generate SDK based on TypeSpec 0.19.1 DEV

API change check
API changes are not detected in this pull request.


Token cache

Could do with some polish, but this will cut down on the auth spam. Cursory tests show significant throughput/latency gains.
What this PR does:

Cache auth token
Read max-age Cache-Control header & set expiration if possible, default to 10 minutes, or honor no-cache/no-store directives
Refresh within 30 seconds of expiration

Which issue(s) this PR fixes:
Fixes #18
Checklist

[x] Changes manually tested
[N/A] Automated Tests added/updated
[N/A] Documentation added/updated
[x] CLA Signed: DataStax CLA

I'm not sure this will work. There seems to be an outside possibility that the server could forget the token is valid. Currently, the token refresh mechanism is nested in an implementation of the GetRequestMetadata interface in the grpc package, so I can't see a way to trigger a manual refresh from the code that sees the error. I thought about sticking the token on the context, but there are calls that don't use context... open to ideas.

Good call. I don't remember all the details on how token auth work in Stargate (I think it might be on a sliding window based on usage). I need a bit of time to refresh my mind on how that work to provide good feedback there. It's almost like we need the token to only be regenerated when the service becomes unauthorized, but this might not be needed if it's on a sliding window. Give a couple days to think about it and I'll get back to you.  If you have time you could try checking out the token-auth component in Stargate.

It looks like the auth service will return a cache control header with max age if there's not an error: https://github.com/stargate/stargate/blob/v1.0.63/auth-api/src/main/java/io/stargate/auth/api/resources/AuthResource.java#L193-L196


Add dispatch async for main thread execution

This PR fixes UI hangs and app unresponsiveness when using the get/set/is available functions, by using the main thread for execution.
I was getting lengthy UI hangs and app unresponsiveness (usually lasting a few seconds) when attempting to get/set icons for my React Native app. There were also warnings in Xcode about not using the main thread. This PR fixes those warnings, and stops the lengthy UI hangs/unresponsiveness.

Issue that this addressed re-arose, indicating this did not fix it.


Rock Paper Scissor Game Added

I develop a Rock Paper Scissor Game Using HTML, CSS, and JavaScript.

@microsoft-github-policy-service agree [company="{your company}"]

@microsoft-github-policy-service agree [company="{JECRC Foundation}"]

@microsoft-github-policy-service agree [company="{default}"]

@microsoft-github-policy-service agree

@microsoft-github-policy-service agree company="I'm a Student"

@microsoft-github-policy-service agree company="Jaipur Engineering College And Research Centre"

Thank you for your suggestion to add a rock/paper/scissors game! We are currently not expanding this to any new lessons and projects. But stay tuned for when we open contributions for additional lessons, and example web apps to build. For now, sharing your creations within Discussions would be amazing!


Metadata?

I'm confused as to what the Metadata commit message means.
Could you clarify it please? Thanks!

I typically use it when adding keywords or other information to my package.json or similar files. Usually has to do with package managers and not the actual software.

Gotcha 👌


Set up prepackaged builds

Its annoying for end users to have to compile from source, so setting up prepackaged builds is a must.

 Set up prepackaged builds


Add a log struct for CDFContext rollback

Detailed performance analysis to be added shortly. The essence is that large memmove is replaced by smaller copies:
     5.69%     -3.32%  libc-2.32.so        [.] __memmove_avx_unaligned_erms
     3.16%     +1.63%  rav1e               [.] <rav1e::ec::WriterBase<S> as rav1e::ec::Writer>::symbol_with_update

x86_64

Coverage increased (+0.01%) to 83.015% when pulling b0922beb4b3eaf4e1a376d1fc9b498f372be2891 on barrbrain:cdf-log into 61133e3434ea113ab4bb31c526a170ca594fccaf on xiph:master.

An abridged transcript of review comments on IRC:

[02:45] <derf> barrbrain: let offset = (cdf.as_ptr() as usize - self.base) as u16;
[02:46] <derf> Maybe a good idea to add a debug_assert!() that value fits before truncation?
[02:46] <barrbrain> ah yeah, quite a few possibilities for debug_assert
[02:46] <derf> I do not think the automatic overflow-checking in debug builds checks that case.
[02:50] <derf>   base: usize,
[02:51] <derf> ^ That field never gets used anywhere?
[02:51] <derf> Oh, no, it gets used in the line I already pasted.
[02:51] <derf> I guess it is a little weird that it is not used in rollback() though?
[02:52] <barrbrain> Yeah, it primary exists because of complexities of the borrow checker.
[02:59] <derf> Do we need to do something like force CDFContext to use a C-compatible representation to keep Rust from doing something like moving the padding somewhere other than the end?
[03:01] <lu_zero> derf: we can use #[repr(C)]
[03:06] <smarter> https://doc.rust-lang.org/reference/type-layout.html says "There are no guarantees of data layout made by [the default] representation."
[03:07] <derf> Yeah, that was why I brought it up.
...
[03:17] <derf> barrbrain: So, looking at the fixed-length push(), it looks like you are unconditionally assuming there is room for a new CDF at the start, and then reserving space for the next one at the end.
[03:18] <derf> Is that correct?
[03:26] <lu_zero> derf: I'm checking the vec documentation, it has a capacity such as you can fit lots of them, doublechecking that a zero-lenght Vec behavior is the one we think it is
[03:26] <lu_zero> https://doc.rust-lang.org/std/vec/struct.Vec.html#capacity-and-reallocation
[03:27] <lu_zero> If a Vec has allocated memory, then the memory it points to is on the heap (as defined by the allocator Rust is configured to use by default), and its pointer points to len initialized, contiguous elements in order (what you would see if you coerced it to a slice), followed by capacity-len logically uninitialized, contiguous elements.
[03:27] <lu_zero> seems that it is fine
[03:27] <derf> Yes, I'm not disputing its correctness.
...
[03:29] <derf> I assume the reason is because it benchmarks faster this way.
[03:32] <derf> But it's a little weird (i.e., it's a specialization of the contract that Vec provides that has to be maintained outside the function), so maybe it deserves a comment that says, "We do it this way because we tested and it benchmarks faster."
[03:33] <lu_zero> I can run the benchmarks on different variants and confirm
[03:33] <barrbrain> derf: yeah, it would be good to add a comment
[03:33] <barrbrain> lu_zero: thank you
[03:33] <derf> Okay, I think that is all the comments I have.
[03:33] <derf> Everything else looks good.

testing on honeycomb shows promising results


inspector/proc: Fix panic: Invalid parameter n: 0

Fix #174
Please test @mitake

thanks, I'm testing  it

I tested this PR with almost 100 iterations and the problems seems to be resolved. Thanks!

Coverage decreased (-0.0003%) to 40.254% when pulling eb92401298afc421b69f6967dff4f866d5004ba2 on suda/wip into 37eb5c1eb14283b8a03c1600456164a6c87089e6 on master.

Merged, happy to hear that


allow min length 1;

1. Why is this change necessary?
Minimum length of search text can be 1: https://issues.shopware.com/issues/NEXT-19255
2. What does this change do, exactly?
Allow text in SearchWidget to be minimum length 1.
3. Describe each step to reproduce the issue or behaviour.
Configure minimum search length to 1 or 2 and try to search from SearchWidget for these products. You cannot find them, because the search only triggers after 3 characters.
4. Please link to the relevant issues (if any).
https://issues.shopware.com/issues/NEXT-19255

https://issues.shopware.com/issues/NEXT-18824
5. Checklist

[x] I have written tests and verified that they fail without my change
[x] I have created a changelog file with all necessary information about my changes
[x] I have written or adjusted the documentation according to my changes
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I have read the contribution requirements and fulfil them.

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

Shouldn't this be configurable instead of hardcoding it to 1? I don't think every merchant needs search suggestions when 1 character is filled in, which can result in unnecessary database queries / load on the server.

i completely agree with @MelvinAchterhuis, there is already a minSearchLength field in the ProductSearchConfig IMHO we should use the configuration from there also in the storefront search widget.

I've created a configurable solution, see https://github.com/shopware/platform/pull/2372


Add support for DECIMAL, REAL, DOUBLE, TIME in dbt seed

dbt seed command does not currently escape some data types supported by trino.
Perform the changes in the method dbt.adapters.trino.connections.ConnectionWrapper._escape_value
Make sure to add a corresponding model which contains all these types in the automated tests.
seeds:
  jaffle_shop:
    seed_data_types:
      +column_types:
        c_timestamp: timestamp
        c_date: date
        c_time: time
        c_char: char(10)
        short_decimal: decimal(10,2)
        long_decimal: decimal(10,2)
        c_real: real
        c_float: float

Check https://docs.getdbt.com/docs/building-a-dbt-project/seeds  (the FAQ section as well) to get a better understanding of seeds in dbt. Do perform also tests for the seeds (as documented in the " How do I test and document seeds?" from the FAQ section) to ensure compatibility with the functionality provided by dbt.

Resolved by: https://github.com/starburstdata/dbt-trino/pull/44


Cannot convert undefined or null to object in setDefaultSitemapOptions

I receive the following error:
 FATAL  Cannot convert undefined or null to object                                                                                03:27:38

  at Function.keys (<anonymous>)
  at setDefaultSitemapOptions (node_modules/@funken-studio/sitemap-nuxt-3/dist/module.mjs:196:28)
  at registerSitemap (node_modules/@funken-studio/sitemap-nuxt-3/dist/module.mjs:337:13)
  at registerSitemaps (node_modules/@funken-studio/sitemap-nuxt-3/dist/module.mjs:333:5)
  at node_modules/@funken-studio/sitemap-nuxt-3/dist/module.mjs:413:7

It's source is: https://github.com/funken-studio/sitemap-module-nuxt-3/blob/30418ff94f236e22a6b2f2915814350d2753cb05/src/options.ts#L44

@dargmuesli I released a new version, should be fixed :)

Thank you for the quick fix! I now get a different error: Cannot read properties of undefined (reading 'push')
Coming from: https://github.com/nuxt/framework/blob/ccec0a37389a5245cbcea98b74c640fd8870cd78/packages/kit/src/server.ts#L39
and: https://github.com/funken-studio/sitemap-module-nuxt-3/blob/91f515cb3c4e880755c34d7b2432dafeb7ada3e3/src/middleware.ts#L59

For context: I do not use dynamic routes. Thus I did not any of the files mentioned in the README. I only want to have the static paths generated, currently.

Somehow nuxtjs/i18n-edge required single quotation marks around my translation source blocks. This errors:
<i18n lang="yml">
de:
  foo: bar

this does not:
<i18n lang="yml">
de:
  foo: 'bar'

Am I missing a migration? Do you know of any @d3xter-dev?

nuxtjs/i18n-edge is still WIP  so the current documentation might not be correct anymore.
I am currently not using i18n in any of my projects, so I can't give you any advanced tips regarding  nuxtjs/i18n ^^"
Did that solve your issue though?  If not, then I'll try to find a solution later this evening


[BUG]/[FEATURE] Allow npm 10 for libraries

Summary
Some libraries have the npm version fixed to  {"node":"^16.11.0 || ^18.0.0","npm":"^8.0.0 || ^9.0.0"}  (e.g<EMAIL_ADDRESS>however the latest node 18 versions (starting from Node 18.19.0) have updated to use npm 10. This leads to errors on npm i

This is fixed with https://github.com/SalesforceCommerceCloud/pwa-kit/pull/1597


Support blade gemm for torch-blade

Support blade gemm for torch-blade
Build or download mkldnn onednn acl and blade gemm directly from bazel, we do not need to call cmake in common_setup.py for torch-blade build.

I have revert the commit of using bazel build onednn since I have encountered a wired core dump when calling functions from acl. This core dump will be dealt with in another pr, which will not block our monthly release.


Avoid masking exceptions raised during recast

Follow up on https://github.com/cdgriffith/Box/issues/179#issuecomment-720900253 - basically allow any recast errors (such as validation messages or helping hints for consumers) to be shown directly.
Resolves #179

Apologies for not following up on that question way sooner, I have been badly neglecting this repo for new shiny projects.
I would like to keep the re-cast, so that all "expected" errors can be caught with the general BoxError.  Will echo thoughs in that issue.
However please do keep this PR open for the time being for me to figure out what's going on with coveralls.

Apologies for not following up on that question way sooner, I have been badly neglecting this repo for new shiny projects.
I would like to keep the re-cast, so that all "expected" errors can be caught with the general BoxError.  Will echo thoughs in that issue.
However please do keep this PR open for the time being for me to figure out what's going on with coveralls.

I think the coveralls thing has to due with https://github.com/lemurheavy/coveralls-public/issues/1493. It passes the test which is the important part.

I think the coveralls thing has to due with https://github.com/lemurheavy/coveralls-public/issues/1493. It passes the test which is the important part.

No worries @cdgriffith, I totally understand!
For posterity, my current workaround is to subclass and override _Box__recast (account for name mangling) to unwrap. I'm using Box as an "implementation" detail in another lib so preferably users can try: ...; except MyLibraryCustomError directly (the wrapping would require e.__cause__ inspection/Box awareness).

No worries @cdgriffith, I totally understand!
For posterity, my current workaround is to subclass and override _Box__recast (account for name mangling) to unwrap. I'm using Box as an "implementation" detail in another lib so preferably users can try: ...; except MyLibraryCustomError directly (the wrapping would require e.__cause__ inspection/Box awareness).


Fix BlockPublisher handling of failed batches, Such that if a Candida…

…teBlock contains only Batches that fail the failed batches will be discarded and will not be retried.
Signed-off-by: Cian Montgomery<EMAIL_ADDRESS>

@boydjohnson  can you test this in accordance with the direction you left here: https://jira.hyperledger.org/browse/STL-158
I applied the patch and ran the test but the description was unclear what I was looking for either as a positive or negative result.

Yeah, I'll test it, but I won't have time until tomorrow morning.

No tests need to be modified to see the difference. Here's what happens when an invalid batch is sent in intkey-python-smoke before the change:
integration_test_1  | INFO:test_intkey_smoke:Posting batch
rest_api_1          | [13:21:23.730 INFO     rest_api] Request  35aeb6: "POST /batches" from <IP_ADDRESS>
rest_api_1          | [13:21:23.746 INFO     rest_api] Response 35aeb6: 202 status, 181B size, in 0.016s
tp_intkey_python_1  | [13:21:23.750 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.760 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:23.760 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:23.765 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.770 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:23.773 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:23.791 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.799 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:23.800 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:23.807 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.813 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:23.813 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:23.824 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.842 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:23.843 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:23.949 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.959 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:23.959 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:23.964 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.968 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:23.968 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:23.972 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.976 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:23.976 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:23.981 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.984 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:23.984 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:23.994 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:23.998 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:23.999 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:24.106 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.110 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:24.111 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:24.116 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.120 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:24.120 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:24.125 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.129 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:24.129 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:24.134 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.138 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:24.138 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:24.143 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.150 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:24.151 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:24.260 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.264 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:24.264 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:24.269 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.273 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:24.273 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:24.278 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.281 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:24.282 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:24.286 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.290 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:24.290 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:24.295 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.303 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:24.303 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:24.411 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.415 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:24.416 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:24.421 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.426 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:24.426 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:24.431 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.435 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:24.435 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:24.442 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.448 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:24.448 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:24.455 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.463 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:24.463 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:24.571 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.575 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:24.575 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:24.580 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.584 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:24.585 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:24.589 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.593 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:24.594 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:21:24.598 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.602 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:24.602 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:24.607 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.614 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:24.615 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
tp_intkey_python_1  | [13:21:24.723 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.728 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:21:24.728 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:21:24.733 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.737 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:21:24.737 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:21:24.741 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.745 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:21:24.745 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
rest_api_1          | [13:21:24.750 INFO     rest_api] Request  35d694: "GET /state" from <IP_ADDRESS>
tp_intkey_python_1  | [13:21:24.751 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.756 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:21:24.756 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:21:24.768 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:21:24.774 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:21:24.774 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
rest_api_1          | [13:21:24.806 INFO     rest_api] Response 35d694: 200 status, 1069B size, in 0.055s
integration_test_1  | INFO:test_intkey_smoke:Current state: {'wren': 442, 'thrush': 327, 'jay': 535, 'lark': 416, 'finch': 643}

Here's what happens with this PR:
integration_test_1  | INFO:test_intkey_smoke:Posting batch
rest_api_1          | [13:26:11.732 INFO     rest_api] Request  61a0cf: "POST /batches" from <IP_ADDRESS>
rest_api_1          | [13:26:11.746 INFO     rest_api] Response 61a0cf: 202 status, 181B size, in 0.014s
tp_intkey_python_1  | [13:26:11.750 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:26:11.756 DEBUG    handler] Incrementing "cow" by 1
tp_intkey_python_1  | [13:26:11.758 WARNING  core] Invalid Transaction Verb is "inc" but name "cow" not in state
tp_intkey_python_1  | [13:26:11.776 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:26:11.789 DEBUG    handler] Incrementing "pig" by 2
tp_intkey_python_1  | [13:26:11.790 WARNING  core] Invalid Transaction Verb is "inc" but name "pig" not in state
tp_intkey_python_1  | [13:26:11.795 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:26:11.805 DEBUG    handler] Decrementing "sheep" by 3
tp_intkey_python_1  | [13:26:11.806 WARNING  core] Invalid Transaction Verb is "dec" but name "sheep" not in state
tp_intkey_python_1  | [13:26:11.814 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:26:11.823 DEBUG    handler] Incrementing "goat" by 5
tp_intkey_python_1  | [13:26:11.825 WARNING  core] Invalid Transaction Verb is "inc" but name "goat" not in state
tp_intkey_python_1  | [13:26:11.830 DEBUG    core] received message of type: TP_PROCESS_REQUEST
tp_intkey_python_1  | [13:26:11.854 DEBUG    handler] Decrementing "horse" by 8
tp_intkey_python_1  | [13:26:11.857 WARNING  core] Invalid Transaction Verb is "dec" but name "horse" not in state
rest_api_1          | [13:26:12.753 INFO     rest_api] Request  61c8ae: "GET /state" from <IP_ADDRESS>
rest_api_1          | [13:26:12.774 INFO     rest_api] Response 61c8ae: 200 status, 1069B size, in 0.021s
integration_test_1  | INFO:test_intkey_smoke:Current state: {'wren': 442, 'jay': 535, 'lark': 416, 'finch': 643, 'thrush': 327}

So it seems to work.
Some extra regression test cases should probably be added to the publisher unit tests though.


[Question] What happen to an object (aka TileOverlay) after calling ".remove()" ?

I'm submitting a ...
[x] question
[ ] any problem or bug report
[ ] feature request
Hi.
What exactly happen to an object (like a TileOverlay) when you call remove() on it ? The map removes it but then, is the object destroyed ? If I create another TileOverlay on the map, I should only one object on it, that's right ?
Thanks for explain to me :)

Well, source code is fully open, and you can read the code at least Objective-C, so I appreciate if you try to read the code at once.
The code starts from here.
Step1:
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/6ea3f65673bd89661f03dfc3fa594e74260a39b7/www/TileOverlay.js#L109-L125
In the step1, the code separates two path:

self.trigger(self.id + "_remove"); and
exec.call()

self.trigger(self.id + "_remove");  is listened at here for memory cleanup in JS side.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/6ea3f65673bd89661f03dfc3fa594e74260a39b7/www/Map.js#L1203
exec.call() involves  (void)remove:(CDVInvokedUrlCommand *)command of PluginTileOverlay.m.
https://github.com/mapsplugin/cordova-plugin-googlemaps/blob/6ea3f65673bd89661f03dfc3fa594e74260a39b7/src/ios/GoogleMaps/PluginTileOverlay.m#L198-L215
Step2: Try it.

Thanks for explained to me. I read both Java and Obj-C code, but I'm really not familiar with Cordova plugins.
I did not get the JS side at the first time, that why I prefered to ask.
It's now clear, thanks.


Enable optional installation of Node and the Azure CLI

Resolves #133.
This PR includes arguments in the Dockerfile that will install Node.js (common need for ASP.NET web apps) and the Azure CLI.
By default, Node.js is installed, but the Azure CLI is not.
READMEs also contain this information.

@richlander I'm going to merge this in to catch our next release train.  LMK if you end up thinking we should do something else here.  It's easy enough to tweak.


[Sketch] Quaternion Module

This PR adds Quaternion as part of a new module called QuaternionModule.

Issue: #35

API Notes
A Quaternion contains 4 numeric values conforming to Real & SIMDScalar. The numeric type is simply called RealType for the remaining notes and considerations. Implementation-wise, Quaternion wraps the SIMD4 type from the Standard Library, though it does not expose the SIMD storage publicly – both the initializer and the property (called components) are only visible to module. It stores the 4 numeric values using a common mathmatical notation in the form
of: a + bi + cj + dk, i.e. SIMD4(a, b, c, d).
Publicy, the Quaternion is represented by a real and an imaginary part, where real is of RealType and imaginary is of SIMD3<RealType> type. To create a Quaternion with matching properties, the following initializers are publicly available:
init(_ real: RealType, _ imaginary: SIMD3<RealType>)
init(_ real: RealType, _ imaginary: (b: RealType, c: RealType, d: RealType))

Additionally, there are convenience initializer available in the form of:
init(_ real: RealType) // Equivalent to `Quaternion(real, SIMD3(repeating: 0))`.
init(imaginary: SIMD3<RealType>) // Equivalent to `Quaternion(0, imaginary)`.
init(imaginary: (b: RealType, c: RealType, d: RealType)) // Equivalent to `Quaternion(0, imaginary)`.

Furthermore, Quaternion conforms to ExpressiblyByIntegerLiteral and Numeric,
"therefore" the following initializers are available as well:
init<Other>(_ real: Other) where Other : BinaryInteger
init?<Other>(exactly real: Other) where Other : BinaryInteger
init(integerLiteral value: Int)

And lastly, to allow conversion (and arithmetics) between quaternions of different
floating-point precision, the module exposes the following initializers:
extension Quaternion where RealType : BinaryFloatingPoint {
  init<Other>(_ other: Quaternion<Other>) where Other : Real & BinaryFloatingPoint & SIMDScalar
  init?<Other>(exactly other: Quaternion<Other>) where Other : Real & BinaryFloatingPoint & SIMDScalar
}

The module provides the following static properties on Quaternion:
/// The additive identity, with real and *all* imaginary parts zero.
static var zero: Quaternion { get }
/// The multiplicative identity, with real part one and *all* imaginary parts zero.
static var one: Quaternion { get }
/// The imaginary unit.
static var i: Quaternion { get }
/// The point at infinity.
static var infinity: Quaternion { get }

And the following properties:
/// The conjugate of this quaternion.
var conjugate: Quaternion { get }
/// True if this value is finite.
var isFinite: Bool { get }
/// True if this value is normal.
var isNormal: Bool { get }
/// True if this value is subnormal.
var isSubnormal: Bool { get }
/// True if this value is zero.
var isZero: Bool { get }
/// True if this value is only defined by the imaginary parts.
var isPure: Bool { get }

Quaternion conforms to Hashable (and therefore Equatable), Decodable,
Encodable, CustomStringConvertible and CustomDebugStringConvertible. The
implementation is rather simple. You can find the details in the Quaternion.swift file.
Arithmetics
A Quaternion conforms to AdditiveArithmetic. This yields the following arithmetic functions:
static func + (lhs: Quaternion, rhs: Quaternion) -> Quaternion
static func - (lhs: Quaternion, rhs: Quaternion) -> Quaternion
static func += (lhs: inout Quaternion, rhs: Quaternion)
static func -= (lhs: inout Quaternion, rhs: Quaternion)

As well as it conforms to AlgebraicField and therefore provides the following arithmetic functions:
static func * (lhs: Quaternion, rhs: Quaternion) -> Quaternion
static func / (lhs: Quaternion, rhs: Quaternion) -> Quaternion
static func *= (lhs: inout Quaternion, rhs: Quaternion)
static func /= (lhs: inout Quaternion, rhs: Quaternion)
var normalized: Quaternion? { get }
var reciprocal: Quaternion? { get }

Note it does not provide heterogeneous Quaternion/Scalar arithmetic.
You can find the reason/details in the considerations below.

Norms
/// The ∞-norm (`max(abs(a), abs(b), abs(c), abs(d))`).
var magnitude: RealType { get }
/// The Euclidean norm (a.k.a. 2-norm, `sqrt(a*a + b*b + c*c + d*d)`).
var length: RealType { get }
/// The squared length `(a*a + b*b + c*c + d*d)`.
var lengthSquared: RealType { get }

While quaternions are often used as an abstraction for representing rotations this PR adds only the most basic type definition and does not define rotation (other than the polar form) or a vector type.
Furthermore, it does not provide a distinct unit quaternion although it provides a normalized variant via the normalized property. I think it is reasonable to have a distinct UnitQuaternion type that guarantees the underlying quaternion has unity length, but I think it should be as-well-as, rather than instead-of.
Considerations

The module provides an initializer to express the imaginary parts of a
quaternion as a tuple of 3 RealType values. This somehow "blocks" an initializer
being implemented that simply takes 4 values (e.g. Quaternion(1,2,3,4)) but
rather requires the imaginary parts in a additional parentheses (i.e.
Quaternion(1, (2,3,4))). The later one was implemented, as the order of the values
within the quaternion (real part first) is immediately visible and it aligns
nicely with the convenience initializer that takes imaginary values only as a tuple
(i.e. Quaternion(imaginary: (2,3,4))) but I have no strong opinion on it and
would love to get your feedback.
The Quaternion wraps the SIMD4 type, however its storage is not exposed
publicly (nor is the initializer) as all of the necessary operations around
quaternions should (later) be available on the Quaternion, or via its
real and imaginary properties. This may yield performance issues for applications
where the entire storage is required. However it guarantees that all values have
fixup the semantics for non-finite values (much like x/y and real/imaginary
for Complex types).
The expressions q * 1, where q is a quaternion, will be interpreted by the
compiler as q * Quaternion(1, (0,0,0)) due to the ExpressibleByIntegerLiteral
conformance and the implementation details of it. This aligns nicely with q * .one,
as the multiplicative identity of a quaternion (or one) is defined as
Quaternion(1, (0,0,0)). However, this adds ambiguity when viewed as vector
space structure, where q * 1 should probably yield q * Quaternion(1, (1,1,1)).
This is the main reason why there is no heterogenous arithmetic available, much
like it is not available on the Complex type (Issue #12). I think, should it
ever "be fixed", it should be implemented on both types at the same time and equally.
Quaternion defines static var i: Quaternion to return a pure quaternion with
all imaginary components at 1, i.e. Quaternion(0, (1,1,1)). This may be misleading
tough, as a quaternion is commonly written in the form of a + bi + cj + dk and could imply
that only the second (bi) part is 1. However, naming the static property
imaginary (to make it clearer that all imaginary components are of interest)
makes it so that there is a static property static var imaginary: Quaternion and a
non-static property var imaginary: SIMD3<RealType> available on quaternion, which
is also misleading. One solution to this could be to add static var j: Quaternion
and static var k: Quaternion. So to get a new quaternion with only the imaginary
components of another quaternion one could simply write q * (.i + .j + .k).
Right now, the Quaternion does not provide a polar representation,
tough it should become part of this PR. Main reason: I would like to get your
opinion on it. Right now, I think the best way to define a polar form is via
an angle of RealType around an axis of SIMD3<RealType – much like it is defined
for simd_quatf and simd_quatd.
However, to match the Complex type, it should probably be axis first and angle last.
This would add the following API to Quaternion:

init(axis: SIMD3<RealType>, phase: RealType)
var axis: SIMD3<RealType> { get }
var angle: RealType { get }
var polar: (axis: SIMD3<RealType>, angle: RealType) {
  (axis, angle)
}

Missing

[ ] Polar Form
[ ] Additional Tests around arithmetics
[ ] Additional Documentation

The module provides an initializer to express the imaginary parts of a
quaternion as a tuple of 3 RealType values. This somehow "blocks" an initializer
being implemented that simply takes 4 values (e.g. Quaternion(1,2,3,4)) but
rather requires the imaginary parts in a additional parentheses (i.e.
Quaternion(1, (2,3,4))). The later one was implemented, as the order of the values
within the quaternion (real part first) is immediately visible and it aligns
nicely with the convenience initializer that takes imaginary values only as a tuple
(i.e. Quaternion(imaginary: (2,3,4))) but I have no strong opinion on it and
would love to get your feedback.

From an ergonomics and clarity standpoint, it might be nice to do:
public init(real: RealType, imaginary x: RealType, _ y: RealType, _ z: RealType)

This is pretty weird at the declaration site, but in use it gives us: Quaternion(real: 1, imaginary: 0, 1, 0), which reads quite well.

Quaternion defines static var i: Quaternion to return a pure quaternion with
all imaginary components at 1, i.e. Quaternion(0, (1,1,1)). This may be misleading
tough, as a quaternion is commonly written in the form of a + bi + cj + dk and could imply
that only the second (bi) part is 1. However, naming the static property
imaginary (to make it clearer that all imaginary components are of interest)
makes it so that there is a static property static var imaginary: Quaternion and a
non-static property var imaginary: SIMD3 available on quaternion, which
is also misleading. One solution to this could be to add static var j: Quaternion
and static var k: Quaternion. So to get a new quaternion with only the imaginary
components of another quaternion one could simply write q * (.i + .j + .k).

Yeah, I would prefer to have .i, .j, and .k. We can make up some other API for this if we need it, but let's just use them for now.

Right now, the Quaternion does not provide a polar representation,
tough it should become part of this PR. Main reason: I would like to get your
opinion on it. Right now, I think the best way to define a polar form is via
an angle of RealType around an axis of SIMD3<RealType – much like it is defined
for simd_quatf and simd_quatd.

Strictly speaking, this might construct a hypothetical UnitQuaternion type; one option would be to have a length parameter as well to construct a (non-unit) Quaternion?

From an ergonomics and clarity standpoint, it might be nice to do:
public init(real: RealType, imaginary x: RealType, _ y: RealType, _ z: RealType)

This is pretty weird at the declaration site, but in use it gives us: Quaternion(real: 1, imaginary: 0, 1, 0), which reads quite well.

I definitely like this initializer having named properties. I ditched the idea while writing the module, as it ends up being quit long and I was afraid others might prefer a shorter initializer – and just put 4 values in order into it (hence the imaginary tuple, to separate real from imaginary somehow). But, as you mentioned, from an ergonomics and clarity standpoint, it is just nicer, so I'll change it to your suggestion – if necessary, I guess we could later iterate on it.

Markus, I think that this is a reasonable enough start that we should land it on a branch and iterate there. Can you retarget your PR against https://github.com/apple/swift-numerics/tree/Quaternions?

I have retargeted the branch, thank you.
For completeness I have updated the notes on the PR to reflect the latest changes.

Excellent, thanks Markus. I'm going to take this as is, since I think the basic design is sound, and we can iterate on it with smaller PRs for a while before merging to master.

Hi Stephen,
while gathering the TODOs from the PR I realized, I have not mentioned
the issue with the algebraic field conformance on Quaternion.
Quaternions do not form a commutative group under its multiplication – their multiplication is non-commutative.
Dropping the condition that multiplication is commutative leads to a division ring rather than a field.
So strictly speaking, conforming to AlgebraicField is incorrect and I wanted to raise a question if
this is maybe something to change in the overall protocol structure of the RealModule.
Is this something that should be addressed within a new GitHub issue for now?
Or should the AlgebraicField conformance be dropped for now?
I am very sorry. This should have been part in the considerations of the PR.

@stephentyrone ☝ maybe you didn't see that
Thanks @markuswntr for the implementation. This will be very useful as mentioned before for 3D related programming!


CkArray: Fix automatic call of doneInserting

Array maps previously automatically called doneInserting on the array after initial insertion. This occurred even for arrays with 0 elements. For cases where users then did dynamic insertion and called doneInserting themselves, doneInserting was essentially a no-op (with some messaging). This change makes it so doneInserting is only automatically called for arrays with static insertion.

Note that this doesn't resolve the doneInsertion synchronization issues that are showing up in AMPI and elsewhere, but it's a step in the right direction, and should in theory at least make those errors less common.

So it turns out this patch has the following issue: static insertion is actually set to false by default, regardless of how the array is created. During core, I'll propose the following changes:
Get rid of the _isStaticInsertion flag, and instead use the method of array creation as the way to set the default value of CkArrayOptions::staticInsertion. If I construct my array as follows:
CProxy_Foo::ckNew(numElements);
or
CkArrayOptions opts; opts.setNumInitial(numElements); // numElements != 0
CProxy_Foo::ckNew(opts);
Then we will assume staticInsertion is true. If instead, I use CProxy_Foo::ckNew(); or use numElements == 0, we will assume dynamic insertion.
Both of these assumptions can be overridden by using the existing CkArrayOptions::setStaticInsertion(bool) as normal.
With the additional changes in already in this PR, this would cause our semantics to match up with what is already in use and documented in the manual regarding the need/purpose of doneInserting.
I don't think this should cause any major issues since it aligns with our current documentation, but discussion here would be helpful as well.

With the latest commit, this makes it so both doneInserting and initCallback work as expected for most cases. The one remaining issue is for cases where initCallback is used, and there are multiple phases of inserting this will behave weirdly. Granted, even in the old implementation it behaved weirdly in that initCallback meant nothing and would be called multiple times, once for each doneInserting call.

This is ready for review now.


fix: Gemfile & Gemfile.lock to reduce vulnerabilities

The following vulnerabilities are fixed with an upgrade:

https://snyk.io/vuln/SNYK-RUBY-RUBYZIP-469156

What changes do you need


1.9.3-rc1 installation failed on RHEL

I just pulled the latest repo changes, ran sudo ./install.sh, and then rbenv install 1.9.3-rc1.  Although this worked for me on my OS X laptop, it failed on my RHEL server.
The last few lines of the log are:
installing default zlib libraries
linking shared-object zlib.so
make[2]: Leaving directory `/tmp/ruby-build.20111020064043.2396/ruby-1.9.3-rc1/ext/zlib'
make[2]: Entering directory `/tmp/ruby-build.20111020064043.2396/ruby-1.9.3-rc1'
linking ruby
make[2]: Leaving directory `/tmp/ruby-build.20111020064043.2396/ruby-1.9.3-rc1'
make[1]: Leaving directory `/tmp/ruby-build.20111020064043.2396/ruby-1.9.3-rc1'
Generating RDoc documentation
./ruby: symbol lookup error: /tmp/ruby-build.20111020064043.2396/ruby-1.9.3-rc1/.ext/i686-linux/enc/encdb.so: undefined symbol: rb_encdb_declare
make: *** [rdoc] Error 127

And my server's details:
$ uname -a
Linux my.host.name 2.6.18-53.1.6.el5xen #1 SMP Wed Jan 23 12:33:37 EST 2008 i686 athlon i386 GNU/Linux

How can I get this working please?

See http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/20119 for someone with the same issue (and a solution!)

Aha!  Thank you.
I'm not quite sure how to pass the flag...is it $ rbenv install 1.9.3-rc1 CONFIGURE_OPTS=LDFLAGS?