Possible reasons:

The file less than or equal 4096 bytes, or resuming from the breakpoint which the remaining size less than or equal 4096 bytes.
Set manually: task.setCallbackProgressTimes(0) or less than value.


Does Android have a similar feature IOS's MixWithOthers ?

IOSCategoryOptions.MixWithOthers works perfectly, does Android have a similar feature? Use case is I don't won't the sound from my App to kill music/sound from other Apps.

@jewwc7 I'm not aware of that capability on Android. If it exists it should be in the docs website.


Add function signatures to module data

This PR adds function signatures to module data, as well as checking that Instance::run calls are made with matching arguments. This exposed a few instances in our tests where we were actually calling functions with incorrect arguments, but things happened to work out.
A small but noteworthy change is that the function manifest I was building in #136 unintentionally excluded imported functions. Those are included now, since they have signatures, can be called, and need to be recorded just the same.

wrt Module::module_data() being partial - I'd rather see a design that validates the module data as part of creating a Module, so that we don't have to unwrap that everywhere. If a module has an invalid manifest, we don't want to do anything with it, so it should fail as early as possible.


Log all accessible ports on remote mode dev

Closes #1652
Uses borrowed logic from miniflare

FYI, I've just put up a PR against Miniflare to fix a small bug related to the code you've copied: https://github.com/cloudflare/miniflare/pull/382
Not sure if it affects you here, but worth testing.

Good catch, resolved

(Provided tests pass) I'm going to merge this in now
Doesn't look like we have proxy server tests? Maybe this is something we should address...


[RFC][DNM] Allow clang targets to specify a single public header

Wondering what you think about allowing this. There are some popular C libraries who don't separate their public/internal headers at the filesystem level, instead relying on their own build scripts to only copy the appropriate headers (e.g. Oniguruma and Onigmo). We could also support an explicit list of public headers, but that's more work to do in a source-compatible way at the PackageDescription level.
We need to copy the header file to the build's working directory (and set that directory as the include path), or all subsequent targets will warn about the modulemap being "incomplete" 😕. FileSystem could use a copy method.
Will add tests if feedback is positive.

CC @aciidb0mb3r

My goal was to try and use the C library and its existing structure relatively untouched (i.e. without adding a custom modulemap).

That makes sense but I think we should try to do in a way so it works for all C libraries. The proposed solution works for only some libraries and introduces more special cases.

Closing due to inactivity, feel free to update and reopen.


Timeout error after scenario if scenario uses steps from multiple test files

Expected behavior
Should move on to next scenario after all steps have passed for a scenario and after Chromium browser has been closed
Actual behavior
Getting an error message:
Error Message: Error: Timed out
    Stacktrace:
    Error: Timed out
        at Timeout.<anonymous> (/Users/WC/.gauge/plugins/js/2.3.4/src/test.js:43:23)
        at ontimeout (timers.js:427:11)
        at tryOnTimeout (timers.js:289:5)
        at listOnTimeout (timers.js:252:5)
        at Timer.processTimers (timers.js:212:10)

Steps to reproduce

Create a test suite with multiple scenarios, using beforeScenario(async() => await openBrowser({headless: false})); for setup and afterScenario(async() => await closeBrowser()); for cleanup
Run test specs

Versions
Node version: v10.5.0
Taiko version: Version: 0.5.0 (Chromium:73.0.3638.0)

@nwai90 I am able to run the spec with multiple scenarios successfully.
The attached is the sample project I am running.
tmp.zip
Versions
Node : v11.7.0
taiko : Version: 0.5.0 (Chromium:73.0.3665.0)

If there are lot of actions in your step which takes time, you can try increasing the gauge step timeout test_timeout = 120000 in env/default/js.properties  it takes time in milliseconds.

Hi @Apoorva-GA @NivedhaSenthil I tried increasing timeout; this doesn't help as all the steps are already passing - the timeout happens only at the very end of each scenario.
I did however manage to reproduce the issue, and have attached a modified version of the sample project.
In the attached example, the workflows to be automated have been organised into different phases (using a pipelined approach). Each test file comprises several steps that may be grouped by domain or other logic, and a single scenario might include one or more steps from each test file.
The timeout at end of scenario seems to occur whenever a scenario uses steps from multiple test files, even though every file already contains an afterScenario cleanup step.
tmp.zip

@nwai90 I see that you have two afterScenario hooks defined in the project. Gauge executes all the hooks defined. Since one afterScenario had already closed the browser when executing the other hook the step is timing out.

@Apoorva-GA I see, was under the impression that only the hooks in files that contained steps which would be run for a given scenario would be executed. Just tried and it works well if all extra afterScenario hooks are removed. Many thanks for your help; will close this issue.

I'm also facing this issue intermittently, I have an after-scenario hook that stops the video recording and closes the browser.
Randomly I'm getting this error.
 beforeSuite - clear video record directory
            beforScenario - openBrowser & startVideo Recording
            afterScenario - stop video recording, delete video file if the test is passed & close the browser
 afterSuite - empty

After-scenario is failing randomly


Make CommandExecutor pluggable

Follow-up #1315, make CommandExecutor pluggable using the same approach with #1325.
Note that if this design is OK, I will add documentation for this.
See also: https://github.com/treasure-data/digdag/pull/1315#issuecomment-578309601

I will recreate this PR since it's difficult to rebase...


Display errors from go command

First of all, thank you for this amazing project
Consider the following command:
cyclonedx-gomod mod -verbose=true -json=true -assert-licenses -licenses=true -output "/tmp/sbom/core.json" core
You can see thanks to -verbose=true the go commands that cyclonedx-gomod runs behind the scenes:
5:30PM DBG executing command cmd="/usr/local/go/bin/go mod why -m -vendor github.com/CycloneDX/cyclonedx-go" dir=core
5:30PM DBG loading vendored modules includeTest=false moduleDir=core
5:30PM DBG executing command cmd="/usr/local/go/bin/go mod vendor -v -e" dir=core
5:30PM DBG filtering modules includeTest=false moduleCount=207 moduleDir=core
...

I have a process that runs non-interactively to produce the SBOMs. When it failed, I accessed the machine it ran on, but the same behavior could not be reproduced. This is because when the shell is running interactively, it changes its behavior in several ways: https://www.gnu.org/software/bash/manual/html_node/Interactive-Shell-Behavior.html
My method to troubleshoot this issue was to run the cyclonedx-gomod command in the interactive session (which succeeds) with the -verbose option, to see which go commands it is running, and to add these go commands to my non-interactive workflow. By running go without cyclonedx, I could see the actual error I ran into, which was very simple and caused by the difference in environment variables present in the interactive vs. non-interactive session: go<EMAIL_ADDRESS>neither GOPATH nor GOMODCACHE are set
Currently cyclonedx-gomod doesn't show the errors from the go commands it runs:
ERR error="failed to download modules: command `/usr/local/go/bin/go mod why -m -vendor github.com/CycloneDX/cyclonedx-go` failed: exit status 1"

I think it would be a great help to people who use this project if they could see what went wrong behind the scenes rather than just seeing "go exited with error code 1".
I looked at the -help files for cyclonedx and I didn't find anything like this, let me know if I missed it, and if it doesn't yet exist please consider adding it. Thanks

Not sure what could be missing here. We already forward stderr output to our logger for go mod why invocations:
https://github.com/CycloneDX/cyclonedx-gomod/blob/5e81aff27ede8e8978b3c92b9761fc467842323f/internal/gocmd/gocmd.go#L118-L127
Go should not be writing errors to stdout - if it does it is inconsistent with how it behaves in other commands.


feat: export to csv

It's EOD for me, so gonna be short and sweet:
This PR expands my other one (#27). It creates a csv directory if it doesn't exist, by default only prints to stdout like before, but also generates 5 CSVs:

direct_repo_rights.csv
repo_deploy_keys.csv
repo_list.csv
team_list.csv
team_membership_list.csv

There are two new env vars:

TTL: 3600 by default, the time to live for the requests cache
OUTPUT_MODE: stdout by default, can be set to csv to generate the CSVs only, or both to print each function's output to stdout and generate the CSVs

Lastly, I reverted python from 3.13.0 to 3.11.10 as there are issues with bare metal debugging in VSCode. Allegedyly this is fixed, but will need to try out later this weekend.
Marking this as a draft as I need to setup the csv directory in the Dockerfile.

@pythoninthegrass , thanks! Will review this soon!


fix: squash migration files in all modules

@adamvert it would be nice to have this PR merged before this one #483 :grimacing:


Taal: Re-create ASCII casts for the docs

Should be done after #302 is fixed.

Done in 690a3d5d2dd88e2ecbadebd89412df56b77455e9 and f9017307ce9cf4a850030be04cc8f6577ee8d7b7


Template enhancements

Update versions

jquery.validate.js & jquery.validate.min.js to 1.17.0.
jquery.validate.unobtrusive.js & jquery.validate.unobtrusive.min.js to 3.2.7
jquery.js & jquery.min.js to 3.3.1
Bootstrap to 4.0.0

Add/update crossorigin and integrity

Update integrity for new versions
Add these where missing (e.g., Bootstrap CSS)

 MIA
Pages and views should provide the page/view title in
 headings. The current templates ignore W3C advice (ref: https://www.w3.org/QA/Tips/Use_h1_for_Title). I suggest raising the
 headings to
, and there's nothing wrong with changing the
 elements on the Index page to
 elements ... nothing prevents multiple
 elements in HTML5. Could set the sizes of headers in the stylesheet; make them smaller than default.
Void elements
Some of us in the community feel that W3C hacked their own spec to allow closing void elements. Void elements, as we all know, can't contain content. Many recommend not closing them in HTML5.
Language in the Error page
Recommend some language updates in the Error page. Something like ...

Development Mode

Swapping to the Development environment displays detailed information about the error that occurred.

The Development environment shouldn't be enabled for deployed applications. It can result in displaying sensitive information from exceptions to end users. For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app or adding .UseEnvironment("Development") to WebHost in Program.cs and restarting the app.

... that also mentions .UseEnvironment() because it's a nice, quick way to pull it off across IDE's.

@mkArtakMSFT @danroth27 can we look at these suggestions and figure out if any should be applied as part of latest updates in 2.2? I'm particularly interested in crossorigin="anonymous" on our


[Proposal] Structural iteration

One of the patterns I've noticed in some of the P4 14 examples is to use a C-pre-processor define to specify the length of a header stack.  This is a convenient way to declare header stacks, but it means that code that needs to operate over explicit indexes within the header stack need to be protected by C-pre-processor #if/#elif/#endif constructs, or the C-pre-processor definition for the length of the header stack is inconvenient.
I was thinking it might be nice to have a foreach style iterator for operating over header stacks.
For example, you could imagine something like:
foreach hdr in hdrs {
  ... operations over HDR ...
}

Since the stacks are always known statically (at compile-time), the compiler could elaborate the foreach form into the replicated code with explicit index references at compile-time.  This has the advantage of allowing the code to be written without regard to a parameterized header stack length.
Since the compiler can statically determine the number of operations that would result from the foreach it can also reject a program if the result requires more action resources than are available, or can split the action code up to fit available resources as needed.

Discussed at 11/5/2018 LDWG. @jafingerhut volunteered to own this issue, and identify some examples for further design discussion.

This old issue might be relevant to #1261.


Prevent gcloud update message

When invoking gcloud inside Docker, we don't want it to notify about available updates. The GCloud version is fixed within the Docker image.

FYI branched wrongly and force-pushed to fix


Wasm StopIteration in OnHttpRequestHeaders causes filter to hang, even if there is a body (1.8+)

Bug description
Since istio 1.8, stopping iteration of headers in a WASM filter causes the filter to hang indefinitely. OnHttpRequestBody is never triggered.
Affected product area (please put an X in all that apply)
[ ] Docs
[ ] Installation
[X] Networking
[ ] Performance and Scalability
[X] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[ ] Upgrade
Affected features (please put an X in all that apply)
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Multi Control Plane
Expected behavior
When stopping header iteration in a WASM filter in OnHttpRequestHeaders, OnHttpRequestBody should be triggered if there is a body.
As per https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/source/extensions/common/wasm/context.cc line 1339, and https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/include/envoy/http/filter.h, line 28, StopIteration means the following;
// Do not iterate to any of the remaining filters in the chain. Returning
// FilterDataStatus::Continue from decodeData()/encodeData() or calling
// continueDecoding()/continueEncoding() MUST be called if continued filter iteration is desired.

Note that this explicitly mentions the possibility of continuing from decodeData() (which is mapped to OnHttpRequestBody in wasm filters).
Steps to reproduce the bug
Compile the following filter:
filter.go
package main

import (
	"github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm"
	"github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types"
	"strings"
)

func main() {
	proxywasm.SetNewHttpContext(newHeaderChangingContext)
}

type headerChangingContext struct {
	proxywasm.DefaultHttpContext
}

func newHeaderChangingContext(rootContextID, contextID uint32) proxywasm.HttpContext {
	return &headerChangingContext{}
}

func (ctx *headerChangingContext) OnHttpRequestBody(bodySize int, endOfStream bool) types.Action {
	proxywasm.LogDebug("OnHttpRequestBody")

	if endOfStream {
		// After processing the body, we want to set a header (usually content-length)
		err := proxywasm.SetHttpRequestHeader("some-header", "some-value")
		if err != nil {
			proxywasm.LogError("failed to set some-header")
			proxywasm.SendHttpResponse(500, [][2]string{}, "internal server error")
		}
		return types.ActionContinue // = 0
	}

	return types.ActionPause // = 1, we need to buffer the body first
}

func (ctx *headerChangingContext) OnHttpRequestHeaders(headers int, completed bool) types.Action {
	proxywasm.LogDebug("OnHttpRequestHeaders")

	method, _ := proxywasm.GetHttpRequestHeader(":method")
	if strings.ToUpper(method) != "POST" {
		return types.ActionContinue // = 0
	}

	return types.ActionPause // = 1, equiv. to StopIteration, we need to receive the body first to change a header based on it
}

with go.mod
module filterbugreproduction.com/filter

go 1.15

require github.com/tetratelabs/proxy-wasm-go-sdk v0.0.14

using e.g.:
docker run --rm -it -w /build \
-v ${PWD}:/build  \
tinygo/tinygo:0.16.0 \
tinygo build -o /build/bin/filter.wasm -target=wasi \
-wasm-abi=generic ./...

Create a configmap from said filter:
kubectl create cm wasm-filter --from-file=bin/filter.wasm

apply the following to create a service httpbin that uses the filter:
apiVersion: v1
kind: ServiceAccount
metadata:
  name: httpbin
---
apiVersion: v1
kind: Service
metadata:
  name: httpbin
  labels:
    app: httpbin
    service: httpbin
spec:
  ports:
    - name: http
      port: 80
      targetPort: 80
  selector:
    app: httpbin
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: httpbin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: httpbin
      version: v1
  template:
    metadata:
      labels:
        app: httpbin
        wasm_filter: enabled
        version: v1
      annotations:
        sidecar.istio.io/userVolume: '[{"name":"wasmfilter-dir","configMap": {"name": "wasm-filter"}}]'
        sidecar.istio.io/userVolumeMount: '[{"mountPath":"/var/local/lib/wasm-filter","name":"wasmfilter-dir"}]'
    spec:
      serviceAccountName: httpbin
      containers:
        - image: docker.io/kennethreitz/httpbin
          imagePullPolicy: IfNotPresent
          name: httpbin
          ports:
            - containerPort: 80
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: wasm-headerreplacer
spec:
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          portNumber: 80
          filterChain:
            filter:
              name: envoy.http_connection_manager
              subFilter:
                name: "envoy.router"
        proxy:
          proxyVersion: ^1\.*.*
      patch:
        operation: INSERT_BEFORE
        value:
          name: headerreplacer_filter
          typed_config:
            '@type': type.googleapis.com/udpa.type.v1.TypedStruct
            type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
            value:
              config:
                configuration:
                  '@type': type.googleapis.com/google.protobuf.StringValue
                  value: ""
                root_id: headerreplacer_root_id
                vm_config:
                  code:
                    local:
                      filename: /var/local/lib/wasm-filter/filter.wasm
                  runtime: envoy.wasm.runtime.v8
                  vm_id: headerreplacer_filter
  workloadSelector:
    labels:
      wasm_filter: enabled

To reproduce the bug, call:
curl -X POST [SERVICE_DNS_OR_IP] -H 'Content-Type: text/plain' -d 'something'
This will hang indefinitely. Upon inspecting the wasm debug logs of the proxy you should see that OnHttpRequestBody is never logged.
This bug occurs when using istio 1.8.2, but not when using istio 1.7.6.
Please let me know if you need any additional information, I'll be happy to supply it.
Version (include the output of istioctl version --remote and kubectl version --short and helm version --short if you used Helm)
istio:
client version: 1.8.2
control plane version: 1.8.2
data plane version: 1.8.2 (2 proxies)

kubernetes:
Client Version: v1.20.2
Server Version: v1.18.15

How was Istio installed?
istioctl install, with a tiny bit of company-specific configuration regarding ingress.
Environment where the bug was observed (cloud vendor, OS, etc)
microk8s cluster
Additionally, please consider running istioctl bug-report and attach the generated cluster-state tarball to this issue.
Refer cluster state archive for more details.

OnRequestHeader and onRequestBody will be called sequentially. Returns StopIteration at header event will stop filter to decoding, so what you observed is as expected.
Could you just update header when body is fully decoded? Also you should not stop iteration in body method as well, it will block the decoding.

Expected behavior
When stopping header iteration in a WASM filter in OnHttpRequestHeaders, OnHttpRequestBody should be triggered if there is a body.
As per https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/source/extensions/common/wasm/context.cc line 1339, and https://github.com/istio/envoy/blob/81b7bb3eb044842e6caaf02a46d01a50a83743f4/include/envoy/http/filter.h, line 28, StopIteration means the following;
// Do not iterate to any of the remaining filters in the chain. Returning
// FilterDataStatus::Continue from decodeData()/encodeData() or calling
// continueDecoding()/continueEncoding() MUST be called if continued filter iteration is desired.

Note that this explicitly mentions the possibility of continuing from decodeData() (which is mapped to OnHttpRequestBody in wasm filters).

Proxy-Wasm != Envoy, so the linked documentation is irrelevant.
As @bianpengyuan mentioned, the behavior you observed is the expected one, and we're unlikely to revert to the previous behavior, since generally speaking, you cannot reliably buffer complete request/response body (you're going to hit various memory limits pretty fast).
I'm not sure how representative is your example, but you don't need to provide updated body size in the Content-Length header, you only need to remove it if you know that you're going to be modifying body.

Thank you both for your replies. Apologies for the delay in my reply.
I believe the solution for Content-Length may work. However, we also have other scenarios where we would like to change headers based on the body. Am I right to understand that this scenario will not be supported? Are headers generally so large that they cannot be kept on hold while the body is processed? (per chunk if needed for memory puposes)
Regarding the supplied documentation; I think there may be a misunderstanding. I linked to the conversion from proxy-wasm return values to envoy values, and then to the envoy documentation of those values; that is the closest I could come to a description of the proxy-wasm return values.
If this is incorrect, would you mind pointing me to a place where I can see what each value returned from a filter function would do to the encoding/decoding process?
Thanks in advance.

I believe the solution for Content-Length may work. However, we also have other scenarios where we would like to change headers based on the body. Am I right to understand that this scenario will not be supported? Are headers generally so large that they cannot be kept on hold while the body is processed? (per chunk if needed for memory puposes)

The issue is not with headers, but with a body that needs to be buffered until you start forwarding request (at which point you can no longer modify headers, since they are the first thing that's forwarded). Proxies generally don't support going back and modifying headers, so I'd be interested to learn what's your exact use case.
Unless there is some obvious case that was missed, such scenario won't be supported.

Regarding the supplied documentation; I think there may be a misunderstanding. I linked to the conversion from proxy-wasm return values to envoy values, and then to the envoy documentation of those values; that is the closest I could come to a description of the proxy-wasm return values.

We always translate StopIteration to StopAllIterationAndWatermark (see: https://github.com/proxy-wasm/proxy-wasm-cpp-host/pull/95).

If this is incorrect, would you mind pointing me to a place where I can see what each value returned from a filter function would do to the encoding/decoding process?

We're still a bit behind with the documentation. Sorry!

Hi Piotr, thank you for your quick reply.
Regarding our use case: I am not sure about the level of detail I can go into, but in short we are trying to grant access based on a request body which specifies what the client would like to access (e.g. graphQL POST). We would like to do this in an outbound filter, so that some services can be written as though they have full access.
For traceability we want to use JWT tokens instead of simply granting access on the server-side. Also, this way the data source does not need to make any exceptions; everyone needs a JWT to get data.
The linked thread was very informative, thank you!

@PiotrSikora I'm reopening this issue to provide another use case that is blocking us at the moment.
We're trying to sign requests that cross through our envoy proxies, including body. In order to do that we need to buffer the whole body, calculate a hash for both the body and certain headers, sign that and add the signature as a new header, before sending it on its way to the upstream.
This is currently possible using lua scripts in envoy:
-- Called on the request path.
function envoy_on_request(request_handle)
  -- Wait for the entire request body and add a request header with the body size.
  request_handle:headers():add("request_body_size", request_handle:body():length())
end

It's also a pattern used in the AWS extension in envoy to interact with AWS services, but this is built into envoy so not limited to the WASM SDK options.
We'd like to build this in WASM as this is the recommended approach by envoy for higher performance but for that we need to be able to pause any header forwarding whilst we buffer the body, basically reverting this change from my understanding, as well as supporting the AddHttpRequestHeader/ReplaceHttpRequestHeader/RemoveHttpRequestHeader to be called from the OnHttpRequestBody context.
What are your views on this, do you have another approach to achieve the same result?
Thanks.

Here I have another use case.
At work I have a server that receives request on two endpoints, the new one and the legacy one.
The new one has this path /topics/:topic_id/messages but the legacy one the path is '/messages' and the legacy body {"topic":":topic_id"}.
I want to add a new layer front that server using envoy with a wasm filter that parse the body, extract the topic, and rewrite the path to '/topics/:topic_id/messages' and then forward the request to the upstream server using the new path.


Implement more Async Admin methods - Part 2

Dividing #1752 as there are many methods which still needs to be implemented.
PR #1751 centralizes all Admin methods that can be implemented. Those methods still need to be implemented.
BigtableAsyncAdmin methods:

truncateTable(TableName arg0, boolean arg1)
deleteSnapshots()
deleteSnapshots(Pattern arg0)
deleteTableSnapshots(Pattern arg0)
restoreSnapshot(String arg0)
restoreSnapshot(String arg0, boolean arg1)
cloneSnapshot(String arg0, TableName arg1)
getRegions(TableName arg0)

BigtableAdmin:

truncateTableAsync
getRegions

PR #1778 , #1779  & #1796 handled all these methods hence closing this issue.


UPDATE README.md

What would you like to share?
hey, Eddie, I want to contribute  by adding some documentation in README.md please give me a chance to make it more interesting and I can show my technical writing skills as well.
Additional information
No response

Please be specific about what you would like to add and where. Currently there is too much information in the readme and we are trying to slim it down and provide links to more specific documentation elsewhere

hello @EmmaDawsonDev, the README.md contains so much information I want to make it more specific about the project and I also want to add some resources which are new for the folks or they don't know much about it like Kubernetes, and docker so they can get some idea about and also they will be aware of the main purpose of the project and get to know how things actually work, I will work on it if you like it then please merge it.

The new version of LinkFree is out, I will close this issue, feel free to create a new issue for the new version if still relevant
Please make new issues that are specific to each change - small and often is better


Scatter plot colors: not updating after turning off colorCoding on column

open dataset
add scatterplot
choose numeric color column
add color column for this col in grid
adjust max min values
turn off color coding in grid

expected result: max mix values are not used anymore on scatterplot
actual result:  they are used

This issue has been mirrored in Jira: https://reddata.atlassian.net/browse/GROK-14855

This issue has been mirrored in Jira: https://reddata.atlassian.net/browse/GROK-16107


RF sniffing and accessory state

Sorry for a newbie question - just considering to purchase BroadLink and use this HB-plugin.
Looks like when you manually control accessory from a generic remote, HB doesn’t reflect its current state anymore. Some workarounds like contact sensor might be required here.
Got a feature request. Please comment, if will be ever possible and/or useful:
Constant RF learning mode and matching incoming remote signals to existing learned HEX commands in JSON. Change HB state according to command received. Temporary pause learning mode in need of sending some own commands.
Example: Handheld remote sends a command to close window cover. BroadLink (located nearby) constantly listens RF and hears this signal, matches it with existing close command in plugin config and change cover accessory logical state accordingly.

I don't think the hardware is built for this purpose. The point is to get rid of remotes and build automation. I suppose the plugin could somehow set the hardware to a permanent learning mode except when sending out commands, but I don't really see the use case.

This would be great. I also was wondering about same feature..


Add searchable field to transaction. Add search by graphql payment ID

Add possibility to search by graphql PaymentID
Add possibility to search by a custom key provided by PaymentGateway.

Task linked: SALEOR-1067 Possibility to search order by PSP reference and PaymentID


Support Amazon product Link and Minor problem fix

And shows error message with invalid input

thanks @chyangzhang !


Frequency map and energy efficient agent may choose wrong frequency based on hint

The algorithm for the frequency map agent and the energy efficient agent sample the region hint value the first time a region is encountered.  The hint may change throughout the region exection, but these changes would not effect the frequency selected by these agents which is fixed based on the first time sample.  If a compute bound region were to begin with a brief call to MPI, the frequency would be set to the minimum for the entire execution of the region.

If a compute bound region were to begin with a brief call to MPI, the frequency would be set to the minimum for the entire execution of the region.

I'm not sure how to resolve this bit here about the minimum being used for the whole region with this other blurb in #1051 about the maximum:

Write an integration test that calls MPI within a user defined region that has a compute hint directly after region entry.
Inspect the report and show that the region is assigned the maximum frequency when running the frequency map agent

The FrequencyMapAgent sets compute regions to max frequency.  Is that what you meant @cmcantalupo ?


Update signatory to v0.20

Codecov Report

Merging #56 into develop will not change coverage.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##           develop      #56   +/-   ##
========================================
  Coverage    52.00%   52.00%
========================================
  Files          140      140
  Lines         3944     3944
========================================
  Hits          2051     2051
  Misses        1893     1893

Impacted Files
Coverage Δ

src/ecdsa/signer.rs
0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 23573a1...e0eff1b. Read the comment docs.


Python/fix pylint

No changes needing a change description found.

You can try these changes here

🛝 Playground
🌐 Website
📚 Next docs


Drop support for TypeScript 4.x

Perhaps it is worth to drop support for TypeScript 4.x in the next major release?
TypeScript 4.9 was released November 15th, 2022. That is more than two years ago! Hence DefinitelyTyped recently dropped support for it, https://github.com/microsoft/DefinitelyTyped-tools/pull/1110.

To be sync with DefinityTyped sounds predictable!


Restore Previous Behavior for StyleSheet Validation of Null/Undefined Styles

Summary
#27264 changed stylesheet validation to avoid enumerating properties on the prototype of a style. It introduces a secondary behavior change, where null/undefined styles used to be tolerated but now lead to an exception. This is because for in undefined will noop where for of Object.keys(undefined) will throw.
This scenario of undefined/null styles seems to actually show up in practice and was previously well tolerated. E.g. Button.js has code that looks like this:
const styles = StyleSheet.create({
  button: Platform.select({
    ios: {},
    android: {
      elevation: 4,
      // Material design blue from https://material.google.com/style/color.html#color-color-palette
      backgroundColor: '#2196F3',
      borderRadius: 2,
    },
  }),

For non ios/Android platforms, that creates a style object which looks like:
{
  button: undefined,
  ...
}

This previously meant that the component would be unstyled if created, but now means out-of-tree platforms throw if the builtin Button component is required.
This change restores the previous for in loop but adds a hasOwnProperty check to avoid properties on prototypes.
Changelog
[General] [Fixed] - Restore Previous Behavior for StyleSheet Validation of Null/Undefined Styles
Test Plan
Validated that importing Buttons will no longer cause an exception, and that invalid properties are still caught.

Surely a null check is a better solution?
Something like
const styleProps = Object.keys(styles[name] || {});

or
if (!styles[name]) {
  return
}

Surely a null check is a better solution?
Something like
const styleProps = Object.keys(styles[name] || {});

or
if (!styles[name]) {
  return
}

Yeah, I was thinking about that. It's certainly more explicit, which I like. The only concern I had was that there may be other subtle behavior changes from the previous implementation, but that might just be a bit to risk averse. I'd have no issue changing it though.

@NickGerleman I have this issue inside RN 0.63v & can't run the app, do you know when that fix may be in the RN ?


specifying the compiler

I get:
CMake Error at CMakeLists.txt:38 (message):
  Your C++ compiler does not support C++11.  Please install g++ 4.7 (or
  greater) or clang 3.2 (or greater)

My g++ is plenty new:
% g++ --version
g++ (GCC) 4.9.2

Is there a way to force CMake to use the compiler in the path, rather than one that's at the "correct" place?

I can fix this via:
cmake -D CMAKE_C_COMPILER=/nfs/users/nfs_e/eg10/bin/gcc -D CMAKE_CXX_COMPILER=/nfs/users/nfs_e/eg10/bin/g++

But why won't it respect my path?

Looks like I need to set c++ and cc or environmental variables.
12:46 -!- Irssi: Join to #cmake was synced in 1 secs
12:46 < erikg> how do i convince cmake to use the first compiler in my path?
12:47 < erikg> https://github.com/ekg/vg/issues/157
12:47 <+ngladitz> cmake does look for compilers in PATH but g++ might not be
                  the first name it tries
12:47 < erikg> i would like to do this generally, rather than forcing users to
               hack cmake -D ... to match their system every time
12:48 < erikg> also gcc
12:48 < erikg> ngladitz: ok, how do i convince it to look for the first gcc and
               g++ in my path?
12:48 <+ngladitz> it probably looks for c++, cc first
12:48 <+ngladitz> which are usually linked to g++, gcc on systems where those
                  are the default compilers
12:49 < erikg> ngladitz: thanks, that explains the behavior
12:49 < erikg> cheers :)
12:49 <+ngladitz> afair you can use the CXX/CC environment variables to specify
                  compiler names rather than paths
12:49 <+ngladitz> np
12:50 < erikg> i'll try that!


Error while compiling Gutenberg

Please see issue : https://github.com/crossbeam-rs/crossbeam-utils/issues/54
A dependency cannot compile, thus making Gutenberg unusable on a Raspberry Pi.

Gutenberg master requires Rust 1.27 and next 1.28


Error no save user conf

I'm using 3.11 Trace and when I enter to edit a user and select a user to have read only and read only devices saves it, but when I restart the service tracar this information has been lost.

It can be happening if you are using outdated configuration file. Make sure you are using corresponding to 3.11 config file (default.xml).

I have the default.xml of 3.9, how do I do it?

You should install version 3.11.


Add API Keys

Provide each user with an API key (potentially a password hash) that can be verified before a database operation.

Show a user’s own information (ratings, e.g.) if they’re logged in. (Detect with API key.)

Compute JSON diff and store with user metadata when a database operation is done.

Added API keys with latest commit


How can we float the price of the Y axis without occupying the space of the chart?

How can we float the price of the Y axis without occupying the space of the chart?


Minor tweaks and corrections for cloud runner pipeline and branch parameter

Minor cleanup and simplification of Cloud Runner pipelines.
Includes simple fix to target correct cloud runner branch and target repo branch.

Codecov Report

Merging #351 (e132455) into main (693ff82) will decrease coverage by 0.12%.
The diff coverage is 0.00%.

:exclamation: Current head e132455 differs from pull request most recent head 3d538c6. Consider uploading reports for the commit 3d538c6 to get more accurate results

@@            Coverage Diff             @@
##             main     #351      +/-   ##
==========================================
- Coverage   44.81%   44.69%   -0.13%
==========================================
  Files          51       51
  Lines        1486     1490       +4
  Branches      228      231       +3
==========================================
  Hits          666      666
- Misses        816      820       +4
  Partials        4        4

Impacted Files
Coverage Δ

src/model/cloud-runner/steps/setup-step.ts
24.00% <0.00%> (-4.58%)
:arrow_down:


Distributable Packages

Issue#1644
-Fixed compilation error for Python3 in Windows.
-Compiled .whl file for easier distribution of the package
Start with a description of this PR. Then edit the list below to the items that make sense for your PR scope, and check off the boxes as you go!
Contributor Checklist

[ ] I have broken down my PR scope into the following TODO tasks

[ 🗸] Fixed pip installation error for windows.
[ ] Compiled distributable packages for easy installation.

[ 🗸] I have run the tests locally and they passed. (refer to testing section in contributing)
[ 🗸] I have added tests, or extended existing tests, to cover any new features or bugs fixed in this PR

optionals

[🗸 ] I have added entry in the CHANGELOG.md
[🗸 ] If this PR needs a follow-up in dash docs, community thread, I have mentioned the relevant URLS as follows

[🗸 ] this GitHub #PR number updates the dash docs
[ ] here is the show and tell thread in Plotly Dash community

#1644 Fixed Pip installation error for windows, Compiled distributable packages.


SPM Support

Wondering you have plans to make this available for Swift Package Manager.

I'll let @kwylez comment beyond this, but Swift 3 work is in https://github.com/GraphStory/neo4j-ios/tree/develop/swift-3

@MasterSwift I do have plans to make this available through SPM. I don't have a time table set, but I'm hopeful to have it by first of February of 2017

@kwylez If you haven't started yet, I'll volunteer. I need it together with Vapor so am planning to do the work this week

@kwylez If you haven't started yet, I'll volunteer. I need it together with Vapor so am planning to do the work this week

Hehe, this week became right now. ;-) Thanks for having no dependencies! :-) That made it super-easy to get the Swift Package Manager integrated. Sent pull request #22

Hehe, this week became right now. ;-) Thanks for having no dependencies! :-) That made it super-easy to get the Swift Package Manager integrated. Sent pull request #22

@niklassaers this work looks awesome....in addition to your additional comments and code. I'm out of town right now but I'll be in front of my machine this afternoon and merge all of this in

Awesome, thanks. :-)


Support Ethers v6 for EthersApadter

Currently only Ethers v5 is supported. Ethers v6 is already very stable (it is at version 6.6.x) and would be very nice to be supported.

Duplicate of #401


Safari (Mac Only) crashes when using websocket

I am using the very basic example listed on the website, not sending or receiving any messages, just connecting.
Connection is on <IP_ADDRESS>:80
On connect Safari crashes with following:
Process:         Safari [11081]
Path:            /Applications/Safari.app/Contents/MacOS/Safari
Identifier:      com.apple.Safari
Version:         5.0.5 (6533.21.1)
Build Info:      WebBrowser-75332101~1
Code Type:       X86-64 (Native)
Parent Process:  launchd [238]
Date/Time:       2011-04-23 02:40:30.463 -0400
OS Version:      Mac OS X 10.6.7 (10J869)
Report Version:  6
Interval Since Last Report:          140807 sec
Crashes Since Last Report:           20
Per-App Interval Since Last Report:  36857 sec
Per-App Crashes Since Last Report:   16
Anonymous UUID:                      545FB01F-FF2E-4A16-9EFC-A8A538906A53
Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Crashed Thread:  0  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:  Dispatch queue: com.apple.main-thread
0   com.apple.CoreFoundation      	0x00007fff87e11c00 CFArrayGetCount + 80
1   com.apple.WebCore             	0x00007fff82a3150b WebCore::SocketStreamHandle::chooseProxyFromArray(__CFArray const*) + 43
2   com.apple.WebCore             	0x00007fff82cc6088 WebCore::SocketStreamHandle::pacExecutionCallbackMainThread(void*) + 24
3   com.apple.JavaScriptCore      	0x00007fff87bf6848 WTF::callOnMainThreadAndWait(void ()(void), void*) + 72
4   com.apple.WebCore             	0x00007fff82cc5ec0 WebCore::SocketStreamHandle::pacExecutionCallback(void*, __CFArray const*, __CFError*) + 32
5   com.apple.CFNetwork           	0x00007fff86cd167c executionContextPerform(void*) + 1079
6   com.apple.CoreFoundation      	0x00007fff87e4f401 __CFRunLoopDoSources0 + 1361
7   com.apple.CoreFoundation      	0x00007fff87e4d5f9 __CFRunLoopRun + 873
8   com.apple.CoreFoundation      	0x00007fff87e4cdbf CFRunLoopRunSpecific + 575
9   com.apple.HIToolbox           	0x00007fff830237ee RunCurrentEventLoopInMode + 333
10  com.apple.HIToolbox           	0x00007fff83023551 ReceiveNextEventCommon + 148
11  com.apple.HIToolbox           	0x00007fff830234ac BlockUntilNextEventMatchingListInMode + 59
12  com.apple.AppKit              	0x00007fff80441e64 _DPSNextEvent + 718
13  com.apple.AppKit              	0x00007fff804417a9 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 155
14  com.apple.Safari              	0x0000000100015ff6 0x100000000 + 90102
15  com.apple.AppKit              	0x00007fff8040748b -[NSApplication run] + 395
16  com.apple.AppKit              	0x00007fff804001a8 NSApplicationMain + 364
17  com.apple.Safari              	0x0000000100009f18 0x100000000 + 40728

I just noticed the same problem on iOS 5.1 (iPhone 4S).  So I assume that Apple still has not fixed this one.

It's also the case on iOS 5.0 (iPad 2) using a Manual Proxy. As soon as the websocket is created Safari just crash.

Perhaps it'd be smart to add a workaround in the meantime, by detecting iOS Safari and preventing WebSockets on there, just falling back to the other transports?
On Dec 6, 2011, at 11:35 PM, Christophe<EMAIL_ADDRESS>wrote:

It's also the case on iOS 5.0 (iPad 2) using a Manual Proxy. As soon as the websocket is created Safari just crash.

Reply to this email directly or view it on GitHub:
https://github.com/LearnBoost/socket.io/issues/193#issuecomment-3044208

I think this issue needs to be reopened, since it's quite clearly a major issue that isn't getting solved any time soon, it needs a workaround patch.

@NuckChorris The only possible work around is to disable WebSockets for every safari, ever. And that is not viable. There are no workarounds for this issue as it's not detectable.
@guille opinions?

I was pulling my hair out trying to work out why my game was crashing on iOS. I'm using Facebook connect which effectively opens a new window (puts the game window in the background) and whilst typing my FB details I can see the server logs that my client (the game) disconnected. After doing the FB login it brings the game window back into focus and boom, Safari crashes. After I did a load of tests I managed to type my U&P into FB connect fast enough and sure enough if you come back to the window in time it won't crash Safari. This was all on both an iPhone 4S with iOS 5.0.1 and same for iPad2.
I'm currently working on a fix and will post here if I can get it to work... have several hacks in mind.

I've been trying to reproduce this today. Hopefully the fix is not to "disable websockets for safari" :)

:) the easiest test is to get a socket.io connection to a simple node.js process and then open a new window on your iPhone... watch on the node.js process for the client to disconnect, then switch back to the original client window. That should produce the crash.
As far as I'm concerned, disabling websockets for Safari is a total no-go... websockets are point-blank the most important thing since sliced bread!

Actually you don't even need to switch windows, it'll happen either way, in my experience.

@guille Is there a way to set the heartbeat interval & timeout for a specific socket at runtime?
Just a guess at this point - gonna confirm in about 2 minutes but if we set the socket so it doesn't timeout and disconnect then the crash wont occur.
My proposed hack at the moment would be to set the heartbeat to off, then keep track of heartbeats client-side. If we are in the background then the heartbeat wont be sent for a while and we can then disconnect the client socket and reconnect it... I think the crash is occurring because an invalid socket (closed socket) is attempting to be written to. I've got some iPhone crash logs that point in that direction.

I can confirm that if you disable heartbeats in socket.io that the crash will no longer occur. I am thinking that a good fix will be in the socket.io heartbeat send on the client - detect the last time the send was run. Since it's on a timer such as every 20 seconds, if the method runs and detects that the last run time was higher than say... 22 seconds, then it knows that the page was in a background process and no JS was running and that it should drop the connection on the client and reconnect.
This is the only way I can think of to solve this for the time being.

By the way, further to my last message, the reason the crash occurs is because the heartbeat signal (or in fact any socket.io message) being sent from the client to the server is being sent when the actual connection has been closed by the server.
The client is unaware of the closed connection and attempts to send a message as soon as the page comes back into focus on the device. At this point, since the socket doesn't exist the browser crashes.

This doesn't explain why socket.io seems only to crash when there's a proxy or 3G network behind it. Could that be another, unrelated issue caused by servers en route which can't handle WebSockets?

@NuckChorris I think you're right, actually although the issues are similar I think mine is different... I should probably open a new bug. I'm not using a proxy. Sorry for hijacking this thread!

Still an issue for me. ExpressJS/NodeJS & socket.io

When Streaming audio through websocket it show an error message failed: Failed to send WebSocket frame. in ionic app

Same issue :/


TypeError: Path must be a string. Received undefined

When using Webpack 2.
See the original issue for the explanation and my workaround: https://github.com/jtangelder/sass-loader/issues/298
path.js:7
    throw new TypeError('Path must be a string. Received ' + inspect(path));
    ^

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)

Sorry, there is not enough information to reproduce this. Please provide a minimal test repository that demonstrates the problem so I can check that out. Try to remove as much stuff as possible since it helps tracking down the problem.

Ok, I won't provide a sample repo but other people coming from google can.
This issue is not just mine though, you can see at least 2 other people in the linked issue having the same error.

I have this issue too using this config with webpack 2 :
use: [
  'style-loader',
  {
    loader: 'css-loader',
    options: {
      sourceMap: true
    }
  },
  {
    loader: 'sass-loader',
    options: {
      sourceMap: true
    }
  }
],

But uisng just this one it work :
use: ['style-loader', 'css-loader', 'sass-loader']
Maybe an issue link to sourcemaps.

I get this error too trying to have sourcemap with webpack 2
use: [
  'style-loader',
  {
    loader: 'css-loader',
    options: {
      sourceMap: true
    }
  },
  {
    loader: 'sass-loader',
    options: {
      sourceMap: true
    }
  }
]

but using just use: ['style-loader', 'css-loader', 'sass-loader'] it work
Edit:
error :  69% building modules 881/882 modules 1 active ...rkspace/wingz-xxx/src/app/app.scsspath.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
app.scs line 7 :
@font-face {
  font-family: 'Galano Classic';
  font-style: normal;
  font-weight: 400;
  src: url('../assets/fonts/galano/Galano-Classic-Alt.eot');
  src: url('../assets/fonts/galano/Galano-Classic-Alt.eot?#iefix') format('embedded-opentype'),
       url('../assets/fonts/galano/Galano-Classic-Alt.ttf') format('truetype');
}

I assume you are using the LoaderOptionsPlugin? Could you paste the configuration of that?
This will probably be fixed with the next patch version.

Adding a note here: This problem may be related to empty scss/sass files. I only get the error when the file is empty. Adding body {} fixes the error.

@halt-hammerzeit @matthieuh seems we have old css-loader (with bugs), just update to latest and try again. If problems still exist please report about this here (be good with minimal reproducible test repo). Thanks!

Fell free to reopen issue if your problem not solved.

I have this same issue....


Convert from CJS to ESM

We should move all CommonJS (CJS) usages to ECMAScript Modules (ESM). Should allow us to better take advantage of tree shaking 🌳  given ESM is more statically analyzable compared to CJS. This means potentially smaller bundles. Also, CJS is slowly phasing out in the javascript ecosystem.
Todo:

update the Webpack configuration to output ESM modules
refactor require/module.exports to import/export statements

i think our only cjs modules are actually eslint and tailwind

is this still relevant if we are publishing ts packages

completed by https://github.com/penumbra-zone/web/pull/1460


Vue and options

After finding a post on stackoverflow and looking at the source I was able to have the list show up.
But I seem to have problems with the options:
Setting headingTitle does not show a title.
Setting enableSearch to false does not hide the text field, but setting hintText does change the placeholder.
Setting showCancel to false does not hide the cancel button.
The items in the list also seem to leave space for a description, even though I haven't set one on any item.
What am I doing wrong?
And the cancel button could use a config property for its label (i18n).

Just because it compiled with LV for Ng, I think that is the cause of some function is not working specially with @itemTap no args returned.


Implemented api to set speed on left side and right side independently.

Implemented api to set speed on left side and right side independently.
Valid values are -255 (going backward) to 255 (going forward).
endpoint: POST: /api/speed
To set speed to max,  json= { "left": 255 , "right": 255 }
To stop motors, json = { "left": 0 , "right": 0 }

@zugaldia  not sure why circleci is giving this compiler error:

/home/ubuntu/android-robocar/mobile/app/src/main/java/com/zugaldia/robocar/mobile/MainActivity.java:38: error: MainActivity is not abstract and does not override abstract method onSpeed(RobocarSpeed) in RequestListener

Building 74% > :app:compileDebugJavaWithJavacpublic class MainActivity extends AppCompatActivity

It compiles and works just fine on my side. Any idea?

@hsalameh Love where this PR is going.
I found the issue. It wasn't with the Robocar app, but with the companion mobile app on https://github.com/zugaldia/android-robocar/tree/master/mobile.  It didn't have onSpeed() implemented. I just did on https://github.com/zugaldia/android-robocar/pull/22/commits/05d08f9914352b698ba892548163402f3f14cee9.

@zugaldia  That makes a lot of sense now! :) I did not notice the "mobile" in the path of the error message and thought it was in the IOT app. Thanks for fixing it 👍

@hsalameh Great job, can't wait to play with this this weekend!


Extending ORCA blockplotting (w/ tests)

This adds some changes to the testing of the 2d blockplotting (and updates some things that fell out from testing it.)
I have focused on tests for the changes to iris/coords.py so far but will add tests for the changes to iris/plot.py once I have them (and once we have decided on what to do about discontiguity checking)

@pp-mo @corinnebosley
Could someone look at this?
I have changed:

Docs strings for a couple functions
added support to cubes that may be of shape (2,1) or (1,2) or (1) to the discontiguity check
changes contiguous bounds to check that the bounds are contiguous (before it was assumed)*
Added a check in plot.py that the coordinates have the same number of dimensions (to stop someone doing a 1D coord against a 2D coord
Removed the ability to modify the absolute tolerance when calling pcolormesh (instead use default)
Added unit tests for:

coord methodscontiguous_bounds, is_contiguous and sanity_check_bounds
coords._discontiguity_in_2d_bounds
coords._get_2d_coord_bound_grid
plot.get_plot_defn
plot.get_plot_defn_custom_coords_picked

Added integration test for pcolormesh - will also need to add the expected graphic for this

Note I have not written any tests for _check_contiguity_and_bounds or modified how we call that (other than to remove the abs_tol thing) but it does need fixing as currently it isn't right (we're calling it too many times) but this may be covered by what @corinnebosley is doing so I thought I'd leave it.

Doing this has meant that when checking for discontiguities we are using the default absolute tolerance value which is 1e-8 which may be too small (it is too small for our ORCA2 test data).

it is too small for our ORCA2 test data

I'm worried about the practical usability of this.
If I understand right, between this and the bounds-check-routine that @corinnebosley is working on, this means that :

some ORCA data will generate warnings when plotted, because it has quite large discontiguities at certain points
the new contig-check routine will let you check the bounds with adjustable tolerance
but the only provided way to avoid the plot warning is to mask out the problem points. Which in fact you don't necessarily want to do.

So, I think it is necessary for the plot routine to either have a much more generous default tolerance, or a way to modify it.
IMHO the only point of warnings is to encourage people to take action to avoid them, so there should always be a way to avoid it, and ideally the warning tells you how :  If there isn't a way out, then you are just giving more encouragement to ignore them !

Summary of changes
Discontiguity checking:

Moved _discontiguity_in_2d_bounds function to a method on the coord so it could easily call other coord methods
Rewrote _discontiguity_in_2d_bounds -> _discontiguity_in_bounds so that it supports 1D and 2D coords, and calls np.allclose
coord.is_contiguous now calls coord._discontiguity_in_bounds. 1D coordinates are still handled as before (so this doesn't introduce a breaking change) but the handling has now been moved into  _discontiguity_in_bounds

2d coord plotting:

Introduced contiguity_tolerance kwarg to pcolor and pcolormesh

If it is set, the bounds of both 1D and 2D coords are checked for discontiguities using an absolute toelrance as set
If it isn't set, 1D coords are not checked, but 2D corods are checked with the defaults

If discontiguities are found, an error is raised

Missing from this PR:

An integration test but that will be easier to include in a separate PR

@pp-mo The tests are now passing, do you mind having a look?

@pp-mo  I believe I have addressed all your review comments in the most recent commit.

@lbdreyer pp-mo I believe I have addressed all your review comments in the most recent commit.

Yes, I'm happy that we are all done here now.
Result :+1:
I'll merge, and hopefully all will check out, since #3150 is now also merged.


[Proposal] Explain usage of ReplayingShare by Jake

I've been fighting with this framework for a while to properly set up sharing of the established connection. It seems that the real issue was with me not providing ReplayingShare.instance() inside compose operator on Observable<RxBleConnection>. You might want to add tips on how to properly share connection to avoid future miss understanding.

Thanks for the feedback. A question for my understanding: wasn't the description on RxReplayingShare enough or is it hard to find?

RxReplayingShare isn't mentioned anywhere in the docs. I literally had to go through samples to find out on how to properly set up connection sharing. It was hard to find, but once I found it, I had no idea is it going to let me share the connection. I fixed my issue by trial and error method

For those who may have dealt with this issue in the past and need catching up, Jake has updated RxReplayingShare so that any terminal event from upstream will cause the cached value to be nulled out. So, for example, if the RxBleConnection is lost, future subscribers won't be served a stale, invalid instance.

Hmmm... Indeed. I thought the ConnectionSharingAdapter was put in the helpers but it is in utils package which may make it harder to find.
Personally I am against using any kind of sharing adapters — one should strive for using a single .subscribe() and just model the observable/operator chain correctly. Unfortunately there is no "one size fits all" solution for that.
If you wish — you can prepare points with what you would like to see in the Wiki as a newcomer. If you have already learned all you want you could help us all and write down a tutorial which I could then put on a Wiki page

Wait—ConnectionSharingAdapter is deprecated, right? (for reasons that were never clear to me). I thought you now recommend using RxReplayingShare instead.

That is true — it is deprecated. It has a message that points to RxReplayingShare. Thing is that it still may be hard to discover

As for the wiki, a concrete example of "modeling the observable/operator chain correctly" vs. sharing a connection would help this not-exactly-a-newcomer.

I recommend this talk by Jake Wharton — I tend to post a link to it in many places on the web — it is really great in developing a good mindset for RxJava

Personally, I am against using operator to preserve the connection or even putting the connection stream to Disposable (I had some real unlogic issues while applying this framework to Clean Architecture). The best, user-friendly way would be to have two functions on RxBleClient:

getConnection(): Observable throws RxBleDeviceNotConnected
closeConnection(cleanUpCode: () -> Unit): Unit

There may be some syntax errors, but generally, you get the idea.
Cheers

This approach was evaluated at the very beginning of this library development. It has been deliberately rejected as it introduces state to something that is basically a signal processing communication.
In my experience having more state in the app may seem to be user-friendly at first but it does not model BLE connections well enough and tend to be the cause of many hard-to-debug issues. Additionally the code that has more state is harder to understand.
If you have overcome the obstacle and reintroduced state — you may share your results so others could benefit.
Best Regards

I could possibly make a gist. Is it okay if I post it here?

Of course you can
Even if I may be against some solutions to particular class of problems does not mean that other people could find it helpful. Depending on my time I try to work on Wiki pages and your gist may be at some point referenced there — it would be easier to find by others

Sorry for the delay. Here's an example:
BleSessionManager.kt
/**
 * Manages Bluetooth connection.
 * @property rxBleClient RxBleClient
 * @property mSchedulerProvider SchedulerProvider
 * @property eventStream CompositeDisposable
 * @property macAddress String?
 * @property disconnectTriggerSubject PublishSubject<Boolean>
 * @property _connection Observable<RxBleConnection>?
 * @property connection Observable<RxBleConnection>
 * @constructor
 */
class BleSessionManager(
    val rxBleClient: RxBleClient,
    val mSchedulerProvider: SchedulerProvider
) {

    private val eventStream: CompositeDisposable = CompositeDisposable()
    private var macAddress: String? = null
    private val disconnectTriggerSubject: PublishSubject<Boolean> = PublishSubject.create<Boolean>()
    private var _connection: Observable<RxBleConnection>? = null

    var connection: Observable<RxBleConnection>
        get() {
            return _connection ?: connectionFallback()
        }
        private set(value) {
            this._connection = value
        }

    /**
     * Fallback in case connection isn't valid.
     * @return Observable<RxBleConnection>
     */
    private fun connectionFallback(): Observable<RxBleConnection> {
        return Observable.error(NotConnectedException())
    }

    /**
     * Used to set mac address.
     * @param macAddress String
     */
    fun setMacAddress(macAddress: String) {
        this.macAddress = macAddress
    }

    /**
     * Configures connection. Called after `setMacAddress()`.
     * @throws NotFoundException May throw NotFoundException if mac address is not set.
     */
    fun setupConnection() {
        val address = this.macAddress ?: throw NotFoundException()

        val observable = rxBleClient.getBleDevice(address)
            .establishConnection(true, Timeout(BLE_CONNECT_OPERATION_TIMEOUT, TimeUnit.SECONDS))
            .takeUntil(disconnectTriggerSubject)
            .compose(ReplayingShare.instance())

        // Subscribe actions should be implemented even though they have no implementation.
        val disposable = observable
            .subscribeOn(mSchedulerProvider.io())
            .retry(10)
            .subscribe(
                {},
                {},
                {}
            )
        eventStream.add(disposable)
        connection = observable
    }

    /**
     * Shuts down the connection and clears event stream.
     */
    private fun closeConnection() {
        disconnectTriggerSubject.onNext(true)
        eventStream.clear()
    }

    /**
     * Nullifies connection. Triggered by End User.
     */
    fun disconnect() {
        closeConnection()
        _connection = null
    }

    /**
     * Nullifies connection, but executes the given code before. Triggered by End User.
     */
    fun disconnectButFirst(extensionCode: () -> Unit) {
        extensionCode()
        disconnect()
    }
}

BluetoothService.kt
class BluetoothService(
    val bluetoothClient: RxBleClient,
    val bluetoothScanSettings: ScanSettings,
    val mSchedulerProvider: SchedulerProvider,
    val bleSessionManager: BleSessionManager
) : IBluetoothService {

    private fun observeConnection(device: RxBleDevice): Observable<ConnectionState> {
        return device
            .observeConnectionStateChanges()
            .throttleLatest(500, TimeUnit.MILLISECONDS)
            .subscribeOn(mSchedulerProvider.io())
            .map { it.mapToConnectionState() }
    }

    override fun connectToDevice(macAddress: String): Observable<ConnectionState> {
        val device = bluetoothClient.getBleDevice(macAddress)
        bleSessionManager.setMacAddress(macAddress)
        bleSessionManager.setupConnection()
        return observeConnection(device)
    }

    override fun getDeviceShadow(): Single<HelixDeviceShadow> {

        return bleSessionManager.connection
            .subscribeOn(mSchedulerProvider.io())
            .firstOrError()
            .flatMap { it.readCharacteristic(MY_UUID) }
            .map {
                it.mapToMyResponse()
            }
            .doOnError { it.mapBluetoothGattOperationExceptions() }
    }

    override fun disconnect() {

        var disposable: Disposable? = null

        disposable = bleSessionManager.connection
            .subscribeOn(mSchedulerProvider.io())
            .firstOrError()
            .flatMap {
                it.writeCharacteristic(SLEEP_UUID, putHelixToSleep())
            }
            .ignoreElement()
            .onErrorComplete()
            .doFinally {

                disposable?.dispose()
                otaUpdateDisposables.clear()
                bleSessionManager.disconnect()
            }
            .subscribe()
    }

Thanks for sharing the code. Could you provide some more background on how it should be used? I could then create a Wiki page that could be easy to understand for other developers

The whole idea behind this is to have a single source of truth for active bluetooth connection. So, in order to do anything with the ble device, you should call bleSessionManager.connection which will either return an active connection or throw an exception (preferably set by developer) notifying the user that the connection isn't established. In order to establish an connection, the following code should be called first:
    setMacAddress("MAC_ADDRESS_OF_DEVICE")
    setupConnection()
}```

Preferably, you can call `RxBleDevice.observeConnectionStateChanges()` to track the connection state.

If you want to terminate the connection, you can either:
* call `bleSessionManager.disconnect()` to close down the connection instantly, or
* call `bleSessionManager.disconnectButFirst { [..code to execute..] }` to close down the connection after the code has been executed

Thank you! Added a new wiki page.
If anyone would like to add something, feel free to suggest changes or (better) create ready-to-add parts and post it here or in new issues. Closing now


Document how to create a new provider

We don't currently have docs on how to bring up a new provider. There are two approaches currently

Build it from scratch, like our Kubernetes provider
Use pulumi/terraform to adapt an existing TF provider, like our AWS provider

We have a lot of examples, but no good end-to-end tutorials of how to go about this.
For example, the initial Kubernetes repo commit demonstrates some essential ingredients for implementing our provider gRPC interface, and this README briefly describes how to create a new TF-based provider (and there are simple providers) to base this on.
We do have a brief FAQ entry, but it probably isn't complete enough to figure things out.

FWIW, I'm looking to do this right now in order to sell the use of Pulumi at my current employer. We have a cloud offering and a Terraform provider, open source but not part of the Terraform distribution, and I'd very much like to use Pulumi for it. At the same time, our VMware infrastructure uses not just vsphere but also nsxt, so I need to bolt something together for that, too. ;)
If there's any chance of some help from the Pulumi side of things I am more than happy to pay it forward by documenting it out to close out this ticket.

I thing the first link meant to be github.com/pulumi/pulumi-terraform-bridge

We now have https://www.pulumi.com/docs/guides/pulumi-packages/ which is an initial page covering this topic.  That page and the various boilerplate repos it links to for each of the ways of building a Pulumi Package provide the core information needed to build a Pulumi Package and its associated provider.  There's a lot of "best practices" not yet captured there - so I'll leave https://github.com/pulumi/docs/issues/4825 open to track all the good concrete best practices topics tracked there that should ultimately be added to this guide.  But I think we can close this issue out, and open new issues on more specific additional content we want to include (possibly as part of 4825).


pull request for e2e test at 11/06/2016 09:26:02

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

Details

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fix inconsistents between readme and manifet files in Workloads and Storage

👍

@jeefy can you merge this PR ?


Add Hilt ViewModel factory example

https://medium.com/mobile-app-development-publication/injecting-viewmodel-with-dagger-hilt-54ca2e433865
https://developer.android.com/training/dependency-injection/hilt-jetpack

Global factory for View models
Keys by String

I have to manually nuke build directory if I change ViewModelInject constructor. Most likely incremental failure.

Decided to do only live demo, no practical codelab on this topic yet, because it is a pain to work with th viewmodel extension as compilation gets broken all the time

Zipped patch :D GitHub doesn't allow me to upload patch directly.
Trial_with_ViewModelInject.patch.zip


Update page to reflect AVS is only available to EA/CSP customers.

[Enter feedback here]
All under the pre-reqs section it states ....
An Azure account with an active subscription. Create an account for free.
However my understanding is that AVS is only available for EA/CSP customers as per https://docs.microsoft.com/en-gb/azure/azure-vmware/request-host-quota-azure-vmware-solution?WT.mc_id=Portal-VMCP so this line might be misleading and perhaps should be updates to reflect EA/CSP pre-reqs.

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

ID: 5d9bb24e-ff10-6530-8f47-a0b53d192d4e
Version Independent ID: 54d484a1-1cac-e765-eaa0-02493efe82cf
Content: Tutorial - Deploy an Azure VMware Solution private cloud - Azure VMware Solution
Content Source: articles/azure-vmware/tutorial-create-private-cloud.md
Service: azure-vmware
GitHub Login: @shortpatti
Microsoft Alias: v-patsho

Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.

#please-close
content updated
Thank you @andyjenkins1  for your feedback :)

Thanks all!.


change navbar : Fruit website #1829

Title and Issue number

Close #1829

Checklist:

[] I have mentioned the issue number in my Pull Request.
[] I have commented my code, particularly in hard-to-understand areas
[] I have created a helpful and easy to understand README.md

@pranjay-poddar please review.

@MohitGupta121
Here is the screen recording of the changes.
https://github.com/pranjay-poddar/Dev-Geeks/assets/104628038/fb493fc2-ce4b-4ee1-ba73-4dced5c0f94d


SSLError Bad handshake

Hi there,
I am running the python script on both a server that I can RDP to the tm1 server and the tm1 server itself. My most recent error is this:
Max retries exceeded with url: /api/v1/Configuration/ProductVersion/$value (Caused by SSLError(SSLError("bad handshake: SysCallError(10054, 'WSAECONNRESET')")))
Any thoughts into why this is happening?
I got the latest Anaconda Distribution, and use Windows server.
Thanks a lot!
Ana

I have the same issue when using anaconda and SSO.

Hi @anamariamocanu ,
Are you sure the TM1 REST API is accessible from where python runs ?
Try to access the TM1 REST API from the python machine with postman or chrome. Try this request:
<<HTTP-OR-HTTPS>>://<<ADDRESS>>/<<HTTPPortNumber>>/api/v1/$metadata
Does it work?

Hi @MariusWirtz
It should be accessible, we changed the http port number accordingly, unless there's something else to look into?
If I try the metadata URL it works, I get the xml structure. But I can't access the cubes nor run TM1Service using TM1py :(
Using ssl= False I am now not getting any error - the script tries running and nothing happens. Also checked firewalls and that's not the issue.
Thanks for your help!
Ana

Hi @anamariamocanu ,
I assume, that after you switched the UseSSL paramter on the TM1 side to false, you also made an adjustment in the python code. Correct ?
Perhaps there is an issue with your python installation as @rclapp suggested. Try to uninstall Anaconda and install plain python 3 + TM1py (with pip if possible).
Cheers,
Marius

Chances are this is an anaconda problem. I eventually got it to work, but my notes are a bit incomplete. Some high level points:

use a virtual conda environment this seemed to help
install what you can from conda forge
remove certfi and re-install it (it seems like its broken in the base conda install)
(annoying part) remove regular python from your PATH variables

Ryan Clapp
AWS Business Systems
Sr. Manager
Sent from my mobile device
On Nov 24, 2019 12:19 PM, Marius Wirtz<EMAIL_ADDRESS>wrote:
Hi @anamariamocanuhttps://github.com/anamariamocanu ,
I assume, that after you switched the UseSSL paramter on the TM1 side to false, you also made an adjustment in the python code. Correct ?
Perhaps there is an issue with your python installation as @rclapphttps://github.com/rclapp suggested. Try to uninstall Anaconda and install plain python 3 + TM1py (with pip if possible).
Cheers,
Marius

You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/cubewise-code/tm1py/issues/187?email_source=notifications&email_token=AEK7GZX2POMGAFGHA2RZ5STQVLOSBA5CNFSM4JINWKK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAT4TA#issuecomment-557923916, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEK7GZUA6RUYLFVDREYCZM3QVLOSBANCNFSM4JINWKKQ.

@MariusWirtz  that is correct, changed SSL=false in the python script
@rclapp  thank you for your notes! I will try to install python and tm1py on top of it. The problem is that conda and pip commands are blocked in our corporate environment. So the only way (that I know) for me to install tm1py is using the whl file.

If you're not using conda for a reason (fbprophet for example) I would avoid it. If you clone tm1py locally you can just run 'python setup.py install'.
I would also double check certifi is installed too. You can test general ssl by using requests to get https://google.com
If your using SSO via cam, be sure requests-negotiate-spin is also installed.
Ryan Clapp
AWS Business Systems
Sr. Manager
Sent from my mobile device
On Nov 24, 2019 4:10 PM, Ana<EMAIL_ADDRESS>wrote:
@MariusWirtzhttps://github.com/MariusWirtz that is correct, changed SSL=false in the python script
@rclapphttps://github.com/rclapp thank you for your notes! I will try to install python and tm1py on top of it. The problem is that conda and pip commands are blocked in our corporate environment. So the only way (that I know) for me to install tm1py is using the whl file.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/cubewise-code/tm1py/issues/187?email_source=notifications&email_token=AEK7GZR3J2HSENLAD3BPHNTQVMJSXA5CNFSM4JINWKK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFAY2FY#issuecomment-557944087, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEK7GZRDGDBSOGWWPMVXATLQVMJSXANCNFSM4JINWKKQ.

Thanks @rclapp  -  I tried your steps and didn't work with the Anaconda install. We use anaconda for the data science capability - the purpose of accessing the data from tm1 is to integrate it with other data sources and do financial modelling, using libraries like pandas and sklearn.
I'll try with basic python - a workaround would be use tm1 APIs on one server and data merging / ML on another, which is not ideal.

Okay, your last message made it seem like conda was blocked. Are you using Cam SSO?
Ryan Clapp
AWS Business Systems
Sr. Manager
Sent from my mobile device
On Nov 24, 2019 5:52 PM, Ana<EMAIL_ADDRESS>wrote:

Thanks @rclapp - I tried your steps and didn't work with the Anaconda install. We use anaconda for the data science capability - the purpose of accessing the data from tm1 is to integrate it with other data sources and do financial modelling, using libraries like pandas and sklearn.
I'll try with basic python - a workaround would be use tm1 APIs on one server and data merging / ML on another, which is not ideal.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

Sorry, I can see how I got you confused - yes we use anaconda but packaged as standard, and we install other packages and their dependencies from wheels. I'll check on the Cam SSO and let you know.

Got it. Are you passing a user name and password?
If your trying to connect via cam gateway (kerberos SSO; no user name and password), SSL can be a little bit of a challenge.
Ryan Clapp
AWS Business Systems
Sr. Manager
Sent from my mobile device
On Nov 25, 2019 12:09 AM, Ana<EMAIL_ADDRESS>wrote:
Sorry, I can see how I got you confused - yes we use anaconda but packaged as standard, and we install other packages and their dependencies from wheels. I'll check on the Cam SSO and let you know.

You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/cubewise-code/tm1py/issues/187?email_source=notifications&email_token=AEK7GZXEQE6E26EI43JHPNTQVOB2XA5CNFSM4JINWKK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFBQENQ#issuecomment-558039606, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEK7GZXMPVFCGOKWS6AWO2LQVOB2XANCNFSM4JINWKKQ.

@rclapp I am logging in with a username and password. IntegratedSecurityMode=2 in the cfg file, does that mean I have so set up CAM authentication?
Latest error is 503 Service unavailable or code freeze.

All sorted now, thanks lots for the help @MariusWirtz  and @rclapp . Turns out I was using wrong the port number. Everything is fine with the anaconda install and the package itself.


Not working with Ruby 3.2.0 and higher

Describe the bug you encountered:
When starting a server on Ruby 3.2, pyroscope writes an error in the logs that the current version of Ruby is not supported: rails thread '<unnamed>' panicked at 'The target process's Ruby version is not supported yet. In the meantime, you can try using --force-version 3.2.0
In this case, the application works as expected, except that nothing is sent to the pyroscope server.
...
What did you expect to happen instead?
Pyroscope works with Ruby version 3.2.
...
How did you install pyroscope-rs?
Using ruby gem from there https://rubygems.org/gems/pyroscope

Pyroscope gem version: 0.5.1
Ruby version: 3.2.0
OS: Debian
Also, Ruby running with enabled JIT.

Yeah, I will update rbspy shortly

or not so shortly.. I will need to figure out how to update our rbspy fork.
I will keep you updated.

Hi
I see that the PR is merged =)
Does it make sense now to build a gem from a master and build binary in our CI?
Or you'll soon push the gem to rubygems.

Oh, I see now
Thank you!

fixed in 0.5.2 gem

Working perfectly
Thank you =)


Why does installing qtbase:x64-linux-dynamic require qtbase:x64-linux to be installed first?

I only need the Qt shared libraries, not the static ones. Why does installing the Qt shared libraries also require the static libraries as a dependency, what Linux feature or consideration is this based on? Because this doesn't happen with x64-windows.
$ vcpkg install qtbase:x64-linux-dynamic
Computing installation plan...
The following packages will be built and installed:
  *
  *
  *<EMAIL_ADDRESS><EMAIL_ADDRESS>  *
  *
Additional packages (*) will be modified to complete this operation.
Detecting compiler hash for triplet x64-linux...

qtbase needs host tools like moc and uic. You only set the target triplet, but the host triplet is still autodetected to x64-linux.
You can add --host-triplet=x64-linux-dynamic to suppress autodetection.

qtbase needs host tools like moc and uic. You only set the target triplet, but the host triplet is still autodetected to x64-linux. You can add --host-triplet=x64-linux-dynamic to suppress autodetection.

You saved my time and disk, thanks.


Vue version mismatch in nuxt

Hi all,
Given that buefy has Vue as one of its dependencies, it installs Vue 2.3.3 but nuxt currently uses Vue 2.2.6. This leads to the following issue
Vue packages version mismatch:

-<EMAIL_ADDRESS>-<EMAIL_ADDRESS>
This continues on for all other vue associated packages. Is there any way to disentangle the vue install with the package and use the one installed with nuxt.js

I think you should update vue-server-renderer it's version always associate with vue itself.

vue-server-renderer version is set by nuxt and the rc11 version (Current) leads to the above error.
IMO this issue should be reopened as the buefy library is unusable with nuxt currently.

vue should ideally be a peerDependency, which will use the vue version in the user's package.json 👍


Validations

Hello,
I have been reviewing your validation changes. There is a couple of things that would need to be implemented for it to be useful. Here is a simple list:

in validators, have access to all data attributes of the object. Sometime the validation is dependent on many fields.
Your provided validators are not complete. For exemple, when you have not set a value, the is not empty validator fails as there are no checks if the value is undefined.
On of the most useful validator is to check if a record is unique (user.email for example)
The validation stops at the first error. To validate a form, it would be nice to validate all fields and either return as a callback or store next to the data (like have a field email_errors containing the error object)

I will look into this and might be providing a pull request if this is something you want to  push forward.
Thanks,
Julien.

Hi,
I'll also look into it. I'm not sure but I think the first item is already fulfilled. I think I did a validator to check a property against another property (password matching), I'm not sure.
Also, I started to use this module to develop something more serious so some improvements will arrive shortly.
Pull requests are always welcome :)

Can you share your code for this validator?
Thanks
Julien.
On 2011-11-16, at 16:43, Diogo Resende
<EMAIL_ADDRESS>wrote:

Hi,
I'll also look into it. I'm not sure but I think the first item is already fulfilled. I think I did a validator to check a property against another property (password matching), I'm not sure.
Also, I started to use this module to develop something more serious so some improvements will arrive shortly.
Pull requests are always welcome :)

Reply to this email directly or view it on GitHub:
https://github.com/dresende/node-orm/issues/12#issuecomment-2768396

Sorry, I might have thought about it but it's not that way :P I'll change it so the validator get an object with all the properties or the instance reference (it could also call custom methods).

I was looking at the code now and there is already a 3rd parameter sent to validators where they can check for the data hash. I'm changing a little bit the code around calling validators, causing the validator function to be called with the model context, so you can do this.property to access other properties also.

Check today's commits. They probably fix some of your points.

I think this is somewhat "fixed". If not please reopen.


try to improve light theme

Looks like the light theme appears a bit weird, so I've made some changes.

Theming changes should only be made in the Theme.dart file. Adding custom styles elsewhere in the code leads to theming issues because it means the style wont change when the theme is switch from dark to light or vice versa. This can lead to a situation where we have white text on a white background etc.

I know, there are situations where it becomes necessary, particularly when encountering theming issues that need addressing.
Flutter, unfortunately, isn't flawless in handling all aspects of custom theming within themedata due to certain style pointers in the same theme configuration.
I'll try to move more changes in the theme.dart btw


Update instructions to be clearer about clean, build, watch tasks

Because we can't build then watch (see #912), we need to make sure it's clear that a build kickoff is required after cloning the repo or running the clean task, prior to watching.

Perhaps just update https://github.com/cfpb/cfgov-refresh/blob/flapjack/README.md#4-launch-the-gulp-watch-task to be:
gulp build
gulp watch

Also, removed the $, as it seems like we removed that from everywhere else.


Silence a fern check warning

I have a type called petId that’s a UUID. I want to show an example where someone provides an incorrect ID. My example is az123456789. I fail fern check because this isn’t a UUID, which is the point of the example. Is there a way around this?

One issue here is that you won't be able to construct a valid example. If you send a non-UUID, then the server will reject the reject because it's malformed. It won't throw any of the errors you've defined in Fern.

Closing this out given that context.


[MRG+1] Better docs for verbose.

Closes https://github.com/mne-tools/mne-python/issues/3680
Instead of changing the docstring for every function, I changed the docs for the decorator they point to. See if this is good enough for you.

Appveyor failure comes from my bad commit.

I would have expected a paragraph in the narrative doc and a link to it
in all docstrings with verbose parameter.

Current coverage is 87.40% (diff: 100%)

Merging #3687 into master will not change coverage

@@             master      #3687   diff @@
==========================================
  Files           343        343
  Lines         60888      60888
  Methods           0          0
  Messages          0          0
  Branches       9307       9307
==========================================
  Hits          53220      53220
  Misses         4912       4912
  Partials       2756       2756

Powered by Codecov. Last update 24ca938...f94c008

Now there is a short tutorial on configurations https://1056-35097627-gh.circle-artifacts.com/0/home/ubuntu/mne-python/doc/_build/html/auto_tutorials/plot_configuration.html.  There is a small overlap with the introductory tutorial, but perhaps we could add something about other confs too.

I would make a section dedicated to verbose
and add links to this section in the verbose docstrings

This is ready for review.

getting to the first parameter in the docstring was easy. I wonder if reliably getting to the last parameter will be just as easy, without relying in a hard dependency on the numpydoc package.

Yeah. Sounds messy. Maybe in another PR.

I wonder if reliably getting to the last parameter will be just as easy

Sounds like an awesome regex challenge. I will try it :)
Docs LGTM now, +1 for merge

@agramfort feel free to merge if you're happy

thanks heaps @jaeilepp !


Introduce the greater number validator

Description
It can compare two integers and report errors. Whether equal values are allowed can be configured by the allow_equal: true parameter.
Translation keys of the error message can be given for specific comparisons:

message_gte: error message when the value is greater than or equal
message_gt: error message when the value is greater than
key: when you want the same message in both of the previous cases

The assertion looks like: given must be greater than (or equal) compared_value
Issue ticket number and link
Required by PR https://github.com/Platform-OS/pcbs/pull/82
Checklist:

[ ] My code follows the style guidelines of this project
[x] I have performed a self-review of my code
[ ] I have made corresponding changes to the documentation
[x] Any dependent changes have been merged and published in downstream modules

@Slashek You are right, this provides the same functionality. (I was surprised that I had found translation for number comparison, but there were no greater.liquid file. Didn't realised that it's in number.liquid)
So I'm going to close this PR as not needed.


Push Python lambda function fails

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
v18.16.0
Amplify CLI Version
12.1.1
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.

Install Python 3.8, 3.9, 3.10, 3.11, pipenv and virtualenv via homebrew
Create function via Amplify CLI
Install required modules to function source directory via Docker container

Describe the bug
When pushing to environment, packaging fails.
An error occurred while installing -e ./src! Will try again.
Installing initially failed dependencies...
Traceback (most recent call last):
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/bin/pipenv", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/cli/options.py", line 58, in main
    return super().main(*args, **kwargs, windows_expand_args=False)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/cli/command.py", line 233, in install
    do_install(
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 170, in do_install
    do_init(
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 777, in do_init
    do_install_dependencies(
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 455, in do_install_dependencies
    batch_install(
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 596, in batch_install
    batch_install_iteration(
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 538, in batch_install_iteration
    _cleanup_procs(project, procs, failed_deps_queue, retry=retry)
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/routines/install.py", line 651, in _cleanup_procs
    dep.use_pep517 = True
    ^^^^^^^^^^^^^^
  File "/usr/local/Cellar/pipenv/2023.7.9/libexec/lib/python3.11/site-packages/pipenv/vendor/requirementslib/models/common.py", line 18, in __setattr__
    raise ValueError(f'"{self.__class__.__name__}" object has no field "{name}"')
ValueError: "Requirement" object has no field "use_pep517"

Expected behavior
Packaging will succeed.
Reproduction steps
amplify push
Project Identifier
25bc49dd8da25f103d04177367c06b9a
Log output

2023-07-10T08:14:08.422Z|info : amplify-provider-awscloudformation.system-config-manager.getProfileConfig(["*********"])
2023-07-10T08:14:08.423Z|info : amplify-provider-awscloudformation.system-config-manager.getProfiledAwsConfig.profileConfig([{"region":"ap-northeast-1","source_profile":"*********","role_arn":"[***]:role/[***]nRole","mfa_serial":"*******"}])
2023-07-10T08:14:08.423Z|info : amplify-provider-awscloudformation.system-config-manager.getCacheFilePath(["/Users/********/.amplify/awscloudformation"])
2023-07-10T08:14:52.741Z|info : amplify-provider-awscloudformation.push-resources.uploadTemplateToS3.s3.uploadFile([{"Key":"[***]ify-[***]fn-[***]ates/[***]th/[***]th-[***]ger-[***]mation-[***]e.json"}])
2023-07-10T08:14:52.745Z|info : amplify-provider-awscloudformation.aws-s3.uploadFile.s3.putObject([{"Body":{"fd":null,"path":"/Users/****/Documents/*****/amplify/backend/auth/********/build/auth-trigger-cloudformation-template.json","flags":"r","mode":438,"end":null,"bytesRead":0,"_readableState":{"objectMode":false,"highWaterMark":65536,"buffer":{"head":null,"tail":null,"length":0},"length":0,"pipes":[],"flowing":null,"ended":false,"endEmitted":false,"reading":false,"constructed":false,"sync":true,"needReadable":false,"emittedReadable":false,"readableListening":false,"resumeScheduled":false,"errorEmitted":false,"emitClose":true,"autoDestroy":true,"destroyed":false,"errored":null,"closed":false,"closeEmitted":false,"defaultEncoding":"utf8","awaitDrainWriters":null,"multiAwaitDrain":false,"readingMore":false,"dataEmitted":false,"decoder":null,"encoding":null},"_events":{},"_eventsCount":1},"Key":"[***]ify-[***]fn-[***]ates/[***]th/[***]th-[***]ger-[***]mation-[***]e.json","Bucket":"[***]ify-[***]bcms-[***]ev-[***]709-[***]ment"}])
2023-07-10T08:16:24.856Z|error : Failed to install dependencies in /Users/*****/Documents/*********/amplify/backend/function/******: Error: Command failed with exit code 1: pipenv install```

</details>

### Additional information

_No response_

### Before submitting, please confirm:

- [X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
- [X] I have removed any sensitive information from my code snippets and submission.

Hey @mh35 :wave: thanks for raising this! How was this Function configured? Is the runtime also manually set to v3.11?

No. The runtime is Python 3.8 (the default setting).

I found the solution.
It can be fixed with creating venv and install pipenv into that venv.
Do not use homebrew pipenv, it requires Python 3.11 and breaks building dependencies.

I found the solution.
It can be fixed with creating venv and install pipenv into that venv. Do not use homebrew pipenv, it requires Python 3.11 and breaks building dependencies.

I am guessing using an Anaconda (base 3.11) with 3.8 env + local venv also would have the same issue?

I can confirm that creating a local env (with pipenv and wheel) using anaconda (3.8 VENV) works (compiles).

Hey @mh35 and @freedomtowin glad to hear y'all have found a suitable solution! I'll make a note of this for future reference, but will close this issue for now.

I found the solution.
It can be fixed with creating venv and install pipenv into that venv. Do not use homebrew pipenv, it requires Python 3.11 and breaks building dependencies.

Do you mind elaborating on this solution?
For example I used peen to install python 3.8 and added its bin to my path to get a python3.8 pipenv going, but now the .venv in my lambs function contains symlinks back to that and then the currentcloudbuild gets corrupted as those symlinks  effectively disappear.  Breaking my whole amplify app...


Separate OpenTurbine tests into unit and regression test folders/executables

Task:  Move regression tests into their own folder and build separate executable(s) for them.
Why:

Historically, we've comingled our regression tests and our unit tests, making it hard to run just one or the other.
Our regression tests often have features for writing to disk, visualization, or loading shared libraries, which make it hard for our testing executable to quickly run anywhere.
Much of our code test coverage is provided only by regression tests.  Separating the tests will allow us to quantify our unit test coverage and expand it intelligently.

Done means:

The tests are properly organized into their own folders and executables.
All tests run when ctest is called.

@ddement Just wondering if this might be a good point to take on this issue. We have amassed quite a few regression tests with rather large number of inputs required for them, separating out the directories and executables might be helpful.

In progress and intersecting other story on unit tests


Create database fails on Azure Postgres Flexi Server

Background
When setting up the script line
ALTER FUNCTION jsonb_path_query(jsonb,jsonpath,jsonb,boolean) ROWS 1
Fails because the function's owner is 'azuresu' as this is a PAAS only Microsoft have access to the 'Super User Account'
Is there any other way around this ?
Enhancement
Is it possible to have a SQL script that does not require these elevated privileges ?
Discussion
No response
Further information
No response

You can remove
ALTER FUNCTION jsonb_path_query(jsonb,jsonpath,jsonb,boolean) ROWS 1
since it is just a minor optimization.

Thank for that @stefanspiska your swift feedback is very much appreciated.

I would close this ticket. Any other issues I can raise separately.
Thanks for all the help.