Requirements: Search

OCI Artifact Search Requirements
As registries support multiple artifact types, a search/catalog API that supports filtering on the artifact type will be needed.
The docker v1 registry spec supported Docker Search. While some vendors like Quay.io implemented the v1 search API, the majority of vendors require the v2 registry api which dropped search.
We believe revisiting the search api will  support client CLIs that span registries, such as helm search, duffle search (CNAB), docker search, and other evolving artifact types.
By supporting a common search API across all registries, users could consistently use these new artifact CLIs across all registries.
This issue focuses on capturing the requirements for new Search and Eventing APIs. As the requirements are agreed upon, we'll move to a spec that captures the requirements.

KubeCon 2019 EU Notes: OCI Catalog Listing APIs

Use Cases
Search is a generic capability used across several different use cases.

Artifact Tool Specific Searches
Registry Specific Searches
Registry Tools Searches

Tool Specific Searches
Helm, Singularity, Docker, OPA, CNAB and other tools will need to query their specific artifact types across various registries.
Example: The helm cli would need to query a registry for charts that match a specific name. The result should return helm only artifacts.
helm search demo42.azurecr.io hello-world

Results
--------------------------------------
samples/hello-world
marketing/products/hello-world-sample
dev/prototypes/sample-hello-world

Version specific searches:
helm search --versions demo42.azurecr.io samples/hello-world

Results
--------------------------------------
samples/hello-world   1.0
samples/hello-world   1.1
samples/hello-world   1.2

Registry Specific Search
Users want to query registries for the artifacts that match a specific name or list artifacts within a given path. In this case, the results contain multiple artifact types.
Today, registries have created unique client APIs and server APIs. Until we have a generic registry client, it's expected registries will have vendor specific APIs. However, having common registry server side APIs expands the possibility for common tooling across registries.
A registry search API would include

repo listings
tag/version listings
limit by artifact type
query by date range, such as what's changed/added since a given timestamp
as results may be paged, sorting the results by name and/or version with ascending and descending options

Existing examples
ACR list repo example:
Without a common search/catalog API, cloud vendors have had to implement vendor specific experiences:
az acr repository list -n demo42

Name
-----------------------------
samples/demo42/queueworker
samples/demo42/quotes-api
samples/demo42/web
samples/demo42/deploy/chart
samples/demo42/deploy/cnab
samples/demo42/deploy/arm

ACR list tags example, w/ future type added:
az acr repository show-tags -n demo42 --repository samples/demo42/deploy/chart

Result  Type
-------------
1.0     helm-chart
1.1     helm-chart
1.1.1   helm-chart
2.0     helm-chart
3.0     helm-chart

A repo could contain multiple artifact types
az acr repository show-tags -n demo42 --repository samples/demo42/deploy

Result       Type
------------ ----------------
helm-1.0     helm-chart
helm-1.1     helm-chart
helm-1.1.1   helm-chart
cnab-1.0     cnab
arm-1.0      arm

Rather than each registry vendor having to offer unique APIs, the goal would be to offer a common API.
Registry Tool Search - Scanners
Vendors and the community have attempted to build tools atop registries.

Image Layers
Dive – A tool for exploring each layer in a Docker image | Hacker News
Analyze And Explore The Contents Of Docker Images
10+ top open-source tools for Docker security | TechBeacon

Without a common search/catalog API, these tools must work with individual images.
One of the most common registry tools include image scanning tools like Aqua, Twistlock, Neuvector and Clair.
While the scanning tools protect runtime nodes, they all pre-scan registries to understand image vulnerabilities before they're run.
Scanners evaluate images in registries with a combination of a search/catalog API and events.
These vulnerability scanners need the following:

list all repos and tags for the inital scan evaluation
get paged results as they may contain thousands of images
periodically list all new and update images and tags, to keep a registry up to date
register for events to scan images as they arrive. Possibly using The Container Quarantine Pattern
filter, or at least understand the different artifact types
as new CVEs are found, re-scan the registry

Today, scanners assume all artifacts in a registry are a container image. As a registry stores new artifact types, scanners will either need to know how to scan these new artifacts, or at least filter the results to artifacts they support.
Artifact Types
A registry must know the types it hosts for it to provide meaningful search results.
Artifact types will be internally identified by an expanded set of OCI Media Types.
However, displaying application/vnd.cncf.helm.chart.v1+json does not make for a good user experience. To provide clean user experiences, a list of artifact types, a short description, and info on the artifact tooling will be maintained.  Media Type Short Names

Media Type
Display Name
Info

application/vnd.oci.image.index.v1+json
OCI Image
Docker *

application/vnd.oci.image.manifest.v1+json
OCI Image
Docker *

application/vnd.cncf.helm.chart.v1+json
Helm
Helm

application/vnd.oci.cnab.index.v1+json
CNAB
Duffle, Docker-application

* most registry providers automatically convert oci.image manifests to the format requested by the client.
Registry Search Requirements
Listing repos
Listing artifacts
Listing versions
Filtering by artifacts
Filtering by date ranges
Search queries may specify date ranges, enabling the return of artifacts that have been created or changed since a given date:time

date:time filters MUST be supported on manifests and tags.
Registry operators MAY add additional value by parsing manifest.config objects. This allows a registry to option to add value, while not burdening all registries to parse all config objects of all artifact types.

Paging
Results may be paged, to provide a full list of artifacts.
A default page size of 100, with the ability to change the paging size.
Sorting
As results may be paged, being able to sort provides the ability to get the top n results, based on a given sort order. Sorting includes ascending and descending.
Role Based Access Control
Search results shall be limited to the artifacts the user has read access control. The user may be a person or service account. The spec shall not define specific rights or roles for how authorization should be implemented or managed, rather simply state the registry must be cognizant of security and support the security of it's product and/or platform. If a user has read access to repo1 and repo3, but not repo2, the repository listing should only return repo1, repo3.  The spec will not define a role where read differentiates between management and data operations.

A lot of this seems more about listing than searching. We really need to figure out what that will look like. I had a strawman here that suffered a painful death by bikeshedding.

as results may be paged, sorting the results by name and/or version with ascending and defending options

descending
What's a "version" here, from a registry perspective? A tag or digest? Just a tag? A new thing?

Example: The helm cli would need to query a registry for charts that match a specific name. The result should return helm only artifacts.

This might be a pain. The artifacts stuff works because registries can be (mostly) agnostic to the contents of what's being distributed. The more stuff we require to be indexed, the less flexible we make the distribution API.

Search queries may specify date ranges, enabling the return of artifacts that have been created or changed since a given date:time

Artifact creation from the client's perspective (i.e. created time) or when it was pushed?

Search results shall be limited to the artifacts the user has read access control. The user may be a person or service account.

The spec doesn't currently speak to access models currently, so I'm not sure how appropriate this is.

Thanks @jonjohnsonjr ,
As I reviewed the hackmd doc, posting here, I realized we had much better structure of conversation in the KubeCon 2019 EU Notes: OCI Catalog Listing APIs
This topic should, IMO, cover listing, search and eventing as these are all required to meet the scenarios.

What's a "version" here, from a registry perspective? A tag or digest? Just a tag? A new thing?
Good point. I suppose we would need both.
Example: The helm cli would need to query a registry for charts that match a specific name. The result should return helm only artifacts.
This might be a pain. The artifacts stuff works because registries can be (mostly) agnostic to the contents of what's being distributed. The more stuff we require to be indexed, the less flexible we make the distribution API.

The premise of artifacts means all objects in a registry have a unique manifest.config.mediaType. To your point, search would likely incorporate top level data, such as :tag, digests and annotations. I think you're referring to information stored in the manifest.config. I'd suggest it would be up to the registry operator to decide what "value add" they wish to provide. If gcr wanted to surface additional search metadata which is parsed from configs of specific artifacts, that would be cool. But, I would imagine the search spec would say this was optional. Annotations, :tags, manifests would be required.

Search queries may specify date ranges, enabling the return of artifacts that have been created or changed since a given date:time

Artifact creation from the client's perspective (i.e. created time) or when it was pushed?

This is an interesting one where the value is stored in a config, unique to the OCI Image artifact type.
This goes to the conversation above, related to parsing config objects. I'd probably still say, we'd say the spec would MUST on the manifest and tag dates, while making config values optional value add.

Search results shall be limited to the artifacts the user has read access control. The user may be a person or service account.
The spec doesn't currently speak to access models currently, so I'm not sure how appropriate this is.

One of the complaints I've heard about implementing _catalog consistently was it didn't address returning information the user doesn't have access to. I'm not suggesting we spec a specific auth model. Rather, stating results must match the rights of the user. I'd go further to say how rights/roles are defined should not be specified, rather leave it fairly high level, enabling registry operators the freedom to implement models that align with their products or platforms.

defending decending

I'll fix, thanks

Has a GraphQL [1] endpoint been considered for queries?
[1] https://en.wikipedia.org/wiki/GraphQL

Suggest adding a label for vNext to avoid this being incorporated into the v1 scope.

after having thought about the extensions proposal #111 I'm wondering whether this might ought to be an extension that registerys could choose to implement?

+1 on extension

Just bumping a few links as searching/discovering and indexing continue to come up:

OCI Artifacts and a View of the Future
Artifact Services, the Case for a Generalized Package Manager

continues to come up

Where?

helm, bicep, wasm and others that are trying to utilize registries as their package management, so they don' have to build one.

An update on this, more formalized as as OCI dist-spec extension:
https://github.com/project-zot/zot/blob/main/pkg/extensions/search/search.md
discoverable via:
https://github.com/opencontainers/distribution-spec/tree/main/extensions
https://github.com/opencontainers/distribution-spec/blob/main/extensions/_oci.md

Any interest in reviving this conversation? Now that we are converging towards adding the ability to store image and non-image artifacts in OCI conformant registries.
Can try to send out a draft proposal.

https://docs.docker.com/engine/reference/commandline/search/
https://learn.microsoft.com/en-us/cli/azure/acr/repository?view=azure-cli-latest
https://docs.aws.amazon.com/cli/latest/reference/ecr/
https://console.cloud.google.com/gcr/images/google-containers/GLOBAL (???)


Support OpenSearch Dashboards 1.0.0

This PR adds support to OpenSearch Dashboards 1.0.0. It should probably be put against a new branch instead of 7.10.0.

LGTM @evamillan , thank you! I created a new branch named osd-1.0.0 as yours, could you change the endpoint of the PR?

Thanks @dlumbrer, I've changed it.


Add link to CACerts change details

Include PR body text that has a link to the Mozilla wiki containing links to release notes for the new version.

Merged ahead of build checks (not a build-related PR)


Unescaped left brace in regex is deprecated in perl 5.26

For biber 2.7 in perl 5.26 (on archlinux) emits the following:
% biber --version
Unescaped left brace in regex is deprecated here (and will be fatal in Perl 5.30), passed through in regex; marked by <-- HERE in m/}(\pM+\pL){ <-- HERE (?!\pL+\\)/ at /usr/share/perl5/vendor_perl/Biber/LaTeX/Recode.pm line 316.
biber version: 2.7

2.8 DEV is updated for this deprecation warning. biber will be moved to perl 5.26 when .1 is out.


primary bone dysplasia

Mondo term (ID Label)
primary bone dysplasia
Bug/Typo/Error description
The relevant grouping is by the skeletal dysplasia nosology, which includes Mendelian diseases
https://pubmed.ncbi.nlm.nih.gov/31633310/
If there are any non-genetic disorders, we should place them somewhere else. Having this class be non-Mendelian is not useful.
Your nano-attribution (ORCID)
If you don't have an ORCID, you can sign up for one here

action items:

[ ] review the 42 grouping classes in this spreadsheet with Mondo IDs - many will need a new Mondo ID. This will need to be done manually.
[ ] Add new Mondo terms via a ROBOT template
[ ] associate the OMIM ID with the grouping (reclassify existing terms)

@pnrobinson is abnormal mineralization disorder the same as MONDO:0001068 osteomalacia?
The children of this class in the nosology are:

Hypophosphatasia, perinatal lethal, infantile and juvenile forms
Hypophosphatasia, juvenile and adult forms
Hypophosphatemic rickets, X-linked
Hypophosphatemic rickets, autosomal dominant
Hypophosphatemic rickets, autosomal recessive, type 1 (ARHR1)
Hypophosphatemic rickets, autosomal recessive, type 2 (ARHR2)
Hypophosphatemic rickets with hypercalciuria, X-linked
Hypophosphatemic rickets with hypercalciuria, autosomal recessive (HHRH)
Vitamin D-dependent rickets, type 1A
Vitamin D-dependent rickets, type 1B
Vitamin D-dependent rickets, type 2A
Vitamin D-dependent rickets, type 2B
Familial hyperparathyroidism, types 1-4
Neonatal hyperparathyroidism, severe form
Neonatal hyperparathyroidism, transient form
Familial hypocalciuric hypercalcemia with transient neonatal hyperparathyroidism
Calcium pyrophosphate deposition disease (familial chondrocalcinosis) type 2
Cutaneous skeletal hypophosphatemia syndrome

@pnrobinson @cmungall do want to add these new grouping classes:

cleidocranial dysplasia and related disorders
osteopetrosis and related disorders

or just classify the children under MONDO:0007340	cleidocranial dysplasia and MONDO:0017198 osteopetrosis, respectively?

Note - some of the grouping classes in the nosology are in Orphanet and were obsoleted in Mondo. I will un-obsolete them.

@pnrobinson @cmungall do want to add these new grouping classes:

cleidocranial dysplasia and related disorders
osteopetrosis and related disorders

or just classify the children under MONDO:0007340 cleidocranial dysplasia and MONDO:0017198 osteopetrosis, respectively?

I added the classes as children of MONDO:0007340 cleidocranial dysplasia and MONDO:0017198 osteopetrosis


Сilium L7 LB loses traffic when rolling update

Is there an existing issue for this?

[X] I have searched the existing issues

Version
equal or higher than v1.16.0 and lower than v1.17.0
What happened?
When L7 balancing is enabled via the service.cilium.io/lb-l7=enabled annotation, traffic from cilium-envoy to the pod does not stop when it enters the terminating status. Because of this, it is not possible to use L7 balancing in graceful update scenarios.
How can we reproduce the issue?

Install cilium with support proxy load-balancing feature. kubeProxyReplacement: true

helm upgrade cilium ./cilium \
    --namespace kube-system \
    --reuse-values \
    --set loadBalancer.l7.backend=envoy

Deploy pods with http(or grpc) client and server(>= 2 pods), and service with annotation service.cilium.io/lb-l7=enabled
For server pods, enable pre stop hook:

           preStop:
              exec:
                command: ["/bin/sh","-c","/bin/sleep 10; kill -3 1"]

Perform rollout restart for server deployment
Send traffic to service while pods are in terminating state.
Capture incoming requests from cilium-envoy to pods that are already in the terminating state

Cilium Version
1.16.1
Kernel Version
Ubuntu 22.04.4 LTS  5.15.0-113
Kubernetes Version
1.29.5
Regression
No response
Sysdump
No response
Relevant log output
No response
Anything else?
No response
Cilium Users Document

[ ] Are you a user of Cilium? Please add yourself to the Users doc

Code of Conduct

[X] I agree to follow this project's Code of Conduct

We have the same issue using the envoy ingress, traffic is sent to terminating pods resulting in 503

It seems Cilim is using the serving attribute from the EndpointSlices to decide whenever to remove or not the endpoint from the Loadbalancer. That means that the pod will receive traffic also during termination if the readiness probe is successful.

It looks like you are right. I tried setting the Helm value enableK8sEndpointSlice to false and the traffic switching during rollout restart changed. Now envoy switches traffic almost immediately after containers of the previous revision go into terminating status

@miheych I cannot see that option available in helm https://artifacthub.io/packages/helm/cilium/cilium/1.16.2?modal=values. Where did you find it?

https://github.com/cilium/cilium/blob/v1.16/install/kubernetes/cilium/values.yaml#L712

It looks like the really working option to change to this option is to apply it through extraConfig:
extraConfig:
  enable-k8s-endpoint-slice: "false"

I started with it, but then I saw the enableK8sEndpointSlice option. However, judging by the code https://github.com/cilium/cilium/blob/v1.16.3/install/kubernetes/cilium/templates/cilium-configmap.yaml#L1083 it does not work if you set the value to false.

Alternately, it looks like this functionality might be controlled by the enableK8sTerminatingEndpoint functionality here, which defaults to true.

Thanks @miheych and @aetimmes that is exactly what is needed, I wonder why (and when) that was set a true by default


Doesn't work with Chrome as default browser

Just doesn't do anything at all. I'm left forever at "Complete login to continue" screen with a spinner. The only option is to quit.

I don't have Chrome, but I did just test it with Microsoft Edge, which is Chrome-like and it had no issue. Have you tried quitting Google Chrome and reopening it?


src/net.cpp: Fail to listen alert text break fix

When another instance of bitcoin is running:

Before:

After:

Concept ACK.

Why don't use https://github.com/bitcoin-core/gui/blob/19815b096c6a2b2e0bcb802e9e5842e67952993e/src/qt/rpcconsole.cpp#L497
which we already use in our code?

@RandyMcMillan
Could you move this PR into the main repo because it changes the code outside the src/qt/ directory?


Add example script showing use of Hyperloglog commands.

Add an example script that shows the use of the PFADD and PFCOUNT and optionally PFMERGE commands (see Redis Hyperloglog Commands.
Make sure to use a real world example of the need to approximately count something, for example cars passing by a traffic monitoring camera perhaps.  Check out our Hyperloglog video for examples.
Name your file hyperloglog.js.  Pay attention to the guidelines for adding an example to ensure that your contribution can be merged.
This is part of our participation in Hacktoberfest 2022. Learn how to complete this issue here: https://redis.io/community/hacktoberfest/
Need help or want to talk to us? Join us on Discord where we have a dedicated Hacktoberfest channel: https://discord.gg/ueQwKUh5Z3
If you're interested in taking this issue on, please mention @simonprickett and @SuzeShardlow in the comments and ask to be assigned.

Hi. I could work on this task.

@Mephalich thanks - we're aiming for a wide range of new contributors for Hacktoberfest, if this is still available in a week please check back but we'd like to ensure everyone gets a go at a first issue before assigning subsequent issues to folks who have already successfully completed one.

Hi @simonprickett , I would like to work on this.

This issue is still open and up for grabs :) please reply and tag me and @simonprickett if you'd like to work on it.

Hi @simonprickett @SuzeShardlow I would like to work on this

Hi @ade1705, I've assigned this one to you, look forward to seeing your PR in a couple of days.  Please check out our guidelines at the below link and have fun!
https://redis.io/community/hacktoberfest/

Hi @ade1705, how are you doing with this?  :)

@SuzeShardlow almost done. Apologies for the delay

@SuzeShardlow I have created a PR for it. Please have a look here

Thanks @ade1705! We will take a look in our daytime 😀

Closed by #2289.  Thanks @ade1705!


Understanding throughput measurement

Hello,
Sorry to bother you about this, I was trying to understand how P4DB measures throughput? I am looking at db/transaction.hpp, which as per my understanding, measures the time to go through (commit or abort) the num_txns number of transactions, and uses this to compute throughput?
I was wondering, why do we not retry aborted transactions, and measure the throughput with this included? (I.e. could we have a retry_queue, where an abort transaction is placed,on rollback, maybe with a retry delay, which we pull from before moving to the next fresh transaction?)
Thank you!

Oh ok, thank you for the reply!
I wasn’t understanding however, how this metric capture the contention avoidance benefit of p4db? (Ie my understanding was without p4db, transactions in high contention workloads will keep aborting each other due to lock contention, aborting many times before they succeed, and hurt throughout- whereas presumably p4db would prevent this? But if we don’t measure the effect of these transactions aborting multiple times (since in this metric we only measure the time of 1 abort?) in the version without p4db, would we observe less speed up (p4db vs without) than otherwise?
Sorry if I am misunderstanding something.
Thank you!

Yes, when P4DB is enabled more transaction can commit in a shorter amount of time. Due to fewer aborts and higher processing throughput.


Feature/port to php7

This pull request is the port to PHP 7+ and removes support for PHP 5.x

I'm currently using it for a project I'm working on. Cheers to a brilliant code. Thanks so much


Fix/issues

Fix some small issues

Fix the PlaybackStateCompat npe issue
Partial revert of the black screen fix, see https://github.com/androidx/media/commit/ed505df2cac9a243a29f4d1e170860fb3c66d4aa

@guoen21 bump to -dr10?


[zh] resync task files [2]

related https://github.com/kubernetes/website/issues/27674

@howieyuen Please trigger an amend to this PR. Looks like the gate is stuck.

@howieyuen Please trigger an amend to this PR. Looks like the gate is stuck.

ok


How to use reply and repost command

Hi! @LitoMore. nofan is really good work. Thanks for the job you have done.
Currently, nofan need an id to reply status
nofan reply|re <id> [text]   # Reply status
However, I didn't find any way to show the most recent status id.
If there is an easy way to reply to the recent status on the timeline, it would be more fun to use nofan.
Best regards.

However, I didn't find any way to show the most recent status id.

@browncrane You could use the --verbose flag for output more imformation.

Cool! Would you mind to put this information in the README.md
The --verbose is already in -h usage information.
It would be perfect if the description could be more explicit.

Cool! Would you mind to put this information in the README.md

Sure.


Unit of time in iso2dfd.cpp

Hi,
I think the unit of time in DirectProgramming/DPC++/StructuredGrids/iso2dfd_dpcpp/src/iso2dfd.cpp
is not correct. "ms" are displayed while it should be "s".

@Alberto-Villarreal I think you are the author of the sample.

@LaurentPlagne  Hi, thanks for pointing that out. I will proceed to fix.

Thank you, and thank you for this example which is very useful !
I wish that code sample walkthrough exist for the other examples. The iso3DFD example in particular.
BTW: do you know is some ND-array wrapper allowing for cleaner syntax (e.g. a(i,j) in place of a[i+nxj]) have been developed for DPCPP kernels ? I try to write a simple one but it seems that I need a deeper understanding of the internal design of buffer and accessors...

This was addressed in PR# 86


serverless_app_plugin transforms ApplicationId to us-east-1

Description: The serverless_app_plugin transforms SAR application id's to us-east-1 regardless of region / defaults. This makes it so transforming the template can only occur in us-east-1 if the SAR is published in that region.
Not 100% sure if this is a bug with sam build's usage of the lifecycle hooks or with the hook's resolution value always being us-east-1
Steps to reproduce the issue:
Reproduction repo: https://github.com/NathanYocum/sam-sar-bug - includes a SAR application to publish and a consumer of the Application
0. Using aws-sam-cli==0.53.0

Package an AWS::ServerlessRepo::Application into us-east-1 and us-east-2
Create a sam template that uses the application through a mapping:

Mappings:
  SAMBuildTest:
    us-east-1:
      ApplicationId: arn:aws:serverlessrepo:us-east-1:854484851566:applications/sam-build-test
      SemanticVersion: 0.0.2
    us-east-2:
      ApplicationId: arn:aws:serverlessrepo:us-east-2:854484851566:applications/sam-build-test
      SemanticVersion: 0.0.2
Resources:
  SAMBuildSAR:
    Type: AWS::Serverless::Application
    Properties:
      Location:
        ApplicationId: !FindInMap [ SAMBuildTest, !Ref AWS::Region, ApplicationId ]
        SemanticVersion: !FindInMap [ SAMBuildTest, !Ref AWS::Region, SemanticVersion ]

Run sam build --region us-east-2 on the template

Observed result:
[InvalidResourceException('SAMBuildSAR', 'Application with id arn:aws:serverlessrepo:us-east-1:854484851566:applications/sam-build-test could not be found.')] ('SAMBuildSAR', 'Application with id arn:aws:serverlessrepo:us-east-1:854484851566:applications/sam-build-test could not be found.')

When I dug into it I found https://github.com/awslabs/serverless-application-model/blob/develop/samtranslator/plugins/application/serverless_app_plugin.py#L90 was causing the application id to get replaced with us-east-1 instead of whatever AWS_DEFAULT_REGION, my ~/.aws/config, or my flag was set to.
Expected result:
Transform succeeds in all regions regardless of arg.

Closing this Issue - I'm pretty sure this is an aws-sam-cli issue and not a serverless-application-model issue

Moved over to https://github.com/awslabs/aws-sam-cli/issues/2065 - issue lies in the wrapper not the translation itself


Add save_model() Function, Tests, and Update Notebooks for Issue #20

This PR implements the save_model() function and its corresponding tests for Issue #20. Usage examples have been added to the notebooks, but these notebooks need updates as some parts are not working correctly.
Changes:

Added save_model() function for saving models in pickle format.
Added tests for save_model().
Updated notebooks with usage examples (requires review and fixes).

Note: The current implementation only supports saving models in pickle format. Further updates may be needed for other formats.

Hi @0xkerem,
Thanks for your contribution!
I've entered a couple of comments regarding your PR. Please take a look at them.


Remove LegacyESVersion.V_6_2_x constants

This PR removes LegacyESVersion.V_6_2_x constants including all
pre-release versions and bug fixes.
closes #1680

Formatting error - run spotlessApply?

le ugh.. never forget to run precommit locally. :)


Add YAML string tag to requiredEnv calls

If you call requiredEnv in a helmfile and the environment variable is all numbers (i.e.<PHONE_NUMBER>), then helm will interpret that as a number and change it to scientific notation<PHONE_NUMBER> -> 1.234531231e+09).  Since we cannot surround requiredEnv calls with quotes, we had to add a YAML tag to our helmfile to make it work:
tag: !!string {{ requiredEnv "GIT_TAG" }}

This should be noted in the docs.
We were using requiredEnv for short git tags, and some short git tags can be all numbers (some regular git tags can be all numbers too, it's just really unlikely).  This resulted in our docker tags being exponents,  which isn't allowed.

@george-miller Does this happen in every block of helmfile.yaml? I faced the same inside the set block which is quite obvious since Helm itself has troubles with that.

Hey! Would this be duplicated of #476?
I've left set just for backward-compatibility, but it seems to be making more troubles than benefits these days.

Okay so in some cases the use of set: is inevitable. I'll add some guidance in the full config syntax section in README to rescue.

Ahh I got it! So this does affect values.
releases:
- name: foo
  chart: stable/envoy
  values:
  - image:
      tag:<PHONE_NUMBER> #=> image: "envoyproxy/envoy-alpine:1.234531231e+09"

- name: bar
  chart: stable/envoy
  values:
  - image:
      tag: !!string 123453123 #=> image: "envoyproxy/envoy-alpine:1234531231"

NG
releases:
- name: {{ .Environment.Values.foo }}
  chart: stable/envoy
  values:
  - image:
      tag: {{ .Environment.Values.tag }}

OK
- name: bar
  chart: stable/envoy
  values:
  - image:
      tag: !!string {{ .Environment.Values.tag }}
- name: baz
  chart: stable/envoy
  values:
  - image:
      tag: {{ .Environment.Values.tag | quote}}
- name: hoge
  chart: stable/envoy
  values:
  - image:
      tag: "{{ .Environment.Values.tag }}"

NG
releases:
- name: {{ .Environment.Values.foo }}
  chart: stable/envoy
  values:
  - image:
      tag: {{ .Environment.Values.tag }}

OK
- name: bar
  chart: stable/envoy
  values:
  - image:
      tag: !!string {{ .Environment.Values.tag }}
- name: baz
  chart: stable/envoy
  values:
  - image:
      tag: {{ .Environment.Values.tag | quote}}
- name: hoge
  chart: stable/envoy
  values:
  - image:
      tag: "{{ .Environment.Values.tag }}"

thanks @mumoshu !!  That's a good solution :great_success: :clap:

Glad it worked for you ☺


feat: add pull request templates

Description
Hi 👋🏻
This pull request closes #17 by creating pull requests templates.

Thanks for your PR! however, this isn't the correct format for a PR template you should have discussed first on the issues page before going ahead with this


Need a function to calculate snp id block

One of the main features of SNP is starting vm based on id block, which requires id-block and id-auth for guest owner, id-key-digest and author-key-digest for verifier.
The main program should add two addtional inputs: idkey and authorkey to take id private key and author private key files, and a new option output-format=idblock

Solved by #10.


Unable to authorize using two authorization schemes

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
We have a requirement to be able to authorize a request to our GraphQL/HC API using a bearer token or API key while also allowing anonymous calls for introspection. Up until a week or two ago we were able to accomplish this using the below set up in Program.cs. Our settings were based on a Stackoverflow answer on the topic (link below):
Link:
https://stackoverflow.com/questions/61157111/specifying-an-authentication-scheme-for-a-single-route-thats-handled-by-middlew
Code (Program.cs):
app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute("default", "{controller=User}/{action=Index}/{id?}");
        endpoints
            .MapGraphQL()
                .RequireAuthorization(new AuthorizeAttribute
                {
                    AuthenticationSchemes = "Bearer,ApiKey"
                })
                .AllowAnonymous()
                .WithOptions(new GraphQLServerOptions
                {
                    EnableGetRequests = false
                });
                endpoints.MapGraphQLVoyager("/voyager");
                endpoints.MapGraphQLGraphiQL("/graphiql");
});

This did not make much sense to me since I am globally requiring authorization then allowing anonymous but this worked for months so I left it. Now, the above set up allows me to authorize using a bearer token or api key but is also requiring authorization on introspection calls. We need introspection to allow anonymous calls to allow our Angular app to use it for code generation.
My first thought to fix is this was to remove the "RequireAuthorization" settings above and specify multiple authorization schemes within our individual Authorization attributes but I do not see a way to do this. Based on my research, the only way to specify multiple authorization schemes within GraphQL/HC is the above set up.
Steps to reproduce

Use the settings specified in the description of this bug.
Try to use the introspection call to generate schema
Get an unauthorized error instead of being able to use the introspection call anonymously.

Relevant log output
No response
Additional Context?
I have also tried to different endpoint configuration combinations (as suggested in current documentation) to require authorization on GraphQL https calls but not Banana Cake Pop endpoints without any success.
Our current work around is to comment out the "RequireAuthorization" settings. This allows us to still authorize using a bearer token on calls with the [Authorize] attribute and use introspection anonymously. This set up does not allow us to authorize using an api key.
I am by no means a GraphQL/HotChocolate expert so any help finding a solution would be greatly appreciated! Thanks.
Product
Hot Chocolate
Version
12.12.1

I had the same issue. I've created a policy of two authorization schemes and use it in global authorization:
app.MapGraphQL().RequireAuthorization("CustomPolicy");
I don't know why using attributes didn't work for me.

I have a similar requirement as @drewbj21, for Angular code generation but also for StrawberryShake schema updates (running dotnet graphql update locally without having to pass a token/API-key).
As far as I understand, this seems to be a limitation of the HotChocolate Authorization implementation. It doesn't call Authenticate on schemes in the policy, so only relies on the authenticate being called on the default-scheme by the ASP.NET Core UseAuthenticate() middleware.
Current workaround is to create a custom authentication scheme that combines both, creating your own ASP.NET Core middleware to authenticate all schemes, or doing the same in a HotChocolate HttpRequestInterceptor.
Sample code I got from @tobias-tengler in slack:
services.AddGraphQLServer()
    .AddHttpRequestInterceptor<AuthenticationHttpRequestInterceptor>();

public class AuthenticationHttpRequestInterceptor : DefaultHttpRequestInterceptor {
    public override async ValueTask OnCreateAsync(HttpContext context, IRequestExecutor requestExecutor, IQueryRequestBuilder requestBuilder,
        CancellationToken cancellationToken) {
        var schemeProvider = context.RequestServices.GetRequiredService<IAuthenticationSchemeProvider>();
        var schemes = (await schemeProvider.GetAllSchemesAsync()).ToArray();

        if (schemes.Length > 1) {
            foreach (var scheme in schemes) {
                var result = await context.AuthenticateAsync(scheme.Name);
                if (result.Succeeded) {
                    context.User = result.Principal;
                    break;
                }
            }
        }

        await base.OnCreateAsync(context, requestExecutor, requestBuilder, cancellationToken);
    }
}

I have a similar requirement as @drewbj21, for Angular code generation but also for StrawberryShake schema updates (running dotnet graphql update locally without having to pass a token/API-key).
As far as I understand, this seems to be a limitation of the HotChocolate Authorization implementation. It doesn't call Authenticate on schemes in the policy, so only relies on the authenticate being called on the default-scheme by the ASP.NET Core UseAuthenticate() middleware.
Current workaround is to create a custom authentication scheme that combines both, creating your own ASP.NET Core middleware to authenticate all schemes, or doing the same in a HotChocolate HttpRequestInterceptor.
Sample code I got from @tobias-tengler in slack:
services.AddGraphQLServer()
    .AddHttpRequestInterceptor<AuthenticationHttpRequestInterceptor>();

public class AuthenticationHttpRequestInterceptor : DefaultHttpRequestInterceptor {
    public override async ValueTask OnCreateAsync(HttpContext context, IRequestExecutor requestExecutor, IQueryRequestBuilder requestBuilder,
        CancellationToken cancellationToken) {
        var schemeProvider = context.RequestServices.GetRequiredService<IAuthenticationSchemeProvider>();
        var schemes = (await schemeProvider.GetAllSchemesAsync()).ToArray();

        if (schemes.Length > 1) {
            foreach (var scheme in schemes) {
                var result = await context.AuthenticateAsync(scheme.Name);
                if (result.Succeeded) {
                    context.User = result.Principal;
                    break;
                }
            }
        }

        await base.OnCreateAsync(context, requestExecutor, requestBuilder, cancellationToken);
    }
}


Remove /json from API URLs

What I did
Removed /json from API URLs.
I have left in the old URLs for backwards compatibility. They can be considered deprecated and removed at some point in the future.
This is the corresponding engine-api change, but there isn't a hard dependency on it because the URLs are backwards compatible.
Why I did it

They're all JSON anyway.
If we want to add different formats, we can use the Accept header.
Consistency with new /networks and /volumes endpoints.
This was mentioned in https://github.com/docker/docker/issues/5893.

Description for the changelog
Remove /json from all API URLs. For example, GET /containers/json is now just GET /containers.

A picture of a cute animal (not mandatory but encouraged)

:heart_eyes: sgtm!

Distracted by the cats but sounds good, who wants ugly API endpoint names?

Design LGTM :+1:

ok moving to code review then

@bfirsh the test case failures look real to me...

@justincormack Yes, they are real. Sorry about that.
Another thing that occurred to me this morning is that this will stop containers and images called json from working. (Client will call GET /containers/json which will hit the deprecated route.)
I can't think of any option other than to completely remove those routes, which makes this much less of a no-brainer. :(

@bfirsh we can remove them based on the API version that's being called

err, guess that will need them to be forwarded to the "real" endpoint, using "json" as the requested name (if current version of the API is called)

Yeah, we can remove them based on API version, but that makes it a much less smooth upgrade path. Are there any objections to that?

Hm, yes, thinking; we keep a 2 release deprecation policy usually, although for API it's versioned, so people can use the old API.

IIRC, routes are hit in order that they are registered, may want to test this.
If so, you should be able to register the json endpoints first.
I don't think it's a good idea to remove the endpoints for the newer API... maybe if you push it out 2 versions but even still, it's breaking for not much of a reason.

@cpuguy83 These two routes will coexist if we maintain future compatibility: /containers/{name:.*} and /containers/json. I don't see how this is going to work if we also want to allow containers called json. ;)
I would argue API versioning allows us to make iterative breaking changes like this to the API, but I also realise it is a breaking change for what is arguably little reason.
My counter-argument is this is the first thing you see in the API documentation and has always made me think "gross" when looking at it. It makes users perceive Docker as poor quality, and is a broken window that encourages more bad design.
Then again, I care particularly about API design, so perhaps it doesn't matter in the general scheme of things. ;)

I think this is not the most consistent approach, looking at the API again. The name json is ugly, I think it should be inspect, but I don't think the inspect output in the REST sense "is" the container, and there are a lot of issues with containers named create or json. I would add a new inspect API endpoint and deprecate json.

Removal of json will open possibility to switch gorilla/mux for lighter router :) Maybe not a big deal, but -4Mb of compiled regexps.

There are other changes, GET /images/search would no longer work, conflict with images named search, it should probably be GET /images?search=... but I think this needs more planning and should skip to 1.13 alas, I think it is really high risk right now.

I'm moving this back to design review while we discuss options

ping @bfirsh did you have time to look into options?

@thaJeztah Yes, and so far it's looking much more complicated than I anticipated. ;)
Maybe we should close this and I'll open a separate proposal?

Sounds good to me; perhaps just write up the new endpoints (old/new) and possible issues w.r.t. backward incompatibility.
Thanks!


Adds the QR version to the object returned by jsQR

Added the QR version to the object returned by the jsQR function.
I'm implementing a spec that limits the size of QR code, so learning the scanned QR version would be useful to know and report to the application.

Published as 1.4.0.


Revamp Harmony Bridge (Horizon) frontend

Description
The frontend for Harmony's bridge (https://bridge.harmony.one/erc20) works well, but there are significant flaws in its UI / UX which confuse new users and over complicate the process. This bounty is for a v2 version of the bridge frontend that is familiar to users of other bridge platforms and easier to maintain.
Context
This is the current UI:

My thoughts:

This bridge UI is nontraditional. See: https://bridge.terra.money/, https://bridge.avax.network/, etc. where dropdowns are used for source & destination network selection rather than the pairs being expressed as buttons. Dropdowns will enable the addition of new networks in the future
The right hand column makes very little intuitive sense. Rather than relying on paragraphs of text to explain why the user's configuration is incorrect, we should add form validation to restrict such errors from occurring. Guide the user rather than elaborating. Not to mention the text does not change as we switch from BSC to ETH
BEP20 and HRC20 tokens can be represented better. The user should be selecting their token, not their token type and then the token. There also is no validation preventing users from mismatching token+networks (https://github.com/harmony-one/ethhmy-bridge.frontend/issues/140)

A V2 version should be:

Intuitive to use
Minimize number of user interactions / freeform input, thus reducing potential errors and lost tokens
Handle errors and provide resolution steps for users instead of relying on FAQ page

I would like to draw inspiration from other bridges on other chains:

Adopting, a single column, top - bottom UI flow, in addition to using two dropdowns for thee source chain (BSC, ETH, or ONE) and the destination chain. Adding a comprehensive token selector + support for custom tokens, and adding a button allowing the user to select the MAX number of a token (a feature lacking in the current version).

This is just what I sketched together in ~5 min, so some details may be missing, but the general idea is there. It's very similar to the terra bridge above, but that's just the core components. I want to add detailed error handling and resolution (auto prompt metamask to switch networks if required rather than showing error msg), etc. that is within scope.
I would like to take this on - I have 2-3 years of experience working with React + Typescript, I've skimmed through the repo and this is within my scope. Thus, I propose the following grant / bounty (not sure what to call this) for me to begin work:
Acceptance Criteria

[ ] Submit high-fidelity mockups of proposed new frontend for review in this thread
[ ] Develop new V2 frontend components & UI that interfaces with the backend without backend changes
[ ] PR submit to relevant repo and work with Harmony team to review and merge
[ ] Add testing suite and relevant tests
[ ] Test bridge txns with private testnets
[ ] Documentation for new components, types, and for future eyes
[ ] Video walkthrough!

Anticipated timeline: 4 weeks (part time)
Reward
USD $15,000 equivalent of ONE token

@gupadhyaya , would like to sponsor this bounty?

Feel free to update the reward as you see fit / fair @LeoHChen @gupadhyaya

@zhongeric we are moving away from posting external bounties on Github. If you post this on the forum, it will be reviewed much quicker. https://talk.harmony.one/c/funding-proposals/bounties/45

@givp sounds good, just posted here: https://talk.harmony.one/t/bounty-harmony-horizon-bridge-frontend-revamp/10249. Thanks!


Remove unidiomatic returns

Since Rust returns the last expression of a function implicitly, it is unidiomatic to use return in such cases (see more in this part of the book). This PR clears these out. You may note that the one in line 14 is fine, since it's used for an early return.

Thank you 👍


Request: Multi-page TIF Support

Does the ImageProcessor suport reading and writing multipage TIF files? If not, can this feature be added to the library? If present, I have not been successful in finding a reference to it in either issues or the documentation. Please advise!
Great Library!
Thank you
Ben

ImageProcessor can only do what System.Drawing does, which does seem to support multi-page TIFFs. Selecting different pages can be done using image.SelectActiveFrame(FrameDimension.Page, pageIndex), but saving seems to require some more work: https://stackoverflow.com/questions/398388/convert-bitmaps-to-one-multipage-tiff-image-in-net-2-0.
As far as I know and can see from the source, ImageProcessor doesn't support this out of the box (using the fluent syntax). However, this library is in maintenance mode, so if it doesn't, it also won't get added as new feature. You can always access and manipulate the System.Drawing.Image or write your own processor or image format, so that still gives you some options.

The V2 architecture wouldn't support multipage Tiff but the V3 architecture could.
V3 is being delivered slowly though as focus is very much elsewhere


use docker compose,it can not work ,org.elasticsearch.index.IndexNotFoundException: no such index

https://github.com/apache/skywalking/blob/ce0513307aba846e4568b6fc5e949cd9426ca10a/docker/docker-compose.yml#L20

What do you mean? SkyWalking create index automatically.

but when I execute the docker compose ,I can not see the data reported.when I see the log,it still log error

I am not sure what the case. Could you show the log?


LightCurve.plot should have prettier defaults

That's what I get with the current arguments:

Look like a main improvement would be scaling the y- limits.
Also suppressing the <matplotlib ... aba8> text by default would help.


Permission denied error on pod start

Hey all! I'm getting some errors in a new installation of this chart on k8s 1.18 in GKE using 1.5.1 of this operator.
$ kc logs jaeger-jaeger-rack1-sts-0 -c cassandra
Starting Management API
/docker-entrypoint.sh: line 68: /opt/mcac-agent/config/metric-collector.yaml: Permission denied

I believe this is similar to #355 which was closed with no solution listed. I'm wondering if there is any update to this situation, and possibly a solution available. Happy to test things if necessary, thanks in advance!

hi @timcosta - could you post your CassandraDatacenter yaml, please?

apiVersion: cassandra.datastax.com/v1beta1
kind: CassandraDatacenter
metadata:
  name: jaeger
spec:
  clusterName: jaeger
  serverType: cassandra
  serverVersion: 3.11.7
  managementApiAuth:
    insecure: {}
  size: 3
  racks:
  - name: rack1
  - name: rack2
  - name: rack3
  podTemplateSpec:
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: node_pool
                    operator: In
                    values:
                      - "observability-cassandra"
      containers: []
      tolerations:
      - key: "taint_for_obs_cass"
        operator: "Exists"
        effect: "NoExecute"
  resources:
    # we are using n2-standard-2 with taints so request most of resources
    requests:
      cpu: 1500m
      memory: 4Gi
  storageConfig:
    cassandraDataVolumeClaimSpec:
      storageClassName: cassandra
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 100Gi
  config:
    cassandra-yaml:
      num_tokens: 8
      authenticator: org.apache.cassandra.auth.PasswordAuthenticator
      authorizer: org.apache.cassandra.auth.CassandraAuthorizer
      role_manager: org.apache.cassandra.auth.CassandraRoleManager
    jvm-options:
      initial_heap_size: 3G
      max_heap_size: 3G
      additional-jvm-opts:
      - -Dcassandra.system_distributed_replication_dc_names=jaeger
      - -Dcassandra.system_distributed_replication_per_dc=3

Here it is. It's basically the one from https://github.com/datastax/cass-operator/tree/master/docs/user with a couple tweaks. I've never run cass before, so I was trying to use sane defaults.

thanks - I will work to reproduce the problem!

Thank you!! If it helps at all, there were no concerning looking logs on the operator server, i installed it using terraform, the first run of the statefulsets failed due to no nodes matching the configured tolerations, and we're running istio in the cluster though i am not using autoinjection in this namespace. The data volume is a pd-ssd on GCP. I also tried running it originally with spec.dockerImageRunsAsCassandra = true.  Tore down the namespace, so i can try again from scratch with any configs you may find helpful for debugging.

For me, this issue is coming if i create the cluster with dockerImageRunsAsCassandra: true. Otherwise it is working fine.   The cassandra pod is not starting up and it in "CrashLoopBackOff" status.


How it works DateFormatString?

How can i use DateFormatString? I tried dd-MM-yy hh:mm:ss but not worked.

Hi,
Try
DateFormatString="dd-MM-yy hh:mm:ss"

I tried on a demo project it's working but in my project not working :/

This problem is caused by the type you are not using from the FilterDataGrid.

it looks like this

I found bug because of DateTimeOffset.

And I fixed it in my fork you can look
https://github.com/Akilli-Satici/DataGridFilter/commit/f7fa38f5573332d0bdc6e11904eb6edf847ddeda

And I fixed it in my fork you can look
Akilli-Satici@f7fa38f

Indeed for the dates, I did not take into account the DateTimeOffset type, I will correct it.
Regards


fix logic to check whether gregorien.info page is valid

This PR fixes the logic in the concordances section on the chant detail page - whereas previously (and erroneously), the gregorien.info link only displayed if the CI json-con API returned a 200 status code, it now (correctly) checks whether the relevant gregorien.info link returns a 200.

Do you need to do this on every page load? An alternative would be to have a periodic task that stores the status in the db.


Example error ：[ImportError: sys.meta_path is None, Python is likely shutting down]

When I using MAVSDK to run an example, such as mission.py, the following error occurs. What is the problem? Who can help me! Thanks!
"""
Waiting for drone to connect...
-- Connected to drone!
Traceback (most recent call last):
File "C:\Users\33165\Desktop\fly vision\examples\mission_import.py", line 34, in
asyncio.run(run())
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\Users\33165\Desktop\fly vision\examples\mission_import.py", line 20, in run
out = await drone.mission_raw.import_qgroundcontrol_mission(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\site-packages\mavsdk\mission_raw.py", line 1093, in import_qgroundcontrol_mission
raise MissionRawError(result, "import_qgroundcontrol_mission()", qgc_plan_path)
mavsdk.mission_raw.MissionRawError: FAILED_TO_OPEN_QGC_PLAN: 'Failed To Open Qgc Plan'; origin: import_qgroundcontrol_mission(); params: ('example-mission.plan',)
Exception ignored in: <function System.del at 0x00000143E8074360>
Traceback (most recent call last):
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 88, in del
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 124, in _stop_mavsdk_server
ImportError: sys.meta_path is None, Python is likely shutting down
"""

Apparently something is going wrong with the QGC plan you are trying to import:

mavsdk.mission_raw.MissionRawError: FAILED_TO_OPEN_QGC_PLAN: 'Failed To Open Qgc Plan'; origin: import_qgroundcontrol_mission(); params: ('example-mission.plan',)

Could it be that it doesn't find the path? Try with an absolute path. It's tricky because I think the path is relative to where the mavsdk_server binary is running, and not the Python script.

Apparently something is going wrong with the QGC plan you are trying to import:

Thanks, it works. However, other example shows the same error, but it's not import any .plan files, for example:mission.py, shows:
"""
Waiting for drone to connect...
-- Connected to drone!
-- Uploading mission
Waiting for drone to have a global position estimate...
Mission progress: 0/3
-- Global position estimate OK
-- Arming
-- Starting mission
Traceback (most recent call last):
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 124, in
asyncio.run(run())
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 88, in run
await drone.mission.start_mission()
File "D:\python\anaconda3\Lib\site-packages\mavsdk\mission.py", line 1199, in start_mission
raise MissionError(result, "start_mission()")
mavsdk.mission.MissionError: DENIED: 'Denied'; origin: start_mission(); params: ()
Exception ignored in: <function System.del at 0x0000018B1C513B00>
Traceback (most recent call last):
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 88, in del
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 124, in _stop_mavsdk_server
ImportError: sys.meta_path is None, Python is likely shutting down
"""
Can you help me to slove this problem？Thankyou again.

Apparently something is going wrong with the QGC plan you are trying to import:

Thanks, it works. However, other example shows the same error, but it's not import any .plan files, for example:mission.py, shows:
"""
Waiting for drone to connect...
-- Connected to drone!
-- Uploading mission
Waiting for drone to have a global position estimate...
Mission progress: 0/3
-- Global position estimate OK
-- Arming
-- Starting mission
Traceback (most recent call last):
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 124, in
asyncio.run(run())
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 88, in run
await drone.mission.start_mission()
File "D:\python\anaconda3\Lib\site-packages\mavsdk\mission.py", line 1199, in start_mission
raise MissionError(result, "start_mission()")
mavsdk.mission.MissionError: DENIED: 'Denied'; origin: start_mission(); params: ()
Exception ignored in: <function System.del at 0x0000018B1C513B00>
Traceback (most recent call last):
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 88, in del
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 124, in _stop_mavsdk_server
ImportError: sys.meta_path is None, Python is likely shutting down
"""
Can you help me to slove this problem？Thankyou again.

Could it be that it doesn't find the path? Try with an absolute path. It's tricky because I think the path is relative to where the mavsdk_server binary is running, and not the Python script.

Thanks, it works. However, other example shows the same error, but it's not import any .plan files, for example:mission.py, shows:
"""
Waiting for drone to connect...
-- Connected to drone!
-- Uploading mission
Waiting for drone to have a global position estimate...
Mission progress: 0/3
-- Global position estimate OK
-- Arming
-- Starting mission
Traceback (most recent call last):
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 124, in
asyncio.run(run())
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\python\anaconda3\Lib\asyncio\base_events.py", line 653, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "C:\Users\33165\Desktop\fly vision\examples\mission.py", line 88, in run
await drone.mission.start_mission()
File "D:\python\anaconda3\Lib\site-packages\mavsdk\mission.py", line 1199, in start_mission
raise MissionError(result, "start_mission()")
mavsdk.mission.MissionError: DENIED: 'Denied'; origin: start_mission(); params: ()
Exception ignored in: <function System.del at 0x0000018B1C513B00>
Traceback (most recent call last):
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 88, in del
File "D:\python\anaconda3\Lib\site-packages\mavsdk\system.py", line 124, in _stop_mavsdk_server
ImportError: sys.meta_path is None, Python is likely shutting down
"""
Can you help me to slove this problem？Thankyou again.

Apparently something is going wrong with the QGC plan you are trying to import:

mavsdk.mission_raw.MissionRawError: FAILED_TO_OPEN_QGC_PLAN: 'Failed To Open Qgc Plan'; origin: import_qgroundcontrol_mission(); params: ('example-mission.plan',)

Thanks, I'm try with an absolute path,it works.

Could it be that it doesn't find the path? Try with an absolute path. It's tricky because I think the path is relative to where the mavsdk_server binary is running, and not the Python script.

Thanks, lt works.


Adding Shopify pages results in undefined URL and 404

Hello Community,
I've hit a brick wall. After adding one page to Shopify (through the Online Store->Pages interface), I've noticed that the links fed back to the template are coming as undefined/about-us which results in 404 not found | This page could not be found. when viewing the page.
I thought that this might have been localised to my dev machine, so upon trying to deploy to Vercel I got failed build with the following output
Error occurred prerendering page "/en-GB/about-us". Read more: https://err.sh/next.js/prerender-error
Error: Page with slug 'en-GB/about-us' not found
I was able to fix this error by essentially dropping the page altogether, but I don't believe that should be the case? Any guidance would be greatly appreciated. My locale settings are adjusted to match shop settings (en-GB).
I've kept everything as it was and didn't modify parts of the code responsible for page retrieval.
Cheers.

I was able to fix it. For some reason, the config doesn't return any locale.
For now, I've modified the get-all-pages.ts where the ${locale} was replaced with my shop locale.


Using correct version of pyuavcan from libuavcan_dsdlc

libuavcan_dsdlc shall use source version of pyuavcan when available. Otherwise, wrong version of pyuavcan may be used for code generation, which may produce incompatible code.
Possible fix is to replace appending to sys.path with prepending here.
@bendyer

Reproduced the original issue I had with current master and confirmed fix:
• Cleaned repo;
• Made a change to pyuavcan which would yield incorrect data type signatures;
• Ran mkdir build && cd build && cmake .. && make && sudo make install;
• Verified type signatures were incorrect;
• Reverted pyuavcan change;
• Ran rm -rf build/* && cd build && cmake .. && make;
• Verified type signatures were still incorrect;
• Applied change from PR #20;
• Ran rm -rf build/* && cd build && cmake .. && make;
• Verified type signatures were correct.


fix: remove useless output field in form struct

Because as far as i can see, well... it's useless :)

Thanks @nervo, I will merge this for now since we aren't using it but I think we'll have to reintroduce it back if we use this output for accessible mode, etc...


*: use host + port, the same as tidb and pd.

@ngaut @c4pt0r  @qiuyesuifeng  @iamxy @BusyJay

LGTM


Update privacypolicy.md

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


Handle if LND process exits

Description
Zap takes no action if LND crashes.
Expected Behavior
Zap should take one of these actions when LND crashes:

restart LND (newest versions of LND can continue to sync the channel graph if the wallet is locked)
alert the user (I believe there is an alert, but I believe it disappears after only a few seconds. the alert should persist until it is dismissed)
send the user back to the wallet selection/login screen

Actual Behavior
LND crashes.  The app is now totally broken, but there is no indication that LND has crashed.
Steps to Reproduce
Leave Zap open and wait for LND to spontaneously crash, or kill it.
Your Environment

Zap version: v0.4.0 58188fb184621d23bd25f912da62360c1b33a1f5 (running self-packaged build)
Operating System: Ubuntu Linux

Closed via https://github.com/LN-Zap/zap-desktop/pull/1849


npm listed as a dependency

Why is npm listed as a dependency? Is there any reason for this? Can it be removed?
This dependency causes problem for me as npm 5.x has a transitive dependency on http-proxy-agent 2.0.0 which has a security vulnerability.

No, there's no good reason for this.
I see your point.
Consider it removed

Great! Thank you.


remixicon.com down?

RemixIcon.com seems to be down :(
The requested URL '/' was not found on this server.

I also get this error too

Yep me too (2 hrs in after first comment)

Thankyfully it's in the wayback machine:
https://web.archive.org/web/20220908040303/http://www.remixicon.com/

UPDATE: Its online again 👍

Thank you guys. Thanks for reminding.
I've checked our sever, and I found the provider changed their pricing plan. Maybe there was a glitch along with that. Thankfully, it's OK now.


Advanced CLI Installation Guides refresh

This PR adds significant functionality to the design options we can now use in Docusaurus.
New Components Added:

Card support
Column & Columns support

Additional Formatting Options:

Prism block code highlighting
Block code formatting now supports Bash

Updated Guides:

Advanced CLI (Mainnet)

Ubuntu
Windows
macOS

Advanced CLI (Taurus Testnet)

Ubuntu
Windows
macOS

Thank you very much for your suggestion @vexr, truly appreciate it! I'm a bit skeptical about the added maintenance complexity and challenges it could (and will) bring to resolving compilation issues when it hits CrowdIn, so at this point, it, unfortunately, doesn't overweight the improved readiness and styling of the sections. Hence, I'm closing this PR.


Fix focused behavior

A recent change in liquid-fire(?) caused the parent element of overlay scrims not to show when an overlay is focused. This PR restores the current behavior.
I also made the element selection more specific by targeting .overlay-scrims with the animation (as opposed to just divs)
@ef4 If you merge this one, you'll get the "Update to Ember 3.4" for free :)

Thanks, published in 1.0.4


Update tests because of clor update - Fix bucaran/fly#122

I also added Travis caching and fixed david-dm link in the README. ;)
This will make Travis testing waaaay faster.

Not super versed in Travis mechanics, but does this make Travis will ignore package.json / dependency changes?

No it won't, npm install will still be ran, but it won't need to download already fetched dependencies. But if you update package.json deps, and there is a newer dep version available, it will download it normally.

Awesome, good to know. Thanks

This still produces a faulty Fly.js due to Babel runtime issues. Run ./bin/index after passing npm run build to see error.
I already have a PR waiting that fixes this, so no need to worry @bucaran @marvinroger :smile:
I'll rebase & open the PR once this has been merged. :+1:

How did you fix it?

Extremely helfulp @marvinroger! I'd like to merge this, but I'll wait on @lukeed status report regarding:

I already have a PR waiting that fixes this...

@bucaran merge this first. I'll rebase from it :grinning:

:+1: Great!


[Mutator] Cw V2 0 Skinpack Umod

This is more a skinpack than anything else - perhaps it should be under Skins if it isn't already or a link from Skins to this package?
Looks like the author is  K_St_theJunior

URL: https://unrealarchive.org/mutators/unreal-tournament/C/cw-v2-0-skinpack-umod_993265ab.html
Hash: 993265abc4aeac2127c1faab3ffe75803a0b3d40
Current name: Cw V2 0 Skinpack Umod

I've edited the author, the rest should be done by someone else.


sql: remove explicit index IDs in foreign key descriptors

PR: https://github.com/cockroachdb/cockroach/pull/43332
From release notes:

Indexes that reference, or are referenced by, a foreign key constraint can now be dropped if there is another suitable index for the constraint. [#43332][#43332] {% comment %}doc{% endcomment %}

FK compatibility https://airtable.com/tblD3oZPLJgGhCmch/viwNg2fK3NU3DUY6Z/recLQknmolY1ZtTaX


[Proposal] Use stable tag for most recent stable release of ocis

At the moment we have versioned tags on dockerhub for ocis (e.g. owncloud/ocis:1.20) and also a latest tag which is pointing to master. I suggest adding an additional tag stable which is pointing to the most recent release of ocis (e.g. owncloud/ocis:1.20 would be the same as owncloud/ocis:latest while 1.20 is the stable release).
Advantage of this would be that one would not need to update the composefiles used for deployment and it would be less confusing (at least for me) what the purpose of the lastest tag is.
/cc @mmattel

Thanks for informing us, I am going to make an internal fixme note in the container documentation with a link to this issue to track progress.

How would the stable behave for a major version change? You already can use owncloud/ocis:1 for what you have in mind. Plus it doesn't break for a major release ;-)

@wkloucek  stable == latest stable we support and yes you are right, major releases would most likely result in breakage in that case.


Refine windows-vhd-content-test.ps1 to use the same policy to filter k8s versions in configure-windows-vhd.ps1

In configure-windows-vhd.ps1

            # Windows containerD supports Windows containerD, starting from Kubernetes 1.20
            if ($containerRuntime -eq 'containerd' -And $dir -eq "c:\akse-cache\win-k8s\") {
                $k8sMajorVersion = $fileName.split(".",3)[0]
                $k8sMinorVersion = $fileName.split(".",3)[1]
                if ($k8sMinorVersion -lt "20" -And $k8sMajorVersion -eq "v1") {
                    Write-Log "Skip to download $url for containerD is supported from Kubernets 1.20"
                    continue
                }
            }

But in windows-vhd-content-test.ps1, it uses two list to validate cached k8s versions. This is not convenient. I think that we can use the same policy as that in configure-windows-vhd.ps1

The implementation in windows-vhd-content-test.ps1 is expected. because we want to simplify the code in configure-windows-vhd.ps1, but we want to make sure all the k8s versions are clearly listed in each case. I mentioned this in my pr to have such a difference.

I saw the comments but it is not convenient so I think that we can do some improvement. Otherwise, we may forget to update some parts and waste the time.

It's useless for the test code we use the same code for business and tests.  I don't think it's inconvenient, k8s version win zip must  be100% sure what they are going to add, also they need only one addition/deletion in test for each k8s version


Clean Code

removed System.debug call
Critical Changes
Changes
Issues Closed

Didn't create this as a feature branch, it is a single line being removed that should not have been there in the first place.


Sticker text as curves?

Would you consider offering the SVG version of the stickers with the text rendered as curves? The stickers use a variety of fonts, and they're not always available to users. For example, some stickers use the Myriad Pro font, which most people can only access with a Creative Cloud or TypeKit subscription.

For example:

This should now be fixed I think


Mozill not getting minor version

i am using Mozilla 35.0.1 , By using this API i am getting 35.0 only

Incomplete report. I can't help you if you don't provide details.


[UNDERTOW-2188] fix deny-uncovered methods to work properly in corner…

… case
Issue: https://issues.redhat.com/browse/UNDERTOW-2188

on hold with this one.

maybe now.

@baranowb is this PR ready for merging now?

@fl4via yep, first commit was wrong.


Allowed memory size

Info:

Docker version ($ docker --version): Docker version 17.12.0-ce, build c97c6d6
Laradock commit ($ git rev-parse HEAD): 0077de28a13feea669f9d46ef21c20477fa6dbb0
System info (Mac, PC, Linux): Linux
System info disto/version: Elementary OS

Issue:
i'm trying to run my application and i'm getting memory size problem even when i upgraded it.

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3795 bytes) in ...

Memory limit on php56.ini: memory_limit = 1024M

I was referring to the memory of the docker vm, not the memory allocated in your php.ini.  It doesn't look like your script is trying to allocate more memory than available. Would it be possible to output the result of phpinfo?

I wonder if https://docs.docker.com/config/containers/resource_constraints/ helps. I'm running a small server (1 GB RAM) and am having problems with MySQL crashing, and I want to see what I can do to prevent crashes without upgrading my server to more memory. I'm hoping memory-swap will help, but I'm not yet sure where to configure that.

@rafa-acioly Did you find a solution?

+1


Correct url for [Contribute] in README

Url correction in readme.md file

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


feat: add DeNA/unity-meta-check/unity-meta-check

DeNA/unity-meta-check/unity-meta-check: Checker for missing/dangling meta files. The result print to stdout.
Check List

[x] Read CONTRIBUTING.md

[x] Read OSS Contribution Guide

[x] All commits are signed

This repository enables Require signed commits, so all commits must be signed

[x] Avoid force push
[x] Do only one thing in one Pull Request

How to confirm if this package works well
Reviewers aren't necessarily familiar with this package, so please describe how to confirm if this package works well.
Please confirm if this package works well yourself as much as possible.
Command and output
root@26f606a4d9ed:/workspace# unity-meta-check --help
usage: unity-meta-check [<options>] [<path>]

Check missing or dangling .meta files.

  <path>
        root directory of your Unity project or UPM package to check (default "$(git rev-parse --show-toplevel)")

OPTIONS
  -debug
        set log level to DEBUG (default INFO)
  -ignore-dangling
        ignore dangling .meta
  -ignore-file string
        path to .meta-check-ignore
  -ignore-submodules
        ignore git submodules and nesting repositories (this is RECOMMENDED but not enabled by default because it can cause to miss problems in submodules or nesting repositories)
  -no-ignore-case
        treat case of file paths
  -silent
        set log level to WARN (default INFO)
  -unity-project
        check as Unity project
  -unity-project-sub-dir
        check as sub directory of Unity project
  -upm-package
        check as UPM package (same meaning of -unity-project-sub-dir)
  -version
        print version

EXAMPLE USAGES
  $ cd path/to/UnityProject
  $ unity-meta-check -silent

  $ cd path/to/any/dir
  $ unity-meta-check -silent -upm-package path/to/MyUPMPackage
  $ unity-meta-check -silent -unity-project-sub-dir path/to/UnityProject/Assets/Sub/Dir

EXAMPLE USAGES WITH OTHER TOOLS
  $ unity-meta-check <options> | unity-meta-check-junit path/to/junit.xml
  $ unity-meta-check <options> | unity-meta-check-github-pr-comment <options>
  $ unity-meta-check <options> | unity-meta-check-junit path/to/junit.xml | unity-meta-check-github-pr-comment <options>

If files such as configuration file are needed, please share them.
Reference

https://github.com/DeNA/unity-meta-check/blob/master/README.md

v4.180.0 is out 🎉
https://github.com/aquaproj/aqua-registry/releases/tag/v4.180.0


"Show changes since your last review" button should still show even if a review was requested from me again

Description
A PR "Files Changed" tab's "Filter by commit" button's "Show changes since your last review" sub button should still show even if a review was requested from me again after my review. Not that the previous review was not dismissed.
My guess is that the logic only looks at the top of the review stack of a person, and when a request is on top it just skips the part where it works out the difference.
Gitea Version
1.21.11
Can you reproduce the bug on the Gitea demo site?
No, because I need 2 account for that, but I'll do that when I have time.
Log Gist
No response
Screenshots
Before a new review was requested of me

After a new review was requested of me

Git Version
No response
Operating System
Ubuntu 22.04
How are you running Gitea?
self-hosted docker image
Database
None

Your guess is correct. A review request is a special type of review.
https://github.com/go-gitea/gitea/blob/3269b04d61ffe6a7ce462cd05ee150e4491124e8/models/issues/review.go#L101-L102
A review request is always created without a commit ID.
https://github.com/go-gitea/gitea/blob/3269b04d61ffe6a7ce462cd05ee150e4491124e8/models/issues/review.go#L692-L698
Therefore, when the latest review is a review request, the commit ID will be empty, which will cause the "Show changes since your last review" button to not show.


[2.5] Added etcd snapshot timeout parameter

Issue https://github.com/rancher/rancher/issues/30663
Requires https://github.com/rancher/rke/pull/2419

Merged https://github.com/rancher/rke/pull/2419, updated PR with proper go mod and generate

Merged https://github.com/rancher/rke/pull/2419, updated PR with proper go mod and generate


revise Orientations class

pyfar.Orientations is derived form scipy.spatial.transform.Rotation
our aim was to also add the view/up notation to the class (and plots, e.g. show)
there are a few points which we can discuss to enhance the class behaviour

execute examples in the doc, e.g. show plots in Sphinx
we implemented from_view_up as construcor and as_view_up_right to get the view up and right, we should stick to one convention (do we need right?)
we allow empty Orientations, where scipy does not. so calling pf.Oreintations() will not create an empty orientation, it will use quat=np.array([0., 0., 0., 1.]), this might lead to confusing behaviour, since the user could expect an empty class.

for this reason we overwrote the init function, which we should not, if we really need. I can cause problems with new scipy versions.

our class forces normalize=True, where scipy does not, is there a reason for that?
__setitem__ is not working

from pyfar import Orientations
views = [[1, 0, 0], [2, 0, 0]]
ups = [[0, 1, 0], [0, -2, 0]]
orientations = Orientations.from_view_up(views, ups)
positions = [[0, 0.5, 0], [0, -0.5, 0]]
orientations.show(positions)
from scipy.spatial.transform import Rotation
rot_x45 = Rotation.from_euler('x', 45, degrees=True)
orientations[1] = orientations[1] * rot_x45
orientations.show(positions)

one of the arrows in the second plot should be rotated.

also based on https://github.com/pyfar/pyfar/pull/638

edit:

setitem as it might lead to funky behavior.


All objects coming off verb are incorrectly treated as target actors

Any object that's not an nsubj relation coming off a verb gets automatically assigned to the target actor. This precludes any nouns from matching the direct objects in the verb dictionary entries (e.g. "flags" in "burned flags")). (code) This assigns objects that are part of the event to the target and will mean that no verb patterns containing objects will be coded.

In the current UDpetrarch coder, the functionality for petrarch2 pattern matching is implemented as follows:
STEP1: The input of pattern matching function is source-action-target triplets extracted from dependency parsed tree. For example, given sentence "Arnor presented credentials to Ithilen's president on Wednesday", two triplets are generated "Arnor-presented-credentials", "Arnor-presented to Ithilen's president". I think this part should be improved. Right now the triplets extraction is basically based on the grammar rules,  that is "subject" is the source, "object" and other noun modifiers are the target. But from the view of events, in the example sentence above, the source should be "Arnor",  the target should be "Ithilen's president" and the action should be "presented credentials".
STEP2：In the pattern matching step, the first triplet "Arnor-presented-credentials" matches a pattern " - * CREDENTIALS", but the second triplet "Arnor-presented to Ithilen's president" only matches the verb "present",
STEP3：In the postprocessing step, the code of each verb is checked and is replaced with the code of the pattern if any pattern is matched. So the code of verb "present" in the second triplet is replaced with the code of the pattern found in the first triplet.
If STEP1 extracts events correctly, then there is no need to have STEP3.

I'm still confused about how it can end up coding verb phrases that depend on direct objects in the verb (e.g. "launch airstrikes" vs "launch rescue mission"). Where is the code that implements Step 2, where it checks the dobj against the verb dictionaries to generate the appropriate code?

The function for Step 2 is here. The problem now is dobj are considered as targets of the events. But in many cases (e.g. "launch airstrikes" vs "launch rescue mission"), dobj should be considered as part of the action.

I completely agree that dobjs should be part of the action. But I'm worried that they're not being treated as such. Consider the following (fictional) sentence:
Georgian demonstrators launched missiles at the Georgian government.

I just ran that through Petrarch2 and UniversalPetarch. Petrarch2 gives me the expected output:
GEOOPP	GEOGOV	194

When I run it through UniversalPetrarch, I get two events, neither of which is correct (and I suspect the dobj issue is partly to blame):
GEOOPP   ---  194
GEOOPP	GEOGOV	---

If the dobjs aren't ever getting treated as part of the action, then all of the verb rules we've made won't ever be coded, and this would seem to explain why the Petr2-style verb dictionaries haven't been working.

My earlier solution is to add STEP3 to handle the dobj issue. But recently I think it is better to improve STEP1, and in the current coder, I comment out the STEP3. Now we have annotated more English GSRs, I will start to fix this dobj issue.

How we are handling this issue us the subject of discussion for tomorrow
morning's meeting.
PTB
On Tue, May 15, 2018 at 2:15 PM, JingL1014<EMAIL_ADDRESS>wrote:

My earlier solution is to add STEP3 to handle the dobj issue. But recently
I think it is better to improve STEP1, and in the current coder, I comment
out the STEP3. Now we have annotated more English GSRs, I will start to fix
this dobj issue.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/openeventdata/UniversalPetrarch/issues/27#issuecomment-389281647,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJrP1sCMPXDgl-KQmXrJUwAtg3y9Gvakks5tyylrgaJpZM4T-P2h
.

--
Patrick T. Brandt
Professor
Political Science
School of Economic, Political and Policy Sciences
University of Texas at Dallas
Personal site: http://www.utdallas.edu/~pbrandt
MSBVAR site: http://yule.utdallas.edu

I just re-ran the most recent code and I'm still getting mistakes, though of a different sort. (cross-posted to Github)
"Georgian demonstrators received ministers from the Georgian government."
Petr2 (correct):
Event: 20080804 GEOOPP GEOGOV 043 AFP0808020625_4 AFP
Event: 20080804 GEOGOV GEOOPP 042 AFP0808020625_4 AFP

Old UDP (incorrect)
Event: 20080804 GEOOPP GEOGOV --- AFP0808020625_4 AFP
Event: 20080804 GEOOPP ---GOV 043 AFP0808020625_4 AFP

New UDP (differently incorrect)
Event: 20080804 GEOOPP ---GOV 046 AFP0808020625_4 AFP

It's missing the GEO in front of government
It's now returning the wrong code ("Engage in negotiation") instead of the correct make a visit/host a visit

On another sentence it now works correctly:
"Georgian demonstrators received weapons from the Georgian government."
Now returns (correctly):
Event: 20080804	GEOOPP	GEOGOV	072	AFP082352_1	AFP

A third sentence is still incorrect:
"Georgian demonstrators received assurances from the Georgian government."
returns
Event: 20080804	GEOOPP	---	046	AFP082352_2	AFP

which is missing the target actor (GEOGOV).
I'm attaching the dependency parsed XML so you can test future code against it. 2_UDP_comp.txt

i think you are using  the PETR-1 dictionary instead of PETR-2 dictionary. You can modify the config here to choose to code using PETR-1 dictionary or PETR-2 dictionary.
If i use PETR-1 dictionary, i got above results.
The pattern matched is
- $ * + [046]
If I use PETR-2 dictionary, i got the following results:
sentence 1:
Event: 20080804	GEOOPP	---GOV	043	AFP0808020625_4	AFP
sentence 2:
Event: 20080804	GEOOPP	GEOGOV	072	AFP082352_1	AFP
sentence 3:
Event: 20080804	GEOOPP	GEOGOV		AFP082352_2	AFP
the pattern matched is
- * ASSURANCE                                         [:030]        # RECEIVE
but since the sentence is not passive voice, it doesn't return 030.
I have a question about codes with format [code1:code2]. My understanding is if the sentence is active voice, then return code1, and if the sentence is passive voice, then return code2. Am i correct?

Thanks for the clarification. I didn't realize the default was Petrarch1 dictionaries now. Do you have an idea for how to fix the missing actor in sentence 1 and missing event code in sentence 3?
The colons don't indicate passive/active, they reflect two events being generated: the first sentence should generate an event that's GEOOPP hosting visitors from GEOGOV (043), and also an event that's GEOGOV sending visitors to GEOOPP (042).

After fixing the [code1:code2] construction, now the outputs of  those three sentences are:
Sentence 1: Georgian demonstrators received ministers from the Georgian government
Event: 20080804 GEOOPP ---GOV 043 AFP0808020625_4 AFP
Event: 20080804 ---GOV GEOOPP 042 AFP0808020625_4 AFP
The reason for "--GOV" is the coder find "minister" as target actor. In the dependency parsed tree, the noun phrase "ministers" and prepositional phrase "from the Georgian government" are attached to verb "received". The coder checks the object first for target actors (in this case, "ministers"). If no target actors are found, it checks the rest noun modifiers (in this case, "from the Georgian government")
Sentence 2:
Event: 20080804 GEOOPP GEOGOV 072 AFP082352_1 AFP
Sentence 3:
Event: 20080804 GEOGOV GEOOPP 030 AFP082352_2 AFP

I think the problem I'm describing still persists. Consider the sentence
Georgian demonstrators received warplanes from the Georgian government.

When I run that through, I get ---MIL	GEOOPP	072, when it should have GEOGOV as the actor that's sending the military aid. Many, many verb entries have actors or agents in them, so UDP needs to be able to distinguish between parts of an event and the target actor.
If I make it active, (The Georgian government sent warplanes to the Georgian opposition.) I get a blank event: 	---	---

I re-run the sentence The Georgian government sent warplanes to the Georgian opposition. I think the reason for the blank event is that UDpipe generates a wrong dependency parsed tree. Could you give me the parsed tree you used to generate the blank event? If i use the correct parsed tree. The event I got is [[u'GEOGOV'], [u'---MIL'], u'166']. (pattern - * &AIRCRAFT appears twice in the dictionary, one with code [166], the other with code [072]. )
For the ---MIL, ---GOV issue, now when the coder find actors, it checks core arguments (the full subject, object noun phrases including adjective and prepositional modifiers) of the verb first and then other nominal dependents. Many sentences in the validation sets have actors in those core arguments. But the sentences above have actors in the nominal dependents. I can first try to check if the core argument is part of the matched pattern, then it will not be considered as actors. I think it is difficult to just use one general rule to handle all cases. Maybe we can use machine learning method to learn the preference of actor location for different verbs.
The following are two sentences, one has target actor in core argument, and the other has target actor in nominal dependents.
Arnor on Thursday signed an 800 million ducat trade protocol for 1990 with Dagolath, its biggest trading partner, officials said.
	PUNCT	.	_	4	punct	_	_

For the sentence "Georgian demonstrators received ministers from the Georgian government."
From the parsed tree, the full object noun phrase is "ministers". 	PUNCT	.	_	3	punct	_	_

I add a heuristic to make sure the extracted actors should not be part of the matched pattern. Now the output of sentence 1 is
Event: 20080804 GEOOPP GEOGOV 043 AFP0808020625_4 AFP
Event: 20080804 GEOGOV GEOOPP 042 AFP0808020625_4 AFP

Can you add these sentences and their correct outputs to the test cases? Once that's done and the tests pass, we can close this issue.

records are added in the test cases.


image workflows blog copy and images

Release Playbook

[ ] Rebase against master
[ ] Code review
[ ] Merge into master
[ ] Verify changes at http://site-staging.convox.com
[ ] Promote release on site-production in the convox/production Rack

 Ship Blog Content: Image Workflows


add ComplexExperimentalMethod

This PR will implement https://github.com/antleaf/nims-mdr-development/issues/602 .

@anusharanganathan Thank you!


undefined method `match' for nil:NilClass

devise_token_auth (0.1.31) app/controllers/devise_token_auth/omniauth_callbacks_controller.rb:161:in `generate_url'
      # ensure that hash-bang is present BEFORE querystring for angularjs
      unless url.match(/#/)
        auth_url += '#'
      end

how can i fix this error?

What is the value of url?

this value is nil

So the question is, why is omniauth_params['auth_origin_url'] nil? Are you using ng-token-auth or jToker, or are you using a custom client?

neither, I'm doing requests from the browser's adress bar

I have the same issue,
If I uncomment it gets added to the db etc.
But no redirect.
And no current_user.
I'm using ng-token-auth

I got same issue here, I using omniauth facebook
I fixed this issue for a moment by modify the omniauth_callback_controller.rb
please take a look to below code
actually the @auth_origin_url variable is not used by any code
      @auth_origin_url = generate_url(omniauth_params['auth_origin_url'], {
        token:     @token,
        client_id: @client_id,
        uid:       @resource.uid,
        expiry:    @expiry
      })
      # set crazy password for new oauth users. this is only used to prevent
      # access via email sign-in.
      unless @resource.id
        p = SecureRandom.urlsafe_base64(nil, false)
        @resource.password = p
        @resource.password_confirmation = p
      end

      @resource.tokens[@client_id] = {
        token: BCrypt::Password.create(@token),
        expiry: @expiry
      }

      # sync user info with provider, update/generate auth token
      assign_provider_attrs(@resource, auth_hash)

      # assign any additional (whitelisted) attributes
      extra_params = whitelisted_params
      @resource.assign_attributes(extra_params) if extra_params

      # don't send confirmation email!!!
      @resource.skip_confirmation!

      sign_in(:user, @resource, store: false, bypass: false)

      @resource.save!

      # render user info to javascript postMessage communication window
      respond_to do |format|
        format.html { render :layout => "omniauth_response", :template => "devise_token_auth/omniauth_success" }
      end

so I thought it's safe to change generate_url method like this:
BEFORE
    def generate_url(url, params = {})
      auth_url = url

      # ensure that hash-bang is present BEFORE querystring for angularjs
      unless url.match(/#/)
        auth_url += '#'
      end

      # add query AFTER hash-bang
      auth_url += "?#{params.to_query}"

      return auth_url
    end

AFTER
    def generate_url(url, params = {})
      url = '' if url.nil?
      auth_url = url

      # ensure that hash-bang is present BEFORE querystring for angularjs
      unless url.match(/#/)
        auth_url += '#'
      end

      # add query AFTER hash-bang
      auth_url += "?#{params.to_query}"

      return auth_url
    end

I only tested this on facebook provider, I don't know with the others

I just found this (https://github.com/shaggyone/devise_token_auth/commit/18a81ef35cb93cc9edd2508355fbb6481b6b0177), but why this patch not merged?

I don't understand the use-case where auth_origin_url or redirect_url would ever be nil ... Can someone please provide a use-case? Right now, this looks like it's stemming from some sort of mis-configuration.


Crash if hosts file doesn't exist on Windows 10

My hosts file had gotten messy (unrelated to hostsupdater) so I figured the simplest remedy was to delete it, assuming hostsupdater would recreate it if needed.
But instead %WINDIR%\System32\drivers\etc\hosts not existing lead to hostsupdater crashing, in turn causing vagrant to fail during provisioning. I've attached a textfile with the error output. As a sidenote, I was running vagrant from an elevated command prompt.
hostsupdater error output.txt
Please let me know if I can contribute in any way to solving this or narrowing down the cause.

@Spartelfant good catch on this bug. I will make a check for a hosts file before attempting a write.


ParentedTree creeps into "head" attribute

When I read this document from CoNLL-2012 into cort, a TypeError is thrown. The ParentedTree enter "head" in file mention_property_computer.py around line 241 (head = [head_tree[0]]). The value can be traced to head_finder but I stopped there because there are a lot of alternative rules.
>>> from cort.core.corpora import Corpus
>>> with open('output/debug.conll') as f:
...     Corpus.from_file('test', f)
...


Adding CORS header on preflight request

Added a middleware to handle options request

Hi!
I have tried to verify this, but i can't trigger the new code. Could you the post the curl example?
This is what i tried
curl -I -X OPTIONS -H "Origin: http://localhost:3000" "http://localhost:43071/api/v2/tables/TAB004/data?outputFormat=json-stat2"

HTTP/1.1 405 Method Not Allowed
Date: Fri, 08 Mar 2024 15:31:06 GMT
Server: Kestrel
Access-Control-Allow-Origin: *
Allow: GET, POST
Transfer-Encoding: chunked

I'm also starting to wonder if we where testing it the wrong way. Looking at the browser requests it should be more like this
curl -I -X OPTIONS -H "Origin: http://localhost:3000" -H 'Access-Control-Request-Method: POST' -H "Access-Control-Allow-Headers: Content-Type" "http://localhost:43071/api/v2/tables/TAB004/data?outputFormat=json-stat2"

HTTP/1.1 204 No Content
Date: Fri, 08 Mar 2024 15:38:23 GMT
Server: Kestrel
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET,POST
Access-Control-Allow-Origin: *

This already works on the main branch, but I had to add these two lines
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET,POST

To remove this error I saw in Chrome when testing agains our deployed version

Access to fetch at 'https://pxapi2.staging-bip-app.ssb.no/api/v2/tables/TAB004/data?outputFormat=json-stat2' from origin 'http://localhost:3000' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.

@runejo good catch! The middleware worked fine in my test project but it did not i the PxWebApi 2.0 project instead it throw an exception. I have written a fix for it and now the curl query above should work.

Yes now it works 👍
curl -I -X OPTIONS -H "Origin: http://localhost:3000" "https://localhost:5001/api/v2/tables/TAB004/data?outputFormat=json-stat2"

HTTP/1.1 200 OK
Date: Mon, 11 Mar 2024 15:16:30 GMT
Server: Kestrel
Access-Control-Allow-Origin: *
Allow: GET, POST, OPTIONS
Transfer-Encoding: chunked


The window isn't opening

https://github.com/kuba2k2/spicetify-beat-saber/assets/69472325/8dadddb2-2a19-4109-93d9-ebd643e6505d
this window where im supposed to log in isn't opening, it's just an arrow. also some errors.

The errors do not come from Beat Saber extension, they are from other extensions - don't worry about them.
The window isn't opening because of the theme you're using - it is probably incompatible and causes the window to disappear/not render properly. Please try with the default theme.

Owner

So I removed the theme and it's still the same thing

Well, try removing other extensions that might interfere with it by adding stuff to the playbar. (or disable all of them temporarily and check if it works on a "clean" spotify)

I removed all of the extensions that added something to the playbar but it's still the same. I'm going to check if this is going to be the same on my laptop if I install same extensions.

I copied everything from my pc to my laptop and it works on the laptop but not on my pc for some reason. I guess i'll just use it there.

If you know a bit of HTML, you can try debugging that in the devtools. Otherwise it's gotta be a software issue with your Spotify client, since it works on your laptop.

Same issue here. Will follow up with more info as I find out

Re-installed spoitfy, and upgraded spicetify to latest, and everything works fine. Nvm


TM should not need to overwrite monitoring snapshot data with CRConfig snapshot data

This Improvement request (usability, performance, tech debt, etc.) affects these Traffic Control components:

Traffic Monitor

Current behavior:

https://github.com/apache/trafficcontrol/blob/9516de39fffa3ddda0346720ef98edabc8efa07e/traffic_monitor/towrap/towrap.go#L679-L756
TM first requests the monitoring config snapshot then requests the CRConfig snapshot in order to create its internal TrafficMonitorConfigMap representation. It currently overwrites the Traffic Monitor data in the monitoring snapshot with data from the CRConfig snapshot, most likely due to the monitoring config missing Traffic Monitor IPv4 and IPv6 addresses. It will also fall back to using CRConfig delivery service data if not present in the monitoring snapshot (although this should no longer be an issue as of https://github.com/apache/trafficcontrol/pull/5184). Since the monitoring config and CRConfig are now snapshotted together, this is entirely unnecessary.
New behavior:

Traffic Ops should populate the ip and ip6 fields in the trafficMonitors array of the monitoring config snapshot instead of leaving them blank:

      {
        "profile": "MY_TM_PROFILE",
        "status": "ONLINE",
        "port": 80,
        "cachegroup": "foo",
        "hostname": "tm1",
        "fqdn": "example.com",
        "ip": "",
        "ip6": ""
      },

Traffic Ops should exclude delivery service data from the monitoring config snapshot that does not belong to the given CDN being snapshotted. It currently includes all delivery services across all CDNs.
TM should be updated to only overwrite the Traffic Monitor data in its monitoring config snapshot (in the code linked above) with CRConfig data if the monitoring snapshot is still missing IPv4 and IPv6 data. Otherwise, it should never have to overwrite the monitoring config data. Eventually, we can remove that fallback code entirely, once it's assumed that TM config snapshots will always have IP data going forward.

@rawlinp I can take this one if no one from the distriibuted TM group is planning on workng on it.

Go for it! This is totally unrelated to distributed TM anyways -- just a little bit of tech debt I noticed along the way.