SSL Certificate and CORS

When setting up Flynn, you're being asked to download and install the certificate. IIRC this only works on per-browser basis. Whenever another client (different browser instance) logs into the dashboard, he'll see a warning:

Once added, he can sign in and proceed to the apps tab, but he won't see any:

This is because the security exception applies only for this specific domain.
I suggest to add a warning to the dashboard which instructs the user to download the certificate if network calls are blocked due to insecure responses.
If anyone can hint me at the proper direction for this, I'd  be happy to create a PR.

Visiting the HTTP version should walk you through installing the certificate which will bypass this issue.
We should make a request to the /ping endpoint of the controller using both HTTP and HTTPS if any request to the controller fails with a status of 0 (all requests to the controller go through here). If they both fail, a SERVICE_UNAVAILABLE event should be fired (example). If HTTP succeeds and HTTPS fails, we should redirect the user to the HTTP version for certificate install instructions (we should add an event for this, say HTTPS_UNAVAILABLE, and handle the redirect here).
I think we'll also need to update the logic for detecting if the certificate needs installing as it currently assumes if it can get the config over HTTPS the cert is installed, it should use the controller's /ping endpoint using HTTPS instead.
@arekkas let me know if you're still up for creating a PR for this / if you have any questions.

I can try, probably need some time to get into React tho. You could point me at the files I should look at

The files linked in my previous comment should be all you need for this, and as none of them are views you don't need to be familiar with React :wink: marbles-js is used in these places though, so you may wish to look at the docs for that.

Oh, and for dashboard development, it's best to run it standalone on your computer (see here for the various ENV vars you'll need). Replace/add dashboard/bindata.go with this and compile assets by running bundle exec rake compile in the app directory.

Thanks, I'll give it a shot :)

Great, let us know how it goes :)

is there by any chance a vagrantfile for the dashboard app? the ruby env doesn't work on windows because I could not figure out how to install puma.

@arekkas puma isn't actually used. If removing it from the Gemfile doesn't get it working, you could try running it in the dev box.

removing it did the trick. should I add this to the commit?

I've removed it in #1432

Any idea why the asset is missing?
D, [2015-04-09T17:17:06.063948 #1468] DEBUG -- : Compiled dashboard/main.js  (0ms)  (pid 1468)
rake aborted!
StaticSprockets::App::AssetServer::SprocketsHelpers::AssetNotFoundError: "windows-firefox-cert-1.png" does not exist within ["
D:/workspace/go/src/github.com/flynn/flynn/dashboard/app/lib/javascripts", "D:/workspace/go/src/github.com/flynn/flynn/dashboa
rd/app/lib/stylesheets", "D:/workspace/go/src/github.com/flynn/flynn/dashboard/app/lib/fonts", "D:/workspace/go/src/github.com
/flynn/flynn/dashboard/app/lib/images", "D:/workspace/go/src/github.com/flynn/flynn/dashboard/app/vendor/javascripts", "D:/wor
kspace/go/src/github.com/flynn/flynn/dashboard/app/vendor/stylesheets", "D:/workspace/go/src/github.com/flynn/flynn/dashboard/
app/vendor/fonts", "D:/workspace/go/src/github.com/flynn/flynn/dashboard/app/vendor/images", "C:/Ruby/lib/ruby/gems/2.2.0/bund
ler/gems/marbles-js-e11f4b306d0b/src", "C:/Ruby/lib/ruby/gems/2.2.0/bundler/gems/flynn-dashboard-web-icons-a03e56dbe3dd/assets
", "D:/workspace/go/src/github.com/flynn/flynn/dashboard/app/lib/installer/images"]!

You'll need to run make within the Vagrant dev box as some shared files are copied over from the installer.

I'm not able to run make:
`[ tup ] [37.694s] Executing Commands...
 [                                               ETA~=??? Remaining=126 Active=2                                                ]   0%.tup/tmp/output-17974: Text file busy
tup error: Unable to unlink sub-process output file.
 *** Command ID=17974 failed: ./build.sh
 [                                               ETA~=??? Remaining=126 Active=1                                                ]   0%.tup/tmp/output-17984: Text file busy
tup error: Unable to unlink sub-process output file.
 *** Command ID=17984 failed: CGO_ENABLED=0 ../../util/_toolchain/go/bin/go build -installsuffix nocgo -o bin/flynn-postgres -ldflags="-X github.com/flynn/flynn/pkg/version.commit $GIT_COMMIT -X github.com/flynn/flynn/pkg/version.branch $GIT_BRANCH -X github.co
m/flynn/flynn/pkg/version.tag $GIT_TAG -X github.com/flynn/flynn/pkg/version.dirty $GIT_DIRTY" -tags="$GO_BUILD_TAGS"
 [                                               ETA~=??? Remaining=126 Active=0                                                ]   0%
 *** tup: 2 jobs failed.
make: *** [all] Error 1

@current master

@arekkas I assume this is from within the development VM? Try deleting .tup before running it again.

Yup, I did that and also removed the local copy and cloned it again - didn't help. My best guess is some mixup with the windows host. I'll try it on mac now

I was able to run make and bundle exec :) Seems to be a problem with Windows.
However, "localflynn.com" doesn't work. What I did was:
host$ git clone https://github.com/flynn/flynn
host$ vagrant up
host$ cd dashboard/app
host$ bundle install
host$ bundle exec rake compile
host$ vagrant ssh
vm$ make
host$ flynn key add
host$ flynn -a dashboard env get LOGIN_TOKEN
host$ open http://dashboard.demo.localflynn.com

Should I be running vagrant up from the demo dir instead?

Ok, running it with demo works :)

Ok, I was able to get the local version of flynn running using:
$ cd flynn/demo
$ make init
$ make dashboard

However I haven't figured out how to make the changes I did visible in the dashboard app. Any tips how to do that?

@arekkas I've responded in IRC.

Thanks! I got to the point where I was able to bootstrap the dev flynn. However, I still haven't figured out how to get the dashboard running locally:
To get things going I did what the docs told me:
$ vagrant up
$ vagrant ssh
vm$ make
vm$ scripts/bootstrap-flynn

Then I started with a very simple example and tried to add a console.log() here: https://github.com/flynn/flynn/blob/0f4a636e97c4c2538a86bfaa0c0c7b46935bc616/dashboard/app/lib/javascripts/dashboard/main.js#L21
Via VM
At first I tried to update the dashboard via the VM:
vm$ make
vm$ bin/bootstrap-flynn

That worked :) However it's pretty resource heavy and takes quite some time for rebuilding.
Standalone
I wasn't able to build main.go nor to use bin/flynn-dashboard since the host ist MacOS. What I did was:
$ cd dashboard/app
$ bundle exec rake compile
$ cd ../
$ DEFAULT_ROUTE_DOMAIN=dev.localflynn.com:2222 CONTROLLER_DOMAIN=https://controller.dev.localflynn.com CONTROLLER_KEY={{key}} URL=https://controller.dev.localflynn.com SESSION_SECRET=foobar LOGIN_TOKEN={{key}} go run main.go

Which resulted in:
# command-line-arguments
./main.go:17: undefined: LoadConfigFromEnv
./main.go:18: undefined: APIHandler

what is really weird because these packages should be available. The flynn source is in: $GOPATH/src/github.com/flynn/flynn
Any ideas?

I created a ping method in client.js:
    ping: function (protocol) {
        var controllerKey = (Dashboard.config.user || {}).controller_key,
    	    endpoint;

        protocol = protocol === undefined ? 'https' : protocol;
        endpoint = this.endpoints.cluster_controller.substr(0, 5) === "https" ?
           protocol + endpoint.substr(5) :
           protocol + endpoint.substr(4);

	    return this.performRequest('GET', {
            middleware: [
                Marbles.HTTP.Middleware.BasicAuth("", controllerKey)
            ],
            url: endpoint + "/ping"
        });
    },

However I am not sure where to trigger this. When triggered from the run method in main.js, this.endpoints as well as Dashboard.config.user are still undefined (I guess they're being hydrated later on?).

@arekkas regarding running the dashboard standalone, you'll need to either list all package files in the go run command or run go build then ./dashboard.

great, thanks :)


From multiple proto files, generate only one file.pb.go

Hey folks !
I am creating my first service in go with protobuf and I was wondering if I could generate only one task.pg.go from my 3 different protofiles?
They are in the same package, referencing the same output package.
- Task
- Date
- Content

Task imports the 2 others at the beginning of the file.
import "date.proto";
import "content.proto";

I then generate my task.pb.go from  protoc task.proto --go_out=plugins=grpc:.. It works, however, the pb file won't contain the Date messages and the Content messages.
In fact, the output will contains the rpc functions but not the messages from the other files.
service Tasks {
     rpc AddTask (Content) returns (Content) {}
     rpc CompleteTask (Date) returns (Date) {}
}

The generated protofile task.pb.go contains the definitions, so the methods are found by my main.go file, but the messages cannot be find.
Thanks for any help
PS: feel free to ask more details if you need to
Max

Hi, thanks for the report. This is a duplicate of #39. It's something we may want to address in the near future (no guarantees), but there are currently other protobuf items we're working on. So feel free to subscribe to that issue.

Sorry I didn't notice it when I was searching in the issues.... :)

Sorry. I misread your post. You actually want the contents of all three .proto files to be in the same generated .pb.go file. That is a different issue from #39. I apologize.

One of the assumptions made by protoc is that you can run it sequentially on each .proto file individually or a set of .proto files and the output be the same. I don't see how you can maintain that property by having multiple .proto files feed into the same .pb.go file.
The best you can do today is to do import public "date.proto", which will forward all declarations in data.proto inside the currently generated file as well. However:

import public was never designed for this purpose. It's use case is for migration, where you move a .proto file to a new location, but need declarations to continue to exist in the former location.

Ok thank you first for reopening :)
It's just about readability, tbh the 3 proto files could be just one, I just prefere to separate my class (or model) from my methods/functions

I tested this out and it should satisfy what you want:
$ tree
.
├── bar
│   └── bar.proto
├── foo
│   └── foo.proto
└── test.proto

File "test.proto" has:
syntax = "proto2";

import public "foo/foo.proto";
import public "bar/bar.proto";

message MyMessage {
	optional FooMessage foo = 1;
	optional BarMessage bar = 2;
}

File "foo.proto" has:
syntax = "proto2";
option go_package = "github.com/user/project/foo";
message FooMessage { optional string f = 1; }

File "bar.proto" has:
syntax = "proto2";
option go_package = "github.com/user/project/bar";
message BarMessage { optional string f = 1; }

When compiling with protoc --go_out=. test.proto, you get a file:
package test

import bar "github.com/user/project/bar"
import foo "github.com/user/project/foo"

// FooMessage from public import foo/foo.proto
type FooMessage = foo.FooMessage

// BarMessage from public import bar/bar.proto
type BarMessage = bar.BarMessage

type MyMessage struct {
	Foo                  *foo.FooMessage `protobuf:"bytes,1,opt,name=foo" json:"foo,omitempty"`
	Bar                  *bar.BarMessage `protobuf:"bytes,2,opt,name=bar" json:"bar,omitempty"`
        ...
}

As you can see, this generates test.pb.go with FooMessage and BarMessage as declarations in that local file, but are aliased to declarations in a different file.
The caveats of this:

It relies on type aliases, which are only available in Go1.9 and above.
It's an abuse of the original use case for import public.

Since this kinda accomplishes what you want, I'm going to close this issue as a mixture of "working as intended" and "workaround available". I don't think we would ever provide first-class support for the feature since that would probably interact poorly with #39.

Hey !
Ok but import public doesn't work, so why are you using it?
protoc --proto_path proto/ proto/api_web_service.proto --go_out=plugins=grpc:proto/

libprotoc 3.5.1
...

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package

// Ignoring public import of Area from area.proto

// Ignoring public import of Place from place.proto

...

"Ignoring public import" means that you're doing an import public of a .proto file that's in the same Go package as the current one, so there's no need to add forwarding references to the imported package.

If your import paths are sufficiently simple, you may be hitting #646.
I think it will work if you put area.proto and place.proto in sub-directories.

@neild But neither "import public" or "import" works if I don't compile as well the other protofile..
The thing is, I have 3 protofile in the example and I want only on generated file, either if I import or not, only the main file is generated, but not the 2 others, I have to add them to the CLI which generates me 3 files instead of just one
@dsnet They are part of the same package actually :/

Each input .proto file generates a different output .pb.go. I don't believe this is ever likely to change. It is entirely normal for a Go package to be composed of multiple files.

That's why it's weird to me... It means that, if I have an API in Go, and my client in Android, I have to pass all of my proto file (the exchanged one between mobile and API) to my client...
If I have 25 classes, I need to duplicate there 25classes file in Android and Go? Then generate the pg.go and the pb.java


Remove Async from all functions and endpoints not needing async

Currently all the functions and endpoints are using async. We need to remove the async from the endpoints and functions not needing async.

Just reviewed the filing-api and no changes really need to be made. Only the endpoints and function that are accessing the db, are using async, not all.

Just reviewed the filing-api and no changes really need to be made. Only the endpoints and function that are accessing the db, are using async, not all.


Column Options only available in Main Grids not Sub Grids.

Hi
The column options & filter

are only available for main grids, not sub-grids. (Although I wish they were available for sub-grids already)
I would love to know if I have missed something here!

Additionally, you can add or remove columns in the view or sub-grid.

-- Image of a SubGrid with no column options or filter.

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

ID: f8e9258f-4c21-9d52-9940-cada6c70db50
Version Independent ID: 1f5619dd-aea0-d0d4-34a9-a7e0e036faf8
Content: Filter data on grids - Power Apps
Content Source: powerapps-docs/user/grid-filters.md
Service: powerapps
Sub-service: end-user
GitHub Login: @mduelae
Microsoft Alias: mkaur

@Uggi, Let me verify this information with our internal team and I will get back to you.
Thanks,
Mints

Hello - thank you for the feedback. You have not missed anything. Column options and advanced filters are available only on a table's home page grid. Currently sub grids do not have these, as sub-grids are generally found on a form which already has some context. So, the records that appear on a sub-grid have certain pre-set filters and columns that users generally do not have the need to edit.

@sriharibs-msft : Thanks for the clarification. Its unfortunate, while I get the reasoning, we get lots of customers asking us for this feature all the time. Especially now that it is so easily accessible in the main grid. They are always confused why its not possible in the sub grid as well. I would urge the product team to re-evaluate this.  thanks.


Database migrations

alembic.ini is auto generated to 99% and should not be touched again
script.py.mako is auto generated by alembic, don't want to touch it
Our backend creates the database now only from migrations
Initial migration is there, completely auto created from alembic
Added a new test checking, whether the migrations create the newest schema
(Getting the second db was a bit weird. It was now the best solution I came up with based on the postgre test library. I guess it could be easier / shorter, but dunno)

Should be working now

Could we add some create *if exists* to the database creation? Upon startup my backend container crashed instantly because it tried creating tables that already existed

Yes, but it's effort. Honestly, this should be the last time you should need to do that. After that alembic creates a dedicated table to keep track of migrations


Documentation request - when does the update run?

assuming I'm not using execute_after_commit - can you specify in the docs where in the callback chain the updates happen?
I currently have a case where the counter update seems to have happened by the time an after_save callback runs on my model.
I'm not sure whether this is luck (just happened to be be earlier in the list of after_save callbacks), or design (counter_culture runs in an earlier callback altogether)
would be great if you could cover this in the docs.
thank you.

@ConfusedVorlon it registers callbacks when you call counter_culture in your model, so this will depend on whether you call counter_culture first or register your own callbacks first.


dependencies setup to be cross platform

Any thoughts of best way to make it easy to setup for cross platform
task is fine but I think we could easily add a reps command that installs
https://github.com/itchyny/gojq
#go install github.com/itchyny/gojq/cmd/gojq@latest
go install<EMAIL_ADDRESS>then Task file works for me with just changing "jq" to "gojq"
VERSION:
    sh: cat library/package.json| gojq -r .version

--
for wget, we can replace with go-getter I think.
https://github.com/hashicorp/go-getter

cool. I will do it.
One thing that blocks me atm in Task compared to Makefile is doing "if else" checks when I check the "OS" and "ARCH", and then either call brew install or whatever windows and linux want.
Maybe you have an idea for how to do this in a Taskfile OR we just change to using  a Makefile.
This is a Makefile that does it using the golang to detect OS and ARCH. SO it assumes golang is installed which is a given...

ifeq ($(OS_GO_OS),windows)
	@echo ""
	@echo "Detected Windows ..."

	@echo ""
endif

ifeq ($(OS_GO_OS),darwin)
	@echo ""
	@echo "Detected Darwin ..."

	@echo ""
	@echo "Installing create-dmg with brew, so that we can do packaging on Mac."
	@echo ""
	brew install create-dmg
	@echo ""
endif

ifeq ($(OS_GO_OS),linux)
	@echo ""
	@echo "Detected Linux ..."
	@echo ""
	@echo "Installing various things, so that we can build and run on Linux."
	@echo ""
	sudo apt install gcc pkg-config libwayland-dev libx11-dev libx11-xcb-dev libxkbcommon-x11-dev libgles2-mesa-dev libegl1-mesa-dev libffi-dev libxcursor-dev libvulkan-dev libfuse2

	@echo ""
	@echo "Installing pkg2appimage with wget, so that we can do packaging with appimage on Linux."
	@echo ""
	wget -c $(shell wget -q https://api.github.com/repos/AppImageCommunity/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | grep browser_download_url | head -n 1 | cut -d '"' -f 4)
	chmod +x ./pkg2appimage-*.AppImage
	mkdir -p dist
	mv ./pkg2appimage-*.AppImage ./dist/

	@echo ""
endif

I think you are looking for https://taskfile.dev/usage/#os-specific-taskfiles

https://github.com/delaneyj/datastar/compare/main...gedw99:datastar:main
dont need any per OS stuff. See the tool.mk.
Taskfile_tool.yaml is the one that will do what tool.mk does currently.  Still working it out though because Task can't evaluate all the variables before it runs, which make file can do. So might have to turn things into more function calls for the Task file. Just guessing as I only have 5 minutes experience with task :)
Let me know if you have any clues

Got stuck here: https://github.com/go-task/task/discussions/1429

Guess I'm a little confused this is just related to deploying the docs to fly.io, why would you need to do this at all?

Its cool . I wanted to make it cross platform.
I ended up just wrapping Task with Make and it works on windows , Mac and Linux fine now. Just to get it working .
If you want we can revisit this later to move everything to task later .
Will close for now ..


It's not clear for beginner on how to "Verify your permissions"

In the 2nd section Verify your permissions, it's not clear for users, especially for beginners, on how to verify their permissions, e.g.:

"Resource Group which contains the VNet" and "Service Principal passed as –client-id" don't seem to be permissions?
How can users verify if they have User Access Administrator or Contributor role,  and if they can permission to az aro create?

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

ID: 93aa980e-1970-235c-228a-7b19880171b8
Version Independent ID: 6f7937a4-12e0-d61c-3bd8-c6347ec48385
Content: Tutorial - Create an Azure Red Hat OpenShift 4 cluster
Content Source: articles/openshift/tutorial-create-cluster.md
Service: container-service
GitHub Login: @sakthi-vetrivel
Microsoft Alias: suvetriv

@majguo Thank you for sharing your query! We are currently investigating and will get back to you shortly on this.

@majguo Apologies for the delay in response and all the inconvenience caused because of the issue.
In the mentioned article you need to verify permissions on your Azure subscription, Azure Active Directory user, or service principal.
"Resource Group which contains the VNet" and "Service Principal passed as –client-id" are indeed not the permissions but these are the resources on components on which both the User Admin and Contributor need to ave access on.
For example when it mentions the Resource Group in which you have Vnet then you need to login to Azure portal search for Resource Group in the search bar and then it will show you a list of resource group as below:

You need to check in which resource group you have deployed your Vnet and then you need to check IAM blade to see if the user has contributor access or not there.If not then if you have owner role over subscription or resource group or resource then you can add user as user admin and contributor on resource level.
For example i have my vnet deployed in Resource Group named dnstest and I have one user who has inherited contributor role from subscription(usually if someone is contributor in Subscription the role is inherited in all resource groups and resource as well). As per the article I need to check the user who is trying to create  Azure Red Hat OpenShift 4 cluster should be User Admin and Contributor on this resource.:

You can add user as User Admin and contributor as well as below:

Once added you can now see the contributor role and user admin role for the user in IAM blade in resource group itself as shown.
Same is case with Service Principal passed as –client-id as well  you can refer to this article as well to see ow to give permission to user as contributor or User Admin to same.
Hope it helps!!!
Do let me know in case of any more queries.
Thanks

@majguo Hope the provided information is helpful.
We will now close this issue. If there are further questions regarding this, please tag me in a comment. I will reopen it and we will continue the discussion.


Support for Godot 3.1.1

My editor crashes with no error messages (even in debug mode) about a minute after opening my project, and I strongly suspect it is the sqlite dll.
Any chance of getting an official release that supports 3.1.1 ?

I have compiled a beta build for Windows, Linux and OSX on Godot 3.1. Let me know if these don't work for you.

I tried this build on Ubuntu 18.04 64 Bit. Seems to work so far.
But you should add a documentation how to build the lib from source. Currently I don't know how to do that

I added an extra section to the README and opened a pull request. You can read the build guide here.


Re-implement PR-AUC.

Close https://github.com/dmlc/xgboost/issues/6561 .
Close https://github.com/dmlc/xgboost/issues/6272 .
Close https://github.com/dmlc/xgboost/issues/6551 .
Close https://github.com/dmlc/xgboost/issues/6692 .

LTR support is added.  No breaking change.

Codecov Report

Merging #7297 (202fe96) into master (69d3b1b) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #7297   +/-   ##
=======================================
  Coverage   83.62%   83.62%
=======================================
  Files          13       13
  Lines        3884     3884
=======================================
  Hits         3248     3248
  Misses        636      636

Continue to review full report at Codecov.

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

@RAMitchell I attached some benchmark results to the PR description.


[BUG] No longer builds on startup

Environment
Self-Hosted (Docker)
System
Chrome 108 on Windows 10 - Docker 20.10.17 on Raspbian 11 bullseye
Version
2.1.1
Describe the problem
For a few versions now Dashy starts up and doesn't have my custom styles applied so I need to connect and run yarn build manually.
I have a file mounted at /app/src/styles/user-defined-themes.scss to apply my custom scss which used to work fine after updates, but now I need to trigger a manual build every container update.
My containers are automatically update using watchtowerr
Additional info
The below is the output of the container on start
yarn run v1.22.15
$ node server
Checking config file against schema...
✔ Config file is valid, no issues found
 ██████╗  █████╗ ███████╗██╗  ██╗██╗   ██╗
 ██╔══██╗██╔══██╗██╔════╝██║  ██║╚██╗ ██╔╝
 ██║  ██║███████║███████╗███████║ ╚████╔╝
 ██║  ██║██╔══██║╚════██║██╔══██║  ╚██╔╝
 ██████╔╝██║  ██║███████║██║  ██║   ██║
 ╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝   ╚═╝
*******************************************************************************************
Welcome to Dashy! 🚀
Your new dashboard is now up and running with Docker
*******************************************************************************************
🔐 HTTPS server successfully started (port: 443 of container)
Using Dashy V-2.1.1. Update Check Complete
✅ Dashy is Up-to-Date

Please tick the boxes

[X] You have explained the issue clearly, and included all relevant info
[X] You are using a supported version of Dashy
[X] You've checked that this issue hasn't already been raised
[X] You've checked the docs and troubleshooting guide
[X] You agree to the code of conduct

I confirm this problem. You have to manually enter the container and run the yarn build command. Only then does Dashy rebuild and themes and configurations are applied.

You may solve this by adding entrypoint: ["yarn","build-and-start"] to your docker-compose.yml. The drawback is whenever you click the "save on disk" button, it will build the whole project again. It can be CPU-consuming for some low-end VM. Hope there will be a more elegant way to solve this problem.
here is my docker-compose.yml
version: "3.8"
services:
dashy:
container_name: Dashy
hostname: dashy
# Pull latest image from DockerHub
image: lissy93/dashy:latest
# Pass in your config file below, by specifying the path on your host machine
volumes:
  - /home/ubuntu/dashy/public:/app/public
  - type: bind
    source: /home/ubuntu/dashy/.env
    target: /app/public/.env
entrypoint: ["yarn","build-and-start"]

# Set port that web service will be served on. Keep container port as 80
ports:
  - 4000:80

# Set any environmental variables
environment:
  - NODE_ENV=production

# Specify restart policy
restart: unless-stopped

# Configure healthchecks
healthcheck:
  test: ['CMD', 'node', '/app/services/healthcheck']
  interval: 1m30s
  timeout: 10s
  retries: 3
  start_period: 40s

If I have time this weekend, I will write an article on how to build Dashy using docker & how to use Nginx Proxy Manager + Authelia for authentication.
Btw the solution of this issue was mentioned by coalwater. You may read the closed issue here.

This is still relevant and happens without changing entrypoint to yarn build-and-start

We will not wait for the developer's response, it seems.  Is she too busy with other projects?

I confirm this problem. You have to manually enter the container and run the yarn build command. Only then does Dashy rebuild and themes and configurations are applied. Multipages also don't work until you manually rebuild Dashy.

Can confirm this still happens to me, after I added multiple pages.

This is still relevant

I can confirm this is still relevant too.
Interestingly, this is a regression from 2.1.0.
Took a lot of head-scratching to understand why my Keycloak authentication configuration was not applying properly. It was caused because no build happens when the official Docker image is started.
In my opinion this issue becomes far more severe if my dashboard can become public-access if my Docker container gets recreated (without manually intervening and starting a build).

Further investigations:
I've narrowed down that this regressed in commit " 60d0b03: removed build watch and tini from container run-time".
It was pushed directly to master, so there is no linked PR or issue with more information about this change.
This change isn't in the 2.1.1 tag, so this shouldn't be an issue in the 2.1.1 docker image.
BUT.
I've noticed that the 2.1.1 Docker image was last updated 13 days ago and when viewing the Image Layer Details it seems to be executing commands as if using the master Dockerfile.
@Lissy93 Are you aware of an issue with the automated deployments deploying some form of master to the 2.1.1 tag on Docker Hub?

Still relevant. Waiting to hear back from @Lissy93.

Still relevant. Waiting to hear back from @Lissy93.


需要一些帮助

您好，我是刚接触，尝试在您的程序中加入IOU分割标准，但是程序无法完成，您能否提供一些帮助，谢谢

Please refer to our previous model BASNet (
https://github.com/NathanUA/BASNet/blob/master/basnet_train.py), in which
the IoU loss is used there.
On Mon, Dec 14, 2020 at 1:15 AM wen5568<EMAIL_ADDRESS>wrote:

您好，我是刚接触，尝试在您的程序中加入IOU分割标准，但是程序无法完成，您能否提供一些帮助，谢谢
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/NathanUA/U-2-Net/issues/125, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADSGORLLNNYXI2HYIW4JRPDSUXCTDANCNFSM4U2LEGFQ
.

--
Xuebin Qin
PhD
Department of Computing Science
University of Alberta, Edmonton, AB, Canada
Homepage:https://webdocs.cs.ualberta.ca/~xuebin/

谢谢


Release plan 0.1.0

[ ] Change to new docker image as default: https://github.com/artificialio/docker-sails/blob/master/nvm-iojs-latest/Dockerfile
[ ] Fix sane up: https://github.com/artificialio/sane/pull/112 (you can submit a PR to that PR or just move the things to a new PR)
[ ] The most minimal implementation of the addon system: https://github.com/artificialio/sane/pull/88, which still needs support for pod structure out of the box (if anyone wants to get involved finishing this off PM me on Gitter or comment here). Also see https://github.com/sane/sane-auth/issues/6

Something to think about:

[ ] set pods as default for ember apps?

Nice to have:

[ ] Test coverage: https://github.com/artificialio/sane/issues/120

Anyone chiming in will mean this gets out of the door faster.

@Globegitter it looks like there is no tag for iojs-nvm-stable in
https://registry.hub.docker.com/u/artificial/docker-sails/tags/manage/


Small performance increase.

Test the most used instructions first and the less likely scenarios least. And if an opcode is having a specific value, it also means it can’t have other values at the same time.
The reason behind this is the way CPython compares Object values take times (poor timings).
Will win a little less than 2 minutes over a 30 minutes run if the timeout limit along node count is raised accordingly.

Awesome, thanks, @ytrezq ! <3

I'm neutral on several topics, subjects,  and issues.  I'm taking my time, I believe this has potential  and this world  will come across this new way of money,    like  the power of a storm, tornado , ....like a hurricane!!!!!

0e52ba4cb1b7bb03f8a79e3226e9c142351578dc

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

6c5ac012caff6dc5b7dfaa1eb1ee1adae2c7a15c

Is the ending of this process of withdrawing funds?


feat: working nix flake

Summary
Refactor the nix flake to a complete version, following the same principles of the recent swayfx flake overhaul.
Outputs
Packages
Output a default and scenefx package, which provides out and lib outputs (compatible with pkg-config)
Overlays
Provides both an insert and override overlay, one that will work with any nixpkgs and just insert the locked package as is, or the more advanced override that must be used with a smiliar nixpkgs unstable version, which can be used to overlay additional things etc.

Passing Garnix CI

Also, seems like a better fix for the headers is included separately in #39, so once merged will rebase this pr on top


how to play local videos ?

how to play videos located on the device

return VideoViewer(
      controller: controller,
      source: {
        "SubRip Text": VideoSource(
          video: VideoPlayerController.network(
              "https://www.speechpad.com/proxy/get/marketing/samples/standard-captions-example.mp4"),
          subtitle: {
            "English": VideoViewerSubtitle.network(
              "https://felipemurguia.com/assets/txt/WEBVTT_English.txt",
              type: SubtitleType.webvtt,
            ),
          },
        )
      },
    );

You're going to replace [videoFilePath]. You can get the [videoFilePath] using image_picker
return VideoViewer(
  source: {
    "video": VideoSource(
        video: VideoPlayerController.network(videoFilePath),
    )
  },
);


🐛 firebase_admob: ^0.10.0+2 - no Ads iOS Offline then Online

If you start Admob in Offline (Airplane) mode. Initialize Interstitial and Rewarded. Then switch to online.
Nothing works...
Really bad if a user has no internet at the start. And never receive ads until the next app (cold) start.
thanks!

@MightyRai90
Please provide flutter doctor -v and a minimal reproducible code sample that shows the issue.
Thanks.

flutter doctor:
[✓] Flutter (Channel stable, 1.22.0, on Mac OS X 10.15.7 19H2, locale en-AT)
    • Flutter version 1.22.0 at /Users/raimundeissler/developement/flutter
    • Framework revision d408d302e2 (5 weeks ago), 2020-09-29 11:49:17 -0700
    • Engine revision 5babba6c4d
    • Dart version 2.10.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/raimundeissler/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.1, Build version 12A7403
    • CocoaPods version 1.8.4

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] Connected device (1 available)
    • iPhone von Raimund (2) (mobile) • 00008101-000619EC0C91003A • ios • iOS 14.1

! Doctor found issues in 1 category.

the flutter and dart plugin are installed. A little bit buggy the whole thing ^^
// create
AdvertisingManager()  {
    FirebaseAdMob.instance.initialize(
      appId: "****",
    );
  }

// load
    RewardedVideoAd.instance.load(adUnitId: "****", targetingInfo: targetingInfo);

// show
    RewardedVideoAd.instance.show();

I really think thats an issue from the firebase_admob package...

seemed to be fixed in version 10.0.2 !

@MightyRai90
Given your last comment above, I am going ahead and closing this. If you disagree, write in comments and I'll reopen.
Thanks.


Feature/select other week

You can now change to the last, the next or the current week by clicking on a button at the top.

I thought about reviewing this pull request, but it was already merged :D


Add Google TagManager

What is the context of this PR?
Switch out Google Analytics for Google TagManager
How to review
Provide the env var of EQ_GTM_ID, EQ_GTM_AUTH and EQ_GTM_PREVIEW and check that these are in the HTML source in the correct place.

Can I actually view any events in GTM?.

Will reopen once new changes have been implemented.

Are we able to get a link to an example so we can 'check that these are in the HTML source in the correct place'?

Are we able to get a link to an example so we can 'check that these are in the HTML source in the correct place'?

The code the example uses is slightly different by applied the same way.
https://developers.google.com/tag-manager/quickstart

@ajmaddaford @JamesGardiner
Can you just do a final check to make sure the new changes are fine?
Waiting for speak to Mark about CSP policies.

I don't agree with the changes to the CSP policy. I'm' approving this pull request on the understanding that this will be reviewed by Information Assurance. I will also raise a Github issue to track this once merged.


Mehari should not mention transcript NM_001291324 for GRCh37 where it has no alignment

Describe the bug
Currently mehari db build will mention NM_001291324 in the GRCh37 transcripts but that transcript only has GRCh38 alignments.
To Reproduce
N/A
Expected behavior
Such transcripts should not be written to the output file.
Screenshots
N/A
Additional context

#380

Curious, all transcripts of HGNC:29279 are affected by this but UCSC shows RefSeq transcript alignments.

OK, this appears to be legit by the data ...
# grep 'NM_001377448|NM_001291324' ~/mehari-data-tx/pass-1/txs.bin.zst.report
Skipping transcript NM_001291324.3 because of missing stop codon in translated CDS
Skipping transcript NM_001377448.1 because of missing stop codon in translated CDS

There are 139 such transcripts, see below. Most probably, we cannot easily resolve this for GRCh37.
# grep 'because of missing stop codon' ~/mehari-data-tx/pass-1/txs.bin.zst.report | wc -l
139
# grep 'because of missing stop codon' ~/mehari-data-tx/pass-1/txs.bin.zst.report
Skipping transcript NM_000442.5 because of missing stop codon in translated CDS
Skipping transcript NM_001012288.3 because of missing stop codon in translated CDS
Skipping transcript NM_001017915.3 because of missing stop codon in translated CDS
Skipping transcript NM_001039127.6 because of missing stop codon in translated CDS
Skipping transcript NM_001040627.2 because of missing stop codon in translated CDS
Skipping transcript NM_001077693.4 because of missing stop codon in translated CDS
Skipping transcript NM_001085423.2 because of missing stop codon in translated CDS
Skipping transcript NM_001085474.2 because of missing stop codon in translated CDS
Skipping transcript NM_001137667.2 because of missing stop codon in translated CDS
Skipping transcript NM_001137668.2 because of missing stop codon in translated CDS
Skipping transcript NM_001143962.2 because of missing stop codon in translated CDS
Skipping transcript NM_001145026.2 because of missing stop codon in translated CDS
Skipping transcript NM_001145064.3 because of missing stop codon in translated CDS
Skipping transcript NM_001170637.4 because of missing stop codon in translated CDS
Skipping transcript NM_001174092.3 because of missing stop codon in translated CDS
Skipping transcript NM_001201380.3 because of missing stop codon in translated CDS
Skipping transcript NM_001271872.3 because of missing stop codon in translated CDS
Skipping transcript NM_001282302.2 because of missing stop codon in translated CDS
Skipping transcript NM_001289930.2 because of missing stop codon in translated CDS
Skipping transcript NM_001289931.2 because of missing stop codon in translated CDS
Skipping transcript NM_001290033.2 because of missing stop codon in translated CDS
Skipping transcript NM_001290047.2 because of missing stop codon in translated CDS
Skipping transcript NM_001290097.2 because of missing stop codon in translated CDS
Skipping transcript NM_001290098.1 because of missing stop codon in translated CDS
Skipping transcript NM_001291281.3 because of missing stop codon in translated CDS
Skipping transcript NM_001291310.2 because of missing stop codon in translated CDS
Skipping transcript NM_001291316.2 because of missing stop codon in translated CDS
Skipping transcript NM_001291317.2 because of missing stop codon in translated CDS
Skipping transcript NM_001291324.3 because of missing stop codon in translated CDS
Skipping transcript NM_001291345.2 because of missing stop codon in translated CDS
Skipping transcript NM_001291815.2 because of missing stop codon in translated CDS
Skipping transcript NM_001293739.2 because of missing stop codon in translated CDS
Skipping transcript NM_001300952.2 because of missing stop codon in translated CDS
Skipping transcript NM_001302371.3 because of missing stop codon in translated CDS
Skipping transcript NM_001303486.3 because of missing stop codon in translated CDS
Skipping transcript NM_001303489.3 because of missing stop codon in translated CDS
Skipping transcript NM_001304359.2 because of missing stop codon in translated CDS
Skipping transcript NM_001324381.3 because of missing stop codon in translated CDS
Skipping transcript NM_001329984.2 because of missing stop codon in translated CDS
Skipping transcript NM_001349168.2 because of missing stop codon in translated CDS
Skipping transcript NM_001349169.2 because of missing stop codon in translated CDS
Skipping transcript NM_001349170.2 because of missing stop codon in translated CDS
Skipping transcript NM_001349171.2 because of missing stop codon in translated CDS
Skipping transcript NM_001350319.2 because of missing stop codon in translated CDS
Skipping transcript NM_001350451.2 because of missing stop codon in translated CDS
Skipping transcript NM_001350453.2 because of missing stop codon in translated CDS
Skipping transcript NM_001354346.2 because of missing stop codon in translated CDS
Skipping transcript NM_001359228.2 because of missing stop codon in translated CDS
Skipping transcript NM_001359229.2 because of missing stop codon in translated CDS
Skipping transcript NM_001359230.2 because of missing stop codon in translated CDS
Skipping transcript NM_001359231.2 because of missing stop codon in translated CDS
Skipping transcript NM_001365455.2 because of missing stop codon in translated CDS
Skipping transcript NM_001366028.2 because of missing stop codon in translated CDS
Skipping transcript NM_001366280.2 because of missing stop codon in translated CDS
Skipping transcript NM_001369493.1 because of missing stop codon in translated CDS
Skipping transcript NM_001372044.2 because of missing stop codon in translated CDS
Skipping transcript NM_001377444.1 because of missing stop codon in translated CDS
Skipping transcript NM_001377445.1 because of missing stop codon in translated CDS
Skipping transcript NM_001377446.1 because of missing stop codon in translated CDS
Skipping transcript NM_001377447.1 because of missing stop codon in translated CDS
Skipping transcript NM_001377448.1 because of missing stop codon in translated CDS
Skipping transcript NM_001378188.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382323.2 because of missing stop codon in translated CDS
Skipping transcript NM_001382324.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382325.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382326.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382327.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382328.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382329.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382330.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382331.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382332.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382334.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382335.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382336.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382337.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382338.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382339.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382340.1 because of missing stop codon in translated CDS
Skipping transcript NM_001382341.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385227.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385228.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385804.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385805.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385806.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385809.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385813.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385814.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385815.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385816.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385817.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385818.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385819.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385820.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385821.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385822.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385823.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385824.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385825.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385827.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385828.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385830.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385831.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385836.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385839.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385840.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385841.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385842.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385843.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385845.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385846.1 because of missing stop codon in translated CDS
Skipping transcript NM_001385847.1 because of missing stop codon in translated CDS
Skipping transcript NM_001733.7 because of missing stop codon in translated CDS
Skipping transcript NM_001787.3 because of missing stop codon in translated CDS
Skipping transcript NM_003585.5 because of missing stop codon in translated CDS
Skipping transcript NM_003631.5 because of missing stop codon in translated CDS
Skipping transcript NM_003715.4 because of missing stop codon in translated CDS
Skipping transcript NM_003868.3 because of missing stop codon in translated CDS
Skipping transcript NM_005541.5 because of missing stop codon in translated CDS
Skipping transcript NM_005960.2 because of missing stop codon in translated CDS
Skipping transcript NM_012115.4 because of missing stop codon in translated CDS
Skipping transcript NM_012133.6 because of missing stop codon in translated CDS
Skipping transcript NM_012309.5 because of missing stop codon in translated CDS
Skipping transcript NM_014703.3 because of missing stop codon in translated CDS
Skipping transcript NM_015326.5 because of missing stop codon in translated CDS
Skipping transcript NM_018461.5 because of missing stop codon in translated CDS
Skipping transcript NM_018711.5 because of missing stop codon in translated CDS
Skipping transcript NM_022148.4 because of missing stop codon in translated CDS
Skipping transcript NM_031308.4 because of missing stop codon in translated CDS
Skipping transcript NM_031421.5 because of missing stop codon in translated CDS
Skipping transcript NM_032508.4 because of missing stop codon in translated CDS
Skipping transcript NM_033486.3 because of missing stop codon in translated CDS
Skipping transcript NM_033487.3 because of missing stop codon in translated CDS
Skipping transcript NM_033489.3 because of missing stop codon in translated CDS
Skipping transcript NM_033490.3 because of missing stop codon in translated CDS
Skipping transcript NM_053005.5 because of missing stop codon in translated CDS
Skipping transcript NM_138352.3 because of missing stop codon in translated CDS
Skipping transcript NM_173600.2 because of missing stop codon in translated CDS
Skipping transcript NM_178562.5 because of missing stop codon in translated CDS


Redirect Manager (AEM-Cloud-Service)

Required Information
@davidjgonzalez  @YegorKozlov
This is not a bug, but a request for enhancement for Redirect Manager for (AEM-Cloud-Service).

[ ] AEM Version, including Service Packs, Cumulative Fix Packs, etc: AEM-as-a-Cloud Service
[ ] ACS AEM Commons Version: 5.0.4
[ ] Reproducible on Latest? yes

Expected Behavior
In the current state, we have the field "Redirect Until" which acts as an "Expiry Date" for the redirect.
In addition to above, it would be great to add an additional field "Effective From" which acts as "Redirect Go Live Date".
This really helps, where many campaign redirects are planned ahead of time, the redirect rules can be setup ahead of time and published with this effective date.
The servlet filter will only pick up this rule on once effective date is met. This will help automate the whole process of "setup ahead of time" and the redirect becomes automatically live on a future date.
Key Changes required -

Add this new field in UI.
Handle the conditional check in RedirectFilter -> handleRedirect()

@thcharan It is certainly doable.
The Edit Dialog is growing bigger and I wonder if we should split it into two tabs. The "Basic" tab will have "source", "target" and "status" fields. The "Advanced" tab will have the dates , etc.
Also, "Effective From" and "Redirect Until" are mutually exclusive.  I'm thinking about a radio button to switch between two.
Or, may be it should keep one date field and have a drop-down next to it with two options:   Redirect Until (default) and Effective From.

@YegorKozlov  -
Good idea, that't right. we should split that in to two tabs.
Effective date and Redirect date Until aren't mutual, below are the use cases -
Case 1) An author can create a redirect rule where ( Effective Date = EMPTY and Redirect Date = EMPTY ) and publishes the rule.
Expected behavior - The rule starts working from the moment it is published to the publish server and with no expiry.
Case 2) An author can create a redirect rule where ( Effective Date = FUTURE DATE  and Redirect Date = EMPTY ) and publishes the rule.
Expected behavior - The redirect rule will start working from the future date and with no expiry.
Case 3) An author can create a redirect rule where ( Effective Date = EMPTY and Redirect Date = FUTURE DATE ) and publishes the rule.
Expected behavior - The rule starts working from the moment it is published to the publish server and stops working on the date of expiry.
Case 4) An author can create a redirect rule where ( Effective Date = FUTURE DATE and Redirect Date = FUTURE DATE ) and publishes the rule.
Expected behavior - The rule starts working from the future date and stops working on the date of expiry.
Edge Cases -
Case 5) If an author creates a redirect rule where ( Effective Date = CURRENT DATE OR PAST DATE  and Redirect Date = EMPTY ) and publishes the rule.
Expected behavior - SAME as Case-1.
Case 6) If an author creates a redirect rule where ( Effective Date = EMPTY and Redirect Date = PAST DATE OR CURRENT DATE ) and publishes the rule.
Expected behavior - The redirect will not work because it already met it's expiry, when the first request is handled by the RedirectFilter -> handleRedirect().
Pseudo logic -
handleRedirect () {
If (match != null) {
if (match expired OR match not yet active) {
return false;
} else {
// proceed with redirect logic
}
}
Hope that helps.

@thcharan thanks for the use cases. I'll  include them in junits.

@YegorKozlov  Cool.  :)


Use BEM methodology for CSS

What do you think of BEM?
It will help us keep the CSS clean, organised and meaningful.
We use it for NantesJS website and we quite like it 😄
Tip: if your className is a "block" then you probably need to create a component 😉

I haven't heard of it yet, but after reading up it seems good to me. It would help us have consistent naming conventions.
Could you share NantesJS's repo for me to have concrete examples? 😄

@christopherkade here you go: https://github.com/NantesJS/

We will use it for the website => should be added in contributor guidelines


Add details of Oct 19 GOV.UK Docker survey

This adds the questions and results of the survey ran after 3 months of
using GOV.UK Docker. I've added this data to the repo as a way of
preserving the results for prosperity and as data that can be used in
comparisons for any future surveys.

I think it might be more for posterity, than prosperity, though 😆.

Haha oh dear - another classic English fail of mine.
Thanks for review, should be good for another peek now.


Pressure test on Pynecone

Describe the bug
I take a pressure test on my app which is running as a docker in Linux VM in cloud, with Locust, and watching the VM resources using Netdata. No resource limits of docker instances. Some key resouces usages of host as below: CPU 12%, Mem 38% at top, network inbound and outbound approximately 10%, checked ip_local_port_range which is big enough, and database is running ok.
Problem is about 30% failures of requests to /, and browser console says ERR_CONNECTION_TIMED_OUT. Mem usage will not increases while more concurrences there. Don't know where the problem is.
To Reproduce
Steps to reproduce the behavior:

Code/Link to Repo:

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Specifics (please complete the following information):

Python Version:3.7
Reflex Version:0.1.34
OS:
Browser (Optional):Chrome

Additional context
Add any other context about the problem here.

Local running and same remote backend has no such problem. I'll do futher debug with APM or something else.


Treatment of 0 values as missing in xgboost predict (R)

For bugs or installation issues, please provide the following information.
The more information you provide, the more easily we will be able to offer
help and advice.
Environment info
Operating System:
Linux
Compiler:
Package used (python/R/jvm/C++):
XGBoost
xgboost version used:
0.4-4
If installing from source, please provide

The commit hash (git rev-parse HEAD)
Logs will be helpful (If logs are large, please upload as attachment).

If you are using python package, please provide

The python version and distribution
The command to install xgboost if you are not installing from source

If you are using R package, please provide

The R sessionInfo()
R version 3.3.0 (2016-05-03)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Oracle Linux Server 7.2

locale:
[1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C               LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8
[5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8    LC_PAPER=en_GB.UTF-8       LC_NAME=C
[9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base
other attached packages:
[1] DiagrammeR_0.8.4 r2pmml_0.8.1     xgboost_0.4-4    data.table_1.9.6
loaded via a namespace (and not attached):
[1] Rcpp_0.12.5      lattice_0.20-33  visNetwork_1.0.2 digest_0.6.9     plyr_1.8.4       chron_2.3-47     grid_3.3.0
[8] jsonlite_1.0     magrittr_1.5     scales_0.4.0     stringi_1.1.1    SparseM_1.7      rstudioapi_0.6   Matrix_1.2-6
[15] tools_3.3.0      stringr_1.0.0    htmlwidgets_0.6  igraph_1.0.1     munsell_0.4.3    yaml_2.1.13      influenceR_0.1.0
[22] colorspace_1.2-6 htmltools_0.3.5

The command to install xgboost if you are not installing from source
install.packages("xgboost")

0 values

It seems that when prediction is used on regular matrix (not sparse) which includes 0 values (which represent real values and not missing values) they are treated as missing values and the wrong split is chosen (e.g. . when a sample had 0 value it was split to the missing node of the tree and not the correct one).

I tried setting missing = NA or missing = -555555555555 during the training but it didn't change the outcome.
Is there a way to not treat 0 values as missing values during prediction?
Here is the code I used:
xgb_model <- xgboost(
data = trainMatrix,
label = ifelse(trainMatrix[,1] == "CLEAN", 0, 1),
nthread = 8,
metrics = "auc",
objective = "binary:logistic",
verbose = TRUE,
nround = 5,
missing = NA
)
predict(xgb_model, testMatrix)

The xgboost code that you are using is quite old. And when you set a specific missing= value for training data, the same setting should be used for testing data as well.
In the new code, things should be fairly consistent:

missing = NA by default
sparse elements in sparse data are also treated as "missing" by the gbtree booster (thus, don't mix sparse and dense data in training and testing/prediction)
the gblinear booster treats missing values as zeros

Thanks.
I downloaded the most updated xgboost code I found (0.6-0?) and indeed notice that there the default for missing is NA (and not NULL as in the CRAN version). However, I still see the same behavior, 0 is treated as missing value when the tree is doing the split.
I also tried to define implicitly "missing = NA" for training/testing/prediction with the old and new code and got the same results.
By the way, when I use the same data in Java I get the correct results and 0 is not treated as missing value.
Any help will be highly appreciated.

It would be helpful if you could illustrate your observations with an example.
Note that for some kinds of data, e.g., data similar to binary hot-encoding in dense format, all missing branch directions might coincide with the directions of zeros - it just might be that such missing directions were actually learned.


Update token setting page

Description
There are two changes to the token settings:

https://github.com/rancher/rancher/issues/41919

Changes the default values of auth-token-max-ttl-minutes and kubeconfig-default-token-ttl-minutes
They are no longer set to 0, which means they expire now. Removed kubeconfig tokens from the list of tokens with default ttl=0
Updated 2 sections to reference the new default of kubeconfig-default-token-ttl-minutes

https://github.com/rancher/rancher/issues/38535

Removed the setting kubeconfig-token-ttl-minutes
Removed references to it in the docs
Where necessary replaced references to it with kubeconfig-default-token-TTL-minutes because that's the new value used

Comments
The deprecated setting followed the deprecation procedure of 2 full minors warning.

@JonCrowther This is for v2.8, right? Can you update the branch this points to accordingly?

@JonCrowther there's been a very recent change to our branching/file structure strategy recently so the main branch you had originally is actually correct. However, we've introduced a versioned_docs/version-2.8 directory which is where this update should be placed. I've taken care of the rebase and applying your update to the right file. Sorry for the confusion.


Attempting to continue Finetuning

Hi, awesome stuff so far thank you! I am running into a speed bump though. While using your train_finetune.py script on my own dataset. I have made it to epoch 109 the model sounds pretty good and I was hoping to continue tuning except I cannot seem to get past epoch 110 step ~98/99. I started with batch size of 10 and have tried lowering it a few times, I am currently just trying to work at a batch size of 4 incase there are possible memory issues.
Within my config I adjusted the "pretrained_model: Models/LibriTTS/epoch_2nd_00109.pth", made sure "second_stage_load_pretrained: true" was true and had to set  "load_only_params: false" from true to false as the "load_checkpoint" function in "train_finetune.py" only loads the model parameters and ignores the epoch and iteration numbers saved in the checkpoint.
I am using a single RTX A6000. Any guidance would be greatly appreciated, thank you! Here is the complete traceback followed by my config:
Traceback (most recent call last):
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 714, in
main()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 509, in main
loss_gen_lm.backward()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/_tensor.py", line 492, in backward
torch.autograd.backward(
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/autograd/init.py", line 251, in backward
Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1, 1]] is at version 3; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).
After adding "torch.autograd.set_detect_anomaly(True)"
Traceback (most recent call last):
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 716, in
main()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 511, in main
loss_gen_lm.backward()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/_tensor.py", line 492, in backward
torch.autograd.backward(
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/autograd/init.py", line 251, in backward
Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1, 1]] is at version 3; expected version 1 instead. Hint: the backtrace further above shows the operation that failed to compute its gradient. The variable in question was changed in there or anywhere later. Good luck!
config_ft.yml:
{ASR_config: Utils/ASR/config.yml, ASR_path: Utils/ASR/epoch_00080.pth, F0_path: Utils/JDC/bst.t7,
PLBERT_dir: Utils/PLBERT/, batch_size: 4, data_params: {OOD_data: /home/Ubuntu/WORK/StyleTTS2/Data/OOD_texts.txt,
min_length: 50, root_path: /home/Ubuntu/WORK/StyleTTS2/Data/wavs, train_data: /home/Ubuntu/WORK/StyleTTS2/Data/train_list.txt,
val_data: /home/Ubuntu/WORK/StyleTTS2/Data/val_list.txt}, device: cuda, epochs: 200,
load_only_params: false, log_dir: Models/LJSpeech, log_interval: 10, loss_params: {
diff_epoch: 10, joint_epoch: 110, lambda_F0: 1.0, lambda_ce: 20.0, lambda_diff: 1.0,
lambda_dur: 1.0, lambda_gen: 1.0, lambda_mel: 5.0, lambda_mono: 1.0, lambda_norm: 1.0,
lambda_s2s: 1.0, lambda_slm: 1.0, lambda_sty: 1.0}, max_len: 100, model_params: {
decoder: {resblock_dilation_sizes: [[1, 3, 5], [1, 3, 5], [1, 3, 5]], resblock_kernel_sizes: [
3, 7, 11], type: hifigan, upsample_initial_channel: 512, upsample_kernel_sizes: [
20, 10, 6, 4], upsample_rates: [10, 5, 3, 2]}, diffusion: {dist: {estimate_sigma_data: true,
mean: -3.0, sigma_data: 0.2, std: 1.0}, embedding_mask_proba: 0.1, transformer: {
head_features: 64, multiplier: 2, num_heads: 8, num_layers: 3}}, dim_in: 64,
dropout: 0.2, hidden_dim: 512, max_conv_dim: 512, max_dur: 50, multispeaker: true,
n_layer: 3, n_mels: 80, n_token: 178, slm: {hidden: 768, initial_channel: 64,
model: microsoft/wavlm-base-plus, nlayers: 13, sr: 16000}, style_dim: 128},
optimizer_params: {bert_lr: 1.0e-05, ft_lr: 0.0001, lr: 0.0001}, preprocess_params: {
spect_params: {hop_length: 300, n_fft: 2048, win_length: 1200}, sr: 24000}, pretrained_model: Models/LibriTTS/epoch_2nd_00109.pth,
save_freq: 20, second_stage_load_pretrained: true, slmadv_params: {batch_percentage: 0.5,
iter: 10, max_len: 500, min_len: 400, scale: 0.01, sig: 1.5, thresh: 5}}

run into the same issue during fine-tuning around epoch 30 of a 36 min dataset using h100:
Traceback (most recent call last):
  File "./train_finetune.py", line 714, in <module>
    main()
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/dist-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "./train_finetune.py", line 509, in main
    loss_gen_lm.backward()
  File "/home/ubuntu/.local/lib/python3.8/site-packages/torch/_tensor.py", line 492, in backward
    torch.autograd.backward(
  File "/home/ubuntu/.local/lib/python3.8/site-packages/torch/autograd/__init__.py", line 251, in backward
    Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1, 1]] is at version 3; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

I had the same issue here: https://github.com/yl4579/StyleTTS2/issues/73
The issue appears to be here: https://github.com/yl4579/StyleTTS2/blob/main/train_finetune.py#L504. Changing it to d_loss_slm.backward(retain_graph=True) seems to fix the problem.
retain_graph=True is necessary because the graph gets deleted after backward() pass to save memory. But you need the graph for the loss_gen_lm.backward() call.

I will try it now

Almost made it, it appears that this is possibly because I am using a single GPU. Traceback points to these lines 34-39 in train_finetune.py. I did move back to batch_size 10. Then tried with a size of 6 and 8 with it throwing the original error.
class MyDataParallel(torch.nn.DataParallel):
def getattr(self, name):
try:
return super().getattr(name)
except AttributeError:
return getattr(self.module, name)
Traceback (most recent call last):
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 714, in
main()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 487, in main
slm_out = slmadv(i,
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/Modules/slmadv.py", line 138, in forward
y_pred = self.model.decoder(en, F0_fake, N_fake, sp[:, :128])
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/parallel/data_parallel.py", line 183, in forward
return self.module(*inputs[0], **module_kwargs[0])
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/Modules/hifigan.py", line 474, in forward
x = self.generator(x, s, F0_curve)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/Modules/hifigan.py", line 339, in forward
xs = self.resblocks[iself.num_kernels+j](x, s)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/Modules/hifigan.py", line 70, in forward
xt = n2(xt, s)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/Modules/hifigan.py", line 24, in forward
return (1 + gamma) * self.norm(x) + beta
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
return self._call_impl(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
return forward_call(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/instancenorm.py", line 87, in forward
return self._apply_instance_norm(input)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/modules/instancenorm.py", line 36, in apply_instance_norm
return F.instance_norm(
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/nn/functional.py", line 2523, in instance_norm
return torch.instance_norm(
RuntimeError: NVML_SUCCESS == DriverAPI::get()->nvmlInit_v2() INTERNAL ASSERT FAILED at "../c10/cuda/CUDACachingAllocator.cpp":1123, please report a bug to PyTorch.
Batch size 8 and 4 traceback
Traceback (most recent call last):
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 714, in
main()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1157, in call
return self.main(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/Ubuntu/WORK/StyleTTS2/Colab/train_finetune.py", line 509, in main
loss_gen_lm.backward()
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/_tensor.py", line 492, in backward
torch.autograd.backward(
File "/home/Ubuntu/WORK/StyleTTS2/Colab/venv/lib/python3.10/site-packages/torch/autograd/init.py", line 251, in backward
Variable._execution_engine.run_backward(  # Calls into the C++ engine to run the backward pass
RuntimeError: one of the variables needed for gradient computation has been modified by an inplace operation: [torch.cuda.FloatTensor [1, 1, 1]] is at version 3; expected version 1 instead. Hint: enable anomaly detection to find the operation that failed to compute its gradient, with torch.autograd.set_detect_anomaly(True).

Problem might be on my end, reinstalling cuda toolkit now

Sorry one more change is needed to get this to work! See https://github.com/yl4579/StyleTTS2/pull/74.

That worked, thank you!

Should be solved now.


Aesthetics

WHEN I first open the website.
THEN I should see it has a color scheme and some design elements.

DONE. Implemented a color scheme and design. Consolidated code. Performed lighthouse test. For more information refer to pull  request 21.


Remove dead code

Description
In my opinion, the cloud variable is not used.
Contribution Guidelines
Please Read through the Contribution Guidelines.
Fixed Issues
Please mention any issues fixed in the PR by referencing it properly in the commit message.
As per the convention, use appropriate keywords such as fixes, closes, resolves to automatically refer the issue.
Please consult official github documentation for details.
Fixes #(issue)
"BEFORE" and "AFTER" output
To verify that the change works as desired, please include an output of terminal before and after the changes under headings "BEFORE" and "AFTER".
BEFORE
Any Terminal Output Before Changes.
AFTER
Any Terminal Output Before Changes.
Contribution checklist

[ ] I have read the Contributing Guidelines.
[ ] The commits refer to an active issue in the repository.
[ ] I have added automated testing to cover this case.

Notes
Please mention if you have not checked any of the above boxes.

Already done at https://github.com/aquasecurity/kube-hunter/pull/267


[DISCUSSION] Add Setter Binding to FindView

Allows annotation of a setter method with @FindView.
I'm wondering if there's any value in this.  I'd like to be able to use Butterknife from Kotlin using KAPT.  That syntax would look like:
var myButton: Button? = null
    [FindView(R.id.myButton)] set

I realize that KotterKnife is a thing, and perhaps it's a better use-case for this (heck, I'd like to see an entire Dependency Injection framework done this way) but I thought I'd run this by you, given I was playing around with it anyhow.
This is not created to be merged, this is simply a discussion point.  I am willing to put the effort into writing the rest of the implementation if this is deemed a worthy venue, I just didn't want to do all the work before getting feedback.

I'm skeptical for two reasons:

The features has little-to-no use in Java land. In fact, I can't think of a case where I would use this over just doing field binding.
 With Kotlin, however, the language is much more expressive and it allows you to do things like Kotter Knife as a way to reduce the boilerplate and not have any (real) overhead.

I agree.  (FWIW I'm using KotterKnife in a side project and have read / modified it as well).
Delegated Properties are a much more natural solution to the problem solved by ButterKnife.
With that, we can close this.  Keeping the library focused on Java and keeping it simple sounds better than adding in some functionality that has no use in Java itself.
Thanks.


Can't write expression for Multi-choice question dialog

Describe the bug
I'm unable to write an expression for Multi-choice question dialog's "Array of choices" property, the UI seems to be broken.
Version
Version:  1.4.0
Electron: 8.2.4
Chrome: 80.0.3987.165
NodeJS: 12.13.0
V8: 8.0.426.27-electron.0
Browser

[X] Electron distribution
[ ] Chrome
[ ] Safari
[ ] Firefox
[ ] Edge

OS

[ ] macOS
[X] Windows
[ ] Ubuntu

To Reproduce
Steps to reproduce the behavior:

Open the 'AskingQuestionsSample' project
Click on the 'choiceinput' dialog's 'Dialog started' trigger
Click on the first dialog action, 'Prompt with multi-choice', then go to the 'User Input' tab
Scroll down to 'Array of choices'
Choose 'Write an expression' from the dropdown
See that there's no input field to write the expression into

Expected behavior
I expect to see an input field and be able to write in an expression (returning an array of items).
Screenshots

Additional context
When opening an older project where the expression was already input, it displays as "simple choices" (screenshot below). Same happens if I open the sample's choiceinput.dialog file and add e.g. "choices": "=select($choices, c, c.name)",.
However, when I choose "simple choices" myself and input the expression there, the new bot just shows it as the first item's text.

This might be another bug, certainly a bit off-topic, but including here for completeness:
When building the older bot with this Composer version and testing, this multi-choice question dialog seems to be broken, i.e. it won't accept values like "2nd", "the first one", "first", "3."... I can explain in more detail and provide more context. And it might also be that I'm not using it in the way it's meant to be used, but the docs don't go into details, especially when using the default/LUIS recognizer and allowing for interruptions.

@mbinic PR https://github.com/microsoft/BotFramework-Composer/pull/6906 resolves this issue, and the fix should be included in our upcoming release.


Suggestions

Hi @usmanhalalit
very nice script - really. I like it. It's well programmed, but I want to suggest some improvements.

Classes for ul and li should be managed trough config. It's fixed right now

disabled should also have prev or next inside, event when "disabled" is added

Does not work on pages with base-tag. It just adds ? to the href which will not work. You should set the full path after / or add an option to add a path before.

a element inside of li should also have active as class, not only li

you can't change the get-variable "page". This should be also editable. I've patched this right now.

Some better documentation which config's are available and maybe you could expose more of the API.

I've migrated from an old and bad programmed PaginationIterator, that were the points that made migration a bit more difficult for me.
This suggestions are only for Array, I did not test any other Adapter.
P.S: Nice useage of polymorphism, first open source script out there I've seen so far using this technique.
Thanks !

Thanks Hirbod for your appreciation and suggestions. I will definitely try to add/fix these.
Thanks again :)


Restart debugging stops the current process and does not start it again

Environment data

VS Code version: 1.24.1
Extension version (available under the Extensions sidebar): 2018.6.0
OS and version: Windows 10
Python version (& distribution if applicable, e.g. Anaconda): 3.6 64 bit
Type of virtual environment used (N/A | venv | virtualenv | conda | ...): N/A
Relevant/affected Python packages and their versions: N/A

Actual behavior
Clicking on restart, stops the current process but does not start it again.
Expected  behavior
Should start the process after stopping.
Steps to reproduce:

Set breakpoint and start debugging some code, using the Python Experimental: Terminal (integrated) configuration.
When you hit the breakpoint, click on the restart button in the debugger controls
VSC exits debug mode.

Another user asked about this issue:

In the last few days, when you click the "Restart" button, the debugger stops instead of restarting


Implement suggestions for unknown features in workspace

r? @ehuss
(rust-highfive has picked a reviewer for you, use r? to override)

Thanks for the PR!
I'm having trouble getting some of the suggestions to work, and I was wondering if there is something not working as expected.  I can't get anything with / syntax to show a warning, but it looks like the code is intending for it to work. Some examples from Cargo's own workspace:
> cargo build --features cargo/deny-warning
error: none of the selected packages contains these features: cargo/deny-warning

> cargo build --features openssl/vendoredd
error: failed to select a version for `openssl`.
    ... required by package `cargo v0.54.0 (/Users/eric/Proj/rust/cargo2)`
versions that meet the requirements `=0.10.33` are: 0.10.33

the package `cargo` depends on `openssl`, with features: `vendoredd` but `openssl` does not have these features.

failed to select a version for `openssl` which could resolve this conflict

I am able to get features without / to work (although lev_distance isn't always the greatest for catching typos).

Thanks!  Sorry about the delay.
@bors r+

:pushpin: Commit 1439dab8c0314ff6c6acfb15e8a6cac4be9b0494 has been approved by ehuss

:hourglass: Testing commit 1439dab8c0314ff6c6acfb15e8a6cac4be9b0494 with merge 5fb59b0e4a871591af52e42f73af5c69dd8c8b01...

:sunny: Test successful - checks-actions
Approved by: ehuss
Pushing 5fb59b0e4a871591af52e42f73af5c69dd8c8b01 to master...


Enable POWER support for ksonnet

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug

/kind feature
What happened:
I cannot run ksonnet on POWER.
What you expected to happen:
Enable ksonnet running on POWER.

@chenzhiwei


Still traces of obsidian-sample-plugin in package.json

Just as a kind reminder to not forget removing them:
https://github.com/trganda/obsidian-attachment-management/blob/2af789a4a386293c10078c108a87119bc7f09dbe/package.json#L2
package.json
2:      "name": "obsidian-sample-plugin",
4:      "description": "This is a sample plugin for Obsidian (https://obsidian.md)",

package-lock.json
2:      "name": "obsidian-sample-plugin",
8:                      "name": "obsidian-sample-plugin",

Tks, I have updated the package.json and package-lock.json


[MV-370] Add splashscreens and icons

Note: if you're testing on iOS you may need to restart your device or reinstall the app

On my android testing device the splashscreen is not working properly. Background is white with the membrane logo, and then it's just a blank white screen until the app is loaded. Which is different than the IOS behaviour.


make tab selection on pass/pin more distinct

Multiple people have noticed the difficulty in distinguishing which tab is selected due to the colors being used. Could be solved by using a black border around the selected tab area that connects it to the main viewing area.

Fixed in #362


Add a maximum recusion depth to _guess_expression_type

When a recursive declaration ends up in a GDScript file the
_guess_expression_type function would start looping and eventually run
out of stack space.
We now cap recusion for this function to 100 frames.
This fixes #25598

Thanks!

Not trivial to cherry-pick as this code had changed a lot in the master branch. IMO it's not worth it, so removing cherrypick label, but feel free to change back if you want to work on a 3.0 version.


Integration of tutorial 2 (including addition in test workflow)

This PR integrates the tutorial 2 koala_tutorial_2_calibrations.ipynb. It also adds the relevant classes and functions used by the notebook in the source code. While I tried to minimize adding style inconsistencies with the existing code, some parts of the required code had to be included without changes compared to @angelrls version.
This pull request also contains the addition in the workflow for testing of this tutorial.

Just a heads-up: In a previous PR, I used the "Squash and merge" option, which squashed all the workflow-related commits. However, those commits keep reappearing in subsequent PRs. I believe this problem will be fixed with a regular pull request.

I guess it can be merged as it is, although there is quite a lot of work to be done in order to fully integrate it within the code structure. Also, I'd be happy to  read:

@angelrls's reply to my comments (btw, Ángel, you should arguably be watching all the activity in the repo to get an e-mail notification whenever anything happens)
Everyone's opinion on whether all the work to be done falls within the scope of #447 (as well as #451, which I've just realised is a duplicate of #10) or we need to open any additional issues

before merging (lest we forget ;^D).

I've just marked #451 as a duplicate of #10 (although I don't know the implications, if any), and I've just added a comment on #406. For the sake of completeness, let me mention here that #462 may also be relevant in this context.


dependabot only creates PR's to update dependencies in the root package.json

Bug Description
dependabot only creates PR's to update dependencies in the root package.json
Per https://github.com/SAP/open-ux-tools/blob/main/.github/dependabot.yml#L9
Expected Behavior
dependabot should create PR's to update dependencies in the all module package.json's
Steps to Reproduce
n/a
Context
n/a
Log Output / Stack Trace / Screenshots
n/a
Priority

[ ] Low
[x] Medium
[ ] High
[ ] Very High

The priority indicates the severity of the issue. To set the appropriate priority consider the following criteria:

Breaks entire application or system - High or Very High
Accessibility issue - Medium or High
Functional issue - Medium or High
Visual issue - Low or Medium

Note: The priority might be re-evaluated by the issue processor.
Stakeholder Info (if applicable)

Organization: {...}
Business impact: {...}

Hi! Can I take up this issue?

@kranthie-sap @devinea what is the state of this one?

@tobiasqueck: This is being worked on in this PR - https://github.com/SAP/open-ux-tools/pull/951
I just worked on the review comments and will hopefully merge this soon.

Renovate (replacement for dependabot) has been configured and merged using PR #951.


x/build: darwin builders will be unavailable during maintenance period

The darwin builders hosted at MacStadium will be unavailable for approximately 15 minutes while the infrastructure provider performs maintenance. This maintenance is scheduled for 2021-03-23 between 04:00 and 06:00 UTC.
@golang/release

This maintenance has been completed.


Fixes #1406

Since this is a fix to something in Contrib, the tests I added won't be automatically run, but I think it's still good to have them in there.

To answer the larger question: though I certainly wouldn't mind switching to support python 3 only, I don't think it's feasible in the near term. I think there are too many RDKit users who have not yet made the switch.