New Microsoft Root CAs - All 3 should be trusted or just DigiCert Global Root G2?

[Enter feedback here]
Although the article mentions that Microsoft may use one of 3 Root CAs listed below, the rest of the article only mentions that DigiCert Global Root G2 is widely used but does not mention the other 2.   Will the other 2 need to be manually added or will they be part of Windows Update (They dont currently seem to be as the 2 Microsoft ones do not appear in Windows 10 OSes after recent Windows Update.   Will they need to be manually installed?
Do we only need to ensure DigiCert Global Root G2 is trusted, or will we need to trust the other 2 as well?

DigiCert Global Root G2
df3c24f9bfd666761b268073fe06d1cc8d4f82a4

Microsoft RSA Root Certificate Authority 2017
73a5e64a3bff8316ff0edccc618a906e4eae4d74

Microsoft ECC Root Certificate Authority 2017
999a64c37ff47d9fab95f14769891460eec4c3c5

[DigiCert Global Root G2](https://cacerts.digicert.com/DigiCertGlobalRootG2.crt) 	df3c24f9bfd666761b268073fe06d1cc8d4f82a4
[Microsoft RSA Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20RSA%20Root%20Certificate%20Authority%202017.crt) 	73a5e64a3bff8316ff0edccc618a906e4eae4d74
[Microsoft ECC Root Certificate Authority 2017](https://www.microsoft.com/pkiops/certs/Microsoft%20ECC%20Root%20Certificate%20Authority%202017.crt) 	999a64c37ff47d9fab95f14769891460eec4c3c5

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

ID: c23df2b9-0e0e-1a54-2f42-effb9387459a
Version Independent ID: c23df2b9-0e0e-1a54-2f42-effb9387459a
Content: Office TLS Certificate Changes - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/encryption-office-365-tls-certificates-changes.md
Service: o365-seccomp
GitHub Login: @pshelton-skype
Microsoft Alias: pshelton

@GauravES . detailed investigation is needed in this regard.

Hi, @GauravES. The new Intermediate CAs are "cross-signed" and should be considered valid if any of the three Root CA certificates are trusted. We would recommend installing all three Root CAs for completeness, but expect the "DigiCert Global Root G2" Root CA to be pre-installed in a number of OSes and device types, thus creating a trusted chain without additional work.

Thank you for the clarification; it would be best if Microsoft could make the other two certs part of a future Windows Update.  (DigiCert Global Root G2 can already be found on all machines and servers we have checked).


Upgrade/V10

Upgrade ros schedule panel to support Grafana v10.

Closing this one, as v11 is already merged which also includes these changes.


Handle reactive checks returning running

This PR fixes a bug where a reactively-checked child returning running would override the r_fallback or r_sequence's memory of any other running child.
This leads to that other running child not being halted, and so restarting from halfway through if re-entered later on.
The chosen new behaviour of only allowing a single running child and halting any other children was chosen because:

It avoids all the edge cases involved with having two running nodes inside the same r_sequence (effectively turning r_sequence into a parallel node)
It's the same default behaviour as BehaviourTree.CPP, so hopefully it's intuitive for anyone coming from that library

Thank you for the great pr

Thanks for the quick approval.
Would you mind please publishing V0.4.1?


This command is not working.

helm install ./helm-.tgz -f values.yaml --generate-name
is this is due to the Kubernetes version?

what is the output from helm ?

I ran into the same issue, this should be:
helm install ./appmonitoring-{version}.tgz -f values.yaml --generate-name
It's referencing the Java Application Insights module that was downloaded.


Allow starting a level.

Allow starting a level. It's always the same level with random account and random instanceId's.

I guess we can do this. The point is to be compatible with client programs that try to start a level before acting?

Yeah, I have a rust lib that keeps info about the current level in order to make things like placing an order easier.


[Market Page] - Average Price

Describe the bug
My order here will be filled at 31,000, there's no average price since it will fill only a single order at TOB. Also, how is average price calculated? We should calculate it based on the orders that will be filled based on my price/quantity which seems not to be the case here.
Screenshots

This is correct - currently it has 0.5% slippage applied so the average price is 31,000 * 0.995 = 30,876.
We will change this and remove slippage from average price calculation (both spot and derivatives). For spot the user will be able to see worst case where slippage is applied if indicated.


Consider using stripe-sync-engine

I learned that supabase is developing https://github.com/supabase/stripe-sync-engine. It seems that this could replace the code in ./utils/useDatabase.js, is that correct?
This comment in that file might be relevant:
https://github.com/vercel/nextjs-subscription-payments/blob/857941d8d7d2160b2232d4090550c74e94064ac7/utils/useDatabase.js#L5-L7
Since this is a supabase integration, it might make sense to use that sync engine.

@throwaway34241 https://github.com/supabase/stripe-sync-engine is build with fastify and needs to be deployed separately. It's mainly meant to sync stripe data to your Postgres DB so you can run complex analytic queries on it at a later point in time. So bit of a different use case. Does that make sense?

Closing this out as resolved 🙏


Have an option to turn off keyboard controls

This is a great project, but please include an option to just use default speed settings and not have keyboard input (i.e., J/K/L, Space, and arrow keys). I and others use space bar and arrows among other keys to wake our Macs from sleep or screensaver, and having these reserved by the screensaver prevents them from being used to authenticate and resume a session. A simple system preference setting to enable or disable these would be fantastic. Thanks!

I absolutely agree. I use the spacebar to wake my mac usually and i keep getting flustered and confused when the screensaver just stops instead of waking up my mac

Hi @tkessler45 and @connormlewis,
I forget when but I'm pretty sure @JohnCoates fixed this in one of the betas. Try the most recent beta and let us know if it's working for you.

Waited months, no reply, so closing.


fix: improve the style of footer links for smaller devices

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


feat(frontend): Provide token count in Token logo

Motivation
For PR #3028, to group tokens, we want to show the number of tokens grouped in a certain token card.
So, we refactor to have a prop that defines the sub-logo of TokenLogo, defaulting to undefined.
Note: we are checking for a number greater than 0 (and not greater than 1), because supposedly this feature will be used only for groups of 2 or more elements. However, we want to leave the choice of creating a group with 1 element if needed/required.

[OISY-69]


permission denied for table http_request_queue as an authenticated user

Bug report
Describe the bug
After pg_net got upgraded, it throws a permission denied for table http_request_queue when trying to make a request as an authenticated user.
To Reproduce
Upgrade to the latest version and attempt to make a http request using the authenticated role.
Expected behavior
Assumption is that any supabase extension works out of the box with the role and auth setup in the database. If it is expected behaviour, it should be documented somewhere.

The issue is fixed by applying this https://github.com/supabase/supabase/issues/4883#issuecomment-1073047443
Nevertheless, the expectation is that pg_net, when enabled on supabase, automatically applies the correct permissions.

We still get support tickets related to this issue. It seems that some tool resets all the postgres role privileges, which we rely on
https://github.com/supabase/pg_net/blob/4c1ca73646ad60eedacae3feb4cd8595749bcb67/sql/pg_net.sql#L365-L366
The solution should be to instead grant all privileges to PUBLIC, which is something pg_cron also does:
https://github.com/citusdata/pg_cron/blob/main/pg_cron.sql#L27


HIDE MODE: make the bot hide in a virus

and leave when the player is close

@loboere   explain... whats the meaning of a bot hiding inside virus?

would avoid being eaten

When I have many bots running they eat each other anyway so many are too big to hide under viruses

great idea!

Yes, another great idea and useful for player.
Or maybe not.. because player need bots come faster to grow.

the bot should just stay inside the virus as long as the player is not detected ??

Lol davidmann4 like a god, he could make everything possible.


fix: integration tests; use degit in code instead of via shell; update links in README

Click to see changes

when throw CLIError:

when use this.exit(1):

current proposal with warning and process.exit:

:tada: This PR is included in version 2.0.0-beta.6 :tada:
The release is available on:

GitHub release
npm package (@beta dist-tag)

Your semantic-release bot :package::rocket:


Turn on Great Room's lights when TV is switched on

A bit tricky now as that zone has attribute 'disableTriggeringFromMotionSensor=True' as it shared the motion sensor with the kitchen. As such, can't use the TV as a motion sensor. By default, when the motion sensor is triggered, it turns on the kitchen light.

Addressed in c710306fc218488cce4ef4e0f2638707cb92dd35.


Set package relationship while releasing

Maybe I missed it in the documentation, but when I do a release with the keygen cli I have to manually set this field:

I make the release with the following commands:
          export KEYGEN_ACCOUNT_ID=...
          export KEYGEN_PRODUCT_ID=...
          export KEYGEN_PRODUCT_TOKEN=...

          keygen new --version ${RELEASE_VERSION}
          keygen upload ./${WHEEL_NAME} --release ${RELEASE_VERSION}
          keygen publish --release ${RELEASE_VERSION}

Is there a method for setting the package relationship with the CLI that I am missing? I would like to fully automate my release workflow, but right now I still need to go set that relationship in the dashboard.
From the docs it looks like I could probably set the relationship with the API, but I would prefer to stick to just the CLI if I can.

You can use the --package flag when creating a new release and uploading artifacts.

Thanks, I will update my workflow

np!


Dynamic fields in views

Currently, if I define some fields in my JSONAPI.View.fields/0 callback that are not part of the data passed when rendering, then I have to define one public function per such field.
This is alright, but it limits flexibility when we need something akin to dynamic fields. For example, imagine that for convenience I keep my data structure as
%{
  id: 1,
  attrs: %{foo: true, bar: false, baz: nil}
}

With the current capabilities, I can do this:
def fields do
  [:id, :foo, :bar, :baz]
end

def foo(%{attrs: %{foo: foo}}, _conn), do: foo
def bar(%{attrs: %{bar: bar}}, _conn), do: bar
def baz(%{attrs: %{baz: baz}}, _conn), do: baz

It works, but imagine what this can become if you want to do something similar with many more fields. Metaprogramming can come in handy if you generate the public functions programmatically, but it leads to code that's a bit harder to understand (especially for newcomers).
Possible Solution
A possible solution could be a c:JSONAPI.View.get_field/3 callback that takes the field name, the data, and the Plug connection. I would reimplement the example above as:
def fields do
  [:id, :foo, :bar, :baz]
end

def get_field(field, %{attrs: attrs}, _conn) do
  Map.fetch!(attrs, field)
end

Did I missing an already-existing way to do this? 🙃 What are you folks' thoughts on it in case I didn't?

Seems reasonable. I imagine it would be beneficial to still allow individually defined functions named after fields to take precedence over get_field/3.
So for the following
def fields do
  [:id, :foo, :bar, :baz]
end

def foo(attrs, conn), do: ...

def get_field(field, attrs, conn), do: ...

The framework would be expected to call foo/2 for the foo attribute but call get_field/3 for all other attributes.

Yes, exactly. I'll work on a PR for this 🙃

@mattpolzin PR open https://github.com/beam-community/jsonapi/pull/273!


WIP: Upgrade to cowboy 2.6

Replaces #1021
TODO:

[x] fix dialyzer errors
[x] fix webhooks test handler
[x] fix vmq_ssl_SUITE - something changed in ranch_ssl (Failed to start Ranch listener {{127,0,0,1},1888} in ranch_ssl:listen([{cacerts,'...'},{key,'...'},{cert,'...'},{ip,{127,0,0,1}},{port,1888}]) for reason no_cert (no certificate provided; see cert, certfile, sni_fun or sni_hosts options))
[x] test http api
[x] test prometheus endpoint
[x] test status page
[x] test health check endpoint
[x] rebase on top of master

@codeadict as far as I can tell everything is working now. Thanks a ton for all the work you put into this :)
@dergraf it's ready for review

Heh i didn't do much, the code looks pretty clean to me, i'll give it another pass later today. I'd be interested how this upgrade affects/improve concurrency, i read some article or chat (can't recall where) that claims they got better performance and resource utilization with newest ranch versions.


Empty classes being added cause a crash

if you add a whitespace too much in your classes you want added, you'll get a crash
https://github.com/czeckd/angular-svg-icon/blob/1790114e5f1b0173e0741212d3fb2d5e350b3822/projects/angular-svg-icon/src/lib/svg-icon.component.ts#L269
Should check for any empty classes

@icorne : I'll update this issue when I get a release built with this fix. Thank you!

Released in v13.0.0.


Eager load constraints do not work for MorphTo relationships

Basically because the MorphTo creates a new model instance as shown here rather than using $this->query, eager load constraints do not work at all. The same applies if you're doing something like
return $this->morphTo('parent')->where(...);

I wasn't able to find a way to circumvent this - if there is no way, I suggest adding a __call to the MorphTo class that throws an exception immediately, letting the developer at least know right away.
One possible solution might be to do $this->query->setModel(..) rather than getting a new query builder instance by constructing a new model, but that would be tricky to make work with softdeletes.
Here's some code that illustrates the problem.
$log = [];
DB::listen(function($sql, $bindings) use(&$log) {
	if (strpos($sql, 'select') !== false) $log[] = [$sql, $bindings];
});

class ChildModel extends Eloquent
{
	public $timestamps = false;
	protected $table = 'child';
	public function mtParent()
	{
		return $this->morphTo('parent');
	}
	public function btParent()
	{
		return $this->belongsTo('ParentModel', 'parent_id');
	}
}

class ParentModel extends Eloquent
{
	public $timestamps = false;
	protected $softDelete = true;
	protected $table = 'parent';
	public function children()
	{
		return $this->morphMany('ChildModel', 'parent');
	}
}

Schema::dropIfExists('parent');
Schema::dropIfExists('child');

Schema::create('parent', function($t) {
	$t->increments('id');
	$t->string('name');
	$t->softDeletes();
});

Schema::create('child', function($t) {
	$t->string('name');
	$t->morphs('parent');
	$t->increments('id');
});

Eloquent::unguard();

$p1 = ParentModel::create(['name' => 'Parent 1']);
$p1->children()->save(new ChildModel(['name' => 'Child 1']));
$p2 = ParentModel::create(['name' => 'Parent 2']);
$p2->children()->save(new ChildModel(['name' => 'Child 2']));

$p1->delete();

$query = ChildModel::query()
	// ->with(['btParent' => function($q) {
	->with(['mtParent' => function($q) {
		$q->withTrashed();
	}]);

var_dump($query->get()->toArray());
var_dump($log);

Is there a fix for this coming with Laravel 5?

Was this fixed? I’ve just ran into this limitation.

Sorry to revitalise an old issue, but was this resolved in Laravel 5? I'm currently running up against this issue still in Laravel 5.1

Still wasn't fixed, was it? Having this issue with Laravel 5.3

Still not work here too. Laravel 5.3. How to do this? Help us @taylorotwell.

Whoops. I found it. So the problem in my case, instead resulted in "counselingRequestable" key, it resulted in "counseling_requestable".

Why is this closed if it's still an issue? Came here looking for a solution.
I'm trying to optimise a large query by eager loading as much as possible but I'm snagged on a morphTo relation.

Mmm don't mind me... looks like it was some old code that was interfering


The timing of onresized() is triggered when browser resizing will ingores changes that isn't written in c3.js

Hello,
I've been using C3.js for a while and it works like a charm, huge thanks for all the contributors.
However, I'm currently working on a chart that requires responsive x-tick rotation. Which means, in order to  show every x-tick without breaking into multiple lines, the x-tick will have to rotate in certain degree based on the size of each x-tick and the space that is given.
Therefore, I've decided to use D3.js to both calculate the angle and rotate the x-tick in onresized() callback function. But I've noticed that when the "auto-resize" mode is on,  $$.api.flush() will always runs 100ms AFTER oneresize()/oneresized() which will erase all those manipulations that I wrote in oneresized().
So, I've currently adding a config.onRedrawn.call($$) within $$.resizeTimeout just AFTER the $$.api.flush();
        if (config.resize_auto) {
            $$.resizeFunction.add(function () {
                if ($$.resizeTimeout !== undefined) {
                    window.clearTimeout($$.resizeTimeout);
                }
                $$.resizeTimeout = window.setTimeout(function () {
                    delete $$.resizeTimeout;
                    $$.api.flush();
                    config.onRedrawn.call($$);
                }, 100);
            });
        }

then I can use onRedraw: function(){...} to manipulate SVG after browser being resized.
am I getting this right?

My example is based on responsive x axis timeseries.
onresized() works fine for me.
stackoverflow
jsfiddle


add keymapping

Are you still working on this?

@Razboinicul I'm intending to but if you wanna work on it instead feel free.

I might


Skill - ArdentSacrifice

Sacrifice 10 HP to restore 10 HP to an allied adjacent unit.

conflicts exists, also better to reduce text index consumption. The text index is not enough

Remove MSG_MenuSkill_ArdentSacrifice_Target and MSG_MenuSkill_ArdentSacrifice_FRtext

Remove MSG_MenuSkill_ArdentSacrifice_Target and MSG_MenuSkill_ArdentSacrifice_FRtext

I'm resistant to removing MSG_MenuSkill_ArdentSacrifice_Target. It helps to know what the skill is going to do when you select a unit.
Fair enough on MSG_MenuSkill_ArdentSacrifice_FRtext. In retrospect, it doesn't seem like it'll ever be seen.

conflicts exists, also better to reduce text index consumption. The text index is not enough

Is the text index set per skill category or for everything? In either case, it'll probably need to be expanded then, because there's 10 more menu skills to go. https://docs.google.com/spreadsheets/d/1zd99uevX953OZQiA_oJU9R3hqFao5mrW78wMHKPco-U/edit?gid=681794002#gid=681794002

It helps to know what the skill is going to do when you select a unit.

well since the msg index has go over more than 0x1000， it is more important to save the index

There has been one common rtext msg and I think no need to add an unique rtext.

It helps to know what the skill is going to do when you select a unit.

well since the msg index has go over more than 0x1000， it is more important to save the index

I won't remove the subtitle, but I'm open to changing the text to a pre-existing message if storage is at a premium.


Sovrin repo signature expired -> Container builds broken

W: GPG error: https://repo.sovrin.org/sdk/deb bionic InRelease: The following signatures were invalid: EXPKEYSIG E8BDBE36C8C97811 Sovrin-Repo-Master (Master key for repo.sovring.org<EMAIL_ADDRESS>E: The repository 'https://repo.sovrin.org/sdk/deb bionic InRelease' is not signed.

-> reported in indy-node rocket chat

See also https://github.com/hyperledger/indy-node/issues/1675 ... whats the status here?

WadeBarnes 2:16 PM:
The issues with the expired GPG signatures on
repo.sovrin.org have been resolved.

https://github.com/IDunion/indy-node-container/releases/tag/v0.2.1


[backport] Fix byte buffer handling to support PyPy

Backport of #3225

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit 4b966e2676ced9869e35f3f888aeb92afb75a22b, target branch v7) failed with status FAILURE.

Jenkins, test this please

Jenkins CI test (for commit 4b966e2676ced9869e35f3f888aeb92afb75a22b, target branch v7) succeeded!

@kmaehashi seems like the test passed without doing anything 😂

What happened 😂

pfnCI, test this please.

Jenkins CI test (for commit 4b966e2676ced9869e35f3f888aeb92afb75a22b, target branch v7) succeeded!


Le donjon de Naheulbeuk 2.8.1

Few css, HTML and spelling Fix

I dont know why the heck all my previous commits are here again, they all have been already merged in roll20/master...even tought i've merged roll/master into my fork...
Only the two last comits are new > a914640 and ac234e6
After nearly one year of work, i didn't have this issues, did you change something in the process @clevett  ? :D

Greetings,
I did some research. It has to do with the commits being squashed and merged into master now. Your git history is different from master and the pull request is wanting to update the Roll20 repo's history. Since this PR will be squashed and merged again it will continue to happen.
If you check the Files Changed you should only see your new changes so this process is unsightly but not an issue. Using branches in Git and pushing directly from a branch to the Roll20 master can be a solution. By pushing from a branch you're not changing your fork's master commit history. Then you can sync your fork with Roll20 master it will have the same history as the Roll20 master.

Cassie


Add doc about private registries

Issue #, if available:
Description of changes:
Add documentation about how to use a private registry when creating clusters
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: mdsgabriel
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

docs/OWNERS [mdsgabriel]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Also, I think @vivek-koppuru is working on way to have docs for unreleased featured without publishing them directly to our docs site. We might want to wait until that before merging this PR?

Also, I think @vivek-koppuru is working on way to have docs for unreleased featured without publishing them directly to our docs site. We might want to wait until that before merging this PR?

Yes, I would say try to hold off on doc changes to main until we have that in place.


Preset: remove "requirePaddingNewLinesBeforeLineComments" rule from word...

...press preset
Fixes #1187

Coverage remained the same at 99.09% when pulling 37e51dc12d4ceccb07089bdd244e27364d8bedfa on hzoo:patch-3 into c668ff1be0b1cfa058866048944bad3df7ff7cbc on jscs-dev:master.

So it seems this rule should be enabled, but rule itself should be fixed - https://github.com/jscs-dev/node-jscs/issues/1194

Nevertheless, as always, thank you :-)


removing remove.me file

just to get rid of trash files

seems to be right move. Don't you need this file anymore?

nop

end of the test. commit from other fork


unsupported gpu architecture 'compute_86'. Unable to build for rtx 3090, cuda 11.0

I'm getting an error when trying to build for RTX 3090 with CUDA11.0:
python setup.py develop
setup.py:37: UserWarning: Couldn't find cython installed, so this will try to install it. If the installation fails we recommend to first instal it.
  warnings.warn("Couldn't find cython installed, so this will try to install it. "
Warning: passing language='c++' to cythonize() is deprecated. Instead, put "# distutils: language=c++" in your .pyx or .pxd file(s)
running develop
running egg_info
writing kaolin.egg-info/PKG-INFO
writing dependency_links to kaolin.egg-info/dependency_links.txt
writing requirements to kaolin.egg-info/requires.txt
writing top-level names to kaolin.egg-info/top_level.txt
reading manifest file 'kaolin.egg-info/SOURCES.txt'
writing manifest file 'kaolin.egg-info/SOURCES.txt'
running build_ext
building 'kaolin.ops.packed_sum_cuda' extension
Emitting ninja build file /home/shrek/work/ref-repos/kaolin/build/temp.linux-x86_64-3.8/build.ninja...
Compiling objects...
Allowing ninja to set a default number of workers... (overridable by setting the environment variable MAX_JOBS=N)
[1/1] /usr/local/cuda-11.0/bin/nvcc -DWITH_CUDA -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/TH -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/shrek/miniconda3/envs/cleargrasp/include/python3.8 -c -c /home/shrek/work/ref-repos/kaolin/kaolin/csrc/cuda/ops/packed_sum_cuda_kernel.cu -o /home/shrek/work/ref-repos/kaolin/build/temp.linux-x86_64-3.8/kaolin/csrc/cuda/ops/packed_sum_cuda_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=packed_sum_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=sm_86 -std=c++14
FAILED: /home/shrek/work/ref-repos/kaolin/build/temp.linux-x86_64-3.8/kaolin/csrc/cuda/ops/packed_sum_cuda_kernel.o
/usr/local/cuda-11.0/bin/nvcc -DWITH_CUDA -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/torch/csrc/api/include -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/TH -I/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/include/THC -I/usr/local/cuda-11.0/include -I/home/shrek/miniconda3/envs/cleargrasp/include/python3.8 -c -c /home/shrek/work/ref-repos/kaolin/kaolin/csrc/cuda/ops/packed_sum_cuda_kernel.cu -o /home/shrek/work/ref-repos/kaolin/build/temp.linux-x86_64-3.8/kaolin/csrc/cuda/ops/packed_sum_cuda_kernel.o -D__CUDA_NO_HALF_OPERATORS__ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ --expt-relaxed-constexpr --compiler-options ''"'"'-fPIC'"'"'' -O3 -DTORCH_API_INCLUDE_EXTENSION_H '-DPYBIND11_COMPILER_TYPE="_gcc"' '-DPYBIND11_STDLIB="_libstdcpp"' '-DPYBIND11_BUILD_ABI="_cxxabi1011"' -DTORCH_EXTENSION_NAME=packed_sum_cuda -D_GLIBCXX_USE_CXX11_ABI=0 -gencode=arch=compute_86,code=sm_86 -std=c++14
nvcc fatal   : Unsupported gpu architecture 'compute_86'
ninja: build stopped: subcommand failed.
Traceback (most recent call last):
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1533, in _run_ninja_build
    subprocess.run(
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/subprocess.py", line 512, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['ninja', '-v']' returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "setup.py", line 256, in <module>
    setup(
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/setuptools/command/develop.py", line 34, in run
    self.install_for_development()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/setuptools/command/develop.py", line 136, in install_for_development
    self.run_command('build_ext')
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 79, in run
    _build_ext.run(self)
  File "/home/shrek/work/ref-repos/kaolin/.eggs/Cython-0.29.20-py3.8-linux-x86_64.egg/Cython/Distutils/old_build_ext.py", line 186, in run
    _build_ext.build_ext.run(self)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/command/build_ext.py", line 340, in run
    self.build_extensions()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 670, in build_extensions
    build_ext.build_extensions(self)
  File "/home/shrek/work/ref-repos/kaolin/.eggs/Cython-0.29.20-py3.8-linux-x86_64.egg/Cython/Distutils/old_build_ext.py", line 195, in build_extensions
    _build_ext.build_ext.build_extensions(self)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/command/build_ext.py", line 449, in build_extensions
    self._build_extensions_serial()
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/command/build_ext.py", line 474, in _build_extensions_serial
    self.build_extension(ext)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 196, in build_extension
    _build_ext.build_extension(self, ext)
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/distutils/command/build_ext.py", line 528, in build_extension
    objects = self.compiler.compile(sources,
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 491, in unix_wrap_ninja_compile
    _write_ninja_file_and_compile_objects(
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1250, in _write_ninja_file_and_compile_objects
    _run_ninja_build(
  File "/home/shrek/miniconda3/envs/cleargrasp/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1555, in _run_ninja_build
    raise RuntimeError(message) from e
RuntimeError: Error compiling objects for extension

Same issue here with 3090 and CUDA 11.2. Have you found a solution?

We tested Kaolin against 3090 RTX, this is most likely a driver or a PATH issue: https://forums.developer.nvidia.com/t/nvcc-fatal-unsupported-gpu-architecture-compute-86/161424/4

Thank you! It turns out that I installed the conda package cudatoolkit-dev ==10.1 in the designated conda venv, which shadowed global PATH to CUDA 11.
I reinstalled CUDA 11.3, removed cudatoolkit-dev, then installed PyTorch with:
pip install torch==1.7.0+cu110 torchvision==0.8.1+cu110 torchaudio===0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

Now everything compiles and runs fine.


Seeing top delegates

Can we make a section to see top delegates from the wallet? (assuming that’s in the works)
When you register a delegate the account address in the left menu doesn’t change to it nor does icon so you need to quit and restart the app for changes to take an effect
Can we get a list of all the delegates so you can just mark each one rather than add them 1 by 1 via add delegate
Currently no way to see registered delegates to vote for.

Can we get a list of all the delegates so you can just mark each one rather than add them 1 by 1 via add delegate
Currently no way to see registered delegates to vote for.

there is a "open delegate monitor" button to help so far, but would be better to have it integrated

I'm a big fan of the unix philosophy is software engineering
https://en.wikipedia.org/wiki/Unix_philosophy#Do_One_Thing_and_Do_It_Well
Especially "Do_One_Thing_and_Do_It_Well", ark-desktop should be a good wallet and ark-explorer should be a good explorer.

@Doweig +1


Dart Analysis Server never stops Analyzing with Android Studio 3.2.1

Hi there,
I'm not sure if anyone else has had this issue but as soon as I upgraded to Android Studio 3.2.1, my Dart Analysis Server has never stopped analyzing and is taking up 100% of my RAM. Please see the below screenshot:

I am wondering if there is a way to fix this?

Looks like #23155

Merging with #23155


No flag to set structured logging output, e.g. JSON?

Describe the bug:
Structured logging was addressed in https://github.com/jetstack/cert-manager/pull/1409 however there does not appear to be a command-line flag to select the log format, e.g. JSON. That, or it is not documented?
Expected behaviour:
Structured logging can be enabled in the pod spec.
Steps to reproduce the bug:
n/a
Anything else we need to know?:
Environment details::

Kubernetes version (e.g. v1.10.2): v1.14.8-gke.33
Cloud-provider/provisioner (e.g. GKE, kops AWS, etc): GKE
cert-manager version (e.g. v0.4.0): 0.13.0
Install method (e.g. helm or static manifests): Static manifest

/kind bug

This is correct, it's not something we currently support. It'd be a great feature addition however 😄
/remove-kind bug
/kind feature
/help-wanted

/remove-lifecycle stale

Is there any progress ? It would be super usefull to have structured logging output, for such a crucial infrastructure component like cert-manager.
Use case:
Tools like Splunk can autoindex json, there is no problem with stdout multiline splitting and its much more better/clean solution than unstructured random chunks of log.
Thanks

@lukasmrtvy we are looking into improving logs in the next release with a strong audit about our current logs and the log levels

@lukasmrtvy we are looking into improving logs in the next release with a strong audit about our current logs and the log levels

did log format include here too?
any progress?) can we help you to implement this feature?

This mostly depends on a lack of support for JSON in https://github.com/kubernetes/klog
If there is a way we can add this either upstream or with something pluggable into klog in our part of the code that would be welcome

@meyskens isnt it possible since https://github.com/kubernetes/klog/releases/tag/v2.0.0 ?

@lukasmrtvy i was reading something on k8s 1.19 and indeed... that should be possible now... i haven't tested it on cert-manager yet due it not being in the klog release notes i didn't notice it before

Seems we still need to do some tricks to support this, mainly those done in  https://github.com/kubernetes/component-base/blob/master/logs/options.go
PRs are welcome for this :wink:

/notstale

/remove-lifecycle stale

There is an example of how this should work; basically passing the --logging-format flag into klog set to either json or text.

With Kubernetes v1.23 structured logging is now beta, is this something that could be addressed?
/remove-lifecycle stale

I'm not sure how the Kubernetes v1.23 structured logging is related to how the cert-manager logs its own logs.
I guess this is not a high prio ticket? For me and my team this would be really nice.

I'm not sure how the Kubernetes v1.23 structured logging is related to how the cert-manager logs its own logs.

cert-manager use the Kubernetes logging libraries so it's directly related (see discussion above).
I think the changes in kubernetes-sigs/metrics-server#968 would be similar to what's required here. @meyskens are you still looking for a PR?

shameless +1 on this

/remove-lifecycle stale

+1

/remove-lifecycle stale

This should be doable using the k8s/component-base library as mentioned in https://github.com/cert-manager/cert-manager/issues/2605#issuecomment-1061819030
I've a prototype here that almost works:
go run cmd/controller/main.go --logging-format=json --v=5
...
{"ts":1676455391293.8354,"caller":"controller/controller.go:174","msg":"cert-manager/certificates-key-manager \"msg\"=\"finished processing work item\" \"key\"=\"default/foo\"\n","v":4}
{"ts":1676455391356.3704,"caller":"controller/controller.go:174","msg":"cert-manager/certificates-request-manager \"msg\"=\"finished processing work item\" \"key\"=\"default/foo\"\n","v":4}
{"ts":1676455391356.4277,"caller":"controller/controller.go:154","msg":"cert-manager/certificates-request-manager \"msg\"=\"syncing item\" \"key\"=\"default/foo\"\n","v":4}
{"ts":1676455391356.456,"caller":"controller/controller.go:174","msg":"cert-manager/certificates-request-manager \"msg\"=\"finished processing work item\" \"key\"=\"default/foo\"\n","v":4}
{"ts":1676455392250.5952,"caller":"controller/controller.go:154","msg":"cert-manager/certificates-key-manager \"msg\"=\"syncing item\" \"key\"=\"default/foo\"\n","v":4}
{"ts":1676455392250.6697,"caller":"keymanager/keymanager_controller.go:167","msg":"cert-manager/certificates-key-manager \"msg\"=\"Cleaning up Secret resources and unsetting nextPrivateKeySecretName as issuance is no longer in progress\" \"key\"=\"default/foo\"\n","v":4}
...

This needs more work to make it properly work with our custom logger here https://github.com/cert-manager/cert-manager/tree/master/pkg/logs. I think we want to keep using this custom logs wrapper till contextual logging graduates to beta in klog:

figure out what happens with logs flushing/initialization which seems to be duplicated in component-base logger and our logger (?)
check if any logs need cleaning up/changes to fit what standard kube logs should look like (i.e things described here https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-logging#proposal)
test that this new logger setup mechanism does not introduce performance penalty
my prototype adds logging related feature gates to our --feature-gates flag- probably we don't want to display this to users?

If anyone is interested in picking this work up, would be happy to help them to get it merged.
Cautiously adding this to next release milestone as I think this should not be too much work.
/milestone 1.12

/milestone v1.12

Thanks for looking at this! @malovme
/assign @malovme

Note that only cert-manager members, repo collaborators and people who have commented on this issue/PR can be assigned.

I guess you might need to comment with /assign @malovme for this to work :)

/assign @malovme

Note that only cert-manager members, repo collaborators and people who have commented on this issue/PR can be assigned.

I guess you might need to comment with /assign @malovme for this to work :)

yep, that worked

I'm really excited about this feature! Do you know when version 1.12 will be released? Thanks a lot!

JSON logs are now available in 1.12.0-beta.1! Please try it out! To enable them, add the flag --logging-format=json.
For example, if you are using the Helm chart:
helm repo add --force-update jetstack https://charts.jetstack.io
helm upgrade --install cert-manager jetstack/cert-manager --version v1.12.0-beta.1 --namespace cert-manager \
  --set extraArgs='{--logging-format=json}' \
  --set webhook.extraArgs='{--logging-format=json}' \
  --set cainjector.extraArgs='{--logging-format=json}'

Please let us know of any feedback! 🙏


Webpack 5 invalid asset - missing name

{ type: 'hidden assets', filteredChildren: 1, size: 231805 },

validation is failing: https://github.com/relative-ci/bundle-stats/blob/108bddb66346493982f06cfc8061ea334ad43352/packages/webpack-plugin/src/webpack-plugin.js#L50
https://github.com/relative-ci/example-bundle-stats-webpack-config

fixed by https://github.com/relative-ci/bundle-stats/pull/1151

fixed by https://github.com/relative-ci/bundle-stats/pull/1151


Refactoring of Query#initialize_flavor

At least a step in a better direction.  Mostly amounts to improving the names and transparency of the many various old obscure initialize_model_do_xxx methods.
Also, fixed image_with_observations_xxx, location_with_observations_xxx and name_with_observations_xxx to accept all the standard filter parameters defined in observation_base.  This allows any customized observation searches to be coerced successfully into image, location and name queries (the "Show Images", "Show Locations" and "Show Names" links on the observation index results page).
Lastly, I tweaked Query#coercable? so that it actually performs the coercion instead of guessing.  If it catches any exceptions, it assumes the query is not coercable. There is presumably some loss of performance, but it's not called frequently, so I believe it is safe.  And it will be much more robust.

Current state: passes all tests, but haven't checked rubocop.  Also, need to write many new tests for the new parameters to the xxx_with_observations_xxx queries.

Coverage increased (+0.009%) to 91.851% when pulling 121e8101f663401c1ec42af1b3aa7380a90ff484 on pellaea:query-coercion into 66c7af5684270a0764ba8088952d46f191f8ad21 on MushroomObserver:master.

Wow! That's a ton of stuff.
How can I help?

Can you check if this is going to conflict badly with what you've already
written?
I'm in the middle of fixing all the ABC and method length offenses now.
Later will add tests for new parameters.
I think that's all I need to do for my part(?)  If so, then you can start
incorporating it immediately.  When I'm done with my part just merge any
changes I've made into yours.
If there are more changes to Query required I can make those, just to help
avoid conflicts.
On Thu, Jun 13, 2019 at 9:01 AM Joseph D. Cohen<EMAIL_ADDRESS>wrote:

Wow! That's a ton of stuff.
How can I help?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/491?email_source=notifications&email_token=AAYTNNOBGIKDNUZ2K7JZ4GDP2JAJBA5CNFSM4HXV3VMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXTTRMI#issuecomment-501692593,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTNNKTQQTSS7IG6ZJM5Y3P2JAJBANCNFSM4HXV3VMA
.

Hey Joe, finished with rubocop fixes.  Surprisingly, only two methods where
I had to turn off a cop.  All tests passing again.
I say it's all yours: merge it and run with it.  I'll write tests later.
Really not feeling the joy for writing tests just now.
(I pushed my changes out to my repo, I think they'll be incorporated in the
PR automatically.  Just make sure, if you wouldn't mind, that
app/classes/queries/modules/google_search.rb exists.  If not, then that's
not my latest...)
On Thu, Jun 13, 2019 at 9:41 AM Jason Hollinger<EMAIL_ADDRESS>wrote:

Can you check if this is going to conflict badly with what you've already
written?
I'm in the middle of fixing all the ABC and method length offenses now.
Later will add tests for new parameters.
I think that's all I need to do for my part(?)  If so, then you can start
incorporating it immediately.  When I'm done with my part just merge any
changes I've made into yours.
If there are more changes to Query required I can make those, just to help
avoid conflicts.
On Thu, Jun 13, 2019 at 9:01 AM Joseph D. Cohen<EMAIL_ADDRESS>wrote:

Wow! That's a ton of stuff.
How can I help?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/491?email_source=notifications&email_token=AAYTNNOBGIKDNUZ2K7JZ4GDP2JAJBA5CNFSM4HXV3VMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXTTRMI#issuecomment-501692593,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTNNKTQQTSS7IG6ZJM5Y3P2JAJBANCNFSM4HXV3VMA
.

Oh good, it's all here.  Github often doesn't work for me, just assumed I wouldn't be able to check myself...

I will get to work on this shortly. (jJust got home from dentist.)
I can't imagine that this will have any effect on my work (other than getting some now-failing tests to pass). All I'm doing is:
For Observation and Name pattern searches,
If there's a Pattern which lacks a variable, then pattern = synonym_of:"variable" (and save the new pattern to the session).

Okay, thanks, Joe.  I'll get back to this tonight hopefully.
On Thu, Jun 13, 2019 at 12:59 PM Joseph D. Cohen<EMAIL_ADDRESS>wrote:

I will get to work on this shortly. (jJust got home from dentist.)
I can't imagine that this will have any effect on my work (other than
getting some now-failing tests to pass). All I'm doing is:
For Observation and Name pattern searches,
If there's a Pattern which lacks a variable, then pattern = synonym_of:"
variable" (and save the new pattern to the session).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/491?email_source=notifications&email_token=AAYTNNJS4AADKBN6KX6XHY3P2J4H3A5CNFSM4HXV3VMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXULIYI#issuecomment-501789793,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTNNMDLB2PGSCAI63BF4DP2J4H3ANCNFSM4HXV3VMA
.

No conflicts between this branch and what I've done.

I will need to fix one test in my branch
Probably for a separate story: It would be nice if some of the page titles of pattern searches were more expressive.  E.g., If I do a pattern search for synonym_of:"Boletus edulis", the page title of the results is:

Observation Index.

That's the way it's always been. But It would be nice if were instead something like:

Observations of Synonyms of Boletus edulis Bull.

That's what you get by going to https://mushroomobserver.org/name/show_name/344, then clicking "Other Taxa, this name proposed"

Oooh, that would be fun.  Turning a random set of parameters into something
sort of Englishy for the title. :)
I've also thought for a while it would be neat to turn all the various
indexes in MO into pattern searches.  That is, if you click on "Your
Observations", for example, it would change the search bar to "user:252".
If you clicked on observations for a given name, it would change the search
bar to "synonyms_of:Blah" or whatever is appropriate.  And so on.  It would
probably really help people learn how to use the more powerful aspects of
the search bar.
On Thu, Jun 13, 2019 at 4:17 PM Joseph D. Cohen<EMAIL_ADDRESS>wrote:

No conflicts between this branch and what I've done.

I will need to fix one test in my branch
Probably for a separate story: It would be nice if some of the page
titles of pattern searches were more expressive. E.g., If I do a pattern
search for synonym_of:"Boletus edulis", the page title of the results is:

Observation Index.
That's the way it's always been. But It would be nice if were instead
something like:
Observations of Synonyms of Boletus edulis Bull.
That's what you get by going to
https://mushroomobserver.org/name/show_name/344, then clicking "Other
Taxa, this name proposed"
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/491?email_source=notifications&email_token=AAYTNNOOLNEXJI3LFMPEJK3P2KTMRA5CNFSM4HXV3VMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXU5B6I#issuecomment-501862649,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTNNKMVFR35SH4BQP4BJ3P2KTMRANCNFSM4HXV3VMA
.

And the url would be re-usable.

What kind of tests did you have in mind? E.g.:

Merely whether it's redirected to the right page, sort of like

    params = { search: { pattern: 'synonym_of:"56"', type: :name } }
    get_with_dump(:pattern_search, params)
    assert_redirected_to(controller: :name, action: :name_search,
                         pattern: 'synonym_of:"56"')

The search finds the correct objects?
Something else?

Maybe I can help.

I wanted to add tests for all the new parameters for
images/locations/names_with_observations_xxx queries.  I started last
night, but got side-tracked when I discovered my backup drive appears to no
longer mount.  But no error messages, so I wasn't able to learn anything
googling it.  Just says it can't find an ext4 filesystem on it any more.
Eek!  That is sort of critical, so it took precedence.  Bad news is there
is no longer any way to create a full backup from scratch, since half the
original images are in object store, and I don't want MO to pay for the
bandwidth to download them all.  Oh well.  It was always extremely
difficult for me to keep up, anyway, because my personal bandwidth is so
poor.  Probably better if it is more clear that I do not have a backup
any more.  That was more or less the case anyway before, but it would come
as a surprise if we ever actually needed it, now it's official, and we know
not to trust it.
-Jason
On Fri, Jun 14, 2019 at 3:34 PM Joseph D. Cohen<EMAIL_ADDRESS>wrote:

What kind of tests did you have in mind? E.g.:

Merely whether it's redirected to the right page, sort of like

params = { search: { pattern: 'synonym_of:"56"', type: :name } }
get_with_dump(:pattern_search, params)
assert_redirected_to(controller: :name, action: :name_search,
                     pattern: 'synonym_of:"56"')

The search finds the correct objects?
Something else?

Maybe I can help.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/MushroomObserver/mushroom-observer/pull/491?email_source=notifications&email_token=AAYTNNLAU6AVSSBPQG36KC3P2PXEVA5CNFSM4HXV3VMKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODXXYMMA#issuecomment-502236720,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAYTNNMYGYT2B5GKFC3SGYLP2PXEVANCNFSM4HXV3VMA
.

This PR has been combined into PR #494