Table processing different for first child of conbody and subsequent children

Two structurally identical tables that are both children of conbody are processed differently. Both tables have colspec=2 and no colwidth specified. The toolkit injects an automatic colwidth of 50% in the first table and nothing in the second table. Reversing the order of the tables shows that it's always the first table that has the colwidth injected and not subsequent tables.
The behavior of the second table is preferable, because autofit is a better option when localizing the doc into multiple languages.
I have attached a test file and output to a public GIST: https://gist.github.com/tyrin/50768345d5a037f53802

@tyrin: Which DITA-OT version are you using?

DITA-OT1.8.4_standard_bin
From: Eero Helenius <notifications<EMAIL_ADDRESS>Reply-To: dita-ot/dita-ot <reply<EMAIL_ADDRESS>Date: Tuesday, September 22, 2015 at 4:13 AM
To: dita-ot/dita-ot <dita-ot<EMAIL_ADDRESS>Cc: Tyrin Avery <tavery<EMAIL_ADDRESS>Subject: Re: [dita-ot] Table processing different for first child of conbody and subsequent children (#2057)
@tyrinhttps://github.com/tyrin: Which DITA-OT version are you using?

Reply to this email directly or view it on GitHubhttps://github.com/dita-ot/dita-ot/issues/2057#issuecomment-142208694.
This e-mail message and all attachments transmitted with it may contain privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message, all attachments and all copies and backups thereof.

I can't reproduce this. On 1.8.x, there are no width values of any kind in the first two tables in TableTest.html, and on 2.1.1, both tables have 2 x <col style="width:50%" />.
Do you have any plugins installed that might affect the output?

No plugins or customizations. I run this on mac os using an ANT build. From what you're telling me, if I upgraded the toolkit to a newer version this might go away?
From: Eero Helenius <notifications<EMAIL_ADDRESS>Reply-To: dita-ot/dita-ot <reply<EMAIL_ADDRESS>Date: Thursday, September 24, 2015 at 2:37 PM
To: dita-ot/dita-ot <dita-ot<EMAIL_ADDRESS>Cc: Tyrin Avery <tavery<EMAIL_ADDRESS>Subject: Re: [dita-ot] Table processing different for first child of conbody and subsequent children (#2057)
I can't reproduce this. On 1.8.x, there are no width values of any kind in the first two tables in TableTest.html, and on 2.1.1, both tables have 2 x .
Do you have any plugins installed that might affect the output?

Reply to this email directly or view it on GitHubhttps://github.com/dita-ot/dita-ot/issues/2057#issuecomment-143014431.
This e-mail message and all attachments transmitted with it may contain privileged and/or confidential information intended solely for the use of the addressee(s). If the reader of this message is not the intended recipient, you are hereby notified that any reading, dissemination, distribution, copying, forwarding or other use of this message or its attachments is strictly prohibited. If you have received this message in error, please notify the sender immediately and delete this message, all attachments and all copies and backups thereof.

From what you're telling me, if I upgraded the toolkit to a newer version this might go away?

Well, if you upgrade to 2.1.1, the behavior will be different than with 1.8.4, but I'm not sure whether it'll be what you want, since both of the first two tables will have 50% colwidths.
Still, would be nice to be able to reproduce this issue, but with the TableTest.dita file in your Gist and DITA-OT 1.8.4, this is the output I get:
https://gist.github.com/eerohele/a34d4f884a5c4e30d35d

Note that the issue with default behavior being the creation of evenly
proportioned column widths has already been reported by me (and marked for
a fix in 2.2).
There is an easy workaround (one line commented out) but you do need to
download the Java source.
See https://github.com/dita-ot/dita-ot/issues/1970
Colin Mackenzie
On 25 September 2015 at 07:13, Eero Helenius<EMAIL_ADDRESS>wrote:

From what you're telling me, if I upgraded the toolkit to a newer version
this might go away?
Well, if you upgrade to 2.1.1, the behavior will be different than with
1.8.4, but I'm not sure whether it'll be what you want, since both of the
first two tables will have 50% colwidths.
Still, would be nice to be able to reproduce this issue, but with the
TableTest.dita file in your Gist and DITA-OT 1.8.4, this is the output I
get:
https://gist.github.com/eerohele/a34d4f884a5c4e30d35d
—
Reply to this email directly or view it on GitHub
https://github.com/dita-ot/dita-ot/issues/2057#issuecomment-143138393.

--
Colin Mackenzie
Mobile : 07786 621254
Email<EMAIL_ADDRESS>Web : www.mackenziesolutions.co.uk
Linked In : uk.linkedin.com/in/mrcolinmackenzie

I think with update in #1970 this should now be resolved - tables without any width specification use auto-layout in 2.2. The original test case now only sets a width for the final table, under "This table has both colspec and colwidth".

Marking this closed - I am not able to reproduce this with recent releases, and I think that the referenced fix in 2.2 resolved the issue.


SwinV2: add configurable act_layer argument

Defaults to "gelu", but makes it possible to pass "gelu_tanh". Makes it easier to port weights from JAX/Flax, where the tanh approximation is the default.

@SmilingWolf thanks, looks good will merge after tests run... just a FYI though, I've found the difference between gelu and the tanh approx to be pretty minimal in trained networks. The difference in image preprocessing between typical pytorch and jax pipelines (jpeg decode, image resize, etc) is usually greater than the activation. Sigmoid approx on the other hand has a big impact.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


NameError: name 'SourceQuery' is not defined for a server

Hello. I've a problem with your bot :
future: <Future finished exception=NameError("name 'SourceQuery' is not defined")>
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/container/servers.py", line 82, in query_save_cache
    query = SourceQuery(str(server['addr']), int(server['port']))
NameError: name 'SourceQuery' is not defined
Future exception was never retrieved
future: <Future finished exception=NameError("name 'SourceQuery' is not defined")>
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/home/container/servers.py", line 82, in query_save_cache
    query = SourceQuery(str(server['addr']), int(server['port']))
NameError: name 'SourceQuery' is not defined

How to fix this problem? And excellent job for your bot.
OS : Debian 10 on VPS.
Version of Python installed : 3.7.3.
DiscordGSM 1.8.1

sounds like you have not imported sourcequery, check that!

sounds like you have not imported sourcequery, check that!

OK, i've found my problem.
I don't why this file is automatically deleted.
Thank you for your help.

OK, i've found my problem.
I don't why this file is automatically deleted.
Thank you for your help.


ComboBox not setting String array's itens

In JavaFX I ever set the items like this:
    @FXML     public void initialize() {         // Carregando lista de estados na Box.         estadoBox.setItems(FXCollections.observableArrayList(estados));     }
but whit JFoenix API I don't have success, look my code:
`...
@FXML
private ComboBox<String> estadoBox = new ComboBox<String>();

...
private String estados[] = {"AC", "AL", "AP", "AM", "BA", "CE",
"DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR",
"PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SE", "TO"};
...
@FXML
public void initialize() {
// Carregando lista de estados na Box.
estadoBox.setItems(FXCollections.observableArrayList(estados));
}
...`
after this the comboBox yet is void.

Hello,
We tried the previous example, however we were not able to reproduce. is there any exception on the console?
Regards,

No, nothing of exceptions, the code is ok, but the component not displays the list.

can you provide a sample demo for this issue? as we were not able to reproduce.
Regards,

after having another look at the code you provided, it seems you are creating a new combo instead of using the one retrieved from fxml which is wrong. The declaration of combo box field should be as the following:
@FXML
private ComboBox<String> estadoBox;

I discovery and solve the problem, the problem is in FXML, I miss typing in FXML and the component name stayed "estadobox" in Java Controller "estadoBox", the creation is ok, look the new code:
@FXML     private JFXComboBox<String> estadoBox = new JFXComboBox<String>();
In you reply suggested change the declaration, but in this way return null pointer exception:
@FXML private ComboBox<String> estadoBox;

My bad I assumed you were using DataFX library, glad the issue is solved.
Regards,


环境配置步骤可以再完善一下

docker pull了之后可以提醒大家run一下，然后再在上面安装apex之类的
不过总体很清晰，点赞

Thanks for your attention.
We show the docker pull command to clarify our environment. Maybe users build bunny on their own environment.


probe: advbench / nlp security test

paper: https://arxiv.org/abs/2210.10683
code: https://github.com/thunlp/Advbench

AdvBench seems to have a variety of unlicensed / difficult-to-relicense data in use, and the data isn't distributed with AdvBench. Marking this with wontfix due to license incompatibility.


Getting a strange "Blinking"

Hi @BeauNouvelle
Any idea why would I see the following issue: when focusOnFaces is set On I get a strange issue where the image is being seen for a brief moment, then it disappears and the re-apears. It all happens very fast but the issue is noticeable and happens every time.
Any thoughts maybe?

Not too sure on this, but I can investigate. Perhaps the image gets drawn before the readjustment is made, and redrawn? Sounds like a bug!

Thank you! Let me know if you need any info from me.

And your idea of what happens sounds reasonable to me

@BeauNouvelle - just to add more info: I use FaceAware with PinRemoteImage. Specifically, with their UIImageView’s Category: PINImageView+PINRemoteImage. I use its method to pin_setImageFromURL:completion, and then on its completion block, I set focusOnFaces to true.

I have the same issue with SD_WebImage in the completion block where images briefly "flash". For me the image is set with out focus on face first and then readjusted. It would be nice to maybe add a fade in animation to make this change less noticeable.

I'll have a play around with it this weekend and see if I can come up with a solution.
If only the face recognition was faster.

I also have the issue.
The reason for this is there is a placeholder image, which may not need to be face focused. The image cashing library first sets image as placeholder image. The library tries to detect face async, which will take time, and loads image.Then the image cashing library loads with original image.. Is there any way to avoid face detection of placeholder image?

Hi, it seems that this problem still exists, is there a plan to fix it?

I have the same issue with SD_WebImage in the completion block where images briefly "flash". For me the image is set with out focus on face first and then readjusted. It would be nice to maybe add a fade in animation to make this change less noticeable.

This problem occurs because of the use self.image = nil in focusOnFaces. You can comment out this. Same problem with SDWebImage

I've removed that line of code in version 2.0.1
Sorry this has taken so long.


Is this project being maintained?

Is this project being maintained, or is there any similar project doing the same thing?

We have an eye on it and would look over and merge pull requests; But we currently wouldn't fix any major issues ourselves. Best take the code as an inspiration/starting point for experiments and fork+dev+pr if you want to use it in any project <3


Subarray filter dosn't work after 1.3.1

Hii,
After angular 1.3.1 my sub array filter don't work.
Example. http://plnkr.co/edit/XjGyppLgiR0mxqt4JShk?p=preview
When you change FROM
https://code.angularjs.org/1.3.1/angular.js
TO
https://code.angularjs.org/1.3.10/angular.js
Stop to work.
how can i resolve it?
Thanks
Khurram

With which version have you tested this? Have you checked 1.3.14? Have you tested the latest 1.3.x snapshot?

yes, i have test with 1.3.14, 1.3.9 and 1.4.0-beta.5 but not work.

@gkalpak Mind taking a look?

Hi,
After a quick research, found out that a breaking change was introduced in 1.3.6.
The way filterFilter is treating deep object filtering was changed.

Thx @ozsay for taking a look at this. We unfortunately introduced a breaking change in 1.3.6.
You can use ` so that the filter tries to match on every property of every factors item, to any depth.

Thank you very much


CM-888 - Backport magnite id support

Magnite id support was released as Part of Prebid version 8.2. There are some customers that do not want to upgrade just now, but would like to be able to use the magnite it, this PR backports this feaure.
Ticket: https://liveintent.atlassian.net/browse/CM-888

Opened a PR in the Prebid repo: https://github.com/prebid/Prebid.js/pull/10261


#36208 Fix invalid thread access on editing data in multiple results in one tab mode

Should not happen anymore

verified


how  to clear the input

i want to use you plugin but how to clear the text ,i try set the input.value = "" , but that doesn't work

InputField.setText('')

thank you very much


Replace operator with native K8s Operator

We can add CRDs for our users and instances so that we don't have to maintain state.json.

We are no longer dependent on k8s.


add missing visit_enum

fixes surrealdb/surrealdb#4844 and probably dtolnay/serde-yaml#344

@dtolnay is there an issue with this request?


Checkpoint database when completing an AlephBFT session

Rocksdb has the ability to create database checkpoints in a separate directory
We could use this to create a checkpoint of the database when an AlephBFT session is completed. This way, if there is ever a consensus failure, guardians can recover by wiping their database and restarting from the last checkpoint where they were in consensus.
We'll want to limit the number of checkpoints retained to save on disk space. This should probably be an optional feature configurable by an environment variable in case the checkpoint operation is too heavy/expensive.

To be clear: rolling back to an old DB snapshot is a last-resort operation that can allow double-spends and mess up client state in some cases (depending on the module, e.g. suddenly missing LN contracts). So any such rollback should only be available to expert users.


Cannot disable print conversion

In ExtractAllMetadata, it is not possible to pass extra parameters to the exiftool execution, and neither can I use the library to read the response of Exiftool.
Would it be possible for you to add a new parameter that would allow me to pass -n to disable print conversions to ExtractAllMetadata?
Thank you for your work :)

Hi,
I'm not sure what you're trying to achieve here.
Can you give some example? Or even better, write some tests?
Thanks.

Can you please replace this part of the code:
public ICollection<KeyValuePair<string, string>> ExtractAllMetadata(string filename)
{
  Execute(filename);
  ...

With
public ICollection<KeyValuePair<string, string>> ExtractAllMetadata(string filename, params string[] args)
{
Execute(filename, args);
...
so that I can pass extra arguments to ExifTool in this function?


Fix record selector, metric, chart values not refreshed when inline and bulk edit changes are applied to related records

The following changes are implemented
TODO: Summary
Changes in the user interface:
TODO: Add screenshots, recordings or remove this section
Checklist when submitting a final (!draft) PR

[ ] Commits are tidied up, squashed if needed and follow guidelines in CONTRIBUTING.md
[ ] Code builds
[ ] All existing tests pass
[ ] All new critical code is covered by tests
[ ] PR is linked to the relevant issue(s)
[ ] Rebased with the target branch

if I have two comment blocks with the same config and add a comment in one, the other comment block isn't updated. I also have a RL pointing to the same module as the comment blocks and it's not updated after a comment was added

Other pbs I think we should update after a change has been made in a RL:

calendar
record revision
report
progress bar
geometry

RL isn't updated after a record has been added through the save as copy button from a modal
loading time has increased a lot when trying to add a record through a modal


[Rust/BNB]: Move BNB Beacon chain to Rust

Description
Move BNB Beacon chain to Rust.
How to test
Run Rust, C++, Android and iOS tests
Breaking Changes

Remove the previously deprecated TWTransactionCompilerBuildInput FFI.

TODO

[x] Implement all order types
[x] Implement Compiler functionality
[x] Remove C++ tests

Checklist

[x] Create pull request as draft initially, unless its complete.
[x] Add tests to cover changes as needed.
[ ] Update documentation as needed.
[x] If there is a related Issue, mention it in the description.

If you're adding a new blockchain

[x] I have read the guidelines for adding a new blockchain.

Unfortunately, yes

LGTM. Those /// cbindgen:ignore comments are expected (for the codegen I assume), right?


Small quality of life improvements to pipelines/postprocess_state_forecast.R

moves all functionality inside postprocess_state_forecast function
saves combined training and eval data for other uses (diagnostic report)

Another option for 2 would be to create a function that does combines the datasets and put that in hewr

Planning to move make_one_forecast_fig into hewr in this PR, as well.

Ready for review @dylanhmorris


[WIP] [594] Angular tests for Header component

Description:
Initial commit for unit tests for Angular component.

Codecov Report

Merging #679 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #679   +/-   ##
=======================================
  Coverage   91.77%   91.77%
=======================================
  Files          88       88
  Lines        2661     2661
  Branches        4        4
=======================================
  Hits         2442     2442
  Misses        213      213
  Partials        6        6

Continue to review full report at Codecov.

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


How to run benchmark-driver? and discussion about the various modes

I looked at the README and I'm still quite confused.
Suppose I have bench.rb with:
require 'benchmark_driver'

Benchmark.driver do |x|
  x.prelude <<~RUBY
    require 'active_support/all'
    array = []
  RUBY

  x.report 'blank?', %{ array.blank? }
  x.report 'empty?', %{ array.empty? }
end

How I am supposed to run it? The README doesn't say anything.

ruby bench.rb seems to work (it creates 4 subprocesses). But then can I pass any option to this gem?
benchmark-driver bench_dev.rb does something and creates 1 subprocess but it seems completely wrong and to measure the time to execute the whole subprocess, reporting as a single entry instead of the blank? and empty? jobs inside:

$ benchmark-driver bench.rb
Calculating -------------------------------------
               bench      0.072 i/s -       1.000 times in 13.872230s (13.87s/i)
benchmark-driver bench.rb  13.83s user 0.17s system 99% cpu 14.083 total

I think essentially there are 3+ modes to run benchmarks in benchmark-driver?

Ruby files which require 'benchmark_driver'
Ruby files which do not require 'benchmark_driver' and then it seems just to measure the wall script execution time? That's always extremely imprecise, I would strongly recommend against this mode, or at least it should be explicit like benchmark-driver --measure-process-wall-time script.rb.
YAML files, which seems to be somehow the main way? The huge drawback for me there is there is no syntax highlighting in YAML and it's very easy to make typos and not measure what's intended.

ruby bench.rb seems to work (it creates 4 subprocesses). But then can I pass any option to this gem?

You're supposed to do it in prelude.

benchmark-driver bench_dev.rb does something and creates 1 subprocess but it seems completely wrong

The interface of benchmark-driver taking Ruby script is relatively new and I'm sorry but it's not documented in https://github.com/benchmark-driver/benchmark-driver#structured-yaml-input which explains the CLI.
It's basically for a single-run slow script like *.rb files in https://github.com/ruby/ruby/tree/master/benchmark. Users of benchmark-driver are usually not supposed to use this interface. Think benchmark-driver CLI as YAML runner basically.

I think essentially there are 3+ modes to run benchmarks in benchmark-driver?

Right.

Ruby files which do not require 'benchmark_driver' and then it seems just to measure the wall script execution time? That's always extremely imprecise, I would strongly recommend against this mode, or at least it should be explicit like benchmark-driver --measure-process-wall-time script.rb.

I have never recommended it either. You don't need to strongly recommend against this mode to me. I'll add a short description about it in README later.
It's just for making it easier to maintain some of ruby/ruby benchmark scripts, because some committers complained that these scripts should remain as Ruby scripts.

YAML files, which seems to be somehow the main way?

It tends to be maintained a little more often. However, its feature set should be ideally the same with Ruby files which require 'benchmark_driver'. Therefore it depends on user. You're not forced to use YAML interface. Pick your preference. YAML interface was proposed by ko1. As I thought similar things as you, I added Ruby interface to it too.
Note that one of the major goals of benchmark-driver was to replace legacy ruby/ruby/benchmark/driver.rb. We wanted to take measured code as String instead of a block so that benchmark-driver can dynamically generate a script to measure it without an overhead to call blocks. If everything is not a Ruby block but String, we can naturally express the same thing in YAML.

The huge drawback for me there is there is no syntax highlighting in YAML and it's very easy to make typos and not measure what's intended.

Don't use YAML format then. I'd say editors should support or have plugin in YAML string for mixed syntax highlight just like markdown's code block, by reading YAML comment or something.
As we provide an option not to use it, users can decide which to use, and benchmark-driver has nothing to do on what happens on editors.

Thanks for the quick reply.

You're supposed to do it in prelude.

How does that work, is it documented?
Can I set --run-duration for instance? What about --rbenv?

The interface of benchmark-driver taking Ruby script is relatively new and I'm sorry but it's not documented in https://github.com/benchmark-driver/benchmark-driver#structured-yaml-input which explains the CLI.

I think my main issue here is from the README I couldn't be sure how I'm supposed to run a Ruby file which requires benchmark-driver.

It's basically for a single-run slow script like *.rb files in https://github.com/ruby/ruby/tree/master/benchmark. Users of benchmark-driver are usually not supposed to use this interface. Think benchmark-driver CLI as YAML runner basically.

Right I thought it was that.
I think https://github.com/ruby/ruby/tree/master/benchmark should use "Ruby files which require benchmark-driver".
I don't think it's useful to measure startup in each of these .rb file and the added error because of that. It would be much more useful for regression testing to measure what differs in those benchmarks.
@ko1 @k0kubun  Thoughts?

I have never recommended it either. You don't need to strongly recommend against this mode to me. I'll add a short description about it in README later.

I think it should not be the default and require some flag, because it's typically a very imprecise way to measure (or even be removed if there is no more usage for it).
Instead, I think the default for benchmark-driver bench.rb should be the same as ruby bench.rb but with easy access to all benchmark-driver options, for instance to run against multiple rubies.
And for the case that the script does contain require 'benchmark_driver' (my first example) I think it should error out because then it's an invalid usage, isn't it?

It's just for making it easier to maintain some of ruby/ruby benchmark scripts, because some committers complained that these scripts should remain as Ruby scripts.

I agree, syntax highlighting and IDE integration is the main issue with YAML files.

YAML files, which seems to be somehow the main way?

It tends to be maintained a little more often. However, its feature set should be ideally the same with Ruby files which require 'benchmark_driver'.

I think the main difference right now is options and ability to run with multiple Ruby interpreters.

Note that one of the major goals of benchmark-driver was to replace legacy ruby/ruby/benchmark/driver.rb. We wanted to take measured code as String instead of a block so that benchmark-driver can dynamically generate a script to measure it without an overhead to call blocks. If everything is not a Ruby block but String, we can naturally express the same thing in YAML.

I thought it was that. As said above, how about using Benchmark.driver do |x| in those? It would lead to better measurements.

Don't use YAML format then. I'd say editors should support or have plugin in YAML string for mixed syntax highlight just like markdown's code block, by reading YAML comment or something.

But does any editor currently support that?
And what magic comment would it make realize it's Ruby code?
I think this is major drawback for YAML benchmarks until such support is available in most editors and it's easy to enable it.

How does that work, is it documented?
Can I set --run-duration for instance? What about --rbenv?

About the prelude, aren't you using it in your script with x.prelude? Can't your option for the gem be explained in the Ruby script writtein in x.prelude?
--run-duration is a good point. It was forgotten... It's to be fixed.
--rbenv is just x.rbenv.

I think my main issue here is from the README I couldn't be sure how I'm supposed to run a Ruby file which requires benchmark-driver.

understood, I agree :+1: Filed https://github.com/benchmark-driver/benchmark-driver/issues/69 as an individual issue separated from this discussion.

I think https://github.com/ruby/ruby/tree/master/benchmark should use "Ruby files which require benchmark-driver".

I'm also specifically against that. By unifying files under ruby/ruby/benchmark to be runnable as an argument of benchmark-driver CLI, we can flexibly do many things over multiple Ruby scripts, for example --filter over all files, comparing multiple benchmark files instead of just inside one Ruby script requiring "benchmark-driver".

I think I already spent too much time for writing this and the discussion does not seem to progress efficiently here. I'd like to discuss it in person when we meet next time, and summarize the conclusions here instead. WDYT?

I think https://github.com/ruby/ruby/tree/master/benchmark should use "Ruby files which require benchmark-driver".

I'm also specifically against that. By unifying files under ruby/ruby/benchmark to be runnable as an argument of benchmark-driver CLI, we can flexibly do many things over multiple Ruby scripts, for example --filter over all files, comparing multiple benchmark files instead of just inside one Ruby script requiring "benchmark-driver".

I'm not sure what you mean.
If each such .rb file does require 'benchmark-driver' and then Benchmark.driver do |x| ..., all files could still be executed by benchmark-driver file.rb|yml, assuming benchmark-driver file.rb doesn't time the whole script but is the same as ruby file.rb, which I think is anyway a good thing.
Something less nice would be that the entire class definitions would have to be in x.prelude (a consequence of this gem's design), but at least that can be syntax-highlighted easily in most editors.
--filter could load all *.yml and all *.rb files to filter, no?

I think I already spent too much time for writing this and the discussion does not seem to progress efficiently here. I'd like to discuss it in person when we meet next time, and summarize the conclusions here instead. WDYT?

I'm not sure when we'll meet next time in person, though (if RUbyKaigi it's still in 3 months).
How about having a video or audio call, or otherwise discuss on Slack?

I'm not sure when we'll meet next time in person, though (if RubyKaigi it's still in 3 months).
How about having a video or audio call, or otherwise discuss on Slack?

I'll be relatively busy in January and February for personal reasons and therefore I'll be able to allocate time for this amount of discussion and implementation/review from March. At that time I'm okay to do the discussion in whatever format.

OK, I'll add myself a reminder in March to find some time to discuss this.

I had a call with @k0kubun, here is my summary of the call:

I'd like to simplify to 2 modes:

Existing benchmark-driver bench.yml
benchmark-driver bench.rb where bench,rb uses DSL like in the README.
I'd also warn or deprecate ruby bench.rb where bench,rb uses DSL, because that seems confusing (I'd expect everything runs inside that process but it's not the case, and it's inconvenient to pass e.g. --executables/--rbenv, better have a consistent entry point since benchmark-driver always uses subprocesses).

That would mean removing the 3rd mode which is currently benchmark-driver bench.rb where bench,rb does not use the DSL. That needs discussion which @ko1.
We could then rewrite .rb benchmarks in MRI like app_answer.rb to use the DSL (pro: would allow syntax highlighting), or to use .yml (pro: all MRI benchmarks would use YAML).
That would also avoid measuring startup in all those .rb benchmarks which is not very interesting (I think it's better to have a single benchmark measuring startup explicitly, and other benchmarks don't measure startup)

Regarding the issue of syntax highlighting for .yml files, one workaround could be to have some option for benchmark-driver to generate a Ruby file from the .yml file. That could either be prelude + report, or use the Benchmark.driver DSL which would then be a way to convert .yml to .rb, with the nice bonus of editing the .rb would allow to run the modified benchmark.
Regarding the reason that benchmark-driver uses Strings as inputs it's to avoid block overhead, which e.g., would be unfair to MRI without JIT and add significant overhead for benchmarking MRI.

I'd also warn or deprecate ruby bench.rb where bench.rb uses DSL, because that seems confusing (I'd expect everything runs inside that process but it's not the case, and it's inconvenient to pass e.g. --executables/--rbenv, better have a consistent entry point since benchmark-driver always uses subprocesses).

I admit it's confusing to allow both ruby bench.rb and becnhmark-driver bench.rb, but I'm still reluctant to deprecate that since the DSL interface was originally created for users who used to run benchmarks with ruby xxx.rb using stdlib benchmark or benchmark-ips.
Some thoughts about this problem:

that seems confusing (I'd expect everything runs inside that process but it's not the case

This is understandable, but if that's confusing, when we're just reading benchmark definitions and not aware of how it's used, we'd be confused anyway even if everybody uses it with benchmark-driver. I think we may be able to have interface which is less confusing for that point.

it's inconvenient to pass e.g. --executables/--rbenv, better have a consistent entry point since benchmark-driver always uses subprocesses)

ruby bench.rb [benchmark-driver's options] could also be an option, just like we do ruby test.rb -n test_name. A downside is that we need to have require for .rb files.

I'm not insisting with the above options because they have trade-offs. I think there are major two directions in a world where we successfully deprecated the current benchmark-driver bench.rb interface:

Single mode (top-level DSL) for everything

Ruby DSL for benchmark-driver bench.rb: Design a brand-new top-level DSL, which should be simple and very similar to the current YAML syntax.
Ruby DSL for ruby bench.rb: Deprecate. By doing so we can eliminate require in benchmark scripts.
YAML for benchmark-driver bench.yml: This could be deprecated (and there will be only one mode!) if the top-level DSL is good enough to achieve YAML's original motivation.

Maintain the backward compatibility

Ruby DSL for benchmark-driver bench.rb: Just implement it on the current DSL.
Ruby DSL for ruby bench.rb: Keep the current interface, and you'd need to write require in whatever bench.rb. We may consider taking options like ruby bench.rb [options].
YAML for benchmark-driver bench.yaml: Nothing is changed.

@ko1 Specifically I'm proposing to remove the 3rd mode which is benchmark-driver bench.rb where bench.rb does not use the DSL, because I find that confusing and inconsistent with other modes for benchmark-driver. In such a mode, timing is not done precisely but is the entire script wall time including startup. That means measurements are imprecise due to these benchmarks measuring startup instead of focusing on the actual workload.
I think the only files using that mode are in ruby/ruby benchmark directory, such as app_answer.rb and I propose for them use the Benchmark.driver DSL instead, so they would still be Ruby files, but would provide more precise measurements, and, e.g., give the possibility to run them with warmup if desired.

I have no strong opinion about it.
Maybe the 3rd option is special form of YAML file, which body is load 'xxx.rb' and it is no confusion about it. If it is confusing for somebody, introduce xxx.yaml explicitly for xxx.rb is nice idea for me.

This discussion seems outdated. Closing. At this point, I'm reluctant to change the benchmarking modes for compatibility reasons.

I think due to this confusion, it's basically very hard for non-CRuby devs to use benchmark-driver and understand how it works/the various modes.
But this may not matter, I think most Rubyists are better off with the simpler benchmark-ips.

Yup, I use benchmark-ips too and I don't feel like this tool need to cover both use cases. It's unnecessarily too complicated to support comparing different Ruby binaries when measuring a single Ruby is enough, which is what non-CRuby devs do most of the time.

That's a good point, a benchmark-ips-like warmup + mode (Ruby API) together with the builtin ability to compare multiple Rubies would be quite useful.
#68 seems the main blocker for that.
But probably the benchmark-driver approach of generating a file and not being able to pass any data in easily is not really compatible with a Ruby API taking blocks (https://github.com/benchmark-driver/benchmark-driver/pull/74#issuecomment-623115791 was an attempt to reconcile that but it's rather tricky).


Fillwidth: Prevents loading two versions of same images; gene page fixes

To use FillwidthItem you should only need to pass it an imageHeight everything else is available from the schema. So this change makes imageHeight required then removes all the rest of the sizing props and cleans up the call sites. There should be no visual difference with this change.
In making this change I also noticed that there was a hack around attempting to load the correct size image. This was causing 1x devices to load both the 2x and 1x versions — of every thumbnail on the page. The savings should be significant.
This also fixes some fall out that was noticed on gene desktop pages by wrapping the contents in the theme and breakpoints providers as well as removing the old-style Fillwidth in favor of a Carousel + FillwidthItem.

To put some numbers on this — comparing local-staging vs staging on a 1x screen, filtering image requests:
/artist/andy-warhol

local

41 requests
693 kB transferred

staging

52 requests
1.3 MB transferred

/artist/r-h-quaytman

local

15 requests
198 kB transferred

staging
26 requests
730 kB transferred

This only affects images which are above the fold, so that limits things.

Another win is that you don't see the images flash as the JS takes over and starts reloading them.


Implements #184 and #328: Changes to NPCs

Did some more in depth testing and caught a few things. Feeling more confident now.


Map vanishes when restart fom app-list

When  I open the list of  background apps choosing another app and come back to 'Ehrenamt' the same way the map disappeared (black screen of one physikal device [Samsung A53; V14] , white one on the other [Samsung Note 8;V9]). The android emulator dosen't show this behaviour but sometimes crashes at this point.
I will ad ios behaviour later on.
To Reproduce
Steps to reproduce the behavior:

Start Ehrenamt
open background list
Choos whatever other app
come back to Ehrenamt the same way
open Map when not already open
find black/white screen
for heeling remove Ehrenamt from background list and start it again

not reproducable on ios


create a little MockGitHub class for tests mocking out the github REST API

there's a few projects I'd really like a simple mock implementation of GitHub for easier testing.
I'm fine with it being pretty basic (and defaulting to just not finding stuff ;) but if it was able to find users/orgs/repos/PRs and whatnot from in memory objects it'd be super handy.
I started a little spike using a real JAXRS server side and tried reusing the DTOs from this excellent library; but the way the DTOs work they are kinda hard wired into the Requestor; so figure it was maybe simplest to just add a little MockGitHub derived class. By barely changing the code I was able to get something basic going without breaking the GitHub API or implementation.
I can submit a little PR to show you the kinda thing am thinking. Its kinda an extension of the offline mode but just with a custom API that lets you populate some resources etc

@kohsuke what do you think of the general idea? I've got a little spike going but thought I'd wait for your thoughts before i go further. Can query/add users/orgs so far - gotta figure out how to support creating repos etc...

couldn't you do this w/ wiremock and return canned json responses?
either way, i support this idea!

This would be an excellent addition.

Here's my first spike https://github.com/jstrachan/github-api/tree/mock-api
e.g. https://github.com/jstrachan/github-api/blob/mock-api/src/test/java/org/kohsuke/github/mock/MockGitHubTest.java#L45
so we can create a mock user + list the repos for the user & create a new repository. There's an issue printing out the repository though (ownerName issues)

@jstrachan , my apologies for the delay. Yes, I think better testability would be great, and ability to mock things would be wonderful. I think @stephenc worked in some Jenkins plugins to extensively mock GH*** objects from literal JSON files. How can I help make this happen?


Implement Twistlock to secure VANotify

As a developer I want to utilize Twistlock to identify any security related concerns
Acceptance Criteria:
1. No security related concerns
Given I am deploying VANotify
When I run the pipeline
Then the job successfully completes
2. Security related concerns identified
Given I am deploying VANotify
When I run the pipeline
Then the job fails along with displaying the security related concern(/s)
Checklist:

[ ] Kickstart process with Andy Zimmerman (w/AbleVets, a Workspace Admin), can do via Slack or email

Slack username: '@Andy Zimmerman'
Slack workspace: VA OIT DevOps
email<EMAIL_ADDRESS>

[ ] Implement twistcli to scan Docker image for vulnerabilities in pipeline

twistcli
Scan images with twistcli

[ ] Implement Prisma Cloud Github IaC Github app - check if this can scan infra code?

Use the Prisma Cloud App for Github

[ ] Share info about Prisma Cloud plugins for IDEs (IntelliJ and Visual Studio Code) with team

Assumptions:

This involves completing the work identified after the Spike #99 is complete
One card will be created for each tool that we add
Please review the respective ADR for detailed information
During Dev Analysis we need to list what specific security function is covered
Ling's matrix and recommendations documented in this spreadsheet
Discuss where in the pipeline we want to put these security checks, example: is it called from Terraform (this must be finalized in Dev Analysis)
After Dev Analysis or as a part of the kickoff this card will be estimated
Rules used for scanning can be adjusted as part of the implementation

Out of Scope:

Adding monitoring and alerts for this is not in scope
When the tool is successfully implemented, this information must be provided for documentation in the ATO. This will be a separate task not in scope for this card

Questions:

How to procure licenses? Talk to DOTS (Allison Schulhof)
Figure out process for setup
Explore if there is a 'trial' we can use
Find DOTS resources, including training videos

Today:
Reached out to Allison Schulhof for information, who is currently on vacation.
Watching overview and demo video of DOTS DevSecOps (will find link to attach). Notes:

Need to create a Jira ticket with DOTS
From 17:19 to 19:01 in video, can see what Twistlock instance in pipeline can look like and its produced artifacts (aka image vulnerabilities). Twistlock also offers its own UI that team can access to get the same reported information and more details.
From 35:50 to 38:50, demos twistcli (Twistlock's cli tool) twistcli images scan <Docker image id> --address <Twistlock url> --password <Twistlock password> --ci (returns a json object) to post vulnerabilities scan overview results to Twistlock UI console
From 38:50 to 39:30, demos Twistlock UI console
From 39:34 , to look at Twistlock console from Ops perspective. Can create vulnerability rules (including severity, alert and block thresholds, scope, etc).

From conversation today (9/14/20) with Andy Zimmerman (contractor from AbleVets)
Overall process first provisioned by DOTS/AbleVets, who in the VAEC create a child console  and assign admin users. Admin users can self-service users management onwards.
Questions to get back to Andy to kickstart the provisioning process:
How many instances we have as that will determine the number of licenses
-- how Docker is being used?
Does team have any appetite to have a footprint in Jenkins?
What to call our namespace?
Who are the admin users to provision for?
Build-time analysis unknown for Github actions
Jenkins plugin
Common use case: native Kubernetes, OpenShift, Rancher(?) - anything that can let you deploy replica sets. So they are not aware of folks using Github actions with Twistlock. It would be great if ThoughtWorks can share snippets of any scripts we write. This also means production may or may not be able to support the Twistlock agent due to Github actions. Not sure how well Twistlock works with Github actions workflow. There is a Jenkins community plugin most folks use, which may or may not be available
We will definitely have access to twistcli at the very least, which we can use through Github scripts

Github Marketplace app: Prisma Cloud IaC (Infrastructure-as-Code scan):

https://github.com/marketplace/prisma-cloud
about IaC with respect to Terraform: https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin/prisma-cloud-devops-security/set-up-your-prisma-cloud-configuration-file-for-iac-scan.html#id3fa84acb-db42-46ab-a3bc-d19e7589c47e

Prisma Cloud plugins for Github, Visual Studio Code, IntelliJ:

https://docs.paloaltonetworks.com/prisma/prisma-cloud/prisma-cloud-admin/prisma-cloud-devops-security/prisma-cloud-plugins.html#idf361c24b-71ca-48f5-bf7d-4b50fc94cb30

Reached out to Andy Zimmerman to kickstart the process on Wednesday, Sept. 16, 2020.

After clarifying conversation with Andy Zimmerman today - verified that we are only operating within the VAEC environment, such as pushing to the ECR there - looks good to go. Andy will be starting work next week on getting our licenses and VANotify team console. Brian Lang will be pulled in to help with the work as well. Overall process should take about a week to complete upon starting.

Stand up update; licenses for twist lock acquired @lingtran

Devs with VA network access should be receiving credentials today, via Slack update from Andy Zimmerman.

confirmed with Andy that we are considered set up. someone with access needs to see (1) if they can add new members, and (2) check if there is any additional documentation available in the console.
regarding why no SSO at the moment, Andy's response:
We have been working with TL for almost a year on a better log in experience.  They actually just released the feature we requested which federates  TL to GitHub.  This should provide something that both partitions sub-projects and provides SSO.


once the json objects came back out of order i ended up with duplicate devices

im using the device attribute as the id attribute to stop out of order delivery from creating issues.
this will break existing installs, people will need to remove their cached accessories file (or atleast purge bond accessories from that db) before starting with the new install.

Anyone tested / verified this ?

I would like feedback

@plainsane haven't tested this PR, but #19 works fine for me.


Add Airtable API to Documents & Productivity

[x] My submission is formatted according to the guidelines in the contributing guide
[x] My addition is ordered alphabetically
[x] My submission has a useful description
[x] The description does not end with punctuation
[x] Each table column is padded with one space on either side
[x] I have searched the repository for any relevant issues or pull requests
[x] Any category I am creating has the minimum requirement of 3 items
[x] All changes have been squashed into a single commit

@matheusfelipeog Sorry for late update, done.

@matheusfelipeog Sorry for late update, done.

@Jihad no problem ;)


Release to PyPI on git new tags

Fixes #21

Pull Request Test Coverage Report for Build 51

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.588%

Totals

Change from base Build 48:
0.0%

Covered Lines:
264

Relevant Lines:
374

💛  - Coveralls

Pull Request Test Coverage Report for Build 51

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.588%

Totals

Change from base Build 48:
0.0%

Covered Lines:
264

Relevant Lines:
374

💛  - Coveralls

Pull Request Test Coverage Report for Build 51

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.588%

Totals

Change from base Build 48:
0.0%

Covered Lines:
264

Relevant Lines:
374

💛  - Coveralls


[DROOLS-1261] browse trait class hierarchy when creating a mixin

Merged by https://github.com/droolsjbpm/drools/commit/e7a8aaac83ea0e1549d3ebcfa62ad18ea50fa528


Problem reading file in 4.6.2-devel; works in 4.4.1

Please provide as much of the following information as you can, as applicable to the issue being reported.  Naturally, not all information is relevant to every issue, but the more information we have to start, the better!

Environment Information

Feel free to skip this if the issue is related to documentation, a feature request, or general discussion.

What platform are you using? (please provide specific distribution/version in summary)

[x] Linux
[ ] Windows
[x] OSX
[ ] Other
[ ] NA

32 and/or 64 bit?

[ ] 32-bit
[x] 64-bit

What build system are you using?

[x] autotools (configure)
[x] cmake

Can you provide a sample netCDF file or C code to recreate the issue?

[x] Yes (please attach to this issue, thank you!)
[ ] No
[ ] Not at this time

Summary of Issue
I have a file which reads OK in some previous versions; in particular 4.4.1 but I haven't tried anything between 4.4.1 and 4.6.2-devel.  When I read it in 4.6.2-devel, I get an error in NC_check_voffs:
Variable "qa_records" begin offset (15943) is less than previous variable end offset (15944)

If I ncdump the file using a previous version and then ncgen it using either old (4.4.1) or new (4.6.2-devel) versions, the file is no longer "corrupt" and can be read by both the new and old ncdump
I modified NC_check_voffs to print out statistics for the variables and I get the following:
Ncdump Original:

name
prevoff
begin
len
prev_off+len

coor_names
15844
15844
100
15944

qa_records
15944
15943
1584
17528  <-- error in NC_check_voffs

info_records
17527
17527
84
17611

coord
17611
2296
13548
31159  <-- error in NC_check_voffs

eb_prop1
15844
47736
12
15856

eb_status
47748
47724
12
47760  <-- error in NC_check_voffs

connect1
47736
17608
11264
59000  <-- error in NC_check_voffs

connect2
28872
28872
2688
31560

connect3
31560
31560
3592
35152

attrib3
35152
35152
12572
47724

elem_map
47724
47748
3540
51264

node_map
51288
51288
4516
55804

ns_prop1
55804
59452
16
55820

ns_status
59468
59436
16
59484  <-- error in NC_check_voffs

node_ns1
59452
55804
1800
61252  <-- error in NC_check_voffs

dist_fact_ns1
57604
57604
1800
59404

node_ns2
59404
59404
4
59408

dist_fact_ns2
59408
59408
4
59412

node_ns3
59412
59412
4
59416

dist_fact_ns3
59416
59416
4
59420

node_ns4
59420
59420
8
59428

dist_fact_ns4
59428
59428
8
59436

Ncgen:

name
prevoff
begin
len
prev_off+len

coor_names
2296
2296
100
2396

qa_records
2396
2396
1584
3980

info_records
3980
3980
84
4064

coord
4064
4064
13548
17612

eb_prop1
17612
17612
12
17624

eb_status
17624
17624
12
17636

connect1
17636
17636
11264
28900

connect2
28900
28900
2688
31588

connect3
31588
31588
3592
35180

attrib3
35180
35180
12572
47752

elem_map
47752
47752
3540
51292

node_map
51292
51292
4516
55808

ns_prop1
55808
55808
16
55824

ns_status
55824
55824
16
55840

node_ns1
55840
55840
1800
57640

dist_fact_ns1
57640
57640
1800
59440

node_ns2
59440
59440
4
59444

dist_fact_ns2
59444
59444
4
59448

node_ns3
59448
59448
4
59452

dist_fact_ns3
59452
59452
4
59456

node_ns4
59456
59456
8
59464

dist_fact_ns4
59464
59464
8
59472

I'm not sure what version of the library was used to write the original file, but I suspect it was possibly a Java implementation around 2009.  I have a few files which are exhibiting this behavior.
I realize a quick solution is to just "ncdump | ncgen" and the file is fixed; however, I am more concerned that I will find more of these files "in the wild" and unless I keep an older version of ncdump available for my users; I won't be able to provide them with a path to use the file.  As you can see, this file was originally generated about 2009 and is still being used.  The application that created the file is still in use and I haven't verified whether the files it is currently creating are exhibiting this same behavior.
Is the test that is failing a valid test that indicates a corrupt file, or is it just something that was added as a potential sanity check.  If I remove the call to NC_check_voffs, then all tests pass and the file content seems to be read correctly...
Thanks, sorry for probing the corners...
bad_file.zip
Steps to reproduce the behavior

Ncdump <IP_ADDRESS> understands this file and shows normal-looking results:
> ncdump -k spring_placement.g
classic

Ncdump 4.6.1 (normal release version) prints this:
> ncdump -k spring_placement.g
ncdump: spring_placement.g: NetCDF: Unknown file format

Based only on Greg's offset diagnostics above, this is a malformed or corrupt netcdf-3 file that violates the official format spec.  Good diagnostics, by the way.
In my opinion netcdf-C should only be expected, at best, to return some kind of error status when a format violation is detected.  There should be no obligation to somehow return successful data reads.  That could easily result in data with hidden defects and no warning.
However it would be nice to return more specific error status when the code has specific knowledge.  In this case "Format violation, invalid variable offset" would be more informative than the current "Unknown file format".
Greg, I suggest your best way forward is to try to find a valid original copy of this file for your users.  Failing that, clean it up with ncdump/ncgen and check the result carefully.

Agreed about the error reporting. We need to make more use of our logging output
to provide extra information.

There is something else going on.  @gsjaardema wrote:

I'm not sure what version of the library was used to write the original file, but I suspect it was possibly a Java implementation around 2009. I have a few files which are exhibiting this behavior.

More than one file suggests this is not simple file corruption.  Rather, there may have been "rogue" netcdf writer software that made malformed netcdf-3 files with bad var offsets.  This may have gone unnoticed for a while.  Such files could apparently be read by older netcdf-C versions before offset checking was added (somewhere between 4.5.0 and 4.6.1).
It might be worth investigating to find out whether the offset problem was ever definitively identified and corrected in that writer software.

@Dave-Allured I agree with further investigation and will let you know if I find anything.  I have a method for converting the files into files readable by the current library, so I am fine with closing this issue.  Just wanted to make sure that the NC_check_voffs check was a valid test which it appears that it is.

Closing this for now but we can reopen if need be.  Thanks all for their input and information!


Add size tracking to CowData, make it never reallocate when shrinking.

Motivation
Strings/Vectors/etc in GDScript and the core engine alike use CowData as the backing structure, today this structure reallocates its memory on nearly every operation.
(push_back, remove, etc, see: #22561, #24731).
Luckily this is possible to improve without changing any existing Godot code, while making it easier for people to reuse memory in vectors and reduce the amount of necessary overall allocations.
Usecases in Godot
Currently structures like Godot's A* use Vector for the open list (where a significant improvement can be seen with this change), even the scene tree itself uses vector as the datastructure in nodes to hold children and today incurs a reallocation every time an element is added or removed, so some improvement should be seen in these case (likely not as significant as for something like a stack/queue type usecase, but nonetheless).
Changes

Adds tracking of the size to the CowData structure itself.
Adds a capacity method to the public interface of Vector and CowData.
Fixes inserting elements from within a CowData's own data to itself (per issue surfaced in #16961).
Changes growth rate to a factor of p_size * 1.618 (also makes growth rate work, per #22561).
clear now only resets size, does not deallocate memory to accomodate reuse.
push_back/remove etc do not resize unless capacity is exceeded, shrinking never allocates.

Discussion
So this change might be slightly controversial but I'd been sitting on this for a while so I figured I'd float this because it doesn't break any existing code and from my own testing does not increase memory usage in any significant way.
(there's probably a bunch in this code that needs looking at by contributors familiar with core)
Testing
I've tested this on Godot proper as well as a bunch of my own projects and it seems to be operating just fine, given that deploying it in all of Godot is a pretty good benchmark for if it's sane or not, but having more experienced contributors take a look would be much appreciated.
Future Additions
Most vector implementations also have a way to reserve memory ahead of time without also resizing to that size, so adding a reserve method to CowData and Vector is a logical next step if this change is accepted.
Also adding a shrink_to_fit method to shrink to the current logical size would also make sense for cases where you do want it to shrink, even if I think this should not be the default as it is currently.
Probably exposing these in GDScript/GDNative would also be of interest, capacity, reserve, etc.

Travis is complaining about a uninitialized variable:
./core/cowdata.h: In member function 'void AnimationTree::_update_properties_for_node(const String&, Ref<AnimationNode>)':
./core/cowdata.h:208:6: error: '*((void*)& a +8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  208 |    T val = p_val;
      |      ^~~

Am I right in saying the old push_back was more efficient? You changed it to use insert, which mostly does the same but it includes the for loop which is unnecessary if you know it will always be adding to the end.
Also _get_size is doing:
if (!_ptr)
Is this necessary? Would it be possible just to ensure _size is set to zero, thus removing a redundant if check?
In _get_data() you have:
	_FORCE_INLINE_ T *_get_data() const {

		if (!_ptr)
			return NULL;
		return reinterpret_cast<T *>(_ptr);
	}

If _ptr is NULL surely you can just return it, is there a need for an if check?

The only extra performance hit that will happen here is an extra check for if we are adding something that is already in the vector, which fixes some issues and one i > p_pos check.  So the only unneeded extra would be the latter check which doesn't really add a noticeable hit to the performance.

Am I right in saying the old push_back was more efficient? You changed it to use insert, which mostly does the same but it includes the for loop which is unnecessary if you know it will always be adding to the end.
Also _get_size is doing:
if (!_ptr)
Is this necessary? Would it be possible just to ensure _size is set to zero, thus removing a redundant if check?
In _get_data() you have:
	_FORCE_INLINE_ T *_get_data() const {

		if (!_ptr)
			return NULL;
		return reinterpret_cast<T *>(_ptr);
	}

If _ptr is NULL surely you can just return it, is there a need for an if check?

The push_back change was mostly a simplification but I could certainly include a specific one inside CowData, just duplicating the piece that checks for adding from within itself (as insert does now).
The null check is probably superstitious yes, but that's old code either way.

Travis is complaining about an uninitialized variable:
./core/cowdata.h: In member function 'void AnimationTree::_update_properties_for_node(const String&, Ref<AnimationNode>)':
./core/cowdata.h:208:6: error: '*((void*)& a +8)' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  208 |    T val = p_val;
      |      ^~~

Indeed I noticed that one too.. I think this may be something that was uninitialized before (two places I could see in CI?) but the compiler didn't manage to catch it until now, so I'm taking a look at that. (curious that it's showing up in the headless build but not the normal editor build though?)

So a little digging later, two places came up, I made a separate PR to deal with them: #31716

Is it possible we can fix this bug #31736 at the same time with this PR?
Also I think you should definitely put in shrink_to_fit or something similar as part of the PR, as otherwise users will have no control to cleanup their memory after use (aside from deleting the vector etc, which may not be desired).

Is it possible we can fix this bug #31736 at the same time with this PR?
Also I think you should definitely put in shrink_to_fit or something similar as part of the PR, as otherwise users will have no control to cleanup their memory after use (aside from deleting the vector etc, which may not be desired).

Yes, rather this PR already solves the issue (if you read above, and the changes) by taking approach #3 outlined in the issue you made, considering adding #4 (copy only when a resize might actually occur) is also possible.
I thought about doing #1 but the CoW machinery makes this a little more messy.
As for shrink_to_fit or similar, I'm waiting for word on if this will actually be accepted or not, I created this PR knowing reduz might very well just straight up reject it, so I don't want to put more work in before I know if it is in the clear or not :)

Will need to be rebased in the face of #32181 which should definitely be merged first..

@profan Is this still desired? If so, it needs to be rebased on the latest master branch.

Still desired, considering it's a perf improvement.

Fairly sure this is safe to abandon as reduz implemented a limited version of this that still reallocates every time the cowdata shrinks and without capacity but at least only reallocates on every power of two increase in size afaik (and I think the reassignment to self issue is also solved?) so I will close this as I think it's also unlikely to ever get accepted even if it was amended :eyes:


Validation failed: Status Cannot transition run from status cancelled to errored

Example error: https://app.bugsnag.com/shopify/banking/errors/6260400a95d9870009401416?event_id=6260400a0093682418dc0000&i=sk&m=nw
gems/maintenance_tasks-1.9.0models/maintenance_tasks/run.rb:133

Bug seems to come from
https://github.com/Shopify/maintenance_tasks/blob/main/app/validators/maintenance_tasks/run_status_validator.rb#L10

Caused By: ActiveRecord::RecordInvalid · Validation failed: Status Cannot transition run from status cancelled to running

It seems like there was a job in the queue (maybe the retry queue?), and the task was cancelled. Whenever the job got worked on, it cause that failure, which was rescued, and then that caused another failure trying to move the task to errored.
The reason could be that you force cancelled a task that wasn't really failed, the job still existed in the queue. Can you confirm that's probable?
Initially we were very strict with the status validation errors as a way for us to make sure we weren't ignoring issues. Maybe we could do an exception for cancelled -> running since we have the force cancelling feature which will cause this.

Caused By: ActiveRecord::RecordInvalid · Validation failed: Status Cannot transition run from status cancelled to running

It seems like there was a job in the queue (maybe the retry queue?), and the task was cancelled. Whenever the job got worked on, it cause that failure, which was rescued, and then that caused another failure trying to move the task to errored.
The reason could be that you force cancelled a task that wasn't really failed, the job still existed in the queue. Can you confirm that's probable?
Initially we were very strict with the status validation errors as a way for us to make sure we weren't ignoring issues. Maybe we could do an exception for cancelled -> running since we have the force cancelling feature which will cause this.


Transfet out throws error

Bug Description:
I've got a problem with sending a transferOut to my USB device in my Electron application.
Here is the code where the problem occurs:
async sendDataToDevice(device) {
        const data = new Uint16Array(16);
        data[0] = 3333;

        await device.transferOut(0x81, data);
}

this code throws for me not yet known reason this error:
Error: transferOut error: TypeError [ERR_INVALID_ARG_TYPE]: The "size" argument must be of type number. Received an instance of Buffer

Additional Information

Operating System: Windows 10
Runtime (node -v or electron -v): v14.16.1
Node USB Version (npm ls usb): 2.4.3

hmm, we have some bugs because of the design of the legacy API which mostly affect races and errors.
endpoint 0x81 is an input endpoint, right? in USB, the MSB is set for input endpoints AFAIK, so you're trying to do an output transfer to an input endpoint.
in any case we can leave this open since the error should be more intuitive / up to spec.

Sure, even if I use 0x02 which is my configured OUT endpoint on my device (I'm sure this is the right one), it then throws Error: transferOut error: Error: LIBUSB_ERROR_IO.
Here is the USBView report:
Is Port User Connectable:         yes
Is Port Debug Capable:            no
Companion Port Number:            0
Companion Hub Symbolic Link Name:
Protocols Supported:
 USB 1.1:                         yes
 USB 2.0:                         yes
 USB 3.0:                         no

Device Power State:               PowerDeviceD0

       ---===>Device Information<===---
English product name: "TEST DEVICE 001"

ConnectionStatus:
Current Config Value:              0x01  -> Device Bus Speed: Full (is not SuperSpeed or higher capable)
Device Address:                    0x31
Open Pipes:                           2

          ===>Device Descriptor<===
bLength:                           0x12
bDescriptorType:                   0x01
bcdUSB:                          0x0200
bDeviceClass:                      0x00  -> This is an Interface Class Defined Device
bDeviceSubClass:                   0x00
bDeviceProtocol:                   0x00
bMaxPacketSize0:                   0x08 = (8) Bytes
idVendor:                        0x04D8 = Microchip Technology Inc.
idProduct:                       0xEA39
bcdDevice:                       0x0001
iManufacturer:                     0x01
     English (United States)  "MECA-SIM-HARDWARE s.r.o."
iProduct:                          0x02
     English (United States)  "TEST DEVICE 001"
iSerialNumber:                     0x00
bNumConfigurations:                0x01

          ---===>Open Pipes<===---

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes
bInterval:                         0x01

       ---===>Full Configuration Descriptor<===---

          ===>Configuration Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x02
wTotalLength:                    0x0029  -> Validated
bNumInterfaces:                    0x01
bConfigurationValue:               0x01
iConfiguration:                    0x02
     English (United States)  "TEST DEVICE 001"
bmAttributes:                      0x80  -> Bus Powered
MaxPower:                          0x32 = 100 mA

          ===>Interface Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x04
bInterfaceNumber:                  0x00
bAlternateSetting:                 0x00
bNumEndpoints:                     0x02
bInterfaceClass:                   0x03  -> HID Interface Class
bInterfaceSubClass:                0x00
bInterfaceProtocol:                0x00
iInterface:                        0x02
     English (United States)  "TEST DEVICE 001"

          ===>HID Descriptor<===
bLength:                           0x09
bDescriptorType:                   0x21
bcdHID:                          0x0101
bCountryCode:                      0x00
bNumDescriptors:                   0x01
bDescriptorType:                   0x22 (Report Descriptor)
wDescriptorLength:               0x001F

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x81  -> Direction: IN - EndpointID: 1
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes
bInterval:                         0x01

          ===>Endpoint Descriptor<===
bLength:                           0x07
bDescriptorType:                   0x05
bEndpointAddress:                  0x02  -> Direction: OUT - EndpointID: 2
bmAttributes:                      0x03  -> Interrupt Transfer Type
wMaxPacketSize:                  0x0008 = 0x08 bytes

And here is the device descriptor in case it might be helpful:
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
    0x09, 0x04, // USAGE (Joystick)
    0xA1, 0x01, // COLLECTION (Application)
        0x09, 0x01, // USAGE (Pointer)
        0xA1, 0x00, //Collection (Physical)
            0x05, 0x01, // USAGE_PAGE (Generic Desktop)
            0x09, 0x33, // USAGE (Rx)
            0x09, 0x34, // USAGE (Ry)
            0x09, 0x35, // USAGE (Rz)

            0x15, 0x00, // LOGICAL_MINIMUM (0)
            0x26, 0x00, 0x10, // LOGICAL_MAXIMUM (65535)

            0x75, 0x10, // REPORT_SIZE (16)
            0x95, 0x03, // REPORT_COUNT (3)
            0x81, 0x02, //INPUT (Data,Var,Abs)

        0xC0, // END_COLLECTION
    0xC0 //END_COLLECTION


NACM Recovery Session - Question

Hi ,
As per my understanding the recovery session user's UID is set during build time by setting the value of cmake variable NACM_RECOVERY_UID to desired value ( say 1324)
And on the netopeer2 server , we need to have a linux user with the same user id ( 1324). When the user with UID 1324 connects to the Netopeer server the session is identified as recovery session.
The question is

how do I verify that the  recovery session behavior is working. Is there any log that I can looking at which says "Recovery session is active"
Or any other simple testcase I can use to verify .

Regards
Pramod

Your understanding is correct but there is no simple way to verify that you have a recovery session. What I can think of is to log with any other user and once you get access denied error, try to perform the same operation with the recovery session. But that depends on your NACM configuration, by default you are not permitted to write any data, for example.

Thanks for your feedback. Let me try to figure out a testing method , the way you suggested.


Example code in the docs don't have program listing format

The sources incorporated into the documentation look plain without line numbers or a header and footer:
http://vinniefalco.github.io/beast/examples/http_ssl_example.cpp
Compare with Boost.Asio example listings:
http://www.boost.org/doc/libs/1_61_0/doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp

Not a problem anymore, doc links directly into the repository.


Shhappie 60

mutes him for an hour in a given channel.  be careful with threads and posts when playing with this.

Could be sshappie I don't care which.


Fix repetition_penalty for tests

is it possible to add tests?

Tests are the reason for that change. Reverting the change breaks the tests, so we already have them.


add kubeflow repo maintainers

Currently, none of the @kubeflow/wg-notebooks-leads have write access to the kubeflow/kubeflow repo.
This is causing significant problems because we are unable to approve GitHub action runs for new contributors (meaning our CI/CD never runs for these users).
GitHub introduced new security requirements for GitHub actions, and only members with write access can approve runs from PRs created by new contributors:

https://docs.github.com/en/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks

I believe that @kimwnasptd and I are trusted enough to have the additional permissions, and we both agree not to make direct commits to the master branch of repo (which can be enforced with a branch-protection rule if the admins would like).

@james-jwu and @zijianjoy, I would appreciate your review of this, to help unblock the Notebooks WG.

The admins should ensure that the following repo branch-protection rules are enabled on master and v*:

Require a pull request before merging
Require status checks to pass before merging
Restrict who can push to matching branches (this one is important, because it prevents us from manually clicking "merge" on PRs, and keeps the bot as the only way to approve PRs)

Require a pull request before merging:

Require status checks to pass before merging:

Restrict who can push to matching branches:

Hello @thesuperzapper ,

I have been helping Kimonas to trigger Github Action per request for a while. I think it is fine for now.
GitHub action or computing resource required presubmit testing should not be triggered by default for new contributors.

If there is any need for repo-level write permission, please raise it to Kubeflow Steering Committee, or propose to separate Notebook component into its own repo going forward.

@zijianjoy just copying the main points raised during the community meeting:

I might not have clearly articulated this, but as long as the branch protection rules are correctly set, having write permission at the github level does not allow us to merge PRs (except via the normal OWNERS approval process)
Even though you can approve the new committers, this is unnecessary and puts blocks on us (as sometimes the same PR has to be approved for github actions multiple times)
(Also, I checked, and actually I was mistaken about being able to move issues with write permission, as we wont have write on the target repos, like pipelines)

@kimwnasptd I am interested in your feedback here.

@kimwnasptd @thesuperzapper i think we need the same for Kubeflow/manifests

Yes please and I also need write access to create tags for Kubeflow/manifests and the 1.8.1 prerelease.
Cc @rimolive

Yes please and I also need write access to create tags for Kubeflow/manifests and the 1.8.1 prerelease.
Cc @rimolive

@juliusvonkohout raise a separate PR, because I don't want that to block this one.

@thesuperzapper it is already the case for wg-manifests-leads
https://github.com/juliusvonkohout/internal-acls/blob/83113d5f0d5bd55a17bbd5578780b07547b85616/github-orgs/kubeflow/org.yaml#L1047-L1047 so this should be merged rather soon.

But i still cannot create tags. So there is another problem.

Have you considered moving notebooks to a separate repo?

@terrytangyuan @andreyvelich There are several Problems here.

It is slowing down development. I am very happy that I finally got write access to Kubeflow/manifests. It made life so much easier. This should happen as soon as possible for Kubeflow/notebooks maintainers as well to speed up development.

We need to be able to create tags as explained above for Kubeflow/manifests and Kubeflow/kubeflow

We need more maintainers for both repositories. I am not sure whether Kimonas is still active and we have 400 open issues and PRs for botebooks. So it is mainly me for manifests and Matthew for notebooks. Notebooks is not properly maintained anymore due to lack of maintainer time and permissions. So I will apply for Kubeflow/Kubeflow maintainership especially for Gsoc and cleaning up issues and merging PRs @thesuperzapper what do you think? Would you be willing to add me as Kubeflow/notebooks maintainer? I want to clean it up as I cleaned up  Kubeflow/manifests with 25 real issues and 2 PRs now. Before it was probably 8 times that.

After this is done and development is unblocked again we can break notebooks/workspaces into its own repository.

@zijianjoy @james-jwu can approve this PR.
While the KSC can decide about the tagging permissions.
I hope that @kimwnasptd comes back as maintainer and that the release manager @rimolive can back up my statements.

I understand these concerns @juliusvonkohout and I agree with you that WG co-chairs should have write permission to the appropriate repositories.
As @james-jwu said let's bring this up to the next KSC meeting and move this forward.
At the same time, for the long-term solution can you create an issue in kubeflow/kubeflow to track migration of Notebook, Central Dashboard, KFAM, Profiles, PVCs, TensorBoards, KFAM to the separate GitHub repositories.
So kubeflow/kubeflow will be just a landing page for users like in Argo: https://github.com/argoproj/argoproj
That will make very clear to the users that Kubeflow is a combination of different sub-services for end-to-end AI/ML platform on Kubernetes.
We can also disable issue creation in the kubeflow/kubeflow repo to avoid miss-triaging issues for WG leads.

@andreyvelich I agree on disabling issues under kubeflow/kubeflow (as a long-term goal), we can redirect people to kubeflow/community for anything concerning the org, governance, etc, and kubeflow/manifests for anything concerning installation, integration, etc. I think we still need to capture a category of issues and discussion that involve e2e use of Kubeflow (cross-component). Let's discuss more in a dedicated issue

@juliusvonkohout  @thesuperzapper I want to help you guys to stabilize the issue count the the repo migration. We can form a plan and assign tasks. Migration out of kubeflow/kubeflow and dealing with triaging the high number of issues/PR is top of mind. We could have a separate meeting outside of the WG meeting so that we can have a focused discussion on this and make a plan.

@andreyvelich @james-jwu so can we please merge this?
It simply adds myself and @kimwnasptd as write access on kubeflow/kubeflow, clearly there's a lot of separate work to discuss around the future of the kubeflow/kubeflow repo, but in the short term, it would make our lives a lot easier, and help us get releases out.

@andreyvelich @james-jwu so can we please merge this?
It simply adds myself and @kimwnasptd as write access on kubeflow/kubeflow, clearly there's a lot of separate work to discuss around the future of the kubeflow/kubeflow repo, but in the short term, it would make our lives a lot easier, and help us get releases out.

Please give us a few more hours to discuss it during today's KSC meeting.
/assign @johnugeorge @jbottum @james-jwu @terrytangyuan

Hi @thesuperzapper, during today KSC meeting we discussed this PR to give write access to kubeflow/kubeflow repo with branch protection.
We are agreed to give Notebooks WG write access if you can create an issue where you will establish an estimate timeline to migrate Kubeflow components to the separate repositories. This timeline should not be tight, but at least we will start discussions.

Hi @thesuperzapper @juliusvonkohout @kubeflow/wg-notebooks-leads, do we have any updates here with our plan?
We think that we should solve this problem relatively soon since many users/contributors are getting confused with What is Kubeflow? question.
We still see issues created in kubeflow/kubeflow which are related to other Kubeflow components. For example: https://github.com/kubeflow/kubeflow/issues/7504, https://github.com/kubeflow/kubeflow/issues/7488.
By solving this problem we will give much more clarity to our users and will see much more adoption when users will realise the full potential for the Kubeflow project.
cc @kubeflow/kubeflow-steering-committee

@andreyvelich with the amount of resources we currently have in the @kubeflow/wg-notebooks-leads, I just don't see any way that splitting the repo up will be possible in the short to medium term. We barely have enough contributors to maintain the existing components.
Realistically, I can't continue to maintain the notebooks and core components without write access to kubeflow/kubeflow it's simply not possible to develop software without the ability to regularly create releases (especially pre-releases).
For example, there are critical issues with 1.8.0 (https://github.com/kubeflow/kubeflow/issues/7453), but as I am unable cherry-pick and cut a 1.8.1-beta.0, we are unable to release anything.

Even if we get more resources for "core" + "notebooks", we still have to consider the following:

kubeflow/kubeflow contains all the "core" components (dashboard, profile controller, kfam, volumes, etc)
Kubeflow Notebooks can't be run without the shared components (it requires the dashboard, istio, profiles), and that is unlikely to change.

I am not saying we can't split it up, just that there are no clear lines to split down, and we will likely still end up with the core components in kubeflow/kubeflow anyway.

Also, to help direct people to the right repo for issues, we can use issue templates and make users tick a box saying "yes, this issue is related to notebooks or core" before allowing them to submit a new issue.
But as a backup, issues can be transferred between repos by people who have write access to BOTH the source and target repo.

We barely have enough contributors to maintain the existing components.

I understand your frustration around not enough contributors to the existing components, but don't you think if we separate Kubeflow Notebooks in a separate GitHub repo it will be easier for folks to understand where and how to contribute to Kubeflow Notebooks ?
Also, we will open doors to make Kubeflow Notebooks more portable and make it possible to deploy without other Kubeflow components (dashboard, profile controller, etc.).

kubeflow/kubeflow contains all the "core" components (dashboard, profile controller, kfam, volumes, etc). I am not saying we can't split it up, just that there are no clear lines to split down, and we will likely still end up with the core components in kubeflow/kubeflow anyway.

I am not sure if kubeflow/kubeflow should contain core components given the confusion and feedback from our users and new contributors. We can always create kubeflow/multi-tenancy or kubeflow/control-plane or kubeflow/central-dashboard repos to isolate them.
Also, this migration should help us to deprecate/remove un-used components and reduce complexity of Kubeflow control plane.
If I remember correctly @kubeflow/wg-notebooks-leads discussed previously that we can remove KFAM.

Also, to help direct people to the right repo for issues, we can use issue templates and make users tick a box saying "yes, this issue is related to notebooks or core" before allowing them to submit a new issue.

It's not only about issue template it is more about answering the question What is Kubeflow ?
For example, new users can easily get lost when they open https://github.com/kubeflow/kubeflow and see just part of Kubeflow components. Also, many users still think that all Kubeflow components should be deployed to use it as part of their ML Platform.
Right now given the energy around new Kubeflow components (e.g. Model Registry, Spark Operator) we should work towards explaining the composability of Kubeflow components and the usage of Kubeflow as an end-to-end ML platform.
I believe, this first step of migrating Kubeflow Notebooks and Central Dashboard from kubeflow/kubeflow should help us with that.
What do other think about it ?
cc @kubeflow/wg-training-leads @kubeflow/wg-pipeline-leads @kubeflow/wg-model-registry-leads @kubeflow/kubeflow-steering-committee @jeremyeder @bigsur0 @StefanoFioravanzo @zijianjoy @akgraner

@andreyvelich
I think for the time being @thesuperzapper and @kimwnasptd aka the "notebooks" leads just need the write access, independent of the repository splitting.
I talked to Kimonas and he will support me to become maintainer for kubeflow/kubeflow, but it might take until the end of the year. Then I might be able to help Matthew a bit and improve the maintainer situation.
Until then we have to at least make it possible to release Kubeflow 1.9. At the moment Mathew can't even approve workflows for PRs which really stalls the development.

Hey folks, it's been a minute.
I agree with @andreyvelich on the importance of keeping kubeflow/kubeflow repo clean/empty and how people can add issues for all sorts of things. @thesuperzapper let's have a sync and write a plan and checklist with the things that need to get migrated and where. I can help with some of the toil work there as well as we tackle it in parallel.
My high level proposal is the following, after reading the comments:

Create a new kubeflow/notebooks repo and move there the Jupyter web app, example notebook servers and notebook controller

The jupyter web app can reference the common code in another repo similarly to models web app and katib web app
The notebook controller needs some common code, but we could start with copy/paste just to unblock for now

Create new kubeflow/control-plane and move there everything else
Setup dockerhub (or ghcr.io) credentials
Copy and slightly modify the existing CI to the corresponding repos
Update the docs with new references

I am not saying we can't split it up, just that there are no clear lines to split down, and we will likely still end up with the core components in kubeflow/kubeflow anyway.

@thesuperzapper I also agree that indeed the lines of what to split is not fully clear, and potentially then raise the question: What is kubeflow/control-plane and versioning scheme? But the above is good enough for me at this point to unblock the effort and I'm sure @andreyvelich and the @kubeflow/kubeflow-steering-committee will be willing to further define this in the future.
TL;DR: @thesuperzapper let's have a sync to see how we can most painlessly empty the kubeflow/kubeflow repo

But @andreyvelich in the interim, once we provide a plan, we'll really need to have write access to even work on the 1.9 release
https://github.com/kubeflow/internal-acls/pull/618#issuecomment-1986702241

Thank you for your comments @juliusvonkohout @kimwnasptd.

What is kubeflow/control-plane and versioning scheme?

Another solution could be to move it to kubeflow/manifests if these control plane components will be always versioned together with Kubeflow releases and will be used only when all Kubeflow components are installed, but we can discuss it separately.

But @andreyvelich in the interim, once we provide a plan

That makes sense @kimwnasptd, I am happy to unblock it. Let me get confirmation today form @kubeflow/kubeflow-steering-committee to move this forward.
In the meantime @kimwnasptd please can I ask you to create tracking issue in kubeflow/community repo with high-level proposal that you suggested above:  https://github.com/kubeflow/internal-acls/pull/618#issuecomment-2036432934
So we can track our ideas and discussions. We will work together in the future to improve it.

Another solution could be to move it to kubeflow/manifests if these control plane components will be always versioned together with Kubeflow releases and will be used only when all Kubeflow components are installed, but we can discuss it separately.

@andreyvelich
That could actually be more sensible since Kubeflow/manifests is to some degree kubeflow/control-plane already. We already have istio, knative, cert-manager and other stuff.

The KSC discussed the issues presented in this PR. The short term need for Notebook WG leads to obtain write access to github/kubeflow repo is acknowledged. KSC would like to ask the Notebook WG to work towards the long term solution of moving notebooks to a separate repo. The approval of this PR will be temporarily granted for 3 months, during which time the Notebook WG is asked to:

Create an issue for notebook repo migration (see comment for suggested work items)
Work with KSC on repo migration.

Please ACK this message if you are in agreement with this decision @thesuperzapper, @kimwnasptd, after which we will unblock this PR.
Thanks! - James (on behalf of KSC)

@kimwnasptd @thesuperzapper Please can you reply on the message above from @james-jwu to move this forward ?
As I mentioned before that should significantly help Kubeflow project to be more successful.

I have made an issue that we can use to discuss the next steps

See: https://github.com/kubeflow/kubeflow/issues/7549

@james-jwu I am ok with trying to move as much as we can out of the kubeflow/kubefow repo (as long as we are careful about it).

Since @thesuperzapper created tracking issue, I am happy to unblock this PR as @james-jwu suggested here: https://github.com/kubeflow/internal-acls/pull/618#issuecomment-2043257377
/assign @kubeflow/kubeflow-steering-committee

Thank you for this @andreyvelich @james-jwu!

/lgtm

/lgtm
/approve

@james-jwu I think someone will need to run the sync script, because I still don't have write access on kubeflow/kubeflow

@thesuperzapper this is fixed by @zijianjoy


Feature/v2 app configuration

Checklist

[x] Test your changes as thoroughly as possible before you commit them. Preferably, automate your test by unit/integration tests.
[x] Make sure mvn -P integration-tests clean verify runs for the whole project and, if you touched any code for a service in the services folder, ensure it can be run with spring-boot:run

Description
Host additional App Config on CDN for version 2 of the app_config_ios and app_config_android files.

It seems Sonar is failing because the coverage is too low. Is it because I removed some redundant config in https://github.com/corona-warn-app/cwa-server/pull/1231/commits/c6ec2a1114d7424bfdaa5e7aab69cccf6682e300?

It seems Sonar is failing because the coverage is too low. Is it because I removed some redundant config in c6ec2a1?
Sonar cloud is failing since the coverage on this branch was always too low, but for the first builds, for some reason, the coverage was not run.


chore(explorer): Update wagmi to v2 in the Explorer

What does this PR do?
Updates the Explorer to use Wagmi & Viem v2
Related ticket
Fixes #520
Type of change

[X] Chore
[ ] Bug fix
[ ] New feature
[ ] Documentation update

Check list

[ ] Unit tests for any smart contract change
[ ] Contracts and functions are documented

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

Project coverage is 48.84%. Comparing base (7f57adb) to head (bde3582).
Report is 1 commits behind head on dev.

Additional details and impacted files
@@            Coverage Diff             @@
##              dev     #832      +/-   ##
==========================================
- Coverage   48.96%   48.84%   -0.13%
==========================================
  Files          18       18
  Lines         388      389       +1
  Branches       61       63       +2
==========================================
  Hits          190      190
- Misses        195      196       +1
  Partials        3        3

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


Check Text in vscode Editor with lisp extension

Is your feature request related to a problem? Please describe.
From Christopher Cowgill's feedback in the beta forum:
In VLIDE, you can check your text and it will tell you if there is something wrong, such as having too many arguments in an If statement.  Is there anything like that for VSCODE?
Another thing that Check Text in Editor does that is useful is to show you what variables are global, so if you did not intend for it to be global, you can see your mistake and localize it
Describe the solution you'd like
the lisp extension should be able to check the text in vscode editor and mark the global variables.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

This priority is even higher now that VLC.exe is no longer available in default ACAD path.

@hualin-adsk testing...


Price in cents does not make sense.

Let's accept proper integers, floats being x100 and saved as integers.

It really isn't too big a deal to me to type two more zeros at the end of the prices, but I'm sure it would save confusion for some users.

Thanks for the feedback. Since I started accepting currencies that don't have any subcurrencies, I think it's simply best for me to leave it that way.


Is there a way to enable video streaming in HD ?

I want to get live video in HD from bebop 2 is there a way to enable it?
Currently the quality is really bad.

Hi,
No, there is currently no way to force the drone into higher resolution streaming, mainly due to restrictions in the video encoder and the priority given to the recorded video.
On a side note, questions about the SDK should be asked on the developer forum, and not in github issues ;)
Regards,
Nicolas.


separate_turn_on_commands: Adjust brightness first?

I would like to propose a user experience improvement to separate_turn_on_commands. Currently, when a command is split into two, the first command updates the color temperature, and the second one the brightness. I think that's not always ideal.
Here's an example (let's assume the initial_transition is set to 2 seconds):

Turn on lights during the day. AL sets brightness to 100%.
Turn off lights during the day.
Later during the night, you wake up and wander from your bedroom to your bathroom.
You turn on the bedroom lights. They first ramp up to 100% and burn your eyes for one second while AL adjusts the color temperature. Only afterwards, AL dims them down to 1%.
Relieved, you cross the hallway, where the same thing happens.
Then again in the bathroom. You're fully awake 😬😅

So at night, I'd rather have a dimmed light at a wrong color temperature (that adjusts with a little delay) than a shockingly bright light.  Overall, a correct brightness settings could be more important for the utility of a light than the color temperature, which tends to be more of a cosmetic function.
There are multiple factors determining if and how bad this really is perceived, e.g., the distance of the starting brightness/temperature to the desired value, the configuration (transition length, min/max brightness, ...), used hardware, user sensitivity, and the example describes a worst-case scenario. But overall, I think this would be an optimization for the more extreme cases while not negatively affecting lighter cases.
As for the implementation, I think it's just a reorder of the two if blocks here: https://github.com/basnijholt/adaptive-lighting/blob/9caf64509349958a340f8cef9207fdb0ea35dbef/custom_components/adaptive_lighting/switch.py#L290-L298
Bonus improvement affecting the same code block: Skip unnecessary commands where lights are already at the desired state (e.g., to minimize Zigbee traffic).
What do you think?

I guess we could do this. Bonus points if you can figure out a way to implement your feature without changing existing setups. You are correct that swapping those two if blocks would swap the order.

Bonus improvement affecting the same code block: Skip unnecessary commands where lights are already at the desired state (e.g., to minimize Zigbee traffic).

We already do this here (as requested in #80):
        # See #80. Doesn't check if transitions differ but it does the job.
        last_service_data = self.turn_on_off_listener.last_service_data
        if not force and last_service_data.get(light) == service_data:
            _LOGGER.debug(
                "%s: Cancelling adapt to light %s, there's no new values to set (context.id='%s')",
                self._name,
                light,
                context.id,
            )
            return
        else:
            self.turn_on_off_listener.last_service_data[light] = service_data

Why do you think this is necessary? Seen as an iterative improvement of an existing feature, which is typically rolled out to existing setups, this should not need a config flag. Unless, of course, someone makes a reasonable argument why this is disadvantageous and degrades it from an improvement to an optional tweak. Then it should be disabled by default anyway.

I feel it's important to maintain the core logic across multiple different versions. The only exceptions should be bug-related. This isn't a bug; so it's more desirable to create a configuration option that allows the user to specify what order they want their service data to be sent to light.turn_on.
The average user doesn't read the release notes and will mash the 'update' button expecting everything to work the same.

I am not sure what this code block does or if it does anything at all, but it doesn't prevent unnecessary commands. See this Z2M log-

The code I posted is supposed to check if the service data is exactly the same as what was sent in the previous adapt. It does this by logging the service data sent to the light each iteration, and then comparing it to the previous before calling light.turn_on.

As I understand your comment, the second adaptation command should not be sent? Bug? Anyway, this is related but different from what I proposed: What I meant is when commands are split, only those parts should be sent which actually change something. Continuing the example from above:

If you are using Adaptive Lighting 1.10.0 or later, that is indeed a bug you've reported. Would you mind enabling debug logging, reproduce the issue and post the adaptive lighting logs logged during that time? They would be very helpful for diagnosing the issue as I'm currently unable to reproduce it on my end.

Let's move the bug discussion over to #589 and continue the discussion of the actual feature proposal in here.

This suggest is ideal. My wife constantly complains about initial brightness transition, especially when carrying our newborn around at night. I ended up just disabling adaptive light brightness after sundown and using a specific brightness when motion is detected.
Ideally the light would turn on to specific brightness and temperature with no visible transition.

@TheAlphaLaw Using "adaptive lighting apply" to turn on the lights instead of just "turn on light" help for the initial brightness transition. But still having issues with brightness only very dim at like 3 in the morning and 1 hours later and before it's way to bright at more than 1%

Thank you I will try this, hopefully it helps with motion sensors. I wish there was a good way to do this with voice and my wall mounted tablets.