Improve message when activation is queried before action is run

I noticed the following behavior: I invoke an action (async) and immediately I ask for the logs. I get something like this:
./wsk action invoke slack-channels-info
ok: invoked slack-channels-info with id cb5930907976445aaebe4a5fd661d304
ioana@Ioanas-MBP:bin [ioana-slackbot]$ ./wsk activation logs cb5930907976445aaebe4a5fd661d304
error: The requested resource does not exist. (code 353)

The message is misleading, there is no error, it's just that the action was not run yet (it's pending). We should fix this message.

The implementation does not create an activation until the activation is completed. So a GET for "valid" activation id which is received as part of a non-blocking invoke will return 404 (Not Found) until the activation completes. The controller will need to create an activation id with a status marked pending.

I've also run into issues due to this design. There's a couple of use-cases where I'd like to be able to retrieve an activation record before it has finished....

Monitoring activation from non-blocking invoke. Currently you'd have to poll the record waiting for the 404 to disappear but it's a bit error prone in case the activation id was wrong.

Checking for in-flight activations. I have an action connected to a timer that varies in execution duration. If the action takes too long to execute, the next trigger will fire before it has finished. If I could check for in-flight activations, the next action could exit instead of running.

Yes, I am also facing the same issue. This is really confusing.


Date sort dd/mm/yyyy not working

Suggest an correction to sort dates in format used in Brazil.
else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2,4})/,"$2/$1/$3")}

great


Refacto Inference snippets tests (autogeneration + 1 snippet == 1 file)

This PR is a refacto of the inference snippet tests. The main goal is to reduce friction when updating the inference snippets logic. In particular:

each generated snippet is saved into a single test file with the correct file extension => should greatly improve reviews. Currently snippets are saved as hardcoded strings in JS files, making them hard to review (no syntax highlighting, weird indentation).
snippets can be updated with a script, reducing the need to manually edit tests (which is quite time-consuming)

This PR is quite large given the auto-generated files. The main parts to review are:

generate-snippets-fixtures.ts => the script that generates the snippets and test them.
package.json, pnpm lock files, etc. => I'm not entirely sure of what I did there (especially to make tasks-gen depend on tasks)
python.spec.ts / js.specs.ts and curl.specs.ts have been removed
everything in packages/tasks-gen/snippets-fixtures/ => the test cases. I've only committed the ones that where previously tested.

Thanks to this PR, I fixed a typo in the JS snippets (a missing comma) and curl snippets (consistency between " and ').
cc @mishig25 with whom I quickly discussed this

thanks for the review :)


feat: Adding support for Ollama local api embeddings

Please describe the purpose of this pull request.
See title.
How to test
poetry run pytest -s tests/test_endpoints.py
Have you tested this PR?
Yes, but it does not work yet
Related issues or PRs
Addresses #1369
Is your PR over 500 lines of code?
No.
Additional context
Current issue: Unable to connect to http://localhost:11434 when running indicated test.
This issue occured both when using LLamaIndex's interface for creating an Ollama EmbeddingModel object, and when creating a vanilla EmbeddingModel object without LLamaIndex. Do I need to have something running at http://localhost:11434 first?
IMPORTANT
The test fails when run on a file I created called ollama.json. It is containted (locally) within configs/embedding_model_configs/, however this change did not get commited (and therefore pushed) for some reason.
Here is the contents of ollama.json
{
    "embedding_endpoint_type": "ollama",
    "embedding_endpoint": "http://localhost:11434",
    "embedding_model": "mixedbread-ai/mxbai-embed-large-v1",
    "embedding_dim": 512,
    "embedding_chunk_size": 200
}

@cpacker Should I continue debugging this PR or work on another one?

moved to and merged with #1433


Question: Is the F# tokenizer slow?

While trying to improve start times from FAKE and profiling the application, I noticed that the tokenizer alone takes 300ms for the 1200 lines script file.
Repro steps
measure and tokenize https://github.com/fsharp/FAKE/blob/master/build.fsx
Question:
Is there potential in improving that time or was this already optimized by someone? Does somebody already know some "quick gains" in that area?

Is the F# tokenizer slow?

It is more resource intensive than most tokenizers because of the indentation-aware lexing rules. But it is fast enough to use in the IDE.

Is there potential in improving that time

Yes... there always is

was this already optimized by someone?

Yes...

Does somebody already know some "quick gains" in that area?

Not really....  You just have to profile, improve, profile, improve.

Closing but by all means please work on the performance of this.


WAL2

Hello,
has there been any experiments done with better-sqlite3 running in wal2 mode yet? I'm curious if wal2 could possibly improve performance and reliability for concurrent writing from multiple processes.

I've also wanted to experiment with WAL2, since it eliminates the possibility of blocking forever during checkpoint starvation, but unfortunately the SQLite team has made it clear that there are no plans to merge the WAL2 branch into the main trunk branch, and WAL2 remains experimental. For that reason, I have no plans to support it.

Understandable. Its still possible to build better-sqlite3 with the wal2 branch using the preinstall script right? i might give it a try.


Proposal: ItemTemplate/ItemTemplateSelector support for NavigationViewItem

Proposal:  ItemTemplate support for NavigationViewItem's MenuItems for visually better hierarchical navigation.
Summary
With the recent changes to NavigationViewItem for enabling hierarchical navigation, it now supports additional menu items as MenuItems or MenuItemsSource. However, it lacks ItemTemplate /ItemTemplateSelector support. In general, anything that allows hosting additional content should be allowed to be templated.
For context, this is the PR that merged to enable multi-level navigation.
https://github.com/microsoft/microsoft-ui-xaml/pull/2004
Rationale

Enabling developers to create more visually customized multi-level navigation system.
For general purpose, developers are familiar with ItemsSource-ItemTemplate-ItemTemplateSelector concept. They will likely to want more control over the visual when they see something with name ItemsSource.

Scope

Capability
Priority

Developers need to be able to customize each multi-level NavigationViewItem separately.
Must

Important Notes
This problem can be fixed by creating an advanced control to be used as root ItemTemplate. However, this will require a lot of effort from developers and as naming convention goes, developers expect ItemTemplate and ItemTemplateSelector.

I am not sure if it makes sense to have to have a ItemTemplate property on NavigationViewItem if there already is one on the NavigationVIew. Is there a use case where you only want to specify a specific style/template for some of your NavigationViewItems but not all? Note that there also is a MenuItemTemplateSelecto property on NavigationView..

I didn't know it was inheriting template/selector from the parent :) This makes no sense then.


CurrentPlayItemTimeRemaining and local time

The CurrentPlayItemTimeRemaining intent will return the time at which the currently playing item will end relative to local time on the server.  This works out if the server is located in the same time zone as the Kodi installation, but for cloud deployments of the skill this probably is often not the case.
I couldn't find a way to get at the time zone information of the Echo device from which the request originated, so my initial thought was to make an environment variable in which the user could specify his/her time zone.
Raising this as an issue to see if anyone has any better ideas, though.
It might also be the case that Heroku/Lambda/etc have a built-in mechanism for setting the time zone?

The request from Alexa contains locale and timestamp.
adding
  appLocale = event['request']['locale']
  appTimestamp = event['request']['timestamp']

  print("lambda_handler: appLocale=" + appLocale)
  print("lambda_handler: appTimestamp=" + appTimestamp)

gave me this
lambda_handler: appLocale=en-GB
lambda_handler: appTimestamp=2016-11-16T09:33:45Z

The timestamp looked interesting, I am not sure where that comes from. I am in UK and the Skill/Lambda are in eu-west-1 (Ireland) so they would be on my timezone already. As German Skills also have to use Ireland and US have to use us-east-1 then this probably wouldn't be a reliable way to get the local timezone.
But it might be worth testing at your end.
Or even just a simple env var for a user to set their GMT offset would do the trick.
Though for me I don't really find myself needing to know how much longer something is on for. If i start a movie I would have an idea how long it is and make the "do I have time?" decision at that point. Thinking more about it, if I did need to know (perhaps it is getting too late, or I have something I needed to do) then "there are 40 minutes left" would be enough information for me to look at the clock and decide.
But everyone's need is different and I guess because you are implementing the function that it is something you would use :)

I don't use it either, but I got enough requests for it in skin.metropolis that I figured I'd nip it in the bud here.
I'll have to see if the appTimestamp is the user's local time or the server's.

Would someone mind testing https://github.com/jingai/kodi-alexa/tree/localtime ?
Please test with SKILL_TZ as empty, undefined, and whatever time zones you'd like to test.
Note that I have not had a chance to try the code at all, so if it just out-right fails, let me know.


Allow Commands to register systems

Objective

Allow registering of systems from Commands with Commands::register_system

Solution

Add the Command RegisterSystem for Commands use.
Creation of SystemId based on lazy insertion of the System
Changed the privacy of the fields in SystemId so Commands can return the SystemId

Changelog
Added

Added function World::register_boxed_system_with_entity so the world can insert the system into an already created entity
Added command RegisterSystem
Added function Commands::register_system

Changed

Changed the privacy of the fields in SystemId so the crate can use it freely

Migration Guide

Before, if you wanted to register a system with Commands, you would need to do:

commands.add(|world: &mut World| {
    let id = world.register_system(your_system);
    // You would need to insert the SystemId inside an entity or similar
})

Now, you can:

let id = commands.register_system(your_system);
// Do what you want with the Id

While at it, is it a good Idea to add tests for testing Commands::run_system and Commands::register_system in system_registry.rs?

I will never say no to more tests :D I think in this case we should probably split them out into a seperate PR if we can: I suspect they'll be much faster to merge that way.

Regarding the matter about verifying if the System was already registred before, found out something
fn do_something() {}
fn do_another_something() {}

// If we cast the function into an pointer, we can found out the actual address of the function, which can be very useful

assert_ne!(do_something as usize, do_another_something as usize);

// That same thing is possible with closure, with a little problem though

let closure_one  = || {};
let closure_two = || {};

assert_ne!(closure_one as fn() as usize, closure_two as fn() as usize);

Maybe that can be useful

It would be cool if you added Commands::register_one_shot_system, but maybe that's better as an App method.

@doonv Adding as an app method would be cool, but the problem is where to store the SystemId after the creation, the only way that I can think is through an resource or by inserting it as an component into an entity so we can retrieve after
Or is there something that I'm not aware of?

Made an doc-test, but not sure if that is the best doc-test In this situation. Must I assert that the function is indeed an System or maybe assert that the run will make the Counter value change?

Made an doc-test, but not sure if that is the best doc-test In this situation. Must I assert that the function is indeed an System or maybe assert that the run will make the Counter value change?

I think the latter is more robust.

I think that latter is more robust
You mean that's too much for a doc Test or more robust like "better"?

Better :) Less likely to pass while the functionality is broken.

Done it, now the doc verify both: If the function is a system and if the run affect the counter

I'll solve conflicts today :)


[Feature]: Person Chip in Chips Card

Is your feature request related to a problem?
I think it will be nice to have person chip for Chips card.
Describe the solution you'd like
It should look and have the same options exactly like the person card
Describe alternatives you've considered
No response
Additional context
No response

You can use the entity chip using the entity-picture option 🙂
The only additional thing for the person card is the badge (home, away) but badge is not appropriate for chips.

but badge is not appropriate for chips.

Just curious, why are badges not appropriate for chips? I think it would be awesome to have the home/away badge on a person chip.

Badge is a small and a compact element in the UI. The quantity of information must be small : a icon and a text. Adding a badge would overload the interface.
Card a more complete element if you need more information.

Not to dredge this up after over a year, but to me a badge instead of text is exactly small and meaningful information. To convey the same information with an entity picture and chip is significantly smaller than the same picture and badge (and also easier to see at a glance).


Add watchOS deployment target to the podspec

Hi There,
Thanks very much for Emoji-Swift, would be great to use it on watchOS in addition to iOS, have added the watchos deployment target to the podspec, and can confirm everything building here with Xcode 11.
Cheers

Codecov Report

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

@@           Coverage Diff           @@
##           master      #21   +/-   ##
=======================================
  Coverage   99.97%   99.97%
=======================================
  Files           2        2
  Lines       14435    14435
=======================================
  Hits        14432    14432
  Misses          3        3

Continue to review full report at Codecov.

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


istioctl v1.15 execute invalid

Bug Description
We corrent use isito v1.12.1 and eks v1.21.13.
We want to upgrade istio version to 1.15, but we have promble to execute istioctl.
"Error: create Kubernetes client: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
Version
$isitoctl version
exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"
1.15.0

$istioctl install --set profile=demo -y
Error: create Kubernetes client: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"

$kubectl version --short
Client Version: v1.22.13            //I changed '1.19 1.21 1.22' ,is same
Server Version: v1.21.13-eks-84b4fe6

Additional Information
No response
Affected product area

[ ] Docs
[X] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Extensions and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure
[X] Upgrade
[ ] Multi Cluster
[ ] Virtual Machine
[ ] Control Plane Revisions

Is this the right place to submit this?

[X] This is not a security vulnerability
[X] This is not a question about how to use Istio

Solution: update the AWS CLI and run aws eks update-kubeconfig --name $CLUSTER_NAME --region $AWS_REGION


controlling UI appearance by VTherm attributes

How can I switch the cooling indication off/on (pls. see attached image) by setting an attribute?
I know, I can configure this in the 'Versatile Thermostat UI Card' itself, but this is static.
I want to display the cooling icon during summertime and the heating icon during wintertime, which is controlled by an external event/script/automation.
additional attributes in the VTherm entity would be nice. e.g.
....
tpi_coef_int: 0.6
show_cooling_icon: on/off #######  additional attribute for controling appearance of UI card dynamically
show_heating_icon: on/off #######  additional attribute for controling appearance of UI card dynamically
....

Hello, this is not possible and I will not implement this very specific need.


Linting

Building the admin-ui-picard module via mvn install spits out a slew of linting warnings. Maybe we should do something about that.

A big amount of warnings are pertaining to jsx-a11y/anchor-is-valid and jsx-a11y/anchor-has-content. This is because the new Admin UI thoroughly misuses <a> tags as easy-to-stiyle buttons. Fixing this properly will likely require some systematic planning and a lot of CSS rewriting. So much so that I think it's worth its own issue.


[Discussion] Camel K 2023 roadmap

As 2023 has started, I have collected some ideas on what we can do during this year based on what is left from 2022 roadmap and on the requirements that are emerging lately from the community. We will possibly end up having a Camel K 2 (meaning we can consider introducing breaking changes if the design requires to do so).
Items
Simplify release process

Remove Kamelets from Camel K release cycle cadence
Move Camel K runtime into Camel Quarkus
Keep working on CI automation via Github actions

We already started in 2022 to move in the direction to make a Camel K release simpler. Kamelets have become a core part of Camel, so, it does not make sense any longer to depends on Camel K. Camel K runtime has also become a very thin layer which may be beneficial to be in Camel Quarkus as a provider and let Camel K directly use it from there. In theory we could benefit from this decoupling having Camel K being able to run any runtime (more to follow on the "build" section).
We have done a lot of work on automation and now it's paying off with a certain level of stability in the build and release processes. I suggest to keep maintaining high the attention and automate any manual developer task.
Build

Remove dependency from Quarkus required tooling (Mandrel image)
Implement JIB and deprecate Spectrum, Kaniko, Buildah and S2I (only if JIB is good enough with Openshift)
Evaluate how to plug any external pipeline tool (ie, Tekton) for building
Enable GitOps

In general the idea is that we should have a more "enterprise" building system.
There are several improvements we should be doing in this area. The first one intersect directly with the release process and the fact that now, at build time, we require the same tooling needed at runtime. We should work to remove such a dependency and make the operator not to inherit from the build tooling (more details in #3831).
JIB (#1656) looks as a good alternative on what we're doing now with different building systems. We're not able to maintain and keep every build strategy up to date, so, I advocate to deprecate/remove everything else and focus our effort around JIB.
We should also analyze how we can have external building tools being delegated with the build task (for instance a Tekton pipeline may take care of providing a build of a project).
About GitOps we should explore possibilities how to enable that and have it available in the operator workflow.
Support for Camel 4
Probably this is more affecting the runtime, and with the idea to decouple the runtime from the operator, then, this should be transparent. However it makes sense to keep an eye on it.
Multitenancy

Remove the single namespace limitation

The new multitenancy model development has still some aspect to polish. One of them is the ability to have more than one operator running in the same namespace. At that stage, I guess that we may even remove or deprecate the global operator feature.
Observability

Move from opentracing to opentelemetry
Provide SLO/SLI/SLA metrics

As we are focusing on "enterprise" features, probably we should have something more on the Observability aspect, such as providing Service Level whatever available in the exposed metrics.
CLI

Move CLI logic in Camel JBang
Enhance source code route introspection

A lot of work is already done in Camel JBang. We should join effort and move the logic of kamel cli in camel cli instead. One very important feature we should enhance is the possibility to do a deep code introspection. Right now we can discover simple components and capabilities and it would be a great help to the user experience to have it automatic.
Kustomize parity features with kamel install
As soon as we have parity between Kustomize and kamel install we may deprecate the latter.
Kamelets

Headers, Schema, Data types

We can provide more features on the Kamelets side in order to be able to use headers, automatic data formats, etc.
Strengthen Keda, KNative offering
Not sure what we should do, but KNative and Keda are an important complement to the serverless capability of Camel K. Probably we should check the latest developments of both projects and add any missing feature to Camel K. Plus, promoting with examples.
Technical marketing: “how to” blogs
Last year we've done a series of blogs that were well received by the community on crucial aspect of Camel K operations. I invite to keep this as part of our roadmap and maintain a certain cadence so that the community can discover features that otherwise may be kept hidden in the code.
Documentation: keep in line with latest development
Also this one, although adds nothing to the roadmap, is a reminder to the development team to update the documentation beside any change done to the code (in particular if we're introducing breaking changes).
Please, feel free to comment in order to add more topics or to give more arguments to the topic I've added above. Thanks in advance!

For the Kamelets releases we are already doing more or less like that.
What I'd like to explore too, is the ability to avoid using a tag from Camel Kamelets, but instead create some kind of container image, containing only the Kamelets to be used in Camel K.

For the Kamelets releases we are already doing more or less like that.
What I'd like to explore too, is the ability to avoid using a tag from Camel Kamelets, but instead create some kind of container image, containing only the Kamelets to be used in Camel K.

I was evaluating the possibility to use instead the kamelet.jar that is released (and contain the kamelets). However, I've later discovered that the original design was to include a flat (git) repository, reason why I moved on the usage of a tag. As an example, think on the kamel kamelet add-repo github:owner/repo[/path_to_kamelets_folder][@version] command.
I think it is wise to keep this in order to simplify the Kamelet development. In the contrary, we may need to create a maven project (or any other way to contain the Kamelets) and release them somewhere. In any case it's not a strong opinion, it would be nice to collect some users feedback here.

I'd second @oscerd idea to explore using container images as lot of other tools/projects are moving to support oci registries to store some kind of artefacts (help, fluxcd, crossplane, etc)
Related issues:

https://github.com/apache/camel-k/issues/2732

Undert the CLI refactoring, we can also consider including this task for Camel K 2.

https://github.com/apache/camel-k/issues/3175

I'd second @oscerd idea to explore using container images as lot of other tools/projects are moving to support oci registries to store some kind of artefacts (help, fluxcd, crossplane, etc)
Related issues:
* [use the OCI containers to distribute camel-k artifacts  #2732](https://github.com/apache/camel-k/issues/2732)

Of course we can support both but in general using OCI registries seems to be very useful

Okey. @oscerd @lburgazzoli Just to understand the possible proposal, are you thinking that Camel K bundles the Kamelets into a container image or should we expect that Kamelet release process do that and we reuse it in Camel K?

Adding a comment to provide some notes after some discussion I had privately with other commiters. Some interesting ideas would be to leverage the work we're willing to carry on with #3831 and allow Camel K operator to be able to manage any Camel based workload. This would open the possibility to have any other runtime (not only Camel Quarkus) to be managed by the operator.
An other feature we discussed is the ability to let the user build/deploy the Camel application (manually, via a pipeline tool) and allow the operator to intercept and manage certain operations (for instance, observability). This option probably goes in the direction of enabling GitOps.
As a side note, we'll keep this issue open for a couple of more weeks in order to let any community user to add any further feedback or idea. By the end of January we'll close it and we'll publish the roadmap as a blog post.

Good suggestions in this thread, and I suggest to moving all of this into Camel K 2.x, and keep 1.x as-is.
Here is some of my brain-dump
Let Camel K 2 be based on:

Camel v4
run->deploy via build pipelines as primary (gitops ... favour code in git not in CRD)
build using standard Quarkus / Spring Boot (via their maven package)
make application.properties|yaml first-class (and not modeline / complex confusing traits) - then you can use standard Q/SB way of configuring (also k8s specifics)
If Camel K needs to argument the build then have plugins/customizations to Q/SB build / application.properties /jbang script etc)
Maybe only allow Kamelet Binding in CRD (for small event based rules)
camel-jbang for local development
if you need to develop directly in k8s, then camel-jbang can possible be enhanced to do that
Let Camel K operator be able to manage also any kind of Camel deployments (also traditional CSB/CQE - for example via label selectors). Can be done later in 2.x.
Better unit testing (also needed in camel-jbang) (could maybe be yaks with jbang ?)
Cross-over from traditional CEQ/CSB to Camel-K would then be much smoother and similar UX, and vice-versa, eg you start with Camel K and then want to do a full standard maven based project, and move over to CSB/CQE

I personally don't think we need to throw away everything from v1. So I would mainly focus on improving/enhancing what we have, but not restarting from scratch or completely move to a different architecture.

Thanks @davsclaus for your latest feedback, it's a valid vision of future goals for sure. IMO we're not in the position to do a full redesign of the project (we may require a lot of development resource we don't have ATM), although, trying to resume your points, we should aim to make Camel K the deployment tool for Kubernetes Camel applications (whichever runtime the user want to choose). For this reason the main aim is to decompose as much as we can the building part, to make it more explicit and be able in a following iteration to hook with anything Camel related (being a generic Maven project, a git repo, etc...). For this reason, we should not be afraid of introducing some breaking change (therefore having a major Camel K 2.0). However, as pointed out by @oscerd we still have a valid design, but we definitely need to think ahead of time of what we eventually want to have, so that Camel K 2.0 could be a more flexible design to simplify future Camel K version developments. The build part is quite strategic and focusing on that together with decoupling from Camel runtime is going a big part of these changes.

Thanks all for the great feedback received during this latest week. I think we have a fair idea of the possibility in front of us for 2023. I will wrap up this in a blog post to announce the ideas discussed here so that we can provide a plan for future development.

@squakez I have just a few questions about we should aim to make Camel K the deployment tool for Kubernetes Camel applications. Camel application is just a common Java application with Camel libraries in it.
The mostly used Camel Runtimes: Quarkus and SpringBoot.

Quarkus has its own extension for deployment
SpringBoot usually used with jkube

Why do we need to develop a Camel specific deployment tool?
What value does it bring to developers?

I like the idea of extending Camel K a tool that handles all potential Camel runtimes around K8. At least for me it makes sense from the point of view of an integration developer. One command line to interact with the cluster in all Camel sense. Install, deploy, monitor,...
Not to mention it also makes sense to me as a way to easily connect other libraries and applications (obviously thinking on the editor Kaoto.io here).
JBang can be adapted to use K8, alright, but we already have Camel K that does it for many DSLs. Why should we cut down features we already have in Camel k? Enhancing JBang doesn't mean cutting down Camel K which already works. Maybe even the adaptation of JBang to interact with the cluster could be done via camel-k. That would make sense to me, reusing existing resources.

Why do we need to develop a Camel specific deployment tool?

I think we can flip the perspective here: camel k  is a k8s specific tool, and to manage entities on k8s something more similar to an operator than to a maven plugin is needed.

What value does it bring to developers?

In the light of the perspective flip, I think part of the value added is more obvious: a comprehensive k8s experience.

With camel-quarkus I have quite a comprehensive k8 experience. What I have with Camel-K that I can not have with camel-quarkus?

Faster build when you have a kit built before for the same application.
Serverless integration ootb.
Just to say a couple of things.
I don't quite get what we are discussing here. Camel k is important for the camel ecosystem and it has a lot to give and we have to improve it.

* Let Camel K operator be able to manage also any kind of Camel deployments (also traditional CSB/CQE - for example via label selectors). Can be done later in 2.x.

+1 for this. I think it can potentially help / improve Camel in other areas too.

Let Camel K operator be able to manage also any kind of Camel deployments (also traditional CSB/CQE - for example via label selectors). Can be done later in 2.x.

I like this idea, too. hawtio-online has been providing such feature on K8s/OpenShift, but it requires a Camel application to be Jolokia-enabled. I'm interested in how much functionality can be transferred from hawtio-online to the Camel K operator.

Let Camel K operator be able to manage also any kind of Camel deployments (also traditional CSB/CQE - for example via label selectors). Can be done later in 2.x.

I like this idea, too. hawtio-online has been providing such feature on K8s/OpenShift, but it requires a Camel application to be Jolokia-enabled. I'm interested in how much functionality can be transferred from hawtio-online to the Camel K operator.

I think the main advantage are:

discoverability (no need to scrape pods and container port, just look at integration CR)
the status reporting of an Integration can include information for tooling (management consoles, cli, etc) to access the management interface
tools (management consoles, cli, etc) can use the integration' status reporting to provide information about the status of the integration without having to deal with internals of camel (i.e. scraping pods health check probes) which greatly reduces grants required by 3th party applications and avoid doing the same thing on a number of tools.
camel-k operator can set-up the integration automatically to enable secure access to the management endpoint (SSL, AuthN, AuthZ, etc)
would make kubectl a first class citizen for camel k operations

Unrelated to camel-k, I think we can try to make the new camel-console the way to interact with camel leveraging i.e. spring boot actuators and future dedicated management support in quarkus to expose such functionality and get rid of JMX (at least as the protocol to interact with the running instances).


stage3 traning

Thanks for your excellent work, but I have a question-why is stage3 pretrained_path using ckpt_00.pth instand of ckpt_02.pth？Are they the same?

We choose to use ckpt_00.pth based on the loss curve and validation metrics. Perhaps ckpt_02.pth would overfit more to the training data, but it depends. You can try it, and maybe you will get a better result. Good luck~

We choose to use ckpt_00.pth based on the loss curve and validation metrics. Perhaps ckpt_02.pth would overfit more to the training data, but it depends. You can try it, and maybe you will get a better result. Good luck~

thanks for your reply! I have some problems when I was in stage3.
like this:

valueerror: could not convert string to float: b'3.0 8.0 1.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
Stage1 and Stage2 don't have any question, does that mean there is somthing wrong with the stage2_val400.json for the stage3 evaluation?Looking forward for your reply.

We choose to use ckpt_00.pth based on the loss curve and validation metrics. Perhaps ckpt_02.pth would overfit more to the training data, but it depends. You can try it, and maybe you will get a better result. Good luck~

It seems to be a problem with the evaluation, when I don't do a meteor evaluation, there is no problem, why? What is the purpose of the Phase 1 assessment (bleu, meteor, rouge, cider)?

Is ckpt_00.pth selected based on the evaluation results?

We choose to use ckpt_00.pth based on the loss curve and validation metrics. Perhaps ckpt_02.pth would overfit more to the training data, but it depends. You can try it, and maybe you will get a better result. Good luck~

thanks for your reply! I have some problems when I was in stage3. like this:  valueerror: could not convert string to float: b'3.0 8.0 1.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
Stage1 and Stage2 don't have any question.Looking forward for your reply.

This error can occur during the early steps of training when the model may generate some unusual and meaningless characters. You can refer to this solution. Or you can simply turn off the evaluation of the METEOR metric during the training process.

We choose to use ckpt_00.pth based on the loss curve and validation metrics. Perhaps ckpt_02.pth would overfit more to the training data, but it depends. You can try it, and maybe you will get a better result. Good luck~

thanks for your reply! I have some problems when I was in stage3. like this:  valueerror: could not convert string to float: b'3.0 8.0 1.0 4.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'
Stage1 and Stage2 don't have any question.Looking forward for your reply.

This error can occur during the early steps of training when the model may generate some unusual and meaningless characters. You can refer to this solution. Or you can simply turn off the evaluation of the METEOR metric during the training process.

Thank you very much, but I still have a doubt. Just like the evaluation in 3Dqa and scene caption in your paper, should it be evaluated by checkpoint after the grounding fine-tuning or by checkpoint before the fine-tuning?


buildroot "make all" fails with: fakeroot error / This may be due to a lack of SYSV IPC support. (and update-alternatives fix does not work)

Your Windows build number:  (Type ver at a Windows Command Prompt)
Microsoft Windows [Version 10.0.17763.503]

What you're doing and what's happening:  (Copy&paste the full set of specific command-line steps necessary to reproduce the behavior, and their output. Include screen shots if that helps demonstrate the problem.)
trying to build an ARM os with:
:buildroot-2019.02$ make all

What's wrong / what should be happening instead:
fails with:
fakeroot, while creating message channels: Function not implemented This may be due to a lack of SYSV IPC support. fakeroot: error while starting the ``faked' daemon. kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] fs/tar/tar.mk:16: recipe for target '/home/kdubious/buildroot/buildroot-2019.02/output/images/rootfs.tar' failed make[1]: *** [/home/kdubious/buildroot/buildroot-2019.02/output/images/rootfs.tar] Error 1 Makefile:84: recipe for target '_all' failed make: *** [_all] Error 2

Strace of the failing command, if applicable:  (If some_command is failing, then run strace -o some_command.strace -f some_command some_args, and link the contents of some_command.strace in a gist here).
Not sure what should go here.

I saw this solution in several places:
sudo update-alternatives --set fakeroot /usr/bin/fakeroot-tcp
but it did not work for me.

#1443 #2465

I have a fix:
fs/common.mk:109
Add:
cp -f /`which fakeroot-tcp/` $$(HOST_DIR)/bin/fakeroot
before
PATH=$$(BR_PATH) FAKEROOTDONTTRYCHOWN=1 $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
got it from here.

The fix is to update the host-fakeroot build to use the tcp transport by default in buildroot.  I'm working on upstreaming this fix.
--- a/package/fakeroot/fakeroot.mk
+++ b/package/fakeroot/fakeroot.mk
@@ -16,6 +16,8 @@ HOST_FAKEROOT_CONF_ENV =
ac_cv_header_sys_capability_h=no
ac_cv_func_capset=no
+HOST_FAKEROOT_CONF_OPTS = --with-ipc=tcp
+
FAKEROOT_LICENSE = GPL-3.0+
FAKEROOT_LICENSE_FILES = COPYING

Got a bit more background and figuring out right path based on some additional history.
https://bugs.busybox.net/show_bug.cgi?id=11366


Features/users and teams schemas

Rest of the needed scheme classes were added.

Better naming (example: TeamResponce -> TeamSchema)

Removed all unnecessary schemas (example: TeamUser)

created_at, updated_at fields were removed because they exist by default.

model_config is now a config class (Pydantic v2 documentation)

Removed duplicate fields (example: user_tag)


ASAN leak report: bins/asan/h2_http_proxy_nosec_test resource_quota_server GRPC_POLL_STRATEGY=poll

Please answer these questions before submitting your issue.
Should this be an issue in the gRPC issue tracker?
Yes
What version of gRPC and what language are you using?
master
What operating system (Linux, Windows, …) and version?
Linux
What runtime / compiler are you using (e.g. python version or version of gcc)
ASAN
What did you do?
Ran listed test as a result of a pull request that is not related to the test in question.
What did you expect to see?
No leaks
What did you see instead?
Interestingly, the leak reported only consists of indirect leaks. I believe that this means that a linked data structure (like a doubly-linked list) has nodes that are leaking.
https://grpc-testing.appspot.com/job/gRPC_pull_requests_asan_c/6143/
Anything else we should know about your project / environment?

Note that this is not exactly the same as #11055 but looks similar enough that it might be the same root cause

I'm fairly sure this is a duplicate of #11055.


configmaps "lens-platform-cluster" not found

Hello,
I am trying to share out a cluster to a Lens space but when after clicking install cluster connect I see this error in the dev tools console. Can I copy the configmap from another shared out cluster and delete the ID? or what should I do? Thanks

Figured out the issue. I did a reinstall of the lens cluster connect a while back and the namespace was caught in a deletion loop. Figured out which api service it was getting hung up on and removed the unused service, thereby allowing the deletion to provide.


Error: _defmt_* symbol not found - similar to issue #36

I ran into an issue that's similar to - https://github.com/knurling-rs/probe-run/issues/36 , which was reported a while back. I've double-checked the documented solution i.e.

have use defmt-rtt as _  as my global logger in my main.rs
and I can see double quotes around "defmt_version = 0.2" (the last item in the list below) when I grep for the .defmt symbols.

So, am not sure what's wrong here.
PS C:\Users\Nil\devspace\rust\projects\rb\boards> cargo run --bin  nrf52840 --release
    Finished release [optimized + debuginfo] target(s) in 0.14s
     Running `probe-run --chip nRF52840 target\thumbv7em-none-eabihf\release\nrf52840`
Error: `_defmt_*` symbol not found
error: process didn't exit successfully: `probe-run --chip nRF52840 target\thumbv7em-none-eabihf\release\nrf52840` (exit code: 1)

I figured it out. I was running an old version of probe-run. I switched to the latest version 0.2.5. Everything works now. I'll close this.

I figured it out. I was running an old version of probe-run. I switched to the latest version 0.2.5. Everything works now. I'll close this.


NPM BREAKING BUG => ms module breaks build

Version 0.7.1 Is breaking NPM builds, due to some bad characters, package.json is below

{
"name": "ms",
"version": "0.7.1",
"description": "Tiny ms conversion utility",
"repository": {
"type": "git",
"url": "git://github.com/guille/ms.js.git"
},
"main": "./index",
"devDependencies": {
"mocha": "",
"expect.js": "",
"serve": "*"
},
"component": {
"scripts": {
"ms/index.js": "index.js"
}
},
"gitHead": "713dcf26d9e6fd9dbc95affe7eff9783b7f1b909",
"bugs": {
"url": "https://github.com/guille/ms.js/issues"
},
"homepage": "https://github.com/guille/ms.js",
"_id"<EMAIL_ADDRESS>"scripts": {},
"_shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
"_from"<EMAIL_ADDRESS>"_npmVersion": "2.7.5",
"_nodeVersion": "0.12.2",
"_npmUser": {
"name": "rauchg",
"email"<EMAIL_ADDRESS>},
"maintainers": [
{
"name": "rauchg",
"email"<EMAIL_ADDRESS>}
],
"dist": {
"shasum": "9cd13c03adbff25b65effde7ce864ee952017098",
"tarball": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz"
}

The content of your editor doesn't look right at all. What's with all of these NULs?


The standalone version is not working

Current Behavior
I tried to use the standalone version and I can't make it work, then I looked at the Fiddle example provided in the repository, and it's not working either. https://jsfiddle.net/krkcvx9s/
Expected Behavior
The example should work
Steps to Reproduce

Go to the example and just try it

Environment

URL attempting to play:
Browser: Chrome
Operating system: MacOS

And I think the link provided should have the version in the name, otherwise, when it breaks, it breaks everywhere:
<EMAIL_ADDRESS>

@orlandovallejos - Here's the link to the Fiddle I created for the PR. This should work if you'd like to test the latest code until the next version is released.
https://transfer.sh/URCfCh/ReactPlayer.standalone.js


Support ConditionExpression for DeleteItem

It is possible to pass a ConditionExpression to DeleteItem request so that the deletion is only perform under certain condition. https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html#API_DeleteItem_RequestSyntax

Hey, Duc! I can pick this up if you'd like me to. :-)

hey, that would be great! Thanks. There is already an Expression model which is being used for put which might be a good starting point.

PR: https://github.com/d2a4u/meteor/pull/181


Download not working

I have been trying to utilize ostrio:files with little success. I know that this is due to my own ignorance rather than the technology itself, but I'm looking for guidance. I have a database set up at mlab.com and have used the mongo URL to successfully deploy my app on Galaxy. The app definitely has access to the mlab DB because it's pulling the metadata from the objects, however I cannot get it to download the actual files which I'm uploading. I'm using fs & gridfs-stream as outlined here: https://github.com/VeliovGroup/Meteor-Files/wiki/GridFS-Integration and when I first deploy my app it has the collection, Docs,  which I defined with export const Docs = new FilesCollection({ [...] }). However, once I upload a new document, two new collections, fs.files and fs.chunks are created in my mlab distribution.
I feel like the answer has to do with this, but I don't know how or what to do. What I'm currently doing is using <a href="{{link}}?download=true" download="{{name}}" target="_parent" type="{{type}}"> in my html as outlined here: https://github.com/VeliovGroup/Meteor-Files-Demos/tree/master/demo-simplest-download-button
The page itself, again, displays the file as well as pulls the correct metadata. And if I've just uploaded the file without pushing a new deploy, then it downloads fine. However once I push another deploy, when I try to download a file that was uploaded before the most recent deploy, it downloads an un-openable PDF file of very small, and incorrect, size.

Hello @zacharyabolton ,
Please update your OP following our issue template:

Version of Meteor-Files you're experiencing this issue
Version of Meteor you're experiencing this issue
Where this issue appears? OS (Mac/Win/Linux)? Browser name and its version?
Post Client and/or Server logs with enabled debug option, you can enable "debug" mode in Constructor
Post contents of .meteor/packages file
What routing library are you using?
Are you using *picker* package(s)?

Closed due to silence at issue owner end.
Feel free to reopen it in case if the issue still persists on your end.


:bug: Issue #2630: Fix initialisation of gForeground when started in …

Description

Fix initialisation of plugin to handle the case where the app is launched in the background.
Related Issue

Issue #2630
Motivation and Context

When currently launched in the background, the plugin incorrectly thinks it is in the foreground and absorbs notifications instead of sending them to the shade.  This behaviour continues indefinitely until the app is brought into the foreground by the user at which point the app and plugin state get back into sync.
The fix keeps the plugin gForeground state flag in sync with the app at all times.
How Has This Been Tested?

Tested as described in my comments in Issue #2630:
Using the following msg:
fsmsg =
  data:
    'force-start': 1
    title: 'forced'
    message: 'any message'

With the app not running, send fsmsg notification.
Phone receives the notification which is shown in the shade, and the app is launched in the background.
Do NOT bring the app to the foreground.
Send fsmsg again.  The phone should indicate that the notification has been received (without the fix it doesn't).

Screenshots (if appropriate):
Types of changes

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

Checklist:

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[x] All new and existing tests passed.

I get the following exception when trying your branch @warthog618 :
W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Bundle.getBoolean(java.lang.String, boolean)' on a null object reference
        at com.adobe.phonegap.push.PushPlugin.initialize(PushPlugin.java:502)
        at org.apache.cordova.CordovaPlugin.privateInitialize(CordovaPlugin.java:57)
W/System.err:     at org.apache.cordova.PluginManager.getPlugin(PluginManager.java:171)
        at org.apache.cordova.PluginManager.exec(PluginManager.java:122)
        at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
        at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
        at android.os.MessageQueue.nativePollOnce(Native Method)

Well I don't, which makes you more able to debug your problem than me.
Perhaps you could provide more info or debug it yourself???
As my change is essentially a one liner:
boolean startInBackground = cordova.getActivity().getIntent().getExtras().getBoolean(START_IN_BACKGROUND,false);
it appears the getExtras() is returning a null for you, but not for me.
Elsewhere in the plugin code there are checks for getExtras returning null, through not in the section that my line is derived from (PushHandlerActivity.onCreate).  So it may be necessary to check if extras exists.
I'm not sufficiently familiar with how cordova plugins work to determine in what circumstances there are no extras, nor what value startInBackground should default to in that case, so feel free to work out why it isn't working for you, and what the implications are, and suggest a patch - as I did for my problem.
Have a good one.

yeah I did debug and it seems that getExtras is nullable. So it can be null sometimes.
Best practice seems to be to check it for null. Source: https://stackoverflow.com/questions/32031178/nullpointerexception-on-android-os-bundle

@warthog618 but I tested your code and for me my app still goes into foreground when I receive 2 push notifications.

@BorntraegerMarc That SO reference is a very specific case that doesn't seem to be relevant to this problem - from the answer:
"This is happen because when you start your second activity NewTransaction directly you don't put extras in the intent, so when you call getIntent().getExtras(); it returns a null object and this is why getIntent().getExtras().getBoolean("update"); throw the NPE."
I don't see the plugin calling NewTransaction anywhere, so that doesn't seem to apply.
The open question is "in what circumstances might the activity intent contain no extras?"
I'm not a plugin developer, so I don't know the answer to that.
Can I suggest that you debug the problem that you are seeing, rather than googling it, and then suggest a patch?  And as I already alluded to, there are other places in the plugin code that don't check for getExtras returning null, so they may also require additional checks unless you can guarantee that extras will exist.
Wrt your latest comment, so you tested the code, got a NPE and then expect it to still work???
And you expect me to workout why it is broken for you?  That is your itch to scratch, not mine.
Happy debugging, and I look forward to your patch.

@warthog618 well I didn't want to offend you 😄 I am debugging since some hours 😄
Since you wrote Do NOT bring the app to the foreground. I thought you fixed this bug you described. But since it didn't work for me I thought I write this to you in case you didn't test your changes on a physical device.
Testing on android 9, btw.

@BorntraegerMarc I only test on physical devices.  I did test the fix as I described on physical devices with both Android 7.1.2 and 8.1.0 - the two versions that I had available at the time.
And I have just tested it on Android 9 (specifically LineageOS 16.0) and it is still working for me.
So still no idea what is different for you.
My current build environment is:
Ionic:

   ionic (Ionic CLI) : 4.6.0 (/usr/local/lib/node_modules/ionic)
   Ionic Framework   : unknown
   @ionic/v1-toolkit : 1.0.15

Cordova:

   cordova (Cordova CLI) : 8.1.2<EMAIL_ADDRESS>   Cordova Platforms     : android 7.1.4
   Cordova Plugins       : no whitelisted plugins (17 plugins total)

System:

   Android SDK Tools : 26.1.1 (/Users/kent/Library/Android/sdk)
   NodeJS            : v10.14.2 (/usr/local/bin/node)
   npm               : 6.4.1
   OS                : macOS High Sierra
   Xcode             : Xcode 10.1 Build version 10B61

OK, so what I can confirm is that for me the app starts in foreground when:

push notifications are sent in a short time (between 1 and approx. 8 seconds) AND
you kill the app at least once when started in background
The plugin seems to behave correctly if the notifications are at least 9 or 10 seconds apart

I tested this with an empty OnNotification handler in our cordova app.
BUT the behaviour is even worse without the fix of this PR. Because then the app opens always (doesn't matter how far apart the push notifications are).
Could somebody merge this PR and release a new version of the plugin? This fix is desperately needed if one wants to do some background work when notifications arrive.


Tagged union with boolean discriminator does not work without ===

TypeScript Version:  nightly (2.2.0-dev.20161213)
Code
type Result = Success | Failure;
interface Success {
    success: true;
    value: number;
}
interface Failure {
    success: false;
    reason: string;
}

declare const x: Result;
if (x.success) {
    x.value;
} else {
    x.reason;
}

Expected behavior:
No error.
Actual behavior:
a.ts(15,7): error TS2339: Property 'reason' does not exist on type 'Result'.
  Property 'reason' does not exist on type 'Success'.

It works with x.success === true.

This works as expected with --strictNullChecks. In classic type checking mode every type allows undefined or null as a value, so we can't know for sure that x.success is false in the else branch (because it could be undefined or null).


[main < T] Bugfix for map.merge

Description
Please briefly explain the changes you made here.
User noticed a bug, that when the second map contains null elements, merge will throw errors. This happened because we checked the existence of keys using At. If we check it like that, if the key exists, but contains null value, it will be as if the key doesnt exist. Instead I made a set of keys, and checked the existence of keys taht way. @antoniofilipovic  maybe it would make sense to add some Keys() function to map Cpp API to automatize the checking for key existence.
Pull request type

[x] Bugfix
[ ] Algorithm/Module
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

Related issues
Delete if this PR doesn't resolve any issues. Link the issue if it does.
######################################
Reviewer checklist (the reviewer checks this part)
Module/Algorithm

[ ] Core algorithm/module implementation
[ ] Query module implementation
[ ] Unit tests
[ ] End-to-end tests
[ ] Code documentation
[ ] README short description
[ ] Documentation on memgraph/docs
[ ] Update GQLALchemy signatures in query builder using query module signature generator

######################################

@mpintaric55334 it makes sense to add key exists function to C++ API, I agree. Currently seems it is not possible to check if key exists but property value is null

This PR https://github.com/memgraph/memgraph/pull/1336 in memgraph needs to be merged for this to work, we've added new functionality (KeyExists) in Cpp API


How i can block IPFS Update?

I want to use the 0.29.0 version and not want it to get updated, what file i need to block in the firewall?

Someone?

Hey @ZeroCool22, apologies for the slow response, I don't think there is a config to prevent automatic update (that can be added, but that would then increase fragmentation of kubo runtimes, which is not ideal)
That being said, are you comfortable building projects locally? If yes, then I think you can comment out this line and build ipfs-desktop locally, that should disable background checks and hence make it stay at the version you'd like.
Let me know if you need further assistance.

Mmm, i never compiled anything i just use Visual Studio Code for html and css (not JS yet), how i do it?

@ZeroCool22 in #2617 you say there are errors that are too big of a problem for you to update. Can you share more information and logs, or relevant existing issues?
We want to fix all the errors, but without information from users who are experiencing them, we can't address them.
As far as blocking the auto-update, that is counter-intuitive to deploying fixes that are needed for resolving errors anyone experiences. The right solution is to report the error with as much information as needed so we can address the root problem.
If we need to hop on a call, let me know, you can email me at my username at protocol.ai, or https://calendly.com/sgtpooki.

Has any progress been made on this? I too would like a version of IPFS Desktop with automatic updates disabled. As shown by the Windows OS,  its no secret that updates break things. Even worse are bad features being forced on the user by the developer, as is the case with Google's Manifest V3. It would be best if users have full control over the software on their machines.
Unfortunately, I'm not familiar with programming. If someone could make the current Windows version of IPFS Desktop without the update feature, that would be great.

@waltzz92 @ZeroCool22 we will add an option in the IPFS-Desktop config.json to disable autoUpdates, but won't provide a UI element for toggling it, so you will be able to disable auto-update, but only via modifying the config.json file.
This will:

prevent users who don't know exactly why they're doing it from shooting themselves in the foot (with an easy UI toggle)
allow users who are adamant about preventing auto-updates to do what they want
be easy to implement (simple config read and wrapper around a few lines in src/auto-updater/index.js)

cc @whizzzkid


ARROW-11719: [Rust][Datafusion] support creating memory table with merged schema

Added contains method for arrow::datatypes::Schema and
arrow::datatypes::Field
Relax batch schema validation using contains check when creating a
MemTable in datafusion

@alamb good call, I only assumed that logically makes sense, but never checked to see if it's actually implemented in datafusion myself. I have pushed a commit to check for fields count in the contains method for now. My original use-case was mainly to use a schema with extra metadata for a memtable, which is the case for if schema and record batches are created from our parquet crate.
I am a fan of your SchemaAdapterStream implementation, looks like it would be useful to include the core of that logic in datafusion as well.


Missign relay server should trigger error

The setup consists of a relay server on localhost. I'm sending a file:
wormhole --transit-helper "tcp:localhost:4001" send f4
and receiving the file:
wormhole --transit-helper "tcp:localhost:4002" receive 5-proximate-briefcase
Note that I made a mistake in specifying the receiver port.
Expected behaviour: the receiver should not be able to connect to the relay server.
Actual behaviour: the sender and receiver silently ignore the missing relay server and the transfer still happens over the public relay server.

Are you sure the transit connection didn't just run over the local loopback interface, rather than through the (broken) relay? The code will use a direct connection if it can, and ideally only falls back to the relay if it's unable to make that work.
The line just before the progress meter will tell you the IP address it connected to, and whether that's a relay or not. When the two clients are on the same host, the loopback interface connection should be fastest, and they should show you something like:
Receiving (->tcp:<IP_ADDRESS>:53323)..

and:
Sending (<-<IP_ADDRESS>:53328)..

I also frequently see my local LAN IP address there (RFC1918), usually a 10.x or 192.168.x.x address.
The ->tcp:.. means that side initiated the TCP connection, and the <-.. means it was listening on a TCP socket and accepted the connection.
You can force the transfer to use a relay by disabling the listening socket on both ends:
% wormhole send --no-listen snapcraft.yaml
Sending 1.4 kB file named 'snapcraft.yaml'
Wormhole code is: 8-bookseller-retouch
On the other computer, please run:

wormhole receive 8-bookseller-retouch

Sending (->relay:tcp:transit.magic-wormhole.io:4001)..
100%|███████████████████| 1.36k/1.36k [00:00<00:00, 4.62MB/s]
File sent.. waiting for confirmation
Confirmation received. Transfer complete.

and:
% wormhole rx --no-listen
Enter receive wormhole code: 8-bookseller-retouch
Receiving file (1.4 kB) into: snapcraft.yaml
ok? (y/N): y
Receiving (->relay:tcp:transit.magic-wormhole.io:4001)..
100%|███████████████████| 1.36k/1.36k [00:00<00:00, 7.17MB/s]
Received file written to snapcraft.yaml

The ->relay lines show that both sides initiate a TCP connection to a relay.
The transit algorithm is designed to open multiple connections and use the one that completes first. It delays opening the relay connection for a moment (two seconds, look for RELAY_DELAY in src/wormhole/transit.py) so as to prioritize a direct connection.


Dynamic fees concept

@mod I don't expose fees to end user https://github.com/rubykube/peatio/pull/1703/files#diff-143760e1eca712e2e4f00053aa493539R164
This call will be removed from public API so we will create orders via Applogic

What is more this model gives ability to track all fees of platform

Business cases

[ ] fixed fee for all customers, but we take XX% from fee and instead add it as bonus to parent user in referral program; e.g. as user I will be charged fixed fee, but percentage of that fee will go to user who invited me;

[ ] user can pay fee in any cryptocurrency of their choice; when user choose to pay fee in CUSTOM token, he will get a fee discount configured by operator of platform; discount amount can be different depending on user's tier; check attachments for examples;

[ ] ability to pay fees with native exchange token (at a discount) and ability for user to select whether to pay fees with token or not

Closed we have another specs for this topic


ToU update regarding comparisons with baseline

The current ToU does not mention the guidelines when referring to MLPerf baseline. When comparing with baseline, we should clarify the needed text. Are the following text choices OK?
a. MLPerf baseline score with "name of reference HW"
b. MLPerf baseline score with unoptimized software on  "name of reference HW"
c. other choices
Please share your additional concerns.
Thanks,
Christine

Baseline has been removed as a concept.


Some padding required at the footer and anchor link line to be removed with having icon hover

Sure assigined u

hey, I would like to work on this.

I would love to contribute on this issue ...plz assign this to me.

hey, I would like to work on this.

assigned

I would love to contribute on this issue ...plz assign this to me.

assigned

Please assign me I can do this .

Please assign me I can do this .

Done

hey kindly assign it to me. i will surely resolve it.

hey kindly assign it to me. i will surely resolve it.

Done

Please assign me

please assign it to me, i'll fix it..!

Can you please assign this issue to me. I can fix this.

@adithyapaib i have resolved the issue. please check the #76 PR and kindly merge it.


Dependencies and license

Would be nice to add a dependencies file and attache a license.

Good suggestions! I'll put it on my TODO list. License will probably be MIT, and dependencies I expect will be just torch and torchvision :thinking:


Doesn't work on Xubuntu 18.04

Hey!
I just downloaded the latest version of this app out of curiosity. It simply doesn't work on my operating system; I am using Xubuntu 18.04 on amd64.
If I start the app using a terminal, this is the output I get:
Starting Sentry
error: Failed to load bonjour with error: {}
Bonjour is required to use Chromecast Support or to enable ZeroConf for the PlaybackAPI
On linux you need to install "avahi"
Failed to encode dictionary
Failed to encode reply value
Failed to encode dictionary
Failed to encode reply value
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0

The app adds an icon that appears in my notification area, but the app itself shows a white screen.
I can go in the app settings - or right click the icon (Which says that the devices are loading), but that's it.
If you tell me what logs to include, I'll be happy to provide more info.
EDIT: Using 4.3.0 works, here is its output:
Starting Sentry
error: Failed to load bonjour with error: {}
Bonjour is required to use Chromecast Support or to enable ZeroConf for the PlaybackAPI
On linux you need to install "avahi"
Failed to encode dictionary
Failed to encode reply value
Failed to encode dictionary
Failed to encode reply value
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0
Error 10 (BadAccess (attempt to access private resource denied)): request 28.0

I had a similar issue - I would only get a white screen after the desktop app loaded. I was using Kubuntu 18.04 though I think I've seen it before on another release.
The problem turned out to be that I had a system setting saying to use a manual proxy configuration. There was nothing set but it seems like this was being picked up and used by the GPMDP. With invalid settings, it wasn't able to talk over the network.
Good luck!


#193 - Add support for switch-case statements in DirectX backend

PR Description

Updated DirectxLexer.py to tokenize switch, case, and default keywords.
Modified DirectxParser.py to parse switch-case constructs into SwitchNode and CaseNode AST representations.
Added SwitchNode and CaseNode to DirectxAst.py to model the syntax tree for switch-case statements.
Enhanced DirectxCrossGLCodeGen.py to generate GLSL code for switch-case constructs.

Related Issue
Closes #193
shader Sample
shader SwitchCaseSample {
fragment {
input int value;
output vec4 color;
    void main() {
        switch (value) {
            case 1:
                color = vec4(1.0, 0.0, 0.0, 1.0);
                break;
            case 2:
                color = vec4(0.0, 1.0, 0.0, 1.0);
                break;
            default:
                color = vec4(0.0, 0.0, 1.0, 1.0);
                break;
        }
    }
}

}

Created and updated tests:

test_lexer.py to validate tokenization of switch-case statements.
test_parser.py to verify parsing of switch-case constructs.
test_codegen.py to ensure correct GLSL code generation for switch-case.

Checklist

[done] Have you added the necessary tests?
[done] Only modified the files mentioned in the related issue(s)?
[done] Are all tests passing?

Hi @RatneshKJaiswal
Could you please resolve the merge conflicts

Merge Conflict Resolved

Please resolve the merge conflicts again, once done ready to merge


Screen rotation using RCTRootView.h

Issue Description
There is no screen rotation transition when using RCTRootView.h .

Steps to Reproduce / Code Snippets
I'm following the tutorial for https://facebook.github.io/react-native/docs/integration-with-existing-apps.html
The only change is that I'm using a navigation controller with a controller containing the react native view.
AppDelegate.m
    UINavigationController *nav = [[UINavigationController alloc] init];
    UIViewController *resps = [[MMResponsesListRN alloc] init];
    [nav pushViewController:resps animated:NO];

MMResponsesListRN.m
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.

    NSURL *jsCodeLocation = [NSURL
                             URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios"];
    RCTRootView *rootView =
    [[RCTRootView alloc] initWithBundleURL : jsCodeLocation
                         moduleName        : @"RNHighScores"
                         initialProperties :
     @{
       @"scores" : @[
               @{
                   @"name" : @"Alex",
                   @"value": @"42"
                   },
               @{
                   @"name" : @"Joel",
                   @"value": @"10"
                   }
               ]
       }
                          launchOptions    : nil];
//    UIViewController *vc = [[UIViewController alloc] init];
    self.view = rootView;
//    [self presentViewController:vc animated:YES completion:nil];
}

Expected Results
I'd expect something better than that.
Additional Information

React Native version: "react-native": "^0.32.0"
Platform(s) (iOS, Android, or both?): iOS
Operating System (macOS, Linux, or Windows?): macOS

This is not well-supported in React Native on iOS right now, since layout is calculated and applied asynchronously, so changes are only applied after the animation completes.
Feel free to post and up-vote this on ProductPains and we may prioritize it.


silly question: how can I add default args to the pytest command

e.g. i want to always have "-s" to the command.
I'm not too familiar with magit or even elisp macros - could you provide some help?
Cheers!

i use the magit-popup support for that, which gives a customisable python-pytest-arguments variable, which i use via use-package :custom keyword, like so:
(use-package python-pytest
  :demand t
  :after python
  :custom
  (python-pytest-arguments
   '("--color"
     "--failed-first"
     "--maxfail=10"
     "--verbose")))


Feature: Full support for softlinks/symlinks/junctions & hardlinks

What feature or improvement do you think would benefit Files?
Currently, Files can only create Windows Explorer Shortcuts/Links(.lnk files). These are nowhere near as useful as real softlinks & hardlinks.
Windows/NTDS supports both softlinks/symlinks/junctions & hardlinks: https://docs.microsoft.com/en-us/windows/win32/fileio/hard-links-and-junctions
Currently Files shows the little shortcut arrow overlaid onto the icons for files or folders which are Junctions, but the properties dialog doesn't know about junctions.
Requirements

Be able to  + drag and drop a file or folder to create a softlink or a harlink
Be able to  New... to create a soft or hard link in a folder, pointing to a destination chosen by the user
Be able to copy, rename & delete soft/hardlinks independently of the files/folders they point to
The properties dialog will know about junction & reparse points and tell you:

The type of link: softlink/hardlink/etc...
The destination of the link
Like: https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html

Files Version
Version: <IP_ADDRESS>
Windows Version
Windows 10: 10.0.19044.1889
Comments
No response

Asking @yaira2 for approval.

To add to this, it would also be cool if we had an option to convert symlinks to real files & folders (perhaps as an option when rightclicking a symlink "realize symlinks").

To add to this, it would also be cool if we had an option to convert symlinks to real files & folders (perhaps as an option when rightclicking a symlink "realize symlinks").

More like 'break symlinks' since you want to read (...) through to the target data, and that's the phrase used in UN*X?

Common guys :D
We need those, he post this @2022
♥

Note that the aforementioned shell extension is currently not working correctly in Files.

We're capable of implementing these with DeviceIoControl for low-level disk management. In my mind, we can take a look at this with IStorageLinkService.
Just an idea of me.

before people install the update that would be adding it: maybe notify people beforehand to de-install the hardlink shell extention, so it isn`t gone conflict in any way (just saying, because u dont want issues with this)

It would be included in the change log and adding this in Files wouldn't conflict with it.


Upstream merge

fix breaking changing from mint's UI

created this in error (again). sorry about that


Various changes and fixes with the general aim to support netbooting NixOS

by serving NixOS images from a NixOS machine to anything supporting PXE.
The described concept works alright, but the main piece of code is far from being ready for the general public (ugly hacks), but I got tired of rebasing and stashing these changes.

@oxij did you get PXE boot working with NixOS? Note there is https://github.com/sleinen/nixos-pxe-installer

Yep. Like two years ago.
You'd be surprised, but the biggest problem with my approach is that for
generic usability (installer is trivial) it needs a series of patches to
nixos most of which are either applied very slowly (#10996, e.g. that
one seems to be about GRUB, but I actually invented it to generate
pretty PXELINUX menus), need help to become backward compatible and are
stalled (#11529, this seems to be about simple refactoring, but the
actual point of that is that it allows one to easily duplicate
options.networking expressions so that one could define networking for
a whole cluster in a single pretty config), pretty much rejected
(#11484, I can't boot anything useful (except the installer and trivial
configs) without that) or actually rejected (#6969, I use
nixpkgs.config a lot, overrides are overrated). Considering the facts
that my branch has ~80 patches more (1/2 of those are actually pretty
useful to massive farming via PXE) and flaming in issues about my
changes actually takes more time that implementing those changes, you'd
understand why I'm not thrilled about pushing them. Hopefully, most of
the stuff I need gets merged a little by little or reimplemented by
someone else in a couple years, and then my services.netboot.menu
(which immediately needs at least 10, if not more, of those patches to
be barely functional) thing will be usable on vanilla nixos.
(Yep, I actually though about forking nixpkgs on this point, but I hate
merging, and git can't handle upstream rebases, so my hypothetical users
would need to checkout new branches, which isn't nice.)
I understand why @sleinen implemented his thing, installing via PXE is
awesome, but I wanted a generic thing, I implemented it and now I just
rebase it on top of upstream/master once in a while.
Also, my approach is somewhat more verbose than I'd like, e.g.:
  networking.firewall = {
    enable = true;
    allowPing = true;
    checkReversePath = false;
    allowedTCPPorts = [ 80 ] ++ [ 53 69 ] ++ [<PHONE_NUMBER> ] ++ [ 389 ];
    allowedUDPPorts =           [ 53 69 ] ++ [<PHONE_NUMBER> ];
    extraCommands = ''
      iptables -A nixos-fw -j nixos-fw-accept -p tcp -m multiport --dports 30000:64000
      iptables -A nixos-fw -j nixos-fw-accept -p udp -m multiport --dports 30000:64000
    '';
  };

  services.dnsmasq = {
    enable = true;
    resolveLocalQueries = true;
    extraConfig = ''
      domain = lan
      dhcp-fqdn
      dhcp-range = <IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,<IP_ADDRESS>,6h
      dhcp-boot = lpxelinux.0,alice.lan,<IP_ADDRESS>
    '';
  };

  services.nfs.server = {
    enable = true;
    exports = ''
      /nix/store <IP_ADDRESS>/<IP_ADDRESS>(ro,all_squash,async)
      /home/tv <IP_ADDRESS>/<IP_ADDRESS>(rw,no_root_squash)
    '';
  };

  services.atftpd = {
    enable = true;
    root = "${config.services.netboot.menu.output}";
  };

  services.netboot.menu = {
    prefix = "http://<IP_ADDRESS>/boot/";

    default.entries = {
      "atv" = {
        label = "TV";
        key = "t";
        isDefault = true;
        config = {
          require = [ ./tv.nix ];
          services.netboot.client.nfsServer = "<IP_ADDRESS>";
        };
      };
      "dumb" = {
        label = "Cluster node";
        key = "h";
        config = {
          nixpkgs.system = "x86_64-linux";
          require = [
            ./node.nix
            ./localization/dvorak.nix
          ];
          services.netboot.client.nfsServer = "<IP_ADDRESS>";
        };
      };
    };
  };

Most of that crap is just the nature of PXE booting, but e.g. those
repeating
services.netboot.client.nfsServer = "<IP_ADDRESS>";

lines drive my crazy, especially when there's a ton of entries there,
but I can handle it, yes.

@oxij thank you. I'll review this in detail once I'm onto PXE boot and check on the level of effort.


Add ".." to "Uploading changes to OpenStreetMap."

Since it's in progress.

Agree, this is ok, thanks!


Updating keycloak_default_extension wont delete jar file

Hello,
when i update an extension then the jar file wont be updated.
Update keycloak metrics from 2.0.0 to 5.0.0.
The file under /usr/share/keycloak/extensions wont be updated. i have to delete it manually
f.e.
keycloak_default_extensions:
  - name: keycloak-metrics-spi
    url: https://github.com/aerogear/keycloak-metrics-spi/releases/download/5.0.0/keycloak-metrics-spi-5.0.0.jar

I have integrated different possible solutions. First of all you are able to add a checksum to the extension list which ensures that the file to download matches the already existing file which should replace the file for new versions, see https://github.com/rolehippie/keycloak/commit/56ca31f4ed1bdb75df6d3c406da4c6573f5ffed5 for reference. Beside that I have changed the list of default extensions. It is deleting the old keycloak-metrics-spi.jar and downloads the defined version from keycloak_metrics_extension_version to the file name including the version. That way you are always able to remove the older extensions by adding name: keycloak-metrics-spi-x.x.x.jar and state: absent to the list of extensions. You can see the details at https://github.com/rolehippie/keycloak/commit/a6a1491319525df8dc6c0ffe2255acfce0f921f8


🐛 [Bug report]: The Dynamic Banner's title is not properly aligned

Descrcibe the bug?
The Dynamic Banner's title is not left aligned. Currently, it is right-aligned, and due to this, it seems too wired.
Steps to reproduce the bug?

Go to ReactPlay Site
Click on the Browse Play button
Then, you can see that, Dynamic Banner's Title will not be left-aligned

Expected behavior
The title of the plays must be left-aligned so it will look better currently it seems that something is broken.
Desktop (Please provide your system information)

OS: Windows
Browser: Chrome, Edge

Mobile (Please provide your device information)
No response
Screenshot / Screenshare

Relevant log output
No response
Record

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I want to work on this issue

Code of Conduct

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

yes, it should be left-aligned.

is this issue resolved?

any updates? @Shivam-Katare

Yes @priyankarpal I am raising a PR today.

@priyankarpal Hey I believe @Shivam-Katare is busy somewhere as it has been a week since he told to raise a PR. Can you assign the issue to me ? I am a FrontEnd Developer and it is a single line CSS fix and won't take much time.

@priyankarpal Hey I believe @Shivam-Katare is busy somewhere as it has been a week since he told to raise a PR. Can you assign the issue to me ? I am a FrontEnd Developer and it is a single line CSS fix and won't take much time.

sure


⚠ ClamAV has degraded performance

In 75f3464, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 70 ms

Resolved: ClamAV performance has improved in 9d66ba6 after 13 minutes.


i18n: return defaultLocale in config request

Please respect our contributor rules. This PR does not refer to any issue or to any forum discussion. Furthermore, it does not explain why you need to expose this information.
You can access your blog locale via the private settings endpoint. Closing.

@kirrg001 I think the problem is that it was re-recreated after an earlier one was closed https://github.com/TryGhost/Ghost/pull/9634. It's part of the admin i18n PR here https://github.com/TryGhost/Ghost-Admin/pull/1017 which I haven't had a chance to review properly yet.
I'll re-open and update the issue description.

👍 Thanks for sharing.

@kevinansfield You are assigned and PR is > 3 months old. Could you pls review, reassign or close? Thanks 🙂

Closing as per https://github.com/TryGhost/Ghost-Admin/pull/1017#issuecomment-420310841


Remove logging password when debug logs are enable

Purpose

$subject

Codecov Report

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

@@            Coverage Diff            @@
##             master     #431   +/-   ##
=========================================
  Coverage     79.06%   79.06%
  Complexity      730      730
=========================================
  Files            66       66
  Lines          3153     3153
  Branches        303      303
=========================================
  Hits           2493     2493
  Misses          516      516
  Partials        144      144

Impacted Files
Coverage Δ
Complexity Δ

.../ballerinax/kubernetes/models/DeploymentModel.java
85.6% <ø> (ø)
59 <0> (ø)
:arrow_down:

Continue to review full report at Codecov.

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


Performance regression with rust 1.52.0

Rust 1.51.0:
short_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1010073463 instructions<PHONE_NUMBER> instructions<PHONE_NUMBER> instructions]
long_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [237648142 instructions 237648143 instructions 237648144 instructions]
random_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1563190 instructions 1563190 instructions 1563190 instructions]

Rust 1.52.0:
short_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1233359721 instructions<PHONE_NUMBER> instructions<PHONE_NUMBER> instructions]
long_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [237719727 instructions 237719730 instructions 237719734 instructions]
random_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1567493 instructions 1567493 instructions 1567493 instructions]

Summary:

short: +22%
long: +0%
random: +0%

cc @zakcutner
Would you happen to have an idea on how to pin-point where the regression is actually coming from?

Ah that's weird, I can try profiling using both versions of the compiler to see if that shows up any significant differences.

Using readelf I tried to check for any substantial size for sliceslice symbols.

Rust 1.51.0:

$ readelf -s --wide target/release/examples/grep | rustfilt  | grep sliceslice
    56:<PHONE_NUMBER>007180 12127 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::inlined_search_in
    68:<PHONE_NUMBER>000000     0 FILE    LOCAL  DEFAULT  ABS sliceslice.7x3guuyw-cgu.0
   683:<PHONE_NUMBER>006170  4112 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::new
   935:<PHONE_NUMBER>00a710     3 FUNC    GLOBAL DEFAULT   14 sliceslice::MemchrSearcher::new

Rust 1.52.0:

$ readelf -s --wide target/release/examples/grep | rustfilt  | grep sliceslice
   413:<PHONE_NUMBER>008b70 12453 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::inlined_search_in
   426:<PHONE_NUMBER>000000     0 FILE    LOCAL  DEFAULT  ABS sliceslice.wojh9lmw-cgu.0
   491:<PHONE_NUMBER>007c50  3857 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::new
   670:<PHONE_NUMBER>00c230     3 FUNC    GLOBAL DEFAULT   14 sliceslice::MemchrSearcher::new

That's a 2.5% increase in instruction count for our main search method. I am not sure if it can explain such a difference in the benchmarks. Additionally, grep binary (see https://github.com/cloudflare/sliceslice-rs/tree/grep-example branch) is probably not compiled with the same options as the benchmarks, so it might be interesting to try tweaking the options a bit.

Now with codegen-units = 1 and lto = true:

Rust 1.51.0:

$ readelf -s --wide target/release/examples/grep | rustfilt  | grep sliceslice
   105:<PHONE_NUMBER>004150 12119 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::inlined_search_in
   106:<PHONE_NUMBER>0070b0  3976 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::new

Rust 1.52.0:

$ readelf -s --wide target/release/examples/grep | rustfilt  | grep sliceslice
    94:<PHONE_NUMBER>005b20 12440 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::inlined_search_in
    95:<PHONE_NUMBER>008bc0  3698 FUNC    LOCAL  DEFAULT   14 sliceslice::x86::DynamicAvx2Searcher<N>::new

Same increase of 2.5% for inlined_search_in

I have landed a couple of optimizations that are reducing the regression to 18%.

Ok with https://github.com/cloudflare/sliceslice-rs/pull/50 merged, we should be down at a 7.35% regression between both rust versions.

I found a way to entirely get rid of the scalar searcher which is responsible for the regression. It actually improves performances for the short benchmarks of around another 10% and give identical results for both rust versions.

Version 0.3.1 has just been published and should mitigate the regression introduced by rust 1.52.x
Rust 1.51.0:
short_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [764314307 instructions 764314308 instructions 764314309 instructions]
long_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [236983885 instructions 236983886 instructions 236983886 instructions]
random_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1588582 instructions 1588582 instructions 1588582 instructions]

Rust 1.52.1:
short_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [764314324 instructions 764314326 instructions 764314328 instructions]
long_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [236983892 instructions 236983892 instructions 236983893 instructions]
random_haystack/DynamicAvx2Searcher::search_in #2
                        time:   [1588582 instructions 1588582 instructions 1588582 instructions]

Summary:

short: +0%
long: +0%
random: +0%


to_ruby does not exist

It is referenced in the README, but grepping the code doesn't find it anywhere.
fwiw, I'm trying to parse YAML using a simple EBNF, but have no idea what to do after I've called EBNF.parse. I can output using to_sxp, but it's not clear to me how to link this to a parser class. The example parser doesn't appear to actually be driven by a bnf file?

Relevant, the BNF I'm using:
[1] Yaml ::= Data*
[2] Data ::= (Scalar | Sequence | Mapping )
[3] Scalar ::= (Number | String | Date | Boolean | Nil)
[4] Sequence ::= (InlineSequence | IndentedSequence)
[5] InlineSequence ::= "[" Data ("," Data)* "]"
[6] IndentedSequence ::= OptionalTab "-" Data ("\n" OptionalTab "-" Data)*
[7] Mapping ::= ( InlineMapping | IndentedMapping )
[8] InlineMapping ::= "{" Key ":" Data ("," Key ":" Data)* "}"
[9] IndentedMapping ::= Tab Key ":" Data ("\n" Tab Key ":" Data)*
[10] OptionalTab ::= Space*
[11] Tab ::= Space+
[12] Key ::= Scalar
[13] String ::= '"' [A-Za-z0-9]* '"' | [A-Za-z0-9]+
[14] Number ::= ("+" | "-")? [0-9]* ("." [0-9]+)?
[15] Date ::= [0-9][0-9][0-9][0-9] "-" [0-1][0-9] "-" [0-3][0-9] ( [0-2][0-9]
[16] ":" [0-5][0-9] ":" [0-5][0-9] )?
[17] Boolean ::= "true" | "false"
[18] Nil ::= "~"
[19] Space ::= " "

Sorry, this parser doesn't simply emit ruby the code that simply writes out a parser creating a parse graph of the input, as it's designed for streaming. Instead, it creates  first/follow rules in a ruby hash/ array which are used by the included EBNF parser; there's an example included for doing just this.
The motivation for this parser was to parse arbitrarily long input to access through parser productions that you write. Frankly, this is not the easiest parser for your purposes. Treetop is most likely closer to what you need.
Examine the example parser and if this is what you want, I can help you work through some of your implementation issues.

So should to_ruby be removed from README? I've been playing around with parslet as well, is looking like a good fit.

Sorry, I haven't used it in a bit, and I thought you were looking for something different. I think the code you want is in bin/ebnf, and I had probably intended the dump_tables to go into the library as to_ruby. See if that works for you.
There are some Rake tasks that build example files that might help.
Gregg Kellogg
Sent from my iPad

On Feb 14, 2015, at 4:50 AM, Xavier Shay<EMAIL_ADDRESS>wrote:
So should to_ruby be removed from README? I've been playing around with parslet as well, is looking like a good fit.
—
Reply to this email directly or view it on GitHub.


Re-add the future keywords tests.

The intent of them is not to express that an implementation might wish
to recognize these keywords.
The intent of them is precisely the same as the original intent -- to
allow an implementation to test itself for not recognizing new
keywords. Such an implementation should enable these tests, as it is
free to do so, and these tests will help ensure it does not accidentally
leak newer keywords backwards in time if it doesn't mean to.
All of the previous discussion was strictly centered on not putting
these in the required directory.
The reason is that all drafts allow implementations to add extra
keywords. So a compliant implementation may indeed decide it actively
wants to implement new keywords. Then this file would not help them,
and they wouldn't run it. They would presumably love a version of this
file that did contain all the future assertions as correct for future
drafts, and in the future we could provide one. But given no
implementations really do do this, at least as far as I'm aware, and
given that this version of the file is here and written and more common,
it would seem perfectly reasonable to have it and hope for the other
version if or when someone wants it.
Further discussion is in #383 and later #559.
This reverts commit f605fbfe463333b72ead7a156195f1317f72d45f.

CC @handrews @karenetheridge let's discuss here so we're not using a closed PR perhaps?

I am opposed to merging this at this time.

I think this may conflict with our decision to add $schema keywords for drafts 2019-09 and later. If we are testing strictly against a metaschema, I do not see how extra keywords/vocabularies could be allowed. This is something that should be discussed in the context of that discussion, and whose conclusions should documented in an ADR.
"Then this file would not help them, and they wouldn't run it." -- there currently isn't any sort of organization in the tests, or clear indication as to when tests could or couldn't be run, other than an "optional" label which we let implementors interpret as they will. I'd like to get this sorted out before we add more categories of "optional" tests that force people to try to divine their meaning.

Can you elaborate how this conflicts with adding $schema? I've cited sections of the spec in #376 which conflict with your interpretation. Do you have sections which support it?
As for the second point, I agree it'd be nice to get to tackling optional, which is why I'd like to get changes merged and out of the way in order to get to it, and especially to illustrate the scenarios we need to support. The notion we'd need to potentially support conflicting optional tests isn't new to me, it's been mentioned in previous issues, but it seems it was non-obvious to others --
In short what new is unclear about this PR that isn't already unclear about existing tests like zeroTerminatedFloats or bignum or others?
Would you feel more comfortable with a comment indicating which implementations should run this file?

Putting this with other "optional" tests might cause some amount of confusion. Maybe we can create a new class of "behavior" tests.
For example, in https://cache-tests.fyi/, "behavior" tests are those with grey "+" or "-" symbols, where the cache behavior may legitimately vary depending on the needs or environmental conditions of the cache.

@Julian

As for the second point, I agree it'd be nice to get to tackling optional, which is why I'd like to get changes merged and out of the way in order to get to it

Is it really necessary to have this merged?  We know that this is case to sort out, whether it's checked in or not.  If the current state of affairs is too confusing to reach agreement, can we just table this until we've made enough progress to agree on where this ought to go?
I generally don't like having PRs and issues hanging around.  But perhaps we're better off looking at this as a dependency.

I certainly would rather do so than keep talking about trivial changes. There's nothing different about these tests than existing optional ones, but I won't keep pushing to get them in. We can come back to them later.

to allow an implementation to test itself for not recognizing new keywords.

I'm not sure what this PR is testing.
Possible ways how a validator would behave would be:

Ignore those keywords and let everything pass as true (ugh, but spec-compliant)
Refuse to compile schemas with unsupported keywords
Implement those so those behave as in some spec other version
Some weird case of behavior not covered by 1-3.

What does this PR test for when it expects $dynamicRef to fail validation of some input in draft4 but prefixItems to always pass on anything?

I don't believe 1 is spec compliant, but would have to double check we still have language requiring unknown keywords to be ignored.
2 is what this PR was meant to cover, and the fact that 3 is spec compliant was why I removed them from required and moved them here (so authors of implementations that want 2 can still run them).

@Julian re: 1 -- a validator that has either opt-in or opt-out on that would still be spec-compliant, I think ).

Sorry, just to add -- this is just a copy paste error and meant to be all true

Ah, so that was a bug. But that also implies that this wasn't actually tested on any real implementation )

a validator that has either opt-in or opt-out on that would still be spec-compliant - @ChALkeR

The spec says that implementations MUST ignore unrecognized keywords.  This needs to be the default for the implementation.  If an implementation does not do this without configuration, then it's not compliant.
An implementation could have a configuration setting that enables a "strict" mode.  That would be opt-in.

The spec says that implementations MUST ignore unrecognized keywords.

It's SHOULD ignore up through 2019-09, and then SHOULD collect as annotations in 2020-12 (and if not, SHOULD or MUST ignore, but we forgot to actually say that - it's kind of implied, though, as implementations that don't collect annotations ignore them).

Reading back over this after #574, this gets to the same question of what sort of "configuration" (including not just configuration options but also additional things not required or explicitly allowed by the spec) is appropriate for testing compliance.  I know @Relequestual has some thoughts on this which probably warranted a discussion being opened somewhere (as it's a topic that touches on both the spec and the test suite).
In the meantime, @Julian is correct that implementations can add arbitrary non-vocabulary keywords and have them always be on.  They cannot enable random vocabularies, but that's irrelevant for draft-07 and earlier.  For 2019-09 or later, it matters whether the keywords are implemented as a vocabulary or not, but we should just rely on the $vocabulary tests to indicate that vocabularies not present in $vocabulary cannot be enabled.
So we should assume that any "future" keywords that show up as always-on are non-vocabulary keywords and therefore allowed.  The rationale in #574 does not apply here, as we are not trying to make a distinction between implementing the standard (which doesn't have these keywords in it, by definition) vs implementing something that just happens to look like the standard.  In this case, it's automatically a "happens to look like a future standard" thing.
Like the backwards compatibility dependencies test as discussed in #590 , I'd put these in the proposed additional directory, as there is no clear relationship between the functionality and the specification being tested (the past and future specifications don't come into play for this determination, I think).
As I understand it, the difference between this situation and the required unknownKeyword.json test is that that test is valid for any unrecognized extension keyword name, and the keyword in it could therefore be renamed to something even less likely to be present if we ever had trouble with a collision.  On the other hand, these tests (and the $vocabulary tests) are about specific keywords, so a collision could not be solved by renaming.  Therefore they go to additional (in my opinion, this is still being debated in #590).

Test comment, please ignore.


Repeat maps at low zoom levels

For #4104
Background
Both Mapbox and Google Maps render multiple copies of the world at low zoom levels.
This PR adds a repeat option to MapView that mimics this behavior.
repeat is default to false to avoid breaking changes.

Under the hood, it adds support for subViewports to an Viewport instance. Sub viewports are used during redraw to achieve multiple renders without triggering viewportChanged layer updates.
Note that this option does not fix ALL longitude wrapping issues. If a geometry contains positions outside of the natural range ([-180, 180]) we may not render all copies that are visible in the current viewport.
Change List

Add WebMercatorViewport.subViewports
Support subViewports in LayerPass
Documentation
Unit and render tests

Coverage increased (+0.04%) to 83.37% when pulling e1f45d660f1b05e6f50d6e64b3745f076dc522f5 on x/map-repeat into c4820536277ecefbdf062145a02651e2c7847670 on master.

Will this end up rerendering the scene multiple times?
If so, could we not do this by rendering to a texture and repeating that?

could we not do this by rendering to a texture and repeating that?

It would only make sense for 2D content.