Goals revisited

To cover all use cases we should have at least an ApplyMojo, too.
Then the possible workflows are (if fabric8:resource and fabric8:build are bound to executions):

install --> fabric8:resource + fabric8:build
fabric8:deploy --> fabric8:resource + fabric8:build + fabric8:apply
fabric8:run --> fabric8:resource + fabric8:build + fabric8:apply + tail on log
fabric8:resource --> fabric8:resource
fabric8:build --> fabric8:build
fabric8:resource-apply --> fabric8:resource + fabric8:apply
NEW: fabric8:apply --> fabric8:apply

Actually I even would strongly recommend  to combine fabric8:deploy and fabric8:run to  a single goal since they are so similar that e.g. tailing could be switched on/off via a simple flag (or permanently via a config option).
My suggestion would be (going back to the old fabric8:deploy behaviour):

fabric8:deploy (or fabric8:apply) --> deploys resources only (no fork)
fabric8:resource-deploy (or fabric8:resource-apply) --> recreates resources and deploys resources
fabric8:run --> forks, so runs resource, build, deploy and tails, where the tail can be switched off (or on).
fabric8:resource and fabric8:build would remain the same

hatever we could call it "deploy" or "apply" (thats not so important). It would also match nicely to the d-m-p workflow where there is a mvn docker:run -Ddocker.follow (also permanently configurable, also via setting). At least we wouldn't need both "deploy" and "apply" as goal names which adds to quite some confusion.
It's also important to think about what happens when resource and build are not bound to executions to their default phases in the pom.xml namely that  fabric8:run (and the currently forked fabric8:deploy) will only deploy the current descriptors.

@fabric8io/core any opinions on this ?

After giving demos and whatnot I really like that deploy and run are separate goals. Using flags with maven is soooo cumbersome and you cannot remember what the names of the options are and there is no easy way, tab completion etc.
Remember run / deploy are the goals that new users to fabric8 are to use, and they should have it very easy.
For example spring-boot - jetty - swarm - et all uses run to start the app in the foreground.

Agree that flags on mvn goals are awful - it's a shame it's not like any other normal cmd line tool...

Thanks for the feedback. So we all agree that fabric8:run and fabric8:deploy should be separate goals and flags should be avoided.
My question is now, whether fabric8:deploy should fork the lifecycle, which means that fabric8:deploy will create resources, run an image build and applies the resource descriptors to a running cluster. fabric:resource-deploy does the same but without build.
My suggestion above to make fabric8:deploy only deploy the resource descriptors. That way its on the same footprint as resource and build and can be bound to executions (you cant bind a forked goal to an execution because then many goals run twice). The alternative is add a new goal 'apply' for this (i.e. deploy without fork). But then, who can tell the difference between 'apply' and 'deploy' by heart ?
And btw, we could rename deploy also back to apply (seems a better fit).

My worklow which I used lately quite often was, todo a fabric8:resource, have a check of the created files, and then want to apply these resources without recreating. This is currently not possible. Don't know whether this is a valid use case, though.

@rhuss initially I made fabric8:deploy as you suggest above; but found it confusing and ended up making deploy and run work the same really (just like deploy + run do with other maven plugins - like tomcat/jetty/karaf/wildfly/spring-boot). If we want a goal that doesn't build jars or docker images and just deploys the resources only then I'd prefer to make that less common - like resource-deploy or something. Folks can also use kubectl apply -f too after a resource goal

For me its about only applying the resource without recreating them and tbh kubectl is as a solution as minishift start && gofabric8 deploy would be for cluster-start. Obviously the advantage of a fabric8:apply is that it know what to apply. With kubectl you would have to write (and remember !) kubectl -f target/classes/META-INF/fabric8/kubernetes.yml. Quite a mouthful compared to a mvn fabric8:deploy

And as you said deploy and run work the same, but why do we need both then doing the same. Its not about the amount of goals (already lost here ;-), its about the deploy slot which I would like to have nicely aligned with resource and build.
Or other: why can't deploy a bit different by not forking the lifecycle (you still have run, you still can run 'resource-deploy', you still can bind deploy to an execution then so a mvn deploy can do all of resource, build, deploy.
Regardless what we decide, I really would want to a goal which deploys and can be bound to executions like resource and build. Its so much easier to explain this in the docs. In the worst case I would call it apply (but then we have the confusion between apply and deploy).

we need both deploy and run as thats the common experience of using tomcat/jetty/karaf/wildfly; deploy is an async chuck it into the app server and return immediately; run is run it right now in the current shell, see the log and Ctrl-C stop it. Yes they both do common pieces under the covers but to a developer they are very different operations.
I agree its handy being able to just re-create resources without building anything else and being able to apply them would be good too; more for the case where you're tweaking the resources. I like combining with the resource goal too to make it less things to remember. So how about resource and resource-apply (which would regenerate the resources and apply them without building/deploying images too)

Agreed with having two commands for sync and async start of an application (in the tomcat and jetyy world these are called start and run).

we already have resource-apply, but it doesn't solve

that I can't bind the apply step to a lifecycle in <executions>
that I can't apply resources without recreating them (that was my initial use case)

If we can't rename the current deploy to e.g. start (because this is actually for rescaling already existing entities) to free the name for the use case above, I then would opt for introducing a new goal apply with the characteristics described above (bindable & isolated). (if so I question that we still need resource-apply).
But maybe we can rename start --> up and stop --> down (would also map nicely to the action it performs, scaling up and down).
So:

start -> up
stop -> down
deploy -> start
undeploy -> stop (tbh don't know whether we have an undeploy yet)
run -> run
new deploy which does not fork lifecycle (alternative: back to apply ?)

That would be nicely symmetric and maps the appserver paradigms with start & run, and up + down scaling.

BTW I want our goal names to be familiar to java devs who've used maven tooling for tomcat / jetty / karaf / wildfly. Thats why we went with deploy,undeploy and  run which are common already; they mostly have start too though its eitherstop or shutdown it seems.
Am cool with apply btw - we started there in the beginning back in f-m-p 1.x and 2.x as thats what kubectl uses and its kinda unique so am happy with that goal

@jstrachan there is no deploy and undeploy for Tomcat, or did I miss something ? All what is there is a start and stop for async operation and run for sync.
My suggestion above would exactly map nicely on these Tomcat terms, in order to reach the goal of familiarity with known tasks.

tomcat7: deploy, undeploy, run, shutdown
tomee: deploy, undeploy, run, start, stop
wildfly: deploy, undeploy, run, start, shutdown
jetty: deploy-war, run, start, stop

Ok, I was more about catalina.sh:
Usage: catalina.sh ( commands ... )
commands:
  debug             Start Catalina in a debugger
  debug -security   Debug Catalina with a security manager
  jpda start        Start Catalina under JPDA debugger
  run               Start Catalina in the current window
  run -security     Start in the current window with security manager
  start             Start Catalina in a separate window
  start -security   Start in a separate window with security manager
  stop              Stop Catalina, waiting up to 5 seconds for the process to end
  stop n            Stop Catalina, waiting up to n seconds for the process to end
  stop -force       Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
  stop n -force     Stop Catalina, wait up to n seconds and then use kill -KILL if still running
  configtest        Run a basic syntax check on server.xml - check exit code for result
  version           What version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined

starting or stopping an app server is kinda different - you usually don't use the same CLI to deploy things or run local builds of things; though it has run/start/stop at least.
The maven plugins for developers to work with app servers are surprisingly consistent in their goals though - adding run/deploy/undeploy to the mix

@jstrachan thanks for the clarification (and for bearing with me that long ;-), I think I got it now.
I think we had simply different metaphors for what the app-server really is in our context. We both already agreed that it is not the k8s / openshift cluster itself, but:

your approach is that of a virtual server, which gets started and stopped with the lifecycle commands:

start & stop : start the virtual server by scaling up / down the resource objects which are already existant.
run : The same in the foreground but from scratch + including a fresh deploy
deploy and undeploy : Add / remove the application to / from this virtual server.

mine is more that of the application is the server:

start & stop : Start the application & remove it from the cluster (like starting and stopping the server)
run : Start the application in the foreground (like starting the server in the foreground)
deploy  and undeploy are not really needed when using the application is the server metaphor, but would could have one like "pause" / "resume" for the scaling goals.

I hope it's fair to summarise that your approach mimics the classical Java EE server workflow by coming from the existing goals and mapping them to this 'virtual' server, mine is not so strict in the similarity but maybe easier to understand when not coming from a Java EE server background (because of less goals which maps better to the real application lifecycle).
Now that I understand the metaphor behind your approach I can live better with it (although I think its more elaborated than needed, but that's the price for this mapping to Java EE concepts).
Let's leave the goal as they are but let me introduce a new 'apply' goal with the characteristics I described.

FWIW in the traditional app server model; developers deploy/run their app into an app server; the developer doesn't much care if there's a single JVM running for all apps; or a cluster of them or if app server processes stop when there's no more apps to deploy or if the app server cluster runs individual JVMs per deployment unit or not.
So the metaphor of deploying apps to the app server works pretty well for kubernetes too; its just the app server is kubernetes. In kubernetes for each app there's 0...N docker containers created - but thats implementation detail that the application developer doesn't need to worry about - just like if you deploy to an app server thats really a cluster of JVMs acting as a logical app server you don't worry too much about what JVMs are running under the covers; it looks like a logical app server.
I don't want to confuse or promote leaky abstractions of the new kubernetes awesomeness; but I think Java folks can view kubernetes as like an app server or to be more accurate an app platform that they deploy their apps to and it just works; it just so happens that each app maps to 0..N individual docker containers which are easier to scale and manage independently.
Though we may as well stick with common habits, terminology and approaches if it helps folks get stuff done

I think we are now on a good way to converge ;-)
Still, I don't think that Kubernetes plays the app server role here as it's not Kubernetes which gets started or stopped with the start and stop goals but an "abstract server concept". But as I said I can live with it even when having a different opinion.
Let me add the new apply goal and I'll shut up. This fits also nicely into the row of our technical goals like resource, build, push. hopefully folks don't confuse it with deploy, thats my only concern left.

@rhuss they are different for sure but conceptually with an app server you deploy, say, a WAR with embedded manifests; with kubernetes you deploy a manifest which references 0..N docker images but I see them as conceptually very similar from 30,000 feet - but yeah - quite different too ;)


Bluetooth issue with newer 4.9.56 linux kernel

Hi everyone,
I built a custom yocto image for dragonboard-410c using this meta-qcom layer. Everything built fine. But after I load the image, the bluetooth is not working. Hence, when I do $ hciconfig hci0 up, it gives me this error message: Operation not supported. Btw, the wifi is working.
So, I am wondering if this is a known issue or not. So for now, i just used the older version of the linux kernel 4.9.39. This version worked perfectly.
BG
Jay

hmm. right.. we've backported this patch into our kernel: https://www.spinics.net/lists/linux-arm-msm/msg30024.html, and it requires a bootloader update (this commit: https://git.linaro.org/landing-teams/working/qualcomm/lk.git/commit/?h=release/LA.BR.1.2.7-03810-8x16.0&id=372982a4d4c4922e9214ff7d6aa5348aaba602a7).
So you probably need to update LK (e.g. aboot partition) using the latest bootloader release available on 96boards.org website.

hi,
no, this is the 'linux' release that includes boot and rootfs partitions. The bootloader release contains all the binary that we flash into the other partitions (e.g. all s/w needed before we reach the boot partition). The bootloader releases are here:
http://builds.96boards.org/releases/dragonboard410c/linaro/rescue/latest/


Add subnet parameter to windows event logs class

From BlackHat Arsenal (Craig Bowser) asked:
When it creates logs, can you provide a subnet so that all the source IPs are in that subnet?

Right, cause if I want to generate a lot of logs to emulate an environment then feed it into my siem, it would make sense that the source IPs (or detination IPs) are in the same network.


Error in Documentation - Searchable in joined table returns Ajax error

Summary of problem or feature request
https://datatables.yajrabox.com/services/two-datatables
The searchable POSTS tab in this link of documentation isn't working and gives ajax error ( DataTables warning: table id=postsTable - Ajax error. For more information about this error, please see http://datatables.net/tn/7 ). I'm having a similar issue to search in joined tables when I'm using Yajra as a Service through a packge Infyom Laravel Generator https://github.com/InfyOmLabs/laravel-generator
Code snippet of problem

System details

Operating System: windows 7
PHP Version: latest
Laravel Version latest
Laravel-Datatables Version: latest

+1

Thanks for reporting. Demo fixed!


Update GitLab support to use API v4

Since GitLab 9.0, API V4 is the preferred version to be used. API V3 will be removed in GitLab 9.5, to be released on August 22, 2017. Therefore GP needs to be updated to use the new v4 API.

Resolved by f249ddf56af97ad21198e29e1b4ddff9542ee234.


[BUG] Unformaatted code and css improvements

Describe the bug
Your project is big so code formatting is needed to make sure it is readable so that it can be easily understood by the new contributors.
Also i will add some overall css improvemnts
How are you going to fix it?
I will make sure the code is formatted by removing extra spaces , unessary comments
and i add some spaces where needed and new comments if needed as well
also i will add css improvemts to make it more visually appealing

[#127 ]


DOC: Sparse arrays: todense() does not return numpy.matrix

Issue with current documentation:
The documentation states that the todense() method of each of the sparse array classes returns a numpy.matrix but they return a numpy.ndarray.
Idea or request for content:
Modify the documentation to state the return type is numpy.ndarray.
Additional context (e.g. screenshots, GIFs)
No response

@henry50 would you be interested in opening a PR?

See also #18898


Fix off-by-one error with end column

closes #63

@vidhanio Thanks for PR fixing this bug. Would it be possible for you to update the Tests?

done @karthiknadig. :)


Results grid options

Adds results grid options.
resultsGrid.rowHeight
resultsGrid.cellPadding
resultsGrid.fontFamily
resultsGrid.fontSize
resultsGrid.fontWeight
resultsGrid.letterSpacing

needs https://github.com/Microsoft/angular2-slickgrid/pull/28
fixes #761
fixes #181
maybe others, it's been asked for a lot

Just installed Azure Data Studio 1.0.0, and tried modifying resultsGrid.rowHeight in user settings, with no effect, which I assume is because the code changes were reverted. Will you be revisiting this setting to try and get it implemented? It really would be a useful addition.
Many thanks for an awesome tool!

Results row height is not configurable, default of 29 is too space eating, unfortunately.


Endpoint to fetch JSON manifests of policies

This PR introduces an endpoint in the management API to get all the schemas of the policies, both the built-in ones and the ones loaded using the --policy-load-path option.
/cc @3scale/system @macejmic the Policy API has now final shape.
This is the output with the policies we have:
curl "http://<IP_ADDRESS>:8090/policies/" | jq
{
  "policies": [
    {
      "description": [
        "This policy allows to modify the path of a request. ",
        "The operations supported are sub and gsub based on ngx.re.sub and ",
        "ngx.re.gsub provided by OpenResty. Please check ",
        "https://github.com/openresty/lua-nginx-module for more details on how ",
        "to define regular expressions and learn the options supported."
      ],
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "URL rewriting policy",
      "configuration": {
        "properties": {
          "commands": {
            "items": {
              "properties": {
                "op": {
                  "oneOf": [
                    {
                      "const": "sub",
                      "description": "Substitutes the first match of the regex applied."
                    },
                    {
                      "const": "gsub",
                      "description": "Substitutes all the matches of the regex applied."
                    }
                  ],
                  "description": "Operation to be applied (sub or gsub)",
                  "type": "string"
                },
                "regex": {
                  "type": "string",
                  "description": "Regular expression to be matched"
                },
                "break": {
                  "type": "boolean",
                  "description": "when set to true, if the command rewrote the URL, it will be the last one applied"
                },
                "replace": {
                  "type": "string",
                  "description": "String that will replace what is matched by the regex"
                },
                "options": {
                  "type": "string",
                  "description": "Options that define how the regex matching is performed"
                }
              },
              "required": [
                "op",
                "regex",
                "replace"
              ],
              "type": "object"
            },
            "description": "List of rewriting commands to be applied",
            "type": "array"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": "This policy allows to modify the host of a request based on its path.",
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "Upstream policy",
      "configuration": {
        "properties": {
          "rules": {
            "items": {
              "properties": {
                "url": {
                  "type": "string",
                  "description": "new URL in case of match"
                },
                "regex": {
                  "type": "string",
                  "description": "regular expression to be matched"
                }
              },
              "required": [
                "regex",
                "url"
              ],
              "type": "object"
            },
            "description": "list of rules to be applied",
            "type": "array"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": "This policy enables CORS (Cross Origin Resource Sharing) request handling.",
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "CORS policy",
      "configuration": {
        "properties": {
          "allow_headers": {
            "items": {
              "type": "string"
            },
            "description": "Allowed headers",
            "type": "array"
          },
          "allow_credentials": {
            "type": "boolean",
            "description": "Whether the request can be made using credentials"
          },
          "allow_methods": {
            "items": {
              "enum": [
                "GET",
                "HEAD",
                "POST",
                "PUT",
                "DELETE",
                "PATCH",
                "OPTIONS",
                "TRACE",
                "CONNECT"
              ],
              "type": "string"
            },
            "description": "Allowed methods",
            "type": "array"
          },
          "allow_origin": {
            "type": "string",
            "description": "Origins for which the response can be shared with"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": [
        "This policy prints the request back to the client and optionally sets ",
        "a status code."
      ],
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "Echo policy",
      "configuration": {
        "properties": {
          "status": {
            "type": "integer",
            "description": "HTTP status code to be returned"
          },
          "exit": {
            "oneOf": [
              {
                "const": "request",
                "description": "Interrupts the processing of the request."
              },
              {
                "const": "set",
                "description": "Only skips the rewrite phase."
              }
            ],
            "description": "Exit mode",
            "type": "string"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": [
        "This policy allows to include custom headers that will be sent to the ",
        "upstream as well as modify or delete the ones included in the original ",
        "request. Similarly, this policy also allows to add, modify, and delete ",
        "the headers included in the response."
      ],
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "Headers policy",
      "configuration": {
        "definitions": {
          "commands": {
            "items": {
              "properties": {
                "op": {
                  "oneOf": [
                    {
                      "const": "add",
                      "description": "Adds a value to an existing header."
                    },
                    {
                      "const": "set",
                      "description": "Creates the header when not set, replaces its value when set."
                    },
                    {
                      "const": "push",
                      "description": "Creates the header when not set, adds the value when set."
                    }
                  ],
                  "description": "Operation to be applied",
                  "type": "string"
                },
                "header": {
                  "type": "string",
                  "description": "Header to be modified"
                },
                "value": {
                  "type": "string",
                  "description": "Value that will be added, set or pushed in the header"
                }
              },
              "required": [
                "op",
                "header",
                "value"
              ],
              "type": "object"
            },
            "description": "List of operations to apply to the headers",
            "type": "array"
          }
        },
        "properties": {
          "response": {
            "$ref": "#/definitions/commands"
          },
          "request": {
            "$ref": "#/definitions/commands"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": [
        "Configures a cache for the authentication calls against the 3scale ",
        "backend. This policy support three kinds of caching: \n",
        " - Strict: it only caches authorized calls. Denied and failed calls ",
        "invalidate the cache entry.\n",
        " - Resilient: caches authorized and denied calls. Failed calls do not ",
        "invalidate the cache. This allows us to authorize and deny calls ",
        "according to the result of the last request made even when backend is ",
        "down.\n",
        "- Allow: caches authorized and denied calls. When backend is ",
        "unavailable, it will cache an authorization. In practice, this means ",
        "that when backend is down _any_ request will be authorized unless last ",
        "call to backend for that request returned 'deny' (status code = 4xx). ",
        "Make sure to understand the implications of that before using this ",
        "mode. It makes sense only in very specific use cases.\n",
        "- None: disables caching."
      ],
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "Caching policy",
      "configuration": {
        "properties": {
          "caching_type": {
            "oneOf": [
              {
                "const": "resilient",
                "description": "Authorize according to last request when backend is down."
              },
              {
                "const": "strict",
                "description": "It only caches authorized calls."
              },
              {
                "const": "allow",
                "description": "When backend is down, allow everything unless seen before and denied."
              },
              {
                "const": "none",
                "description": "Disables caching."
              }
            ],
            "description": "Caching mode",
            "type": "string"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    },
    {
      "description": [
        "This policy adds support for a very small subset of SOAP. \n",
        "It expects a SOAP action URI in the SOAPAction header or the Content-Type ",
        "header. The SOAPAction header is used in v1.1 of the SOAP standard: ",
        "https://www.w3.org/TR/2000/NOTE-SOAP-20000508/#_Toc478383528 , whereas ",
        "the Content-Type header is used in v1.2 of the SOAP standard: ",
        "https://www.w3.org/TR/soap12-part2/#ActionFeature \n",
        "The SOAPAction URI is matched against the mapping rules defined in the ",
        "policy and calculates a usage based on that so it can be authorized and ",
        "reported against 3scale's backend."
      ],
      "$schema": "http://apicast.io/policy-v1/schema#manifest#",
      "name": "SOAP policy",
      "configuration": {
        "properties": {
          "mapping_rules": {
            "items": {
              "properties": {
                "delta": {
                  "type": "integer",
                  "description": "Value."
                },
                "metric_system_name": {
                  "type": "string",
                  "description": "Metric."
                },
                "pattern": {
                  "type": "string",
                  "description": "Pattern to match against the request."
                }
              },
              "required": [
                "pattern",
                "metric_system_name",
                "delta"
              ],
              "type": "object"
            },
            "description": "Mapping rules.",
            "type": "array"
          }
        },
        "type": "object"
      },
      "version": "0.1"
    }
  ]
}

:shipit: :shipit: :shipit: :shipit: :shipit: :shipit: :shipit: :shipit:

Thanks! @davidor ! 🚀


feat: Add default value in @description #parameters

Checklist

[x] npm test passes
[ ] tests and/or benchmarks are included
[ ] documentation is changed or added
[ ] commit message follows commit guidelines

Affected core subsystem(s)

Description of change

在description #parameters中的  {Description} 使用  eg:   关键字给参数设置默认值。

Codecov Report

Merging #14 (4846bec) into master (8e54b8a) will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #14      +/-   ##
==========================================
+ Coverage   94.92%   94.98%   +0.05%
==========================================
  Files           9        9
  Lines         355      359       +4
  Branches       84       86       +2
==========================================
+ Hits          337      341       +4
  Misses         18       18

Impacted Files
Coverage Δ

lib/comment/comment_parser.js
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

Checklist

[x]  npm test passes
[ ]  tests and/or benchmarks are included
[ ]  documentation is changed or added
[ ]  commit message follows commit guidelines

Affected core subsystem(s)
Description of change
在description #parameters中的 {Description} 使用 eg: 关键字给参数设置默认值。

example不能用在parameters中，否则会报错。参考：swagger


Add Licensify to staging and production

This shouldn't interfere with current version on the old infra as works via the eks.production.govuk.digital domain

Do you need to disable feed so it doesn't pick up tasks in prod?

Ah yes - because I assume it'll pick jobs up from the db.

Do you need to disable feed so it doesn't pick up tasks in prod?

I've switched off generating the feed deployment for production - tested with helm template and the production values.


[Feature-Request][PT Run] Display available action keys preview

Provide a description of the new feature / enhancement
I've been using PowerToys primarily for its Run module and I am loving it so far.
However, I find myself often forgetting what the action keys are, and I thought it would be a good idea to have an option to display a compact list of them, for example when the text box is empty.
I think new users would greatly benefit from a feature like this, helping them get used to this amazing productivity tool.

Neat idea!

We could create a plugin that reacts on the query action key: (or ak: as short version).

We could create a plugin that reacts on the query action key: (or ak: as short version).

I see where you're coming from with this idea, since it would mesh nicely with the plugin architecture.
But the original thought was to help forgetful people that can't remember any of them in the first place :)

Or we use ? as action key.

It is used as default of file search as far as I remember.

We could show this whenever the TextBox is empty?
Our an additional flyout that can also be invoked separately- gives us a bit more UX freedom as well.

Maybe something simple, like pressing backspace when the text box is already empty, so it doesn't constantly show up in your face

Here's a working PoC showing the action keys whenever the search box is empty (and tweaking the overall design). You can try it out by using this branch: https://github.com/microsoft/PowerToys/tree/users/niels9001%2Frun-cheatsheet

I don't think this should be shown at all times, some possibilities:

Make it a setting (hide / show it whenever searchbox is empty)
Put a button into the searchbar that allows you to collapse/enable this pane
Make it a character / plugin - but I think this goes against what this is meant for: instruct what you can do. Therefore, this panel should be visible

Happy to hear your thoughts on this.

Here's a working PoC showing the action keys whenever the search box is empty (and tweaking the overall design). You can try it out by using this branch: https://github.com/microsoft/PowerToys/tree/users/niels9001%2Frun-cheatsheet

I don't think this should be shown at all times, some possibilities:

Make it a setting (hide / show it whenever searchbox is empty)
Put a button into the searchbar that allows you to collapse/enable this pane
Make it a character / plugin - but I think this goes against what this is meant for: instruct what you can do. Therefore, this panel should be visible

Happy to hear your thoughts on this.

Great work.
I think it should be a settings and maybee a button. But not an activation key.

I am against an activation key as well.
Navigation through the list is a must, if we take lower screen resolutions or future possibility of new plugins being made.
Maybe also selecting a plugin could expand the item view and display a longer description of that plugin?

My suggestion is default to display on first launch.
Options

zero results.
Don't show
on first launch of app (default)

@XspeedPL @crutkas But what about scenarios where you want to quickly look up that specific action key? It would be a pain to either go to the docs (current) or open settings, enable the overview.
Isn't this (way) simpler and also more intuitive:

Clicking on the button shows the list of action keys. We hide it on TextChanged? This way it's always accessible, we avoid any UI clutter and don't make things more difficult with settings.
Keyboard navigation should work fine as well with this model (hitting tab once to navigate to the ? button)

So in a typical scenario, to use the feature an user has to do the following:

Standard open Alt + Space
Tab to the ? button
Press Space / Enter to press the button
Tab back to the text box
Actually start typing the command

I guess it's okay, but no matter what will be done, there always will be someone unsatisfied :P
So, in my opinion as well, having options is a good idea.

So in a typical scenario, to use the feature an user has to do the following:

Standard open Alt + Space
Tab to the ? button
Press Space / Enter to press the button
Tab back to the text box
Actually start typing the command

I guess it's okay, but no matter what will be done, there always will be someone unsatisfied :P
So, in my opinion as well, having options is a good idea.

I think we can optimize it:

Alt + Space to open Run
Tab to the ? button (when focused, it will open the panel reducing the need to click space or enter).
Focused will be set to the TextBox again, so entering any character will close the panel and will continue the current behavior. E.g. entering the action keyword.

That sounds great! Only thing left then is to inform users that pressing Tab is a possible action in the view.
Either in settings or maybe like a small text above the box "Press Tab to display action keys"

@niels9001 any updates? If you don't have time, maybe you could point me to a fork with your prototype to continue?

For what it's worth, I naively tried typing a ? to get something like this to show up as my very first instinctual attempt to recall the commands.
Truly, anything at all would be better than nothing! I'd even settle for a list in the main PowerToys settings windows. :)

@niels9001 suggestion (tab to show) is already something pretty cool.
I've made this comment in another duplicate thread, but, what about using the 'down' arrow key?
When displaying results from a search, we already expect to use the arrow keys for navigation, so maybe using it when the field is empty would feel more organic?
And instead of a button inside the box, maybe use a small legend outside of it, something like 'Show Hints (Tab)' aligned to the right corner, just bellow the magnifying glass.
This are just suggestions to foment a little the discussion, but having this feature in any manner is something that my ADHD brain would gladly accept.

Happy to hear your thoughts on this.

Press one of: backspace, space on the empty box?

My suggestion is default to display on first launch.

That's not enough IMVHO. My memory's failing me, so I won't remember. Especially since I'm a hibernation-not-shutdown-and-restart-everything-every-time-you-need-the-PC kinda guy, so the "first launch" of PowerToys Run is very seldom.

The work associated with this issue has been released as part of the 0.76 sprint. Please update PowerToys to the latest. https://github.com/microsoft/PowerToys/releases


get_provisioning_profile with platform "tvos" leads to SystemStackError

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
get_provisioning_profile with platform "tvos" leads to SystemStackError
Command executed
get_provisioning_profile(platform: tvos)
Complete output when running fastlane, including the stack trace and command used

 [✔] 🚀
+----------------------------+---------+----------------------------------------------------------------------------------------+
|                                                         Used plugins                                                          |
+----------------------------+---------+----------------------------------------------------------------------------------------+
| Plugin                     | Version | Action                                                                                |
+----------------------------+---------+----------------------------------------------------------------------------------------+
| fastlane-plugin-versioning | 0.4.6   | get_version_number_from_git_branch, increment_build_number_in_xcodeproj,               |
|                            |         | get_version_number_from_plist, get_build_number_from_plist, ci_build_number,           |
|                            |         | get_version_number_from_xcodeproj, increment_version_number_in_xcodeproj,              |
|                            |         | increment_version_number_in_plist, get_app_store_version_number, get_info_plist_path,  |
|                            |         | get_build_number_from_xcodeproj, increment_build_number_in_plist                       |
+----------------------------+---------+----------------------------------------------------------------------------------------+
10:03:31: --- Step: default_platform ---
10:03:31: ------------------------------
10:03:31: Driving the lane 'ios tvos' 🚀
10:03:31: -------------------------------------
10:03:31: --- Step: Switch to ios tvos lane ---
10:03:31: -------------------------------------
10:03:31: Cruising over to lane 'ios tvos' 🚖
10:03:31: -------------------------------------
10:03:31: --- Step: Switch to ios tvos lane ---
10:03:31: -------------------------------------
10:03:31: Cruising over to lane 'ios tvos' 🚖
10:03:31: -------------------------------------
10:03:31: --- Step: Switch to ios tvos lane ---
10:03:31: -------------------------------------
10:03:31: Cruising over to lane 'ios tvos' 🚖
10:03:31: -------------------------------------
10:03:31: --- Step: Switch to ios tvos lane ---
10:03:31: -------------------------------------
10:03:31: Cruising over to lane 'ios tvos' 🚖
10:03:31: -------------------------------------
[REMOVED REPEATING LINES FOR LENGTH]
10:03:31: -------------------------------------
[10:03:32]: Cruising over to lane 'ios tvos' 🚖
[10:03:32]: -------------------------------------
[10:03:32]: --- Step: Switch to ios tvos lane ---
[10:03:32]: -------------------------------------
[10:03:32]: Cruising over to lane 'ios tvos' 🚖
[10:03:32]: -------------------------------------
[10:03:32]: --- Step: Switch to ios tvos lane ---
[10:03:32]: -------------------------------------
[10:03:32]: Cruising over to lane 'ios tvos' 🚖
[10:03:32]: -------------------------------------
[10:03:32]: --- Step: Switch to ios tvos lane ---
[10:03:32]: -------------------------------------
[10:03:32]: Cruising over to lane 'ios tvos' 🚖
+------------------+----------+
|        Lane Context         |
+------------------+----------+
| DEFAULT_PLATFORM | ios      |
| PLATFORM_NAME    | ios      |
| LANE_NAME        | ios tvos |
+------------------+----------+
+------+-------------------------+-------------+
|               fastlane summary               |
+------+-------------------------+-------------+
| Step | Action                  | Time (in s) |
+------+-------------------------+-------------+
| 1    | default_platform        | 0           |
| 2    | Switch to ios tvos lane | 0           |
| 3    | Switch to ios tvos lane | 0           |
[REMOVED REPEATING LINES FOR LENGTH]
| 1788 | Switch to ios tvos lane | 0           |
| 1789 | Switch to ios tvos lane | 0           |
+------+-------------------------+-------------+
[10:03:33]: fastlane finished with errors
bundler: failed to load command: fastlane (/Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/bin/fastlane)
Traceback (most recent call last):
8978: from /Users/user/.rbenv/versions/2.7.2/bin/bundle:23:in <main>' 	8977: from /Users/user/.rbenv/versions/2.7.2/bin/bundle:23:in load'
8976: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/exe/bundle:37:in <top (required)>' 	8975: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/lib/bundler/friendly_errors.rb:130:in with_friendly_errors'
8974: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/exe/bundle:49:in block in <top (required)>' 	8973: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/lib/bundler/cli.rb:24:in start'
8972: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/lib/bundler/vendor/thor/lib/thor/base.rb:485:in start' 	8971: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.14/lib/bundler/cli.rb:30:in dispatch'
... 8966 levels...
4: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/fastlane-2.187.0/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb:89:in header' 	   3: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/tty-screen-0.8.1/lib/tty/screen.rb:76:in width'
2: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/tty-screen-0.8.1/lib/tty/screen.rb:64:in size' 	   1: from /Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/tty-screen-0.8.1/lib/tty/screen.rb:199:in size_from_ioctl'
/Users/user/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/tty-screen-0.8.1/lib/tty/screen.rb:215:in `ioctl?': stack level too deep (SystemStackError)

Environment

 🚫 fastlane environment 🚫
Stack

Key
Value

OS
11.4

Ruby
2.7.2

Bundler?
false

Git
git version 2.30.1 (Apple Git-130)

Installation Source
~/.rbenv/versions/2.7.2/bin/fastlane

Host
macOS 11.4 (20F71)

Ruby Lib Dir
~/.rbenv/versions/2.7.2/lib

OpenSSL Version
OpenSSL 1.1.1i  8 Dec 2020

Is contained
false

Is homebrew
false

Is installed via Fabric.app
false

Xcode Path
/Applications/Xcode.app/Contents/Developer/

Xcode Version
12.5.1

Swift Version
5.4.2

System Locale

Error

No Locale with UTF8 found 🚫

fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
#     https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
#     https://docs.fastlane.tools/plugins/available-plugins
#

# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane

default_platform(:ios)

platform :ios do

	lane :tvos do |options|

		get_provisioning_profile(platform: tvos)

	end
end

`./fastlane/Appfile`
# For more information about the Appfile, see:
#     https://docs.fastlane.tools/advanced/#appfile
app_identifier("xxx")
itc_team_id("xxx")
team_id("xxx")

fastlane gems

Gem
Version
Update-Status

fastlane
2.187.0
✅ Up-To-Date

Loaded fastlane plugins:

Plugin
Version
Update-Status

fastlane-plugin-versioning
0.4.6
✅ Up-To-Date

Loaded gems

Gem
Version

did_you_mean
1.5.0

rouge
2.0.7

xcpretty
0.3.0

terminal-notifier
2.0.0

multipart-post
2.0.0

word_wrap
1.0.0

tty-screen
0.8.1

tty-cursor
0.7.1

tty-spinner
0.9.3

artifactory
3.0.15

babosa
1.0.4

colored
1.2

highline
2.0.3

commander
4.6.0

faraday-cookie_jar
0.0.7

faraday_middleware
1.0.0

gh_inspector
1.1.3

security
0.1.3

dotenv
2.7.6

simctl
1.6.8

memoist
0.16.2

multi_json
1.15.0

os
1.1.1

googleauth
0.16.2

httpclient
2.8.3

google-apis-core
0.4.0

google-apis-playcustomapp_v1
0.5.0

google-apis-androidpublisher_v3
0.8.0

uri
0.10.0

rexml
3.2.5

nanaimo
0.3.0

colored2
3.1.2

claide
1.0.3

CFPropertyList
3.0.3

atomos
0.1.3

xcodeproj
1.20.0

unicode-display_width
1.7.0

terminal-table
1.8.0

plist
3.6.0

public_suffix
4.0.6

addressable
2.8.0

excon
0.84.0

ruby2_keywords
0.0.5

faraday-patron
1.0.0

faraday-net_http_persistent
1.2.0

faraday-net_http
1.0.1

faraday-httpclient
1.0.1

faraday-excon
1.1.0

faraday-em_synchrony
1.0.0

faraday-em_http
1.0.0

faraday
1.5.1

unf_ext
<IP_ADDRESS>

unf
0.1.4

domain_name
0.5.20190701

http-cookie
1.0.4

fastimage
2.2.4

json
2.5.1

mini_magick
4.11.0

naturally
2.2.1

rubyzip
2.3.2

xcpretty-travis-formatter
1.0.1

bundler
2.2.14

jwt
2.2.3

trailblazer-option
0.1.1

declarative
0.0.20

uber
0.1.0

representable
3.1.1

retriable
3.1.2

mini_mime
1.1.0

signet
0.15.0

webrick
1.7.0

rake
13.0.6

digest-crc
0.6.3

google-apis-storage_v1
0.6.0

google-apis-iamcredentials_v1
0.6.0

google-cloud-errors
1.1.0

google-cloud-env
1.5.0

google-cloud-core
1.6.0

google-cloud-storage
1.34.1

emoji_regex
3.2.2

aws-eventstream
1.1.1

aws-sigv4
1.2.4

aws-partitions
1.478.0

jmespath
1.4.0

aws-sdk-core
3.117.0

aws-sdk-kms
1.44.0

aws-sdk-s3
1.96.1

forwardable
1.3.1

logger
1.4.3

cgi
0.1.0

date
3.1.1

timeout
0.1.1

stringio
3.0.0

openssl
2.2.0

ipaddr
1.2.2

zlib
1.1.0

mutex_m
0.1.1

ostruct
0.3.3

strscan
3.0.0

io-console
0.5.9

delegate
0.2.0

fileutils
1.5.0

singleton
0.1.1

open3
0.1.1

yaml
0.1.1

psych
3.3.1

ox
2.13.2

fastlane-plugin-versioning
0.4.6

generated on: 2021-07-16

platform :ios do
That in combination with the platform parameter is the culprit. Since "tvos" platform wasn't supported according to the docs, I didn't even try to set it.

It happens because you have a lane called tvos that you call as a platform and you have a cycle (you can see how many times fastlane switches lane in summary). I think that you can easily fix it by using string or symbol as a platform name:
get_provisioning_profile(platform: :tvos)
get_provisioning_profile(platform: "tvos")

Ah damn, that was obvious. Thanks!


Get more posts?

According to the documentation, it seems we can only get recent 12 posts, is there a way to further get more posts?
(probably via pagination)

Correct, feel free to improve the code ;)


The @verida/account-web-vault package doesn't work in a Next.js application by default

Issue
When implementing Verida SSO on a Next.js app, we install the @verida/account-web-vault dependency. Upon running the application, there's an error loading the Sora font used by the login modal.
Workaround
Update the Next.js configuration to support loading static font files.

Install file-loader

yarn add -D file-loader

In the file next.config.mjs

const nextConfig = {
  webpack: (
    config,
    { buildId, dev, isServer, defaultLoaders, nextRuntime, webpack }
  ) => {
    config.module.rules.push({
      test: /\.(woff|woff2|eot|ttf|otf)$/,
      use: {
        loader: 'file-loader',
        options: {
          name: '[name].[ext]',
          publicPath: '/_next/static/fonts/',
          outputPath: `${isServer ? '../' : ''}static/fonts/`,
        },
      },
    });

    return config;
  }
}

Some solutions

Create an instruction for Next.js users
Create a dedicated @verida/account-web-vault-nextjs
How to identify a Next.js application and handle it in the code (not sure we can do that)

Another issue, by default the login modal shows 2 QR codes at once, and the layout is broken.

@andy-verida what's the error with the font? Is the error raised by Next or is it the browser saying the font is missing? Or "just" the layout/content is broken?
In any case the modal should define the font-family with Sora as the first one but also generic names as fallback (like "sans-serif"), so that if the Sora font is not available, the browser will be able to manage.
Then, as the modal tries to load the Sora font from a certain URL. Yes, we could find a way that works for both Next and other implementation, and/or we could load the font from a external CDN.
If the above doesn't work, then we could give some instructions for developers integrating on Next.

@aurelticot for now the app won't be built without that Next.js config.
I agree changing the font to load from CDN and having a fallback font is a better approach.


How to log transition from one NavController push to other?

I am building an app which has heavy usage of Nav and tab controls. I want to track user behavior on my app.
Ex: User navigated Page A to Page B
User navigated Page B to Tab C
Initially, I thought of function wrapping each NavController's push method but that doesn't seems to be a good idea.
Version : 2.1.0
Anyone has any other thoughts of solving this problem?

Hello! Thanks for opening an issue with us! As this seems like more of a support question I will urge that you ask this question on our forum or on our slack channel. Thanks for using Ionic!


unpin urllib3 once botocore works with urllib3 >= 2.0

because of https://github.com/boto/botocore/issues/2926, we have to peg urllib3 dependency  to < 2. see #453.
we might want to undo this once the upstream issues are fixed.

Yeah.
botocore supports new urllib since 1.34.63
https://github.com/boto/botocore/pull/3141
I guess time has come.

Yeah. botocore supports new urllib since 1.34.63 boto/botocore#3141
I guess time has come.

is that blocking something ? or you just notice it does work now ?

Kinda - I tried to install ccm as a dependency but urllib3 has been downgraded to old version.
Then I found this issue.

Kinda - I tried to install ccm as a dependency but urllib3 has been downgraded to old version. Then I found this issue.

o.k. one could try it ontop of a PR, and see if it's now works better across all supported python versions

NB: ccm works fine with latest urllib3 on python 3.10

NB: ccm works fine with latest urllib3/boto3/botocore on python 3.10

Well if I remember correctly the problem was with python 3.12


php_xdebug_cli_enable is unused

This is a follow up to https://github.com/geerlingguy/ansible-role-php-xdebug/pull/47
As indicated in that issue, php_xdebug_cli_enable is no longer used and references to it should be removed.
However, it's being replaced by a new option php_xdebug_cli_disable in https://github.com/geerlingguy/ansible-role-php-xdebug/pull/54. So it might make sense to just switch one for the other.

Thanks!

Thanks for your contributions.
I just wanted to note that (looking at https://github.com/geerlingguy/drupal-vm/pull/1566/commits/7c3d210bc2296ee5b9fa1eff45475a9f5fd2cd12) it seems the default changed from enabled by default to disabled by default.


accept URL.createObjectURL

Does plyr.io support using URL.createObjectURL(file) so we can load local files into the plyr.io ?
would be a really good feature if this can be achieved.

HI,  i managed to do achieve this with the following code:
<input type="file" id="video-file" accept="video/*"/>
	function loadLocalVideo(opt){ 		window.player.source = { 		    type: 'video', 		    sources: [ 		        { 		            src: opt.src, 		            type: opt.type, 		            provider: "html5" 		        }, 		    ] 		};		 	}
video loads fine from local disk now :-)


dapr init in GH codespace for version 1.0.0-rc.2 changes container names

Expected Behavior
redis container after dapr init should be named dapr_redis
Actual Behavior
After calling dapr init --runtime-version 1.0.0-rc.2 the redis container in GH codespaces is called codespaces-compose_dapr_redis_1
Steps to Reproduce the Problem

take dev container at https://github.com/microsoft/vscode-dev-containers/tree/master/containers/dapr-dotnetcore-3.1 as a starting point
change dapr version in both Dockerfile and devcontainer.json file to 1.0.0-rc.2. Dockerfile line 28 should be
&& wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.0.0-rc.2
devcontainer line 28 should be
"postCreateCommand": "dapr init --runtime-version 1.0.0-rc.2",
Start a new GitHub codespace based on this dev container
Once codespace is running, issue a docker ps command in the terminal. This gives the following output:

vscode ➜ ~/workspace/dapr-workshop-internal2 (main) $ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS                   PORTS               NAMES
4a7f2191d2bd        daprio/dapr:1.0.0-rc.2   "./placement"            7 minutes ago       Up 7 minutes                                 dapr_placement_dapr-dev-container
f5f6ec3b45dd        openzipkin/zipkin        "start-zipkin"           7 minutes ago       Up 7 minutes (healthy)   9410-9411/tcp       dapr_zipkin_dapr-dev-container
ee4e00647191        codespaces-compose_app   "/usr/local/share/do…"   7 minutes ago       Up 7 minutes                                 codespaces-compose_app_1
5e3b1f65a692        redis:latest             "docker-entrypoint.s…"   7 minutes ago       Up 7 minutes             6379/tcp            codespaces-compose_dapr_redis_1
Container names are 'off'.
This same issue is not present in non-RC dapr version.

@vermegi there was a change done in https://github.com/dapr/cli/pull/546 to remove redis-host flag and properly start redis as part of the dapr init command when the docker network is set.
Thus the container name is prefixed with the docker network name.
But there is a network alias set as dapr_redis. Would that be sufficient for your usecase?
cc @msfussell @yaron2

@vermegi there was a change done in https://github.com/dapr/cli/pull/546 to remove redis-host flag and properly start redis as part of the dapr init command when the docker network is set.
Thus the container name is prefixed with the docker network name.
But there is a network alias set as dapr_redis. Would that be sufficient for your usecase?
cc @msfussell @yaron2

So, if I understand correctly, there is no more REDIS_HOST flag/environment variable. But, when setting the DAPR_NETWORK environment variable, if in the init command you do:
dapr init --runtime-version 1.0.0-rc.2 --network dapr-dev-container
This will name the dapr with a network prefix, and that should be ok and picked up correctly by your apps.
In my case, my application is not able to start correctly, since it is unable to pick up/find the redis container.
I am starting from the dev container mentioned above, but changing version to 1.0.0-rc.2 both in dockerfile and devcontainer.json file. PostCreateCommand in devcontiner is:
dapr init --runtime-version 1.0.0-rc.2 --network dapr-dev-container
When I start my Dapr service (I am using the GBB workshop files: OrderService netcore) I get the following output:

Executing task: dapr run --app-id order-service --components-path /home/vscode/workspace/dapr-workshop-internal2/components/local --app-port 5100 --dapr-grpc-port 5101 --dapr-http-port 5180 <

WARNING: no application command found.
ℹ  Starting Dapr with id order-service.  Skipping certificate request and tls validation" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.026899916Z" level=info msg="local service entry announced: order-service -> <IP_ADDRESS>:34115" app_id=order-service instance=37648a211843 scope=dapr.contrib type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.026923517Z" level=info msg="Initialized name resolution to standalone" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.02755153Z" level=info msg="waiting for all outstanding components to be processed" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.105507532Z" level=warning msg="error initializing pub sub pubsub.redis: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.105561033Z" level=fatal msg="process component ordersub error: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
⚠  Could not update sidecar metadata for cliPID: PUT http://<IP_ADDRESS>:5180/v1.0/metadata/cliPID giving up after 5 attempts
✅  You're up and running! Dapr logs will appear here.
The last 2 error messages keep on popping up. I tried out several things to make the service find the redis container, but not successful.

So, if I understand correctly, there is no more REDIS_HOST flag/environment variable. But, when setting the DAPR_NETWORK environment variable, if in the init command you do:
dapr init --runtime-version 1.0.0-rc.2 --network dapr-dev-container
This will name the dapr with a network prefix, and that should be ok and picked up correctly by your apps.
In my case, my application is not able to start correctly, since it is unable to pick up/find the redis container.
I am starting from the dev container mentioned above, but changing version to 1.0.0-rc.2 both in dockerfile and devcontainer.json file. PostCreateCommand in devcontiner is:
dapr init --runtime-version 1.0.0-rc.2 --network dapr-dev-container
When I start my Dapr service (I am using the GBB workshop files: OrderService netcore) I get the following output:

Executing task: dapr run --app-id order-service --components-path /home/vscode/workspace/dapr-workshop-internal2/components/local --app-port 5100 --dapr-grpc-port 5101 --dapr-http-port 5180 <

WARNING: no application command found.
ℹ  Starting Dapr with id order-service.  Skipping certificate request and tls validation" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.026899916Z" level=info msg="local service entry announced: order-service -> <IP_ADDRESS>:34115" app_id=order-service instance=37648a211843 scope=dapr.contrib type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.026923517Z" level=info msg="Initialized name resolution to standalone" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.02755153Z" level=info msg="waiting for all outstanding components to be processed" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.105507532Z" level=warning msg="error initializing pub sub pubsub.redis: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
== DAPR == time="2021-01-21T08:40:00.105561033Z" level=fatal msg="process component ordersub error: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2
⚠  Could not update sidecar metadata for cliPID: PUT http://<IP_ADDRESS>:5180/v1.0/metadata/cliPID giving up after 5 attempts
✅  You're up and running! Dapr logs will appear here.
The last 2 error messages keep on popping up. I tried out several things to make the service find the redis container, but not successful.

@vermegi  I am assuming the application is also running the same docker network.
From the logs you pasted, one looks interesting:

== DAPR == time="2021-01-21T08:40:00.105507532Z" level=warning msg="error initializing pub sub pubsub.redis: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2

It should not be trying to connect to localhost:6379.
There is one more change needed to be done in the dapr-dev-container, the dapr CLI version also needs to be updated to 1.0.0-rc.3. With that the configuration files are updated to point to the network alias when a docker network is specified on dapr init. Eg:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
spec:
  type: pubsub.redis
  metadata:
  - name: redisHost
    value: dapr_redis:6379
  - name: redisPassword
    value: ""

It no longer points to localhost:6379 but to dapr_redis:6379. Please see the note here: https://github.com/dapr/cli#launch-dapr-and-your-app

Note: When in a specific Docker network, the Redis, Zipkin and placement service containers are given specific network aliases, dapr_redis, dapr_zipkin and dapr_placement, respectively. The default configuration files reflect the network alias rather than localhost when a docker network is specified.

Can you check with dapr cli version 1.0.0-rc.3?
In the dapr-dev-container Dockerfile change line https://github.com/microsoft/vscode-dev-containers/blob/master/containers/dapr-dotnetcore-3.1/.devcontainer/Dockerfile#L28
to be
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.0.0-rc.3

@vermegi  I am assuming the application is also running the same docker network.
From the logs you pasted, one looks interesting:

== DAPR == time="2021-01-21T08:40:00.105507532Z" level=warning msg="error initializing pub sub pubsub.redis: redis streams: error connecting to redis at localhost:6379: dial tcp <IP_ADDRESS>:6379: connect: connection refused" app_id=order-service instance=37648a211843 scope=dapr.runtime type=log ver=1.0.0-rc.2

It should not be trying to connect to localhost:6379.
There is one more change needed to be done in the dapr-dev-container, the dapr CLI version also needs to be updated to 1.0.0-rc.3. With that the configuration files are updated to point to the network alias when a docker network is specified on dapr init. Eg:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
  name: pubsub
spec:
  type: pubsub.redis
  metadata:
  - name: redisHost
    value: dapr_redis:6379
  - name: redisPassword
    value: ""

It no longer points to localhost:6379 but to dapr_redis:6379. Please see the note here: https://github.com/dapr/cli#launch-dapr-and-your-app

Note: When in a specific Docker network, the Redis, Zipkin and placement service containers are given specific network aliases, dapr_redis, dapr_zipkin and dapr_placement, respectively. The default configuration files reflect the network alias rather than localhost when a docker network is specified.

Can you check with dapr cli version 1.0.0-rc.3?
In the dapr-dev-container Dockerfile change line https://github.com/microsoft/vscode-dev-containers/blob/master/containers/dapr-dotnetcore-3.1/.devcontainer/Dockerfile#L28
to be
wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash -s 1.0.0-rc.3

Yes! Exellent! All good now:

Executing task: dapr run --app-id order-service --components-path /home/vscode/workspace/dapr-workshop-internal2/components/local --app-port 5100 --dapr-grpc-port 5101 --dapr-http-port 5180 <

WARNING: no application command found.
ℹ  Starting Dapr with id order-service. HTTP Port: 5180. gRPC Port: 5101
INFO[0000] starting Dapr Runtime -- version 1.0.0-rc.2 -- commit 196483d  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] log level set to: info                        app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] metrics server started on :34983/             app_id=order-service instance=a0c2ef4f73c5 scope=dapr.metrics type=log ver=1.0.0-rc.2
INFO[0000] standalone mode configured                    app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] app id: order-service                         app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] mTLS is disabled. Skipping certificate request and tls validation  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] local service entry announced: order-service -> <IP_ADDRESS>:33227  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.contrib type=log ver=1.0.0-rc.2
INFO[0000] Initialized name resolution to standalone     app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] waiting for all outstanding components to be processed  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] component loaded. name: ordersub, type: pubsub.redis  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] all outstanding components processed          app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC tracing middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.api type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC metrics middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.api type=log ver=1.0.0-rc.2
INFO[0000] API gRPC server is running on port 5101       app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled metrics http middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.http type=log ver=1.0.0-rc.2
INFO[0000] enabled tracing http middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.http type=log ver=1.0.0-rc.2
INFO[0000] http server is running on port 5180           app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC tracing middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.internal type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC metrics middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.internal type=log ver=1.0.0-rc.2
INFO[0000] internal gRPC server is running on port 33227  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] application host: <IP_ADDRESS>. application protocol: http. waiting on port 5100.  This will block until the app is listening on that port.  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
✅  You're up and running! Dapr logs will appear here.

Yes! Exellent! All good now:

Executing task: dapr run --app-id order-service --components-path /home/vscode/workspace/dapr-workshop-internal2/components/local --app-port 5100 --dapr-grpc-port 5101 --dapr-http-port 5180 <

WARNING: no application command found.
ℹ  Starting Dapr with id order-service. HTTP Port: 5180. gRPC Port: 5101
INFO[0000] starting Dapr Runtime -- version 1.0.0-rc.2 -- commit 196483d  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] log level set to: info                        app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] metrics server started on :34983/             app_id=order-service instance=a0c2ef4f73c5 scope=dapr.metrics type=log ver=1.0.0-rc.2
INFO[0000] standalone mode configured                    app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] app id: order-service                         app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] mTLS is disabled. Skipping certificate request and tls validation  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] local service entry announced: order-service -> <IP_ADDRESS>:33227  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.contrib type=log ver=1.0.0-rc.2
INFO[0000] Initialized name resolution to standalone     app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] waiting for all outstanding components to be processed  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] component loaded. name: ordersub, type: pubsub.redis  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] all outstanding components processed          app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC tracing middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.api type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC metrics middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.api type=log ver=1.0.0-rc.2
INFO[0000] API gRPC server is running on port 5101       app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled metrics http middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.http type=log ver=1.0.0-rc.2
INFO[0000] enabled tracing http middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.http type=log ver=1.0.0-rc.2
INFO[0000] http server is running on port 5180           app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC tracing middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.internal type=log ver=1.0.0-rc.2
INFO[0000] enabled gRPC metrics middleware               app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime.grpc.internal type=log ver=1.0.0-rc.2
INFO[0000] internal gRPC server is running on port 33227  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
INFO[0000] application host: <IP_ADDRESS>. application protocol: http. waiting on port 5100.  This will block until the app is listening on that port.  app_id=order-service instance=a0c2ef4f73c5 scope=dapr.runtime type=log ver=1.0.0-rc.2
✅  You're up and running! Dapr logs will appear here.


⚠ Fortnite has degraded performance

In 3c0e5a6, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1591 ms

Resolved: Fortnite performance has improved in 2e6caa0.


[Numpy] MobileBERT SQuAD training cannot reproduce the previous results

@ZheyuYe (FYI @szhengac )
I run the MobileBERT training on SQuAD again and the log is significantly different from the log reported in https://gluon-nlp-log.s3.amazonaws.com/squad_training_log/fintune_google_uncased_mobilebert_squad_2.0/finetune_squad2.0.log
To reproduce, just install the master-versino of GluonNLP and try the command in https://github.com/dmlc/gluon-nlp/blob/master/scripts/question_answering/commands/run_squad2_mobilebert.sh.

let's try to bisect where the problem occurred first. @ZheyuYe could you share which commit of gluonnlp and which version of mxnet you used for producing the above result?

@sxjscience Can you share your rerun log as well? Also how long does it take for one single run?

It takes 4 hours on a g4-12dn. The rerun log: https://gluonnlp-numpy-data.s3-us-west-2.amazonaws.com/debug/finetune_squad2.0_mobilebert_20200827.log You may check the best_exact and best_f1.

If I mistake not， latest gluonnlp and mxnet 0810 were used

Judging from the log, the reproduction version seems to converge too slowly. How about the other pre-trained models and Electra smalll wont take too long

The others work fine.

why the two logs have basically the same grad norm but very different losses?

i have tried mxnet 0810 and 0826, but none of them can reproduce the result.

Zheyu's log says the run happened on 8/20, so maybe it was an earlier GluonNLP commit that was working.

I think it may also be the random seed. We can find that the gradient norm is super-large for the early runs. I'm actually considering how to add proper gradient scaling to the MobileBERT and recheck the conversion script. @ZheyuYe Would you know which version of GluonNLP were you using when producing this log?

Conversion script is here: https://github.com/dmlc/gluon-nlp/blob/master/scripts/conversion_toolkits/convert_mobilebert.sh

I think it may also be the random seed. We can find that the gradient norm is super-large for the early runs. I'm actually considering how to add proper gradient scaling to the MobileBERT and recheck the conversion script. @ZheyuYe Would you know which version of GluonNLP were you using when producing this log?

The PR and branch related to this issue https://github.com/ZheyuYe/gluon-nlp/commits/batch says that it was based on https://github.com/dmlc/gluon-nlp/commit/d8b68c6e969c06b4a0386531a1635b84c821e4b0.  In fact, random seeds can be another potential factor, and in general I would use 10 or 28 as a seed instead of the default value 100.

I have tried several versions, but none of them can reproduce the result. I have trace back to commit d8b68c6e969c06b4a0386531a1635b84c821e4b0 on Aug 20 and 32e87d4d4aa20a6eb658ee90d765ccffbd160571 on Aug 14. For 9e268c0e5e0393e4ce19a4161ef2a2f8eb56797d on Aug 8, the code is not runnable.

I think the gradient for the early iterations are unreasonably large and we may consider to investigate that.

The problem is that no version can reproduce the result.

I added a markdown table in the first post for summarizing our observations. Feel free to directly edit.

@szha @szhengac I think we should check the conversion and the training script of MobileBERT again to solve the issue. Also, the problem is that MXNet is not reproducible even if we specify the random seed. We may change the defaults related to seeds as recommended in https://github.com/apache/incubator-mxnet/pull/18987.

In fact, I can confirm that the forward check introduced in https://github.com/dmlc/gluon-nlp/blob/66e5e057347c3710eb8fa27c134a9303309e94c0/scripts/conversion_toolkits/convert_mobilebert.py#L304-L313 has passed. May be the gradient is wrong.

@szha @szhengac @ZheyuYe I noticed that the gradient of mx.np.pad seems to be wrong, which causes the problem of MobileBERT, which uses the trigram embedding implemented via pad: https://github.com/dmlc/gluon-nlp/blob/66e5e057347c3710eb8fa27c134a9303309e94c0/src/gluonnlp/models/mobilebert.py#L690-L699
Minimal Reproducible Example
MXNet Implementation:
import mxnet as mx
mx.npx.set_np()

ctx = mx.gpu()
a = mx.np.ones((3, 3, 3), ctx=ctx)
mult = np.random.normal(0, 1, (3, 3, 3))
a.attach_grad()
with mx.autograd.record():
    b = mx.np.pad(a[:, 1:], ((0, 0), (0, 1), (0, 0))) * mx.np.array(mult, ctx=ctx)
    b = b.sum()
b.backward()
print(a.grad)

Output:
[[[0. 0. 0.]
  [1. 1. 1.]
  [1. 1. 1.]]

 [[0. 0. 0.]
  [1. 1. 1.]
  [1. 1. 1.]]

 [[0. 0. 0.]
  [1. 1. 1.]
  [1. 1. 1.]]] @gpu(0)

Jax Implementation:
from jax import grad
import jax.numpy as jnp
import numpy as np
mult = np.random.normal(0, 1, (3, 3, 3))

a = jnp.ones((3, 3, 3))

def f(x):
    b = jnp.pad(x[:, 1:], ((0, 0), (0, 1), (0, 0))) * jnp.array(mult)
    return b.sum()
print(grad(f)(a))

Output:
[[[ 0.          0.          0.        ]
  [ 0.3545383  -0.84326786 -0.31482664]
  [ 1.0994871  -1.230104    2.8007567 ]]

 [[ 0.          0.          0.        ]
  [ 1.0447861  -0.16119051 -0.39860427]
  [-0.7756538   0.5314936   1.4601654 ]]

 [[ 0.          0.          0.        ]
  [ 0.37878916 -2.0777514   0.96676654]
  [ 0.45230922  0.3094176  -0.43687683]]]

Discussed offline with @CassiniXu , fixing the pad operator in the MXNet side requires some time. Meanwhile, a simple fix is to use conv1d with padding to implement the code in https://github.com/dmlc/gluon-nlp/blob/66e5e057347c3710eb8fa27c134a9303309e94c0/src/gluonnlp/models/mobilebert.py#L690-L699
@ZheyuYe Would you try this approach?

Basically, we can use mx.npx.convolution, which has the same behavior as mx.nd.Convolution.

Confirm that https://github.com/apache/incubator-mxnet/pull/19044 fixed the bug. Closing this issue.

@szhengac Would you submit a PR to update the SQuAD v1 + SQuAD v2 results of MobileBERT?


Update Documentation with Bazel version

In order to build functions it requires the use of Bazel version 5.1.1 as in the CI pipeline. Updating the docs to reflect this, using the USE_BAZEL_VERSION=5.1.1 flag on all bazel commands.

You can also control the version of bazel by adding .bazelversion to bazel's working directory. Refer to: https://github.com/bazelbuild/bazel/blob/master/.bazelversion
Can you pls update this approach to the documentation as well?

And the DCO is required for PR submissions, see: https://github.com/apps/dco

You can also control the version of bazel by adding .bazelversion to bazel's working directory. Refer to: https://github.com/bazelbuild/bazel/blob/master/.bazelversion Can you pls update this approach to the documentation as well?

Took care of this! Feel free to reword if it is too verbose.

lgtm


[DTLS] dtls build failure in Target x86_64-pc-windows-gnu

DTLS uses x509-parse(https://docs.rs/x509-parser) and x509-parse uses ring (https://github.com/briansmith/ring).
It looks like ring doesn't work in target x86_64-pc-windows-gnu. However, it supports x86_64-pc-windows-msvc.

It is due to Ring's limitation https://github.com/briansmith/ring
switch to x86_64-pc-windows-msvc will fix this issue.


FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope

When testing my native addon with iojs 3 I get
FATAL ERROR: v8::HandleScope::CreateHandle() Cannot create a handle without a HandleScope

I'm following the pattern in test/cpp/objectwraphandle.cpp. The line it crashes on is this one:
v8::Local<v8::Function> cons = Nan::New(constructor);

I tried to run the test to see if it would pass, but #439 happened.

You have to actually declare your handle scopes. It should be Nan::HandleScope scope;, since Nan::HandleScope(); immediately destroys the created scope.

Here's my code:
Local<Value> GNFile::NewInstance(GrooveFile *file) {
    Nan::EscapableHandleScope scope;

    Local<Function> cons = Nan::New(constructor);
    Local<Object> instance = cons->NewInstance();

    GNFile *gn_file = node::ObjectWrap::Unwrap<GNFile>(instance);
    gn_file->file = file;

    return scope.Escape(instance);
}

Backtrace of the abort:
#1  0x00007ffff5f177ea in abort ()
   from /nix/store/qlxp7vb63fp8kx5vk9a0y3rj8svbvl27-glibc-2.21/lib/libc.so.6
#2  0x0000000000b44bf3 in node::OnFatalError(char const*, char const*) ()
#3  0x000000000064b095 in v8::Utils::ReportApiFailure(char const*, char const*) ()
#4  0x00000000007f7cff in v8::internal::HandleScope::Extend(v8::internal::Isolate*) ()
#5  0x000000000064be28 in v8::EscapableHandleScope::EscapableHandleScope(v8::Isolate*) ()
#6  0x00007ffff3aabfc7 in Nan::EscapableHandleScope::EscapableHandleScope (
    this=0x7fffffff8e90) at ../node_modules/nan/nan.h:352
#7  0x00007ffff3aaa305 in GNFile::NewInstance (file=0x7fffd40008c0) at ../src/file.cc:46

file.cc:46 is Nan::EscapableHandleScope scope;

you nailed it though, I replaced all the Nan::HandleScope() in my codebase with Nan::HandleScope scope and that fixed the problem. thanks!

Any solution to above problem? I am getting same error while using "java" node module.

Declare HandleScopes where necessary.

I have a similar issue where this error occurs in the line where I declare an EscapableHandleScope. When I declare a HandleScope before the error doesn't occur.
It doesn't make sense to have to declare a HandleScope before an EscapableHandleScope does it?
Code can be found here

No, that does not make sense. Let's see now. There's a mention of some issue workaround, that should not happen or be necessary. It seems to be a remnant of something old, there is no reason it would return a bad handle in this day and age. Remove that and the EscapableHandleScope and you should be all set. Also, the scopes in the NAN_METHODs are unnecessary and can be removed.

Actually, that code has been wrong forever. Already this commit was an incorrect fix https://github.com/eelcocramer/node-bluetooth-serial-port/commit/7eeb85f4e98526ccf54654b31ad5940dcc0c7520

Thanks a lot for the feedback!

root@n1:/tmp/pycore.43260/n1.conf# time wget http://localhost:8080/ipfs/QmeSnJjdUocf4pSifABZByHvNUbDjRCfS45bYHmQFq9GRx
--2015-10-28 09:15:26--  http://localhost:8080/ipfs/QmeSnJjdUocf4pSifABZByHvNUbDjRCfS45bYHmQFq9GRx
Resolving localhost (localhost)... <IP_ADDRESS>
Connecting to localhost (localhost)|<IP_ADDRESS>|:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 355856562 (339M) [application/octet-stream]
Saving to: 'QmeSnJjdUocf4pSifABZByHvNUbDjRCfS45bYHmQFq9GRx.2'
100%[======================================>] 355,856,562  652KB/s   in 11m 41s
2015-10-28 09:27:10 (496 KB/s) - 'QmeSnJjdUocf4pSifABZByHvNUbDjRCfS45bYHmQFq9GRx.2' saved [355856562/355856562]
real    11m44.472s
user    0m0.192s
sys     0m1.025s

I think I saw similar weirdness (besides that strange 'fix') pop up in other places while skimming through the code base, so better do a thorough inspection of the code for all platforms.
Every function not directly exposed to V8 which creates handles (or does anything with V8 to be sure) should have a HandleScope or EscapableHandleScope. Save for doing weird stuff with nested scopes in scopes, EscapableHandleScope should only be used when returning handles from the function. If it returns void or a non-V8 type, use HandleScope. Having scopes is of utmost importance in libuv callbacks, without them you get the titular fatal error.

:+1:


Gemma 2b converted to tflite seems to produce random results

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
None
OS Platform and Distribution
Android 14
MediaPipe Tasks SDK version
0.10.14
Task name (e.g. Image classification, Gesture recognition etc.)
Text generation
Programming Language and version (e.g. C++, Python, Java)
Java
Describe the actual behavior
Random output from .bin generated
Describe the expected behaviour
safetensors and .bin should give similar outputs
Standalone code/steps you may have used to try to get what you need
I trained a model to parse ingredients in recipes via this dataset: https://huggingface.co/datasets/AmarOk1412/ingredients
Model gives:
https://huggingface.co/AmarOk1412/fine_tuned_science_gemma2b-it
Prompt I use:
prompt = """

Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
You're a bot parsing ingredients from recipes that needs to provide a structure to use in a list. The answer is a list of ingredients with optional quantrity and unit.
There can be several ingredients in the same input. This will result in a list with multiple ingredients. e.g. 'sel et poivre' will give 	"sel" and "poivre" as ingredients.
Remove useless words, e.g. "sel au goût", "au goût" is not a part of the ingredient and useless in the list.

### Instruction:
{}

### Input:
{}

### Response:
{}"""

e.g.
User:
### Instruction:
parse

### Input:
sel et poivre

### Response:

Model:
[{'ingredient': 'sel', 'quantity': 'None', 'unit': 'None'}, {'ingredient': 'poivre', 'quantity': 'None', 'unit': 'None'}]

Using https://github.com/NSTiwari/Gemma-on-Android (that loads the .bin generated by mediapipe), I can't get useful output, however, using the safetensors with  https://huggingface.co/spaces/Aashi/NSTiwari-fine_tuned_science_gemma2b-it or in Colab seems ok.
Playbook I use to do the conversion: https://gist.github.com/AmarOk1412/edf86f72966768177b685099b76499a7#file-fine_tune_gemma_model-ipynb
I'd expect to have similar outputs for both .safetensors and .bin
Is there a way to dig more?
Other info / Complete Logs
No response

Yes, I met the same problem when apply a lora fine-tuning adapter. How to prevent the fine-tuning effect from being invalid during the model file conversion?

Also tried to increase the size of the dataset and use previous mediapipe versions without success

Hi @AmarOk1412,
We apologize for the delayed response. To assist you better, please specify if you are testing on an emulator or a physical device. If you are encountering a crash on a physical device, kindly provide its specifications.
Thank you!!

I tested on some pixel emulator and I have a Google Pixel 6 too.


Dependencies on vulnerable modules

<EMAIL_ADDRESS>has dependencies on code that is vulnerable in the qs and send modules.
This is the result from nsp (this was run on 0.8.0 but the dependency is still in master):
Name  Installed   Patched  Vulnerable Dependency
qs      0.6.5     >= 1.x<EMAIL_ADDRESS>><EMAIL_ADDRESS>><EMAIL_ADDRESS>send    0.1.2    >= 0.8.4<EMAIL_ADDRESS>><EMAIL_ADDRESS>><EMAIL_ADDRESS>
qs vulnerability: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7191
send vulnerability: https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6394

Thanks for the report; opened #2317.

Hi there! This issue is being closed because it has been inactive for a while.
But don't worry, it will live on with ProductPains! Check out it's new home: https://productpains.com/post/react-native/dependencies-on-vulnerable-modules-


No default

I've followed all the instructions but just seem to be getting a 'Cannot find default' on all pages.
I can see my categories but I can't see any products within that. The products have api visibility but nothing seems to load. Is there anything specific I need to do?

Never mind - started working. Didn't do anything specific must have just taken a bit of time.

But I am still encountering this issue. I have waited 20 mins +. Any solution for this or any way I can debug?

i am having the same issue


Add OpenThread API to erase network settings

This commit makes the following changes:

It adds a new OpenThread API named otNetworkSettingsErase() to  allow caller to erase all the settings stored on non-volatile  memory.

It exposes the same functionality through SPINEL_CMD_NET_CLEAR  spinel command. It also makes SPINEL_CMD_NET_CLEAR implementation  non-optional (not tied to CAP_NET_SAVE capability).

https://github.com/openthread/wpantund/pull/118 is the counterpat of this change in wpantund.

Current coverage is 71.28% (diff: 0.00%)

Merging #1123 into master will decrease coverage by 0.41%

@@             master      #1123   diff @@
==========================================
  Files           127        128     +1
  Lines         17856      18541   +685
  Methods        2506       2609   +103
  Messages          0          0
  Branches       2178       2251    +73
==========================================
+ Hits          12803      13217   +414
- Misses         4245       4487   +242
- Partials        808        837    +29

Powered by Codecov. Last update 79c7513...ba051a1

It seems that otFactoryReset() can now be implemented with calls to otNetworkSettingsErase() and otPlatformReset().  Should we consolidate these calls?

@jwhui, I am in favor of removing otFactoryReset() api fully.


Visualize Training

Hi Harald! Im wondering how to visualize the training or epoch proggress? is it possible? thanks in advance !

I haven't implemented any visualization for SimpleHTR.
You can have a look at TensorBoard, it should be quite simple to implement the visualization of the loss curve.

Thanks for your explaination. But, i want to ask another question. In SimpleHTR, you are using 95% training and 5% validation right? where did the test set? thanks in advance!

I just did a split for training and validation in this case.
You can simply split 90%-5%-5% for training+validation+test.

How do i implement the test data after i split it ? thanks! @githubharald


index1.md

Lists

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Hi @sush3031
It seems that similar changes have already been accepted earlier for this article you're editing, sorry about that. 😓
If you feel you have more to add, please feel free to open up a new PR.
Thanks again! 😊

If you have any questions, feel free to reach out through Gitter or by commenting below. 💬


Works in version 8.0.5 build 5089 and 8.0.6 build 5105

Tested on vesion 8.0.5 build 5089

https://imgur.com/bPCYPA8
AND
Tested on vesion 8.0.6 build 5105

https://imgur.com/RLyJp9Z

how to run it

Tested on vesion 8.0.5 build 5089

https://imgur.com/bPCYPA8
AND
Tested on vesion 8.0.6 build 5105

https://imgur.com/RLyJp9Z

How this thing works?

Working great.
For install, download Qt Creator from here https://wiki.qt.io/Qt_5.15_Release , then install. Run and open schema_generator.pro file and start under Qt Creator (F10).

What is the schema for the key as in 9.2.0 ?

What is the schema for the key as in 9.2.0 ?

I'm sorry but this repoistory is no longer maintained, also I've no idea about the key generation algorithm in new version.

Tested on many version and found that works with v.8.3, also v.8.3 looks compatible to open v.9.4.0 generated dbs files. Higher version either don't accept this type of activation or they don't seem to understand specific newly added ENUMs to the dbs files.


Add janscheffler to contributors

What's changed, or what was fixed?

Add janscheffler contributor

Fixes: N/A
Target Live Date: YYYY-MM-DD

[ ] This has been reviewed and approved by (NAME)
[ ] I have run npm test locally and all tests pass.
[ ] I have added the appropriate type-something label.
[ ] I've staged the site and manually verified that my content displays correctly.

CC: @petele

CC: @chybie


Set entity_type.jwt_configuration to computed

I missed a property in #85 I believe.

@rzeigler thank you this and #86 will be out in v0.1.49


Question: Is it possible to pass Pinecone embeddings as context in promptfoo's RAG eval?

Hey there, my LLM application uses Pinecone as RAG context to generate outputs. I was wondering if there's anyway to pass Pinecone embeddings as context in promptfoo so that the score I get gives a more accurate representation of my app's performance as opposed to directly putting text from my documents.

Hello!  I believe we spoke on Discord so I'm pasting the answer here:
Right now you have 2 options:

Include the context directly.  In other words, choose some examples that reflect the data in pinecone

Use a dynamic variable that calls your code to fetch from pinecone.  For example

tests:
  - vars:
      context: file://context_fetcher.py


Add -r (require) option to webpack cli

Why not add -r (require) option that would take the list of modules that will be required before requiring config file? (actually this would be passed to node -r). That would allow to use config in different formats more easily.
> webpack -r ts-node/register  ...

> webpack -r babel-register ...

The same thing would be useful for webpack-dev-server.

Would be a useful feature. I think a PR for this would be happily accepted.

I've mad a PR for this https://github.com/webpack/webpack/pull/3290

Different config formats are already supported. Just name the config file webpack.config.ts or webpack.config.babel.js

@sokra and who will compile webpack.config.ts?
If I start webpack in folder with webpack.config.ts it just gives an error on TS syntax.

@sokra could you elaborate on this? and who will compile webpack.config.ts?
If I start webpack in folder with webpack.config.ts it just gives an error on TS syntax.


How to get Data from Homeassistant to Loxone.

Im trying to get a temperatur value from Home Assistant into an Marker from Loxone, but i dont know how this should work. I have no experience in yaml. Please Help

@BarisYal you can not set a marker direct. You have to find something else which you can set directly.

@BarisYal I looked for a way to set some data from HA.
If you want you can try the following:

Add a virtual Input in Loxone. Add it to a Sheet and configure it as you want. For example as "Left-Right Buttons" or "Slider"
Then try it first to set it via the loxone app. .
If you can set it via loxone app you can use the output in loxone for example to set a value for a automation or something else.
Now the question is how to set it via home assistant and not by the loxone app. This is very simple. First of all you need the uuid for your virtual input. You get the uuid by following these steps:

You can download the config of your loxone by go to the following adress:
http://{ip-address-of-your-loxone}:{port}/data/LoxAPP3.json

{ip-address-of-your-loxone} --> replace with the ip of your loxone

{port} --> replace with your port (default: 80)

Search for the name of the virtual input.
And then try to send a websocket command over HA like in this example:

In this example I set the value to 12 for the input. If this is successful you see that that value changes for the virtual input.
Now you can use the method in all kind of automations in HA and set the value in the miniserver.

@BarisYal have tried it?


I downloaded the coco.zip file but there is no nn_final.pkl and nn_noc.pkl in it how should I get it

Thanks in advance for your reply

Hi,
You can try here: https://drive.google.com/drive/folders/1IkVs8WQJXPQVnc34pN9axwlUn-noRoFQ?usp=sharing


Extension disappeared

GitLens Version: 8.5.6
VSCode Version: 1.27.2
OS Version: Linux Mint 19 Cinnamon 3.8.9 (core <IP_ADDRESS>-generic)

After new reload of OS extension GitLens disappeared (screenshot)
I can't see any information in my source code, that provide this extension. Reinstallation this extension or vs code didn't apply any effect.

Same here, Windows 10 version 1709
VSCode Version: 1.27.2
GitLens Version: 8.5.6

Same here, but this only happened for one of my git repository, I test with a new git repository and it worked fine though:
OS Version: openSUSE Leap 42.3
VSCode Version: 1.27.2
GitLens Version: 8.5
@eyalcohen4 May be you can update the settings.json with "gitlens.outputLevel": "verbose" and reload the workspace and check the Output window of GitLens.
For me it gets stuck at "Repository found in ... ":
Git found: 2.13.6 @ /usr/bin/git in 88 ms
Starting repository search in 1 folders
Searching for repositories (depth=1) in 'workspace path' ...
Running("workspace path"): git rev-parse --show-toplevel
GitLens(v8.5.6) activated in 223 ms
Completed("workspace path"): git rev-parse --show-toplevel Completed in 105 ms
Repository found in "workspace path"

Can all of you please enable output channel logging by setting "gitlens.outputLevel": "debug" in your settings.json. This will enable logging to the GitLens channel in the Output pane. Once enabled, please attempt to reproduce the issue (if possible) and attach the log lines from the GitLens channel.

With "gitlens.outputLevel": "debug", for me the output is the same with as in the above comment.

In my output console same information. And one more thing: i get this problem in different computers.
Git found: 2.17.1 @ /usr/bin/git in 91 ms
Starting repository search in 1 folders
Searching for repositories (depth=1) in '<workspace_path>' ...
Running(<workspace_path>): git rev-parse --show-toplevel
GitLens(v8.5.6) activated in 213 ms
Completed(<workspace_path>): git rev-parse --show-toplevel Completed in 42 ms
Repository found in '<workspace_path>'

Is this related to #520 by any chance?

There is no antivirus on my linux systems. But the symptoms are similar.

@catexis, of course there is, https://www.clamav.net/ to name one. 😈
I saw you are using LM, but wanted to remind this thread to rule out the AV vector.

@catexis interesting -- thanks for the extra info -- this gives me much more to go on.

Windows 10 Pro, version 1803
VSCode Version: 1.28.1
GitLens Version: 8.5.6

@catexis when you repro the error -- if you turn on logging -- do you get any output in the GitLens output channel?

I can confirm that the solution suggested by @michaelgeorgeattard works on windows.
As described above, you must manually delete %userprofile%.vscode\extensions\eamodio.gitlens-8.5.6 for the reinstall to make gitlens visible again.

@michaelgeorgeattard thanks man that works great
for mac users:
remove the extension
reload vscode
go to setting.json by pressing cmd+shift+p > open user settings
delete all entries regarding the extension
close vs code
open vscode
install the extension

I'm closing this -- as the main issue seems to be extension installation issue, which I cannot control (vscode handles extension installation).