TypeError when using json_pure with Chef

This is a follow-up to https://github.com/jmespath/jmespath.rb/issues/18#issuecomment-204198571
We're seeing the following stacktrace when running Omnibus (another Chef product):
/home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:366:in `to_json': wrong argument type JSON::Pure::Generator::State (expected Data) (TypeError)
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:366:in `block in json_transform'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:359:in `each'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:359:in `json_transform'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:341:in `to_json'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/pure/generator.rb:293:in `generate'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/json_pure-1.8.3/lib/json/common.rb:285:in `pretty_generate'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/project.rb:1090:in `block in write_json_manifest'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/project.rb:1089:in `open'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/project.rb:1089:in `write_json_manifest'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/project.rb:1080:in `build'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/cli.rb:83:in `build'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/cli/base.rb:33:in `dispatch'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/lib/omnibus/cli.rb:41:in `execute!'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bundler/gems/omnibus-961695bbc1b2/bin/omnibus:16:in `<top (required)>'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bin/omnibus:23:in `load'
from /home/jenkins/workspace/chef-build/architecture/x86_64/platform/el-5/project/chef/role/builder/omnibus/vendor/bundle/ruby/2.1.0/bin/omnibus:23:in `<main>'

Omnibus is calling JSON.pretty_generate and passing it a hash.  I realize this is probably a bug in json_pure (maybe json_pure#198 or json_pure#186) but we are currently downgrading our jmespath version to prevent pulling in json_pure.

@xeron We only saw this issue in our build system - can you provide a full stacktrace of where you are seeing this error using Chef?

I don't have stacktrace right now because we've also locked jmespath version to 1.1.x and already killed bad hosts.
This error was from our internal cookbook which calls JSON.parse.

all that omnibus is doing is calling JSON.pretty_generate() with a hash.
https://github.com/chef/omnibus/blob/master/lib/omnibus/project.rb#L1090
its getting redirected to json_pure because that gem patches all its own methods in for the JSON gem.
most likely not a bug in this gem and instead a bug in the json_pure gem itself.

A confusing aspect is that we're only experiencing this issue on certain builders.  On all those builders, we already have the JSON gem installed - so the checks here and here should be loading json/ext and not json/pure.

I have a meeting to run to, but I have been able to reproduce this, and I think I have a few thoughts on how we can avoid this. Sorry for the suspense!

@trevorrowe No worries - nothing like an exciting friday morning! :tada: :rocket: :tada:

I put together a simple ruby script that reproduces the issue above. For this script to demonstrate the failure you need to be running Ruby 1.9.3 and must not have version >= 1.8.1 of the json gem.
require 'json'
require 'jmespath'

puts "ruby version: #{RUBY_VERSION}"          # should be 1.9.3
puts "json version: #{JSON::VERSION}"         # should be 1.5.5
puts "jmespath version: #{JMESPath::VERSION}" # should be 1.2.2

# this should raise a JSON::Pure::Generator::State TypeError
some_hash = { 'jsonrpc' => 'xxxx', 'jsonversion' => 1 }
some_hash.to_json

As shown above, if your application has require 'json' prior to require 'jmespath' then Ruby 1.9.3 will load your json native gem. After the native gem is loaded, jmespath will run the following code:
begin
  # Attempt to load the native version if available, not availble
  # by default for Ruby 1.9.3.
  gem('json', '>= 1.8.1')
  require 'json/ext'
rescue Gem::LoadError
  # Fallback on the json_pure gem dependency.
  gem('json_pure', '>= 1.8.1')
  require 'json/pure'
end

The first attempt will fail, because the #gem method call raises Gem::LoadError as json >= 1.8.1 is not available. It falls back on json_pure >= 1.8.1 which is available. This causes json_pure to mixin its modules on-top of those mixed in by json/ext. This is essentially the crux of https://github.com/flori/json/issues/186.
A suitable workaround may be to have jmespath check to see if the JSON constant is defined first. If it is, it should not attempt to load json/ext or json/pure. This however may result in a version older than 1.8.1 being loaded. I suppose it could log a warning if this is the case. Having an older version will prevent it from correctly handling jmespath expressions that contains literal json values.

I modified my local copy of jmespath with the following:
if Object.const_defined?(:JSON) && JSON::VERSION < '1.8.1'
  warn("WARNING: jmespath gem requires json gem >= 1.8.1; json #{JSON::VERSION} already loaded")
else
  begin
    gem('json', '>= 1.8.1')
    require 'json/ext'
  rescue Gem::LoadError
    gem('json_pure', '>= 1.8.1')
    require 'json/pure'
  end
end

The result of running jmespath with an older version of json prevents it from parsing json literals, for example:
puts JMESPath.search('`1` > `2`', {})
#=> correct answer is false
#=> old version json, raises unexpected token 0 (JMESPath::Errors::SyntaxError)

This essentially means users that have loaded an older version of json will have a degraded experience using jmespath. To be fair, this is the same situation users found themselves in between 1.1.3 and 1.2.
Any thoughts on if the const defined check would be sufficient?

The condition require has been merged in and released. This should hopefully prevents environments that have loaded json prior to loading jmespath from breaking json methods.


Recommendation on building live / demo page?

Thanks for making this tutorial / library.
When I yarn dev, the index page is blank (I assume intentionally, since the desired state is actually the JS that is output during the build.
Do you have advice on how I can build locally with a demo page and live hot reloading?

Sorry for the delayed response! I hope you managed to solve your issue in the meantime. If not, I've prepared a solution in this commit:
https://github.com/labrodev/vuejs-embedded-widget/commit/2e06af811656b3f940aa1f5c9caf671b21ce2d75
The idea is that there is no way for us to treat the same solution and entry point of the application both for the widget-embedded solution and for its hot-key single-page reflection. The build-up is very different. For external usage, we wrap the application in a custom element to use in embedded mode (this happens in main.js). After the "build" command (npx vite build), the compiled script from the main.js entry point goes into /dist/widget.js, and we use it as a simple JS library like already compiled static code.
In your scenario (which is very useful), we just need to handle our code as a normal Vue.js single-page application (to use it in dev or preview mode). It's obvious that in a real project, there is a necessity to have this interpretation of the application because we need to develop, test, and fix without having to recompile and rebuild widget.js each time on an external site.
However, I have not found a brilliant solution to keep the same entry point (main.js) for both cases. Instead, here's what I've done:
Added dev.js where the entry point is organized like a standard Vue.js entry point.
Created Dev.vue as the root component for the application in "develop" or "preview" mode.
Made small adjustments in the root index.html to handle the application injected through dev.js + Dev.vue.
Updated vite.config.js with "preview" and "server" configurations to set up the entry point as "dev.js" instead of "main.js".
Now it will work in development and preview mode.
(Use "npm run dev" or "npx vite" to run it directly as a normal application).
All internal components remain the same; only the facade and entry point have changed.
Thank you for your question and good luck!
And of course I hope this solution will work with your yarn.


Fails to create a new dashboard

Environment

Graylog version: 3.3.5
OS (client side): macOS Catalina 10.15.6
The result of terraform version:

$ terraform version
Terraform v0.13.0
+ provider registry.terraform.io/terraform-provider-graylog/graylog v1.0.4

Overview
Generally the provider gathered via the Terraform registry it fails to create any dashboard for me, I also tried it with a really basic example, but it always fails with Error: failed to create a dashboard: status code: 405, {"type":"ApiError","message":"HTTP 405 Method Not Allowed"}: status code >= 300.
Expected behavior
Create a simple dashboard like this:
resource "graylog_dashboard" "haproxy" {
  title       = "HAProxy"
  description = "Description"
}

Actual behavior
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # graylog_dashboard.haproxy will be created
  + resource "graylog_dashboard" "haproxy" {
      + created_at  = (known after apply)
      + description = "Description"
      + id          = (known after apply)
      + title       = "HAProxy"
    }

Plan: 1 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

graylog_dashboard.haproxy: Creating...

Error: failed to create a dashboard: status code: 405, {"type":"ApiError","message":"HTTP 405 Method Not Allowed"}: status code >= 300

  on haproxy.tf line 91, in resource "graylog_dashboard" "haproxy":
  91: resource "graylog_dashboard" "haproxy" {

How to reproduce

Configure the provider as ususal
Try to create the above resource

Just to metnion it, importing an existing dashboard also fails as Terraform complains that it can only import already existing resources.

Thank you for your report.
I think this bug is due to the Graylog API's change.
Changelog 3.2.0
https://docs.graylog.org/en/latest/pages/changelog.html#id27

Migrated legacy dashboards into new dashboards.

Ok, so I need to contribute a pr to get that updated, do you have an idea how we can stay backward compatible with the provider? Or is it OK to introduce such a breaking change with a new minor or major version of this provider?

Oh god, the Graylog API documentation is really awful... For now I gave up on switchting to the new views as I'm running from one issue into another. Looks like dashboards have been replaced by views, and to create a new view you need define a search_id and I don't know where this should come from.

do you have an idea how we can stay backward compatible with the provider?

We can use the provider parameter api_version.
https://registry.terraform.io/providers/terraform-provider-graylog/graylog/latest/docs#api_version
For example, we can define a new value like v3.2 and change the behavior.

and to create a new view you need define a search_id and I don't know where this should come from.

I checked the Graylog API browser and found that the resource Search exists.

POST /views/search
GET /views/search/{id}

The search_id of View seems to be id of the resource Search.
I imagine like the following code.
resource "graylog_search" "test" {
  # ...
}

resource "graylog_view" "test" {
  search_id = graylog_search.test.id
  # ...
}

But it seems that there is no API to update and delete the Search...

https://github.com/terraform-provider-graylog/terraform-provider-graylog/issues/63#issuecomment-681162762
It is difficult to support the change of the resource definition by the parameter api_version.
In that case, we have to make the breaking change or add a new resource like graylog_dashboard_v3.
I think basically making the breaking change is better than adding a new resource.

I would create a search record within the view create function if the search id isn't present, a resource doesn't make sense for the search record as you already said there is no delete or update.

Oh, I see.
Sounds good.

After digging into the Graylog API it is much more complicated to get this working again... Dashboards are replaced by views, only the /dashboards route is still working which just returns the defined views. This is the default view which always gets defined:
{
  "id": "5f46d09894824a2c78a5c5f8",
  "type": "DASHBOARD",
  "title": "Sources",
  "summary": "This is a list of all sources that sent in messages to Graylog.",
  "description": "This is a list of all sources that sent in messages to Graylog. You can narrow the timerange by zooming in on the message histogram, or you can increase the time range by specifying a broader one in the controls at the top. You can also specify filters to limit the results you are seeing. You can also add additional widgets to this dashboard, or adapt the appearance of existing widgets to suit your needs.",
  "search_id": "5f46d09894824a2c78a5c5f6",
  "properties": [],
  "requires": {},
  "state": {
    "a1647eb6-a064-4fe6-b459-1e4267d3f659": {
      "selected_fields": null,
      "static_message_list_id": null,
      "titles": {
        "tab": {
          "title": "Sources Overview"
        },
        "widget": {
          "6c127c5d-be75-4157-b43f-ac0194ac0586": "Selected sources",
          "92d63811-e4dd-47db-bd3b-db03c8a9bd53": "Messages per Source",
          "00637e63-d728-4b3e-932b-7c8696b4855d": "Messages over time"
        }
      },
      "widgets": [
        {
          "id": "92d63811-e4dd-47db-bd3b-db03c8a9bd53",
          "type": "aggregation",
          "filter": null,
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "config": {
            "row_pivots": [
              {
                "field": "source",
                "type": "values",
                "config": {
                  "limit": 10
                }
              }
            ],
            "column_pivots": [],
            "series": [
              {
                "config": {
                  "name": "Message count"
                },
                "function": "count()"
              }
            ],
            "sort": [
              {
                "type": "series",
                "field": "count()",
                "direction": "Descending"
              }
            ],
            "visualization": "pie",
            "visualization_config": null,
            "formatting_settings": null,
            "rollup": true,
            "event_annotation": false
          }
        },
        {
          "id": "00637e63-d728-4b3e-932b-7c8696b4855d",
          "type": "aggregation",
          "filter": null,
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "config": {
            "row_pivots": [
              {
                "field": "timestamp",
                "type": "time",
                "config": {
                  "interval": {
                    "type": "auto",
                    "scaling": null
                  }
                }
              }
            ],
            "column_pivots": [],
            "series": [
              {
                "config": {
                  "name": "Message count"
                },
                "function": "count()"
              }
            ],
            "sort": [],
            "visualization": "line",
            "visualization_config": null,
            "formatting_settings": null,
            "rollup": true,
            "event_annotation": false
          }
        },
        {
          "id": "6c127c5d-be75-4157-b43f-ac0194ac0586",
          "type": "aggregation",
          "filter": null,
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "config": {
            "row_pivots": [
              {
                "field": "source",
                "type": "values",
                "config": {
                  "limit": 15
                }
              }
            ],
            "column_pivots": [],
            "series": [
              {
                "config": {
                  "name": "Message count"
                },
                "function": "count()"
              }
            ],
            "sort": [
              {
                "type": "series",
                "field": "count()",
                "direction": "Descending"
              }
            ],
            "visualization": "table",
            "visualization_config": null,
            "formatting_settings": null,
            "rollup": true,
            "event_annotation": false
          }
        }
      ],
      "widget_mapping": {
        "6c127c5d-be75-4157-b43f-ac0194ac0586": [
          "011b2894-49e5-44d8-aab6-8c4d4457a886"
        ],
        "92d63811-e4dd-47db-bd3b-db03c8a9bd53": [
          "a964f1c5-e108-4b5e-a907-ffe0b0f0683c"
        ],
        "00637e63-d728-4b3e-932b-7c8696b4855d": [
          "481de18f-938e-40d5-8ab2-6eaf6a28f091"
        ]
      },
      "positions": {
        "6c127c5d-be75-4157-b43f-ac0194ac0586": {
          "col": 1,
          "row": 5,
          "height": 4,
          "width": 6
        },
        "92d63811-e4dd-47db-bd3b-db03c8a9bd53": {
          "col": 7,
          "row": 5,
          "height": 4,
          "width": 6
        },
        "00637e63-d728-4b3e-932b-7c8696b4855d": {
          "col": 1,
          "row": 1,
          "height": 4,
          "width": "Infinity"
        }
      },
      "formatting": {
        "highlighting": []
      },
      "display_mode_settings": {
        "positions": {}
      }
    }
  },
  "owner": "admin",
  "created_at": "2019-11-22T10:54:50.950Z"
}

Before you can define a view you got to build a search (via POST to /views/search) which got to contain all queries, but the is no way to update a search, so not sure how we should handle that within terraform... Always create a new search if the search definition has changed and update the search references within the views? Beside that the view also defines where the widgets got to be placed and how they are defined.
The search looks like that:
{
  "id": "5f46d09894824a2c78a5c5f6",
  "queries": [
    {
      "id": "a1647eb6-a064-4fe6-b459-1e4267d3f659",
      "timerange": {
        "type": "relative",
        "range": 300
      },
      "query": {
        "type": "elasticsearch",
        "query_string": ""
      },
      "search_types": [
        {
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "id": "481de18f-938e-40d5-8ab2-6eaf6a28f091",
          "name": "chart",
          "series": [
            {
              "type": "count",
              "id": "Message count",
              "field": null
            }
          ],
          "sort": [],
          "rollup": true,
          "type": "pivot",
          "row_groups": [
            {
              "type": "time",
              "field": "timestamp",
              "interval": {
                "type": "auto",
                "scaling": 1
              }
            }
          ],
          "column_groups": [],
          "filter": null
        },
        {
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "id": "a964f1c5-e108-4b5e-a907-ffe0b0f0683c",
          "name": "chart",
          "series": [
            {
              "type": "count",
              "id": "Message count",
              "field": null
            }
          ],
          "sort": [
            {
              "type": "series",
              "field": "count()",
              "direction": "Descending"
            }
          ],
          "rollup": true,
          "type": "pivot",
          "row_groups": [
            {
              "type": "values",
              "field": "source",
              "limit": 10
            }
          ],
          "column_groups": [],
          "filter": null
        },
        {
          "timerange": {
            "type": "relative",
            "range": 300
          },
          "query": null,
          "streams": [],
          "id": "011b2894-49e5-44d8-aab6-8c4d4457a886",
          "name": "chart",
          "series": [
            {
              "type": "count",
              "id": "Message count",
              "field": null
            }
          ],
          "sort": [
            {
              "type": "series",
              "field": "count()",
              "direction": "Descending"
            }
          ],
          "rollup": true,
          "type": "pivot",
          "row_groups": [
            {
              "type": "values",
              "field": "source",
              "limit": 15
            }
          ],
          "column_groups": [],
          "filter": null
        }
      ]
    }
  ],
  "parameters": [],
  "requires": {},
  "owner": "admin",
  "created_at": "2019-11-22T10:58:47.255Z"
}

Do you have ideas how to properly integrate that functionality? I wish i could manage my upcoming dashboards with this provider...

The Graylog API is very complicated and undocumented, so we use JSON string attributes if necessary.
https://registry.terraform.io/providers/terraform-provider-graylog/graylog/latest/docs/guides/json-string-attribute
We ever tried to support the View API but gave up in the middle at the time...

https://github.com/terraform-provider-graylog/terraform-provider-graylog/tree/master/graylog/resource/view
https://github.com/terraform-provider-graylog/terraform-provider-graylog/blob/f54ef95373a176e42c2d44d6f60606fb51880705/graylog/resource_map.go#L58-L59

Before you can define a view you got to build a search (via POST to /views/search) which got to contain all queries, but the is no way to update a search, so not sure how we should handle that within terraform... Always create a new search if the search definition has changed and update the search references within the views?

It may be useful to investigate the behavior of Graylog when we operate the view from the web UI.
We update the query of the view from the web UI, and check the resource state by API.

Would be really great to get this working. Are people working on this?


installation: Flask-Admin git url fix

Fixes the repository url of Flask-Admin because it moves from
mrjoes/flask-admin to flask-admin/flask-admin. (closes #3049)

Signed-off-by: Leonardo Rossi<EMAIL_ADDRESS>

@jirikuncar  can you give to this PR the priority? :)

@hachreak please rebase and it goes in NOW ;)


Create wiki without restoring deleted

Purpose
Currently, if you delete a wiki file, and then create a new wiki file with the same name as the deleted file, the new file still maintains all of the edits from the old file. These can be found under the 'Compare' panel in the project wiki. (In this example, "hello" has been created, edited, deleted, and re-created)

The purpose of this PR is when a user deletes a project wiki, the wiki (and all of its former edits) are permanently deleted. When a new wiki is created with the same name as a deleted wiki, it will not restore the old wiki's edits. (Again "hello" has  been created, edited, deleted, and re-created, but the old edits no longer persist in "hello"'s versions)

Changes
When a wiki is deleted currently, the page is just deleted from the project's wiki_pages_current. In order to prevent the deleted page from being restored when a new wiki of the same name is created, the page is now also deleted from the project's wiki_pages_versions upon deletion.
This change alone would only prevent newly deleted pages from being restored. If a user has already deleted a page before this change is made, and then creates a new wiki page of the same name, those previous edits would be restored. To fix this, this PR also includes a migration script that removes all wiki pages from a project's wiki_pages_versions that are not also pages in that project's wiki_pages_current. This prevents any page that has been deleted but does not currently exist as a project wiki from being restored when the user creates a new wiki page of the same name.
Side effects
There is really only one case (I can think of) that this PR wouldn't resolve. For example, let's say:

You create a wiki page "hello"
You make some edits to that page
You delete that page
You create another wiki page called "hello", and those previous edits have been restored
This PR will not retroactively un-restore those edits from the first version of "hello". Instead, if you now delete "hello", then create a new "hello" after this PR, the previous edits will not persist.

Ticket
https://openscience.atlassian.net/browse/OSF-5968

This needs tests for the changes you made to the actual code (rather than just the migration).

Pass done. 🐧 To do:

[ ] Break up the migration tests into a few more focused tests
[ ] Add a test or two to ensure that the non-migration code works
[ ] Simplify the beginning of the migration
[ ] Use the variable you made in the for loop


Question about training dataset

Hi,
I was digging into your code recently. Nice work!
Just had question about your CULane training dataset. It seems that you didnt use txt which contains axis for lanes in the given dataset.

Thanks!

We just use the final lane annotations to train our models. Detailed instruction can just be found in SCNN.

@cardwing I am interested in saving lane coordinates of each lane instance separately in a JSON file so that finally I can use this official tusimple evaluation script: https://github.com/TuSimple/tusimple-benchmark/blob/master/evaluate/lane.py but the problem is I am doing semantic segmentation, not the instance. What to do?


Webhook URL specify

I have 2 questions regarding Webhook URLs.
What is the easiest way to use Webhook-URL, what should I specify there?
How to start server in admin folder? Does this provide server that can be used for Webhooks?
Thanks!

What is the easiest way to use Webhook-URL, what should I specify there?
As webhook url is another web service which waiting for the requests, you can set it anywhere which your controller can access to.
From aca-py, your webhook will receive some endpoints such as:

/topic/connections
/topic/basicmessages
/topic/handle_issue_credential_v2_0_indy
/topic/handle_issue_credential_v2_0_ld_proof
...

and several more.
Your webhook should be able to handle those requests so that your controller can interact the request state between agents.
You can even set webhook on your controller. Say, /webhooks/topic/{topic}.

How to start server in admin folder? Does this provide server that can be used for Webhooks?
I am not sure I get this. But what I have gone through so far, the agent can start its separate web service by calling aca-py start <args>. To have administrative api, you have to set --admin http <ip> <port>

I am also learning this too. So anything wrong, please correct me.

The answer provided by @phearaeun is correct, thank you! 👍🏻
If there are other questions please feel free to reopen the issue.


Added annotation of display custom form field along with on-off the field

Added annotation of display custom form field along with on-off the field

Annotation renamed to Show
Added Jersey Dependencies


Timezone instructions for proper importing

Added a note for new calendar timezone to be set properly (or at least checked) for the NICAR location so that importing assigns sessions to the correct time slot.

Thank you, Livia!


Update URLs to the nmslib GitHub project

Hi @pabs3 that's a lot of changed files. In principle, the redirect still works. Do you think it's really worth changing?

I don't mind either way, I just thought it strange that the url
parameter in the python_bindings setup.py was outdated, so I ran a
quick git sed command and submitted the resulting commit. If you
prefer I can drop the changes to the other files from the commit.
--
bye,
pabs
https://bonedaddy.net/pabs3/

It's probably fine, thank you.


How to train used DINO framework

Hello,Thank you for your work,but I found you don't provided the code about training by  DINO framework. thank you very much.

You can refer to this project:
https://github.com/alibaba-damo-academy/3D-Speaker/tree/main/egs/voxceleb/sv-rdino


Bug 1668853: update 21-aggregated-view.clusterrole.yaml

Description of the change:
This aggregates view to admin and edit for 3.11.
Motivation for the change:
This is fixed in openshift-ansible installation, but is persisted here for consistency.
Reviewer Checklist

[ ] Implementation matches the proposed design, or proposal is updated to match implementation
[ ] Sufficient unit test coverage
[ ] Sufficient end-to-end test coverage
[ ] Docs updated or added to /docs
[ ] Commit messages sensible and descriptive

/lgtm

Looks like merging is broken due to missing OWNERS file. I'm going to merge this manually. If we think we're going to backport more fixes to 3.11, we can open a separate PR with an OWNERS file.


Trouble

Hi, my team recently upgraded our Bouncy Castle from 1.47 to 1.63. In the meanwhile, we found a malformed PEM certificate accidentally got into our database. The certificate has an invalid footer that doesn't have a space between two words (---EndCertificate----). It's hard for us to roll back and find out is the bug from the previous Bouncy Castle or from our code. This case has driven me nuts and any advice will be appreciated.
Thanks.

Since you read the PEM certificate from the database yourself, why can't you replace ---EndCertificate---- by the correct value before BC loads the certificate?

I'm not aware that BC ever had a bug in the writing out of PEM footers. The header and footer are independent of the contents so it's easy to fix by just replacing the footer, as @martijnbrinkers pointed out.

Yes, we've always had a space. If you need to confirm you can find the source for the 1.47 PEM generator at:
https://repo1.maven.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.47/bcpkix-jdk15on-1.47-sources.jar
The class you want is in org/bouncycastle/openssl/MiscPEMGenerator.java
The rest of 1.47 can be found at: https://repo1.maven.org/maven2/org/bouncycastle/

This most likely related to issue #758. The certificate was imported with an older BC release which had a more forgiven PEM parser.


add a GH action to generate a changelog and submit a release PR

Refs #5866
This PR adds an action which will

run once a month (but also allow us to trigger it manually)
generate a changelog we can manually review
open a PR tagged with "release" which we can review/merge

Coupled with https://github.com/badges/shields/blob/master/.github/workflows/tag-release.yml merging the PR will create the release tag.
This will generate a PR something like https://github.com/chris48s/release-action-test/pull/5 . The commit messages on this test repo are mostly junk from when I was debugging the action - ours will look like.
- add a github action to create tags from labelled PR (#6069)
- fix [wordpress] 'Can't generate version color for false' (#6072)
- Update self-hosting.md documentation for running with Prometheus (#6052)
- fix: remove erroneous clearRequestCache call (#6067)

..or whatever. I'll leave some more notes inline.

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against 662096e159704fbc4d2dc4164c0e6e807b3a808f

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against 662096e159704fbc4d2dc4164c0e6e807b3a808f

I will go ahead and merge this. It should run next on Monday so we will see how it works out. The other thing I've done is I've set up a rule in DockerHub which should create a dockerhub tag when we push a server- tag (not tested yet):

I think it is probably worth ironing out the process a bit before we do any kind of announcement/comms about releases. Tbh, there is a non-zero chance some part of this rube goldberg machine won't work as expected when we test it all at together for the first time..

I will go ahead and merge this. It should run next on Monday so we will see how it works out. The other thing I've done is I've set up a rule in DockerHub which should create a dockerhub tag when we push a server- tag (not tested yet):

I think it is probably worth ironing out the process a bit before we do any kind of announcement/comms about releases. Tbh, there is a non-zero chance some part of this rube goldberg machine won't work as expected when we test it all at together for the first time..


The load return pipe provides a smaller number of larger splits

We also switch to using a compact encoding for the temp sequence files.
The load pipe split size is configurable.
NOTE: I have not yet tested this on the cluster against a real load, but will do so before merging to master.

:+1:

:+1:


Fix crash at account dir creation

Codecov Report
Patch and project coverage have no change.

Comparison is base (ca363c7) 39.90% compared to head (a2b1523) 39.90%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #750   +/-   ##
=======================================
  Coverage   39.90%   39.90%
=======================================
  Files          20       20
  Lines        1491     1491
=======================================
  Hits          595      595
  Misses        832      832
  Partials       64       64

Files Changed
Coverage Δ

pkg/wallet/wallet.go
0.00% <0.00%> (ø)

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

nice, do you understand why os.IsNotExist(err) returns true while the folder actually exists?

maybe concurrency


Feature/admin statistics#80

Tests are missing, at least add view tests for the API resources. See pouta_blueprints/tests/test_flask_api.py

add tests to test the view functionality, not just status codes.
e.g. based on some dummy blueprint defined in line 43 compute stats for it and check return value with something similar to self.assertEqual(response.json[some_blueprint_id]['users'], number_of_users)


feat: unify parseWithCheerio, add parseWithLinkeDOM [WIP]

Just draft 👷♂
Some issues with this approach:

Don't know how to type parseWith* in HttpCrawler without importing cheerio & linkedom
Don't know how to handle enqueueLinks, which is very convenient to have :(

Don't know how to type parseWith* in HttpCrawler without importing cheerio & linkedom

For cheerio it's fine to add it to the http crawler package dependencies, it is technically already there as a transitive one. Not so much for linkedom 👇

Don't know how to handle enqueueLinks, which is very convenient to have :(

Hmm, that's actually a tricky one to do in the base layer, as it requires the parsed response for finding the links. So maybe the idea with the helper won't fly - but I don't mind having the linkedom crawler as a class with its enqueue implementation, like the other crawlers do. So basically what you were trying in the first place (but with a lot of copypasta I guess, haven't really checked the code tbh).
In the end, the helper for parsing with linkedom would be quite a weird thing outside of the http crawler.
Let's make this PR just about adding the cheerio helper to http crawler, that's what we can merge first easily.

having the linkedom crawler as a class

TBH, I did not want to do that initially (as I mentioned, cheerio was "fine" for me), but after using it I came about to liking it :)
Agree! 🙏


[Cloud Firestore] Stream builder not updating when using Order by clause in flutter

While using order by clause the stream builder is not updating the data. But if I remove the order by clause then stream builder shows updated data.
To Reproduce

Add order by clause, in my case, I am ordering by a date field.
The stream builder is not updated on the change of data.
I don't see any errors on the screen.

StreamBuilder(
              stream: Firestore.instance.collection('orders').where(
                  'userUID', isEqualTo: futureSnapshot.data.uid).where('orderStatus', whereIn: allOrderStatus).orderBy('placedAtTime', descending: true).snapshots(),
              builder: (context, snapshot) {

Expected behavior
On CRUD operations, the stream builder should update but it is not updating. But once I remove the order by then it works fine.

Hi @swapnilshah09
can you please provide your flutter doctor -v and flutter run --verbose? Also, to better address the issue, would be helpful
if you could post a minimal code sample to reproduce the problem
Thank you

flutter doctor -v:
[✓] Flutter (Channel stable, v1.12.13+hotfix.8, on Mac OS X 10.15.3 19D76, locale en-IN)
    • Flutter version 1.12.13+hotfix.8 at /Users/swapnil/Documents/flutter
    • Framework revision 0b8abb4724 (7 weeks ago), 2020-02-11 11:44:36 -0800
    • Engine revision e1e6ced81d
    • Dart version 2.7.0

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/swapnil/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    • All Android licenses accepted.

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

[✓] Android Studio (version 3.5)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 43.0.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[✓] Connected device (1 available)
    • iPhone 11 Pro Max • 7A2DCDBB-F6F1-4D1F-93CE-213F650CD6AF • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-4 (simulator)

• No issues found!

flutter run --verbose:
 localhost Runner[17221]: (GoogleUtilities) 6.14.0 - [Firebase/Firestore][I-FST000001] Listen for query at orders failed: The query requires
an index. You can create it here:
https://console.firebase.google.com/v1/r/project/pawfect-xyz/firestore/indexes?create_composite=Ckpwcm9qZWN0cy9wYXdmZWN0LXh5ei9kYXRhYmFzZXMvKGRlZmF1bHQpL2NvbGxlY3Rpb25Hcm91cHMvb3JkZXJzL2luZGV4ZXMvX
xABGg8KC29yZGVyU3RhdHVzEAEaCwoHdXNlclVJRBABGhAKDHBsYWNlZEF0VGltZRACGgwKCF9fbmFtZV9fEAI
[+4199 ms] [DEVICE LOG] 2020-03-31 12:32:49.312408+0530  localhost Runner[17221]: (GoogleUtilities) 6.14.0 - [Firebase/Firestore][I-FST000001] Listen for query at orders failed: The query requires
an index. You can create it here:
https://console.firebase.google.com/v1/r/project/pawfect-xyz/firestore/indexes?create_composite=Ckpwcm9qZWN0cy9wYXdmZWN0LXh5ei9kYXRhYmFzZXMvKGRlZmF1bHQpL2NvbGxlY3Rpb25Hcm91cHMvb3JkZXJzL2luZGV4ZXMvX
xABGg8KC29yZGVyU3RhdHVzEAEaCwoHdXNlclVJRBABGhAKDHBsYWNlZEF0VGltZRACGgwKCF9fbmFtZV9fEAI
[+1649 ms] [DEVICE LOG] 2020-03-31 12:32:50.962131+0530  localhost Runner[17221]: (GoogleUtilities) 6.14.0 - [Firebase/Firestore][I-FST000001] Listen for query at orders failed: The query requires
an index. You can create it here:
https://console.firebase.google.com/v1/r/project/pawfect-xyz/firestore/indexes?create_composite=Ckpwcm9qZWN0cy9wYXdmZWN0LXh5ei9kYXRhYmFzZXMvKGRlZmF1bHQpL2NvbGxlY3Rpb25Hcm91cHMvb3JkZXJzL2luZGV4ZXMvX
xABGg8KC29yZGVyU3RhdHVzEAEaCwoHdXNlclVJRBABGhAKDHBsYWNlZEF0VGltZRACGgwKCF9fbmFtZV9fEAI
[+34853 ms] [DEVICE LOG] 2020-03-31 12:33:25.814806+0530  localhost Runner[17221]: (CFNetwork) [com.apple.CFNetwork:Coalescing] success removing entry for host firebaselogging-pa.googleapis.com
config 0x6000031ba200
[   +1 ms] [DEVICE LOG] 2020-03-31 12:33:25.815149+0530  localhost Runner[17221]: (CFNetwork) Connection 7: is being canceled
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815252+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] [C7 80E3BA85-5647-426F-84C9-09270AACAA98
firebaselogging-pa.googleapis.com:443 tcp, url hash: 869fcef3, tls] cancel
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815443+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] [C7 80E3BA85-5647-426F-84C9-09270AACAA98
firebaselogging-pa.googleapis.com:443 tcp, url hash: 869fcef3, tls] cancelled
[        ] [DEVICE LOG]         [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176 <IP_ADDRESS>:64350<-><IP_ADDRESS>:443]
[        ] [DEVICE LOG]         Connected Path: satisfied (Path is satisfied), interface: en0
[        ] [DEVICE LOG]         Duration: 120.933s, DNS @0.000s took 0.003s, TCP @0.004s took 0.028s, TLS took 0.091s
[        ] [DEVICE LOG]         bytes in/out: 4464/1513, packets in/out: 9/10, rtt: 0.021s, retransmitted packets: 0, out-of-order packets: 0
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815496+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.000s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] path:start
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815537+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.000s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] path:satisfied
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815576+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.000s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] resolver:start_dns
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815625+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.003s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] resolver:receive_dns
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815669+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.003s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] path:start
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815706+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.003s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] path:satisfied
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815744+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.004s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] flow:start_connect
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815780+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.032s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] flow:finish_transport
[        ] [DEVICE LOG] 2020-03-31 12:33:25.815971+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.032s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] flow:finish_transport
[   +6 ms] [DEVICE LOG] 2020-03-31 12:33:25.816015+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.123s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] flow:finish_connect
[        ] [DEVICE LOG] 2020-03-31 12:33:25.816046+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.124s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] flow:finish_connect
[        ] [DEVICE LOG] 2020-03-31 12:33:25.816498+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.124s [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176
<IP_ADDRESS>:64350<-><IP_ADDRESS>:443 socket-flow path=satisfied (Path is satisfied), interface: en0] flow:changed_viability
[        ] [DEVICE LOG] 2020-03-31 12:33:25.816543+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 0.124s [C7 647C88AC-54DA-4F64-8EFA-F9D6AA38E4E3
firebaselogging-pa.googleapis.com:443 resolver path=satisfied (Path is satisfied), interface: en0] flow:changed_viability
[        ] [DEVICE LOG] 2020-03-31 12:33:25.816570+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] 120.933s [C7] path:cancel
[        ]      [C7.1 CC22EC3C-76CE-40D1-9123-4756059AA176 <IP_ADDRESS>:64350<-><IP_ADDRESS>:443]
[        ]      Connected Path: satisfied (Path is satisfied), interface: en0
[        ]      Duration: 120.933s, DNS @0.000s took 0.003s, TCP @0.004s took 0.028s, TLS took 0.091s
[        ]      bytes in/out: 4464/1513, packets in/out: 9/10, rtt: 0.021s, retransmitted packets: 0, out-of-order packets: 0
[        ] [DEVICE LOG] 2020-03-31 12:33:25.817483+0530  localhost Runner[17221]: (libboringssl.dylib) [com.apple.network.boringssl:BoringSSL] boringssl_context_message_handler(2258)
[C7.1:2][0x7fc7e100bff0] Writing SSL3_RT_ALERT 2 bytes
[        ] [DEVICE LOG] 2020-03-31 12:33:25.817652+0530  localhost Runner[17221]: (libboringssl.dylib) [com.apple.network.boringssl:BoringSSL] boringssl_context_handle_warning_alert(1893)
[C7.1:2][0x7fc7e100bff0] write alert, level: warning, description: close notify
[        ] [DEVICE LOG] 2020-03-31 12:33:25.817740+0530  localhost Runner[17221]: (libboringssl.dylib) [com.apple.network.boringssl:BoringSSL] boringssl_session_disconnect(504)
[C7.1:2][0x7fc7e100bff0] SSL_shutdown 0
[        ] [DEVICE LOG] 2020-03-31 12:33:25.817895+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] nw_flow_disconnected [C7.1 <IP_ADDRESS>:443 cancelled socket-flow
((null))] Output protocol disconnected
[        ] [DEVICE LOG] 2020-03-31 12:33:25.818123+0530  localhost Runner[17221]: (libnetwork.dylib) [com.apple.network:] nw_connection_report_state_with_handler_on_nw_queue [C7] reporting state
cancelled
[        ] [DEVICE LOG] 2020-03-31 12:33:25.818329+0530  localhost Runner[17221]: (CFNetwork) Connection 7: destroyed
[        ] [DEVICE LOG] 2020-03-31 12:33:25.818549+0530  localhost Runner[17221]: (libboringssl.dylib) [com.apple.network.boringssl:BoringSSL] nw_protocol_boringssl_remove_input_handler(1012)
[C7.1:2][0x7fc7e100bff0] nw_protocol_boringssl_remove_input_handler forced true
[        ] [DEVICE LOG] 2020-03-31 12:33:25.818974+0530  localhost Runner[17221]: (libboringssl.dylib) [com.apple.network.boringssl:BoringSSL] nw_protocol_boringssl_remove_input_handler(1030)
[C7.1:2][0x7fc7e100bff0] Transferring nw_protocol_boringssl_t handle back into ARC for autorelease

I have already provided a minimal code sample of how I am using stream builder and how order by is used:
StreamBuilder(
              stream: Firestore.instance.collection('orders').where(
                  'userUID', isEqualTo: futureSnapshot.data.uid).where('orderStatus', whereIn: allOrderStatus).orderBy('placedAtTime', descending: true).snapshots(),
              builder: (context, snapshot) {

Hey there, when chaining .where() and .orderBy() with different field values, you have manually create indexes in Firestore, Refer to this solution. https://github.com/flutter/flutter/issues/15928#issuecomment-394197426

Thanks, @healer2030, Composite indexing worked but still, there are two issues:

Whenever there is any change(Update in data) the stream builder is not updating.
When there is no data present then the snapshot connection state remains in waiting state.
snapshot.connectionState is equal to ConnectionState.waiting

@swapnilshah09 when you did the composite indexing, were the field paths in the following order: userUID, orderStatus, placedAtTime?
Also ensure each field path is set to descending as your code above suggests it needs to be descending.

Even after creating composite indexing, I get empty response from streambuilder. For creating composite index I use the link generated in flutter console so there is no problem atleast in the composite index

@healer2030
I am facing the same issue that @psbankar is facing. It is updating the stream builder when a new entry is made but it is not updating the stream builder when there are any update operations performed on the data.

Hey @swapnilshah09 and @psbankar, please reply with a screenshot of the composite index in Firestore, and the full code for your Streambuilder

Hi @healer2030
Here is the screenshot of composite indexing and the entire Streambuilder code.

StreamBuilder(
              stream: Firestore.instance
                  .collection('orders')
                  .where('userUID', isEqualTo: futureSnapshot.data.uid)
                  .where('orderStatus', whereIn: allOrderStatus)
                  .orderBy('placedAtTime')
                  .snapshots(),
              builder: (context, AsyncSnapshot snapshot) {

                if (snapshot.hasError || snapshot == null) {
                  return Text('Oops! Unable to load your orders, please retry');
                } else if (!snapshot.hasData) {
                  return Center(
                      child: CircularProgressIndicator(
                    semanticsLabel: 'Oops could not find any orders : )',
                    semanticsValue: '100%',
                  ));
                } else if (snapshot.data.documents.length == 0) {
                  return Center(
                    child: Container(
                      child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: <Widget>[
                          allOrderStatus.contains('Completed') ||
                                  allOrderStatus.contains('cancelled')
                              ? Text(
                                  'Oops! You do not have any completed orders :)',
                                  style: TextStyle(fontSize: 16),
                                  textAlign: TextAlign.center,
                                )
                              : Text(
                                  'Oops! You do not have any active orders :)',
                                  style: TextStyle(fontSize: 16),
                                  textAlign: TextAlign.center,
                                ),
                          Container(
                            margin: EdgeInsets.only(top: 10.0),
                            child: RaisedButton(
                              color: Colors.green,
                              onPressed: () {
                                Navigator.pushNamedAndRemoveUntil(
                                    context, MainScreen.id, (_) => false);
                              },
                              child: Text(
                                'ORDER NOW',
                                style: TextStyle(color: Colors.white),
                              ),
                            ),
                          )
                        ],
                      ),
                    ),
                  );
                } else {
                  return ListView.builder(
                    shrinkWrap: true,
                    itemCount: snapshot.data.documents.length,
                    itemBuilder: (context, index) {
                      DocumentSnapshot orderList =
                          snapshot.data.documents[index];
                      print('------orderList------');
//                      print(orderList['paymentStatus']);
                      return displayOrders(orderList['orderType'], orderList);
                    },
                  );
                }
              },
            );

@swapnilshah09 is orderStatus an array?

Facing the same issue yet. Not sure if it's an issue with flutter fire or firestore itself. Below is my query.
Firestore.instance         .collection("menus")         .where("archive", isEqualTo: false)         .orderBy("createdAt", descending: true)         .snapshots()         .map((snapshot) => snapshot.documents.map((document) {               // do something here.              }).toList());
And the index looks like below

Although I don't need index on the archive field. Tried that option as well but even that fails.

Thanks, @healer2030, Composite indexing worked but still, there are two issues:
* Whenever there is any change(Update in data) the stream builder is not updating.

* When there is no data present then the snapshot connection state remains in waiting state.
  snapshot.connectionState is equal to ConnectionState.waiting

Just check your console. Flutter would tell you the error and provide a link to an already setup to be indexed fields and you merely have to click the index button. Hope it worked for you.

Facing the same issue yet. Not sure if it's an issue with flutter fire or firestore itself. Below is my query.
Firestore.instance .collection("menus") .where("archive", isEqualTo: false) .orderBy("createdAt", descending: true) .snapshots() .map((snapshot) => snapshot.documents.map((document) { // do something here. }).toList());
And the index looks like below

Although I don't need index on the archive field. Tried that option as well but even that fails.
Removing at least one of the clauses where or order by makes the stream query work

Try making the update on the composite tab instead of the single field.

I have the same issue. If there is data then the query returns results but if there are no results then it gets stuck on waiting.
It isn't a matter of indexing as results appear correctly as long as there the query has at least one result.

I have the same issue and no where or orderBy clauses:
stream: Firestore.instance
              .document('garageOrders/${widget.orderId}')
              .snapshots()

I got the solution guys:

add a StreamController
add a Firebase stream with streamController.addStream(Firestore.instance.document('garageOrders/${widget.orderId}').snapshots())
add streamController.stream into your stream: parameter in StreamBuilder

Hey all, as part of our on-going work for #2582, this has been resolved in our Firebase Firestore rework (#2913) - streams now provide errors if something goes wrong like missing a query index - this has now been merged into master. We'll look at publishing some prereleases in the next few days. Thank you


new option attribute aboutHelp

The new versionHelp and usageHelp is a good idea. Maybe aboutHelp can also be useful.
For this about-text I have the typical about-dialog of nearly every Windows program in mind (menu: Help -> About Eclipse). Ok, for small programs this about-text would not be very different to the version-text, but maybe ...

Sorry for my late reply.
What I had in mind for versionHelp is roughly what you describe for aboutHelp. The @Command annotation already has quite a few attributes - quite a few things to learn for new users. I'd prefer not to add more unless we have a clear use case that cannot be accomplished with the existing annotations/attributes.

Never mind, this issue is not a bug, not even an urgent issue. So, no reason to hurry. And by the way, on discussions like that, I'm not impatiently waiting for an answer. Especially not now, in the current season - it's summertime, people should spent their time outside, not in front of a monitor ... ;-)
In my mind, the difference between aboutHelp and versionHelp is:
aboutHelp is a pleasing presented summary of the program, easy readable for human (like usageHelp).
versionHelp is a simple output of the version-number, easy machine-analyzable (so another tool can check compatibility).
This issue is more an idea (for discussion), rather than a request.

Command line apps commonly only have version help and usage help.
If an app wants to do something in addition they can always do something custom.
I’ll close this for now.


Cherry-pick "Merge target triple into module triple when constructing module from memory"

I'm cherry-picking this change because I'm trying to debug swift code on android and ran into issues when doing expression evaluation. Specifically, constructing SwiftASTContexts presented a problem because the modules being used to construct the SwiftASTContext had incomplete triples (e.g aarch64---). swift-lldb makes the assumption that if the OS is not set in the triple, then it should use the host OS (when not an apple platorm). That doesn't work for remote debugging, so let's try to make sure triples are constructed as accurately as possible.

cc @compnerd @adrian-prantl

@swift-ci please test


Feature request: Option to make it work only on en Wikipedia

Is there any way you could add an option to enable this only on English Wikipedia?
I am for example used to French Wikipedia being in the modern theme, and I'd like to see the original aspect in each language.
I only can't bear it in English because I use it much more and it's terrible.
I'd only like it if it's easy to do, I don't want to waste your time for such a trivial thing.

It'll require a bit of effort to get something like that working, so I don't think I'll have the time to do this at the moment. But, you can easily do this yourself if you'd like to do that.
You can download the repository, and then edit the manifest.json to only affect certain pages:
https://github.com/sixem/legacy-wikipedia/blob/1687b2bd607e091b328152d9a413775beb00fdb5/manifest.json#L13-L15
Changing that to https://en.wikipedia.org/wiki/*, should only make it work on the english Wikipedia.
If using Firefox, you'll have to edit the manifest.json found in https://github.com/sixem/legacy-wikipedia/tree/main/.ff_requires, and then just replace the above file with that one.
To load the the addon:
Chrome
Go to Extensions, enable Developer mode in the top-right corner, then click on Load unpacked, and select the repository directory.
Firefox
For Firefox, you'll have to go to about:addons, click on the cogwheel, then Debug Add-ons, and load the addon temporarily from there. Unfortunately, this is only temporary, and unlike with Chrome, it'll disappear whenever Firefox is closed, so if you are using Firefox, finding a userscript (this for example, and just editing the @match parameter) or something is probably a better solution.
You can also sign the addon as an .xpi through Mozilla, which'll make it permanent, but it's a bit of a hassle :/
Hopefully this was of some help. I'll keep the issue open, as it may be something I can add in the future.

The new update allows for excluding certain language versions of Wikipedia, so I'll go ahead and close this issue.


Why are the events of type uint8[] and not of type uint64[]?

First of all thanks a lot for your work on the metavision_ros_driver.
Since I read here that you wrote:

I ended up squeezing all event data into a uint64 field and then essentially packing/unpacking manually into that 64bit space

I'm wondering why the events are stored in uint8[] and not in a uint64[]?

For the current encoding of "mono" events this does look indeed nonsensical. But for other encodings down the road (e.g. color cameras) a 64 bit boundary may be awkward.
In fact from monitoring the USB bandwidth it appears that the event stream can be compressed to about 2-3 bits/event (during high load), much much better than the 64bits/event of this message representation.

Thanks for the clarification @berndpfrommer.


Current path is not always default

When invoked as php ../php-libyear/libyear.php -q the output is:
Gathering information...
PHP Warning:  file_get_contents(-q/composer.json): failed to open stream:
No such file or directory in /[...]/php-libyear/src/FileSystem.php on line 9

Which makes sense, but also seems a bit odd because leaving out the path is permitted when the -q flat isn't used.
This is with version c627a34137801fdaf6974d88b67d427745cc745f.

Thanks for finding this, I had a similar issue with the .NET client. The readme does state that the path parameter is required, but if be happy for a PR that handles a default for quiet mode!


What are the Apache Arrow integration plans?

It looks like Arrow integration with spark v2.3 will improve serialization for pySpark. What does sparklyr do here? Are there plans to use Arrow (or feather) to improve UDF performance?
Thanks

My question was more timely than I realized. http://spark.apache.org/news/spark-2-3-0-released.html

Yes, for sure, this would be pretty awesome but is no trivial amount of work, tracking this work here: https://github.com/rstudio/sparklyr/issues/1457

Thanks much - I'm sure this isn't easy.


changed to check for type of group claim

Closes #352
Groups claim is either an array or string so I check type of and either join or do not join to make sure that we use a string when creating user.

Let me know when this goes in and I'll update staging so people can test there.

Let me know when this goes in and I'll update staging so people can test there.

I merged it o7


Connecting error

Hello
I need help please. I create a Client and download de config from Raspberry to my Smartphone. Use the config on Openvpn client free and become the error "operation not permitted code1" Connected refused code 111
What is the problem ?
I use Raspian jessie on the raspberry.
Bernd

ECONNREFUSED means that the port you are trying to connect to is not open on the IP you are trying to connect to. This implies that either you are connecting to the wrong IP, you did not open the port on your firewalls successfully, the server did not launch successfully, or the server is using a different port.

basically ensure your port is open from the outside correctly for your client to connect and ensure the client is set to hit that outside IP.


Create new repository for schema upgrade utilities

It's often unclear how we should handle old JSON metadata. We can make it more clear by centralizing upgrading tools in their own repository.

Create a new repository called aind-metadata-upgrader.
Use the aind-library-repro-template.
Port over the existing schema upgrader code out of aind-data-schema.
Pin aind-data-schema to the latest version.

Then, remove the upgraders from aind-data-schema.

Closed by https://github.com/AllenNeuralDynamics/aind-data-schema/pull/712


No migration guide from 1.2.3 to 2.0

Would it be possible for you to throw something together? or are things so different that it wouldn't help?

I completely rewrite everything. Most of the customisation was in calendarAppearance but know you can directly customise dayView in calendarBuildDayView  or prepareDayView methods.
I have to loose some features for keep things simple and customizable.
But I'm open so any suggestions.


The jsdoc preview when calling a function is showing incorrect/misleading information

Does this issue occur when all extensions are disabled?: Yes

Issue Description
The jsdoc preview when calling a function is showing incorrect/misleading information.
Consider the following function definition in a .js file:

The caller preview is showing the first parameter's description without indicating that it is a parameter, which is misleading/confusing. It is also not showing the second parameter at all.

On the other hand, the mouseover preview of the function does show the jsdoc information correctly.

Steps to Reproduce

Define the following function in a .js file.

/**
 * A function to print stuff while demonstrating a vs code jsdoc issue.
 *
 * @param {string} first The first thing to print
 * @param {string} second The second thing to print
 */
function printStuff(first, second) {
  console.log(first);
  console.log(second);
}

Type the following (stopping after the first parenthesis) and observe the the vs code preview showing incorrect/misleading information.

printStuff(
Device

VS Code Version: 1.92.0
OS Version: macOs Sonoma

...the latest stable release is 1.92.1. Please try upgrading...

The issue is still occurring with 1.92.1.

These are actually different features and are expected to behave differently:

parameter hints show when filling in arguments to a function call. It shows docs relevant to the current argument

Hover shows the documentation for the entire symbol/function

This is quite minor, but I think it would be nice to make this distinct more apparent in the UI, so that there is never confusion about param and function body documentation from the get go, especially when the function body is being imported.
Thanks for the clarification!


On-prem deploy

Hi,
Is there a way to deploy Datalab on-prem (preferably using Kubernetes), rather than on AWS/GCP/Azure?
Thanks,

Thanks for getting back to me, @OleksandrRepnikov.
I noticed a Terraform file under infrastructure-provisioning/terraform/aws/ssn-helm-charts/main/main.tf which lists the provider as Kubernetes.
Any idea what part this file plays for Datalabs?


feat(templates): add support for a restart_policy field

Close #896

Documentation added via https://github.com/portainer/portainer-docs/commit/c59dba9ed255d24b51b6c18dc831e91cbf5a89cd


enter key spam after launching keyd

Similar to #198
Sometimes when keyd is ran from the terminal using sudo systemctl start keyd, the enter key is sent rapidly until a key is pressed. After this happens, the first time enter is pressed nothing happens (it works normally afterwards. This doesn't include pressing numpad's enter since doesn't have this issue).
Steps to reproduce:

if keyd is running, stop it with sudo systemctl stop keyd
launch keyd with sudo systemctl start keyd

I can't seem to reproduce this. What keyboard are you using?

I sometimes have the same issue with my standard laptop keyboard (0001:0001). I'll update too when I find out how to reliably reproduce it.

I can't seem to reproduce this. What keyboard are you using?

Corsair K70 LUX
Without keyd running this is the output of keyd -m:

Pressing enter

Corsair Corsair Gaming K70 LUX RGB Keyboard  Keyboard	1b1c:1b33	enter down
Corsair Corsair Gaming K70 LUX RGB Keyboard  Keyboard	1b1c:1b33	enter up

Pressing numpad enter

Corsair Corsair Gaming K70 LUX RGB Keyboard  Keyboard	1b1c:1b33	kpenter up
Corsair Corsair Gaming K70 LUX RGB Keyboard  Keyboard	1b1c:1b33	kpenter down

same thing is happening to me, my entire config is:
[ids]

0f39:1083
0001:0001
248a:8367

[main]
capslock = esc
esc = capslock

[control]
n = down
p = up

I've found this is pretty easily replicable in my similar project when starting the program via CLI as opposed to running it as a daemon. Seems like it's triggered by having Enter held when the /dev/input device gets opened.
Two mitigations I've added:
https://github.com/jtroo/kanata/blob/044cf59ede49046921a42f0c1ed358a644051594/src/kanata/mod.rs#L375 (not consistent)
https://github.com/jtroo/kanata/blob/044cf59ede49046921a42f0c1ed358a644051594/src/main.rs#L96 (more effective)

Thanks for sharing. A timeout is a suboptimal solution, keyd already accounts for this by reading key state directly from the kernel and waiting for any currently pressed keys to be released before grabbing the device. This seems to work on all of my systems, but evidently there is a bug which affects some users.

I took another look at this. I believe the root problem was a race condition between libinput and the evdev grab. I believe the latest commit should fix it. Would appreciate confirmation from everyone who commented on this thread.

Fixed for me

I suspect it is fixed for me, too. In the previous version, when I held the enter key for a second after pressing it for sudo keyd, the enter spam would occur; it no longer does in the new version.

I'm closing this for now.


prebuilt entity - personName on emails false positive

Creating an issue
We prefer that you create documentation feedback issues using the Feedback link on the published article - the feedback control on the doc page creates an issue that contains all the article details so you can focus on the feedback part.
You can also create a feedback issue here in the repo. If you do this, please make sure your issue lists:

[ ] The relevant Azure service or technology.
[ ] A link to the published documentation article that you have feedback about.
[ ] Clear, specific feedback that the author can act on.

Pull requests and article contributions
If you know the change that is needed in an article, we encourage you to submit the changes directly using a pull request. If the change is large, or if you want to contribute an entire article, follow these guidelines:

[ ] Don't surprise us with a big pull request or a pull request with a new article! Submit an issue that describes the details of the proposed large change or new article.
[ ] Include the service or technology area.

We'll route the issue to the appropriate content team for review and discussion.
Tech support and product feedback
If you would like to contact Microsoft about other things, such as product feedback or tech support, please review these guidelines:

If you need technical support using Azure, the paid and free support options are described here: https://azure.microsoft.com/support/options/.

Each article in the Azure technical documentation contains a product feedback button - it's best to submit product feedback directly from a relevant article. Otherwise, you can submit product feedback for most Azure products in the following product feedback forum: https://feedback.azure.com/forums/34192--general-feedback.

Wrong issue.

Please help with the link of document on which above document feedback request is created.
In case your query in not related to document content, open a new forum thread in MSDN or Stack Overflow as it could be better place to get help on your scenario. These forum community members could provide their expert guidance on your scenario based on their experience.


maxStringLength issue with null value

Hi,
In mostly "add new screen", object's properties will be null.
Without input anything, the text field have null value should still satisfy all maxStringLength validation.
Current code : https://github.com/NewOldMax/react-form-validator-core/blob/master/src/ValidationRules.jsx#L55
Can we update it to something like this :
 maxStringLength: (value, length) => !isExisty (value)  || (validations.isString(value) && value.length <= length),

Thank you and Best regards,
/K

Hi,
when you have null value in your input and change it to something else, React will throw warning like
is changing an uncontrolled input of type text to be controlled. Input elements should not switch from uncontrolled to controlled (or vice versa). Decide between using a controlled or uncontrolled input element for the lifetime of the component

so you must define some empty value for your input in any case to avoid this, because this library assumes that all inputs are controlled.
state = {
    defaultObject: {
        title: '',
        name: '',
    }
}


Add remote Kustomize generator E2E tests

This tests the functionality to provide a remote Kustomize directory to manifests[].path
Depends on:

PolicyGenerator Kustomization (pointing to the grc-e2e-policy-generator-test repo):

#496

Remote Kustomization:

https://github.com/stolostron/grc-e2e-policy-generator-test/pull/3

ref:

https://github.com/stolostron/backlog/issues/25928

/retest

CI here is passing. This PR is ready for review.

/cherry-pick release-2.6

/retest

Common steps have been migrated to gitops_utils.go. CI is passing, and this PR is ready for another review.

@dhaiducek could you please cherry-pick the refactoring commits to 2.6 and 2.5 if it's not too much of a pain?

Yes--this entire PR should be cherry-picked to 2.6, so I can work on the 2.5 updates along with it.

/cherry-pick release-2.6

/cherry-pick release-2.5

Yes--this entire PR should be cherry-picked to 2.6, so I can work on the 2.5 updates along with it.

Right. I forgot we backported this feature to 2.6 as well.


navigationOptions break when using redux form

In the example below (leaving out much of the component for brevity), the navigationOptions does not work. My assumption is that is redux-form is breaking it.
import ...

const App = props => <View>{/* form goes here */}</View>

const formConfig = { form: 'my_form', }

App.navigationOptions = { title: 'My App', }

export default connect()(reduxForm(formConfig)(App))

There is a way around it which does work, which is to add the navigationOptions at the top level route configuration:
StackNavigator({
  App: {
    screen: App,
    navigationOptions: {
      title: 'My App',
    },
  },
})

Is this the expected behavior?

You should file a bug report on redux forms to use something like this https://github.com/mridgway/hoist-non-react-statics
For now you can do this,
AppScreen.navigationOptions = connect()(reduxForm(formConfig)(App));

export default AppScreen;

I know this issue is closed, but I thought I'd post this in case it helps someone.  What I did was create a HOC for my redux-forms.
import { View, Text } from 'react-native';
import React, { Component } from 'react';
import Button from 'components/button';

export default function WrapForm(Comp) {
  return class FormWrapper extends Component {
    static navigationOptions = {
      header: ({state, goBack}) => {
        return {
          style: {
            backgroundColor: '#00305c'
          },
          title: state.params.title,
          titleStyle: {
            backgroundColor: '#00305c',
            color: 'white'
          },
          tintColor: '#00b5ef',
          right: (
            <Button primary={true} onClick={state.params.rightButtonClick} disabled={!!state.params.rightButtonDisabled} style={{marginRight:15}}>
              Save
            </Button>
          ),
          left: (
            <Button secondary={true} onClick={() => goBack()} style={{marginLeft:15}}>
              Cancel
            </Button>
          )
        };
      }
    };

    render() {
      const { navigation } = this.props;
      return <Comp initialValues={navigation.state.params.initialValues} navigation={navigation} />;
    }
  }

Then in my form I wrap my export:
export default formWrapper(reduxForm({
  form: 'scheduleForm'
})(connect(
  mapStateToProps,
  mapDispatchToProps
)(ScheduleForm)));

It would make more sense to me for "params" to be directly applied to the rendered screen as props, but I have no idea what problems would result from that, so this is a workaround for passing in initialValues as well as setting navigationOptions.
FWIW I use navigation.setParams in my form to enable/disable the save button depending on the redux-form props (valid, submitting, etc).

If you are concerning with Code elegance , the following works with me & it forces navOptions :
withNavOptions.js

src/components/hoc/withNavOptions.js

import React, { Component } from 'react';

export default function(navigationOptions) {
  return function withNavOptions(Composed) {
    class Composer extends Component {
      static navigationOptions = (...args) => navigationOptions(...args);

      render() {
        return <Composed {...this.props} />;
      }
    }
    return Composer;
  };
}

Then :
App.js
function mapNavOptions({navigation}) {
  return {
    headerStyle : {.......},
    ....
  }
}

const AppScreen= connect()(reduxForm(formConfig)(App));
export default withNavOption(mapNavOptions)(AppScreen);

or in one instruction :
export default withNavOption(mapNavOptions)(
  connect()(reduxForm(formConfig)(App))
)


Overly weak CSP rules fail to prevent XSS attacks (Low)

This issue is imported from pivotal
The evaluation of the Content Security Policy (CSP) revealed that it includes overly weak rules. The CSP is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks. By implementing overly permissive policies, an attacker might become powerful enough to successfully exploit potential XSS vulnerabilities that might otherwise be mitigated by a properly set CSP.

It has to be noted that this issue has no direct impact on the SURFnet solution because no XSS vulnerabilities were found. Nonetheless, a strong CSP provides an effective second layer of protection against vulnerabilities that could emerge in the future. As such, it forms a crucial part in any defense-in-depth security approaches.
The current CSP is:
script-src \'self\' \'unsafe-inline\'; style-src \'self\' \'unsafe-inline\'; img-src \'self\' data:;
The major issue with this CSP is the usage of 'unsafe-inline' in the script-src directive that allows execution of unsafe in-page scripts and event handler. Further, the 'self' value in the script-src directive can be problematic in certain scenarios and a missing object-src directive allows the injection of plugins which can execute JavaScript.
To address this issue, it is recommended to set a CSP that is as strict as possible and includes a default-src directive. This directive serves as a fallback for other CSP directives. Setting this directive would have provided a fallback for the missing object-src directive.
The following command can be used to obtain the CSP:
curl -sI 'https://my.spd.surfconext.nl/\' | grep content-security
This command results in the server responding with the aforementioned CSP of:
content-security-policy: script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;

Note that the Svelte framework does not work without . Investigate what the most defensive setting is. In the Ansible OpenConext-deploy project we can externalise the SCP headers too prevent duplication. (Okke Harsta - Feb 12, 2020)

Fixed here: https://github.com/OpenConext/OpenConext-deploy/commit/aeed5791b605ba310d4edb6d45b9efa524cd8e8f (Peter Havekes - Feb 18, 2020)


Can’t create invalid certificate chains on Java 11

We create invalid certificate chains in tests for MockWebServer to confirm that OkHttp refuses to accept them.
But in Java 11, we get an exception creating invalid certificate chains through the standard APIs:
java.security.KeyStoreException: Key protection  algorithm not found: java.security.KeyStoreException: Certificate chain is not valid

	at java.base/sun.security.pkcs12.PKCS12KeyStore.setKeyEntry(PKCS12KeyStore.java:704)
	at java.base/sun.security.pkcs12.PKCS12KeyStore.engineSetKeyEntry(PKCS12KeyStore.java:601)
	at java.base/sun.security.util.KeyStoreDelegator.engineSetKeyEntry(KeyStoreDelegator.java:111)
	at java.base/java.security.KeyStore.setKeyEntry(KeyStore.java:1174)
	at okhttp3.tls.internal.TlsUtil.newKeyManager(TlsUtil.java:95)
	at okhttp3.internal.tls.CertificatePinnerChainValidationTest.newServerSocketFactory(CertificatePinnerChainValidationTest.java:344)
	at okhttp3.internal.tls.CertificatePinnerChainValidationTest.unrelatedPinnedLeafCertificateInChain(CertificatePinnerChainValidationTest.java:233)

Should we prebuild the certs and checkin?

Great idea. I'd love to add APIs to HeldCertificate to encode and decode so this doesn't feel one-off.
The manual decoding for this gist was unpleasant.
https://gist.github.com/swankjesse/589e3e1c4a566e4a9aaec66f0f3a6223

Won't fix.  We should stick with happy path for any APIs.


chromePackage takes "content" from the root

I have multi sbt-project configuration, where myProject aggregates the chrome one
  lazy val myProject= Project(id = "myProject", base = file(".")).settings(
    name:="myProject",
    version := Versions.binding
  ).aggregate(chromePlugin, server)

so then, commands:
sbt
project chromePlugin
chromePackage
would generate the \unpacked folder with "locales" and "assests" ONLY if I put those "content" folder that contains them outside - to the root of the project like this:
/Main
/content
/chromplugin
/project

/BuildProject.scala

But I would expect to put "content" into the "chromplugin" folder and the sbt-plugin would grab proper content

you should be able to work around this by setting chromePackageContent := ... manually. But i agree it should pick the content directory from the subprojects root.

Is it not possible just to reuse standard resources director for chromeContent?

@antonkulaga that sounds like a good idea i will try that out.


Fix some sqlite backend mistakes

or converts anything to boolean, so there self._connection is always True or False basically
Since self._connection setup only happens if user makes request, and calls store or retrieve, there always a possibility that this code won't be called, and self._connection will stay null. Which will cause exception (thanks to assert) in pretty normal scenario

or converts anything to boolean, so there self._connection is always True or False basically

Don't really understand this line...
Example:
>>> object() or False
<object object at 0x71b11d2e8800>

If bool(connection) is True, it takes the connection object, if not, it will create a new one.

Huh? Now that's confusing

The more you live the more you learn I guess.


Refactor urlopen import

Hi,
This PR modifies the import of the urlopen function to suit new versions of erddapy, where the url_handling module will be deprecated. It does not break compatibility with older versions (the urlopen function is available from the erddapy.erddapy module).
Summary of changes

Import 'urlopen' function from erddapy.erddapy module

Side note: while doing this change, I noticed that the https://erddap-uncabled.oceanobservatories.org/uncabled/erddap URL used in test_standardise_variables_uncabled is no longer valid, so checks will probably fail. There is an ERDDAP server at https://erddap.dataexplorer.oceanobservatories.org/erddap/index.html but I wasn't sure of which dataset to use.

Pre-commit seems to be sorted, for the failing test I think we will have to change the URL used in test_standardise_variables_uncabled.

Pre-commit seems to be sorted, for the failing test I think we will have to change the URL used in test_standardise_variables_uncabled.

Let's mark that one as known failure. We need to test that against more datasets and I'm looking into that.

Rebased after #58 was merged.


Use semver for end-user version display

CalVer is not something most people expect, it doesn't match the GitHub releases and it doesn't actually work as it returns 1:20200101.8 for 1.0.8 released on 2021-11-11 (which is the date 0 in lpc55 calver from my quick check).
See this discussion for an example of confusion: https://github.com/solokeys/kickstarter2021/discussions/31
It's not clear at all that this version is actually 1.0.8 from GitHub.
lpc55-host also implements to_semver, so it should be a simple replacement.

It's unfortunate that the existing releases used semver, not calver, as planned.
The rationale for using calver is that semver kinda doesn't make sense bundled firmware releases (which in time might not be "one thing", but a tested compositum of a selection of apps, current for a given build date).
The owner really only cares:

is this update going to break my key (i.e. requires a reset losing the secrets)? That is what the major release signifies, and we'll try to keep these as infrequent as possible.
how recent is my firmware (i.e. should I updated?) and what changed since the one I have? The second question is answered by checking the build date against what was then the "latest stable" release of each included app.

Turning this into a discussion, in case the calver plan is controversial.


Color update

Task: task-988034
Link: preview
This PR updates colors for badges, buttons, controls, forms, notifications, and progress bars to match Fluent. For some instances, the colors they show on their docs website doesn't match their Figma so it's unclear which one is correct. I updated those colors on a best effort basis.
I've mostly updated the colors for light theme only. In some cases (buttons), I also updated for dark and high contrast theme.
Fluent does not show any semantic colors on high contrast (all of the colors become white), so there are cases where I reuse the existing Atlas dark and high contrast colors.
Fluent has color tokens for danger/success/warning, but not all of the components that has semantic colors use the same token, so beware of some inconsistency.
http://localhost:1111/components/badge.html
https://react.fluentui.dev/?path=/docs/components-badge-badge--docs
Note: Badge colors (info, subtle, etc) on their website does not match their Figma. I ended up going with their Figma and tried to map it to Atlas.
Fluent default -> Atlas brand, Atlas default -> Fluent informative(?) https://www.figma.com/design/FO4ImdAytGCc5DQXpNFObI/Microsoft-Fluent-2-Web-(Community)?node-id=8911-3186&node-type=canvas&t=h55d3uCymIbDm7dU-0
http://localhost:1111/components/button.html
https://react.fluentui.dev/?path=/docs/components-button-button--docs
Note: Fluent buttons don't have semantic color variants, so I updated the Atlas ones to use their common semantic color tokens.
http://localhost:1111/components/checkbox.html
https://react.fluentui.dev/?path=/docs/components-checkbox--docs
http://localhost:1111/components/form.html
https://react.fluentui.dev/?path=/docs/components-field--docs
http://localhost:1111/components/notification.html
https://react.fluentui.dev/?path=/docs/components-messagebar--docs
http://localhost:1111/components/progress-bar.html
https://react.fluentui.dev/?path=/docs/components-progressbar--docs
Note: Fluent progress bar warning color does not match the other warning color for some reason.
http://localhost:1111/components/tag.html
https://react.fluentui.dev/?path=/docs/components-tag-tag--docs
Fluent:
tokens - https://react.fluentui.dev/?path=/docs/theme-colors--docs
Figma - https://www.figma.com/design/FO4ImdAytGCc5DQXpNFObI/Microsoft-Fluent-2-Web-(Community)?node-id=8949-77053&node-type=canvas&t=h55d3uCymIbDm7dU-0
Testing

Visit the links above. You can use https://design.learn.microsoft.com/ to compare with what it looks before the change.
Compare with Fluent.

[Optional]
Contributor checklist

[x] Did you update the description of this pull request with a review link and test steps?
[x] Did you submit a changeset? Changesets are required for all code changes.
[ ] Does your pull request implement complex UI logic (js/ts)? Consider adding an integration test to test your user flow.
[ ] Does your pull request add a new page to the documentation site? Add your new page for automated accessibility testing in /integration/tests/accessibility.

I know we're following the fluent 2 figmas but my least favorite color is probably their orange because it looks so similar to the red but uses a dark font which sticks out compared to all of the other buttons
https://www.figma.com/design/FO4ImdAytGCc5DQXpNFObI/Microsoft-Fluent-2-Web-(Community)?node-id=8911-3186&node-type=canvas&t=2FIZu2Yk5HleTR7T-0

if I put them side by side, I can see the difference better but I think a shade of yellow makes for easier contrast rather than a red-orange color?


?month=201913

When your plugin is installed, the calendar month navigation next is broken on each new year.
If viewing december, next should be january of the next year.
Instead it links to ?month=202013, as if there would be a month 13.
I tested this in latest Contao 4.4 and 4.7.
I can offer credentials for testing, if needed.

Danke.
Fixed. Kommt in der nächsten Version.


User is not able to reorder the Column  headers using single pointer mode of operation:A11y_Blob Container Table_Table_Dragging movements

Preflight Checklist

[X] I have installed the latest version of Storage Explorer.
[X] I have checked existing resources, including the troubleshooting guide and the release notes.
[X] I have searched for similar issues.

Storage Explorer Version
1.33.0(97)
Regression From
No response
Architecture
i86
Storage Explorer Build Number
20240301.4
Platform
Windows
OS Version
24H2(OS Build 26100.1)
Bug Description
User is not able to reorder the Column  headers using single pointer mode of operation
Steps to Reproduce

Launch Storage Explorer
Navigate to "Open Connect dialog" pane and Sign in to Azure.
Go to "Manage Accounts" pane and Select the subscriptions you will use. Once selected, click on "Apply" button.
Navigate to "Blob Containers" of the selected subscription, right click and hit enter on "Create Blob container" to Create a new Blob container.
Once completed, Navigate to "Upload" button and Upload a blob/file by using  "Upload Files" control.
Navigate to Table present in right side of the storage explorer.
Verify that User is not able to reorder the Column  headers using single pointer mode of operation for the table.

Actual Experience
User is not able to reorder the Column  headers using single pointer mode of operation
Expected Experience
User should be able to reorder the Column headers using single pointer mode of operation.
Additional Context
No response

Screen Recording (43).webm

@v-jagansai This functionality is already available via a dialog. This can be done by right-clicking any header cell and selecting "Customize Columns..." Selected columns can then be reordered with the buttons.

Here issue is not repro , We are able access the resize column settings using keyboard Hence the bug is closed


Implemented Location Civic subelement encoding with dynamic GUI components

LanguageCodes has been updated to match the ISO-639-1 2-letter codes rather than the ISO-639-2 3-letter codes. Test file LcrTest tests the buffer encoding.

LGTM


Temporary fix to let CouchDB replications go through the standard port - wmagent branch

Temporary workaround for #10452
Status
ready
Description
Rollback changes that affect CouchDB replication, provided in this PR: https://github.com/dmwm/WMCore/pull/10330
Thus, keep using the standard SSL port for replication between WMAgents and central CouchDB in CMSWEB.
NOTE: pushing these changes only in the wmagent branch. A proper fix for the replication and port 8443 still need to be made against master branch.
Is it backward compatible (if not, which system it affects?)
yes
Related PRs
none
External dependencies / deployment changes
none

@todor-ivanov FYI

Thanks @amaltaro , I am working on the issue for figuring out what's wrong with the initial solution.

 Fix #10453 - Temporary fix to let CouchDB replications go through the standard port - wmagent branch


Typo "respose"→"response"

https://docs.microsoft.com/en-us/host-integration-server/core/solutions-to-common-problems
https://github.com/MicrosoftDocs/biztalk-docs/blob/live/his/core/solutions-to-common-problems.md
#PingMSFTDocs

Docs Build status updates of commit 9c8fa35:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

his/core/solutions-to-common-problems.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Meeting - Monday: August 8, 2016 @ 10:00 AM EST

This is a planning issue for next Mondays weekly meeting. Here is the link https://meet.jit.si/DizzyGorillasRejoiceAlone
@gcolvin says the 10:00 AM is too early. If we move to 11:00 AM will that be too late for @axic @chriseth ?
Also feel free to add comments for agenda items.

Sorry, I have conflicts on both times, in general that day is not the best for me.

@chriseth what day would work for you?

oh yeah we have the core meeting at that time on monday. Does tuesday work for everyone?

I would prefer wednesday if that's ok.

ok Wednesday works, is the time 11:00 AM EST/4:00 CEST good for you?

Can we do it 12:00 AM EST / 4:00 BST / 5:00 CEST?
Another suggestion: keep the very same jitsi channel for every session, so there's no confusion where to talk.

ok @axic updated to 12:00


Try to fix compute worker install

Note: I'm using this PR to trigger automatic tests for testing purpose. DO NOT MERGE IT.
TODO
docker-ce... not found
fix...

Now, installing docker using script (not a specific version of docker).
1.0.3: Pulling from abiosoft/caddy
[...]
Creating project_selenium_1_21dc409a8146 ... error

This was a test branch and can be removed now.


bug(MatTree): MatTree with interactive elements in each row is not keyboard accessible using a screenreader

Reproduction
Use StackBlitz to reproduce your issue:

Components: https://angular-p4bmmy-zxpv6j.stackblitz.io

Steps to reproduce:

Navigate to StackBlitz link above on a Windows machine
Use the keyboard to interact with the tree by tabbing to a node, pressing enter or space to expand it, then tabbing to a nested checkbox and selecting it. Do not use the mouse.
Enable JAWS or NVDA screen reader
Attempt to repeat step 2, using the keyboard to interact with the tree
Manually expand the tree using the mouse then tab through the elements until you get to a nested checkbox. Press space or enter to select the checkbox.

Expected Behavior
Enabling a screen reader should not change the behavior when interacting with the tree using a keyboard. With a screen reader enabled, I should be able to expand a row, tab to a nested checkbox, and select the checkbox using only the keyboard.
Actual Behavior
Hitting space or enter appears to send the click event to the first encountered input element, rather than the focused element. In the linked example, this can be either the textbox above the tree or an unfocused checkbox, depending on how you tab through the list. Either way, the focused element doesn't seem to receive the event.
Environment
JAWS v2021.2102.34 / NVDA v2020.4 (reproducible with both)
Windows 10 Enterprise Version
Chrome Version 89.0.4389.114
Also tested with Firefox Version 87.0, but was not able to reproduce on FF

It appears this may have been fixed with NVDA, but it is still a reproducible issue when using JAWS

still reproducible with NVDA on https://material.angular.io/components/tree/examples
one can click through all the elements to collapse and expand with keyboard until nvda is started, then you can only click first item.

Still reproducible with NVDA 2022.3.1 (as well as JAWS 2020) and Chrome Version 106.0.5249.119:
How to reproduce:

Open https://material.angular.io/components/tree/examples
Navigate to "Tree with partially loaded data"
Navigate with Tab key on "Vegetables" and click on the ">" Toggle
proceed with the tab key: nothing from the subtree is read out, also nothing is clickable in tree anymore

Still reproducible - both with JAWS 2020 and NVDA 2023.2.
Test also with Chrome in Version 116.0.5845.180 as well as Firefox 117.0 (64bit)

How to reproduce:

Open a Screenreader (NVDA or JAWS)
Open https://material.angular.io/components/tree/examples
Navigate to "Tree with partially loaded data"
Navigate with Tab key on "Vegetables" and click (Enter oder Space) on the ">" Toggle
proceed with the tab key: nothing from the subtree is read out, also nothing is clickable with keyboard in tree anymore

Unfortunately not, in Material Angular v 16.2.7  still reproducible

Reproductible even without screen reader


[Bug] BandagedBD is loading indefinitely

When I start discord the bottom right icon starts flashing and says that bandagedbd is loading. Sometimes it takes 30 minutes, sometimes 3 hours, sometimes never loads. Was fine until a couple weeks ago.
Happens everytime I open discord. The update before it was fine as I said (2 weeks ago)
Screenshot
Discord Stable version, Already tried fresh installs of both BD and discord, with folder removal and such.

What operating system are you on?

Windows 10, latest update as well.

Can you try reinstalling (using the latest installer) and share a screenshot of the installer logs at the end?

Stale.