Feature kandrio path based

What this PR does / why we need it:
This PR introduces path-based serving. It is related to the following issues:

https://github.com/kserve/kserve/issues/824
https://github.com/kserve/kserve/issues/2257

Type of changes
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)
[x] This change requires a documentation update

Feature/Issue validation/testing:
I added tests in the source code for every change I introduced.
Checklist:

[x] Have you added unit/e2e tests that prove your fix is effective or that this feature works?
[x] Has code been commented, particularly in hard-to-understand areas?
[ ] Have you made corresponding changes to the documentation?

Release note:
NONE

@kandrio Can you help rebase the code from master?

@yuzisun I will continue the work that @kandrio started. I will do the rebase ASAP and ping here once done! Thanks!

@yuzisun I rebased of the original PR and resolved the conflicts. Are there any other blockers?

@yuzisun any new on this? cc @adriangonz @Iamlovingit

Hi @dimara, thanks for your follow-up work on this PR. I added my use case under the previous issue. It looks you have a separated UrlTemplate for the path-based url, have you consider reuse the existing DomainTemplate? (by working with pathTemplate to generate the Url).

Hi @lizzzcai! First of all thanks for the feedback.

It looks you have a separated UrlTemplate for the path-based url

Well I rebased the initial PR without making any important changes. I think your comment came after the PR was submitted. My bad I guess for not taking it into account before doing the rebase. Sorry for that.

have you consider reuse the existing DomainTemplate? (by working with pathTemplate to generate the Url).

Isn't the DomainTemplate used only in raw deployment, i.e., without KNative? Note that with the current implementation, the host-based routing that KNative sets up (based on its own config-network and config-domain) still works and as such we can reach the underlying KNative Services directly. With urlTemplate KServe will configure an extra/alternative "route" without messing up the existing configuration.
So based on the above, do we need to change the initial implementation or keep it as is? The alternative would be to make KServe take into account all the domainTemplate, urlScheme, pathTemplate settings regardless the deployment type, right?

@lizzzcai @yuzisun any news on this? How can we move forward?

Hi @dimara , sorry for the late reply. I don't use the raw deployment mode but from what I see the DomainTemplate uses the ingressDomain to define its domain.
In stead of using ingressDomain directly in this PR, maybe the user can define a DomainTemplate: {{ .IngressDomain }}, which same as the domain in knative config-domain, and use it with the pathTemplate to generate the full path based url {{.DomainTemplate}}/{{.pathTemplate}}.
In this case, we are able to generalize the implementation on both raw deployment mode and serverless mode, and support path-based routing in raw deployment mode in the future as well.
However, from what I see the current host is getting from knative directly. So setting value to DomainTemplate can be optional (set to knative servicehost if it is empty), as you only check if UrlTempalte (pathTemplate) exist to enable path-based routing.
what do you think?

Thanks @kandrio for the great work and apologize for the late review.

@kandrio @lizzzcai Great discussions! My two cents is that we probably should not set DomainTemplate and IngressDomain in isvc configuration for serverless mode as they are only supposed to be used with RawDeployment, otherwise we may get into inconsistent state between Knative and KServe. In serverless mode we take the host directly from Knative so for path based routing we only need the PathTemplate part really, we can use this to decide whether to inject path based routing rules or not. On the other hand RawDeployment is implemented with Kubernetes ingress resource which does not support url rewrite, we might need to consider using Gateway API in future to normalize the implementation between Serverless and RawDeployment mode.

However, from what I see the current host is getting from knative directly.

Yes. So domainTemplate etc. are currently ignored in the default deployment type (serverless / with KNative).

So setting value to DomainTemplate can be optional.

We must think of existing deploymens here, since domainTemplate currently has a default value "{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }}". And users may not have set this at all. So it is not clear when to use the KNative domain or use the one generated based on KServe configuration.
What we can do is have pathTemplate optional (empty by default, same as we do in this PR), and if this is set then it will use the domainTemplate, ingressDomain, and urlScheme`. So if a user wants to use path-based serving, which is not the default, they will have to specify something like:
        "ingressDomain"  : "mydomain.com",
        "domainTemplate": "{{ .IngressDomain }}",
        "urlScheme": "https",
        "pathTemplate": "/serving/{{ .Namespace }}/{{ .Name }}"

If pathTemplate is not set, then the serverless deployment type will continue to work as it does now, i.e., obtain the URL from Knative.
Another option would be to have a new separate boolean config, e.g., generateURL or something, that will be false by default. And only if the user sets this then all the above values will be taken into account. This way all existing options can be used for both raw and KNative deployments.
I think both options above are not that intrusive and do not need specific upgrade notes. @lizzzcai what do you think?

Hi @dimara , thanks for your update.

What we can do is have pathTemplate optional (empty by default, same as we do in this PR), and if this is set then it will use the domainTemplate, ingressDomain, and urlScheme`.

from my understanding of the previous discussion,  domainTemplate will not be used in serverless mode even it is set.
I agreed with @yuzisun  idea. Just add PathTemplate should be enough and it will only work in serverless mode (need to document that it will not work for raw deployment mode), and inject it if the value is set. PathTemplate should support value from annotations and labels as well.
I agreed with the Gateway API idea as well, which can be implemented in the Raw deployment first to support path-based routing if there is any requirement.

In serverless mode we take the host directly from Knative so for path based routing we only need the PathTemplate part really, we can use this to decide whether to inject path based routing rules or not.

@yuzisun @lizzzcai I believe we cannot use the host of KNative since this is specific to each isvc (includes both name and namespace). The idea is to keep KNative routing as is and have KServe to add support for path-based routing on top under a single domain. That is, have https://mydomain.com/serving/myns/myisvc point to KNative's internal http://myisvc.myns.svc.cluster.local. I understand configuring KNative's domainTemplate and domain is orthogonal. This will expose the underlying KNative Services.
For example, with current implementation, if we have KServe with:
urlTemplate: https://mydomain.com/serving/{{ .Namespace }}/{{ .Name }}

and KNative with default values for config-domain and domainTemplate, KServe will create a toplevel VirutalService like:
metadata:
  name: sklearn-iris
  namespace: kubeflow-user
spec:
  gateways:
  - knative-serving/knative-serving-cluster-gateway
  - knative-serving/knative-serving-gateway
  hosts:
  - sklearn-iris.kubeflow-user.svc.cluster.local
  - sklearn-iris-kubeflow-user.example.com
  - mydomain.com
  http:
  ...
   - headers:
      request:
        set:
          Host: sklearn-iris-predictor-default.kubeflow-user.svc.cluster.local
    match:
    - authority:
        regex: ^mydomain\.com(?::\d{1,5})?$
      gateways:
      - knative-serving/knative-serving-gateway
      uri:
        prefix: /serving/kubeflow-user/sklearn-iris/
    - authority:
        regex: ^mydomain\.com(?::\d{1,5})?$
      gateways:
      - knative-serving/knative-serving-gateway
      uri:
        exact: /serving/kubeflow-user/sklearn-iris
    rewrite:
      uri: /
    route:
    - destination:
        host: knative-serving-cluster-ingressgateway.knative-serving.svc.cluster.local
        port:
          number: 80
      weight: 100

This means that the user will be able to hit the ISVC with https://mydomain.com/serving/kubeflow-user/sklearn-iris/v1/models/sklearn-iris:predict or by port-forwarding knative-serving-ingressgateway and setting the Host header to sklearn-iris-kubeflow-user.example.com.

My two cents is that we probably should not set DomainTemplate and IngressDomain in isvc configuration for serverless mode as they are only supposed to be used with RawDeployment

This is what argued before as well and that is why we went for a new option.

otherwise we may get into inconsistent state between Knative and KServe.

Well with current implementation KNative routing continues to work as is. All we do is add an extra route on top to support path-based routing. As I said above, my understanding is that we cannot use the host of the underlying KNative service since this includes both name and namespace. @yuzisun @lizzzcai do I miss something here?

@kandrio I think only configuring the domain in kserve and leaving the knative with default domain name will not work as top level of virtual service routes to the vs created by the knative, so the domain needs to be synced between knative and kserve in order for mydomain.com to work which is why we should configure the domain in knative instead of kserve for serverless mode.

I guess what you are saying is that we can route to the knative provisioned virtual service with in cluster domain so we do not actually need to use the external domain configuration in Knative right ?

The problem is that you cannot configure KNative to use a single domain (path-based routing). It uses host-based routing for all the VirutalServices it creates.
Hi @dimara , if knative and kserve vs you created above in this PR using the same domain, for example:

# domain: "{{ .Name }}-{{ .Namespace }}.example.com"
sklearn-iris-default.example.com # knative
sklearn-iris-default.example.com/default/sk-learn-iris # kserve path-based routing, assume that sharing the same domain with knative.

In this case, if user send a request to sklearn-iris-default.example.com/default/sk-learn-iris/v1/model/<name>:predict, the request will be routed to knative endpoint rather than kserve path based endpoint based on the matching logic?
If this is the case, I will still prefer to use pathTemplate with the domainTemplate for path-based routing, future we can support in raw deployment as well. urlTemplate will make domainTemplate a bit redundant.

Let me try explain a bit more. Let's assume we create a sklearn-iris ISVC in the kubeflow-user namespace. KServe will create:

sklearn-iris-predictor-default ksvc (KNative Service)
sklearn-iris Istio VirtualService
sklearn-iris Service

Until now, the KServe VirtualService was rewriting the request to reach the underlying KNative VirtualService. Specifically:

KServe looks at the status of the KNative service that reported a url like http://sklearn-iris-predictor-default-kubeflow-user.example.com
removes the predictor-default (see https://github.com/kserve/kserve/blob/faffcc2f4e026902012fbf00c28a0b16c5a9a29e/pkg/controller/v1beta1/inferenceservice/reconcilers/ingress/ingress_reconciler.go#L87)
uses the result in the hosts of the VirtualService
sets the Host header to the internal host of the KNative Service, that is sklearn-iris-predictor-default.kubeflow-user.svc.cluster.local
re-routes the request to the KNative cluster ingressgateway.

This PR changes the Istio VirtualService to support path-based routing, i.e., use per-isvc separate prefix under a single domain. Using the KNative domain does not help since this is different per isvc. The path-based support comes on-top, that is host-based rules based on KNative Services are also added and host-based routing continues to work.

I will still prefer to use pathTemplate with the domainTemplate for path-based routing,

I am OK with that, but as we mentioned above, currently domainTemplate is not supposed to work with serverless mode (KNative) but only in raw deployments. If we go with your suggestion we have to go with one of the options described in  https://github.com/kserve/kserve/pull/2357#issuecomment-1313279838 and as a result all existing options will be used for both raw and KNative deployments.
@lizzzcai @yuzisun what do you think? How can we move forward?

I am OK with that, but as we mentioned above, currently domainTemplate is not supposed to work with serverless mode (KNative) but only in raw deployments. If we go with your suggestion we have to go with one of the options described in #2357 (comment) and as a result all existing options will be used for both raw and KNative deployments.
@lizzzcai @yuzisun what do you think? How can we move forward?

I think domain and domainTemplate can still be configured in Knative and if pathTemplate exists then we can extract the domain from the predictor host to construct the url. In this way we can keep consistent that in serverless mode domain and domainTemplate is configured with Knative and in raw deployment it is configured with KServe.

I think domain and domainTemplate can still be configured in Knative

@yuzisun KNative uses host-based routing. So the domainTemplate will be in the format of {{ .Name }}-{{ .Namespace }}.example.com which mean a different domain per-isvc. So we cannot have a single domain and use path-based routing as this PR aims for.
If we have a domainTemplate: example.com in KNative nothing will work since KNative will end up creating VirtualServices with conflicting hosts. For example if I create two isvc, sklearn-iris and sklearn-iris-2, I will get two KNative services that will create two VirtualServices:

sklearn-iris-predictor-default-ingress
sklearn-iris-2-predictor-default-ingress

The first will have:
  hosts:
  - example.com
  - sklearn-iris-predictor-default.kubeflow-user
  - sklearn-iris-predictor-default.kubeflow-user.svc.
  - sklearn-iris-predictor-default.kubeflow-user.svc.cluster.local

The second will have:
  - example.com
  - sklearn-iris-2-predictor-default.kubeflow-user
  - sklearn-iris-2-predictor-default.kubeflow-user.svc.
  - sklearn-iris-2-predictor-default.kubeflow-user.svc.cluster.local

And both will have a rule that will match:
  - match:
    - authority:
        prefix: example.com
      gateways:
      - knative-serving/knative-serving-gateway

but with different route:
    - destination:
        host: sklearn-iris-predictor-default-00002.kubeflow-user.svc.cluster.local
        port:
          number: 80

All KNative services will report the same URL and if you hit them you will not know where Istio will route you to. I tried that and actually the KSVC do not get ready:
$ kubectl get ksvc -A
NAMESPACE       NAME                               URL                  LATESTCREATED                            LATESTREADY                              READY     REASON
kubeflow-user   sklearn-iris-2-predictor-default   http://example.com   sklearn-iris-2-predictor-default-00001   sklearn-iris-2-predictor-default-00001   True
kubeflow-user   sklearn-iris-predictor-default     http://example.com   sklearn-iris-predictor-default-00001     sklearn-iris-predictor-default-00001     Unknown   Uninitialized

And the net-istio-controller was complaining:
{"severity":"ERROR","timestamp":"2022-11-25T03:01:19.082636575Z","logger":"net-istio-controller.istio-ingress-controller","caller":"status/status.go:403","message":"Probing of http://example.com:80 failed, IP: <IP_ADDRESS>:8080, ready: false, error: unexpected hash: want \"3008c6929ee505f2969ae52d7dee73e9b87aba272e3f48db84c107f43ec3c868\", got \"2f018fb32ed5c854768fd0c6bc5d00fdbaf75e3d665c030567025ce92de18863\

These hashes are the K-Network-Hash added by Istio VS. For my KSVC I got:

sklearn-iris-predictor-default: 3008c6929ee505f2969ae52d7dee73e9b87aba272e3f48db84c107f43ec3c868
sklearn-iris-2-predictor-default: 2f018fb32ed5c854768fd0c6bc5d00fdbaf75e3d665c030567025ce92de18863

In other words, KNative tries to probe sklearn-iris-predictor-default and got as a response the hash ofr sklearn-iris-2-predictor-default. Once I restored domainTemplate: '{{.Name}}-{{.Namespace}}.{{.Domain}}' both KSVC became ready.
So if we want path-based routing under a single domain, we have to do that in KServe on top of KNative's host-based routing. This is what this PR does. Am I missing something here?

@kandrio I do not think we need to modify the domainTemplate in Knative, we can extract the domain from the predictor host in inference service status right? for example we get the domain example.com from sklearn-iris-user1.default.example.com using the domainTemplate as the parser, all we need to know is the domain correct? In knative the domain is configured here .

@yuzisun first of all sorry for the late reply. Let me go through your comments/suggestions.

For example KServe can get the domain example.com from sklearn-iris-user1.default.example.com using the domainTemplate as the parser, all we need to know is the domain.

Oh. Now I get what you meant. I got confused when you said:

we can extract the domain from the predictor host to construct the url.

I thought with "extract" you meant take the predictor host as we currently do.
So to summarize your suggestion is to:

Introduce a pathTemplate config in inferenceservice-config of KServe.
This will be used in serverless mode for now.
If pathTemplate is set, the controller will obtain/compute the domain from KNative and use it to configure the toplevel VirtualService

My objection regarding (3) is that how Knative Services are exposed is kinda orthogonal to how KServe exposes their Inference service via the top-level VirtualService. KNative may use a completely different domain (or keep the dummy example.com) or choose not to expose its Services at all (if for example having a wildcard certificate and DNS record for the KNative URLs may not be an option). Plus, making KServe depend 100% on KNative would not allow us to have the two modes (raw, serverless) share the same expose logic in the future.
Leaving my objection aside, I believe there are some implementation issues if we try to use the domain from KNative. Specifically, you suggested to have the controller inspect the KNative configuration:

we can get this directly by reading the knative domain configmap.

This is bit problematic since you will have to allow KServe controller to read confimaps in other namespaces. Plus, KNative may decide to change the structure of these configmaps and this will break KServe. Apart from that, this configmap is kinda complicated since it allows for specifying different domains based on selectors so parsing it may not be that trivial.
You also suggested:

get the domain from the host using the domainTemplate as the parser

While reading domainTemplate from config-network is easier (but with the same RBAC and compatibility issues mentioned above), To use the Go Template in a reverse manner (see
https://github.com/golang/go/issues/52473), you have to do some tricks like rendering the template without the domain and compare the result with the status.url of the KNative service.
That said, I think we should decouple from how KNative exposes their Services. This PR supports exposing the InferenceService in a manner that the underlying KNative services don't need to be exposed at all. So I would either go with the initial implementation (with urlTemplate) or with what described in https://github.com/kserve/kserve/pull/2357#issuecomment-1313279838 (with pathTemplate). @yuzisun @lizzzcai What do you think?

My objection regarding (3) is that how Knative Services are exposed is kinda orthogonal to how KServe exposes their Inference service via the top-level VirtualService. KNative may use a completely different domain (or keep the dummy example.com) or choose not to expose its Services at all (if for example having a wildcard certificate and DNS record for the KNative URLs may not be an option). Plus, making KServe depend 100% on KNative would not allow us to have the two modes (raw, serverless) share the same expose logic in the future.

I am ok with configuring ingressDomain in KServe for path based routing, but I think we need to carefully document the configurations as currently in serverless mode the domain has to be configured in Knative when you use host based urls.

@kandrio thanks for the awesome work! to wrap up the PR I think we still need to add an e2e test for the path based routing.

@yuzisun just found time to finally switch to this. I will ping here once I have the PR ready with all the changes we discussed above.

we still need to add an e2e test for the path based routing.
OK. I'll try to add one.

@yuzisun I am done with the refactor. Here is a summary of what I ended up implementing:

introduce pathTemplate in ingressConfig
if pathTemplate is given require ingressDomain
Add path.go (similar to domain.go) that will be responsible for rendering / validating pathTemplate given an isvc. Add unittests for this.
Have getServiceUrl() take into account pathTemplate. If this is set then the isvc.status.url will end up having a path-based URL.
Extend test-fast e2e test, to also test path-based routing.
if pathTemplate is set then the virtualservice will obtain a new rule for the path (as it did in the initial PR) and a host for ingressDomain.
the new version seems to be simpler and more straightforward than then initial implementation since we don't have to cover all corner cases with a user provided urlTemplate, e.g., one that may be host-based.

I noticed that the test-fast and test-helm of the e2e tests failed: https://github.com/kserve/kserve/actions/runs/3947181022/
But what failed seems totally irrelevant. For example, the minikube-setup step failed with:
Error from server (InternalError): Internal error occurred: failed calling webhook "config.webhook.serving.knative.dev": failed to call webhook: Post "https://webhook.knative-serving.svc:443/config-validation?timeout=10s": dial tcp <IP_ADDRESS>:443: connect: connection refused
783

I understand that kubectl patch cm config-deployment -n knative-serving failed because the webhook refused the connection even though we wait for this to become ready.  This seems to be a race. For example the same step succeeded in test-slow job. Maybe related with istio sidecar running in this node. Can we re-run this?
Any idea why the test-helm job failed? It seems port-forward to the predictor pod failed:
E0118 10:02:59.708333   11169 portforward.go:400] an error occurred forwarding 8008 -> 8008: error forwarding port 8008 to pod 3b7d1ad3ce8eccdfc8e66f1db4599ba5a9ded6c9b4527f7393ee8b08013743be, uid : exit status 1: 2023/01/18 10:02:59 socat[13582] E connect(5, AF=2 <IP_ADDRESS>:8008, 16): Connection refused

This seems to be irrelevant with this PR, right? Since it hits the endpoint directly from inside the predictor. Can we ignore this?
@yuzisun Assuming the e2e tests pass, is there any other blocker for merging this PR? cc @lizzzcai

Thanks @kandrio for the update! I will go through the PR again, we are making a few fixes for the flaky tests, meanwhile I have rerun the tests for your PR.

Thanks @kandrio for the update!

Just for the record I am @dimara :) @kandrio was the one that initially submitted the PR but he had to drop so we continued his work.

we are making a few fixes for the flaky tests, meanwhile I have rerun the tests for your PR.

I re-run them in a private fork and all checks passed. So definitely this is a race :)
Let me know if you have any comments about the revised PR.

@yuzisun did you have the time to take a look?  I see that you re-submitted the tests and everything (including the test-fast that this PR extends) worked. Let me know if there are any blockers for merging this. Thanks!

@dimara Thanks for the awesome work to implement this long wanted feature!! Sorry for slow reviews.
I have created doc follow up issues

https://github.com/kserve/kserve/issues/2678
https://github.com/kserve/website/issues/225

/lgtm
/approve

Does this PR cover gRPC inference too?


Getting Rule with Error , trying to filter out some fields

Hello,
I am creating rule for security event while trying to filter out some fields , but i get error , need help to figure out where i did wrong or not
the error is as follow

WARNING:elasticsearch:GET http://localhost:9200/snort-*/_search?_source_includes=*%2C%40timestamp&ignore_unavailable=true&scroll=30s&size=10000 [status:400 request:0.002s]
ERROR:root:Error running query: RequestError(400, 'parsing_exception', 'no [query] registered for [not]')
INFO:elastalert:Ran IDS/IPS Trojan Detected Alert from 2020-02-19 19:20 IST to 2020-02-19 19:35 IST: 0 query hits (0 already seen), 0 matches, 0 alerts sent

thanks
the rule filter as follows:
`filter:

term:
category.keyword: "A Network Trojan was Detected"
not:
term:
signature.keyword: ["ET POLICY Possible External IP Lookup Domain Observed in SNI (ipinfo. io)","ET MALWARE Suspicious User-Agent (Mozilla/4.0 (compatible ICS))",
"ET POLICY SMB2 NT Create AndX Request For an Executable File In a Temp Directory","ET TROJAN Suspicious User-Agent (Mozilla/3.0 (compatible)) "]
`

from

status:400
your query seems to be failed.

Is your Elasticsearch running on same server with ElastAlert?
Is the query path
http://localhost:9200/snort-*/_search?_source_includes=*%2C%40timestamp&ignore_unavailable=true&scroll=30s&size=10000
correct?
If not, please configure config.yaml propery.

Hi ,
Yes my ES run on same server , i have another rule simple than that that run without issues
is it related to config only ?
Thanks

I see.
What is your ES version?
If above 5.x, you should use query string.
https://elastalert.readthedocs.io/en/latest/recipes/writing_filters.html#negation-and-or

Its the latest 7.6
so i should use query_string instead of term? but keep same structure with -not ?
Thanks

It should be combined with NOT.
filter:
 - query:
      query_string:
        query: "somefield: somevalue AND NOT foo: (bar OR baz)"

Don’t you have Kibana? If you have, testing on Kibana is easy to check the result.

Thank you for the example,  I am working with Grafana

Visualize with Grafana is good, but I recommend you to install kibana for log searching. Kibana’s query is almost compatible with ElastAlert.

Hi, @tbaror
I have an update.
What type are you using? Is it new_term?
If yes, it seeds to be occurred  by miss compatible with Elasticsearch's.
In the case of new_type at a moment, query under filter should be like this. (remove parent query)
filter:
  - query_string:
      query: "somefield: somevalue AND NOT foo: (bar OR baz)"

Logs and how does it work that I was tested is written here. Please refer.
https://github.com/Yelp/elastalert/issues/2689#issuecomment-590886923


Prepare for 0.9.1 release

[x] I agree to follow the project's code of conduct.
[x] I added an entry to rstar/CHANGELOG.md if knowledge of this change could be valuable to users.

bors r+


Navbar list items collapsing on hovering

Describe the bug
The navigation bar list items collapse when hovering over them. Instead of remaining visible and clickable, the items shrink or disappear, making it difficult to navigate the menu.
To Reproduce
Steps to reproduce the behavior:

Go to the website/project page.
Hover over the navbar items (e.g., Home, Projects, Skills, Contact).
Notice that the list items collapse or disappear upon hover.

Expected behavior
The navbar list items should remain visible and clickable when hovered over. The hover effect should highlight the item but not cause it to collapse or disappear.
Screenshots

Additional context
This issue might be related to CSS or JavaScript used for the hover effect or the navbar’s responsive design. The bug occurs on desktop

@shivam8112005 try to make some better hover

ohk i am creating one more issue

Can you please close this issue because this issue has been solved and pr was successfully merged


Issue49.awinters.1

all pre-existing unit tests patched up.
developers can run tests with npm run test.
there is a new command script made available called  npm run test:headless (used for CI)
.travis.yaml added to auto test/build when changes are pushed to master.

@docktermj / @jaeadams there is a part duex to this. once this goes to master we can plug it in to https://travis-ci.com/ for automated test coverage / build verification.

Issue number: #49


Add Mercurial Stable Swap Program to Solana Explorer.

This repo is a mirror of https://github.com/solana-labs/solana/tree/master/explorer
Please make changes directly to the main Solana repo: https://github.com/solana-labs/solana

Thanks! Can you please alphabetize and move this PR over to the monorepo?


store functions as components

This fixes #392. When a thunk is created from a plain Function component like
const Component = (model) => {}

it is properly updated on re-renders.

Nice!

:grin:


Fix "enable_object_picking" disables editor tooltips

"enable_object_picking" was linked to Viewport's set_fixed_process() and controlled processing of NOTIFICATION_FIXED_PROCESS which handles physics_object_picking, tooltips and debug drawing collision contacts. Fixes #8347

@akien-mga But it is enabled by default in stable build and disabling was broken.

Can anyone test it? Fixed process must be enabled by default or gui.tooltip_timer won't be decremented at all and tooltips won't work if we ever disable it.

I agree with this, since fixed_process is not only used for tooltips here but also for contact monitoring in the "visible collision shapes" debug feature.
(Additionaly I think that this logic should be moved to NOTIFICATION_INTERNAL_PHYSICS_PROCESS in master, but of course that's a topic for another PR)


Missing write function signatures

Some function signatures for SRAM writes seem to not yet be detected by the patcher like Pokemon and Final Fantasy Tactics Advance. Support for the function signatures in these games will need to be added.

Write signature for Pokemon Ruby has now been added, unknown if others needed?

Looks like Rhythm Tengoku uses WriteSramFast, will need to patch this one too. Containing function is at 4c8b0

Tony Hawk Pro Skater 2 reported not working

The save hook does not trigger in Yu-Gi-Oh! Reshef of Destruction.

For some reason, the exact same write function is repeated twice consecutively at 58760 and 587a0 in Yu-Gi-Oh! Reshef of Destruction. The patcher only catches the first one right now.

Yu-Gi-Oh Reshef and Castlevania Double Pack should be fixed with 1a27162.


fix: unequal sizes of listing cards on the homepage.

Changes Made:

Adjusted the CSS styles to ensure consistent card sizes.
Aligned the titles and prices for a cleaner look.

Testing Instructions:
To test the changes, follow these steps:

Go to homepage
scroll down to feature listings

Related Issue:
Closes #293

Thank you @alidotdeveloper for these changes. Unfortunately, the fixed .mat-mdc-card  height breaks the RWD. Could you please make the size flexible?

Sure

Fixed that issue, please check

The CSS change works like a charm! However, can you revert the npm changes? I don't think they were intended.

@alidotdeveloper  Closing after two weeks of inactivity. Please let us know if you would like for us to reopen it!

Ops soory, I see that now I will fix it shortly

@manekinekko @anfibiacreativa I have open another pull request please check

Hi @alidotdeveloper  I merged your other PR #293. Thank you :)


use default .desktop instead of our own ones

here https://github.com/devDucks/astroarch/blob/main/build.sh#L67-69 we cp our own .desktop but this is unneeded, phd2, kstars and konsole ship already thei .desktop files so we can use them directly

dropped from build script


Pester Task: Running in an isolated env. produces errors

Azure DevOps Extension you are using
There are a number of Azure DevOps (VSTS) extension in this repo so please say which one you are using, and if an extension contains multiple tasks which task also
Pester Tasks 8.13.3
Where are you running it?
You can run the extensions in the cloud or on-premise
Azure DevOps Server (on-premise TFS, 2017)
Version of Extension/Task
I assume it is the currently public version, if you are using an older version on-premises let me know, but the answer will probably involve upgrading to the currently public version
Pester Tasks 8.13.3
Expected behaviour and actual behaviour
That when pester tasks tries to download and there is no internet connection it falls back to the shipping version that was installed.
What I now see is that it does now skip the download but errors are still generated (Note the tests do still run):
2019-03-22T13:08:18.0992897Z ##[warning]MSG:UnableToDownload «https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409» «»
2019-03-22T13:08:25.4900633Z ##[warning]Unable to download from URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' to ''.
2019-03-22T13:09:00.2090288Z ##[warning]Unable to download the list of available providers. Check your internet connection.
2019-03-22T13:09:29.4905586Z ##[warning]Unable to download from URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' to ''.
2019-03-22T13:10:11.5378030Z ##[warning]Unable to download the list of available providers. Check your internet connection.
2019-03-22T13:10:11.5378030Z ##vos[task.logissue type=warning]Falling back to version of Pester shipped with extension. To use a newer version please update the version of PowerShellGet available on this machine.
2019-03-22T13:10:11.5378030Z
2019-03-22T13:10:11.5378030Z
2019-03-22T13:10:15.8815691Z ##[error]System.Management.Automation.MethodInvocationException: Exception calling "ShouldContinue" with "2" argument(s): "The method or operation is not implemented." ---> System.NotImplementedException: The method or operation is not implemented.
2019-03-22T13:10:15.8815691Z    at Microsoft.TeamFoundation.DistributedTask.Handlers.LegacyVSTSPowerShellHost.VSTSPowerShellHost.InternalPowerShellHostUI.PromptForChoice(String caption, String message, Collection1 choices, Int32 defaultChoice) 2019-03-22T13:10:15.8815691Z    at System.Management.Automation.Internal.Host.InternalHostUserInterface.PromptForChoice(String caption, String message, Collection1 choices, Int32 defaultChoice)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.MshCommandRuntime.InquireHelper(String inquireMessage, String inquireCaption, Boolean allowYesToAll, Boolean allowNoToAll, Boolean replaceNoWithHalt, Boolean hasSecurityImpact)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.MshCommandRuntime.DoShouldContinue(String query, String caption, Boolean hasSecurityImpact, Boolean supportsToAllOptions, Boolean& yesToAll, Boolean& noToAll)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.MshCommandRuntime.ShouldContinue(String query, String caption)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.Cmdlet.ShouldContinue(String query, String caption)
2019-03-22T13:10:15.8815691Z    at CallSite.Target(Closure , CallSite , PSScriptCmdlet , Object , Object )
2019-03-22T13:10:15.8815691Z    --- End of inner exception stack trace ---
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.ExceptionHandlingOps.ConvertToMethodInvocationException(Exception exception, Type typeToThrow, String methodName, Int32 numArgs, MemberInfo memberInfo)
2019-03-22T13:10:15.8815691Z    at CallSite.Target(Closure , CallSite , PSScriptCmdlet , Object , Object )
2019-03-22T13:10:15.8815691Z    at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.Interpreter.DynamicInstruction`4.Run(InterpretedFrame frame)
2019-03-22T13:10:15.8815691Z    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
**2019-03-22T13:10:15.9284607Z ##[error]System.InvalidOperationException: NuGet provider is required to interact with NuGet-based repositories. Please ensure that '<IP_ADDRESS>' or newer version of NuGet provider is installed.
2019-03-22T13:10:15.9284607Z    at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
2019-03-22T13:10:15.9597014Z ##[error]System.IO.FileNotFoundException: The specified module 'Pester' was not loaded because no valid module file was found in any module directory.
Steps to reproduce the problem
Launch a new build with Pester Tasks in a isolated env.

Should be resolved in the last release we did, will also be resolved in the first release of the new extension.


image alt text

Now that twitter algorithm penalizes external links, many include this information in image alt text.
would be great to have this information in the graph.

Hi, @cognitivetech.
Can you send example of this tweet?


Implemented Email, Mobile, and Social Profile Link Validation in Volunteer Form and NGO form

Email Validation:
Implemented regex-based validation to ensure the email address entered by the user follows a standard email format.
Added error messages to guide the user if the email is invalid.

Mobile Number Validation:
Added regex-based validation to verify the format of the mobile number.
Included error messages to inform the user if the mobile number does not meet the expected criteria.

Social Profile Link Validation:
Introduced regex-based validation for LinkedIn and Instagram profile links.
Ensured that users can only submit the form if the provided links match the specified patterns.
Added error messages to alert users if the links are incorrect.

I appreciate the effort and expertise that went into implementing the regex-based validation for email addresses, mobile numbers, and social profile links. It's clear that a lot of attention was given to ensuring data integrity and user experience. Thank you for taking the time to create such a robust and user-friendly validation system!

Just a friendly reminder do star the repository and watch it so that I can merge the pill request

I wanted to confirm that this is a Level 2 issue because earlier when I raised the issue, you labeled it as Level 2, but here you have labeled it as Level 1.

Ohh sorry I have not seen it. Thank u so much for reminding me!!!


Nothing happens on amount field if tapped quickly

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

Version Number: 1.4.65-9
Reproducible in staging?: Needs reproduction
Reproducible in production?: Needs reproduction
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @iwiznia
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1714072045237879
Action Performed:

Have an expense in a workspace chat
Tap on it to open it
Quickly, tap on the amount field

Expected Result:
Amount field opens
Actual Result:
Nothing happens immediately, It works after few seconds
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence

View all open jobs on GitHub

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Adding retest-weekly

Issue not reproducible during KI retests. (First week)

closing for lack of reproduction


Add volume capacity Fix #48

Using iOS 11.0 api, URLResourceKey

Merged done using github
commit for swiftlint warning in test
I do not fix warning from #121

GitHub doesn't let me merge this PR "due to conflicts" ... I've opened another PR #123  with your commit (so you're listed as the author). Hope you're fine with that!

yes I am


[ted] Add av1d test and add support for target platforms specification

@aobolensk: does av1 test pass on TGL? I think you were saying you saw some issues?

@aobolensk , please fix the conflict

@aobolensk , please fix the conflict

Done

Driver build failure is not related to this PR: https://github.com/intel/media-driver/issues/1049.


fix(Makefile): change shellcheck version

change shellcheck version to stable.
Signed-off-by: Akhil Mohan<EMAIL_ADDRESS>

Codecov Report

Merging #342 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff           @@
##           master    #342   +/-   ##
======================================
  Coverage    52.6%   52.6%
======================================
  Files          50      50
  Lines        2416    2416
======================================
  Hits         1271    1271
  Misses       1044    1044
  Partials      101     101

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 dd0e089...d743b5e. Read the comment docs.


Change content 's initial zoom

Changing the site's initial zoom setting.
The Problem
So when I view the site on mobile, the site is slightly zoomed in more than it's content width, and a user would have to zoom out a bit to get to the correct width. This issue is most likely caused due to some overflow in styling elements.
The Solution
To fix this I have changed the content width to maximum-scale=1.0, minimum-scale=1.0.
It prevents the site from being extra zoomed in when it initially loads, ensuring a smooth user experience.
Please let me know if you have any questions!

Hey @shubhankarval — we recently upgraded to using nuxt3, so your original contribution is conflicting. Would you like to take a look at this again?


Plan for registering/submitting hacks

Background: We're going to have constraints on time, so having a simple central place for all hacks should make it easier to keep track on signups and to go through hacks at the end of the day.
Plan
Each user/team would submit their hack by adding a file to this repo in an 'entries/' directory. Files would be named by github username - /entries/${github_username}.txt.
As an example - I might create the file/entries/benfoxall.txt with the following content:
---
name: Bens awesome hack
leader: Bobs SMS team
url: https://benjaminbenben.com/my-hack.html
---

When you send a sms to<PHONE_NUMBER> the background of this page will change colour

All entries would be PRs to the main repo - by having separate files named by github, this should make it much easier to merge and for allowing updates/tweaks.
All attendees would be listed on the main page with jekyll. And we'd also be able to have a page /present.html which lists the name/urls of each hack for when we get down to presentations at the end of the hack.
Secret urls (extra)
Some people might want to keep their url secret until the final presentation,  in this case we could allow people to encode their url (I think I've found a pretty nice way of implementing this).  In that case, the submission would look something like this:
----
name: Secret hack
secret_url: ED1KCHSWwxdNhJ0IQN+vhmAgPSe+UfQSv8eQLaSwulBqZu3gI2TMb/xOefcd0YBtKZOYHphkWoqJjOaQZ6rnd6mABlWFS1BPjKM9MU6vkfqk2i7Htsi3VjTr+16YxBnxpEeQy6hRiA1+WSK2xP/Tw2PAeAOx2/sryyhRNKFHZAk=
---

This is a secret hack

Things we need to do:

is this a good way of doing submissions - could it be easier
create a page to display these instructions to attendees
add list of users to main page
create /present.html page

@AverageMarcus @omgmog @spikeheap - would love to know your opinions on this

What if people work in teams?

Collections are perfect for this. We could use .json to represent each entry though, to have a more universal data structure for entries (would be cool to be able to use the data from elsewhere directly without having to run through Jekyll or something...)
So the structure:
entries/{team or user slugified}.json
{
  "name": "Fancy name for the team or user",
  "members": [
  // Only need members if it's a team...
      {
        "github": "omgmog",
        "name": "Max Glenister"
      }
    ],
  "hacks": [
    {
      "title": "Title of a hack",
      "description": "This hack is something magical that I'm working on",
      "url": ""
    },
  // A team or user can have multiple hacks!
  ]
}

I'm all for submission by PR -- it has worked in the past (Sushack) and if we provide an empty/example file to get people started it should be super simple.
We can have the entries[i].hacks[j].url as a completely optional thing until people are ready to make their hack public.

Ace - thanks for the feedback.
Good shout about the teams.  I was thinking that there'd be one person submitting for the team, though I guess it's be good to be able to list other members of the team.
With using .json files, does that mean that we can do away with front matter ---'s? I guess that might be great for people who haven't used jekyll before.

(would be cool to be able to use the data from elsewhere directly without having to run through Jekyll or something...)

Originally I was looking into having a tiny form that you can log in with github and it automatically creates/updates username.txt or an external db - though I came to the conclusion that it would take extra effort to build, and might go wrong.  We'd also lose the free control & auth that comes from using PRs.

// A team or user can have multiple hacks!

Perhaps in this case they could make their url a list of links to the other hacks they've made?  I think that makes the schema a bit simpler.  I think we want to have this as minimal as possible and try and make it as easy as possible for people to get involved.

So simplified structure:
[{
  "name": "Max's Awesome Team",
  "members": [
      {
        "github": "omgmog",
        "name": "Max Glenister"
      }
    ],
  "hacks": [
    "http://status.omgmog.net/",
    "https://blog.omgmog.net/line-finder/"
  ]
}]

Whipped up an example:
https://github.com/omgmog/jekyll-json-test
https://blog.omgmog.net/jekyll-json-test/?

Okay; Cool!
Do you think we should nest this under /_data/entries/omgmog.json? I guess that means we could put guides/organisers/helpers in other directories if so (and maybe have a repeat event later in the year).
I still think we should stick to single entries; we're going to be under a tonne of pressure with the final presentations, by having a single url per team, it means we can load it up and get them to come up and show it.  As I said before - if there are multiple things that they've put together, then the url could be used as an index.
Out of interest - why json over yaml?

More people are familiar with JSON than with yaml.

What if a hack isn't a website? (Thinking chatbots)

Perhaps we can just take a description, and handle that as markdown on the Jekyll side of things

The "submit a url per hack" is to streamline the presenting of hacks. If you think about JSOxford Show+Tell - the reason we get people to provide urls is because there's always issues with switching between machines; by loading up on a single machine you avoid that.  On Thursday - we're going to need to be even more streamlined.
There's also another really nice thing that it'll create a list of all the hacks so you can look through them later to see what people did.

What if a hack isn't a website? (Thinking chatbots)

In this case - I guess a screenshot or video url would be an option, or a hangout url to a screenshare from your laptop if you really want to do a live demo.
I think it could work for non-online hacks too.  Say if you've built a board game - you can take a photo, get a public url from G+, submit that.
I've started a document with a running plan of the event and I've added describing this in the intro.

Perhaps we can just take a description, and handle that as markdown on the Jekyll side of things

Is this for a non-web hack? I guess that description could be submitted as a gist?  If we're going down the markdown route - perhaps it'd be better to go back down the collections route?

Right, we need to decide this.  The way I see it - we've got two options:

collections - /_entries/benfoxall.yml

---
name: Ben's awesome hack
url: http://example.com/foo
guide: lisa
---
This is a virtual cardboard box for google cardboard.

I was working with [Jane](http://twitter.com/jane) & Frank

data - /_data/benfoxall.json

[{
  "name": "Ben's awesome hack",
  "members": [
      {
        "github": "benfoxall",
        "name": "Ben Foxall"
      }
    ],
  "url": "http://example.com/foo",
  "description": "This is a virtual cardboard box for google cardboard"
}]

I'm personally in favour of the collections still - I think that it's better to have a minimal approach (both for people signing up, and building the actual jekyll site).  I know more people are familiar with json, but if we keep things super simple and let people to put any extra information into the markdown body - then I think it could make things a bit easier.
Though I'm also happy to go down the _data/json route - @omgmog I know that you've got this working in your version - and you're way more up on Jekyll than I am - so if you think it's a better approach, then we can do that.

So, Decisions:

we stick to url submissions & add stuff in the hack intro to tell people how to submit non-web things
omgmog - decide on collection vs data and we'll go with that.

(sorry this is so long, I'm in a massive rush)

Okay there is something at http://jsoxford.com/hack/entry now to make this a bit easier.
Exact details of it might change as/when @ben gets an internet connection. :100:

@omgmog The guide dropdown needs to have a "No Guide" option

@AverageMarcus done. https://github.com/jsoxford/hack/blob/master/_data/guides.yml

Awesome. Will do. I've just fixed the "New File" link.

Right,  I think we've got this fairly down now.
I guess we've split up registration (creating your hack file) & submitting (adding a url).
We should probably rename /entry to /register,  and make a new route called /submit which gives instructions for updating your hack.
When shall we aim to open registrations? Tomorrow? or Tonight?  I guess when we do, we'd add a big pink button that links to register.  We could add the submit button tomorrow night.

[x] change /entry to /register
[ ] create a /submit page
[ ] stub out 'register' button on homepage

I think open registrations tonight. A lot of people are getting into town and getting excited. Would be good to be able to get an early indicator of numbers too.

Tonight and also promote it at the quiz?


Implement admin api filer

The code looks good, but I don't remember if we're still using this filer in folo tracking, because all folo data record has been migrated to use cassandra. @ruhan1 @sswguo Do you remember if we are still using the folo data filer here?

We are using cassandra for the folo for a while, I think no need to consider it any more.

The code looks good, but I don't remember if we're still using this filer in folo tracking, because all folo data record has been migrated to use cassandra. @ruhan1 @sswguo Do you remember if we are still using the folo data filer here?

We are using cassandra for the folo for a while, I think no need to consider it any more.

it is used for creating a file here https://github.com/hjmodi/indy-tracking-service/blob/implement-listeners/src/main/java/org/commonjava/indy/service/tracking/controller/AdminController.java#L83 should I covert it to a single function instead?

The code looks good, but I don't remember if we're still using this filer in folo tracking, because all folo data record has been migrated to use cassandra. @ruhan1 @sswguo Do you remember if we are still using the folo data filer here?

We are using cassandra for the folo for a while, I think no need to consider it any more.

it is used for creating a file here https://github.com/hjmodi/indy-tracking-service/blob/implement-listeners/src/main/java/org/commonjava/indy/service/tracking/controller/AdminController.java#L83 should I covert it to a single function instead?

If the filer is just used for this single purpose, I think we can make it as simple as possible with a single function.

The code looks good, but I don't remember if we're still using this filer in folo tracking, because all folo data record has been migrated to use cassandra. @ruhan1 @sswguo Do you remember if we are still using the folo data filer here?

We are using cassandra for the folo for a while, I think no need to consider it any more.

it is used for creating a file here https://github.com/hjmodi/indy-tracking-service/blob/implement-listeners/src/main/java/org/commonjava/indy/service/tracking/controller/AdminController.java#L83 should I covert it to a single function instead?

If the filer is just used for this single purpose, I think we can make it as simple as possible with a single function.

Cool, closing this PR. Will add this function when needed in another PR


"TypeError: Cannot read property 'displayName' of undefined"

When I run the server, it lets me log in, then fails here:
> sqs-server: Running site on localhost:5050
> sqs-server: AUTH - Login to Squarespace!
> sqs-server: GET - /
> sqs-server: TEMPLATE - front.region
> sqs-server: QUERY - insights

("front.region" doesn't exist in my template;  'insights' is the name of the blog feature that DOES exist.)
The error returned:
   TypeError: Cannot read property 'displayName' of undefined
    at sqsFormatters.item-classes (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/formatters.js:62:53)
    at /usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/formatters.js:172:23
    at _DoSubstitute (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/jsontemplate.js:420:13)
    at _Execute (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/jsontemplate.js:402:7)
    at Template.render (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/jsontemplate.js:798:3)
    at Template.expand (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/jsontemplate.js:803:8)
    at Object.render (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/squarespace-jsont.js:29:25)
    at handleDone (/usr/local/lib/node_modules/node-squarespace-server/squarespace-template.js:388:36)
    at handleQueried (/usr/local/lib/node_modules/node-squarespace-server/squarespace-template.js:401:13)
    at /usr/local/lib/node_modules/node-squarespace-server/squarespace-template.js:471:21

Any ideas? sqs is at 0.1.28 and Node is at v0.10.26.

Oh yes, the template key is maybe confusing. The template it declares is not an actual template file in your theme. The server parses your local copy and creates a reference object for what template(s) to use and/or put together and use for rendering. My guess is you have a layout in your template.conf file called "front" which is why you would get that template key logging out.
Ok, aside from that, my first suggestion would be to ensure none of the issues here are yours:
https://github.com/kitajchuk/node-squarespace-server#troubleshooting
If you rule those out then let me know. Looking at your error, it has to do with the "item-classes" formatter. It appears that the author is undefined on the json context for that formatter when it gets called in your template. I'm not sure how that can happen. It may be an edge case, or it may be due to one of the above troubleshooting issues not being resolved.
Let me know what you find.

Aha, okay! That makes a lot more sense. Yes, you're correct, I have a "front"  in "layouts", and if I remove or rename the collection "insights" in the template, it will query the correspondingly collection--or not, if it's removed. (I've checked through the "insights" the client has posted, and they all appear to actually have authors as per the Squarespace UI, at least. And it happens on every page I've checked, regardless of template or regions it's using.)
I've also confirmed that I'm using https:// in siteurl, and that "sandbox": true--though that evidently makes no difference.
But that said, I notice that the line that's mentioned first in formatters.js in node-squarespace-jsont (line 62) doesn't end in a semicolon: https://github.com/kitajchuk/node-squarespace-jsont/blob/master/lib/formatters.js. Adding one didn't do anything. Removing the entire line resulted in line 63 being singled out:
TypeError: Cannot call method 'toLowerCase' of undefined
    at sqsFormatters.item-classes (/usr/local/lib/node_modules/node-squarespace-server/node_modules/node-squarespace-jsont/lib/formatters.js:63:66)

But then when I remove line 63 as well... my page appears. So at least there's that? I don't really understand why those parts of val. aren't working, but at least I can get the mobile version of this site mocked up ASAP.

Can you paste a snippet of your template code where you are using the item-classes formatter so I can get an idea of how the context is being applied?

@catherineomega - Re-open if still valid, but trying to cleanup issues as a lot of work has been done lately.


"no template or render function" error occurred when only providing 'el' options when creating vue instance

There is 3 files involved:
a.vue: define a component named 'a'
b.js: import component a
c.pug(jade template file): html of the page
In b.js:
var Vue = require('vue');
var A = require('a.vue');

new Vue({ el: '#divid' })
...

In c.pug:
div(id='divid')
    a(p1=v1 p2=v2)

And when i load the page of c.pug, i got the error:
Failed to mount component: template or render function not defined

As i learned from the doc: https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram
If the template option is missed, we will use el's outhtml as the template, so we should not see the error:

Am i missing something or the doc is incorrect? I only want to convert small part of the page(#divid) into component, not the whole page.

Hello!
Thanks for reporting the issue. Please follow the Issue Reporting Guidelines and provide a minimal reproduction demonstrating the issue. In your case that would be a repo.
My guess is that your script is included in the head and is executed before the element exists in the DOM.

@simplesmiler i am sure that my script. i.e. b.js is at the foot of the page. i try to repro it in jsfiddle, but i used webpack and a.vue single file component and don't know how to use in jsfiddle. I will give as more detail as i can:
I wanted to mount component a.vue to #divid in c.pug (which is rendered by expressjs).  b.js is:
var Vue = require('vue');
var A = require('a.vue');
var $ = require('jquery');

$(function() {
    new Vue({el: '#divid'});
});

Then c.pug includes b.js, putting it at the foot of it.  b.js is compiled by webpack, using vue-loader.
I don't know why it does not work, it seems the same as the example from guide:

  <my-component></my-component>

// register
Vue.component('my-component', {
  template: '
A custom component!
'
})
// create a root instance
new Vue({
  el: '#example'
})

The difference is i use single file component and require it using webpack.
When this does not work, i tried the render function:
// c.pug: remove the component
div(id='divid')

// b.js: add render function
var Vue = require('vue');
var A = require('a.vue');
...
new Vue('#divid', {
    render: function(createElement) {
        return createElement(A, { props: { p1: v2, p2: v2 }})
    }
})

And no error occurred, it worked!

@tomwang1013 In that case provide a minimal repository with the repro

You are likely using the runtime-only build: https://vuejs.org/v2/guide/installation.html#Standalone-vs-Runtime-only-Build

@yyx990803 I switch to vue.common.js and got different error:
Unknown custom element:  - did you register the component correctly? For recursive components, make sure to provide the "name" option

It seems when i require a component from single file like: var A = require('a.vue');, the returned component is NOT automatically globally registered. Is it?
The guide: https://vuejs.org/v2/guide/single-file-components.html said not much about how to use it.
If component from .vue file can't be directly used by html rendered by server, how to use it typically? Create another .vue to include it? Then how to mount the top-level single-file component to some element? I've red the guide several times and can't get the answer.
Sorry, maybe i should go to elsewhere like stackoverflow, but i've paid much time to this question, so please let me finish it. Next time i will go elsewhere first. Thanks.

The guide said not much about it: https://vuejs.org/v2/guide/single-file-components.html

It says a lot... https://vuejs.org/v2/guide/single-file-components.html#Getting-Started
If some parts are not clear, we're happy to get some feedback on https://github.com/vuejs/vuejs.org/
Basically, templates in vue files can be compiled by using a webpack loader
I'm sure you'll be able to find the answers on the docs if you keep reading 🙂
Closing because this has clearly turned into a question. If after using one of the official templates you find out the same error, make sure to come back with the repro in a repository.
If you still need to ask more questions, the forum is very active and you'll definitely find help there
PS: naming a component a is definitely a bad idea because of the anchor tag in HTML. If you're testing, creating components with names like foo and bar is a safer solution

@yyx990803 @posva Thank you all. It now works. I've make a little artical about it:
https://github.com/tomwang1013/learn-webpack-vuejs/blob/master/2017-02/26-vue-first-componet-problem.md
I start to learn vue last week, hoping it can help other beginners if they have simalar problem.


Crash in windows keyboard hook

Every-time I launch the app , either after or before I launch the replay , I get Not responding message and app close itself , I can see the control panels , like recording and stuff , but any press on keyboard breaks it .

Update : seems the problem is going with app taking inputs from keyboard, since I tried to work around , using Windows 8.1 touch keyboard (onscreen keyboard) and tried to use a automation tool , like if I press wheel up it do emulate hitting key "G" down , and all of that results in app crushes . I thought it might help .

Can you please test this again using the latest version 0.1.1 which includes some better logging:
https://github.com/RiotGames/leaguedirector/releases/latest
If you crash then have a look in (USER)/Documents/LeagueDirector/logs/ and send me the log file.

@cammm
I downloaded the latest version , and now it doesn't even open , outputs this error  .
leaguedirector.log

Try going to (USER)/Documents/LeagueDirector and rename that folder to LeagueDirectorBackup then startup league director again.

Report after crash. The same, if you install it on the system disk.
https://cdn.discordapp.com/attachments/317922941205610531/572475973921013773/Report.rar

Well the issue is still happening , even that I'm working on the latest development version (cloned) the app appears to be working normally until any key is pressed even if it's not in the app itself life if I'm typing anything in Chrome for example , the app crashes as well, If there's any way I can debug it , would be nice to know , I do know programming , a bit of python and C++ but it's still hard to understand what's going on in the app.py so I don't know  even how I'm supposed to part it to functions like making the app using only the timeline function and start testing to find out where the app start to crash .

I would love for this bug to be fixed. It's definitely the windows version. I have 8.1 and it seems to do the same thing :(

I understand that Rito buried this program, because I do not see any new versions. RIP.


fix black bar on new chat w/ new person

@keybase/react-hackers @mmaxim

:no_entry: Error rendering the commits b330f02a7daa...2145509417d1 on linux. :mag_right: 24 errored, 8 new, 30 changed

Error in<PHONE_NUMBER>d1: Chat_Participant_Rekey-Normal-ERROR

Error in<PHONE_NUMBER>d1: Chat_Inbox-Normal-ERROR

Error in b330f02a7daa: Devices_Devices_List-Devices-ERROR

Error in<PHONE_NUMBER>d1: Devices_Devices_List-Devices-ERROR

Error in b330f02a7daa: Chat_No_Conversation-normal-ERROR

Error in b330f02a7daa: Chat_Input-Normal-ERROR

Error in<PHONE_NUMBER>d1: Chat_Input-Normal-ERROR

Error in b330f02a7daa: Chat_Inbox-You_Rekey_Selected-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-You_Rekey-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-You_Rekey-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Selected_Normal-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Selected_Normal-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Selected_Muted-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Selected_Muted-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Part_Rekey_Selected-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Part_Rekey_Selected-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Part_Rekey-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Part_Rekey-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Long_Top-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Long_Top-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Long_Bottom-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Long_Bottom-ERROR (view)
Error in b330f02a7daa: Chat_Inbox-Empty-ERROR (view)
Error in<PHONE_NUMBER>d1: Chat_Inbox-Empty-ERROR (view)
Added: Chat_No_Conversation-normal (view)
Added: Chat_Inbox-You_Rekey_Selected (view)
Added: Chat_Banner_Invite-Invite (view)
Added: Chat_Banner_Info-Info (view)
Added: Chat_Banner_Error-Error (view)
Added: Chat_Banner_Broken-Broken_Tracker_3 (view)
Added: Chat_Banner_Broken-Broken_Tracker_2 (view)
Added: Chat_Banner_Broken-Broken_Tracker_1 (view)
Changed: You_Rekey-Normal (before) (after) (diff)
Changed: Text-Terminal_Comment_Documentation (before) (after) (diff)
Changed: Text-Body_Small_Semibold_Italic_Documentation (before) (after) (diff)
Changed: Colors-white_20_rgba_255_255_255_0_20 (before) (after) (diff)
Changed: Colors-transparent_rgba_0_0_0_0 (before) (after) (diff)
Changed: Colors-red_75_rgba_255_0_0_0_75 (before) (after) (diff)
Changed: Colors-grey_cccccc (before) (after) (diff)
Changed: Colors-green_3_E_8_FAF_3 (before) (after) (diff)
Changed: Colors-green_2_36_b_37_c (before) (after) (diff)
Changed: Colors-black_10_rgba_0_0_0_0_10 (before) (after) (diff)
Changed: Colors-black_05_rgba_0_0_0_0_05 (before) (after) (diff)
Changed: Colors-black_000000 (before) (after) (diff)
Changed: Buttons-Secondary_waiting (before) (after) (diff)
Changed: Buttons-Secondary_full_Width_waiting (before) (after) (diff)
Changed: Buttons-Secondary_full_Width (before) (after) (diff)
Changed: Buttons-Secondary_disabled (before) (after) (diff)
Changed: Buttons-Danger_full_Width (before) (after) (diff)
Changed: Buttons-Danger (before) (after) (diff)
Changed: Avatar-Normal_x_40 (before) (after) (diff)
Changed: Avatar-Normal_x_32 (before) (after) (diff)
Changed: Avatar-Normal_x_24 (before) (after) (diff)
Changed: Avatar-Mutual_Follow_x_80 (before) (after) (diff)
Changed: Avatar-Mutual_Follow_x_64 (before) (after) (diff)
Changed: Avatar-Mutual_Follow_x_48 (before) (after) (diff)
Changed: Avatar-Follows_You_x_80 (before) (after) (diff)
Changed: Avatar-Follows_You_x_176 (before) (after) (diff)
Changed: Avatar-Follows_You_x_112 (before) (after) (diff)
Changed: Avatar-Following_x_176 (before) (after) (diff)
Changed: Avatar-Fallback_x_24 (before) (after) (diff)
Changed: Avatar-Fallback_x_16 (before) (after) (diff)


32bit Builds

People keep asking for this. Apparently 32bit isn't as dead as I thought.

Fixed in v1.1.0


⚠ Bofrost.at has degraded performance

In 2778023, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1841 ms

Resolved: Bofrost.at performance has improved in 8be149e after 28 minutes.


Code highlight should use Courier New font

As the style guide suggest, single quote code highlight should use Courier New font

cc @johnpryan

What style guide are you referring to? Are there other style guidelines we need to follow?

@johnpryan I got this from the tech writer feedback, I pined you in the doc

Fixed in #1890

https://github.com/flutter/codelabs/pull/125


Littel mistake in predict file

Hello,
I found a little mistake in predict file, line 109
image_paths = [inp_file for inp_file in image_paths if (inp_file[-4:] == '.jpg' or inp_file == '.png')]
inp_file for png should be inp_file[-4:] . People who have png images will never predict there output.
correct line should be
image_paths = [inp_file for inp_file in image_paths if (inp_file[-4:] == '.jpg' or inp_file[-4:] == '.png')]
best of luck

thanks @tofahito2


individual update integration (#1152)

individual update integration

Used multiInstanceUtil

Used stateLevelTenantId for individual search

Removed kafka.push

Search individual only by mobile number(do not include name)

Put contact details update object on kafka topic that will be consumed by Attendance Service

Added RequestInfo in the update object on kafka topic

Refactored OrgContactUpdateDiff

Updating staff permissions based on change in organisation contact details

Added check for empty list

Added check against empty sets

Added logs statements

Added field individualId to contactDetails

Added field individualId in query

setContact field random UUID only in case of update call

set contactdetailsid only for create call

stateleveltenantid

Used tenantId instead of stateLevelTenantId for org search

Refactored code to accommodate change in ContactDetails

Removed setId from update flow

Refactoring

Added kafka consumer properties

Added kafka consumer properties

Added tenantId in OrgContactUpdateDiff

Removed individual models and imported from common library. Also using individual id instead of userid

RegisterEnrichmentTest change

RegisterEnrichmentTest change and createRegister change

RegisterEnrichmentTest change

Added statelevelTenantId

Searching by individualId instead of userUuid

Searching by individualUuid instead of userUuid

checking for individual id

RegisterId working

RegisterId working

added check in for role while create individual, and changed contactDetailsId to contactDetailsIndividualId.

Added try catch for searching userUuid

granted first and revoked later

role checking updated

role checking based on role code

role checking based on role code and fallback

role checking based on role code and fallback

added userid and userUuid in update call

changed null role to citizen role

Not required, already merged in master


need KM warning on duplicate sample

There is the ! icon on the right of p value

That's a placeholder: hard-coded string.

Fixed with 94ea81c9c5a4e6dfa144b1e398567ce0df24ad3a


Investigate the use of the Multicloud Validated Pattern to deploy the Infrastructure dependencies for our use cases

Currently we are relying on providing the setup instructions for deploying the required infrastructure for our Edge PoC using ACM, GitEa, OpenShift Pipelines.  Since all of those are stan
https://validatedpatterns.io/patterns/multicloud-gitops/

Shouldn't we use the "Industrial Edge" pattern instead? That looks much more similar to what we're currently doing.

Shouldn't we use the "Industrial Edge" pattern instead?
I created this story when we were moving further into owning ACM infrastructure rollout as part of the Proof of Concept demo when this could responsibilty be offloaded to existing projects that already provide that functionality.

The Industrial Edge pattern is a combination of Multicloud Pattern + MLOps Pipelines + Industrial Edge intelligent application.  Once these AI Edge features are integrated into ODH, we can work with the validated pattern team to update the Industrial Edge pattern to use our ODH Edge features for Jupter Notebooks, MLOps pipelines and Model Observability to deploy and monitor their anomaly detection application.
As a long term goal, we could provide a Multi Cloud AI Edge pattern that  can deploy an ACM Hub + ODH to support someone to have a "one-click" install of a AI/ML development environment for developing and delivering models to the edge

I took a look at the https://validatedpatterns.io/patterns/multicloud-gitops/ and tried to follow the documentation and set it up. I found out that the documentation is lacking in many places (I filed 15+ issues in https://github.com/validatedpatterns/docs/issues for those findings) and in the end I got blocked by https://github.com/validatedpatterns/docs/issues/351 -- no applications got deployed on the managed cluster.
I tried to debug the issue but gave up after two hours.
So the problem that I see with this validated pattern is -- while it is a nice theoretical concept based on a reasonable architecture, the promise of "With a pattern, you can automatically deploy a full application stack through a GitOps-based framework" listed at https://validatedpatterns.io/ does not seem to be currently realized. The actual artifacts provided (documentation and the YAMLs) are not a solid, stable baseline for building further solutions. The steps that we currently have in this repo in the README.mds seem to be reasonably easy to follow and copy-n-paste without being dragged into a fairly convoluted structure of the tooling used by the pattern.
Now I'm sure those issues can and will be fixed. But I worry that using it might be a long-term maintenance liability which would not be outweighted by the benefits of being "pattern-compatible". :-)

Now I'm sure those issues can and will be fixed. But I worry that using it might be a long-term maintenance liability which would not be outweighted by the benefits of being "pattern-compatible". :-)

Ok. The priority of this was always low at best since our expectations would be that a hub cluster would have ACM + OpenShift Pipelines available prior to the installation of OpenShift AI.  We'll have to see if the Validated Patterns team responds to the issue and how quickly, or if, they respond

I'd suggest the sepsis pattern actually, much more focused. Industrial Edge is a bit of a beast


Default not applied to Bold, Italics and underline.

Hi @davidrthorn ,
I was using the tool for updating all my footnotes. But whenever i have my footnotes as Bold/Italics/Underline and i save it as a default, upon refresh, the changes are note reflected in all the footnotes.
Thanks!

My Bad! I did not read the Readme! ;)


add abi v2 support for non-indexed value in event

Coverage remained the same at 91.16% when pulling 8ca017088a29d2aa86e9765a4373ec1be42a5ec1 on libotony:dev into 596dd9dc9acd3ab7a2e1ab60a0121fc782258a9e on vechain:master.


[objc] Add NSDate <-> DateTime support.

DateTime v.s. NSDate
From NSDate's documentation:

NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date (00:00:00 UTC on 1 January 2001).

Due to NSDate reference date, all conversions between it and DateTime must be done in UTC.
DateTime to NSDate
When converting from DateTime to NSDate the DateTime's Kind property is taken into account.

Kind
Results

Utc
Conversion is performed using the provided DateTime object as is.

Local
The result of calling ToUniversalTime () in the provided DateTime object is used for conversion.

Unspecified
The provided DateTime object is assumed to be UTC, so same behavior as Kind == Utc.

The conversion is done by using the following formula:
TimeInterval = DateTimeObjectTicks - NSDateReferenceDateTicks[dt] / TicksPerSecond
Once we have the TimeInterval we use NSDate's dateWithTimeIntervalSinceReferenceDate: selector to create it.
NSDate to DateTime
Going from NSDate to DateTime we assume we are getting a NSDate instance which's reference date is 00:00:00 UTC on 1 January 2001 and use the following formula:
DateTimeTicks = NSDateTimeIntervalSinceReferenceDate * TicksPerSecond + NSDateReferenceDateTicks[dt]
Once we calculated the DateTimeTicks we use the following DateTime constructor setting its kind to DateTimeKind.Utc.
There are some considerations that you must be aware of, NSDate can be nil but a DateTime is a struct in .NET and by definition it can't be null. If you give a nil NSDate we will translate it to the default DateTime value which maps to DateTime.MinValue.
MinValue and MaxValue are also different, NSDate can support greater and lower boundaries than DateTime's so whenever you give a greater or lower value we will set it to DateTime's MaxValue or MinValue respectively.
dt: NSDate reference date 00:00:00 UTC on 1 January 2001 => new DateTime (year:2001, month:1, day:1, hour:0, minute:0, second:0, kind:DateTimeKind.Utc).Ticks;

Build failed

Build failed

Build failed

Build failed

Build failed

Build failed

Build failed

Build failed

Build and tests passed.

@rolfbjarne / @spouliot Finally green :) Are you ok on merging this?


A side question regarding LICENSE

I have seen that the license of this code is apache.
I had in mind a question for quite some time:
What's the major difference between 3 clause MIT and APACHE 2 license?
If I want the code to be 100% free would MIT be a better choice?
Why did you choose to use APACHE 2?

Hi, I'm not speaking on behalf of the author and can't comment on his choice. Take a look at each of the licenses below, and you will see how they can compare in permissiveness.
https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
https://tldrlegal.com/license/mit-license


Improvement: Categorization of images for quicker selection

Currently all images are stored in a single folder. This is a very fine default for smaller numbers of images.
For sites with large amounts of images, it would be handy to be able to have a separate folder for, say, logos / images of products / diagrams / photos of kittens . The scenario here is that when choosing an image, it's a nuisance to have to browse through many pages of possible images. It would be easier if we could narrow down the selection.
Apart from folders, tags could also be an option.

Hi @khink - isn't this just the collections feature?

@gasman I think this is just what we want Thanks!


Is AND OR operation between rules

Hi anyone can help me how to perform AND & OR operation.
Thanks in advance :)

Usecase:

in a form lets say I want to implement a usecase where I want to collect atleast one of information from user...
field A or Field B

You can use required_without rule
Plese see a test for example.
I also recommend digging into all required_* rules.


WIP: Added tests for translation.

@snowleopard: I have added some tests, but found some issues along the way.
In order to do the testing, the translation code needs to be installed as part of the cabal build phase, therefore I have refactored some of it into Tuura.Concept.STG.Translation. This allows testing to occur on .g output and arcs of different concepts.
First of all, if you think these tests need some changes, please let me know.
Second of all: I have attempted to change the translate/Main.hs file, so it uses as much of the Tuura.Concept.STG.Translation as possible. However, testing this produces a seg. fault, and debugging proves it is because Signal is defined in the Translation module, not in the Main.hs file.
I have had a go at hiding Signal when importing Tuura.Concept.STG.Translation, and redefining it in translate/Main.hs, but this provides incompatability issues when attempting to retrieve information on the CircuitConcept itself.
Thus, there is now a lot of repeated code, and changing the actual translation code used from translate/Main.hs means that the TransTest.hs file won't actually correctly test the translation process.
Do you have any ideas for this?

@snowleopard I have made the changes to the test file.
With regards to using a type variable, [a]. Most of it requires it to be Signal, as it needs to get information from the Concept. Are you sure we can use [a] instead?

@jrbeaumont Let's look at function doTranslate for example. Can't it have the following type instead?
doTranslate :: (Show a, Ord a) => [a] -> Concept (State a) (Transition a) a -> String

As far as I can see, all we need is to show and compare signals?

@snowleopard: OK I just found that as you posted it haha. Changed some things around, seems to work fine. Just going to test it now.

@snowleopard: I have changed the code as needed, and tested it both alone, and in Workcraft, all appears to be working well.

Cleared those up, still working well :)
Let me know if you have more suggestions!

@jrbeaumont Great, merged now!

@snowleopard: Thanks!


Add new metrics: SAM

What does this PR do?
Adds new Metric SAM #799
Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos and docs improvements)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure to update the docs?
[x] Did you write any new necessary tests?

PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
Make sure you had fun coding 🙃

@stancld Sorry I forgot it. I just updated them

@vumichien mind checking the failing tests?

@Borda I have changed another function. I hope this time it will work

@Borda Could you help me start the test?

@Borda @SkafteNicki Could you help me to resolve this conflict with master?


Vulkan: Crash when adding CPUParticles3D

Godot version
4 alpha 3 dev
System information
Win 10, Nvidia mx250, i7 1050U
Issue description
Cpu particles crash godot whenever I assign anything other than a quadmesh to their 'mesh' slot.
Steps to reproduce
Create a node3d. Add a cpu particle node as child. Add a planemesh or cubmesh to cpu particles 'mesh'. Play scene. It crashes for me.
Minimal reproduction project
No response

I have an interest in this issue but cannot reproduce that crash. I did all in the Issue description contents but the crash never caused. Do you have any minimal reproduction project?

I mean if it's not crashing for anyone else we can just close the issue. I'm kind've busy atm and I don't have time to put anything together. I would have to pull the scene out of a large project to create the mrp.

same for me, crash when I tried add GPUParticles3D to character node


Add protocol property written hook

For some properties with derived values, like encoder bandwidth, we wish to evaluate a "setter" function when written. It would be nice to be able to install a property written hook to avoid having to use the function call interface.
Specifically, we can add an optional function pointer argument for the hook here:
https://github.com/madcowswe/ODrive/blob/master/Firmware/fibre/cpp/include/fibre/protocol.hpp#L896

Implemented in #253


Allow configuring log output to a file

Isn't this good enough?
Racecar.logger =  Logger.new('logfile.log')

But perhaps could be mentioned in the documentation.

Sure, I'd just like to have the CLI support it directly.
On Thu, 3 Aug 2017 at 15.52, Filip Tepper<EMAIL_ADDRESS>wrote:

Isn't this good enough?
Racecar.logger =  Logger.new('logfile.log')
But perhaps could be mentioned in the documentation.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zendesk/racecar/issues/14#issuecomment-319975130, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAAYz2HJIz7HUvcSlUu0TodO03KiTbvhks5sUdCngaJpZM4Oi0bR
.

Fixed by #18.


CDN not working according to the official documentation.

Describe the bug
Link to CDN used in official documentation is broken thanks to the changed folder structure under dist/
To Reproduce
Steps to reproduce the behavior:
Try to use CDN link. It's unable to fetch (https://cdn.jsdelivr.net/gh/tronic247/material/dist/css/material.min.css)
Expected behavior
Well, obviously it should be fetched from CDN but CDN will return 404
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Can be fixed either by returning the old folder structure or by fixing the link in documentation to https://cdn.jsdelivr.net/gh/tronic247/material/dist/material.min.css - removed /css since folder css doesn't exist.

This issue will be patched soon. Until then here are the links.
JS
<EMAIL_ADDRESS>
CSS
<EMAIL_ADDRESS>

Fixed

You use the same format for jsDelivr too<EMAIL_ADDRESS>


fix tiglFuselageGetPointAngle bug

The function GetPointAngle now takes the cross section center as starting point for the angle, rather than the origin of the yz-plane at the current eta
fixes #264

Could we integrate this already in the TiGL 2.2.1 Release instead of the later TiGL 3?

I am using the common function GetCenterOfMass(const TopoDS_Shape &shape) that exists in cpacs_3 but not in the master branch.  Should I add it?

You can decide. Depends, how much other stuff except from centerofmass has to be reintegrated.

I just created a new pull request to integrate these changes into the master branch. So I will close this PR


implement password strength meter.

As specified in login-gov_styleguide_v1.9.3.sketch:

Unclear of the best implementation for this — if we should include JavaScript for this, or just the styles.

currently implemented


[QUESTION] Running a second app?

What happens when you run a second application in this compositor?
For example I was thinking this could be useful to launch Steam BigPicture mode BUT what happens when a game launches?

Hi @zezba9000,
Cage can be used without any issue with a second, a third and more apps. One limitation is compositor will terminate once the first app is terminated. Of course, you can use a simple sleeping script as first app. The other apps can be launched as a child of first app or not.
Hope it answers your question.

Thanks. This is what I was hoping for.


enable x11 feature for example_deps

Without it, the example would fail to compile on linux.

Great, thanks!

Great, thanks!


Execute changes in changeset upon successful validation?

Hi, I started looking at this add-on because I was already using ember-bootstrap and wanted to add validation to my forms using ember-changeset. Unless I am doing something wrong, it seems like I need to manually execute the changeset with changeset.execute() if I want to apply the changes to the data model that the changeset wraps.
I understand that I can call save() etc. on the changeset object, but until recently where the model for the form submission wasn't being passed along to the action I was working with my model references directly. It seems like it would it make sense to me to automatically execute the changes (provided that they are valid) following validation but before executing the submit action.
If this sounds like it would be a good idea, I can work on a pull request for it. If not, can you advise on a recommended best practice?

@swquinn Sorry for the super late answer. Somehow I missed the GitHub notification.
I see it requires a bit more work to get back a reference to the changeset. That was one of the reasons to pass the model from the onSubmit action. I think you could also use the {{#with}} helper in your template to do so.
However I feel it is beyond the scope of bs-form to call save(), as it is just a generic UI component and does not know it what context it is used, i.e. in many situations it might not be appropriate to directly call save(), as the user of that component knows what should actually happen on submit. Also the bs-form of ember-bootstrap-changeset-validations that extends the base bs-form of ember-bootstrap should not change the behavior of the latter, as that would be inconsistent and probably unexpected.
I would recommend wrapping the form in a application specific form component, like user-form, which knows about the application specific context and could be responsible to actually call save().


[Modal] Support theme default props

[x] I have followed (at least) the PR section of the contributing guide.

Fixes #17333.
Adds back support that existed in v3 for supplying default props in the theme for the Modal component.

Thanks.
I feel like we want a useThemeProps hook anyway at some point.

I feel like we want a useThemeProps hook anyway at some point.

@eps1lon Yes, it's very likely that we will need to take this path.


Add poison.rs to mc-sgx-sync crate

Add poison.rs implementation which more or less copies from
rust source at
606c3907

Current dependencies on/for this PR:

main

PR #14

PR #13

PR #15

PR #22

PR #24

PR #30

PR #31

PR #32

Codecov Report

Merging #36 (058fb8c) into nick/sync-crate (9661290) will decrease coverage by 23.71%.
The diff coverage is 0.00%.

@@                 Coverage Diff                  @@
##           nick/sync-crate      #36       +/-   ##
====================================================
- Coverage            91.94%   68.23%   -23.72%
====================================================
  Files                    8        9        +1
  Lines                  236      318       +82
====================================================
  Hits                   217      217
- Misses                  19      101       +82

Impacted Files
Coverage Δ

sync/src/lib.rs
100.00% <ø> (ø)

sync/src/poison.rs
0.00% <0.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

⏳ This pull request is set to merge as part of a Graphite merge job
Stack job ID: HgREqLwB7JxPkCuBxNeY.
See details on graphite.dev

@varsha888 bumping you for review since I needed to restack after your review


Compilation error: object_type_db.h missing

Hi!
First of all, thanks for this awesome library!
However I'm having troubles compiling it:
modules/godotsteam/register_types.cpp:2:10: fatal error: object_type_db.h: No such file or directory
 #include "object_type_db.h"

I couldn't find any traces of ObjectTypeDB or object_type_db.h in Godot... Any ideas?
Godot: master branch (3.0-stable+1849)
SteamWorks: v1.42
GodotSteam: latest version from godot3 branch
Thanks!

Hey there and welcome!
It seems that this line is your problem:
#include "object_type_db.h"
However, that line does not exist in the Godot 3 version of the module;  it's in the Godot 2 version.  I think you may have pulled form the repo's master branch instead of the Godot 3 one.  If you switch branches that should fix it.

Thanks! I'll try it.

Ah, hadn't heard back so I assume you may have fixed it by swapping repos.  Double-check you were using the Godot 3 one.


Maybe need a  currency module?

I think  simplcommerce need a module that can set primary currency to visit or checkout?

You can set the currency format in the Admin --> Setting


CIV-TASK Temporarily suppress CVE-2023-20860

JIRA link (if applicable)
N/A
Change description
Temporary suppression of CVE-2023-20860 as it doesn't have a fix yet.
Testing branch and instruction
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

No need to wait for approvals or for the build to complete on this, as it's just a temporary suppression.


Deployment/ Config docs update

OpenStack Release
Kilo +
Description
Update/enhance deployment and configuration instructions:

add links to documentation for all of our official partners (Mirantis, Red Hat, HPE)
update links to this documentation from other doc sets as needed

These guides will be deprecated.


Add acceptance test support for getLogs

Problem
#103 added support for getLogs.
However , this preceded the acceptance tests so support was not added
Solution
Add a tests that calls eth_getLogs with coverage for a combination of the following params

fromBlock
toBlock
address
topics
blockhash

Alternatives
No response

If nothing is passed in the filter (filter is empty) f.e:

{
  "jsonrpc": "2.0",
  "id": 0,
  "method": "eth_getLogs",
  "params": [
    {}
  ]
}

The response must be all logs from the most recent block

If only fromBlock is specified, we must query all logs from the beginning (specified block) until now for all contracts.
If only toBlock is specified, we must query all blocks until the toBlock
Add tests with 1, 2, 3, and 4 topics filter -> topics must be considered OR filter not AND
If we are passing only address -> we must return all logs for that address (address can be account or contract). If no events are found the response should be:

{
  "jsonrpc": "2.0",
  "id": 0,
  "result": []
}

We can use this contract to test all options:
`// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract Logs {
event Log0(uint256 num1) anonymous; // Does not include topic
event Log1(uint256 indexed num0);
event Log2(uint256 indexed num0, uint256 indexed num1);
event Log3(uint256 indexed num0, uint256 indexed num1, uint256 indexed num2);
event Log4(uint256 indexed num0, uint256 indexed num1, uint256 indexed num2, uint256 num3);

function log0(uint n) public {
    emit Log0(n);
}

function log1(uint n) public {
    emit Log1(n);
}

function log2(uint n0, uint n1) public {
    emit Log2(n0, n1);
}

function log3(uint n0, uint n1, uint n2) public {
    emit Log3(n0, n1, n2);
}

function log4(uint n0, uint n1, uint n2, uint n3) public {
    emit Log4(n0, n1, n2, n3);
}

}`


Review updated descriptions.

#775 Updated all the descriptions to be self contained by prepending the problem blurb to the start of the description.md file.
This generates readmes that are identical to the previous readmes.
However, now that the blurb is part of the description, there is some missing punctuation and duplication/redundancy that needs resolving.
@ErikSchierboom Identified some that need fixing here: https://github.com/exercism/x-common/pull/775#pullrequestreview-39794067
Tasks

[x] Add period to the first line of the description where they are missing. (Complete: #801)
[x] Fix obvious duplication in the first lines. (Complete: https://github.com/exercism/x-common/pull/802)

Resolved by #801 and #802