Component not rerendering in React Native

Sorry for the multiple issues, but I'm working on a blog post for this with React Native and I want to make sure I get this right.
So, I've got the example working with React Native, as in it's loading and rendering the todos if I populate the in the store.
The problem I'm having now is that when I add a todo, the component utilizing _buildState is not rerendering.
When I inspect the state, I see that the todos are being added (I log the array on initial render, and it gets populated as I add more) but the component is not rerendering.
App.tsx
import { ComponentBase } from 'resub';
import * as React from 'react'
import { View, Text , TouchableHighlight} from 'react-native'

import TodosStore = require('./TodosStore');

interface TodoListState {
    todos?: string[];
}

class TodoList extends ComponentBase<{}, TodoListState> {
    protected _buildState(props: {}, initialBuild: boolean): TodoListState {
        return {
            todos: TodosStore.getTodos()
        }
    }

    addTodo = () => {
      TodosStore.addTodo('yo')
    }

    render() {
      console.log('state:', this.state)
        return (
            <View style={{marginTop: 30}}>
                { this.state.todos.map((x, i) => {
                  return <Text key={i}>asfd</Text>
                } ) }
                <TouchableHighlight onPress={this.addTodo}>
                  <Text>add</Text>
                </TouchableHighlight>
            </View>
        );
    }
}

export = TodoList

TodoStore.tsx

import { StoreBase, AutoSubscribeStore, autoSubscribe } from 'resub';

@AutoSubscribeStore
class TodosStore extends StoreBase {
    private _todos: String[] = ['yo', 'one', 'two'];

    addTodo(todo: String) {
        this._todos.push(todo);
        this.trigger();
        console.log('t_todos:', this._todos)
    }

    @autoSubscribe
    getTodos() {
        return this._todos;
    }
}

export = new TodosStore();

@dabit3 I believe you've actually found a bug in the example :(
Data returned from stores should be immutable (using typescript readonly is a good way to do that for the objects, but arrays can be tricky).  If you mutate an object in a store, you end up changing the value in the component since it wasn't deep cloned before returning (for perf reasons)
instead of:
    addTodo(todo: String) {
        this._todos.push(todo);
        this.trigger();
        console.log('t_todos:', this._todos)
    }

do
    addTodo(todo: String) {
        this._todos = this._todos.concat(todo);
        this.trigger();
        console.log('t_todos:', this._todos)
    }

I'll update the example

Awesome, that worked! Thanks for your help.

@dabit3 In our usage or ReSub, we've actually defined a ReadOnlyArray type that we often return from stores to prevent exactly these classes of issues.
interface ReadOnlyArray<T> {
    readonly [n: number]: T;
    readonly length: number;
    concat(...items: (T | T[])[]): ReadOnlyArray<T>;
}

@berickson1 Ah nice, thanks for this!


JSONToShape not work

i must be create shape with json
i get json shape with this command :
 var a = lc.getSnapshot();
 var b = a1.shapes[0];
 var c = LC.JSONToShape(b)
but not draw b Object
I try This But Not Work
In contineu I first Draw A Shape And Get Json And clear Page And Run This
var Strt = '{';
$.each (b.data , function(key , val) { Strt += key+':"'+val+'",' } );
var str = Strt.substr(0,(Strt.length-1));
str += '}';
var x = 'LC.createShape("'+b.className+'" , '+str+')';
My String This :

LC.createShape("Rectangle" , {x:"603",y:"65",width:"-162",height:"100",strokeWidth:"5",strokeColor:"#000",fillColor:"#fff"})

and Eval This String
Response Object TO me But No Drawing
Tank You

Why are you using eval at all?

Also, in your initial example, what is the output of JSON.stringify(b)?

ok , i have Hard Day for solution to this problem.
And Tanks irskep , May Be My Description Not Good.
But the solution :
You get snapShot , Get Latest Shape , Convert TO Json And Send  Json to Other Machine
in reciver System convert Json to Shape , and Save This
 var a = lc.getSnapshot();
 var len = a.shapes.length;   len--;
 var b = a.shapes[len]
 var c = JSON.stringify(b)
Now Send C
On the Reciver System Run This
 var d = JSON.parse(c)
 var e = LC.JSONToShape(d)
 lc.saveShape(e,true,null)
Have Good Day And Good Luck

Again, I can't really help you unless you provide the string you are trying to parse.

Closing due to lack of info; reopen if you can provide what I asked for


Metrics parity (mostly) with existing SDKs

What was changed
Added metrics collection for most metrics that exist in Java/Go, excepting things that aren't implemented yet.
Some metrics are intentionally omitted:

unregistered_activity_invocation - Can't be done in core unless we add a flag to activity failure result, which is possible and probably a reasonable thing to do.
activity_endtoend_latency - Already redundant since it's essentially activity_schedule_to_start_latency + activity_execution_latency.
activity_task_error - Doesn't make sense in core. The core/lang contract requires all exceptions to be reported as failures.
workflow_task_no_completion - Not implemented in go. Seemingly redundant with workflow_task_execution_failed
corrupted_signals - Cannot be handled in core w/o propagating info back from lang

Other differences:

poller_start  changed to  num_pollers to become a gauge, which makes much more sense

Why?
Metrics!
Checklist

Relates to https://github.com/temporalio/sdk-core/issues/85

How was this tested:
Viewing emitted metrics in prometheus / otel collector

Any docs updates needed?

Draft while wrapping up remaining metrics

This is missing metrics for gRPC calls, but that can be added in a subsequent PR.


DotNetCore tool installer task should add dotnet global tool path to PATH for future tasks

dotnet global tools get installed at $home/.dotnet/tools (or %USERPROFILE%.dotnet\tools for windows). See here. This location is added to PATH when dotnet shell is re-opened. As this is not possible in a pipeline workflow where DotNetCore Installer task is used, should the installer task add these paths?

+1

The fix has been rolled out. Please retry the task for global tools scenario.

Just tried and see same issue as linked to above

@jchannon this fix works only if you are ".Net Core too installer" task. Do you have follwoing step in your yaml:

-task: DotNetCoreInstaller@0
inputs:
version: 2.2.103

This is my yaml:
# ASP.NET Core
# Build and test ASP.NET Core projects targeting .NET Core.
# Add steps that run tests, create a NuGet package, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core

#PRs trigger a build automatically

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

variables:
  buildConfiguration: 'Release'
  imageName: 'REDACTED:latest'

steps:
- task: AzureKeyVault@1
  displayName: 'Load secrets from Azure Key Vault'
  inputs:
    azureSubscription: 'Default'
    keyVaultName: 'REDACTED-key-vault'
    secretsFilter: 'REDACTED'

- script: |
    dotnet tool install --global minver-cli --version 1.0.0-beta.2
    minver --help
  displayName: 'Install MinVer CLI'

- script: |
    export MinVerVersionOverride=$(minver)
    echo $MinVerVersionOverride
  displayName: 'Get build version'

- script: |
    dotnet test ./tests/REDACTED.Tests.Unit/ --configuration $(buildConfiguration) --logger trx
  displayName: 'Run tests'
  env:
    AUTH_SERVER__DOCKER__REGISTRY: $(AuthServerDockerRegistry)
    AUTH_SERVER__DOCKER__USERNAME: $(AuthServerDockerUsername)
    AUTH_SERVER__DOCKER__PASSWORD: $(AuthServerDockerPassword)
    Vault: $(Vault)
    ClientId: $(ClientId)
    ClientSecret: $(ClientSecret)

- task: PublishTestResults@2
  displayName: 'Publish test results'
  condition: succeededOrFailed()
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'

- script: |
    docker build -t $AUTH_SERVER__DOCKER__REGISTRY/$(imageName):$(MinVerVersionOverride) --rm .
    echo $AUTH_SERVER__DOCKER__PASSWORD | docker login -u $AUTH_SERVER__DOCKER__USERNAME --password-stdin $AUTH_SERVER__DOCKER__REGISTRY
    docker push $AUTH_SERVER__DOCKER__REGISTRY/$(imageName)
  displayName: 'Build and push docker image'
  condition: and(succeeded(), eq(variables['System.PullRequest.PullRequestId'], ''))
  env:
    AUTH_SERVER__DOCKER__REGISTRY: $(AuthServerDockerRegistry)
    AUTH_SERVER__DOCKER__USERNAME: $(AuthServerDockerUsername)
    AUTH_SERVER__DOCKER__PASSWORD: $(AuthServerDockerPassword)

@jchannon your yaml does not have DotNetCoreInstaller task. Global tools will only work in case you have installed .net Core using this installer task. Even if the required .net core version is installed by default on hosted agents, you still need to to install it using installer task to be able to use Global tools.

That makes no sense. You have to install the dependency twice? What happens
on the second installation, does it install them somewhere different?
On Mon, 11 Feb 2019 at 09:13, Bishal Prasad<EMAIL_ADDRESS>wrote:

@jchannon https://github.com/jchannon your yaml does not have
DotNetCoreInstaller task. Global tools will only work in case you have
installed .net Core using this installer task. Even if the required .net
core version is installed by default on hosted agents, you still need to to
install it using installer task to be able to use Global tools.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Microsoft/azure-pipelines-tasks/issues/8429#issuecomment-462259126,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGaplzvDIC1fZ7YNj4Z5lEsV3YrsPuYks5vMTQ5gaJpZM4W775b
.

We are working on fixing this issue on hosted agent for default installations - however there are some open questions there and it might take some time for the fix.
Hence, in the meanwhile I am suggesting this workaround to you.

This bug seems to only occur on Ubuntu. Works perfectly on Windows.

This bug seems to only occur on Ubuntu. Works perfectly on Windows.

I can still reproduce the error on windows. It only happens about 10% of the time though.

We are working on fixing this issue on hosted agent for default installations

@bishal-pdMSFT Can you please reference the issue for the defaultt installation fix so we can track it?


MP_SMTP_AUTH_ALLOW_INSECURE can not be configured via env variable

I set MP_SMTP_AUTH_ALLOW_INSECURE = 1 in my environment.
I get this error.
ERRO[2023/03/31 16:13:13] SMTP authentication requires TLS encryption, run with `--smtp-auth-allow-insecure` to allow insecure authentication

I think it means that the enviroment variable is not being recognized.
Same applies to the MP_SMTP_AUTH_ACCEPT_ANY variable.

Can you please cop & paste the exact command you are running to start Mailpit, including trying to set the environment?

I have this in my docker-compose.yml.

  mail:
    image: axllent/mailpit
    ports:
      - 8025:8025
    environment:
      MP_DATA_FILE: /data/mail.data
      MP_SMTP_AUTH_ACCEPT_ANY: '1'
      MP_SMTP_AUTH_ALLOW_INSECURE: '1'
    healthcheck:
      test: [ "CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8025/readyz" ]
      interval: 5s
      timeout: 5s
      retries: 3
    volumes:
      - mail-data:/data

Looking at https://github.com/axllent/mailpit/blob/321c181a9c5e855e990ed1fe7e1305e1ad456cc0/cmd/root.go#L241-L248, it should be working fine. I wonder why it does not.

I would say because you are using ' in your config, so the value is seen literallt as '1' instead of 1. From memory you can only use "" or none at all. Try:
      MP_SMTP_AUTH_ACCEPT_ANY: 1
      MP_SMTP_AUTH_ALLOW_INSECURE: 1

or
      MP_SMTP_AUTH_ACCEPT_ANY: "1"
      MP_SMTP_AUTH_ALLOW_INSECURE: "1"

Tried both, did not work.

You are absolutely correct, these flags weren't being recognised, my apologies. I found the bug and have just released v1.5.3 which will fix it for you. The latest docker image has been updated, so make sure to pull the latest (docker pull axllent/mailpit)

Thanks!


ncm2 doesn't work

OS
Mac OS 10.13.4
neovim :version output
0.3.0
Minimal vimrc for reproducing the issue
Plug 'ncm2/ncm2'
Plug 'roxma/nvim-yarp'

autocmd BufEnter * call ncm2#enable_for_buffer()
inoremap <expr> <CR> (pumvisible() ? "\<c-y>\<cr>" : "\<CR>")
inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<Tab>"
inoremap <expr> <S-Tab> pumvisible() ? "\<C-p>" : "\<S-Tab>"

set completeopt=noinsert,menuone,noselect
set shortmess+=c

Issue
The auto-completion popup never appears no matter what even though all the requirements are meet. I don't know but I might consider to revert this commit.

That’s the expected behavior. You havent install any completion source.


[REQUEST] Namespace option

It would be more convenient to have a separate parameter for a namespace (just like in grpc gen).
For example, I might have project placed in ./src/Project.Repo.Queries/ and would like to have my queries be in Project.Repo.Queries.Gen namespace

you mean, a base_namespace setting like this?
https://buf.build/grpc/csharp?version=v1.67.0
Good idea, if you want you can submit a PR or I'll get to it sometime in the following weeks.

i guess it is the property, no idea about grpc gen internals
usually we specify it in proto file like
syntax = "proto3";

// so all generated classes will be placed in Company.Greeter namespace
option csharp_namespace = "Company.Greeter";

package greet;

// services and messages ...

added in latest release:)


Mobs appeared highlighted

When Fortem is enabled (and maybe other toggle-able Legacies), when you point at a mob, it becomes solid white, like the telekinesis highlighting thing.

Yup it's kinda on purpose (as in I enabled it). It's what's become of Telekinesis at the moment (I was testing selecting entities and forgot to turn it off). Turns out selecting isn't working properly, it's weird. Only works at certain angles server-side. No idea why.
Anyway I'll disable telekinesis for now to fix it.


Updated google-cloud-storage

changes in requirements.txt

TY for the PR! Closing in favor of https://github.com/GoogleCloudPlatform/contact-center-ai-samples/pull/133, which implements the same change.


No connection. Digitalocean host

Connected to server. Sending site
/Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:228:in initialize': Connection refused - connect(2) for "maukasta.fi" port 21 (Errno::ECONNREFUSED)         from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:228:in open'
from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:228:in block in open_socket'         from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/timeout.rb:74:in timeout'
from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:223:in open_socket'         from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:248:in block in connect'
from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/monitor.rb:211:in mon_synchronize'         from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:247:in connect'
from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:160:in initialize'         from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:133:in new'
from /Users/andreaskoutsoukos/.rbenv/versions/2.2.1/lib/ruby/2.2.0/net/ftp.rb:133:in open'         from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/gems/glynn-1.2.2/lib/glynn/ftp.rb:23:in connect'
from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/gems/glynn-1.2.2/lib/glynn/ftp.rb:16:in sync'         from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/gems/glynn-1.2.2/bin/glynn:88:in <top (required)>'
from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/bin/glynn:23:in load'         from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/bin/glynn:23:in '
from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in eval'         from /Users/andreaskoutsoukos/.rvm/gems/ruby-2.2.1/bin/ruby_executable_hooks:15:in '
My setting are _glynn.yml
ftp_host: 'maukasta.fi'
ftp_dir: '/var/www/maukasta.fi/public_html/'
ftp_passive: false
optional
ftp_port: 21                  # default 21
ftp_username: 'root'     # default read from stdin
ftp_password: '....' # default read from stdin
ftp_secure: true              # default false
But why console says ftp secure false?

This error indicates glynn wasn't able to connect to that host. It would indicate an error with your hosting provider, or your server configuration, not this library.

But if i change the option on _glynn.yml they will not effect?

My bad. Nice catch actually.
It would look like the _glynn.yml config is loaded after we set some ftp vars.
https://github.com/dmathieu/glynn/blob/b84f4648fce0d869cb90caabacbe0cccd1694761/bin/glynn#L27
Moving that file loading before we set those vars would fix your issue. Want to open a PR?

So will the _config.yml setup loaded before?
I am not good at open, this is not my core skills. :)

Yes. If you set your config in _config.yml, things should be working properly. I'll fix this in the next few days.

Great thanks.


Pre-flight Emailed Invoice Report DAG

When we were on Symphony, a test report was generated that checked the invoices for validity (using the same criteria we're using in the payments_to_orafin DAG) and then emailing the report at 4pm on Tuesdays and Thursdays ahead of the regular payments_to_orafin DAG runs on Wednesday and Fridays. This would allow for manual remediation by Acquisitions staff before the feeder-file is generated and sent to AP

We no longer need to do this per Suzette


JavaScript for loop multiple variable initialization not recognized.

Challenge Iterate Through an Array with a For Loop has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
// Example
var ourArr = [ 9, 10, 11, 12];
var ourTotal = 0;

for (var i = 0; i < ourArr.length; i++) {
  ourTotal += ourArr[i];
}

// Setup
var myArr = [ 2, 3, 4, 5, 6];

// Only change code below this line

for (var i = 0, total = 0; i < myArr.length; i++) {
  total += myArr[i];
}

total should be declared and initialized to 0
total should equal 20
You should use a for loop to iterate through myArr
Do not set total to 20 directly
Within FOR loops you can initialize multiple variables at once during the "[initialization]" step. However, this exercise is not recognizing the multiple var assignment during the initialization process.
  Think you're better 'n all of us!  You're a showoff, that's what it it.  :wink:
Nice solution, actually.
I think we could probably change the regex to specifically look for total = 0, dropping the var requirement.  The only downside there is that you could technically solve it without the var at all, which would be bad.
I'd like some opinions from the other @FreeCodeCamp/issue-moderators.

I believe it should look for 'var total' somewhere, as an invisible requirement


"Top N Slowest Example Group" from --profile does not account for time spent in before(:context) hooks

The implementation calculates the total example group time by summing the time of each individual example.  Problem is, the time in before/after :context hooks is not included in individual example times so it's completely ignored.  This should be fixed, because if you are using :context hooks it may be because of a slow operation and you wouldn't want it ignored when trying to find the slowest example groups.

Hi, i wrote this feature... i think it's describing the bug you would like to be fixed, I am right ?
https://gist.github.com/denislaliberte/a20c543120d97d60f785

Yes, that describes the issue.

I tried to help with that issue but I think I'm stuck.
I think I can't put the run time in a instance variable of example_group, should I use the metadata to store this variable ?
Maybe there is something realy simple that I dont understand? If anyone have advice for the direction to take, I be glad to try again.
https://gist.github.com/denislaliberte/78ef80c014a39eb70cf5

Each example gets its own instance of the example group class of which its a part -- so you don't want to store the time at the instance level of the example group.  Instead, you want to store the time at the class level of the example group.  It can go in an instance variable of the class, though (e.g. one set and accessed by a class method rather than an instance method).
I'd also recommend measuring the runtime of the group as a whole (by measuring the duration of ExampleGroup.run) rather than simply measuring the runtime of before(:context) hooks.  There are after(:context) hooks to think about as well, and it's simpler just to capture the total run time of the group than to capture the run time for the :context hooks and each individual example, and then sum it all up.  "Summing it all up" is what we're doing now but that could be greatly simplified by tracking the runtime of the group as a whole.
Alternately, we could update the profile formatter so that it tracks the run time of each group by handling example_group_started and example_group_finished events.  Actually, the more I think about that, the more it appeals to me: then there's no need for extra logic or state on the example group itself, and users don't pay the runtime cost of the extra code for this unless they are actually using the --profile option.
Does that make sense?

Thanks for the feed back @myronmarston , I like the idea of using the profile formatter and events, I will try to implement it this week.

This would be a nice way to handle it, let me know if you have any questions about the formatter protocol.

Thanks for the offer @JonRowe, I think i'm on the right path, I'll come back for advice if I encounter issues.

I'd like some comments on this branch, it's not ready but I think it's a step in the right direction. issue-1878-wip
Maybe the new code in the profile_formatter.rb should be in it's own class, maybe someting like 'profiler.rb' so we could reuse it in the json_formatter.rb and also move some logic from the notifications.rb to this new class.
And the features don't pass but the when I run the same code from a rspec ( $ bundle exec rspec spec/test_spec.rb --profile) file it's working.

I left some feedback on the code but realise I didn't address your questions, so here goes:

Maybe the new code in the profile_formatter.rb should be in it's own class, maybe someting like 'profiler.rb' so we could reuse it in the json_formatter.rb and also move some logic from the notifications.rb to this new class.

Well ProfileNotification is the profiler in this case, I'd be ok with moving more of the logic into that class.

And the features don't pass but the when I run the same code from a rspec ( $ bundle exec rspec spec/test_spec.rb --profile) file it's working.

This is a reason why it's useful just to open a PR (tagging it WIP or leaving a comment to that effect if necessary) rather than asking for feedback on a branch. Not only is it easier to leave inline comments but it kicks off Travis which gives us the output easily! In this case I can't help without some of the output :)

Thanks, I will do a little clean-up and submit a pull request.


Add exclusion paths for logs

What does this PR do?
Add an option to exclude log files by name when wildcarding directories.
Motivation
When log collection is enabled with a wildcard path like /var/log/app* (to handle rotate log file like /var/log/app.log, /var/log/app.log.1, /var/log/app.log.2, etc.) it can be convenient to exclude compressed file (e.g. /var/log/app.log.3.gz). Such a configuration would then looks like :
logs:
  - type: file
    path: "/var/log/app.*"
    exclude_paths:
      - "/var/log/app.*.gz"
    service: "app"
    source: "app.stats"

Additional Notes
N/A

I'm wondering what's happening if a file is appearing with one of the configured excluded path, had you the chance to try it? Will it go through searchFiles and be ignored?

Yes I validate this behaviour, it will indeed go through searchFiles so if a file appears and matchs one of the exclude_paths it won't be accounted for.


Request/Split -  RHN headers have undefined characters in Spanish

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

Action Performed:

Launch the app
Click the + icon in a Group DM
Enter an amount into the BNP and select the Next confirmation button
Verify that the next screen you see is the final Split Bill confirmation screen

Expected Result:
RHN headers should be displayed properly
Actual Result:
RHN headers have undefined characters in Spanish
Workaround:
Unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause
Slack conversation:
View all open jobs on GitHub

Triggered auto assignment to @pecanoro (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Sorry, those are not undefined characters, Spanish has opening exclamation and interrogation marks beside the closing one. There is no bug, so I am going to close the issue!


build(deps-docs): remove jupyter

Summary of Changes
Remove docs dependency jupyter since the docs don't need it.

:tada: This PR is included in version 0.22.0 :tada:
The release is available on:

v0.22.0
GitHub release

Your semantic-release bot :package::rocket:


Replace Python 3.7 with 3.12 in test matrix

Python 3.7 is deprecated and no longer downloadable via the standard actions setup, so remove and replace with Python 3.12
Documentation test failure appears to be due to Yahoo Finance blocking Github Actions - the failing URL is valid.

The URL is actually good, but for some reason some URLs appear broken from Github CI sometimes. The solution is to disable markdown link check: could you enclose the offending link in <!-- markdown-link-check-disable -->...<!-- markdown-link-check-ensable -->?

@eprbell Done, needs approval from you to run


General confusion

I read:
"Installing the Cordova Build task
To setup a Cordova build in Azure Pipelines or TFS 2015, you will need to install the Cordova Build task in your collection.
Azure Pipelines: Simply install the VSTS Extension for Cordova."
Ok and then what? I installed it, but I don't see a cordova option anywhere in Azure Pipelines? :(

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

ID: 66f13eb3-d83b-f208-30df-77c261061b02
Version Independent ID: 487dd1ee-b6df-4ba4-3fec-c6ba423185d3
Content: Build and Test Cordova Projects - Azure Pipelines
Content Source: docs/pipelines/archive/apps/mobile/cordova-build.md
Product: devops
GitHub Login: @andyjlewis
Microsoft Alias: alewis

I don't understand how the Cordova build is supposed to be accessed? Do I need VS Studio?

Keep-alive


refactor(ingest/graph): Factor out filter logic

Trying to trim down datahub graph a bit. Pretty much just copy pasting, aside from removing self from arguments
Checklist

[ ] The PR conforms to DataHub's Contributing Guideline (particularly Commit Message Format)
[ ] Links to related issues (if applicable)
[ ] Tests for the changes have been added/updated (if applicable)
[ ] Docs related to the changes have been added/updated (if applicable). If a new feature has been added a Usage Guide has been added for the same.
[ ] For any breaking change/potential downtime/deprecation/big changes an entry has been made in Updating DataHub

@asikowitz looks like there's an import issue with RemovedStatusFilter, but lgtm other than that


Ideas for a faster/lower latency system

I thought I was smart when I started my own project 3 days ago that grabbed the JPEG image and dumped it through 80211_tx function. Little did I know that I was re-inventing the wheel...
Anyway, I read some of your code and it's actually smart, how you've implemented error correction, why you do so, etc. My last trick (as in idea, haven't done that yet) was to:

Tell the camera to spit out raw pixels (much faster than JPEG I think)
Maaaaaaybe apply some kind of compression on each packet?
Encode each packet with FEC (is this feasible or you need the whole video frame?)
Reduce the DMA buffer to 2-3x the max 80211 frame size (1500-32 but taking into account compression/FEC/other metadata)
Access the DMA directly with "just enough" data to send a packet frame (essentially override the dma ISR esp-camera sets up)

There's also the ability to disable the sanity checks that 80211_tx does by overwriting ieee80211_raw_frame_sanity_check to always return ESP_OK. Check out some of the esp32 deauther projects
What do you think? Have you thought of these or even tried them?

Oh I also wanted to ask what's up with I2S and DMA. The camera is advertised as an I2S device but I see it is used with DMA. What's up with that? What's the connection between the two interfaces? Maybe I2S can be used instead of DMA to achieve streaming of frame data?

I was also thinking if there's an upside on using a CMOS camera to be able to apply FEC - would turn the ESP into a vTX. How much better of a picture would we get?

Unfortunately I had to pause the project due to some personal reasons. But feel free to take this and improve it in whatever way you see fit.
A few comments:

Tell the camera to spit out raw pixels (much faster than JPEG I think)
The problem with this is that you'll quickly hit the I2S transfer bandwidth limit. At 320x240 resolution, 2 bytes per pixel, 30 FPS, you're looking at 4.6MBytes per second, or 36Mbits/s, way above what you can do with I2S on this camera. IIRC the limit was around 20Mbits/s. At 640x480 you need 4x the bandwidth and so on, so not practical at all.
There's the RAM limit as well - uncompressed buffers are significantly bigger than JPEG one.

Maaaaaaybe apply some kind of compression on each packet?
JPEG is that compression, with the advantage of being done by the camera itself, so no CPU spent on it.

Access the DMA directly with "just enough" data to send a packet frame (essentially override the dma ISR esp-camera sets
up)
This is already done in the code. The data is processed (FEC encoded) as it comes from the DMA buffers, without waiting for a full frame transfer.

Oh I also wanted to ask what's up with I2S and DMA. The camera is advertised as an I2S device but I see it is used with DMA. What's up with that? What's the connection between the two interfaces? Maybe I2S can be used instead of DMA to achieve streaming of frame data?

So the camera talks with the esp32 using a parallel, 8 bit interface. The ESP uses its I2S peripheral in a special configuration to read all 8 bits of data for each clock using DMA transfers. So far it's the most optimal way to get data in the ESP - both from a bandwidth point of view (due to the parallel I2S trick) and also from a CPU usage point of view (due to DMA).

The ESP camera component was modified to send the data as it's received from the DMA instead of frame-by-frame basis.
This decreases latency quite significantly (10-20 ms) and reduces the need to allocate full frames in PSRAM.

2nd line in the readme. Lol I'm blind...
So there's nothing left to overcome the latency? From what I gather, the bottleneck is the JPEG encoder inside the camera, is it not?
If there's nothing more we can do with this exact hardware, maybe we can use a chip that compresses (maybe even FEC) the raw (or whatever) camera data and DMAs it to the ESP? (although it sounds like an EXTREMELY specific chip... I think that the only way to do this is an FPGA and in that case we can go with much more standard MIPI-CSI cameras (DJI cameras))

Hmm, I'm not sure it's in the camera. My guess is that the jpeg compressor doesn't wait for a full frame, since that would require a full frame worth of RAM in the camera and that's expensive. It's probable that the compressor starts as soon as data becomes available - so as soon as 8 lines worth of data are read from the sensor.
In my tests, the PI added a lot fo the latency. I don't remember the specifics but the latency was fluctuating quite a lot on the pi, even without the camera in the equation - just sending data from the esp and measuring how long it takes to display it.

Sidenote: According to your rates, you're way past the specs described in OV2640 datasheet. You're not only capturing, but also encoding, sending, receiving, decoding and showing images at 45+ FPS, while the manufacturer states that it just captures SVGA images at 30 FPS. Impressive.
I wanna first "refactor" the code, split it in files and use ESP-IDF. I'd really like to move it to C, as the whole ESP-IDF system is around C (and I really dislike Arduino). I think that a C codebase will be faster (not by much though, damn your C++ is impressive).
About the Pi (that's actually something I'm comfortable C): I'll definitely move to Rust for transceiver part and have a separate thread running MPV for rendering using VPAAPI (hardware accelerated and doesn't need X11 and friends). Also the resulting program will run as PID 1 - we don't need ANY other process. Last, I'm gonna try (and maybe optimize for) an RT kernel.

Any idea to improve the low latency when using higher resolution #33
I have the same question here.

Not sure what project status,but new esp32-p4 are looking promising.
https://www.youtube.com/watch?v=5sKs1jMDLFM


[CCXDEV-14176] GH actions: add konflux PR automerging

Description
[CCXDEV-14176] GH actions: add konflux PR automerging
Type of change

Configuration update

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.86%. Comparing base (87b1291) to head (a537923).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #281   +/-   ##
=======================================
  Coverage   85.86%   85.86%
=======================================
  Files          28       28
  Lines        1196     1196
=======================================
  Hits         1027     1027
  Misses        169      169

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


fix comptime Bitmask for Zig >= 0.11

Fixes #11

I hear ya… we’re so early on Zig it’s going to be annoying for a while. But I can see their vision :) I’m happy to be pretty active with whatever you need to keep it up to date. I’ve written a C++ ODBC extension and I’d rather keep up to date with Zig master than work in C++ any day of the week.
I know how much work you’ve put into these libs and I feel what you’ve got so far is a bit of a hidden treasure for enabling a Zig data ecosystem.


Added configurable behaviour for switching to require-in-the-middle…

… based load time instrumentation for AWS integration

Pull Request Test Coverage Report for Build 548

0 of 0   changed or added relevant lines in 0 files are covered.
95 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.4%) to 69.63%

Files with Coverage Reduction
New Missed Lines
%

dist/plugins/config/TraceConfig.js
8
74.83%

dist/plugins/integrations/AWSIntegration.js
87
67.15%

Totals

Change from base Build 546:
-0.4%

Covered Lines:
2194

Relevant Lines:
2921

💛  - Coveralls


getToken() returns null

Current behavior:
Call to getToken() returns null on async response.
First, steps already checked:
-Firebase project created.
-google-services.json is downloaded and present into root path and into platforms/android/app
-clean installation removing platform and plugins folder
-the bundle id is configured in config.xml and into firebase project
-I have tried with --livereload parameter and without it  runs
Installed versions:
cordova-plugin-firebasex : 9.1.2
cordova-plugin-androidx: 2.0.0
cordova-plugin-androidx-adapter: 1.1.1
@ionic-native/firebase-x: 5.26.0
Environment versions:
Cordova-CLI:9.0.0
@ionic/angular 5.1.0
cordova-android: 8.1.0
node: 10.16.1
Samsung with Android 9 version
Cordova plugin list:
cordova-plugin-androidx 2.0.0 "cordova-plugin-androidx"
cordova-plugin-androidx-adapter 1.1.1 "cordova-plugin-androidx-adapter"
cordova-plugin-camera 4.1.0 "Camera"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-enable-multidex 0.2.0 "Enable Multidex"
cordova-plugin-file 6.0.2 "File"
cordova-plugin-firebasex 9.1.2 "Google Firebase Plugin"
cordova-plugin-googlemaps 2.7.1 "cordova-plugin-googlemaps"
cordova-plugin-inappbrowser 3.2.0 "InAppBrowser"
cordova-plugin-ionic-keyboard 2.2.0 "cordova-plugin-ionic-keyboard"
cordova-plugin-ionic-webview 4.2.1 "cordova-plugin-ionic-webview"
cordova-plugin-network-information 2.0.2-dev "Network Information"
cordova-plugin-splashscreen 5.0.2 "Splashscreen"
cordova-plugin-statusbar 2.4.3-dev "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-storage 5.0.0 "Cordova sqlite storage plugin - cordova-sqlite-storage plugin version"

When try to execute this:
(<any>window).FirebasePlugin.getToken(token => console.log(token: ${token}));
or
this.firebasex.getToken().then(firebaseToken => {
                console.warn('token',firebaseToken);

or
  this.platform.ready().then(() => {
this.firebasex.getToken().then(firebaseToken => {
                console.warn('token',firebaseToken);
});

It returns null in each console print.
Expected behavior:
it should return the device token
Thanks a lot for your time.

As documented:

Null if the token has not been allocated yet by the Firebase SDK.

The Firebase SDK allocates the token asynchronously as it requires comms with the Firebase servers.
e.g. if the device is not connected to the internet, it will not obtain a token.
This plugin/function is widely in use and can be validated by building and running the example project

If this helps to someone:
My problem was in google cloud console / api & services/ credentials.
When i was created the firebase project I modified the default api key and restrict to google maps. This causes an 403 error when firebase tries to communicate with servers. Create a new credential without restrictions or restrict to"Firebase Installations API" solves the problem.

If this helps to someone:
My problem was in google cloud console / api & services/ credentials.
When i was created the firebase project I modified the default api key and restrict to google maps. This causes an 403 error when firebase tries to communicate with servers. Create a new credential without restrictions or restrict to"Firebase Installations API" solves the problem.

Thanks @Hanzofm you are a life saver. I was getting the null token and was unable to figure this out since las 3 day. I have tried every possible solution but your proposed solution worked. Hurraaaahhhhhh!!!


Change show collected tokens as warnings into a drop down menu

This PR changes the show collected tokens as warnings option into a drop-down menu so we can switch easily back and forth between seeing the parsed or the typed tokens that have been collected in the language server.

I didn't notice a difference between the parsed and typed log output. What should I look out for?

That's good, ideally there is no difference. We want as many typed tokens and we have parsed tokens collected. In some cases, we have collected a token in the parsing stage but have yet to collect it during the type-checking phase.


Entering Fee only transactions when fees are paid in crypto rather than fiat

I am not able to add fee only transactions when I have transactions with Binance and the fees are paid in BNB.
If I do something similar as explained here, I get the following error
rp2.rp2_error.RP2ValueError: Parameter 'crypto_out_no_fee' has zero value.
Example:
SELL 0.01 ETH with 0.001 BNB fee
OUT
ETH crypto_out_no_fee=0.01, crypto_fee=0
BNB crypto_out_no_fee=0, crypto_fee=0.001

Thanks for bringing this up: I'll take a look and report back.

Ok, I started out with the idea of fixing this bug, but I ended up implementing full-fledged FEE-only transactions as a primitive: I have received several requests for them and I realized that this concept is important enough to deserve its own transaction type. So with the latest version of RP2 you can just set the transaction type of an out-transaction to "Fee" and it will work as a fee-only transaction: there is no need to use the sell transaction workaround anymore. I also updated the DeFi Brainstorming Wiki.
Let me know if you see any more problems. Thanks.

I also added a unit test for fee-only transactions: test_data3.ods, sheet B4.

Closing the issue: if you see any more problem, please open a new one.

Thank you, I will update to latest version and try it out.


SidePanel animation stuck on FireFox

https://carbon-for-ibm-products.netlify.app/?path=/story/ibm-products-components-side-panel-sidepanel--slide-over
When opening and the closing the side panel sometimes the panel will get stuck halfway and not open fully. It also consistently has this 'double animation' where it appears to slide out twice. I have observed this on FireFox v105.0.

Thanks for opening this issue @benjambo13, I'll take a look and report back here with updates as I work on this.


Add a proper fuzzing test for the code in behaviour.rs

This 2000 lines of code file is quite complicated and very vulnerable to bugs. We should add some fuzzing code that opens/closes connections and substreams to check whether everything works properly.
cc https://github.com/paritytech/substrate/issues/6756

Issue still relevant and important.


Documentation Update Request: idAttribute when using es6 based models

When using an ES6 class, idAttribute should be returned from a getter, rather than being set in the preinitialize function.
class Meal extends Backbone.Model(
  get idAttribute() {
     return "_id";
  }
);

Otherwise the following will not work.
let model = MealCollection.get(someId);

Due to the use of prototype in the collection function
// Define how to uniquely identify models in the collection.
modelId: function(attrs) {
  return attrs[this.model.prototype.idAttribute || 'id'];
};

Closely related to #3560 and #4245.


Add List.getUnchecked

I am writing some performance sensitive code and want to try using a lookup table to minimize branching. Obviously List.get returning a Tag is both slow and pointless because the lookup table is a known length.
Based on this conversation it seemed basically approved to add a getUnchecked function. So I did :)

I'm closing this because @bhansconnect was able to show there is no performance benefit over just unwrapping it and crashing:
eg:
unwrap = \res, msg ->
    when res is
        Ok v -> v
        Err _ -> crash msg

# User can do this inline or make an explicit function for:
List.get list index |> unwrap "Out of Bounds"


safari open from terminal fails on macOS 10.14.2

$ odig browse online-doc odig
450:513: execution error: Error on line 13: Error: Can't get object. (-1728)
odig: [ERROR] show uri https://erratique.ch/software/odig/doc: safari jxa: cmd ['/usr/bin/osascript' '-l' 'JavaScript' '-' 'false' 'false' 'https://erratique.ch/software/odig/doc']:
exited [1]

It appears that activating accessibility may fix this (but doesn't for my local setup).  Creating this issue as you may want to trap this exception and point the user to those options if they work for others.

Thanks for the report, odig no longer uses webbrowser. I responded and filed the issue there https://github.com/b0-system/b0/issues/1


Enable Ember addons to register mirage-plugins

Background
@samselikoff: per our Slack chat, this PR enables Ember addons to register themselves as mirage-plugins and provide a tree to merge down into the compiled application's mirage files.
The approach taken satisfies the following design criteria:

Minimalist API: addon developers must only declare a keyword in their package.json, plus a treeForMirage attr / hook in their index.js;
No extra files: any files included by the treeForMirage obey e-cli-mirage's inclusion directives, so they do not show up in un-enabled prod builds;
No boilerplate: addon developers can ship familiar models, serializers, factories, scenarios—even a default config.js!—in their treeForMirages, which the host app can consume without configuration;
Easy to override: addon treeForMirages are merged with { overwrite: true }, which lets host app files overwrite similarly-named addon files.

Usage
To write your own plugin, first add mirage-plugin to the keywords array in your package.json:
// my-addon/package.json
{
  ...,
  "keywords": [
    "ember-addon",
    "mirage-plugin"
  ],
  ...
}

Now add a treeForMirage to your index.js:
// my-addon/index.js
module.exports = {
  // ...,
  treeForMirage: 'mirage',

  // OR
  treeForMirage() {
    return validateStuff() && 'other-mirage'
  },

  // OR
  treeForMirage() {
    let addonDir = path.dirname(this.constructor._meta_.modulePath);

    return new Funnel(path.join(addonDir, 'other-other-mirage'), {
      destDir: 'mirage'
    });
  },

  // ...
}

Questions

How to test this?
How to teach this?

Really awesome work man 👍  The community is gonna love you for this!
Ed uses a bunch of apps in his ember-auto-import addon to test different scenarios. I think we'll go the same route.
I'm working on switching over node-tests/addon-tree-test.js to this style so we'll have an example there soon, or if you want you can just start tinkering!

Yay! Glad this will be useful for others :)
I took a look through the ember-auto-import test scripts and grok the approach. Are you suggesting we:

Migrate the addon-tree-test.js into a default test-app; and
Create n test apps, with node-tests similar to your addon-tree-test?

If so, we’ll probably want to route yarn test through a similar parallelization script; will need guidance there as I’m not clear which package.json test scripts are in use / how this will affect Travis.
Is there an issue, or other log of your work on the addon-tree-test switch I can use to spool up on intent? Else I’d prefer to wait until a pattern is in place, if it’s all the same to you.

Yep, basically. I might have time today to move addon-tree-test into that newer style (though ideally I'd like to hear Robert's take on this comment first.)
I was going to keep it simple and use a single app, but thinking about features like this one and others, it might make more sense to have n test apps.
I'll work on this soon and get back to you :)

Just merged https://github.com/samselikoff/ember-cli-mirage/pull/1359
I don't have any example of addons wired up yet to use all this, but following https://github.com/ef4/ember-auto-import/ we should be able to get it working. Ed has some more info on the Running tests section of his readme, and in /test-apps you'll see some sample addons and apps wired up there.

Sounds good Sam. I've got a site to publish; hoping to pick this back up Friday / this weekend. That okay?

Of course man, no rush

Any updates on this? Basically, I have an app with a monorepo architecture. Would like to keep mirage factories and models in the respective / related ember-addons, but still be able to run acceptance tests using those factories and models from the host application. Is there another approach to this problem? @samselikoff @anulman

Closing this as stale, but keeping a reference to it in https://github.com/miragejs/miragejs/issues/217 in case we want to reference these APIs.
(I feel like this is a problem that other addons need an answer for so it'd be great if we could solve this outside of Mirage!)


Disable treshold buffer size test with ssl

@halter73

cc @mikeharder who authored that test.

What is the reason for the change?

It hangs :) I think it's because we stopped posting Pause and Resume so when buffer size threshold is hit connection is paused immediately vs having it posted and allowing another read to pass through.

:up::date:

:shipit:


Players can steal others MysteryBox Weapons

Players can literally walk up to another player when they purchase the box click the sign and take their Mystery Box weapon from them
Using Spigot 1.16
COMZ DEV comzombies-Universal-2.2.65.jar

Fixed in v2.2.86


koord-scheduler: update NodeNUMAResource plugin args

Ⅰ. Describe what this PR does
Update NodeNUMAResource plugin args.

Ⅱ. Does this pull request fix one issue?

Ⅲ. Describe how to verify it
Ⅳ. Special notes for reviews
V. Checklist

[ ] I have written necessary docs and comments
[ ] I have added necessary unit tests and integration tests
[ ] All checks passed in make test

/lgtm


[Graph Browser 2] A bunch of UI tweaks

Clean up scss and styles; standardized spacing; use same header styles as the site
Increase space efficiency -- removed whitespace, reduced number of visible entries
Update styles and icons for the stat var hierarchy
Some updates to titles / headers
Some updates to chart display - button styling, chart size

thanks! :)


[Feature]  Ability to Customize Default Loading Widget

Hi! First of all, thank you for your work on this awesome package! It's been extremely helpful for our project, and the features are excellent.
I would like to ask if it's possible to customize the default loading widget, as I didn't find a way to do this in the documentation. The current stock loading indicator works well, but having the option to tailor it to match our app's design would make for a more seamless user experience.
If there is already a way to customize it that I may have missed, I’d appreciate any guidance. Otherwise, it would be great to consider adding this as an enhancement for more flexible UI customization

Hi, @Murkrow02
I don't remember if you can customize it, but you can :
_stateManager!.setShowLoading(false);
Disable it and use your loader, you may include the grid inside the stack and show a loader over it, or you may change the grid opacity while it is in the loading state if you do not find a way to customize it from the package.
good luck!

Thank you for the suggestion!
I’d actually like to display the loading indicator directly over the rows of the table, if possible, rather than using a Stack layout. Having a built-in option to customize the loading state directly on the rows would be an awesome feature to enhance the flexibility of this package!
In the meantime, your workaround should work well. I’ll give it a try. Thanks again for your help!

Thank you for the suggestion!
I’d actually like to display the loading indicator directly over the rows of the table, if possible, rather than using a Stack layout. Having a built-in option to customize the loading state directly on the rows would be an awesome feature to enhance the flexibility of this package!
In the meantime, your workaround should work well. I’ll give it a try. Thanks again for your help!

How to Use setCustomLoadingIndicator in PlutoGrid
The setCustomLoadingIndicator method allows you to define a custom widget to display as the loading indicator in a PlutoGrid. Below is an explanation based on the provided example.

Step-by-Step Usage
1. Define a Custom Loading Indicator
Create a custom widget that represents your loading indicator. This widget will be shown when the grid is in a loading state.
In the provided code, the CustomIndicator widget does the following:

Creates a semi-transparent white overlay.
Displays a "Custom Loading Indicator" text in the center.

class CustomIndicator extends StatelessWidget {
  const CustomIndicator({super.key});

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        Positioned.fill(
          child: ColoredBox(
            color: Colors.white.withOpacity(0.5),
          ),
        ),
        Center(
          child: Text('Custom Loading Indicator'),
        ),
      ],
    );
  }
}

2. Set the Custom Loading Indicator
In the onLoaded callback of the PlutoGrid, use the setCustomLoadingIndicator method to set your custom widget:
onLoaded: (event) {
  stateManager = event.stateManager;
  // Set custom loading indicator
  stateManager?.setCustomLoadingIndicator(
    (context) => const CustomIndicator(),
  );
},

3. Toggle the Loading Indicator
You can programmatically control the visibility of the loading indicator using stateManager?.setShowLoading.
In the provided code:

A FloatingActionButton toggles the visibility of the loading indicator.
The PlutoGridLoadingLevel.custom is used to specify the loading level.

floatingActionButton: FloatingActionButton(
  onPressed: () {
    // Toggle loading visibility
    stateManager?.setShowLoading(
      stateManager?.showLoading == false,
      level: PlutoGridLoadingLevel.custom, // Specify loading level
    );
  },
  child: const Icon(Icons.refresh),
),

Full Flow

Start the App: When you run the app, the PlutoGrid displays the rows and columns.
Press the FloatingActionButton: This toggles the loading indicator's visibility.
Custom Indicator: Instead of the default loader, your custom widget (CustomIndicator) appears.

Key Points

Customization: Your loading indicator can include any widget (e.g., progress bars, animations, or custom graphics).
Dynamic Control: Use setShowLoading and setLoadingLevel to toggle and scope the loading states.

@Murkrow02
Navigate to the example, to see a demo.

@doonfrs @Murkrow02 I created a https://github.com/doonfrs/pluto_grid_plus/pull/102 for it


chore(Dropdown): Add additional description for Left/Right arrow navigation

Added more information to the descriptions in order to better inform the user that Left-Right navigation in multiple selection Dropdown is supported.

Warnings

:warning:
There are no updates provided to CHANGELOG. Ensure there are no publicly visible changes introduced by this PR.

  Generated by :no_entry_sign: dangerJS


[chore] removed storybook, and moved to sistent repo

Notes for Reviewers
This PR removed storybook, and moved to sistent repo
Open PR is at https://github.com/layer5io/sistent/pull/16
Signed commits

[ ] Yes, I signed my commits.

Excellent.


How to make Nvidia Digits work with Caffe and Tensorflow installed with Python 3?

After installing digits setting it to root and running ./digits-devserver gave me this error. Numpy is installed but still it is not detecting numpy. Can anyone please guide me through this as it would be really helpful for me to learn this exciting concept? Thanks and cheers. Though I will try my best to figure out this issue and will keep posted.
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/sp/digits/digits/__main__.py", line 70, in <module>
    main()
  File "/home/sp/digits/digits/__main__.py", line 53, in main
    import digits.config
  File "digits/config/__init__.py", line 7, in <module>
    from . import (  # noqa
  File "digits/config/caffe.py", line 13, in <module>
    from digits.utils import parse_version
  File "digits/utils/__init__.py", line 167, in <module>
    from . import constants, image, time_filters, errors, forms, routing, auth  # noqa
  File "digits/utils/image.py", line 14, in <module>
    import numpy as np
ImportError: No module named numpy

I have build and installed caffe and tensorflow with python 3.5. I made sure my installation is successful so I ran some test I hope this test considered valid.
python
Python 3.5.2 (default, Oct  8 2019, 13:06:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>> import tensorflow as tf; print(tf.__version__)
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint16 = np.dtype([("qint16", np.int16, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  _np_qint32 = np.dtype([("qint32", np.int32, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
  np_resource = np.dtype([("resource", np.ubyte, 1)])
1.12.3
>>> import tensorflow as tf; print(tf.contrib.eager.num_gpus())
2020-02-06 19:56:45.632580: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:964] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2020-02-06 19:56:45.632820: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1432] Found device 0 with properties:
name: GeForce GTX 1050 major: 6 minor: 1 memoryClockRate(GHz): 1.455
pciBusID: 0000:01:00.0
totalMemory: 1.95GiB freeMemory: 1.71GiB
2020-02-06 19:56:45.632844: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1511] Adding visible gpu devices: 0
2020-02-06 19:56:47.796481: I tensorflow/core/common_runtime/gpu/gpu_device.cc:982] Device interconnect StreamExecutor with strength 1 edge matrix:
2020-02-06 19:56:47.796562: I tensorflow/core/common_runtime/gpu/gpu_device.cc:988]      0
2020-02-06 19:56:47.796587: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1001] 0:   N
2020-02-06 19:56:47.796908: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1115] Created TensorFlow device (/job:localhost/replica:0/task:0/device:GPU:0 with 1462 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1050, pci bus id: 0000:01:00.0, compute capability: 6.1)
1

nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176
nvidia-smi
Thu Feb  6 19:59:20 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.33.01    Driver Version: 440.33.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 1050    Off  | 00000000:01:00.0  On |                  N/A |
| 45%   29C    P8    N/A /  75W |    194MiB /  1997MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1094      G   /usr/lib/xorg/Xorg                           101MiB |
|    0      2105      G   compiz                                        90MiB |
+-----------------------------------------------------------------------------+
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1050"
CUDA Driver Version / Runtime Version          10.2 / 9.0
CUDA Capability Major/Minor version number:    6.1
Total amount of global memory:                 1998 MBytes<PHONE_NUMBER> bytes)
( 5) Multiprocessors, (128) CUDA Cores/MP:     640 CUDA Cores
GPU Max Clock rate:                            1455 MHz (1.46 GHz)
Memory Clock rate:                             3504 Mhz
Memory Bus Width:                              128-bit
L2 Cache Size:                                 1048576 bytes
Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
Total amount of constant memory:               65536 bytes
Total amount of shared memory per block:       49152 bytes
Total number of registers available per block: 65536
Warp size:                                     32
Maximum number of threads per multiprocessor:  2048
Maximum number of threads per block:           1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size    (x,y,z):<PHONE_NUMBER>, 65535, 65535)
Maximum memory pitch:<PHONE_NUMBER> bytes
Texture alignment:                             512 bytes
Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
Run time limit on kernels:                     Yes
Integrated GPU sharing Host Memory:            No
Support host page-locked memory mapping:       Yes
Alignment requirement for Surfaces:            Yes
Device has ECC support:                        Disabled
Device supports Unified Addressing (UVA):      Yes
Supports Cooperative Kernel Launch:            Yes
Supports MultiDevice Co-op Kernel Launch:      Yes
Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.2, CUDA Runtime Version = 9.0, NumDevs = 1
Result = PASS
./mnistCUDNN
cudnnGetVersion() : 7005 , CUDNN_VERSION from cudnn.h : 7005 (7.0.5)
Host compiler version : GCC 5.4.0
There are 1 CUDA capable devices on your machine :
device 0 : sms  5  Capabilities 6.1, SmClock 1455.0 Mhz, MemSize (Mb) 1997, MemClock 3504.0 Mhz, Ecc=0, boardGroupID=0
Using device 0
Testing single precision
Loading image data/one_28x28.pgm
Performing forward propagation ...
Testing cudnnGetConvolutionForwardAlgorithm ...
Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.061440 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.072704 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.122880 time requiring 57600 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 0.235520 time requiring 2057744 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 5: 0.395264 time requiring 203008 memory
Resulting weights from Softmax:
0.0000000 0.9999399 0.0000000 0.0000000 0.0000561 0.0000000 0.0000012 0.0000017 0.0000010 0.0000000
Loading image data/three_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 0.9999288 0.0000000 0.0000711 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 0.9999820 0.0000154 0.0000000 0.0000012 0.0000006
Result of classification: 1 3 5
Test passed!
Testing half precision (math in single precision)
Loading image data/one_28x28.pgm
Performing forward propagation ...
Testing cudnnGetConvolutionForwardAlgorithm ...
Fastest algorithm is Algo 1
Testing cudnnFindConvolutionForwardAlgorithm ...
^^^^ CUDNN_STATUS_SUCCESS for Algo 0: 0.057344 time requiring 0 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 1: 0.065536 time requiring 3464 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 2: 0.090112 time requiring 28800 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 7: 0.215040 time requiring 2057744 memory
^^^^ CUDNN_STATUS_SUCCESS for Algo 5: 0.365568 time requiring 203008 memory
Resulting weights from Softmax:
0.0000001 1.0000000 0.0000001 0.0000000 0.0000563 0.0000001 0.0000012 0.0000017 0.0000010 0.0000001
Loading image data/three_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000000 0.0000000 1.0000000 0.0000000 0.0000714 0.0000000 0.0000000 0.0000000 0.0000000
Loading image data/five_28x28.pgm
Performing forward propagation ...
Resulting weights from Softmax:
0.0000000 0.0000008 0.0000000 0.0000002 0.0000000 1.0000000 0.0000154 0.0000000 0.0000012 0.0000006
Result of classification: 1 3 5
Test passed!
locate nccl| grep "libnccl.so" | tail -n1 | sed -r 's/^.*.so.//'
2.4.7
python -c 'import numpy; print(numpy.version)'
1.18.1

```

Did you forget to "make pycaffe"?
"/home/sp/caffe" from CAFFE_ROOT does not point to a valid installation of Caffe.
Use the envvar CAFFE_ROOT to indicate a valid installation.
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"main", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/home/sp/digits/digits/main.py", line 70, in
main()
File "/home/sp/digits/digits/main.py", line 53, in main
import digits.config
File "digits/config/init.py", line 7, in
from . import (  # noqa
File "digits/config/caffe.py", line 226, in
executable, version, flavor = load_from_envvar('CAFFE_ROOT')
File "digits/config/caffe.py", line 37, in load_from_envvar
import_pycaffe(python_dir)
File "digits/config/caffe.py", line 126, in import_pycaffe
import caffe
File "/home/sp/caffe/python/caffe/init.py", line 1, in
from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer
File "/home/sp/caffe/python/caffe/pycaffe.py", line 13, in
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver,
ImportError: dynamic module does not define init function (init_caffe)

python
Python 3.5.2 (default, Oct  8 2019, 13:06:37)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>> import tensorflow
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint8 = np.dtype([("qint8", np.int8, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint8 = np.dtype([("quint8", np.uint8, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint16 = np.dtype([("qint16", np.int16, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_quint16 = np.dtype([("quint16", np.uint16, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
_np_qint32 = np.dtype([("qint32", np.int32, 1)])
/usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
np_resource = np.dtype([("resource", np.ubyte, 1)])
>>>
    ```
**python3**
    Python 3.5.2 (default, Oct  8 2019, 13:06:37)
    [GCC 5.4.0 20160609] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import caffe
    >>> import tensorflow
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:523: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      _np_qint8 = np.dtype([("qint8", np.int8, 1)])
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:524: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      _np_quint8 = np.dtype([("quint8", np.uint8, 1)])
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      _np_qint16 = np.dtype([("qint16", np.int16, 1)])
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      _np_quint16 = np.dtype([("quint16", np.uint16, 1)])
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:527: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      _np_qint32 = np.dtype([("qint32", np.int32, 1)])
    /usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/dtypes.py:532: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
      np_resource = np.dtype([("resource", np.ubyte, 1)])
    >>>

I have set path in .bashrc file
```
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export PROTOBUF_ROOT=~/protobuf
export CAFFE_ROOT=~/caffe
export PYTHONPATH=$home/username/caffe/python:$PYTHONPATH
I have caffe and tensorflow successfully build and installed on python3.5. But Nvidia Digits is still pointing towards python2.7. How can I solve this issue and make Nvidia Digits set to point python3.5? I am really interested in learning this concept so any suggestion or advice would definelty speed up my learning. I will keep posting if something comes up. Thanks

Hi!Have you solved this problem ?

Yes but I forgot to put the solution also digits doesn't work and later it started giving picking error which I am yet to solve So inside your caffe folder there will be a file called Makefile.config.
check the part where I have commented out python2 support which is default python version and uncomment if you want to use python 3 but you need to have python libraries for python 3. Here is my caffe Makefile.config. Everything in caffe gets called from here by Nvidia digits
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (uncomment to build with cuDNN).
 USE_CUDNN := 1

# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1

# uncomment to disable IO dependencies and corresponding data layers
 USE_OPENCV := 0
 USE_LEVELDB := 0
 USE_LMDB := 0

# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
#	You should not set this flag if you will be reading LMDBs with any
#	possibility of simultaneous read and write
# ALLOW_LMDB_NOLOCK := 1

# Uncomment if you're using OpenCV 3
 OPENCV_VERSION := 3

# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++

# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR := /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
# For CUDA >= 9.0, comment the *_20 and *_21 lines for compatibility.

# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
# BLAS_INCLUDE := /path/to/your/blas
# BLAS_LIB := /path/to/your/blas

# Homebrew puts openblas in a directory that is not on the standard search path
# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
# BLAS_LIB := $(shell brew --prefix openblas)/lib

# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
# MATLAB_DIR := /usr/local
# MATLAB_DIR := /Applications/MATLAB_R2012b.app

# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
#PYTHON_INCLUDE := /usr/include/python2.7 \
#		/usr/lib/python2.7/dist-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
		# $(ANACONDA_HOME)/include/python2.7 \
		# $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

# Uncomment to use Python 3 (default is Python 2)
PYTHON_LIBRARIES := boost_python-py35 python3.5m
PYTHON_INCLUDE := /usr/include/python3.5m /usr/lib/python3.5/dist-packages/numpy/core/include /home/nvme/.local/lib/python3.5/site-packages/numpy/core/include

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib /usr/lib/x86_64-linux-gnu/
# PYTHON_LIB := $(ANACONDA_HOME)/lib

# Homebrew installs numpy in a non standard path (keg only)
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
# PYTHON_LIB += $(shell brew --prefix numpy)/lib

# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/lib/x86_64-linux-gnu/

# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
# INCLUDE_DIRS += $(shell brew --prefix)/include
# LIBRARY_DIRS += $(shell brew --prefix)/lib

# NCCL acceleration switch (uncomment to build with NCCL)
# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
 USE_NCCL := 1

# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1

# N.B. both build and distribute dirs are cleared on `make clean`
BUILD_DIR := build
DISTRIBUTE_DIR := distribute

# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1

# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID := 0

# enable pretty build (comment to see full commands)
Q ?= @


Blade Service Builder compilation error

Running gradle buildService followed by gradle build from the blade/gradle/blade.servicebuilder.svc folder produces the error below. Seems to be the result of a mismatch between the versions of the portal-service.jar and the com.liferay.portal.tools.service.builder.jar.
gradle build
:blade.servicebuilder.api:compileJava/home/$USER/blade/gradle/blade.servicebuilder.api/src/main/java/blade/servicebuilder/model/Foo.java:19: error: cannot find symbol
import com.liferay.portal.kernel.annotation.ImplementationClassName;
^
symbol:   class ImplementationClassName
location: package com.liferay.portal.kernel.annotation
/home/$USER/blade/gradle/blade.servicebuilder.api/src/main/java/blade/servicebuilder/model/Foo.java:32: error: cannot find symbol
@ImplementationClassName("blade.servicebuilder.model.impl.FooImpl")
^
symbol: class ImplementationClassName
2 errors
FAILED
FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':blade.servicebuilder.api:compileJava'.

Compilation failed; see the compiler error output for details.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED
Total time: 5.195 secs

Could not reproduce with all 4 tool chains today.


Can't upload file via web ui with server on Windows

Repro steps

clone repo and go run make.go
run perkeep
try to upload a file via the web ui
stuck at "Uploaded 0 (0%)"

Additional info

App is running on Windows 10. Trying the same steps on a Debian box behaved as expected.
The Firefox dev console shows this error:

Loading Worker from “http://localhost:3179/ui/hash_worker.js?r=1643067598268” was blocked because of a disallowed MIME type (“text/plain”)

The Chrome dev console shows this error:

Refused to execute script from 'http://localhost:3179/ui/closure/goog/bootstrap/webworkers.js' because its MIME type ('text/plain') is not executable.
(anonymous) @ hash_worker.js?r=1643067695589:19

Probably related: https://github.com/golang/go/issues/32350

Should we add an suffix is .js => application/javascript branch here as a workaround?
https://github.com/perkeep/perkeep/blob/46e4e4f9e791a8304ff96ac71d041b30d4a031aa/pkg/server/ui.go#L521

This should be fixed with #1642


Should catch exceptions when raised outside a CodeWorld entry point

Currently, any of the four CodeWorld entry points (pictureOf, animationOf, simulationOf, and interactionOf) catch exceptions and display them in the web interface output section.  However, the following program:
main = error("foo")

prints "foo" in the JavaScript console, where most students will never find it.  This isn't likely to happen, but it would still be good to capture and handle these exceptions.

Looks like we could fix this by replacing the builting h$errorMsg function.

Fixed by 1d8dc0e


Add link to Google doc file if file cannot render

This comes from the community repo: https://github.com/CenterForOpenScience/community/issues/183
Steps
1. Visit a Google slides file
2. Visit a Google doc file
Outcome
1. The slide file does not render, and gives the user a timeout error.
![screen shot 2015-06-02 at 10 30 08 am](https://cloud.githubusercontent.com/assets/4965832/7938280/b595b2dc-0912-11e5-855d-e978f1f92c1b.png)

The doc file (usually) does render, as a word document.

Expected outcome
1. As the document can be accessed elsewhere on the web, a link could be provided to users instead of the error message when a Google file of any kind does not render. This link could be provided for files that are never rendered, like slides, or files that just timed out but normally would render.
![screen shot 2015-06-02 at 10 34 05 am](https://cloud.githubusercontent.com/assets/4965832/7938351/0808fe34-0913-11e5-9b4f-28f440c02820.png)

In today's infrastructure meeting, Jeff specified that users should have the option to visit the file even if it renders. This might mean that we need an additional button. That additional button could also be there for other services like Figshare or Dataverse. Maybe like this?

Looks like this baby is on Epic list in present form, so prioritized as "high" and if stays on list, we'll get it assigned. Thanks.

@caseyrollins is working on adding links to the original addon files.

fixed!


Update UG to add teaching nomination in add and edit features

Codecov Report
Base: 72.40% // Head: 72.40% // No change to project coverage :thumbsup:

Coverage data is based on head (d11336f) compared to base (826a75c).
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #112   +/-   ##
=========================================
  Coverage     72.40%   72.40%
  Complexity      458      458
=========================================
  Files            80       80
  Lines          1446     1446
  Branches        157      157
=========================================
  Hits           1047     1047
  Misses          351      351
  Partials         48       48

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Allow multiple command execution (Array) within one action

I think it will be exciting to allow multiple commands per action. (May be sort of pipelines). Also, it would be best if we also enable result of one command to fed as input for next command within their respective Action's scope.
Let me know how you think about this, may be I can try out sometime around weekend if this can shape up! 😄

I think this is something that can be handled by calling a bash script from an action.
I personally used nanobot to let atom determine if a batch or bash script should be executed (Because I'm using OSX windows and linux in a mess 😅)


Question on Fast Refresh Support

Hi folks, are there any plans to support Next.js Fast Refresh when developing against remote Next.js apps? If I'm not mistaken, the current solution involves HMR + Live Reload, which I've been using so far. It would be nice to have Fast Refresh, but I'm unaware of the difficulties today.
I couldn't find any threads on challenges or plans on if it's possible to incorporate Next.js Fast Refresh, so I wanted to know the current state of affairs on this front.
FWIW, I imagine v7 of this plugin and the eventual support of rspack will make things even faster across the board.

This is a limit of webpack. To solve it we would need to rewrite most of HMR internals.
So far we have not found this feature to be worth the cost of implementing.
I have been rummaging around in the internal webpack runtime for v7 - so i had some theories. But its not trivial.
HMR works via socket connected to client from host. federation would require all builds to interconnet each others graphs via sockets since HMR requires disposing the parent module. So the remote needs to know who its parents are.

Thank you for the info and update!


Extension: JavaScript syntax highlighting

Added VSCode extension for JavaScript syntax highlighting as requested in  #473.
Was done by copying over the extension from VSCode wholesale, as recommended in the issue.

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

Awesome! Thanks @syvsto for the PR, and @CrossR for reviewing!


mig-controller may need changes to work with OCP 4.4

@Danil-Grigorev is seeing an error when trying to use mig-controller on OCP 4.4.
In the error below we have:
""error":"no matches for kind \"Deployment\" in version \"apps/v1beta1\"

Coming from:
https://github.com/konveyor/mig-controller/blob/master/pkg/controller/migplan/migplan_controller.go#L311
Which is probably being thrown here:
https://github.com/konveyor/mig-controller/blob/93bda35aabb93cec6b3aaac9a4031f67b874f0be/pkg/apis/migration/v1alpha1/migcluster_types.go#L184
apps/v1beta1 Deployments no longer exists in OpenShift 4.4 and we must use apps/v1 Deployments.
I don't know if this approach will work for the controller and whether this is cross cluster so source and destination versions need to be taken into account, but in the operator I took the approach of checking the Kubernetes minor version and if old enough using v1beta1 else v1. It was also necessary to do this for daemonsets
https://github.com/konveyor/mig-operator/pull/232/files
https://github.com/konveyor/mig-operator/pull/233/files
Full error:
{"level":"error","ts":1582726073.6475673,"logger":"plan|bjp24","msg":"","error":"no matches for kind \"Deployment\" in version \"apps/v1beta1\"","stacktrace":"github.com/konveyor/mig-controller/vendor/github.com/go-logr/zapr.(*zapLogger).Error\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/github.com/go-logr/zapr/zapr.go:128\ngithub.com/konveyor/mig-controller/pkg/logging.Logger.Error\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/pkg/logging/logger.go:75\ngithub.com/konveyor/mig-controller/pkg/logging.Logger.Trace\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/pkg/logging/logger.go:81\ngithub.com/konveyor/mig-controller/pkg/controller/migplan.(*ReconcileMigPlan).ensureClosed\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/pkg/controller/migplan/migplan_controller.go:311\ngithub.com/konveyor/mig-controller/pkg/controller/migplan.(*ReconcileMigPlan).handleClosed\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/pkg/controller/migplan/migplan_controller.go:294\ngithub.com/konveyor/mig-controller/pkg/controller/migplan.(*ReconcileMigPlan).Reconcile\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/pkg/controller/migplan/migplan_controller.go:196\ngithub.com/konveyor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:215\ngithub.com/konveyor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func1\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/sigs.k8s.io/controller-runtime/pkg/internal/controller/controller.go:158\ngithub.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133\ngithub.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134\ngithub.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait.Until\n\t/home/dgrigore/go/src/github.com/konveyor/mig-controller/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88"}

The proposed solution would be good for the controller as well.
I'm thinking that the cluster controller could use the /version API:
url -k --header "Authorization: Bearer $token" https://host:6443/version
{
  "major": "1",
  "minor": "16+",
  "gitVersion": "v1.16.2",
  "gitCommit": "94e669a",
  "gitTreeState": "clean",
  "buildDate": "2020-02-03T23:11:39Z",
  "goVersion": "go1.12.12",
  "compiler": "gc",
  "platform": "linux/amd64"
}

and store the version (major, minor) in the MigCluster spec.
All of the controllers could use the information to determine which GVKs to use when necessary.
When this is available, we should use this approach for CronJob instead of the unstructured approach currently used.

Are there two separate situations to deal with here?

Make sure that any resources created or referenced by the controller use the proper version (and do we have to determine cluster version first? i.e. create one resource for OCP3.7 and a different for OCP4.5, etc.)
For migrations, we may have to change the version when restoring a Deployment, etc.

There's nothing substantially different between v1beta1 and v1 deployments.

There's nothing substantially different between v1beta1 and v1 deployments.
matchLabels are required in v1 and were not in v1beta1, though they were acceptable.
https://github.com/konveyor/mig-operator/pull/232/files#diff-97f72c03b7703675f1cff5f5606488ceL18
If creating deployments make sure these are included and all you have to do is adjust the version.

Is v1 available for all OCP versions we support, or would we have to check OCP version for the target cluster (src, dest, or controller cluster) and modify the APIversion appropriately?

It is not available for 3.7. That's why we were using v1beta1. Now v1beta1 is not available in 4.4 so we can't overlap everything with v1beta1.

It is a perfect opportunity to include creation of discovery client to the default MigCluster functionality.
https://godoc.org/k8s.io/client-go/discovery#DiscoveryClient.ServerVersion


zcbor with CANONICAL mode fails when decoding some floats

Situation: Create a JSON '{"my_float": 0.0}' and convert it to CBOR using zcbor.py, then send the payload to Zephyr for decoding, with CONFIG_ZCBOR_CANONICAL=y
zcbor.py chooses to encode 0.0 as a 8 byte float - I'm honestly not sure if this is honestly INCORRECT, canonically speaking, because who can honestly say what an optimal way to encode a float is? I mean, in the integer case, it's obvious, but floats encode precision too, so it's not like it's STRICTLY incorrect to encode it as a longer float.
Anyway, with ZCBOR_CANONICAL, we hit
#ifdef ZCBOR_CANONICAL
		ZCBOR_ERR_IF((zcbor_header_len_ptr(result, result_len) != (len + 1)),
			ZCBOR_ERR_INVALID_VALUE_ENCODING);
#endif

inside static bool value_extract(zcbor_state_t *state, void *const result, size_t result_len) from zcbor_decode.c.
In my mind, canonical encoding of floats doesn't really make sense.
Besides, this is the help text for the Kconfig:
config ZCBOR_CANONICAL
	bool "Produce canonical CBOR"
	help
	  Enabling this will prevent zcbor from creating lists and maps with
	  indefinite-length arrays (it will still decode them properly).

which is clearly an inaccurate description of the Kconfig.

Thanks for the report. What is happening here is that converting JSON to CBOR with zcbor.py does not have a CANONICAL mode. Only the C library does. You can turn off checking of canonical CBOR on the C library decoder at run time if you wish, via the state->constant_state->enforce_canonical flag. I will track this as a feature request for a canonical mode in the script.

Looking at it again, that error you are getting is part of an older version which does not have the enforce_canonical flag, which came in 0.9.0.
And yes, there is an "optimal" way to encode a float: It's the shortest variant that loses no precision to rounding, e.g. if converting from float64 to float16 back to float64 leaves the value unchanged, it can be encoded as float16 with no loss of precision, and should be under canonical CBOR.

I dunno, I read https://datatracker.ietf.org/doc/html/rfc7049#page-26 and to me the language is not precise enough to consider canonical floats well defined. I mean I would have preferred if the lib obeyed the Kconfig description because the Kconfig description is literally what we want - to be strict when encoding, but loose when decoding.

The runtime flag only affects decoding, so encoding will still be canonical.

https://github.com/zephyrproject-rtos/zephyr/pull/82318


Source Control:Git and Git in Terminal out of Sync.

VSCode Version:1.22.2
OS Version:Windows 7 Pro

Steps to Reproduce:
I don't know how to reproduce, I've set up a new local git repo with 4 files. Using terminal, git status says up to date. Source control reports all 4 files are modified. Committing using Source Control makes Git in the Terminal report that all files are modified.
Switching branches in the Terminal is correctly reflected in the bottom left.  Discard all changes doesn't do anything.  Git:output doesn't give me much insight.

Does this issue occur when all extensions are disabled?: Yes
Disabling extensions doesn't change the situation

Let me know once you can reproduce.

I have an example right in front of me, it there no suggestions of something I can check?


DefaultChannelPipeline and StaticChannelPipeline should share code

We have many duplicate code in DefaultChannelPipeline and StaticChannelPipeline. We should refactor these to share more code

I wonder if we really need to keep StaticChannelPipeline. It doesn't
seem to make things any faster.

Even better... Then let us mark it as @deprecated and het rid of it in 4.x


Usage of gpio

Hi everyone,
I am wondering how I can use GPIO.
A comment starting on line 9 of the file "libtock-rs/apis/gpio/src/lib.rs" states the following:
Include by
[gpio.txt](https://github.com/tock/libtock-rs/files/10993761/gpio.txt)
 using: "use libtock::Gpios;"
Turn on a pin by: "let pin = Gpios::get_pin(0)?;"

When I create a new example "gpio.rs" in the examples directory and try to build it with "$ make  EXAMPLE=gpio" I get the following error:
   |    use libtock::Gpios;
   |     ^^^^^^^^^^^^^^ no `Gpios` in the root

I have tried to build for nrf52, microbit_v2 and raspberry pi pico (which I think is not supported yet?), but all failed with the same message so I suppose this is not a target specific problem.
i have also tried not capitalizing any letter in the use statement and also tried the singular of gpio -> "use libtock::gpio;". That did not work out as well.
I have attached the few lines of code I wrote in the file gpio.txt.
My questions:
Is this behavior expected or am I doing something completely wrong here?
Is there any documentation regarding the GPIO usage other than the comments in the aforementioned file?
If this is the wrong place to discuss this, please feel free to tell me and the issue can be closed.
Thank you!

I wrote an example for GPIO here: #498. That should be a good starting point using the GPIO library.


undefined symbol: Float32_BoxCoxLambdaGuerrero

I was setting this up in GCP Linux system. I encountered the following error:
AttributeError: /opt/conda/lib/python3.7/site-packages/coreforecast/lib/libcoreforecast.so: undefined symbol: Float32_BoxCoxLambdaGuerrero
Is it an issue with the ".so" file? Please let me know what extra details I should share. Attaching a screenshot of the error.

Regards,
Aruparna

Hey. How did you install the packages?

Hey. How did you install the packages?

I installed the package by the usual way:
pip install coreforecast

coreforecast requires python>=3.8 (except for v0.0.1) and neuralforecast doesn't require it, except for the dev version, which requires coreforecast>=0.0.6. So you must've done something different.

Closing due to lack of response. Feel free to reopen with more information.


Input on Unity UI not working with 2017.2 and MRTK 2017.2 DEV branch

Hi,
I just updated my Unity to 2017.2 and checked out the latest DEV branch commit for 2017.2. Exported the unity package and imported it into my project that was running fine previously.
Now with Unity 2017.2 and the latest MRTK any input on Unity UI elements is not working anymore. Also gazing at a button e.g. will not trigger on pointer enter or exit. This worked fine previously.
It seems like Unity UI does not get any input events anymore.
Has anyone experienced the same?

I tried it with a new project too. Setup:

New project with Unity 2017.2
Import MRTK 2017.2 DEV package
Add HoloLensCamera prefab
Add InputManager prefab
Create simple UI with a button
Make sure EventSystem is created

UI not responsind to any input.

I'm having the same issue. I've tried with both the 2017.2.0f3 and 2017.2.0f3.MRTP versions.
I get various errors:
The InputManager singleton has not been initialized.
InputManager singled instance is being accessed while it is null.
Errors on SetGlobalListener

I'll be sure to check this out asap

Be sure to use the MixedRealityCamera.prefab instead of the HoloLensCamera.prefab.

Guys check out #1162 and see if this PR fixes some of the issues you're seeing.
@genereddick I think that is separate issue involving the way we updated Singletons and has been fixed, but not merged back into the Dev branch yet.

@FejZa I'm unable to reproduce this in the InputManagerTest scene.
Are you using a HoloLens or the VR Headsets?

I was playing around in the InputManagerTest scene. The only two things I found to be broken was the pop up modal and the hand dragging.
I was able to get OnInputClicked, OnInputDown, OnInputUp, OnFocusEnter, and OnFocusExit.

One thing I also ran into was the input might not work if you're targeting the wrong SDK for each version of the editor.

Okay, so I was able to duplicate this issue, but only when Building for the HoloLens with Unity 2017.2.0f3 MRTP and the 16.0.16299.0 SDK.
HoloLens Builds only work in the Vanilla Releases of the Editor.

I was able to solve my problems by fetching changes made in #1162. Thanks for the support!

You can probably use the latest release and be good.


Fix parsing nested strings.

This fixes an issue where string keys are iterated with Object.keys which caused problems when I was trying to add a modifier for the output of jest-junit.
I also modified a test that seems to be failing, but I can revert if it's just my timezone.
@ladariha, could you take a look?

Merged and published as version 1.1.4 . Thanks a lot of for the fix :) I've removed the broken test for now as it depended on timezone setting anyway...


go get github.com/vmware-tanzu/carvel-vendir fails

Looks like there's a bug getting the checksum of carvel-vendir due to a file name aux.go.
❯ go version
go version go1.13.15 linux/amd64

❯ go get github.com/vmware-tanzu/carvel-vendir
go: downloading github.com/vmware-tanzu/carvel-vendir v0.14.0
verifying<EMAIL_ADDRESS><EMAIL_ADDRESS>reading<EMAIL_ADDRESS>410 Gone

❯ curl<EMAIL_ADDRESS>not found: create zip: malformed file path "pkg/vendir/config/aux.go": "aux" disallowed as path element component on Windows

It looks like it was fixed here, just after the 0.14.0 release, cutting a new release should fix it.
https://github.com/vmware-tanzu/carvel-vendir/commit/393bea7fb7386120edb1170c5dce25b067701183

cut the new release: https://github.com/vmware-tanzu/carvel-vendir/releases/tag/v0.15.0

cut the new release: https://github.com/vmware-tanzu/carvel-vendir/releases/tag/v0.15.0


PR for JMS Livelabs WMS ID 7881 & 11050

WMS ID 7881 & 11050
self_QA_JMS_6.0_WMS_ID_11050_jms_advanced_features.pdf
self_QA_JMS_6.0_WMS_ID_7881.pdf

All image names should be lowercase, please rename if these images are being used

image has been removed, it is not needed