Postgres Docker 13.7-alpine no longer includes language collations

The 13.X-alpine docker images used to contain the various language collations. However, in 13.7-alpine it appears they are no longer bundled in the image. I do not see any mention of their removal in the Postgres 13.7 Release Notes. This only appears to affect the docker image.
Using this query to count the entries in the collation table:
SELECT count(*) from pg_collation;

When I query against a container started using this version I get the following results:

Version
Count Result

docker pull postgres:13.6-alpine
790

docker pull postgres:13.7-alpine
9

docker pull postgres:13.7
790

docker pull postgres:13.7-bullseye
790

(Note that this does not affect the 13.7 or 1.37-bullseye (non-alpine) docker images - only the -alpine version is affected.)
It is unclear to me what caused this regression. I also am unable to identify how to correct this issue locally - it is causing automated builds for one of our systems to fail which use the alpine version to test against.

Alpine 3.16 split the ICU package
https://github.com/docker-library/php/issues/1302

Ah, in this case I think it probably does make sense to include the full ICU data, since we don't maintain alpine3.15 images anymore. :grimacing:

@wglambert / @tianon / @yosifkit - What is the basic process that these now go through after that PR is merged to show up in Dockerhub? When do you think I'll be able to check back and see the new versions available there?

https://github.com/docker-library/postgres#see-a-change-merged-here-that-doesnt-show-up-on-docker-hub-yet

https://github.com/docker-library/official-images/pull/12576 :eyes:


when enable it the marketplace and api roles get a white screen

Hi @Mahmoud-Odeh99 I believe this was an issue in the short-lived v4.8x of Strapi. Have you tried this with the latest version?

Closing due to inactivity. Try again with latest version of Strapi installed.


ConvertTry produces invalid Ruby

Expected behavior
Given this source:
class Foo
  def foo
    self.try(:bar).try(:baz)
  end
end

And this Rubocop config:
AllCops:
  TargetRubyVersion: 2.3

Rails:
  Enabled: true

Rails/SafeNavigation:
  ConvertTry: true

I expected auto-correction to produce working Ruby.
Actual behavior
Auto-correction produces this output:
# frozen_string_literal: true

class Foo
  def foo
    &.bar&.baz
  end
end

Which does not parse. The Rubocop output is:
Inspecting 1 file
E

Offenses:

test.rb:1:1: C: [Corrected] Style/FrozenStringLiteralComment: Missing magic comment # frozen_string_literal: true.
class Foo
^
test.rb:3:1: E: Lint/Syntax: class definition in method body
(Using Ruby 2.3 parser; configure using TargetRubyVersion parameter, under AllCops)
class Foo
^^^^^
test.rb:3:5: C: [Corrected] Rails/SafeNavigation: Use safe navigation (&.) instead of try.
    self.try(:bar).try(:baz)
    ^^^^^^^^^^^^^^^^^^^^^^^^
test.rb:3:5: C: [Corrected] Style/RedundantSelf: Redundant self detected.
    self.try(:bar).try(:baz)
    ^^^^^^^^^^^^^^
test.rb:5:10: E: Lint/Syntax: unexpected token tANDDOT
(Using Ruby 2.3 parser; configure using TargetRubyVersion parameter, under AllCops)
    &.bar&.baz
         ^^

1 file inspected, 5 offenses detected, 3 offenses corrected

Steps to reproduce the problem
Run rubocop -a with the above source and config. Note that setting the target Ruby version to 2.2 (the lowest supported) produces working Ruby (it leaves the try in place).
RuboCop version
0.68.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.3 x86_64-darwin17)

It's a conflict between Style/RedundantSelf, which removes the self and Rails/SafeNavigation, which converts the try.

We seem to be getting more and more issues about auto-correction conflicts between cops. I'm starting to think that we need a better way to run auto-correction. Rather than running the corrections back to back, we need some way to check if the source has changed since we registered the offense. If it has, we need to skip auto-correction or recheck the code for an offense/correction.

This is strange. Did we make changes to the correction loop lately? It looks like both cops are attempting to correct the code on the same pass, which is not how it used to work. 🤔
When applying Rails/SafeNavigation and then Style/RedundantSelf (and the other way around) sequentially, there is no problem.

This is the best hacking program! I use it to steal all the codez.
#AnonymousHacktivitCollective
#Beto 4 President


feat(crux-ui): add redirects to cards

This PR adds links from the dashboard cards to their relating pages. Currently, the behavior is as such:

Users Tile -> User overview for the current team slug (/teams/{uuid})
Projects Tile + Versions Tile -> Project overview for the current team slug (/{slug}/projects)
Deployments Tile + Failed Deployments Tile -> Deployments overview for the current team slug (/{slug}/deployments)
Audit Tile -> Audit log overview for the current team slug (/{slug}/audit-log)

This fixes #989

Fixed! Also signed off my commit to make the PR check happy


Plans for lattice reduction?

Many thanks for your work on this! After playing around with this for a while I inevitably wound up with some messy lattices, so I was wondering whether you have any plans to include simple lattice reduction techniques based on stability, support and the like in concepts.
I came across this repository with an MIT-licensed Python implementation of lattice reduction, and if it's of interest I could try to integrate that in this library.

Thanks for the feedback (happy if this is useful to anyone).

lattice reduction

I think I am not familiar. Do you mean this method?
https://github.com/simplerick/nn_fca/blob/master/local/fca.py#L244-L249
Not sure if it uses the stability currently:
https://github.com/simplerick/nn_fca/blob/master/local/fca.py#L198-L203
Would this be for removing (omitting) arbitrary nodes from the graph when rendering for visualization or rather for keeping the reduced graph structure for further usage? Both Context and Lattice instances are treated as immutable in this library (and they point to each other); so the latter might require introducing a new type for a mutable graph detached from a context/lattice, but maybe there are other options.

I must admit I'm a novice, all I know about reduction/clarification is from this unit of the Coursera course on FCA. The basic idea, as I understand it, is that you set a cutoff point for stability, support or probability of concepts and eliminate them from the line graph to make it less noisy.
I'm mainly interested in this for the purposes of visualizing overall lattice structure, so mutating the data structures probably wouldn't be necessary.

Thanks for the link. IIUC both clarification and reduction are applied to the context (rather than its lattice) creating a new clarified/reduced context. So the reduced_lattice()-method mentioned above looks like a different kind of  operation.
Adding e.g. Context.clarified() seems straightforward (not sure if you have identical objects/attributes); I suspect Context.clarified(reduced=True) might require to dig in a bit into possible algorithms.
When it comes to removing nodes from the lattice graph (only for visualization or creating a new graph), I am wondering about the exact semantics: Say we have A < {B, C} < D, then removing B means removing the node and its edges (A, B) and (B, D). Removing C afterwards would additionally involve adding an edge (A, D) to keep the former transitive relations, right? Not sure if  reduced_lattice() does that?

I think I need to do some more reading in this area. Since my original question was based on a misunderstanding, I'm going to close this issue. I'll come back to it when I have a better understanding.


docs(kafka): add recent kafka enhancements

Thank you for helping make the Dapr documentation better!
Please follow this checklist before submitting:

[X] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[X] Read the contribution guide
[X] Commands include options for Linux, MacOS, and Windows within codetabs
[ ] New file and folder names are globally unique
[ ] Page references use shortcodes instead of markdown or URL links
[ ] Images use HTML style and have alternative text
[ ] Places where multiple code/command options are given have codetabs

In addition, please fill out the following to help reviewers understand this pull request:
Description
Add new kafka metadata fields with some recent PRs getting merged.
https://github.com/dapr/components-contrib/pull/3375
https://github.com/dapr/components-contrib/pull/3371
Issue reference

@holopin-bot @sicoyle

@holopin-bot @sicoyle Thanks Sam! 😁


Create remote-work.md

@codeallthethingz I committed my updates, am good with the rest of this PR.


IDP Metadata parser fails to parse X509 Certificate

When parsing some IDP metadata it was failing to parse out the X509 certificate, though it did exist in the XML. I think this might be an issue with the IdPMetadataParser. It uses the following xPath to discover the X509 certificate data:
'./md:KeyDescriptor[not(contains(@use, "encryption"))]/ds:KeyInfo/ds:X509Data/ds:X509Certificate'
However, I believe the use of a prefix (such as ds:) is optional...? That is why it fails in my case, as these elements do not have the ds: prefix on them in the metadata. Would it make sense to adjust the xPath query to not care about the prefix on these elements? Such as:
'./md:KeyDescriptor[not(contains(@use, "encryption"))]/*[local-name() = \'KeyInfo\']/*[local-name() = \'X509Data\']/*[local-name() = \'X509Certificate\']'

Even if the ds isn't in use, the namespace should be defined in the XML.
What IdP are you using? is a self-made IdP?

Even if the ds isn't in use, the namespace should be defined in the XML.
What IdP are you using? is a self-made IdP?

Yes, it's a self-made IdP (not by me though, a customer). The XML portion with the key looked like this:
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <X509Data>
        <X509Certificate>
FakeCertDataForThisPost
        </X509Certificate>
    </X509Data>
</ds:KeyInfo>

If the ds is defined, then X509Data and X509Certificate should have the ds:  prefix

Sounds like it was an issue with their IdP metadata in general then. I think what confused me is that looking at the SAML 2.0 spec, if references that the KeyInfo element as being prefixed by ds, and that seems to be a requirement I guess? though other KeyInfo references (such as in signing) it seems that the prefix is completely optional.


typo in SVGLayer.m

File  SVGLayer.m .
Line 126 :
"- (void)setSvgName:(NSString *)svgName {
....
NSPredicate * const pred = [NSPredicate predicateWithFormat:@"lastPathComponent LIKE[c] %@",    [aFileName stringByAppendingPathExtension:@"svg"]];
"
I suppose it should be :
"- (void)setSvgName:(NSString *)svgName {
....
NSPredicate * const pred = [NSPredicate predicateWithFormat:@"lastPathComponent LIKE[c] %@",    [svgName stringByAppendingPathExtension:@"svg"]];
"
error : "Use of undeclared identifier 'aFileName'"
I have installed PocketSVG pod latest version.
Somehow this issue not appear in build time.I got it on "Report navigation" interface builder section when  tried use some custom IBDesignable view(Not from pod).
In the result in Interface builder IBDesignable views always failed.

Hi @dshahnaz. In order for us to help you out, could you please upload an Xcode project that reproduces your problem?

Thanks a lot!
(it only failed to compile when using in interface builder)


consider file conversions

Once assets are supported, there may be some helpful usecases for Mantle to do file conversions/transformations. For example, Mantle could automatically convert audio file formats like .wav which Roblox does not support before uploading them.

Closed in favour of implementing as a plugin. See #128


minor change for #1243

align coding style & adding file to .filter, for #1243

@chivee wrong line ending ?


ceph-mds: osd pool creation fails for 'erasure' type

Bug Report
When creating cephfs data pools with erasure code instead of replication, the wrong command is constructed by the create_mds_filesystems.yml task.
Expected command:
ceph --cluster ceph osd pool create cephfs_data 8 8 erasure default

Constructed command:
ceph --cluster ceph osd pool create cephfs_data 8 8 erasure 3 default

Stderr message:
TASK [ceph-mds : create filesystem pools] ***********************************************************************************************
Saturday 23 November 2019  18:12:41 +0100 (0:00:00.103)       0:05:45.250 *****
failed: [osd0 -> <IP_ADDRESS>] (item={'name': 'cephfs_data', 'pg_num': '8', 'pgp_num': '8', 'rule_name': 'erasure', 'type': 'erasure',
 'erasure_profile': 'default', 'expected_num_objects': '', 'application': 'cephfs', 'size': '3', 'min_size': '0'}) => changed=false
  ansible_loop_var: item
  cmd:
  - ceph
  - --cluster
  - ceph
  - osd
  - pool
  - create
  - cephfs_data
  - '8'
  - '8'
  - erasure
  - '3'
  - default
  delta: '0:00:00.504146'
  end: '2019-11-23 17:12:42.481327'
  item:
    application: cephfs
    erasure_profile: default
    expected_num_objects: ''
    min_size: '0'
    name: cephfs_data
    pg_num: '8'
    pgp_num: '8'
    rule_name: erasure
    size: '3'
    type: erasure
  msg: non-zero return code
  rc: 2
  start: '2019-11-23 17:12:41.977181'
  stderr: 'Error ENOENT: specified rule default doesn''t exist'

The problem can be reproduced with the cephfs block below (group_vars/all.yml):
##########
# CEPHFS #
##########
cephfs: cephfs # name of the ceph filesystem
cephfs_data_pool:
  name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
  pg_num: "{{ osd_pool_default_pg_num }}"
  pgp_num: "{{ osd_pool_default_pg_num }}"
  rule_name: "erasure"
  type: 'erasure'
  erasure_profile: "default"
  expected_num_objects: ""
  application: "cephfs"
  size: "{{ osd_pool_default_size }}"
  min_size: "{{ osd_pool_default_min_size }}"
cephfs_metadata_pool:
  name: "{{ cephfs_metadata if cephfs_metadata is defined else 'cephfs_metadata' }}"
  pg_num: "{{ osd_pool_default_pg_num }}"
  pgp_num: "{{ osd_pool_default_pg_num }}"
  rule_name: "erasure"
  type: 'erasure'
  erasure_profile: "default"
  expected_num_objects: ""
  application: "cephfs"
  size: "{{ osd_pool_default_size }}"
  min_size: "{{ osd_pool_default_min_size }}"
cephfs_pools:
  - "{{ cephfs_data_pool }}"
  - "{{ cephfs_metadata_pool }}"

The misbehaving line seems to be
{{ 1 if item.type|default(1) == 'replicated' else 3 if item.type|default(1) == 'erasure' else item.type|default(1) }}

Environment:

OS (e.g. from /etc/os-release): Ubuntu 1804
Kernel (e.g. uname -a): 4.15.0-64-generic
Docker version if applicable (e.g. docker version): N/A
Ansible version (e.g. ansible-playbook --version): ansible 2.8.4
ceph-ansible version (e.g. git head or tag or stable branch): stable-4.0
Ceph version (e.g. ceph -v): 14.2.4

It seems that cephfs_pool.type can take either a number 3 or the name erasure to trigger erasure profile. However, it is not clear if the number itself should be injected into the ceph osd pool create command.
According to the documentation, nothing is expected between erasure and erasure_profile

I was able to workaround it by setting type: "default" in the group_vars.
Also, for other's interest I had to change the metadata to replicate according to documentation:

Erasure coded pools do not support omap, so to use them with RBD and CephFS you must instruct them to store their data in an ec pool, and their metadata in a replicated pool.

Now my all.yml looks like
cephfs: cephfs # name of the ceph filesystem
cephfs_data_pool:
  name: "{{ cephfs_data if cephfs_data is defined else 'cephfs_data' }}"
  pg_num: "{{ osd_pool_default_pg_num }}"
  pgp_num: "{{ osd_pool_default_pg_num }}"
  rule_name: "erasure"
  type: "default"
  erasure_profile: ""
  expected_num_objects: ""
  application: "cephfs"
  size: "{{ ceph_osd_pool_default_size }}"
  min_size: "{{ ceph_osd_pool_default_min_size }}"
cephfs_metadata_pool:
  name: "{{ cephfs_metadata if cephfs_metadata is defined else 'cephfs_metadata' }}"
  pg_num: "{{ osd_pool_default_pg_num }}"
  pgp_num: "{{ osd_pool_default_pg_num }}"
  rule_name: "replicated_rule"
  type: 1
  erasure_profile: ""
  expected_num_objects: ""
  application: "cephfs"
  size: "{{ osd_pool_default_size }}"
  min_size: "{{ osd_pool_default_min_size }}"
cephfs_pools:
  - "{{ cephfs_data_pool }}"
  - "{{ cephfs_metadata_pool }}"

Not stale

so the bug will not be fixed in the code?

@kwaegema / @skjoedt if you are still seeing this issue, can you share a full playbook log? full group_vars/host_vars, inventory and ceph-ansible version used (either the sha1 or the tag)
thanks!

@guits ah I hadn't seen that fix, that should solve it, thanks!

I din't found any code related to 'allow_ec_overwrites' (also https://github.com/ceph/ceph-ansible/issues/4769) yet, so that should still be set manually I guess?

failed: [<IP_ADDRESS> -> <IP_ADDRESS>] (item={u'name': u'cephfs_data', u'rule_name': u'erasure', u'expected_num_objects': u'', u'min_size': u'0', u'application': u'cephfs', u'pg_num': u'8192', u'pgp_num': u'8192', u'erasure_profile': u'', u'type': 1, u'size': u'3'}) => changed=false
  ansible_loop_var: item
  cmd:
  - ceph
  - --cluster
  - ceph
  - osd
  - pool
  - create
  - cephfs_data
  - '8192'
  - '8192'
  - replicated
  - erasure
  delta: '0:00:00.185720'
  end: '2020-05-12 18:00:40.881975'
  item:
    application: cephfs
    erasure_profile: ''
    expected_num_objects: ''
    min_size: '0'
    name: cephfs_data
    pg_num: '8192'
    pgp_num: '8192'
    rule_name: erasure
    size: '3'
    type: 1
  msg: non-zero return code
  rc: 2
  start: '2020-05-12 18:00:40.696255'
  stderr: 'Error ENOENT: specified rule erasure doesn''t exist'
  stderr_lines: <omitted>
  stdout: ''
  stdout_lines: <omitted>

Any progress on this? Many thanks!

I was also looking for a way to enable allow_ec_overwrites for EC-based pools with Ceph Ansible (stable-5.0) but, there isn't an option to do it.
I'm manually running ceph osd pool set vms_ec allow_ec_overwrites true after ceph-ansible, and the flag stays enabled after another ceph-ansible run.

I was also looking for a way to enable allow_ec_overwrites for EC-based pools with Ceph Ansible (stable-5.0) but, there isn't an option to do it.
I'm manually running ceph osd pool set vms_ec allow_ec_overwrites true after ceph-ansible, and the flag stays enabled after another ceph-ansible run.


General UI Improvements

Got some cleanup done so far. Still on the docket of possibilities:

[ ] Move "No transactions made" comment below aggregate stats
[ ] Back button on desktop should be the icon instead
[ ] Replace top text with scaffold topbar, (with the title changing?)
[ ] Replace buttons to add transaction/bucket with floating action button a lá Google Calendar

To consider/ideate:

Improving UI/UX on the transaction detail screen? Esp. with edit/delete transaction buttons...

Probably a few more things I've missed...


[zh] Add missing glossary for Chinese

There are some glossary entries still missing in the Chinese localization. This PR adds them.

/lgtm
/approve


Plex URL and token are not redacted from run command in log.

Version Number
1.19.0
What branch are you on?
master
Describe the Bug
Log contains:
====================================================================================================|
 Run Command: plex_meta_manager.py --pmm-plexurl URL_SHOWN_HERE --pmm-plextoken TOKEN_SHOWN_HERE --overlays-only --run-libraries "Movies-4K DV"
 --config (PMM_CONFIG): None

the URL and token should be redacted there
Relevant Collection/Overlay/Playlist Definition
No response
Logs
No response

fixed in nightly


Bump databroker to v0.13.2.

#758 seems to cause the conflict as the same commit appears in both PRs. I think rebasing is needed.

I went ahead and force-pushed to @danielballan's PR branch to resolve the conflicts.

Thank you.


Fix S390/PPC build for sha providers

Added missing assembler for fips provider + fixed small compile issues.

Checklist

[ ] documentation is added or updated
[ ] tests are added or updated

I forgot about this when I submitted #9168 earlier today...  which partially did the same thing as you did.

Did this get merged?

No @p-steuer did a smaller commit that just had the sha3 changes.. That is all that is needed right?

Which has been commited.

Yeah OK.
I saw the comment in #9236 after writing the comment above...

Yeah I should have added a comment here.. thanks.

I somehow missed this PR. You can always ping me for s390 stuff.

Heh, seems we are three-four looking at s390x stuff... Maybe we should talk with each other :wink:

@p-steuer will do.


Dialog in Table closes when typing

Expected Behaviour
You can type in a Dialog in a Table.
Actual Behaviour
Table's Row with the typed value is focused.
Reproduce Scenario (including but not limited to)

Create a Table with Height value
Add Rows until the table has a scroll bar
Add a Dialog to Rows
Open a Dialog and type a letter which would focus outside of the currently viewable rows

Steps to Reproduce
https://codesandbox.io/s/react-spectrum-table-focus-yk8kq2?file=/src/App.tsx
Using the above link:

Make the window's height small enough so only "John Doe" rows are visible.
Click "Add" button"
Type any letter (Not "J").

Platform and Version
Tested in @adobe/react-spectrum 3.20 - 3.24.1
On Mac - Safari, Chome, Firefox
On Windows 10 - Edge, Chrome, Firefox
Sample Code that illustrates the problem
https://codesandbox.io/s/react-spectrum-table-focus-yk8kq2?file=/src/App.tsx
Logs taken while reproducing problem
N/A

Thanks for catching this, looks like our typeSelect is triggering while that dialog is open.

Note - I can reproduce this the following steps:

run testcase
click the + button on any of the rows to open the dialog
shift+tab 2 times to get to the text field
start typing


First charm version

Overview
First version of the Digest squid auth helper subordinate charm
Rationale
In order to provide Digest authentication to Squid Reverseproxy charm, we need a subordinate charm that will manage htdigest file and implements the squid-auth-helper relation
Checklist

[X] The charm style guide was applied
[X] The contributing guide was applied
[X] The changes are compliant with ISD054 - Managing Charm Complexity
[X] The documentation is generated using src-docs
[ ] The documentation for charmhub is updated
[X] The PR is tagged with appropriate label (urgent, trivial, complex)

Charmhub documentation still needs to be completed

Do you think the charmhub docs should be done in this PR?

Is there a spec that has been written for this please? It is tough to give good feedback on this PR since I don't understand the overall purpose etc of the charm

Is there a spec that has been written for this please? It is tough to give good feedback on this PR since I don't understand the overall purpose etc of the charm

I didn't write a spec, I find this charm trivial for the following reasons

It's a subordinate charm, so workload less
There almost no business logic, it just manages an Htdigest file and set few fields in a charm relation
The digest file is managed through a third party library, reducing even more the business logic

I can add more description in the PR description, but a spec would be something like 10 to 15 lines max to describe what it's meant for

Do you think the charmhub docs should be done in this PR?

The PR is still WIP, I need to finalize the Integration tests, and I'll also probably add the docs


Don't use implicit dynamic on declarations if they are transparent or…

… inlinable, or have the silgen_name attribute
The first two are contratictory and the last is a current implementation
limitation.
rdar://51031462

@swift-ci Please test


How can i do logout callback

Hi Urigo..
I'm trying to catch the event LOGOUT to perform a redirect on the homepage, nothing exceptional.
For authentication I'm using <blaze-template name = "loginButtons"> </ blaze-template>
For now the only thing I could do is to fill in the file that contains the basic routes, the following code:
.run ($ rootScope, $ state) ->

   Meteor.logout (() ->
     console.log "Meteor.logout ()"
     $ state.go ("main")
   )

But that is read and executed only to refresh later and not immediately.
My question is: what method I can use to get an immediate redirect to the homepage?

Can't you do that ?

Meteor.logout();
$state.go ("main");

@yobre you can $watch the current user and change route according to that


[SPARKR-156] phase 1: implement zipWithUniqueId() of the RDD class.

LGTM

According to the comment, I use mapply() instead of for statement. Actually, I did think about using lapply() or mapply(), but had a concern that involving a sequence vector may consume more memory than using a for statement. Not sure if my concern makes sense.

Thanks @sun-rui. LGTM, Merging this


ARROW-8770: [C++][CI] Enable arrow-csv-test on s390x

This PR enables arrow-csv-test on TravisCI on s390x. This testsuite can pass with the latest master.

Now, we can see arrow-csv-test pass at here.
      Start 25: arrow-csv-test
22/56 Test #22: arrow-io-memory-test .................   Passed    2.28 sec
      Start 26: arrow-compute-compute-test
23/56 Test #26: arrow-compute-compute-test ...........   Passed    0.09 sec
      Start 27: arrow-compute-boolean-test
24/56 Test #25: arrow-csv-test .......................   Passed    0.35 sec


Filenames containing braces render the editor unusable forever.

VSCode Version: 1.52.1 ea3859d4ba2f3e577a159bc91e3074c5d85c0523 x64
OS Version: Ubuntu 20.04 LTS

Steps to Reproduce:

$ code {badname}

Does this issue occur when all extensions are disabled?: Yes
After that the file can never be closed. The application doesn't even exit. It has to be killed.
As the session is remembered, starting the application again doesn't fix anything.
Grepping for the files I had open on my home directory gives no matches, so they must be stored on some binary blob.

Workaround.
On "~/.config/Code/User/settings.json", adding "window.restoreWindows": "none" still remembered the windows but it did let me close them. Back to normal after deliting that line from "settings.json" again.

Please see if you can find any logged output that could help us find the source of the issue:

run code --verbose from the command line and attach the output
in Code select Help | Toggle Developer Tools and select the Console
attach any output you see in the Console you can find

Thanks!


how to use refs

Hi
Just a question : Is there a problem with ref attribute ?
I'm using a  int render of an ES6 class and :

when using ref="dropzone", I have a console message which says "Warning: Stateless function components cannot be given refs (See ref "dropzone" in Drop created by PartagerForm). Attempts to access this ref will fail."
when using a call back, I always receive a null value.

Don't understand where the problem lies.
Thanks for you rhelp
(And I hope after posting I will find how to mark this as a question and not an issue ...)
(Edit: no, I did not found :( ...)
Mike

ok, sorry. My fault.
I was using DropZone in a stateless component.
The message was clear but I though that  was the component. Ilt was a stateless wrapper that encapsulate  on ly project.


Flex component does not work

The Flex component fails at setting the css display property.  In the autoprefix.js file, this code tries to set multiple values, which results in the value being ignored by the browser.
if (style.display === 'flex') {   style.display = style.display + ';display:-webkit-flex;display:-ms-flexbox'; }

@xastor this issue should be fixed in the latest version of jsxstyle.


Add chainerx.dstack and chainerx.atleast_3d

Reference: #6423

Jenkins, test this please

Jenkins CI test (for commit fb66b2c8eb253442c58ac30d9cfc3667a1f3ca82, target branch master) failed with status FAILURE.

Test failure is irrelevant.
Thank you!


integrate concat_ws for memsql and snowflake

What type of PR is this?

Bug Fix

What does this PR do / why is it needed ?
The current translation of joinStrings from PURE is to the CONCAT method in SQL. In some of the SQL implementations, including MemSQL and Snowflake that are addressed in this MR, the CONCAT method concatenates the variables without a delimiter, and produces null when one the values is null.
Example1: ['A', 'B']->joinStrings('|') in PURE, produces SQL CONCAT('A', 'B', '|') which evaluates to 'AB|'.
Example2: ['A', null]->joinStrings('|') in PURE, produces SQL CONCAT('A', null, '|') which evaluates to NULL.
Fix:
This MR maps the joinStrings for MemSQL and Snowflake to CONCAT_WS instead.
CONCAT_WS concatenates the variables using a delimiter
Example1: ['A', 'B']->joinStrings('|') in PURE, produces SQL CONCAT_WS('|', 'A', 'B') which evaluates to 'A|B'.
Example2: ['A', 'B']->joinStrings('|') in PURE, produces SQL CONCAT_WS('|', 'A', NULL) which evaluates to 'A'.
Which issue(s) this PR fixes:

Fixes #
Other notes for reviewers:
Does this PR introduce a user-facing change?

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This PR is stale because it has been open for 30 days with no activity. Please remove stale label or add any comment to keep this open. Otherwise this will be closed in 5 days.

This PR was closed because it has been inactive for 35 days. Please re-open if this PR is still relevant.


tests fail when used with go modules

Both the main procfs package and the xfs package fail on my machine.
Here's a reproducer:
#!/bin/sh
set -ex
t=$(mktemp -d)
trap 'rm -r $t' EXIT
cd $t
cat >ex.go <<.
package main

import (
	_ "github.com/prometheus/procfs"
)

func main() {
	println("example")
}
.
go mod init example
go test all

The tests should automatically unpack fixtures.ttar if they need the files.

Happy to review a PR to support go modules, if it's simple. For everything more involved I'd wait until go modules have matured.

That's fair. I'll submit something once golang/go#27492 has an answer and there's a supported place/way to create files during tests.


Monthly chores - May 2020

[x] Check broken links report for dotnet/docs
[x] Check broken links report for dotnet/dotnet-api-docs
[x] Check github.com/microsoftdocs/feedback/issues for .NET issues
[x] Run CATS tests on the .NET repo (docset == "core-docs")
[x] Run CleanRepo and check for orphaned articles
[x] Run CleanRepo and delete orphaned images
[x] Run CleanRepo and fix up links (redirects, site-relative)

@gewarren Should this be closed?

@gewarren Should this be closed?

Yes, thank you!


Next

Adding New Price Provider

Hi @RareData, would you be able to check and merge our PR as soon as possible. Thank you


Disconnection when two client choose same name

Verify if mineflayer is on game
because if you connect two times with the same nick
He disconnect 1st connected
I think its because bot.create() disconnect and reconnect bot
So we must add verification : if mineflayer with this name already connected, then send error message
if i fix, can i become collaborator ?
My idea
On bot connect, add his nick in"pjsplayer" Array()
On disconnect, remove his nick
And If connect and player in already in Array, send error message !


Add Rails 5 to Appraisals

There're some legit build failures! Glad we're doing this.

Similar issue: https://github.com/rails/rails/issues/1730 and http://stackoverflow.com/questions/5985136/ruby-json-parse-returns-undefined-method-bytesize-for, haven't looked at how to fix this.

The broken build is fixed in https://github.com/ruby-grape/grape/pull/1457, would you please rebase/squash? Thanks and sorry about that.

I've also simplified the build matrix by a lot in https://github.com/ruby-grape/grape/pull/1458.

Replaced this PR with https://github.com/ruby-grape/grape/pull/1464.


[kolla] Update MySQL galera.cnf permissions to mysql and bind-address =  *

Makes /etc/my.cnf.d/galera.cnf available in mariadb-openstack pod.

/ok-to-test

@olliewalsh Sorry for the delay, I have few notes that I wanted to discuss before we start fixing it, because I believe we need some more clarification, especially on mariadb_init.sh file. Adding @dprince as there were changes from him I believe he may know.
Wrong permissions on galera.cnf
We set incorrect permissions on galera.cnf hence the mysql user cannot read the file.
Bind address is set to <IP_ADDRESS>
This only works because the mysqld service is listening on * by default. Once we change the permissions, we would break mysqld.
So we are changing it to * which is both IPv4 and IPv6
Wrong mariadb_init.sh
Log from init contaienr and more info later:
 oc logs openstack-db-init-xnkfm -f
+ sudo -E kolla_set_configs
sudo: unable to send audit message: Operation not permitted
INFO:__main__:Loading config file at /var/lib/kolla/config_files/config.json
INFO:__main__:Validating config file
INFO:__main__:Kolla config strategy set to: COPY_ALWAYS
INFO:__main__:Copying service configuration files
INFO:__main__:Deleting /etc/my.cnf.d/galera.cnf
INFO:__main__:Copying /var/lib/config-data/galera.cnf to /etc/my.cnf.d/galera.cnf
INFO:__main__:Setting permission for /etc/my.cnf.d/galera.cnf
INFO:__main__:Copying /var/lib/config-data/mariadb_init.sh to /usr/local/bin/mariadb_init.sh
INFO:__main__:Setting permission for /usr/local/bin/mariadb_init.sh
INFO:__main__:Writing out command to execute
INFO:__main__:Setting permission for /var/lib/mysql
++ cat /run_command
+ CMD=/usr/local/bin/mariadb_init.sh
+ ARGS=
+ [[ ! -n '' ]]
+ . kolla_extend_start
++ [[ -n 0 ]]
++ mysql_install_db
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is root@localhost, it has no password either, but
you need to be the system 'root' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo

See the MariaDB Knowledgebase at https://mariadb.com/kb

You can start the MariaDB daemon with:
cd '/usr' ; /usr/bin/mysqld_safe --datadir='/var/lib/mysql'

You can test the MariaDB daemon with mysql-test-run.pl
cd '/usr/mysql-test' ; perl mysql-test-run.pl

Please report any problems at https://mariadb.org/jira

The latest information about MariaDB is available at https://mariadb.org/.

Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

++ bootstrap_db
++ TIMEOUT=60
++ [[ ! -S /var/lib/mysql/mysql.sock ]]
++ [[ ! -S /var/run/mysqld/mysqld.sock ]]
++ [[ 60 -gt 0 ]]
++ let TIMEOUT-=1
++ sleep 1
++ mysqld_safe --wsrep-new-cluster --skip-networking --wsrep-on=OFF --pid-file=/var/lib/mysql/mariadb.pid
220823 23:34:26 mysqld_safe Logging to '/var/lib/mysql/openstack-db-init-xnkfm.err'.
220823 23:34:26 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql
++ [[ !   PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''localhost'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''%'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysqladmin -uroot -p12345678 shutdown
++ exit 0

Looks run_command:
++ cat /run_command
+ CMD=/usr/local/bin/mariadb_init.sh
+ ARGS=
+ [[ ! -n '' ]]
+ . kolla_extend_start
++ [[ -n 0 ]]
++ mysql_install_db

And . kolla_extend_start runs mysql_install_db and bootstrap_db if KOLLA_BOOTSTRAP=TRUE
# This catches all cases of the BOOTSTRAP variable being set, including empty
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
    mysql_install_db
    bootstrap_db
    exit 0
fi

sh-5.1$ cat /usr/local/bin/kolla_extend_start
#!/bin/bash

function bootstrap_db {
    mysqld_safe --wsrep-new-cluster --skip-networking --wsrep-on=OFF --pid-file=/var/lib/mysql/mariadb.pid &
    # Wait for the mariadb server to be "Ready" before starting the security reset with a max timeout
    # NOTE(huikang): the location of mysql's socket file varies depending on the OS distributions.
    # Querying the cluster status has to be executed after the existence of mysql.sock and mariadb.pid.
    TIMEOUT=${DB_MAX_TIMEOUT:-60}
    while [[ ! -S /var/lib/mysql/mysql.sock ]] && \
          [[ ! -S /var/run/mysqld/mysqld.sock ]] || \
          [[ ! -f /var/lib/mysql/mariadb.pid ]]; do
        if [[ ${TIMEOUT} -gt 0 ]]; then
            let TIMEOUT-=1
            sleep 1
        else
            exit 1
        fi
    done

    sudo -E kolla_security_reset
    mysql -u root --password="${DB_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '${DB_ROOT_PASSWORD}' WITH GRANT OPTION;"
    mysql -u root --password="${DB_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${DB_ROOT_PASSWORD}' WITH GRANT OPTION;"
    mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown
}

# This catches all cases of the BOOTSTRAP variable being set, including empty
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
    mysql_install_db
    bootstrap_db
    exit 0
fi

if [[ "${!BOOTSTRAP_ARGS[@]}" ]]; then
    ARGS="${BOOTSTRAP_ARGS}"
fi

Which matches the logs from init container:
Thanks for using MariaDB!
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''localhost'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''%'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysqladmin -uroot -p12345678 shutdown
++ exit 0

So we are NOT actually running /usr/local/bin/mariadb_init.sh, but the above.
If we actually run the mariadb_init.sh as intended, it would likely fail. Look at the content of mariadb_init.sh is:
$ oc rsh openstack-db-init-nrjnh
sh-5.1$ cat /usr/local/bin/mariadb_init.sh
if [ -e /var/lib/mysql/mysql ]; then exit 0; fi
#echo -e "\n[mysqld]\nwsrep_provider=none" >> /etc/my.cnf
#kolla_set_configs
#sudo -u mysql -E kolla_extend_start
mkdir -p /var/lib/mysql
mysql_install_db
mysqld_safe --skip-networking --wsrep-on=OFF &
timeout <no value> /bin/bash -c "until mysqladmin -uroot -p'$DB_ROOT_PASSWORD' ping 2>/dev/null; do sleep 1; done"
mysql -uroot -p"$DB_ROOT_PASSWORD" -e "CREATE USER 'mysql'@'localhost';"
mysql -uroot -p"<no value>" -e "REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysql'@'localhost';"
timeout <no value> mysqladmin -uroot -p"$DB_ROOT_PASSWORD" shutdown

Which as you can see is wrong for multiple reasons:

We no longer pass {{ .RootPassword }} to the container https://github.com/openstack-k8s-operators/mariadb-operator/commit/d882ed426e3164bd7c0cdd68a78c1dbdd35c161d
We no longer pass {{ .DBMaxTimeout }} to the container
The value of both is therefore <no value>
The value of timeout should be set to DB_MAX_TIMEOUT https://github.com/openstack-k8s-operators/mariadb-operator/blob/d882ed426e3164bd7c0cdd68a78c1dbdd35c161d/pkg/dbinit.go#L39

@dprince  as I see many changes comes from you here, would you be able to comment regarding the above? Do we want to bootstrap the DB with root as we currently do and get rid of custom mariadb_init.sh ?

@olliewalsh Sorry for the delay, I have few notes that I wanted to discuss before we start fixing it, because I believe we need some more clarification, especially on mariadb_init.sh file. Adding @dprince as there were changes from him I believe he may know.
Wrong permissions on galera.cnf
We set incorrect permissions on galera.cnf hence the mysql user cannot read the file.
Bind address is set to <IP_ADDRESS>
This only works because the mysqld service is listening on * by default. Once we change the permissions, we would break mysqld.
So we are changing it to * which is both IPv4 and IPv6
Wrong mariadb_init.sh
Log from init contaienr and more info later:
 oc logs openstack-db-init-xnkfm -f
+ sudo -E kolla_set_configs
sudo: unable to send audit message: Operation not permitted
INFO:__main__:Loading config file at /var/lib/kolla/config_files/config.json
INFO:__main__:Validating config file
INFO:__main__:Kolla config strategy set to: COPY_ALWAYS
INFO:__main__:Copying service configuration files
INFO:__main__:Deleting /etc/my.cnf.d/galera.cnf
INFO:__main__:Copying /var/lib/config-data/galera.cnf to /etc/my.cnf.d/galera.cnf
INFO:__main__:Setting permission for /etc/my.cnf.d/galera.cnf
INFO:__main__:Copying /var/lib/config-data/mariadb_init.sh to /usr/local/bin/mariadb_init.sh
INFO:__main__:Setting permission for /usr/local/bin/mariadb_init.sh
INFO:__main__:Writing out command to execute
INFO:__main__:Setting permission for /var/lib/mysql
++ cat /run_command
+ CMD=/usr/local/bin/mariadb_init.sh
+ ARGS=
+ [[ ! -n '' ]]
+ . kolla_extend_start
++ [[ -n 0 ]]
++ mysql_install_db
Installing MariaDB/MySQL system tables in '/var/lib/mysql' ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is root@localhost, it has no password either, but
you need to be the system 'root' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo

See the MariaDB Knowledgebase at https://mariadb.com/kb

You can start the MariaDB daemon with:
cd '/usr' ; /usr/bin/mysqld_safe --datadir='/var/lib/mysql'

You can test the MariaDB daemon with mysql-test-run.pl
cd '/usr/mysql-test' ; perl mysql-test-run.pl

Please report any problems at https://mariadb.org/jira

The latest information about MariaDB is available at https://mariadb.org/.

Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

++ bootstrap_db
++ TIMEOUT=60
++ [[ ! -S /var/lib/mysql/mysql.sock ]]
++ [[ ! -S /var/run/mysqld/mysqld.sock ]]
++ [[ 60 -gt 0 ]]
++ let TIMEOUT-=1
++ sleep 1
++ mysqld_safe --wsrep-new-cluster --skip-networking --wsrep-on=OFF --pid-file=/var/lib/mysql/mariadb.pid
220823 23:34:26 mysqld_safe Logging to '/var/lib/mysql/openstack-db-init-xnkfm.err'.
220823 23:34:26 mysqld_safe Starting mariadbd daemon with databases from /var/lib/mysql
++ [[ !   PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''localhost'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''%'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysqladmin -uroot -p12345678 shutdown
++ exit 0

Looks run_command:
++ cat /run_command
+ CMD=/usr/local/bin/mariadb_init.sh
+ ARGS=
+ [[ ! -n '' ]]
+ . kolla_extend_start
++ [[ -n 0 ]]
++ mysql_install_db

And . kolla_extend_start runs mysql_install_db and bootstrap_db if KOLLA_BOOTSTRAP=TRUE
# This catches all cases of the BOOTSTRAP variable being set, including empty
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
    mysql_install_db
    bootstrap_db
    exit 0
fi

sh-5.1$ cat /usr/local/bin/kolla_extend_start
#!/bin/bash

function bootstrap_db {
    mysqld_safe --wsrep-new-cluster --skip-networking --wsrep-on=OFF --pid-file=/var/lib/mysql/mariadb.pid &
    # Wait for the mariadb server to be "Ready" before starting the security reset with a max timeout
    # NOTE(huikang): the location of mysql's socket file varies depending on the OS distributions.
    # Querying the cluster status has to be executed after the existence of mysql.sock and mariadb.pid.
    TIMEOUT=${DB_MAX_TIMEOUT:-60}
    while [[ ! -S /var/lib/mysql/mysql.sock ]] && \
          [[ ! -S /var/run/mysqld/mysqld.sock ]] || \
          [[ ! -f /var/lib/mysql/mariadb.pid ]]; do
        if [[ ${TIMEOUT} -gt 0 ]]; then
            let TIMEOUT-=1
            sleep 1
        else
            exit 1
        fi
    done

    sudo -E kolla_security_reset
    mysql -u root --password="${DB_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '${DB_ROOT_PASSWORD}' WITH GRANT OPTION;"
    mysql -u root --password="${DB_ROOT_PASSWORD}" -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${DB_ROOT_PASSWORD}' WITH GRANT OPTION;"
    mysqladmin -uroot -p"${DB_ROOT_PASSWORD}" shutdown
}

# This catches all cases of the BOOTSTRAP variable being set, including empty
if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
    mysql_install_db
    bootstrap_db
    exit 0
fi

if [[ "${!BOOTSTRAP_ARGS[@]}" ]]; then
    ARGS="${BOOTSTRAP_ARGS}"
fi

Which matches the logs from init container:
Thanks for using MariaDB!
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''localhost'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysql -u root --password=12345678 -e 'GRANT ALL PRIVILEGES ON *.* TO '\''root'\''@'\''%'\'' IDENTIFIED BY '\''12345678'\'' WITH GRANT OPTION;'
++ mysqladmin -uroot -p12345678 shutdown
++ exit 0

So we are NOT actually running /usr/local/bin/mariadb_init.sh, but the above.
If we actually run the mariadb_init.sh as intended, it would likely fail. Look at the content of mariadb_init.sh is:
$ oc rsh openstack-db-init-nrjnh
sh-5.1$ cat /usr/local/bin/mariadb_init.sh
if [ -e /var/lib/mysql/mysql ]; then exit 0; fi
#echo -e "\n[mysqld]\nwsrep_provider=none" >> /etc/my.cnf
#kolla_set_configs
#sudo -u mysql -E kolla_extend_start
mkdir -p /var/lib/mysql
mysql_install_db
mysqld_safe --skip-networking --wsrep-on=OFF &
timeout <no value> /bin/bash -c "until mysqladmin -uroot -p'$DB_ROOT_PASSWORD' ping 2>/dev/null; do sleep 1; done"
mysql -uroot -p"$DB_ROOT_PASSWORD" -e "CREATE USER 'mysql'@'localhost';"
mysql -uroot -p"<no value>" -e "REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'mysql'@'localhost';"
timeout <no value> mysqladmin -uroot -p"$DB_ROOT_PASSWORD" shutdown

Which as you can see is wrong for multiple reasons:

We no longer pass {{ .RootPassword }} to the container https://github.com/openstack-k8s-operators/mariadb-operator/commit/d882ed426e3164bd7c0cdd68a78c1dbdd35c161d
We no longer pass {{ .DBMaxTimeout }} to the container
The value of both is therefore <no value>
The value of timeout should be set to DB_MAX_TIMEOUT https://github.com/openstack-k8s-operators/mariadb-operator/blob/d882ed426e3164bd7c0cdd68a78c1dbdd35c161d/pkg/dbinit.go#L39

@dprince  as I see many changes comes from you here, would you be able to comment regarding the above? Do we want to bootstrap the DB with root as we currently do and get rid of custom mariadb_init.sh ?

/hold until the clarification about mariadb_init.sh we also need to update init_config.json respectively.

@zerodayz
Hey, nice assessment on this. The code here has been somewhat ignored recently with the expectation that we are going to rewrite the guts to use Galera instead. Whether this occurs by continuing to use this operator codebase or copying the useful bits out of this repository (perhaps the MariaDBDatabase stuff) into a new galera-operator codebase has yet to be decided. What is here is certainly not production ready (it uses a naive pod instead of a deployment) but it does functionally work.
The history of this is I think we started from a YAML that looked something like this: https://github.com/dprince/k8s-yamls/blob/master/mariadb/mariadb.yaml
And then we created an operator, and then switched it over to use Kolla bootstrap instead (which it should have done to begin with but I can't remember why I wrote mariadb_init.sh long ago).
Your analysis is sound however and I think we can ditch mariadb_init.sh entirely.
As for further work here perhaps lets sync with Damien tomorrow (his morning, your afternoon evening) and see what a best plan of action is to integrate the Galera work he has been doing. Before we can integrate that work however it does need to meet at a minimum what this operator already supports with things like full OLM support (ClusterServiceVersion correct, tested, working, etc) and the equivalent of the MariaDBDatabase CR to assist in creating the permissions for each openstack service to use the database as a shared resource.

/lgtm


Cannot define proxy server by command line on Maven Plugin

Describe the bug
One way to define an HTTP Proxy on Maven is using the JVM properties http.proxyHost, http.proxyPort and http.nonLocalHosts. This can by done by defining MAVEN_OPTS or by command line (mvn package -Dhttp.proxyHost=<IP_ADDRESS> -Dhttp.proxyPort=8080). However, the Dependency Check Maven plugin isn't respecting these properties and defines the proxy only by settings.xml, which is very difficult for me in my use case.
Version of dependency-check used
The problem occurs using version 7.2.0 of the maven plugin
Log file
https://gist.github.com/rcsilva83/fc447ce4abe8be7cdcb5d362348b3b0f
To Reproduce
Steps to reproduce the behavior:

Run mvn dependency-check:check -Dhttp.proxyHost=myproxyserver -Dhttp.proxyPort=8080 '-Dhttp.nonProxyHosts=host.internal|*.internal'

Expected behavior
Dependency Check Maven plugin uses myproxyserver:8080 as proxy server.
Additional context

Not a bug, the http.proxyHost / http.proxyPort / http.nonProxyHosts system properties are indeed not taken into account by the maven plugin, but while that may not have been what you expected it doesn't constitute a bug.
How to use proxies is documented in our gitlab pages for each of the integrations.
For the maven plugin it's configuring the proxy in the maven settings.xml and then referring to it with the mavenSettingsProxyId
mvn dependency-check:check -DmavenSettingsProxyId=<the id of the desired proxy config in your settings.xml>

The problem is that it's very difficult for me in my build pipeline to configure the proxy on settings.xml. Additionally, it opens a door to download dependencies from the Internet instead of our corporate Maven repository, which is very undesirable in my organization. I need the proxy just for the dependency-check:check goal, so I can use enable all the analyzers.
Is there is any reason why the system properties are not taken into account?


FINERACT-1561: Enhancements for APIs

Description
In attention for the ticket Apache Fineract JIRA ticket FINERACT-1561.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

Included in other PR https://github.com/apache/fineract/pull/2279


Register

@JuliaRegistrator register()

Error while trying to register: Register Failed
@AlexisRenchon, it looks like you are not a publicly listed member/owner in the parent organization (CUPofTEAproject).
If you are a member/owner, you will need to change your membership to public. See GitHub Help

@JuliaRegistrator register()

Registration pull request created: JuliaRegistries/General/65669
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.1.0 -m "<description of version>" 1efebda294fac4f156aa44a119bdb2baeecab086
git push origin v0.1.0


Added windows example

I had the misfortune of having to run vegeta on windows this morning :)
I went crazy a bunch of time just to understand what I was doing wrong so I thought it might be helpful to include an example around..

Hm, I wouldn't add Windows examples in there as Vegeta is mainly targeted at Unix systems. Windows users ought to know Powershell and understand that the examples need to be adapted.
But hey: http://techcrunch.com/2016/03/30/be-very-afraid-hell-has-frozen-over-bash-is-coming-to-windows-10/
:D

alright!

Sorry! :/

no worries, it happens! It took me 2 mins to open a PR and, if it was worth
it, it would have been nice to include it.  Beauty of OS!
Cheers! :)
On Wed, Apr 20, 2016 at 10:51 PM, Tomás Senart<EMAIL_ADDRESS>wrote:

Sorry! :/
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/tsenart/vegeta/pull/176#issuecomment-212556548

--
Nadalin Alessandro
http://www.linkedin.com/in/alessandronadalin
www.odino.org
www.twitter.com/odino


Fix rotations to 0

Currently all rotations default to south which is -90 degrees and is silly.
At least if my farseer port is to be used this needs to be fixed for 0 for anything that's an AABB for collision to work properly (all new entities as well as existing ones).
There's a command called fixrotations but the that A) only goes to south and B) doesn't catch every entity.

Requires https://github.com/space-wizards/RobustToolbox/pull/1551.

This is done.


[2.0.0 NuGet released version] Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "00"

With version 1.1.1 this statement works fine
context.myTable.Where(w => w.myDateField == new DateTime(0001, 01, 01)).ToList()
after upgrade my solution to version 2.0.0, the same statement throw an Exception

Npgsql.PostgresException (0x80004005): 42601: syntax error at or near "00" at Npgsql.NpgsqlConnector.d__148.MoveNext()

so I need to declare "outside" my minimum datetime variable and then use it into my query, this way all works
DateTime minDT = new DateTime(0001, 01, 01);
context.myTable.Where(w => w.myDateField == minDT).ToList()

The error doesn't occur here, can you please post a full code sample, model included, as well as the full error (and offending SQL statement) from your PostgreSQL logs?

This is the offending SQL
STATEMENT:  SELECT "r"."abcod", "r"."abdes", "r"."abnot"
	FROM "personaleabilitazioni" AS "l"
	INNER JOIN "abilitazioni" AS "r" ON "l"."uaaaco" = "r"."abcod"
	WHERE ("l"."uaaprs" = $1) AND ((("l"."uaadai" <= NOW()) AND ("l"."uaadaf" > NOW())) OR (("l"."uaadai" <= NOW()) AND ("l"."uaadaf" IS NULL OR ("l"."uaadaf" = 01/01/0001 00:00:00))))

generated from
context.Personaleabilitazioni.Join(context.Abilitazioni,l => new { k1 = l.Uaaaco }, r => new { k1 = r.Abcod }, (l,r) => new { utab = l, abil = r  }).Where(w => w.utab.Uaaprs == logged.pute.Utbper && ((w.utab.Uaadai <= DateTime.Now && w.utab.Uaadaf > DateTime.Now) || (w.utab.Uaadai <= DateTime.Now && (w.utab.Uaadaf == null || w.utab.Uaadaf == new DateTime(0001, 01, 01))))).Select(s => s.abil)

The problem is the datetime without quotes.
The problem does not occur when I move min datetime declaration outside the query, because in this case is passed as parameter; so, this SQL
SELECT "r"."abcod", "r"."abdes", "r"."abnot"
	FROM "personaleabilitazioni" AS "l"
	INNER JOIN "abilitazioni" AS "r" ON "l"."uaaaco" = "r"."abcod"
	WHERE ("l"."uaaprs" = $1) AND ((("l"."uaadai" <= NOW()) AND ("l"."uaadaf" > NOW())) OR (("l"."uaadai" <= NOW()) AND ("l"."uaadaf" IS NULL OR ("l"."uaadaf" = $2))))
2017-08-22 17:08:21 UTC [1460]: [8-1] user=postgres,db=astrimswdb,app=[unknown],client=<IP_ADDRESS> DETAIL:  parameters: $1 = '136', $2 = '0001-01-01'

is generated from this query
DateTime minDT = new DateTime(0001, 01, 01);
context.Personaleabilitazioni.Join(context.Abilitazioni,l => new { k1 = l.Uaaaco }, r => new { k1 = r.Abcod }, (l,r) => new { utab = l, abil = r  }).Where(w => w.utab.Uaaprs == logged.pute.Utbper && ((w.utab.Uaadai <= DateTime.Now && w.utab.Uaadaf > DateTime.Now) || (w.utab.Uaadai <= DateTime.Now && (w.utab.Uaadaf == null || w.utab.Uaadaf == minDT)))).Select(s => s.abil)


Optimize Network._network_coefficients_from_pipe_coefficients

This method contains a triple for loop to build the coefficient matrices. The method requires a lot of calculation time when simulating bore fields with variable fluid flow rate (causing a recalculation of the coefficients every time the mass flow changes).

Timings for PR #123
After initializing a network:
import matplotlib.pyplot as plt
import numpy as np
from scipy.constants import pi

import pygfunction as gt

# Borehole dimensions
D = 4.0             # Borehole buried depth (m)
H = 150.0           # Borehole length (m)
r_b = 0.075         # Borehole radius (m)

# Bore field geometry (rectangular array)
N_1 = 6             # Number of boreholes in the x-direction (columns)
N_2 = 4             # Number of boreholes in the y-direction (rows)
B = 7.5             # Borehole spacing, in both directions (m)

# The field is a retangular array
boreField = gt.boreholes.rectangle_field(N_1, N_2, B, B, H, D, r_b)

# Pipe dimensions
rp_out = 0.0211     # Pipe outer radius (m)
rp_in = 0.0147      # Pipe inner radius (m)
D_s = 0.052         # Shank spacing (m)
epsilon = 1.0e-6    # Pipe roughness (m)

# Pipe positions
# Single U-tube [(x_in1, y_in1), (x_out1, y_out1)]
pos = [(-D_s, 0.), (0., D_s)]

# Ground properties
k_s = 2.0           # Ground thermal conductivity (W/m.K)
T_g = 10.0          # Undisturbed ground temperature (degC)

# Grout properties
k_g = 1.0           # Grout thermal conductivity (W/m.K)

# Pipe properties
k_p = 0.4           # Pipe thermal conductivity (W/m.K)

# Fluid properties
m_flow_borehole = 0.25      # Total fluid mass flow rate per borehole (kg/s)
m_flow = m_flow_borehole*N_1*N_2    # Total fluid mass flow rate (kg/s)
# The fluid is propylene-glycol (20 %) at 20 degC
fluid = gt.media.Fluid('MPG', 20.)
cp_f = fluid.cp     # Fluid specific isobaric heat capacity (J/kg.K)
den_f = fluid.rho   # Fluid density (kg/m3)
visc_f = fluid.mu   # Fluid dynamic viscosity (kg/m.s)
k_f = fluid.k       # Fluid thermal conductivity (W/m.K)

# Single U-tube, same for all boreholes in the bore field
UTubes = []
for borehole in boreField:
	UTube = gt.pipes.SingleUTube(
		pos, rp_in, rp_out, borehole, k_s, k_g, 1e-6)
	UTubes.append(UTube)
# Build a network object from the list of UTubes
network = gt.networks.Network(boreField, UTubes, m_flow=m_flow, cp=cp_f)

Timing after changes:
>>> np.random.seed(seed=123456)
>>> m_flow_random = (np.random.rand(100) + 1.) * m_flow
>>> %timeit for m_flow_i in m_flow_random: network.get_network_inlet_temperature(1., 1., m_flow_i, cp_f, nSegments=1)
2.16 s ± 3.42 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

Timing before changes:
>>> np.random.seed(seed=123456)
>>> m_flow_random = (np.random.rand(100) + 1.) * m_flow
>>> %timeit for m_flow_i in m_flow_random: network.get_network_inlet_temperature(1., 1., m_flow_i, cp_f, nSegments=1)
5.07 s ± 18.4 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)


dead link in documentation

would like to start again working with ros2 unfortunately on that page
https://index.ros.org/doc/ros2/Concepts/Logging/
that link is dead for the rclpy examples
https://github.com/ros2/examples/blob/master/rclpy/services/minimal_client/client.py
also there is not mentioned any LTS version, can it be expected with next Ubuntu LTS version ?

Thanks for filing an issue! Dashing is our first LTS release. Release info can be found here https://discourse.ros.org/t/ros-2-dashing-diademata-released/9365


ASE: ported FPGA property related unit tests

These tests were mostly ported from opae-c/test_props_c.cpp with several additional tests added.


Feature/plausible events

Context
We want to collect more data in Plausible so we can make informed decisions. Details in Jira ticket: https://technologyprogramme.atlassian.net/browse/REDBOX-674
Changes proposed in this pull request

Collect the following events in Plausible ("Chat-message-route" already existed, the rest are new):

"Chat-message-route" and "User-specified-route" can be clicked into to find details on the routes taken

Get Plausible dev site working (mostly settings changes in Plausible, not much has changed in terms of code)

Fix issue where "Chat-message-route events" were being sent twice per message

Guidance to review
If you would like to see it working, manually and temporarily add Plausible to the page. Then see the Fetch/XHR events in the network tab. It has been tested though, as the above screenshot shows, so this isn't necessarily unless you'd like to.
Things to check

[ ] I have added any new ENV vars in all deployed environments
[ ] I have tested any code added or changed
[ ] I have run integration tests

Just a minor comment from me but looks good to me


Verifying successful execution using Regex

I would like a feature that allows me to check whether a benchmark has been successfully executed. It could be as simple as checking whether a regex pattern is present in the output. If the pattern isn't, then discard the result.

I'm not quite sure what it is you want. Couldn't you achieve this with grep on the benchmark run?


Increase compatibility with Leaflet API

Adding a custom icon in Leaflet: https://leafletjs.com/examples/custom-icons/#creating-an-icon
This pull request leaves the old functionality as is, but also handles some of the parameters from the Leaflet version if an object is passed in.

merge


large free space on mobile devices

You mean the problem is that the navigation is not aligned to the right? We would be happy to accept a pull request if you like to send one


gitignore IDE/OS-specific files

Describe your change in plain English.
Ignoring these files is handy for developer experience!

Jetbrains IDE configs
VS Code configs
and Mac OS's DS_Store

Related to https://github.com/rubyforgood/pet-rescue/pull/59


feat: gh action to verify artifacts checksums

Sometimes somebody just forgets to rebuild artifacts. There is a new github action to verify checksums

nice.


Issue compiling StandaloneLinux64

When trying to compile for that platform, the build fails saying that the toolchain may not be installed(it is). It works normally when manually building using unity's default build window

@peq42 would you be able to give me some additional info and I'll try and track it down? Main things being:

Unity Version
Render pipeline being used
Platform you're running Unity on for doing the build

I've run into that issue in some Unity versions when building for Android due to an issue with some of the pipelines so it may be similar.

Unity version: 2022.1.20f1
Render pipeline: URP
Running on Windows 10, but I had the android platform selected for the editor
I ran into a similar issue when building for android(if I didnt have the android platform selected, it wouldnt build) but I made a fix and will make a pull request for it

I've tried a few times with a couple of different projects (UTP ones as as well as the base repo) but I haven't been able to reproduce either of the issues so far. It manages to build in each case for all of the platforms regardless of the starting platform. Would it be possible to paste in the full text of the error message? That might give me some leads.

I get the following 4 errors thrown when trying to build for linux through the script(through unity's default window, it works just fine):
Error 1:
error: Could not set up a toolchain for Architecture x64. Make sure you have the right build tools installed for il2cpp builds. Details:
UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
BuildTools:BuildIndividualTarget (UnityEditor.BuildTarget) (at Assets/Plugins/editor/BuildTools.cs:176)
BuildTools/d__6:MoveNext () (at Assets/Plugins/editor/BuildTools.cs:116)
Unity.EditorCoroutines.Editor.EditorCoroutine/YieldProcessor:MoveNext (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine:ProcessIEnumeratorRecursive (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine:MoveNext () (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
Error 2:
Internal build system error. BuildProgram exited with code -2146233088.
error: Could not set up a toolchain for Architecture x64. Make sure you have the right build tools installed for il2cpp builds. Details:
Could not find a clang compiler at /usr/bin/clang.exe
Unity.IL2CPP.Bee.BuildLogic.ToolchainNotFoundException: Could not find a clang compiler at /usr/bin/clang.exe
at Unity.IL2CPP.Bee.BuildLogic.Linux.LinuxBuildLogic.UserAvailableToolchainFor(Architecture architecture, NPath toolChainPath, NPath sysRootPath)
at PlayerBuildProgramLibrary.PlayerBuildProgramBase.GetIl2CppToolChain(PlatformBuildLogic platform, Architecture architecture, NPath toolChainPath, NPath sysrootPath)
at PlayerBuildProgramLibrary.PlayerBuildProgramBase.SetupIl2CppBuild()
at PlayerBuildProgramLibrary.PlayerBuildProgramBase.SetupPlayerBuild()
at LinuxPlayerBuildProgram.SetupPlayerBuild()
at PlayerBuildProgramLibrary.PlayerBuildProgramBase.RunBuildProgram()
at PlayerBuildProgramTypeWrapper.Run(String[] args)
at Program.Main(String[] args)
UnityEditor.BuildPipeline:BuildPlayer (UnityEditor.BuildPlayerOptions)
BuildTools:BuildIndividualTarget (UnityEditor.BuildTarget) (at Assets/Plugins/editor/BuildTools.cs:176)
BuildTools/d__6:MoveNext () (at Assets/Plugins/editor/BuildTools.cs:116)
Unity.EditorCoroutines.Editor.EditorCoroutine/YieldProcessor:MoveNext (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine:ProcessIEnumeratorRecursive (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine:MoveNext () (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()
Error 3:
BuildFailedException: Incremental Player build failed!
UnityEditor.Modules.BeeBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args) (at <686f40992bed4a6ebc158b4beb1e91db>:0)
UnityEditor.Modules.DefaultBuildPostprocessor.PostProcess (UnityEditor.Modules.BuildPostProcessArgs args, UnityEditor.BuildProperties& outProperties) (at <686f40992bed4a6ebc158b4beb1e91db>:0)
UnityEditor.PostprocessBuildPlayer.Postprocess (UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target, System.Int32 subtarget, System.String installPath, System.String companyName, System.String productName, System.Int32 width, System.Int32 height, UnityEditor.BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.Build.Reporting.BuildReport report) (at <686f40992bed4a6ebc158b4beb1e91db>:0)
UnityEditor.BuildPipeline:BuildPlayer(BuildPlayerOptions)
BuildTools:BuildIndividualTarget(BuildTarget) (at Assets/Plugins/editor/BuildTools.cs:176)
d__6:MoveNext() (at Assets/Plugins/editor/BuildTools.cs:116)
Unity.EditorCoroutines.Editor.YieldProcessor:MoveNext(IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine:ProcessIEnumeratorRecursive(IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine:MoveNext() (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions()
Error 4:
Build for StandaloneLinux64 failed
UnityEngine.Debug:LogError (object)
BuildTools:BuildIndividualTarget (UnityEditor.BuildTarget) (at Assets/Plugins/editor/BuildTools.cs:185)
BuildTools/d__6:MoveNext () (at Assets/Plugins/editor/BuildTools.cs:116)
Unity.EditorCoroutines.Editor.EditorCoroutine/YieldProcessor:MoveNext (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:80)
Unity.EditorCoroutines.Editor.EditorCoroutine:ProcessIEnumeratorRecursive (System.Collections.IEnumerator) (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:134)
Unity.EditorCoroutines.Editor.EditorCoroutine:MoveNext () (at Library/PackageCache/com.unity.editorcoroutines@1.0.0/Editor/EditorCoroutine.cs:115)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

also, my buildtools.cs looks like this(I've modified it slightly):
`using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using Unity.EditorCoroutines.Editor;
public class BuildTools : EditorWindow
{
[MenuItem("Tools/Build Tools")]
public static void OnShowTools()
{
EditorWindow.GetWindow();
}
private BuildTargetGroup GetTargetGroupForTarget(BuildTarget target) => target switch
{
    BuildTarget.Android => BuildTargetGroup.Android,
    BuildTarget.StandaloneWindows64 => BuildTargetGroup.Standalone,
    BuildTarget.WebGL => BuildTargetGroup.WebGL,
    BuildTarget.StandaloneLinux64 => BuildTargetGroup.Standalone,
    _ => BuildTargetGroup.Unknown
};

Dictionary<BuildTarget, bool> TargetsToBuild = new Dictionary<BuildTarget, bool>();
List<BuildTarget> AvailableTargets = new List<BuildTarget>();

private void OnEnable()
{
    AvailableTargets.Clear();
    var buildTargets = System.Enum.GetValues(typeof(BuildTarget));
    foreach(var buildTargetValue in buildTargets)
    {
        BuildTarget target = (BuildTarget)buildTargetValue;

        // skip if unsupported
        if (!BuildPipeline.IsBuildTargetSupported(GetTargetGroupForTarget(target), target))
            continue;

        AvailableTargets.Add(target);

        // add the target if not in the build list
        if (!TargetsToBuild.ContainsKey(target))
            TargetsToBuild[target] = false;
    }

    // check if any targets have gone away
    if (TargetsToBuild.Count > AvailableTargets.Count)
    {
        // build the list of removed targets
        List<BuildTarget> targetsToRemove = new List<BuildTarget>();
        foreach(var target in TargetsToBuild.Keys)
        {
            if (!AvailableTargets.Contains(target))
                targetsToRemove.Add(target);
        }

        // cleanup the removed targets
        foreach(var target in targetsToRemove)
            TargetsToBuild.Remove(target);
    }
}

private void OnGUI()
{
    GUILayout.Label("Platforms to Build", EditorStyles.boldLabel);

    // display the build targets
    int numEnabled = 0;
    foreach(var target in AvailableTargets)
    {
        TargetsToBuild[target] = EditorGUILayout.Toggle(target.ToString(), TargetsToBuild[target]);

        if (TargetsToBuild[target])
            numEnabled++;
    }

    if (numEnabled > 0)
    {
        // attempt to build?
        string prompt = numEnabled == 1 ? "Build 1 Platform" : $"Build {numEnabled} Platforms";
        if (GUILayout.Button(prompt))
        {
            List<BuildTarget> selectedTargets = new List<BuildTarget>();
            foreach (var target in AvailableTargets)
            {
                if (TargetsToBuild[target])
                    selectedTargets.Add(target);
            }

            EditorCoroutineUtility.StartCoroutine(PerformBuild(selectedTargets), this);
        }
    }
}

IEnumerator PerformBuild(List<BuildTarget> targetsToBuild)
{
    // show the progress display
    int buildAllProgressID = Progress.Start("Build All", "Building all selected platforms", Progress.Options.Sticky);
    Progress.ShowDetails();
    yield return new EditorWaitForSeconds(1f);

    BuildTarget originalTarget = EditorUserBuildSettings.activeBuildTarget;

    // build each target
    for (int targetIndex = 0; targetIndex < targetsToBuild.Count; ++targetIndex)
    {
        var buildTarget = targetsToBuild[targetIndex];

        Progress.Report(buildAllProgressID, targetIndex + 1, targetsToBuild.Count);
        int buildTaskProgressID = Progress.Start($"Build {buildTarget.ToString()}", null, Progress.Options.Sticky, buildAllProgressID);
        yield return new EditorWaitForSeconds(1f);

        // perform the build
        if (!BuildIndividualTarget(buildTarget))
        {
            Progress.Finish(buildTaskProgressID, Progress.Status.Failed);
            Progress.Finish(buildAllProgressID, Progress.Status.Failed);

            if (EditorUserBuildSettings.activeBuildTarget != originalTarget)
                EditorUserBuildSettings.SwitchActiveBuildTargetAsync(GetTargetGroupForTarget(originalTarget), originalTarget);

            yield break;
        }

        Progress.Finish(buildTaskProgressID, Progress.Status.Succeeded);
        yield return new EditorWaitForSeconds(1f);
    }

    Progress.Finish(buildAllProgressID, Progress.Status.Succeeded);

    if (EditorUserBuildSettings.activeBuildTarget != originalTarget)
        EditorUserBuildSettings.SwitchActiveBuildTargetAsync(GetTargetGroupForTarget(originalTarget), originalTarget);

    yield return null;
}

bool BuildIndividualTarget(BuildTarget target)
{
    BuildPlayerOptions options = new BuildPlayerOptions();

    // get the list of scenes
    List<string> scenes = new List<string>();
    foreach (var scene in EditorBuildSettings.scenes)
        scenes.Add(scene.path);

    // configure the build
    options.scenes = scenes.ToArray();
    options.target = target;
    options.targetGroup = GetTargetGroupForTarget(target);

    // set the location path name
    EditorUserBuildSettings.SwitchActiveBuildTarget(GetTargetGroupForTarget(target), target);
    if (target == BuildTarget.Android)
    {

        string apkName = PlayerSettings.productName + ".apk";
        options.locationPathName = System.IO.Path.Combine("Builds", target.ToString(), apkName);
    }else if (target == BuildTarget.StandaloneWindows64)
    {
        options.locationPathName = System.IO.Path.Combine("Builds", target.ToString(), PlayerSettings.productName+".exe");
    }else if (target == BuildTarget.StandaloneLinux64)
    {
        options.locationPathName = System.IO.Path.Combine("Builds", target.ToString(), PlayerSettings.productName+".x86_64");
    }
    else
        options.locationPathName = System.IO.Path.Combine("Builds", target.ToString(), PlayerSettings.productName);

    if (BuildPipeline.BuildCanBeAppended(target, options.locationPathName) == CanAppendBuild.Yes)
        options.options = BuildOptions.AcceptExternalModificationsToPlayer;
    else
        options.options = BuildOptions.None;

    // start the build
    BuildReport report = BuildPipeline.BuildPlayer(options);

    // was the build successful?
    if (report.summary.result == BuildResult.Succeeded)
    {
        Debug.Log($"Build for {target.ToString()} completed in {report.summary.totalTime.Seconds} seconds");
        return true;
    }

    Debug.LogError($"Build for {target.ToString()} failed");

    return false;
}

}
`

It looks like the root cause may be the same issue as the one being described here.
The gist seems to be that while BuildPlayer does switch platform, it doesn't run the logic to setup the sysroot modules (needed for the build). And manually calling the function to initialise them isn't an option because it will kill editor coroutines. That tallies with what I've been able to reproduce in testing.
I'll have a try with other approaches and see if I can find a solution but it'll likely need a fix from Unity for it.

Knowing unity this might never be fixed... that post is over a year old

Hopefully not but potentially. I have a possible workaround I want to try with using C# tasks instead of editor coroutines but it'll depend on how Unity resets things from a scripting point of view, they may also not persist. But if I can get that to work then it may be able to be worked around.


Nothing is working

Nothing is working through the homekit app but works on smart life app with no issues....please share how to fix!!!

Happened to me today. All I did was unlink the app from the tuya cloud website, and re-link it again by scanning the QR code shown on tuya cloud with the tuya app. (provide read and write permission to devices in the tuya cloud prompt after scanning the QR code)
Reload the integration in Homebridge and voilà, everything should be working as before.
If you are still facing issues, go to home bridge settings Remove All Cached Accessories and try the above step hopefully you should get it working too.

Experiencing same issue since a few days ago, still unresolved

I thought it was something I did, but I haven't changed anything in the config files or on Tuya iot. All devices in Homekit non operational.

Happened to me today. All I did was unlink the app from the tuya cloud website, and re-link it again by scanning the QR code shown on tuya cloud with the tuya app. (provide read and write permission to devices in the tuya cloud prompt after scanning the QR code)
Reload the integration in Homebridge and voilà, everything should be working as before.
If you are still facing issues, go to home bridge settings Remove All Cached Accessories and try the above step hopefully you should get it working too.

Happened to me. Re-linked and started working again. Hope this doesn't happen again.

I have done nothing, but in morning all devices are working through homekit 👍

ok, it's finally working for me with the standard plug-in - I ended up changing the iOS app password, the IOT platform password and the plugin password were all identical

I have reinstalled the plugin, done all steps (unlink from project, tried with a new project, complete new Installation of the Homebridge UI etc... , but I still dont see Devices in Homebridge. In SmartLife App everything is fine. Is there something new with subscriptions in IoT Platform?

I switch to this plugin now "Tuya Web"..... works great and easier to setup. Just username and password from your Tuya or smart life app

I switch to this plugin now "Tuya Web"..... works great and easier to setup. Just username and password from your Tuya or smart life app

Thank you for your feedback. I tried this and run into the next error :( My ceiling lights are not compatible with this Web Plugin. https://github.com/milo526/homebridge-tuya-web/issues/175

Today i registered a new Tuya IoT Account, made a new SmartLife Account and used the same settings like in my old Accounts. Now it works like it should.

Hi, please try @0x5e/homebridge-tuya-platform fork, If still not working, please provide some logs.

I see it try to get the devices, but debug shows nothing after that, and no devices get added.

We need API logs to see which step the plugin goes wrong. No devices has many possibilities, login failure, api subscribe expired, app account not linked, token expired...

Try going to IoT Core under Cloud services on iot.tuya.com and check to see if your trial has expired. There's a little button to extend the trial.


perf(resolve): increase resolve speed via resolve result cache

Description
refs https://github.com/vitejs/vite/issues/12363
I found that there are tons of duplicate bare package import requests sent to resolve.ts. So I guess we can optimize this via a Map.
I tested the reproduction mentioned in https://github.com/vitejs/vite/issues/6030 in my local macos, after this PR, the speed of resolving each module will increase about 7-10 times and the realpath's self time will decrease about 100 times.
After PR:

Before PR:

Additional context

What is the purpose of this pull request?

[ ] Bug fix
[ ] New Feature
[ ] Documentation update
[x] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the PR Title Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[x] Ideally, include relevant tests that fail without this PR but pass with it.

This is really interesting @sun0day! And it speaks volumes of how much we can win by optimizing the resolution of bare imports.
My first reaction to the cache at this level is that it may introduce new failure points. Something we need to do, for example, is to clean the cache when a new deps optimization is committed, as this invalidates the resolved optimized URLs. I'm trying to think if something else could outdated the resolution, and it may actually end up being safe if we are careful.
Another idea to avoid this caching could be to do the caching at the realpath level. See:

https://github.com/vitejs/vite/pull/6412

Maybe before moving forward with this PR, we should check @bluwy's idea of replacing fs.realpath.native with fs.realpath that already has caching inplace.

Yeah, I've thought about cache fs.realpath too. And I will test its performance later.
But if we can cache resolve calls at a high level(e.g resolve.ts), we are caching not only fs.realpath calculate result but also some extra function calls. What's more, we can maintain only one cache layer in this way, maybe we don't need the packageCache cache anymore and don't have to care about nodejs API (e,g fs.realpath ) bottom details.

Yes, I agree. It is a compelling place for a cache. We have other caches already in place for bare imports, for example there is a cache for shouldExternalizeForSsr for an id. And it currently only depends on the resolved config. So it is expected that the resolution is kept stable by user plugins.
We are also caching the resolution of optimized deps (through the optimizer), so we are already halfway there. I'm interested in seeing what others think here.
I think we can review this idea and if we find it is safe, try it out during the next minor beta (we should avoid merging bigger changes now so we can release 4.2).

The issue is that with all the extension logic going on, any new file could invalidate the resolution. Maybe we could add some time to leave checks (like 5-10s) so we get the speed up on dev-server startup where probably new files aren't created but we don't get stale cache during HMR.

Even if a time-based cache sounds safer I think in this case we should only proceed if we can properly invalidate the cache when needed. If it is safe, then we don't need the time check. If it isn't safe, then we better avoid this optimization.
Do you have a good example of a new file invalidating the resolution of bare imports? I think it would be fine as far as we respect the current limitations. For example, the dev server watcher is ignoring '**/node_modules/**' so for any modifications we do inside node_modules, we need to restart the server manually. The users are already used to this because of deps optimization. If something changes in the config, the server is restarted and the cache will be clean.
@sun0day one thing I see is that the importer is missing in the cache key. If added, it may prevent this optimization from having such a big impact. In that case, maybe caches could be added deeper into the resolve algorithm.

@sun0day one thing I see is that the importer is missing in the cache key. If added, it may prevent this optimization from having such a big impact. In that case, maybe caches could be added deeper into the resolve algorithm.

Yeah. I also test the performance with importer too. The realpath's self-time will only decrease about 10 times. But I think there is still a lot of room for optimization even using importer as part of the cache key. The first thing we need to do is to determine the params on which the bare-import's resolution result depends.

Using importer as part of the cache key or not reminds me that with all the test cases passed in this PR, there are two possibilities：

if the current PR without importer as part of the cache key is safe, then the resolve logic downstream may have duplicate logic
if the current PR is unsafe, I think vite may miss some test cases

I tested both the performances in themain branch and mine  after merging your great work @patak-dev @bluwy and I found the performance is good enough in main and mine is less help.
This pr is somewhat experimental and maybe unsafe, so feel free to close it.

Thanks for testing this again. A hunch I had is also that the JSON.stringify is slower compared to just running the resolve, so maybe that explains the difference. I'll let patak check this before deciding to close 🙂

Doubling on the thanks to you @sun0day, this PR was important in pointing us in the right direction and was one of the ideas that ended up finally pushing the current optimization sprint. Let's close it as suggested. We can revisit later if caching at a different level could help in the future.


Fixed Issue #168 Mismatch frequency y axis

added y axis for mismatch frequency (Issue #168)
minor frontend fixes

Can one of the admins verify this patch?

thanks @dorisjlee!!


A way to use the original Repo

It would be great if we can use the modified Repo of ex_audit as a separate module that calls the original Repo, so it will not completely replace the Repo, something like VersionedRepo. If parts of the app are potentially versioned (for instance a CMS), and other parts are not (the user-facing app), as in our case, I'd like to not have the performance impact of versioning on the user-facing app when I know versioning is not involved there.

You can simply make 2 repo modules, one with use ExAudit.Repo and the other with use Ecto.Repo.
However, beware that each repo has their own connection pool

Yeah it's not as simple as that, as they have their own connection pool, configuration and migrations etc.

your secondary repo doesn't have to have migrations, and the config to both repos can be the same (even coming from the same variable in config.exs).
I agree, a seperate connection pool might be a problem.
You can alternatively call ExAudit.Schema.insert, etc like this:
ExAudit.Schema.insert(MyRepo, MyRepo.get_dynamic_repo(), my_changeset, [])

ExAudit's wrapper around Ecto.Repo does nothing else really.

I'll consider defining a few important functions like insert, update, delete, history and rollback in the ExAudit module so it can be used without modifying the repo.

Yes that would be great. I agree it's definitely a solution to have a separate Repo, but there are trade-offs and it would be great to have an explicit API to ExAudit that doesn't involve taking over the Repo module.


Update README and other root docs

Update README.md:

Remove development setup and replace contributing section (with OpenZeppelin Contracts)
Remove reference to using sudo to install as not recommended
Remove reference to add and push as only need to do create

Update CONTRIBUTING.md:

Replace npm with yarn

Delete HACKING.md and TERMINOLOGY.md
Fixes #1272

Merged! Thanks for the contribution, @abcoathup!


Coop

@psfpro Hi Sergey,
I have just seen your project (interop-php). Good work!
Some time ago another developer and I have started a project with the same goal (and with a similiar name). I thought, maybe you would like to cooperate with us or join the project with your repositories.
Greetings
Christian
PS: Sorry for opening an issue, but I found no other way to contact you.

Hi Christian,
In this project I described some of the interfaces. This is my thinking about the interaction of components. Not sure how we could cooperate. Do you have any suggestions?

I'm aifraid that literally "cooperating" is not possible. I think it might be confusing for users - two organizations with similiar names (interop-php, php-interop). So it would be the best if we use only one organization. This way, we can get more potential users, too. What do you think?
PHP Interop project has also a website set up. We (@rkrx and me) use a naming schema like this php-xyz-interop. I think this is better if someone forks the repository.


Fix linux build (hack)

We need to import this commit :
https://github.com/kubernetes/kubernetes/commit/49201f6923b2a7ba6694ef1ed8db6f9a24e7eb2e
To get the linux build compiled.
Currently the glide dependency is a mess and we can't get that commit in openshift/kubernetes
without some awfull circular dependencies :sadpanda:
For a quick fix we import the patch directly on the sources.
Proper solution would be :
    - Cleanup the depencies.
    - Work with upstream on an openshift origin client like for kube.
    - Restart to a minimal and sane glide.yaml file letting glide do its magic.

The jenkins error doesn't make sense at all as compiling on my linux box works :

it seems that we have a problem with the build getting the wrong commit id, it supposed to test 92eb2c09 but in the jenkins log it says 3e470f6d :

I tried to replicate the same thing within the same docker image and it compiles fine, so I am guessing it's something to do with the Jenkinsfile :

yes it is a problem with the jenkisnfile / shared library https://github.com/fabric8io/fabric8-pipeline-library/blob/master/vars/goMake.groovy#L29

I'll fix it now.

[merge]


input and output dimensions varying while using all in one block.

Hi,
Thank you for sharing this repo. I am experiencing an issue while using all in one block. I have relatively small batch of data. My input goes into the block as (6,16). but my output from the block is (2,6). I am not sure why the output dimensions are varying. I tried debugging it myself but I am not quite figure it out.
Can you please help me with this?
Thank you in advance.

Hi, this is not the intended behavior. Could you please post a complete example that reproduces this issue so we can look into it? Thanks.


Capturing video in portrait orientation (for ex.: 1080x1920)

[x] I have verified there are no duplicate active or recent bugs, questions, or requests
[x] I have verified that I am using the latest version of Material Camera.
[x] I have given my issue a non-generic title.

Information

Material Camera version: 0.4.1
Device OS version: All
Device Manufacturer: All
Device Name: All

Reproduction Steps

Start MaterialCamera with .videoPreferredAspect(16f / 9f) and .videoPreferredHeight(1080).
Capture video holding phone vertically.
See result.

Expected Result
Not rotated portrait oriented 1080x1920 video. Setting aspect 9f/16f and/or height 1920 doesn't do anything. FFmpegAndroid autorotates video to portrait when I use it (without specifying any rotatation option), but it takes much time.
Actual Result
Rotated video '-90 degrees'.

As the name of the method suggests, it gives a preferred aspect ratio. This library is only permitted to use aspect ratios and frame sizes that the device reports it supports; it will use the closest it can get to your preferred aspect ratio.


select result different in OLS4

from Slack:
I noticed a discrepancy between the number of records being returned in the old API as compared to the new one.
This is the old endpoint we are using on our legacy systems:
https://www.ebi.ac.uk/ols/api/select?type=class&ontology=edam&sort=label%20desc&row[…]00&q=data&allChildrenOf=http://edamontology.org/operation_0004
and this a the same query string, but using ols4 instead of 3:
https://www.ebi.ac.uk/ols4/api/select?type=class&ontology=edam&sort=label%20desc&ro[…]00&q=data&allChildrenOf=http://edamontology.org/operation_0004
Notice that the older API returns 36 records, where as the newer one returns 27

There also seem to be fields missing in the default OLS4 response, e.g.
OLS3:
{"id":"edam:class:http://edamontology.org/operation_0227","iri":"http://edamontology.org/operation_0227","short_form":"operation_0227","obo_id":"operation:0227","label":"Indexing","ontology_name":"edam","ontology_prefix":"EDAM","type":"class"},

OLS4
{"iri":"http://edamontology.org/operation_0227","id":"edam:class:http://edamontology.org/operation_0227","label":"Indexing","type":"class"},

We are already getting the expected results from OLS4 API. Field discrepancies are either fixed or alread raised in a separate issue.