ENH: linalg/signal/special: unify approach for array API dispatching

Reference issue
gh-20772
gh-19260
What does this implement/fix?
As discussed in gh-20772 and gh-19260, this is an alternative approach to dispatching linalg and signal functions to the native backend of the input arrays.
Rather than adding separate approaches for dispatching to each SciPy subpackage, it proposes maintaining a single dispatch mechanism based on the existing code from scipy.special (with minor generalizations - see diff here).
Also, rather than translating the original test suites to use array API calls, this would only add property-based tests to confirm that the functions return similar results with each backend as they do for NumPy/SciPy. The philosophy is that we do not need to test the quality of the alternative backend implementations to the same standards as we test the SciPy implementations; rather, we really just need to test the "plumbing": for typical cases, when we pass an alternative-backend array into one of these dispatched functions, is type in == type out and do the numerical values agree with those of NumPy/SciPy?
Of course, by adjusting the definition of "typical" in the tests, we can make the tests arbitrarily strong - for example, strong enough such that a function that passes the generic property based test would certainly pass all of SciPy's function-specific tests. (Note that this idea is orthogonal to the one above; we can certainly leverage the existing dispatch framework but not add these property-based tests, if we prefer to translate the test suites.)[^1]
The intent is to reduce author and review time for new functions and to minimize the diff/be non-invasive (i.e. to keep the original code readable/avoid introducing bugs in existing functions). We may find that additional generalizations are needed as we add more functions. That's OK. The intent here is to take care of low hanging fruit, and we can generalize when the time comes.
Additional information
The first commit moves the key _support_alternative_backends functions from special to _lib/_array_api.py and generalizes it slightly. GitHub shows this as a large diff (remove from one place, add to another), but all that has changed is adding some additional arguments to generalize from special to any sub-package. I'd suggest comparing the diff manually.
The next two commits add support and tests for a few functions in signal and linalg, respectively.
I'll make some additional notes inline.
[^1]: One might ask why we didn't do these things for stats. Let's separate this into implementation and testing:
Implementation: so far, we've been translating functions which don't have equivalents in other backends (for instance, ttest_ind is not implemented in JAX, CuPy, or Torch) and can be written efficiently in pure Python, array API standard calls (plus some dispatched scipy.special function calls). So in short, we can't just dispatch, and there would be little advantage to doing so. Instead, we translate.
Testing: TBH, we could have left the existing pure-NumPy tests alone and only added property-based tests. However, the difference in stats compared to say, special, is that because we are providing the whole implementation for other backends rather than just dispatching, it's no longer sufficient just to check the basic plumbing. We really do need to ensure full test coverage to ensure that all lines of code work as intended for all backends. It's possible to make the property-based tests sufficiently strong, and it might have been a bit simpler/faster to go this route... I'm not sure. The truth is that we just didn't try it. One advantage to translating the test functions is that it's given us a chance to improve SciPy's tests.

The next three commits refactor a bit further but show how we could do the dispatching with a decorator. Even though we'd have to add decorated functions to the tests manually, it's a lot simpler overall because this approach wouldn't require changes to __init__.py. You wouldn't even need a _support_alternative_backends.py file for each subpackage, and generic implementations can be placed right next to the original function.

The latest commit resolves https://github.com/scipy/scipy/pull/21012#discussion_r1648156451 for the case in which array arguments are specified as consecutive positional or keyword arguments, which is the most common case. data-apis/array-api-compat#153 is an issue if the arguments are specified in an unusual way.
At least one of the array API tests will fail because det returns a float64 given float32 NumPy arrays. Looks like this is documented.

Thanks @lucascolley. Do you want all functions to support check_finite, or should I just work on emitting a nicer error if the user passes arguments not supported by the array API extension?

Let's start with just emitting nice errors. We should figure out how to start supporting other keywords in an agnostic way, though. Can we somehow only support check_finite if it is in the function's signature to start with?

The existing SciPy test suite serves as a contract to what the the SciPy functionality actually is. If we are to dispatch to other backends, we should IMO keep the contract and be explicit of what we xfail/skip.

I think that it would be a good idea to convert the tests eventually[^1], but while the behaviour is experimental and opt-in via an env variable, surely we are fine to punt on it for now. Any users who are going out of their way to help us test this experimental dispatching should be smart enough to send bug reports to the appropriate library, rather than to us.
[^1]: the tests could feasibly be replaced by property-based tests if we can be confident that no coverage is lost, but that is a completely orthogonal discussion

For the dispatch itself, I've two high-level comments first.

The current approach seems to involve populating a submodule-size dict per submodule, is this correct?

How about using the fact that a module is a namespace itself, and do something along the lines of
- submodule/__init__.py:

from _support_alternative_backends import ... # explicit names, not import *
__all__ = _submodule_api.__all__

- submodule/_support_alternative_backends.py:

from ._submodule_api import *

# wrap/dispatch on all imported names here

- submodule/_submodule_api.py:

from _private_modules import *    # or explicit names

# populate the __all__ list

The dispatch approach still seems to rely on either a number of leading arguments (or kwargs?). I don't believe it scales to all scipy APIs. How does, e.g. https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.convolve1d.html#scipy.ndimage.convolve1d fits?
Note the output optional which comes after `axis.

I think that it would be a good idea to convert the tests eventually1, but while the behaviour is experimental and opt-in via an env variable, surely we are fine to punt on it for now.

I disagree.

I disagree.

Okay, let's split this discussion out to gh-21031.

The current approach seems to involve populating a submodule-size dict per submodule, is this correct?

IIUC you're referring to the array_special_func_map and similar, and you're proposing that we don't need to define such a map, we can just use __all__? I think there are a few reasons to define the map: we don't necessarily want to dispatch everything (some specific attention is desirable), and we need to provide a little information about the function's signature (unless we want to do some fancy introspection).
However, this map is just what I did for special. I also show in this PR how we could use a decorator instead of a such a map. If we go with the decorator approach, we can eliminate _support_alternative_backend.py from each submodule.

The dispatch approach still seems to rely on either a number of leading arguments (or kwargs?). I don't believe it scales to all scipy APIs.

No, if we're not allowed to make any modifications, it will not work for all APIs. But "I think this will work for all linalg functions. I found a handful of signal functions that don't fit this mold, and that's fine - we just need to look closer to know whether it's worth generalizing or whether these can be treated ad hoc." (https://github.com/scipy/scipy/pull/21012#discussion_r1649342709.). We can move quickly through the low-hanging fruit, identify the functions that don't fit the mold, and make the generalizations as needed. If we find that we need to add support for functions like your convolve_dispatcher, etc., to handle the special cases, we can certainly do that. This just proposes that we don't need all the boilerplate for simple functions.
As for convolve1d in particular, I'm not sure. It will not pass that argument to array_namespace, so perhaps the user would get a different error message if, say, the output is not a CuPy array but the first two arguments are. But I think otherwise it will work for CuPy, which seems to be the only other backend with a direct convolve1d equivalent. For other backends, one would have to write custom code anyway if we want to support the output argument.

So for convolve1d it works in the sense that:
import cupy as xp
from scipy.ndimage import convolve1d
input = [2, 8, 0, 4, 1, 9, 9, 0]
weights = [1, 3]
output = xp.empty(8, dtype=int)
convolve1d(xp.asarray(input), weights=xp.asarray(weights), output=output)
print(output, type(output))
# [14 24  4 13 12 36 27  0] <class 'cupy.ndarray'>

If the user were to pass an invalid argument for output, they would get whatever error CuPy provides, not e.g. "TypeError: Multiple namespaces for array inputs:".

The current approach seems to involve populating a submodule-size dict per submodule, is this correct?

IIUC you're referring to the array_special_func_map and similar, and you're proposing that we don't need to define such a map, we can just use all? I think there are a few reasons to define the map: we don't necessarily want to dispatch everything (some specific attention is desirable), and we need to provide a little information about the function's signature (unless we want to do some fancy introspection).

Here's what I meant: https://github.com/scipy/scipy/pull/21091
This can be probably simplified quite a bit, but the main idea is to have a namespace instead of a dict.
Maybe we can avoid messing with sys.modules and use vanilla imports even?

We can move quickly through the low-hanging fruit, identify the functions that don't fit the mold, and make the generalizations as needed.

gh-21091 has the whole of ndimage, and it's explicit which ones need what. Not sure how to simplify it further.

Here's what I meant

OK, so it looks like you're using _ndimage_api.__all__ plus scipy/ndimage/_dispatchers.py instead of a dictionary defined in _support_alternative_backends. Sure, that's fine. The other approach shown here was to apply a decorator directly to the function, no dictionary or namespace file necessary. There are pros/cons of each.

...has the whole of ndimage

OK, since the first argument of all of those functions is an array, I think that functions wrapped per this PR would probably pass all the same tests with CuPy as those wrapped by gh-21091. The difference is just that if the user were to pass arrays with different backends, this PR would not raise an error immediately in array_namespace.
IIUC, gh-21091 does not attempt to convert other CPU arrays (e.g. torch CPU) to NumPy, run the SciPy function, and convert back. Is that right?


Allow listing for system nomad jobs

right now i can see chaos is performing for all jobs but seems like chaos should happen for service nomad jobs. System jobs keep running or depend on condition how people are performing chaos. But I think we need feature where we can skip chaos testing for system jobs by adding allowlist for nomad job types.

Hi @thatsk, I added PR #12 addressing this topic, I would appreciate your feedback.

@resmo can you provide me instruction to build the chaotic binary or docker container so that I can build container from this branch. In readme.md file I am trying to find instruction to compile it but didn't find and in docker repo there is direct coming from pip.

@resmo looks like we need to add more in job type with the specific jobs.
  # Optional: job type skip list
  job_type_skiplist:
    - system
    - batch
    - sysbatch
  job_skiplist:
    - plugin-nfs-controller
    - prometheus-controller

@thatsk Thanks for your feedback, improving docs is on our todo list.
Another possibility we added to filter out (opt-out) is by adding a meta tag (with a key you define)
  # Add a meta tag on in your nomad job "chaotic" = False to opt-out
  job_meta_opt_key: chaotic

released 0.8.0

@resmo Tested in nomad cluster working as expected checked both the condition


Do not derive sexp for the scan state

This use of deriving is not used, so no point in having it.
Explain how you tested your changes:

[x] Code compiles

Checklist:

[x] Dependency versions are unchanged

Notify Velocity team if dependencies must change in CI

[x] Modified the current draft of release notes with details on what is completed or incomplete within this project
[x] Document code purpose, how to use it

Mention expected invariants, implicit constraints

[x] Tests were added for the new behavior

Document test purpose, significance of failures
Test names should reflect their purpose

[x] All tests pass (CI will check this if you didn't)
[x] Serialized types are in stable-versioned modules
[x] Does this close issues? None

!ci-build-me


NPE when starting server

http://pastebin.com/zbUF0pPn
Keys 1.0.1
SpongeForge build 1170

What version of Forge/Minecraft?

MC 1.8.9, forge <IP_ADDRESS>3

I'm unable to reproduce this - what mods do you have? Something has removed a vanilla block type which is throwing an NPE in Minecraft.
Do you see anything in your log regarding "Skipping BlockTypes.ACACIA_DOOR"?

Ah, its maybe malisis doors mod...

When removed malisis doors error disappear. Malisis doors mod manipulate with vanilla doors(add animations for example)

It sounds like however that mod changes the doors, it leaves invalid data and triggers the NPE. I'm discussing this now with the Sponge team but I'll close this issue because it doesn't appear to be anything wrong with Keys,

I don't even have Block.getId() method in mappings, so it's a bit hard to debug...


Unclear documentation about types

Describe your issue
From https://cython.readthedocs.io/en/latest/src/userguide/language_basics.html#types :

It provides all the standard C types, namely char, short, int, long, long long as well as their unsigned versions

This gives the impression that only char, short, int, long, long long and their unsigned versions are standard C types, and that the other C types are not supported. I know that namely doesn't necessarily mean that, but it's just misleading. Also, float and double aren't mentioned there, which might cause the reader to think that they aren't supported.
float appeared later in a grey box saying it replaces the Python float, while double appeared at the end of section and was described as may be wanted by someone, but not explicitly as supported.
And now I still don't know if size_t is supported.

There is open PR providing table of types supported by Cython: https://github.com/cython/cython/pull/4980
But it can be incomplete and needs review and expanding.

I agree that float and double are missing, and that Py_ssize_t and size_t should be explained.


refactor(example): simplify streaming example by using asset protocol

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[x] Docs
[ ] New Binding issue #___
[ ] Code style update
[x] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change?

[ ] Yes, and the changes were approved in issue #___
[x] No

Checklist

[ ] When resolving issues, they are referenced in the PR's title (e.g fix: remove a typo, closes #___, #___)
[ ] A change file is added if any packages will require a version bump due to this PR per the instructions in the readme.
[ ] I have added a convincing reason for adding this feature, if necessary

Other information

The streaming example is an example of sending only the bytes requested in the range header while the asset protocol will send the whole file, so you can't simply replace streaming with asset protocol.

I think asset protocol has feature to use range header too :eyes:
https://github.com/tauri-apps/tauri/blob/c82b4761e1660592472dc55308ad69d9efc5855b/core/tauri/src/manager.rs#L545

Oh, good to know. Still, since it is a still an example about streaming, it should show a manual implementation that can be a reference to others who want to implement their own.

Maybe we can also export function to process the range header.
What do you think about it?

you should ask @lucasfernog

@lucasfernog
I think we can export a function to process the range header.
What do you think about it?
This is because currently we have some large boilerplate to process the range header.

We can't really expose a range parser because we didn't even implement multiple ranges yet.

I actually interpreted this example as an example for the register_uri_scheme_protocol function with streaming just being a good way to showcase it.
I somewhat regularly forward people to the example (for the custom protocol), so i'd rather not remove it like this.

I understood.
Thank you for your reply.


Sigsegv on Android

Thanks for the great lib!
Code below doesn't work as expected.
			if (BX_ENABLED(BX_PLATFORM_EMSCRIPTEN)
			&&  BX_UNLIKELY(!isPtrAligned(_data, 4) ) )
			{
				addUnaligned(_data, _len);
				return;
			}

			addAligned(_data, _len);

It seems to me that the UNLIKELY is very likely on Android, so this so called MurmurHash will addAligned () and do this, hence a SIGBUS ...
				uint32_t kk = *(uint32_t*)data;

Logcat below
E/BGFX: (10612): glstringhash: 0x7567357b, OpenGL ES 3.0<EMAIL_ADDRESS><EMAIL_ADDRESS>(CL@)
E/BGFX: (10612): addaligned: 0x7567357b, 46

### 0x7567357b is surely not aligned!

Fixed: https://github.com/bkaradzic/bx/commit/ea4e736aae107180666fc6fc0082019258e5b2e9


feat: secrets storage

/deploy #notest renku-ui=lorenzo/shape-up-secrets-page renku=build/secrets-in-sessions renku-gateway=limit-user-secret extra-values=secretsStorage.encryptionKey=vMqdVXcSIwjwONvGiNE2vjzRjmi8NJ8Y9lTB8m3l/Xg=

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

352 of 383 (91.91%)  changed or added relevant lines in 20 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.2%) to 89.168%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

components/renku_data_services/migrations/utils.py
7
9
77.78%

components/secret_storage/db_config/config.py
38
40
95.0%

components/secret_storage/secret/models.py
22
24
91.67%

components/secret_storage/secret_migrations/versions/62935e3d8520_create_tables.py
11
13
84.62%

components/secret_storage/secret/db.py
68
71
95.77%

components/secret_storage/app_config/config.py
43
63
68.25%

Files with Coverage Reduction
New Missed Lines
%

components/renku_data_services/crc/models.py
1
85.71%

Totals

Change from base Build<PHONE_NUMBER>:
0.2%

Covered Lines:
5458

Relevant Lines:
6121

💛  - Coveralls

we should also add a follow-up issue to support key rotation: https://cryptography.io/en/latest/fernet/#cryptography.fernet.MultiFernet.rotate
like to automatically do it every 90 days or manually if someone with access to the key leaves the team

this is a draft PR that is currently being worked on and isn't done. Everything in secrets_storage* and secrets/ is being reworked, the current code is previous work from before we settled on the new solution. the only part in this PR that has some semblance of being done are the changes in the */users/ folder (i.e. the UI facing part of the solution), together with the chart changes in the main renku repo to get this to work.
Even that isn't done, it lacks tests, and I probably need to go over it again to do cleanup. The main goal was to get the frontend facing part done for now, so the UI team can continue working against it, even if it's not yet polished (i.e. it can store secrets but any code about doing something with them isn't there).
At this point, most of what is on this PR should be considered exploratory work. I'll probably work on the backend facing side of this in a separate PR based off of this one some time in the coming days.

Also maybe I missed this in the tests. But perhaps we should add a test that specifically checks for the double encryption and the fact that neither the data service nor the secret service can independently decrypt a secret once it has been created.


update to OCaml v4.11.0

These changes update to OCaml v4.11.0, while staying compatible with OCaml v4.08.1 (including building of the installer). The CI environment is updated to use OCaml v4.11.0.

If you consider it worth it, it shouldn't be too difficult to parameterize the Github action with a sequence of OCaml versions and run the fast tests for both versions of OCaml.  The Github asset upload would have to be conditional and 4.08.1 added to the build matrix.

Thank you for the suggestion, I added OCaml version 4.08.1 to the test environments (for the fast set of tests). I pushed also a branch to this repository (upstream) to run the test workflow for push events, and the tests pass: https://github.com/tlaplus/tlapm/actions/runs/413481615.

Thank you for reviewing and approving these changes, I pushed a commit that applies the suggestions.

CI is now green. I'll let you merge as-is or squash the history, as you prefer.

I merged the pull request, thank you.


Retrain issue classifier bot

May I have a special request: That we forbid the bot from using editor-core. The reason is that in the past half year we have now multiple labels that cover what editor-core used to cover.

@alexandrudima Missed your request on the first run. Now editor-core is ignored. That improved the precision of the editor classifier (the one that runs after the main classifier decided it is an editor issue), likely because there was a lot of overlap between that old and the new labels it was split into.


Wait for successful connection to cluster before attempting to seed DB

Currently, db_init.js attempts to connect to the database and if it fails, that startup script will continue. When running YugabyteDB in a k8s cluster, this means that cluster must be fully provisioned before deploying the Yugastore app. It would be nice to be able to deploy the app before or at the same time as the yugabyte cluster, then have it poll the database until it is able to connect.
I am happy to make this update :)
/cc @kmuthukk @rkarthik007

Great catch! And would be awesome if you can make that change @hasheddan, thanks a ton!


bugreport: if used cache, when delete a repository, should clear the cache, otherwise, can not push this repository again.

func (repo *repository) Manifests(ctx context.Context, options ...distribution.ManifestServiceOption) (distribution.ManifestService, error) {
	manifestLinkPathFns := []linkPathFunc{
		// NOTE(stevvooe): Need to search through multiple locations since
		// 2.1.0 unintentionally linked into  _layers.
		manifestRevisionLinkPath,
		blobLinkPath,
	}

	manifestDirectoryPathSpec := manifestRevisionsPathSpec{name: repo.name.Name()}

	var statter distribution.BlobDescriptorService = &linkedBlobStatter{
		blobStore:   repo.blobStore,
		repository:  repo,
		linkPathFns: manifestLinkPathFns,
	}

	// ......

	blobStore := &linkedBlobStore{
		ctx:                  ctx,
		blobStore:            repo.blobStore,
		repository:           repo,
		deleteEnabled:        repo.registry.deleteEnabled,
		blobAccessController: statter,

		// TODO(stevvooe): linkPath limits this blob store to only
		// manifests. This instance cannot be used for blob checks.
		linkPathFns:           manifestLinkPathFns,
		linkDirectoryPathSpec: manifestDirectoryPathSpec,
	}

	// ......

	ms := &manifestStore{
                 // ......
		blobStore:      blobStore,
                 // ......

	}

       // ......

	return ms, nil
}

when delete
// Delete removes the revision of the specified manifest.
func (ms *manifestStore) Delete(ctx context.Context, dgst digest.Digest) error {
	dcontext.GetLogger(ms.ctx).Debug("(*manifestStore).Delete")
	return ms.blobStore.Delete(ctx, dgst)
}

this func will call
func (lbs *linkedBlobStore) Delete(ctx context.Context, dgst digest.Digest) error {
	if !lbs.deleteEnabled {
		return distribution.ErrUnsupported
	}

	// Ensure the blob is available for deletion
	_, err := lbs.blobAccessController.Stat(ctx, dgst)
	if err != nil {
		return err
	}

	err = lbs.blobAccessController.Clear(ctx, dgst)
	if err != nil {
		return err
	}

	return nil
}

the blobAccessController which is a linkedBlobStatter, will only call
lbs.blobStore.driver.Delete(ctx, blobLinkPath) except clear cache.

Can you provide a way how to reproduce this behavior?

Can you provide a way how to reproduce this behavior?
delete a repository，run registry gc，then push again, will reply "manifests unknown".

Does this mean this bug appears only when the GC has run post-delete?

Does this mean this bug appears only when the GC has run post-delete?

yes，gc remove the data file，the cache is not deleted

The garbage collector won't be able to clear the inmemory cache for the registry as that's in a separate process with its own memory region.

The garbage collector won't be able to clear the inmemory cache for the registry as that's in a separate process with its own memory region.

when use api delete the image repository file，that problem will reproduce too。

The garbage collector won't be able to clear the inmemory cache for the registry as that's in a separate process with its own memory region.

when call delete api，clear the cache,can solve this problem.

when call delete api，clear the cache,can solve this problem.

We'd have to make API calls and auth against a remote registry, which isn't impossible, but it's a significant departure. This solution also wouldn't work for deployments using multiple registries since they'll each have their own cache, and it will only clear the cache of the registry the request happened to get routed to.
I'm not sure this solution is clever, but I'm not sure it's worth the effort to set it up in practice.


Do not try to resolve with link-local src IP

ResolveWithPortsLambda would try every IP address assigned to a given port as a source address for a resolution query. However, if port has a link-local IP address assigned, we get lot's of warnings in the log such as this one:
[2023-04-28 10:14:42 | 85s]  <warning>   nim:nim.(*nim).resolveWithPorts   resolveWithPortsLambda failed: [dns exchange failed: dial udp: address [fe80::3306:6654:670:beeb]:0: no suitable address found dns exchange failed: dial udp: address [fe80::5d2d:ab19:3624:4ef7]:0: no suitable address found]

This can be avoided if ResolveWithPortsLambda skips non-global non-unicast IPs.
CC @christoph-zededa

LGTM

LGTM - (I hope nobody uses IPv6 NAT)

@christoph-zededa IPv6 NATs plus only having IPv6 link local addresses is probably asking for trouble, since some host stacks might not allow a link-local source address with a global destination address.
IPv6 NATs with unique-local addresses or global addresses wouldn't be affected.


Unable to list-owned-objects

This is autogenerated. Please review and update as needed.
Describe the bug
Wanted to check whether or not I had created a secret to permit my AKS cluster to docker pull images from my ACR.
(Yes, I am logged in, and yes, I can list/view both the AKS and the ACR both through az and kubectl - logged in through az).
Command Name
az ad signed-in-user list-owned-objects
Errors:
Object of type 'bytearray' is not JSON serializable
Traceback (most recent call last):
python3.6/site-packages/knack/cli.py, ln 212, in invoke
    self.output.out(cmd_result, formatter=formatter, out_file=out_file)
python3.6/site-packages/knack/output.py, ln 132, in out
    output = formatter(obj)
python3.6/site-packages/knack/output.py, ln 40, in format_json
    separators=(',', ': ')) + '\n'
lib/python3.6/json/__init__.py, ln 238, in dumps
    **kw).encode(obj)
...
lib/python3.6/json/encoder.py, ln 437, in _iterencode
    o = _default(o)
python3.6/site-packages/knack/output.py, ln 32, in default
    return json.JSONEncoder.default(self, o)
lib/python3.6/json/encoder.py, ln 180, in default
    o.__class__.__name__)
TypeError: Object of type 'bytearray' is not JSON serializable

To Reproduce:
Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

Followed this tutorial: https://docs.microsoft.com/en-us/azure/aks/tutorial-kubernetes-deploy-cluster

With the exception of not creating the ACR and AKS myself, but rather utilizing the one created by my company's Azure admin. (Whom doesn't really know K8s/Docker).

az ad signed-in-user list-owned-objects

Expected Behavior
Output a JSON object, potentially containing data.
Environment Summary
Linux-4.15.0-50-generic-x86_64-with-debian-buster-sid
Python 3.6.5
Shell: bash

azure-cli 2.0.65

Additional Context

@yugangw-msft @marstr
Am encountering the same error when calling the az ad signed-in-user list-owned-objects command as well. Any updates on this issue?

Workaround
Looks like it's just the JSON output format that's failing.
Running with table or tsv format seems to work:
az ad signed-in-user list-owned-objects --output tsv

Can anyone please capture a trace and share with me at yugangw at microsoft dot com?
The instruction can be found here

@yugangw-msft I'll try to re-create the stacktrace and send you via email tomorrow (in 12-18 hours).
Currently @ home without access to set-up.

@yugangw-msft Email sent =) (from a gmail.com address)

@marstr This is still effecting the Linux CLI tool.
Command arguments: ['ad', 'signed-in-user', 'list-owned-objects', '--debug']
Event: Cli.PreExecute []
Event: CommandParser.OnGlobalArgumentsCreate [<function CLILogging.on_global_arguments at 0x7ff4ff71cd90>, <function OutputProducer.on_global_arguments at 0x7ff4ff254bf8>, <function CLIQuery.on_global_arguments at 0x7ff4feff8c80>]
Event: CommandInvoker.OnPreCommandTableCreate []
Installed command modules ['acr', 'acs', 'advisor', 'ams', 'appservice', 'backup', 'batch', 'batchai', 'billing', 'botservice', 'cdn', 'cloud', 'cognitiveservices', 'configure', 'consumption', 'container', 'cosmosdb', 'deploymentmanager', 'dla', 'dls', 'dms', 'eventgrid', 'eventhubs', 'extension', 'feedback', 'find', 'hdinsight', 'interactive', 'iot', 'iotcentral', 'keyvault', 'kusto', 'lab', 'maps', 'monitor', 'natgateway', 'network', 'policyinsights', 'privatedns', 'profile', 'rdbms', 'redis', 'relay', 'reservations', 'resource', 'role', 'search', 'security', 'servicebus', 'servicefabric', 'signalr', 'sql', 'sqlvm', 'storage', 'vm']
Loaded module 'acr' in 0.004 seconds.
Loaded module 'acs' in 0.013 seconds.
Loaded module 'advisor' in 0.001 seconds.
Event: CommandLoader.OnLoadCommandTable []
Loaded module 'ams' in 0.005 seconds.
Loaded module 'appservice' in 0.006 seconds.
Loaded module 'backup' in 0.002 seconds.
Event: CommandLoader.OnLoadCommandTable []
Loaded module 'batch' in 0.008 seconds.
Loaded module 'batchai' in 0.002 seconds.
Loaded module 'billing' in 0.001 seconds.
Loaded module 'botservice' in 0.002 seconds.
Event: CommandLoader.OnLoadCommandTable []
Loaded module 'cdn' in 0.002 seconds.
Loaded module 'cloud' in 0.001 seconds.
Loaded module 'cognitiveservices' in 0.001 seconds.
Loaded module 'configure' in 0.001 seconds.
Loaded module 'consumption' in 0.002 seconds.
Loaded module 'container' in 0.002 seconds.
Loaded module 'cosmosdb' in 0.003 seconds.
Loaded module 'deploymentmanager' in 0.002 seconds.
Loaded module 'dla' in 0.005 seconds.
Loaded module 'dls' in 0.003 seconds.
Loaded module 'dms' in 0.002 seconds.
Loaded module 'eventgrid' in 0.003 seconds.
Loaded module 'eventhubs' in 0.003 seconds.
Loaded module 'extension' in 0.001 seconds.
Loaded module 'feedback' in 0.001 seconds.
Loaded module 'find' in 0.001 seconds.
Loaded module 'hdinsight' in 0.002 seconds.
Loaded module 'interactive' in 0.000 seconds.
Loaded module 'iot' in 0.004 seconds.
Loaded module 'iotcentral' in 0.001 seconds.
Loaded module 'keyvault' in 0.004 seconds.
Loaded module 'kusto' in 0.002 seconds.
Loaded module 'lab' in 0.003 seconds.
Loaded module 'maps' in 0.001 seconds.
Loaded module 'monitor' in 0.004 seconds.
Loaded module 'natgateway' in 0.002 seconds.
Loaded module 'network' in 0.027 seconds.
Loaded module 'policyinsights' in 0.002 seconds.
Loaded module 'privatedns' in 0.005 seconds.
Loaded module 'profile' in 0.001 seconds.
Loaded module 'rdbms' in 0.006 seconds.
Loaded module 'redis' in 0.002 seconds.
Loaded module 'relay' in 0.003 seconds.
Loaded module 'reservations' in 0.003 seconds.
Loaded module 'resource' in 0.008 seconds.
Loaded module 'role' in 0.005 seconds.
Loaded module 'search' in 0.002 seconds.
Loaded module 'security' in 0.003 seconds.
Loaded module 'servicebus' in 0.008 seconds.
Loaded module 'servicefabric' in 0.003 seconds.
Loaded module 'signalr' in 0.004 seconds.
Loaded module 'sql' in 0.011 seconds.
Loaded module 'sqlvm' in 0.006 seconds.
Event: CommandLoader.OnLoadCommandTable []
Loaded module 'storage' in 0.048 seconds.
Loaded module 'vm' in 0.016 seconds.
Loaded all modules in 0.260 seconds. (note: there's always an overhead with the first module loaded)
Extensions directory: '/home/jason/.azure/cliextensions'
Event: CommandInvoker.OnPreCommandTableTruncate [<function AzCliLogging.init_command_file_logging at 0x7ff4fef7ed08>]
az_command_data_logger : command args: ad signed-in-user list-owned-objects --debug
metadata file logging enabled - writing logs to '/home/jason/.azure/commands'.
Event: CommandInvoker.OnPostCommandTableCreate [<function register_global_subscription_argument.<locals>.add_subscription_parameter at 0x7ff4fefa0c80>, <function register_ids_argument.<locals>.add_ids_arguments at 0x7ff4fef526a8>, <function register_cache_arguments.<locals>.add_cache_arguments at 0x7ff4fef52840>]
Event: CommandInvoker.OnCommandTableLoaded []
Event: CommandInvoker.OnPreParseArgs [<function _documentdb_deprecate at 0x7ff4fcbc5ea0>]
Event: CommandInvoker.OnPostParseArgs [<function OutputProducer.handle_output_argument at 0x7ff4ff254c80>, <function CLIQuery.handle_query_parameter at 0x7ff4feff8d08>, <function register_ids_argument.<locals>.parse_ids_arguments at 0x7ff4fef52730>, <function handler at 0x7ff4fca601e0>]
msrest.universal_http.requests : Configuring retry: max_retries=4, backoff_factor=0.8, max_backoff=90
msrest.async_paging : Paging async iterator protocol is not available for DirectoryObjectPaged
attempting to read file /home/jason/.azure/accessTokens.json as utf-8-sig
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - Authority:Performing instance discovery: ...
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - Authority:Performing static instance discovery
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - Authority:Authority validated via static instance discovery
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - TokenRequest:Getting token from cache with refresh if necessary.
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - CacheDriver:finding with query keys: {'_clientId': '...', 'userId': '...'}
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - CacheDriver:Looking for potential cache entries: {'_clientId': '...', 'userId': '...'}
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - CacheDriver:Found 3 potential entries.
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - CacheDriver:Resource specific token found.
adal-python : 9f8797e3-aa61-4ae2-9f15-5c9304d95797 - CacheDriver:Returning token from cache lookup, AccessTokenId: b'9Px+D0z5xBxrGYwlrdYMXLR9S9XRq58e2FiZDb5Cvys=', RefreshTokenId: b'H4K91ACraNnfFm/u595JVZs99/DGhHacgEKxjv4tgWY='
msrest.http_logger : Request URL: 'https://graph.windows.net/4d1624e8-5511-40de-b658-38621b4e2cb4/me/ownedObjects?api-version=1.6'
msrest.http_logger : Request method: 'GET'
msrest.http_logger : Request headers:
msrest.http_logger :     'Accept': 'application/json'
msrest.http_logger :     'accept-language': 'en-US'
msrest.http_logger :     'User-Agent': 'python/3.6.5 (Linux-4.15.0-52-generic-x86_64-with-debian-buster-sid) msrest/0.6.7 msrest_azure/0.6.1 azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.0.67'
msrest.http_logger : Request body:
msrest.http_logger : None
msrest.universal_http : Configuring redirects: allow=True, max=30
msrest.universal_http : Configuring request: timeout=100, verify=True, cert=None
msrest.universal_http : Configuring proxies: ''
msrest.universal_http : Evaluate proxies against ENV settings: True
urllib3.connectionpool : Starting new HTTPS connection (1): graph.windows.net:443
urllib3.connectionpool : https://graph.windows.net:443 "GET /4d1624e8-5511-40de-b658-38621b4e2cb4/me/ownedObjects?api-version=1.6 HTTP/1.1" 200 3683
msrest.http_logger : Response status: 200
msrest.http_logger : Response headers:
msrest.http_logger :     'Cache-Control': 'no-cache'
msrest.http_logger :     'Pragma': 'no-cache'
msrest.http_logger :     'Content-Type': 'application/json; odata=minimalmetadata; streaming=true; charset=utf-8'
msrest.http_logger :     'Expires': '-1'
msrest.http_logger :     'ocp-aad-diagnostics-server-name': 'WqKhWXvl1okXb47qljo0lPbR3WueJ7PneT8ez1L9elM='
msrest.http_logger :     'request-id': '4edbc19b-1e67-4e11-abb4-f92b13b2c458'
msrest.http_logger :     'client-request-id': 'bf72c347-978c-11e9-b39f-983b8f8c6b26'
msrest.http_logger :     'x-ms-dirapi-data-contract-version': '1.6'
msrest.http_logger :     'ocp-aad-session-key': 'B5Et2Vg61WyvsfCeRiuHCQG4ymDWU0uqPA9Q0J9DBx6JyJZe1q6FND-7J_V_j2VHfhok5fkecmFLsqdFRegYV20EOf6FGKPD2L1J_46V__5yPqSR2SlKgcR5IzoJzxRmOQ5ILREIm6Wr8s5eeTePcw.NKnuAcHGx_TStOf9GV9Fy99iM8vNptTNIK4JatYR0no'
msrest.http_logger :     'DataServiceVersion': '3.0;'
msrest.http_logger :     'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
msrest.http_logger :     'Access-Control-Allow-Origin': '*'
msrest.http_logger :     'X-AspNet-Version': '4.0.30319'
msrest.http_logger :     'X-Powered-By': 'ASP.NET'
msrest.http_logger :     'Duration': '728133'
msrest.http_logger :     'Date': 'Tue, 25 Jun 2019 21:03:55 GMT'
msrest.http_logger :     'Content-Length': '3683'
msrest.http_logger : Response content:
msrest.http_logger : {"odata.metadata":"https://graph.windows.net/4d1624e8-5511-40de-b658-38621b4e2cb4/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.Application","objectType":"Application","objectId":"d45ddc9f-fe0b-4b4c-8e7f-40641c6677ff","deletionTimestamp":null,"acceptMappedClaims":null,"addIns":[],"appId":"6ee2ff02-baaf-4282-8276-d067ec2191f0","applicationTemplateId":null,"appRoles":[],"availableToOtherTenants":false,"displayName":"jason_poc","errorUrl":null,"groupMembershipClaims":null,"homepage":"https://jason_poc","identifierUris":["http://jason_poc"],"informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"isDeviceOnlyAuthSupported":null,"keyCredentials":[],"knownClientApplications":[],"logoutUrl":null,"logo@odata.mediaEditLink":"directoryObjects/d45ddc9f-fe0b-4b4c-8e7f-40641c6677ff/Microsoft.DirectoryServices.Application/logo","logoUrl":null,"mainLogo@odata.mediaEditLink":"directoryObjects/d45ddc9f-fe0b-4b4c-8e7f-40641c6677ff/Microsoft.DirectoryServices.Application/mainLogo","oauth2AllowIdTokenImplicitFlow":true,"oauth2AllowImplicitFlow":false,"oauth2AllowUrlPathMatching":false,"oauth2Permissions":[{"adminConsentDescription":"Allow the application to access jason_poc on behalf of the signed-in user.","adminConsentDisplayName":"Access jason_poc","id":"4a5a0076-0735-4f4c-bb50-afb5d9f67c3c","isEnabled":true,"type":"User","userConsentDescription":"Allow the application to access jason_poc on your behalf.","userConsentDisplayName":"Access jason_poc","value":"user_impersonation"}],"oauth2RequirePostResponse":false,"optionalClaims":null,"orgRestrictions":[],"parentalControlSettings":{"countriesBlockedForMinors":[],"legalAgeGroupRule":"Allow"},"passwordCredentials":[{"customKeyIdentifier":"//5yAGIAYQBjAA==","endDate":"2020-06-25T20:44:50.509507Z","keyId":"b517e2cc-ed44-46e4-9c30-363c454ab68d","startDate":"2019-06-25T20:44:50.509507Z","value":null}],"publicClient":null,"publisherDomain":"LighthouseeDiscovery.onmicrosoft.com","recordConsentConditions":null,"replyUrls":[],"requiredResourceAccess":[],"samlMetadataUrl":null,"signInAudience":"AzureADMyOrg","tokenEncryptionKeyId":null},{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"991f038a-51c7-4c5d-a18c-bd26cb686d39","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":[],"appDisplayName":"jason_poc","appId":"6ee2ff02-baaf-4282-8276-d067ec2191f0","applicationTemplateId":null,"appOwnerTenantId":"4d1624e8-5511-40de-b658-38621b4e2cb4","appRoleAssignmentRequired":false,"appRoles":[],"displayName":"jason_poc","errorUrl":null,"homepage":"https://jason_poc","informationalUrls":{"termsOfService":null,"support":null,"privacy":null,"marketing":null},"keyCredentials":[],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[{"adminConsentDescription":"Allow the application to access jason_poc on behalf of the signed-in user.","adminConsentDisplayName":"Access jason_poc","id":"4a5a0076-0735-4f4c-bb50-afb5d9f67c3c","isEnabled":true,"type":"User","userConsentDescription":"Allow the application to access jason_poc on your behalf.","userConsentDisplayName":"Access jason_poc","value":"user_impersonation"}],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":"Lighthouse eDiscovery","replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["http://jason_poc","6ee2ff02-baaf-4282-8276-d067ec2191f0"],"servicePrincipalType":"Application","signInAudience":"AzureADMyOrg","tags":[],"tokenEncryptionKeyId":null}]}
Event: CommandInvoker.OnTransformResult [<function _resource_group_transform at 0x7ff4fef470d0>, <function _x509_from_base64_to_hex_transform at 0x7ff4fef47158>]
Event: CommandInvoker.OnFilterResult []
cli.azure.cli.core.util : The command failed with an unexpected error. Here is the traceback:

The command failed with an unexpected error. Here is the traceback:

cli.azure.cli.core.util : Object of type 'bytearray' is not JSON serializable
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 212, in invoke
    self.output.out(cmd_result, formatter=formatter, out_file=out_file)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 132, in out
    output = formatter(obj)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 40, in format_json
    separators=(',', ': ')) + '\n'
  File "/opt/az/lib/python3.6/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/opt/az/lib/python3.6/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/opt/az/lib/python3.6/json/encoder.py", line 428, in _iterencode
    yield from _iterencode_list(o, _current_indent_level)
  File "/opt/az/lib/python3.6/json/encoder.py", line 325, in _iterencode_list
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 404, in _iterencode_dict
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 325, in _iterencode_list
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 404, in _iterencode_dict
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 437, in _iterencode
    o = _default(o)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 32, in default
    return json.JSONEncoder.default(self, o)
  File "/opt/az/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type 'bytearray' is not JSON serializable
Object of type 'bytearray' is not JSON serializable
Traceback (most recent call last):
  File "/opt/az/lib/python3.6/site-packages/knack/cli.py", line 212, in invoke
    self.output.out(cmd_result, formatter=formatter, out_file=out_file)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 132, in out
    output = formatter(obj)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 40, in format_json
    separators=(',', ': ')) + '\n'
  File "/opt/az/lib/python3.6/json/__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "/opt/az/lib/python3.6/json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File "/opt/az/lib/python3.6/json/encoder.py", line 428, in _iterencode
    yield from _iterencode_list(o, _current_indent_level)
  File "/opt/az/lib/python3.6/json/encoder.py", line 325, in _iterencode_list
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 404, in _iterencode_dict
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 325, in _iterencode_list
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 404, in _iterencode_dict
    yield from chunks
  File "/opt/az/lib/python3.6/json/encoder.py", line 437, in _iterencode
    o = _default(o)
  File "/opt/az/lib/python3.6/site-packages/knack/output.py", line 32, in default
    return json.JSONEncoder.default(self, o)
  File "/opt/az/lib/python3.6/json/encoder.py", line 180, in default
    o.__class__.__name__)
TypeError: Object of type 'bytearray' is not JSON serializable

@jmwoloso I see now that they (probably forgot) didn't mention it here on the thread, but I was told by reply to the email I sent them that the fix would be published in a release estimated for two weeks hence, back then.
In other words, in one week.
Just keep an eye on releases and whether or not the referenced commit above is included =)
(I'd presume they closed it not due to reports of it being fixed, but because of a fix being in the pipeline for release).

@x10an14 perfect, thanks!


Mongo 4 support?

Hello,
Does Moongoon support Mongo version 4 (latest is 4.4.6)?

Hey @Nicolab,
Moongoon relies on cryomongo which does support Mongo 4. It is not tested against 4.4 and does not implement 4.4 features but it should still be compatible.

Ok thanks.


Cannot get query locator from response of 'getBulkqueryResults' method

When fetching query results method getBulkqueryResults returns back only text body of the response. But we are also interested in getting back locator, which is part of response headers named Sforce-Locator (as described here in example section) to get next portion of result data set.
Also we've noticed that in getBulkqueryResults method signature locator is declared as 'number', while actually it should be 'string' (again referring to the same example in doc above).

@avesolovksyy Thanks for reporting. Released 0.20.20 version. This should have the fix.
Here is what you will need to do,
const results: AxiosResponse = await getBulkqueryResults(jobid, locator, maxresults);    console.log(results.data); // This has data    console.log(results.headers); // This has header ;

@msrivastav13
Yep, works like a charm, thanks.
Closing this one.
P.S.
You may consider implementing also a high level function for end-to-end use case - to take a query as input param and return whole set of results (i.e. doing all these steps under the hood: submit query -> wait for job to complete -> fetch all chunks of results and output into a single file). To make it even simpler, sort of bulk api v3.0)


test in Firefox on CI

This adds Firefox to the browsers we test with in CI; see https://github.com/simplabs/ember-cookies/issues/152#issuecomment-377833332
It also includes a fix for a bug (or different behavior compared to Chrome) in Firefox: Firefox will set the default cookie path with a trailing slash (e.g. /some/path/) while Chrome would set it without the trailing slash (e.g. /some/path). In order to make the behavior the same for all browsers, this changes the cookies service so that it would automatically set a normalized default path (/some/path in the above example) if none was specified. I'm not really happy with this (as writing a cookie via the cookies service will now result in a different cookie than just using document.cookie =) but couldn't really think of a better solution 🤔

IMHO the bugfix belongs in a separate PR, but since we're writing a manual changelog here it might not matter that much. still makes it somewhat harder to review though...

@simplabs/engineering anyone care to review?

@jessica-jordan I don't have a reference and I'm not sure it's really a bug in Firefox. It's something where it behaves differently than other browsers but I'm not sure what the exact spec is for this or whether there is a spec that covers this at all. The tests fail in Firefox though without this change.

Thank you for the outline, I think you're right that it makes most sense to provide a fallback path then :+1:


AVRO-2498 Add SpecificCompiler support for uuid logical type

Make sure you have checked all steps below.
Jira

[X] My PR addresses the following Avro Jira issues and references them in the PR title. For example, "AVRO-1234: My Avro PR"

https://issues.apache.org/jira/browse/AVRO-XXX
In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Tests

[X] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[C] My commits all reference Jira issues in their subject lines. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain Javadoc that explain what it does

It seems your local copy is outdated. You may need to rebase to latest master and force push to your repo.
You can close #1359 .

I created my fix against the 1.10.2 branch.
should I create it against master instead ?

From: Martin Grigorov @.>
Sent: Thursday, October 7, 2021 11:17 AM
To: apache/avro @.>
Cc: feroze daud @.>; Author @.>
Subject: Re: [apache/avro] AVRO-2498 Add SpecificCompiler support for uuid logical type (#1360)
It seems your local copy is outdated. You may need to rebase to latest master and force push to your repo.
You can close #1359https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Favro%2Fpull%2F1359&data=04|01||0b649dad62284fdf4fca08d989beb74b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637692274478508167|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=YvC%2FgZ7%2FLIz4dR4uWQAJZ%2BLIDUxTI594bjslqC6mOMw%3D&reserved=0 .
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fapache%2Favro%2Fpull%2F1360%23issuecomment-938040412&data=04|01||0b649dad62284fdf4fca08d989beb74b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637692274478518164|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=eXJnEAmGFU0IUVE79jv33PZDVG2tjQcqAUVi06DojRI%3D&reserved=0, or unsubscribehttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAA4OXDVUYZHJHR634HKMJJLUFXP3LANCNFSM5FR2EZMQ&data=04|01||0b649dad62284fdf4fca08d989beb74b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637692274478528160|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=yL57WU06bWYlJHP7WlxSTB7H9D1eiTs4rUCpTu6R47s%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01||0b649dad62284fdf4fca08d989beb74b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637692274478528160|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=dres3tAwp6orbgvITfqs4dXe42zfiuU43hoLE5UM%2F4w%3D&reserved=0 or Androidhttps://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01||0b649dad62284fdf4fca08d989beb74b|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637692274478538155|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|1000&sdata=XHUp2iM3j%2FBPv1xsPtI6f%2FHMfB3kC7HTBmES4aFP2rI%3D&reserved=0.

This PR is out of date.
The latest one for this bug is: https://github.com/apache/avro/pull/1362


False positive error message "no vehicles in shift XXX"

If a shift has no rides planned, then clicking on the "Optimize" button will cause an error message and abort the optimization function.
Screenshot:

Expectation:
This use case shall NOT cause an error message, it's pefectly normal.

Reported by Josi Conrad 5th of April 2016.

Fixed this.


Error during online phase execution

I followed the command on the readme to execute:

clone code and install requirements

generate the datasets
python3 set_gen.py

offline preprocess
python3 client_offline.py
python3 server_offline.py

online phase

client:

➜  Private-Set-Intersection git:(main) ✗ python3 client_online.py
Traceback (most recent call last):
  File "client_online.py", line 52, in <module>
    key_inverse = pow(oprf_client_key, -1, order_of_generator)
ValueError: pow() 2nd argument cannot be negative when 3rd argument specified

server:
➜  Private-Set-Intersection git:(main) ✗ python3 server_online.py
 * OPRF layer done!
Traceback (most recent call last):
  File "server_online.py", line 52, in <module>
    L = int(L, 10)
ValueError: invalid literal for int() with base 10: ''

I encountered same issues listed above.

The problem seems to be that the specific pow and int functions are not supported by your version of Python. Try using a newer version of Python (ex. 3.8.10 should work).

The problem seems to be that the specific pow and int functions are not supported by your version of Python. Try using a newer version of Python (ex. 3.8.10 should work).

sloved.
thanks！


chore(abe2e): only trigger e2es on successful VHD build

What type of PR is this?

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Requirements:

[ ] uses conventional commit messages

[ ] includes documentation
[ ] adds unit tests
[ ] tested upgrade from previous version

Special notes for your reviewer:
Release note:
none

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

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

Totals

Change from base Build<PHONE_NUMBER>3:
0.0%

Covered Lines:
2572

Relevant Lines:
3619

💛  - Coveralls


Using names like "locks" and "critical section" might be misleading

The document and api use names like "locks" and "critical section". Those indicate that the behavior of the code is the same as if we talked about in-process locks and critical sections which I doubt is the case.
For in-process case, critical sections mean that no two threads of execution can be inside a critial section ever. Is this the case with this solution?
If I write something like:
 using (await ctx.LockAsync(player))
{
    bool available = await ctx.CallEntityAsync<bool>(player, "is-available");

    if (available == false)
    {
        Guid gameId = ctx.NewGuid();

        await ctx.CallEntityAsync(player, "is-available", true);
        externalApi.DoSomething(gameId);
    }
}

am I guaranteed that I will always have one external call (assuming it does not throw)?.
I think that calling those primitives transactions on entities might be more suitable.

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

ID: 81f6150a-622b-e616-2c1e-af813c02fc9e
Version Independent ID: 837bfb4d-d93e-7bb7-4ed7-059d3783a0e5
Content: Durable Functions preview features - Azure Functions
Content Source: articles/azure-functions/durable/durable-functions-preview.md
Service: functions
GitHub Login: @cgillum
Microsoft Alias: azfuncdf

Hello @tmasternak Thank you for your feedback! We will review and update as appropriate.

I think this is fair feedback. @sebastianburckhardt what are your thoughts on rephrasing this?

I called them locks and critical sections because they really are that. They really do behave like locks (mutexes) and critical sections, and not like transactions.

am I guaranteed that I will always have one external call (assuming it does not throw)?

Yes. No two orchestrations can be in a critical section at the same time (if the respective set of locks has a nonempty intersection). The orchestration does not enter the critical section until it has acquired all the locks.
I think is important to not call them transactions, because transactions behave very differently. Transactions may fail (and then need to roll back), which makes them less useful when external operations are involved (as in your example). I have implemented transactions for actor systems before (for Orleans) and it is a very different story with many difficult details (e.g. optimistic vs. pessimistic concurrency control, timeouts, storage formats, ...). I would argue that locks are a much simpler concept that should be easy to grasp for anyone who has used locks in a non-distributed context before.
That said, perhaps we need to talk more about all that and have examples so the idea becomes more evident.

@sebastianburckhardt thank you for the explanation.
As far as I could figure out the mutual exclusion protocol is based on the ordering - provided by event sourcing over Azure Storage, and the lock acquisition protocol - ordered acquisition and the last entity in chain granting the lock. What it guarantees is that the state of the system (reflected in committed storage state) never allows for two conflicting locks (non-empty intersection) being held.
Looking at the code I've provided from the possible failure scenario perspective I still think it's possible for two physical threads to execute it. One that read the event sourcing state, entered the critical section and time-outed on the underlying storage lock (basically when through failure) and second which is executing exactly the same path with the same state. In other words, the situation I have in mind can happen with Durable Tasks no matter if entities are used or not.
That being said your explanation @sebastianburckhardt made me realize that the failure I had in mind appears on a lower level causing retries, and does not change the system state as this is deterministic over retires. Assuming that the orchestrator does not call activities directly (my code is an anti-pattern in that regard!) users don't need to bother.
In other words, I retract my feedback. Thanks for the insights :) - really appreciated!

@sebastianburckhardt Thanks for the insights!
@tmasternak We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


Rewrite the explanation of pipelines in dag command's description #1500

#1500 Rewritten the explanation for the pipelines under the description part of the dag command.

Good try but unfortunatelly this is pretty far of. Parts of the text could be salvaged but needs a new try from scratch, probably. Thanks! But closing


Web - Expense report - Approve button not disabled if selected before enabling Self-approval

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.4.56-1
Reproducible in staging?: y
Reproducible in production?: n
Issue found when executing PR: https://github.com/Expensify/App/pull/37348
Issue reported by: Applause - Internal Team
Action Performed:
precondition: user created a collect policy in OD, added a bank account, and set Direct reimbursements

Log in to OD as the admin of the collect policy
Navigate to the collect policy settings > Members
Enable the Prevent self-approval toggle
Log in to ND as the admin
Open the workspace chat and create a manual request
Disable the Prevent self-approval in OD
Refresh the page or open the report and submit the report in ND
Select Approve from the drop-down but do not click on it
Enable the the Prevent self-approval toggle in OD

Expected Result:
The approve button is disabled both on the report preview and in the expense report
Actual Result:
The approve button is not disabled if it was selected before enabling Self-approval. Clicking on the Approve button results in skeleton loading
Workaround:
n/a
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/5d12077f-0107-49df-b538-7b4286dc20ec
View all open jobs on GitHub

We think that this bug might be related to #wave-collect - Release 1

We think that this bug might be related to #wave-collect - Release 1

Seems to have come from https://github.com/Expensify/App/pull/37348

Guessing it's not a blocker since collect policies are not available to users on NewDot yet.
@barros001 @alitoshmatov - looks like it might be coming from https://github.com/Expensify/App/pull/37348 indeed – any idea on how we could fix this?

All done here, fix is on production. The regression was fixed by the author of the PR that originally caused it, so I believe no payment is needed, but let me know if that's wrong.


Add shingle token filter docs

Description
Add shingle token filter docs
Issues Resolved
Closes https://github.com/opensearch-project/documentation-website/issues/8275
Version
all
Checklist

[x] By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license and subject to the Developers Certificate of Origin.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@udabhas Will you review this PR for technical accuracy, or have a peer review it? Thank you.


#81 | I am getting an error in python3.8. Can you please check this.

#81 | I am getting an error in python3.8. Can you please help me on this. You can check the screenshot below.

Can you please try installing from the github, and trying again.  IE, pip install git+github.com/nadermx/backgroundremover should install the commit I just tried.  If it works, let me know so I can close the issue

Still I am getting the same error. Is there anything else that I am missing.
Here is my screenshot:

That still seems like the old one.  Try installing to specific git.
El mié, 31 de may de 2023 07:45, imprintnext-deb @.***>
escribió:

Still I am getting the same error. Is there anything else that I am
missing.
Here is my screenshot:
[image: image]
https://user-images.githubusercontent.com/81958754/242295082-50e646b0-6257-4e6f-8188-3028627e5f99.png
[image: image]
https://user-images.githubusercontent.com/81958754/242295719-9dc12a71-59c0-423f-8070-6888a2631768.png
—
Reply to this email directly, view it on GitHub
https://github.com/nadermx/backgroundremover/issues/82#issuecomment-1570267687,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABYACXA7LY5JNIR7PV77VCDXI5DPTANCNFSM6AAAAAAYT7G5GA
.
You are receiving this because you modified the open/close state.Message
ID: @.***>

make sure you remove backgroundremover first, then fresh install pip
install git+https://github.com/nadermx/backgroundremover.git
@86d4c591a17b8bc99ca998073b7d5d12372c4be7

I went ahead and bumped the version, so pip install --upgrade backgroundremover should fix it


Fix Dell C6320 'TotalSystemMemoryGiB' is 0.25

Resolves ODR-792

:+1:

test this please

test this please

test this please


For-loop instead of withParam/withItems/withSequence

We could replace all three of these with a iterator for-loop spec:
for:
  iterator: i < 4 ? ["a", "b", "c", "d"][i] : nil

@alexec i would love to take this up

Hi @khanjasir90 - sure - do you would to propose a spec for this?


🍒 Cherry pick PR #4117 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/Expensify.cash/pull/4117 to staging 🍒

🚀 Deployed to staging         in version: 1.0.79-1🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production         in version: 1.0.79-4🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Add support for cache results

Type: feature
Issue: Resolves #534
Breaking change: no.
Feature:
Added the ability to enable (default disabled, enable via --cache) result caching. This will write on the first run a cache file (.phpmd.result-cache.php, configurable via --cache-file) and will be used in the next run. Any files that have not been changed since then based on either the sha1 of content or file modified timestamp (can be set via --cache-strategy). Any changes to the configuration will invalidate the entire cache. Cache key is based on: strict mode, baseline file, composer.json, composer.lock modified, any modification to the rules and changes to PHP version.
Command line options:

--cache: if set will enable reading and writing the result cache.
--cache-file <file>: will change the result cache file location.  Default ./.phpmd.result-cache.php
--cache-strategy [content|timestamp]: changes the strategy if a file is modified is determined. Default content

Performance:
Some basic performance tests on a large codebase result in:
Cache disabled:             2m54.095s
Cache enabled, cache miss:  2m53.310s
Cache enabled, cache hit:   0m0.789s

Technical
As the structure of PHPMD didnt quite allow a clean integration for result caching, I looked into PDepend how to hook into the file inspection foreach. I found PDepend\Input\Filter, which I added as last filter in PHPMD. When PDepend now iterates over each file, the ResultCacheFileFilter will check if the file is modified or not. If the file is modified, the file will not be filtered out and be inspected by PDepend. If however a file is not modified, we keep track of this file to later add the possible stored violations to the final report.
The ResultCacheEngine is the main control of the cache, and consists of 3 stages:

first the FileFilter that hooks into PDepend.
second the Updater that will transfer the violations stored in the cache to the report.
and third the Writer, which will write the result cache state back to file.

Technical challenges
As described above, I needed to add RuleViolation class to the report based on data from the cache. I changed the RuleViolation constructor signature to avoid including the AbstractNode type and replaced it with NodeInfo class. This class contains the same information that was used from the AbstractNode, and is far easier to construct.
Second problem was that RuleViolation also requires a Rule class. As PHPMD::processFiles method was passed a RuleSetFactory, which I also needed before PHPMD::processFiles was invoked, I moved the method
calls to RuleSetFactory outside the PHPMD::processFiles method.
Changes:

Added /Cache/ namespace with several classes to read, write, and calculate the result cache.
Added /Cache/Model for some data models.
Added coverage for my changes
Updated documentation regarding the cli options
See my comments on the specific files for the reason of the changes.

No idea why SARIFRendererTest is failing. I didnt do any changes near that test.

No worry for the sarif test it will be handled in #1007

Codecov Report
Patch coverage: 90.07% and project coverage change: +0.44 :tada:

Comparison is base (b4d6e1c) 88.65% compared to head (efab9d0) 89.10%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #1011      +/-   ##
============================================
+ Coverage     88.65%   89.10%   +0.44%
- Complexity     1076     1160      +84
============================================
  Files            96      107      +11
  Lines          2698     2956     +258
============================================
+ Hits           2392     2634     +242
- Misses          306      322      +16

Impacted Files
Coverage Δ

src/main/php/PHPMD/TextUI/CommandLineOptions.php
67.48% <34.61%> (-3.94%)
:arrow_down:

src/main/php/PHPMD/PHPMD.php
82.35% <76.92%> (-3.37%)
:arrow_down:

src/main/php/PHPMD/ParserFactory.php
90.90% <80.00%> (-1.40%)
:arrow_down:

src/main/php/PHPMD/Cache/ResultCacheKeyFactory.php
85.71% <85.71%> (ø)

...rc/main/php/PHPMD/Cache/Model/ResultCacheState.php
95.00% <95.00%> (ø)

src/main/php/PHPMD/AbstractRule.php
76.66% <100.00%> (ø)

src/main/php/PHPMD/Cache/Model/ResultCacheKey.php
100.00% <100.00%> (ø)

src/main/php/PHPMD/Cache/ResultCacheEngine.php
100.00% <100.00%> (ø)

.../main/php/PHPMD/Cache/ResultCacheEngineFactory.php
100.00% <100.00%> (ø)

src/main/php/PHPMD/Cache/ResultCacheFileFilter.php
100.00% <100.00%> (ø)

... and 8 more

... and 1 file with indirect coverage changes

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

Hi @frankdekker,
thanks a lot for implementing the phpmd result cache feature! Good job.
Happily set the new options in our (huge) project ... but without any speed improvement.
Cloned the phpmd repo and used the source code to run it to be able to find reasons.
It might be a bit specific for our project but others might have the same problems?
a) We run phpmd from a scripts folder on our CI system to analyse multiple paths - neither composer.json nor composer.lock are located in the scripts folder.
b) We do not use a baseline file.
Tracked the problem down to /Cache/ResultCacheStateFactory.php::createCacheKey. As the files from a) and b) are not available the built cache[key] array structure contains NULL for baselineHash and composer.
As the isset call in the mentioned method returns false for array keys with value NULL ... the whole caching does not work (in our case).
Any chances to make both composer files and the baseline file optional?
(Commented the isset checks for $data['baselineHash'] and $data['composer'] and the caching worked as expected.)
Best,
mvoelker


[Suggestion] Add /MT compile option support

It would be good if the source could be compiled with /MT mode to prevent ordinary user from installing VC++

https://docs.microsoft.com/en-us/cpp/build/reference/md-mt-ld-use-run-time-library?view=msvc-160

i guess it caused by freetype lib or smth, u always should keep same rt-lib for all dependecies and project.

i guess it caused by freetype lib or smth, u always should keep same rt-lib for all dependecies and project.

I have no idea what you mean but with other projects i do not see such issue


typos

note that this doc mentions 'routes'

ya let's clear this out. ping @delabassee or @michael-w-williams!

good to go now.


fix minor bugs and add page objects in js

📥 Pull Request
Description
fix duplicate function issue in javascript also fix the naming convention and and the page objects in javascript
Fixes #913
before

after issue fix

Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Thanks


Please create an outside collaborator/s pull request

usernames
aprilmd
chubberlisk
mcoffey-mt
emileswarts
bjpirt
names
april dawson
wen ting wang
matthew coffey
emile swarts
ben pirt
emails
<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>org
Made Tech
reason
Full Org member / collaborator missing from Terraform file
added_by
<EMAIL_ADDRESS>review_after
2023-05-26
permission
push
repositories
hmpps-utility-container-images
hmpps-visits-internal-admin-ui
hmpps-welcome-people-into-prison-api
hmpps-welcome-people-into-prison-ui
hmpps-wmt-migration
hmpps-workload
keyworker-api
legacy-ppud-api
licences
manage-a-workforce-ui
manage-key-workers
manage-recalls-api
manage-recalls-error-pages
manage-recalls-ui
manage-soc-cases-api
manage-soc-cases
nomis-api-terraform-azure
nomis-prisoner-deletion-service
nomis-user-roles-api
offender-case-notes
offloc-server
ppud-replacement-bandiera
ppud-replacement-dashboards
pre-sentence-service-wproofreader
pre-sentence-service
prepare-a-case
prison-api
prison-offender-events
prison-services-feedback-and-support
prison-to-probation-update
prison-visits-2
prisoner-contact-registry
prisoner-content-hub-backend
prisoner-content-hub-feedback-exporter
prisoner-content-hub-frontend
prisoner-content-hub
prisoner-offender-search
probation-offender-search
probation-teams
send-legal-mail-to-prisons-api
send-legal-mail-to-prisons
token-verification-api
use-of-force
visit-scheduler
whereabouts-api
wmt-web
wmt-worker

PR created and merged in


Astarte microservices should expose a version endpoint

Add a /version endpoint to each microservice API, so that it could be queried by third-party applications that depend on Astarte. Note that the endpoint would return the microservice version, not the API version.
The endpoint should be queried using the GET verb and it should be accessible without auth, as done with /health.
This would allow applications to act differently depending on the underlying Astarte services version. This might come in hand e.g. to know whether device deletion is allowed or not.

Closed by #893


[Relay/TOPI][Op] Add TopK operator

This PR includes the following changes

[x] Add topk op in Relay and Topi
[x] Update argsort op to support output data type other than float32
[ ] Add frontend converter for topk

Have you compared you current sort implementation with existing one? Is there any performance regression for large workloads like (1, 8000)

@Laurawly I tested the argsort with (1, 8000) on p3. Existing one take 28.57ms to finish, and the one in this PR takes 15.11ms.

@Laurawly @yongwww Could you review this PR again?

Thanks @icemelon9 @yzhliu @yongwww , this is merged.


[Question] How can I use giftless as the default git lfs server for gitea?

Feature Description
We would like to have a upload enhanced version of git lfs server, and we found gitftless support multiple-part, so my question is how can I configure giftless as the default and external git lfs server for gitea?
Screenshots
No response

I don't think it's possible. Gitea doesn't use the official lfs server but written itself.

We close issues that need feedback from the author if there were no new comments for a month. :tea:


ScalingAdjustment is an integer

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-policy.html#cfn-as-scalingpolicy-scalingadjustment

Thanks!


Add reactive-state example

Hey guys sorry if this PR is to the wrong branch, let me know and I'll swap it.
This branch adds the example project I outline in #1061 so I won't go too into detail here.
Let me know if you guys would like to see anything else added or removed :)

@DukeFerdinand It will be a few days until I have time to look at this, thanks for adding!

No rush! Just wanted to get it PR'd while I was writing it :)

@DukeFerdinand are you still working on this?

@teymour-aldridge I am, I just haven't had too much time outside of work. I'll get something up this week

@jstarry Sorry for the massive delay in getting this out, we were rolling out some updates at work so I had 0 free time :(
That being said, did I miss an update? I can't find examples/web_sys now. Also it's a bit more of a "batteries included" example that some of the other examples because it requires a JS toolchain. Should I put it in a different folder/project now since that doesn't rely on the default build script?

@jstarry This is still breaking for some reason on build, is there anything I can do to finally get it merged in?
I'm actually using Yew for work now (we're building a yew/WASM table for an internal tool) and I'm returning to my own example for how I'd like to do it, so I'd like to get this put in the examples haha

Totally cool, 99% of the delay was me being away for a month and not completing the requested changes :)
It's looking really promising too for our use case of a fast table library. I can update with some more info later especially if there's anywhere to give testimonials, and I'm pretty sure our head dev would be cool listing us on a "these companies use Yew" sort of list

@DukeFerdinand, I opened a new issue #1544 for showcasing companies using Yew. If you're interested, please post the details there.


Not adding Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore will result in build error when following blazor movie database app tutorial

Added Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore when using VS Code and .NET CLI on
https://learn.microsoft.com/en-us/aspnet/core/blazor/tutorials/movie-database-app/part-2?view=aspnetcore-9.0&pivots=vsc
Not adding Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore will result in build error when following the tutorial.

Internal previews

📄 File
🔗 Preview link

aspnetcore/blazor/tutorials/movie-database-app/part-2.md
Build a Blazor movie database app (Part 2 - Add and scaffold a model)

@kennethmanuel ... If you agree with the terms, can you sign the CLA. We can't accept the PR without it.

@dotnet-policy-service agree


HACS integration successfull, but can't see TAPO in HA Integrations

I installed the TAPO Controller HACS integration successfully

But when I search for TAPO in HA Integrations I don't see it

Sorry, I gave it a go again a few times, and some hours later it appeared anyways.

The same and not found in integrations till now.
Rpi 4
Hassos
Everything are the latest versions


kuma_sd does not report all targets

What did you do?
Use the new kuma_sd to discover scrape targets.
What did you expect to see?
5 targets.
What did you see instead? Under which circumstances?
Only 1 target, which changes when the discovery reports new targets.
It looks like they are just being overwritten, likely because of the "Source" of all the groups is "kuma", which is used as a key for targets in the manager.
We could solve this by namespacing group sources, i.e.: instead of "kuma", `"kuma/{mesh}/{dataplane}" which is unique.

Prometheus version: 2.29-rc.0

Prometheus configuration file:

global:
  evaluation_interval: 1m
  scrape_interval: 10s
  scrape_timeout: 10s
scrape_configs:
  - honor_labels: true
    job_name: 'kuma-dataplanes'
    kuma_sd_configs:
      - server: "http://localhost:5676"

cc @roidelapluie
I'll have a fix PR in shortly.

You will also need to send empty targetgroups for disappearing groups.

You will also need to send empty targetgroups for disappearing groups.

Sounds good, I'll keep a cache of target group source names and diff on update.

How do we get notified about deleted resources?

How do we get notified about deleted resources?

The xDS server sends the entire "state of the world" with every response, so missing resources indicate their deletion. When they are deleted, the xDS server also invalidates the cache and its version, so subsequent requests will be sent the full update.


click isssue

Hello i have issue - It only click 2 times then going to next step
I used
Init wait 2s  xPath //[@id="gwiazdeczki"]/div[1]/div[1]/a[5]  repeat 4  interval 1
and
Init wait 11s xPath //[@id="nextpop"] repeat 0 interval 0
site is https://www.zdrowyportal.org/10866/rady-na-sprawne-stawy/
i want to click on starts (5 star)
PLZ HELP <3

It seems the website is updated and the xpath you have provided is no longer correct. Can you please re-check and update us


Fix typo in app get function description

Before, the description of the app.get() function read:

Returns the value of name app setting, where name is one of strings in the app settings table.

Sentence was missing the to instead read:

Returns the value of name app setting, where name is one of the strings in the app settings table.

Thanks @robbiejaeger


Fix LICENSE.txt

Can you resolve the conflicts? What the cringe you are trying to merge in my application?

The task is not trivial, so far I am converting to draft


PyData Chicago 2016

Web
http://pydata.org/chicago2016/

Playlist
https://www.youtube.com/playlist?list=PLGVZCDnMOq0pMUpVnQ8h5byVzIJNZCo2S

It looks like https://github.com/pyvideo/data/pull/111 closes this one.

Tanks again.


JVM did not respond: Resource temporarily unavailable

When using jattach, an error occurred. I would like to know the reason for this type of error.
like this:
# jattach 17207 load /tmp/agent.so true
JVM did not respond: Resource temporarily unavailable

java version:
I have no name!@reviews-v2-5c5d44c8d7-2zzcd:/$ /opt/ibm/java/jre/bin/java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build [<IP_ADDRESS>](http://<IP_ADDRESS>/) - pxa6480sr6fp16-20200902_01(SR6 FP16))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64-Bit Compressed References 20200901_454898 (JIT enabled, AOT enabled)
OpenJ9   - 2799ddf
OMR      - b348d97
IBM      - 5371022)
JCL - 20200831_01 based on Oracle jdk8u261-b13

cmdline:
# ps -wef  | grep java | grep "jdk.attach.allowAttachSelf=true"
yifeng   17207 22937  0 Dec13 ?        00:02:23 /opt/ibm/java/jre/bin/java -javaagent:/opt/ibm/wlp/bin/tools/ws-javaagent.jar -Djava.awt.headless=true -Djdk.attach.allowAttachSelf=true -jar /opt/ibm/wlp/bin/tools/ws-server.jar defaultServer

I checked with the earliest OpenJ9 version I could find - IBM Semeru Runtime Open Edition 8.0.302.0 from July 2021 - and jattach worked fine with it.
You're using even earlier version. I suggest to update your JRE if possible: jattach has not been tested with outdated versions of OpenJ9.

Thank you very much for your response. I will upgrade the version later to address this issue.


Eloquent doesn't support ShortPromo URL in About section

In a yet-unreleased module that includes a ShortPromo link, Eloquent does not display the URL:

Xiphos does:

https://wiki.crosswire.org/DevTools:conf_Files
This would be a useful addition to the About pane. (Thanks to David Haslam for the tip)

Now also showing distribution license and promo.


[BUG] - US phone number with country code works incorrect

#Demo: https://text-mask.github.io/text-mask/
Reproduce:

Choose mask: US phone number with country code.
Masked input, paste follow text<PHONE_NUMBER>.

Current result: mask conformed +1 (322) 222-223_ , second char was not conformed.
Expected result: conformed value +1<PHONE_NUMBER>

I am having the same issue also. Wondering if this is a new bug.

I also found this problem, i've looked at source code, the problem is symbols in mask being deleted in value. I don't know how to properly make a pull request to fix this bug. Maybe finding if mask have country code with plus and number after it and don't delete it from value?

Do you guys know if this bug appeared in one of the recent versions, or it was always present?

I think it always presents, because when I tried to fix it I found that this case was covered with unit-tests.

Hello, we are constantly running into this issue, any updates on this?

Hi, have a little different trouble. When I paste phone sometimes mask misses character '0'.
mask: ['+', '3', '8', ' ', '(', '0', /[4-7|9]/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, '-', /\d/, /\d/]
paste: +380674052008    //+38 (067) 405-20-08   (good)
paste:<PHONE_NUMBER>08       //+38 (067) 405-20-08   (good)
paste:<PHONE_NUMBER>8         //+38 (067) 452-00-8_   (bad - missed 0 between 405)
paste:<PHONE_NUMBER>           //+38 (067) 405-20-08   (good again)
I don't get it...
Please, help to fix this behaviour

I addressed this issue by changing our mask from
['+', '1', ' ', /[1-9]/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
to
['+', '1', ' ', /[2-9]/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
We were able to do this since US/Canada area codes do not start with '1'.

My initial mask of
['+', '1', ' ', '(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
was eating the '1' from area code '619' (or any '1' in the second digit place) when pre-populating the field.
I tried changing '/[1-9]/' to '/[2-9]/' as suggested by @efritzley but that did not help me.
On a hunch, I changed the mask to
['+', '9', ' ', '(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
and indeed, any '9' in the second digit of the area code was now eaten.
If I removed the static country code and start the mask with a static paren, it works fine.

Workaround for this issue is to use pipe function, to add first static chars:
mask = {
    ['(', /[1-9]/, /\d/, /\d/, ')', ' ', /\d/, /\d/, /\d/, '-', /\d/, /\d/, /\d/, /\d/]
}
pipe = {
    rawValue => {
        value: `+1 ${rawValue}`,
        indexesOfPipedChars: [0, 1, 2]
    }
}

I use it in my project

You can add space(' ') between + and country code
['+', ' ', '9'   .....

You can add space(' ') between + and country code ['+', ' ', '9' .....

Thanks bro, it worked for me!

You can add space(' ') between + and country code ['+', ' ', '9' .....

Thanks bro, it works for me!


docs: fix incorrect import in HOC example

The example snippet for HOC usage was importing the useAuth function rather than withAuth in the markdown documentation.

Thanks for helping out!


Error with redux 4.0.0: Type 'S' does not satisfy the constraint 'Action'

Using Redux 4.0.0 some errors occur while bundling a typescript/preact/preact-redux project.
Versions I'm using:
<EMAIL_ADDRESS><EMAIL_ADDRESS>
The errors:
ERROR in [at-loader] ./node_modules/preact-redux/src/preact-redux.d.ts:19:23
    TS2344: Type 'S' does not satisfy the constraint 'Action<any>'.

ERROR in [at-loader] ./node_modules/preact-redux/src/preact-redux.d.ts:214:25
    TS2344: Type 'S' does not satisfy the constraint 'Action<any>'.

I found a similar issue here: https://github.com/redux-observable/redux-observable/issues/449

@4lph4-Ph4un you can checkout my PR/Fork that fixes the issue: https://github.com/greengiraffe/preact-redux/commit/e8a6835ece497b3339f24eb5ce053645b2785ff1

Ah excellent, thank you! :) is there a plan to integrate this into the master? I can patch that for my project that way, but just curious about its ETA :)

Any plans on merging this? Would be super helpful instead of having to manually enter the changes in whenever I install it.

Apologies! I'm not a redux or TypeScript user so I haven't been bitten by these issues yet. I'll take a look at the PR.

I've merged the various PR's for type changes. Would you be able to test against master and see if the issues are fixed @greengiraffe @4lph4-Ph4un or @pmkroeker?  Cheers.

Just tested and it looks like its cleared all of the conflicts that I was having. Thanks!

@developit Thanks for merging. I switched from Preact to React for other reasons so I can't test against master right now. I assume that if it works for @pmkroeker it will be fine.

@developit would there be any chance of popping this out in a release? 🙏

Yup.


Feature Request: Queue

First off I'm happy with the library, it made showing a popup easy. I'd very much like to queue them and have found that to be somewhat cumbersome on my end. Any chance you could add either some kind of dismiss callback, make the binding value passed in set to false when autohide happens, or just build some nice API for queuing popups?

Hey @Tyler-Keith-Thompson, thanks for your kind words! I've added dismiss callback (version 0.0.12, you are most welcome to check it out). Binding value should be changed as it is - otherwise it wouldn't have worked, I guess, but please do let me know if that is not the case. As for nice API, I think chaining them using dismiss callback is as nice as it gets - otherwise it's just going to get in-evident and heavy, but I'm open to ideas if you had anything in mind. Have a great day!

Hey @Tyler-Keith-Thompson, did the dismiss callback help? May I close the issue, or would you like some more functionality?

Oh sorry! I thought I had responded to this a while ago and apparently never did. Your callback did the trick and I ended up building my own thing around it to queue up messages.
Thank you for your quick addition


Missing matcher for rendering text

Is it possible to examine if get request rendered text?
I know there are hacks like response.body == 'any string' but it does not interest me. I'm just wondering if there is "RSpec™" way to do it.
Having this rspec:
RSpec.describe MyController, type: :controller do
  controller do
    def index
      render text: 'Hellow'
    end
  end

  describe 'rendering' do
    subject { get :index }
    it { is_expected.to render_template(text: 'Hellow')}
  end
end

I would love to be able to call it { is_expected.to render_template(text: 'Hellow')}. It raises:
     Failure/Error: it { is_expected.to render_template(text: 'Hellow') }
     ArgumentError:
       Unknown key: :text. Valid keys are: :layout, :partial, :locals, :count, :file

or maybe     it { is_expected.to render_template('Hellow')}
     Failure/Error: it { is_expected.to render_template('Hellow') }
       expecting <"Hellow"> but rendering with <[]>

Is there any RSpec™ way to accomplish it?

Answer on that from SO: http://stackoverflow.com/a/33393300/2047418

I agree.  The "RSpec way", as you call it, isn't to use a different for every situation -- it's to use whatever expresses the expectation well and provides a good error message.  Using eq works just fine here.  Closing.


License?

Could you add a license please?
If you're not sure which one to choose, this site might help.

added


Added prowl notifier

Added support for Prowl push notifications.
https://www.prowlapp.com/

@DeviaVir updated

Cool, thanks for contributing! :+1:


docs: add installation guide doc

:tada: This PR is included in version 0.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket: