[tf2.1] model saving error for model with Batch Normalization layer and under MirroredStrategy

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Redhat 8.1 (in Docker)
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): TF2.1.0
Python version: 3.6.8
CUDA/cuDNN version: 10.1
GPU model and memory: V100, 32GB

Describe the current behavior
In TF2.1.0, if I build and compile a model with Batch Normalization layer under MirroredStrategy scope, model saving will throw some error like
KeyError: "Failed to add concrete function b'__inference_sequential_layer_call_and_return_conditional_losses_869' to object based saved model as it captures tensor tf.Tensor(<unprintable>, shape=(), dtype=resource) which is unsupported or not reachable from root. One reason could be that a stateful object or a variable that the function depends on is not assigned to an attribute of the serialized trackable object (see SaveTest.test_captures_unreachable_variable)."

I have tested with tf2.0.0 and this seems to be fine .
Code to reproduce the issue
import tensorflow as tf

def build_and_compile_model():

    input = tf.keras.Input((20,))
    x = tf.keras.layers.BatchNormalization()(input)
    y = tf.keras.layers.Dense(2)(x)

    model = tf.keras.Model(inputs=input, outputs=y)

    model.compile(
        loss=tf.keras.losses.sparse_categorical_crossentropy,
        optimizer=tf.keras.optimizers.SGD(learning_rate=0.001),
        metrics=['accuracy'])

    return model

strategy = tf.distribute.MirroredStrategy()
with strategy.scope():
    model = build_and_compile_model()
model.save('test', save_format='tf')

Other info / logs
Traceback logs as follows:
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/tmp/site-packages/tensorflow_core/python/saved_model/function_serialization.py in serialize_concrete_function(concrete_function, node_ids, coder)
     53     for capture in concrete_function.captured_inputs:
---> 54       bound_inputs.append(node_ids[capture])
     55   except KeyError:

/tmp/site-packages/tensorflow_core/python/util/object_identity.py in __getitem__(self, key)
    131   def __getitem__(self, key):
--> 132     return self._storage[self._wrap_key(key)]
    133

KeyError: <_ObjectIdentityWrapper wrapping <tf.Tensor: shape=(), dtype=resource, numpy=<unprintable>>>

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-13-a7ec70c505d2> in <module>()
----> 1 model.save('test10', save_format='tf')

/tmp/site-packages/tensorflow_core/python/keras/engine/network.py in save(self, filepath, overwrite, include_optimizer, save_format, signatures, options)
   1006     """
   1007     save.save_model(self, filepath, overwrite, include_optimizer, save_format,
-> 1008                     signatures, options)
   1009
   1010   def save_weights(self, filepath, overwrite=True, save_format=None):

/tmp/site-packages/tensorflow_core/python/keras/saving/save.py in save_model(model, filepath, overwrite, include_optimizer, save_format, signatures, options)
    113   else:
    114     saved_model_save.save(model, filepath, overwrite, include_optimizer,
--> 115                           signatures, options)
    116
    117

/tmp/site-packages/tensorflow_core/python/keras/saving/saved_model/save.py in save(model, filepath, overwrite, include_optimizer, signatures, options)
     76     # we use the default replica context here.
     77     with distribution_strategy_context._get_default_replica_context():  # pylint: disable=protected-access
---> 78       save_lib.save(model, filepath, signatures, options)
     79
     80   if not include_optimizer:

/tmp/site-packages/tensorflow_core/python/saved_model/save.py in save(obj, export_dir, signatures, options)
    921       compat.as_str(constants.SAVED_MODEL_FILENAME_PB))
    922   object_graph_proto = _serialize_object_graph(
--> 923       saveable_view, asset_info.asset_index)
    924   meta_graph_def.object_graph_def.CopyFrom(object_graph_proto)
    925

/tmp/site-packages/tensorflow_core/python/saved_model/save.py in _serialize_object_graph(saveable_view, asset_file_def_index)
    645   for concrete_function in saveable_view.concrete_functions:
    646     serialized = function_serialization.serialize_concrete_function(
--> 647         concrete_function, saveable_view.captured_tensor_node_ids, coder)
    648     if serialized is not None:
    649       proto.concrete_functions[concrete_function.name].CopyFrom(

/tmp/site-packages/tensorflow_core/python/saved_model/function_serialization.py in serialize_concrete_function(concrete_function, node_ids, coder)
     61         "trackable object "
     62         "(see SaveTest.test_captures_unreachable_variable)."
---> 63         % (concrete_function.name, capture))
     64   concrete_function_proto = saved_object_graph_pb2.SavedConcreteFunction()
     65   structured_outputs = func_graph_module.convert_structure_to_signature(

KeyError: "Failed to add concrete function b'__inference_sequential_1_layer_call_and_return_conditional_losses_1937' to object based saved model as it captures tensor tf.Tensor(<unprintable>, shape=(), dtype=resource) which is unsupported or not reachable from root. One reason could be that a stateful object or a variable that the function depends on is not assigned to an attribute of the serialized trackable object (see SaveTest.test_captures_unreachable_variable)."

Thanks so much for your time!

Thanks for reporting the issue and providing a small reproducible example. I checked that the issue is a regression in 2.1, but is already fixed in nightly.

I've tested the nightly docker image, but I still get the error: tensorflow/tensorflow:nightly-gpu-py3
KeyError: "Failed to add concrete function b'__inference_model_layer_call_and_return_conditional_losses_2786225' to object based saved model as it captures tensor tf.Tensor(<unprintable>, shape=(), dtype=resource) which is unsupported or not reachable from root. One reason could be that a stateful object or a variable that the function depends on is not assigned to an attribute of the serialized trackable object (see SaveTest.test_captures_unreachable_variable)."

I got the same as well.
I can model.save() using one gpu; but error comes under distributed training with mirrored stategy

Yes, I have verified.
TF2.0.0 could save the model
TF2.1.0 has an error like the post above

Hi, Yufeng
Please use TF2.2, it's a nightly version.

Hi, Yufeng
Please use TF2.2, it's a nightly version.

Yeah. I've tested that w/ the nightly version on colab and it is working. Thanks. @JiayuanSternLi
But I'm not sure why @jonyvp still got the error w/ the nightly version.

I can confirm it works with the latest nightly version.


openbullet/blackbullet DB

anyway to import all my hits from BB 2.5.1 to openbullet
or the best way to edit DB were hits are at ?
by the best program ever thanks for making it for us.
... x

BB -> SQLite database -> SQLite Browser
OB -> LiteDB database (NoSQL) -> LiteDB Explorer
You're welcome :]


mdx support

Just curious, will there be support for mdx added?

I too would like to know this.

Wonder if there is way to accomplish this with islands in fresh 🤔... Gonna go do some research.

As long as GitHub does not support mdx, I don't think it is in the scope of this repository. The need for hydration would also made this difficult.

This could definitely be hacked together, but I agree with @hashrock on the fact that this is out of scope. A third-party module using deno-gfm could definitely make it possible to support mdx.

Based on all that I'm seeing with this issue, it should probably be closed.  Not sure who can do that but closing this and identifying it as OOS would be great.

+1 on @Mrashes, especially since crowlKats seems to give an answer over at #20 as well


chore(master): release 1.1.3

:robot: I have created a release beep boop
1.1.3 (2022-03-01)
CI

update workflow (91cc5c5)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/kailong321200875/vue-element-plus-admin/releases/tag/v1.1.3 :sunflower:


Google Docs permissions

I'm not sure how much of an issue this is, but some of the DevTools explainers are available to be edited by everyone (specifically the Redux for State and Dual-screen Emulation).

Thanks for bringing this up.
@robpaveza for Redux for State
@zoherghadyali for Dual-screen Emulation
Please consider if you mind your docs being world-writable :)

Looks like we got these adjusted now. Thanks!


Feature/invalid json fix

@abhishekjain88 Looks great 👍  Thanks for adding "NoOpEventsIngestionExecutor" 👍
:shipit: Provided tests are passed...


ARROW-6592: [Java] Add support for skipping decoding of columns/field in Avro converter

Related to ARROW-6592.
Users should be able to pass in a set of fields they wish to decode from Avro and the converter should avoid creating Vectors in the returned ArrowSchemaRoot.  This would ideally support nested columns so if there was:
Struct A
{     int B;     int C; }
The use could choose to only read A.B or A.C or both.

cc @emkornfield

@emkornfield Thanks for your careful review, I updated PR.

@emkornfield PR updated, please help take a look again, thanks :)

Please see if you have other comments.

remind me again why this required factoring out Base class for consumers?  could the two PRs be split, it would make reviewing easier?

remind me again why this required factoring out Base class for consumers? could the two PRs be split, it would make reviewing easier?

Ok, I will split them.

@emkornfield I removed consumers refactor and add test for third level nested fields.

Codecov Report

Merging #5482 into master will increase coverage by 1.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #5482      +/-   ##
==========================================
+ Coverage   88.92%   89.94%   +1.02%
==========================================
  Files         988      738     -250
  Lines      134220   114349   -19871
  Branches     1501        0    -1501
==========================================
- Hits       119352   102854   -16498
+ Misses      14503    11495    -3008
+ Partials      365        0     -365

Impacted Files
Coverage Δ

cpp/src/arrow/status.h
91% <0%> (-2.55%)
:arrow_down:

cpp/src/plasma/thirdparty/ae/ae.c
70.75% <0%> (-0.95%)
:arrow_down:

cpp/src/arrow/util/thread_pool_test.cc
97.66% <0%> (-0.94%)
:arrow_down:

cpp/src/gandiva/precompiled/time.cc
94.68% <0%> (-0.91%)
:arrow_down:

cpp/src/arrow/python/arrow_to_pandas.cc
90.23% <0%> (-0.01%)
:arrow_down:

cpp/src/arrow/python/flight.h
80% <0%> (ø)
:arrow_up:

cpp/src/arrow/compute/kernels/hash_test.cc
100% <0%> (ø)
:arrow_up:

cpp/src/arrow/tensor_test.cc
100% <0%> (ø)
:arrow_up:

cpp/src/parquet/arrow/reader_internal.h
93.02% <0%> (ø)
:arrow_up:

cpp/src/arrow/util/string_builder.h
100% <0%> (ø)
:arrow_up:

... and 278 more

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 c8bcd70...66eb82a. Read the comment docs.

@emkornfield please see if you have other comments, thanks!

@emkornfield Hi, Micah, please see if we could get this merged, so I can start follow-up works :)

@tianchen92 I'm sorry, I should be able to get to this tomorrow.

Hmm, @emkornfield don't forget this one.

generally looks good, one thing looks suspicious. I think you should add a few more tests. Also, adding at least one test that skips two columns I think would be a good idea.

Thanks Micah, I fixed the union problem and add more tests(array type, skip two columns, skip union with one field, skip union with multi fields, skip union with null fields).

@tianchen92 after thinking about this some more I think we actually should have test(s) to make sure we skip all types properly.

@tianchen92 after thinking about this some more I think we actually should have test(s) to make sure we skip all types properly.

Hmm, thanks, I just added the tests :)

Thanks for the tests.  +1, will merge on CI green.

I reopened and build passed.

+1, thank you.


Switching to Plex  environment

Maybe this project works on Raspbian with Plex Media Server instead of OSMC? Of course will be needed some tweaks but I didn't like the OSMC and I already used Plex some time ago and its much better in my case, all my devices have the Plex app and the Raspberry don't need to always stay plugged on my TV and working as media server.
I found this guide about how to setup Plex in Raspberry.
Thanks.

OSMC is the base I used but I think that any other debian based should work too as long as the packages are available for install. This project is nothing else that the configuration of transmission, flexget, subliminal and a few other more tools (which are not OSMC's).
I used Plex years ago and I really liked it, but when I did it there wasn't the ability of downloading the subtitles from the UI. I don't know if this is still true, but it would be very interesting to see it running on Plex if anyone has the time to test it.


Issues working with remix and any other fetch polyfills or CJS/ESM mismatches

What happened?
Using a more browser compliant fetch api like @remix-run/node uses will cause a lot of "response" must be an instance of Response errors due.
Similar to https://github.com/remix-run/react-router/pull/9690
Version
2.0.6
Runtime
Node.js
Runtime Details
Node and Remix framework
Code to reproduce
import * as o from "oauth4webapi"

let discoveryResponse = await o.discoveryRequest(issuer)
const as = await o.processDiscoveryResponse(issuer, discoveryResponse)

Required

[X] I have searched the issues tracker and discussions for similar topics and couldn't find anything related.
[X] I agree to follow this project's Code of Conduct

The fix would be the same as react-router, implement an isResponse function instead of the instance of. E.g
function isResponse(value: any): value is Response {
  return (
    value != null &&
    typeof value.status === "number" &&
    typeof value.statusText === "string" &&
    typeof value.headers === "object" &&
    typeof value.body !== "undefined"
  );
}

  if (!isResponse(response)) {
    throw new TypeError('"response" must be an instance of Response')
  }

If I make a PR is that something you would be good with?

The issue is that @remix-run/node is not consistent in its globals. I suspected node's own fetch implementation may be meddling in but that's not the case, I checked even with NODE_OPTIONS='--no-experimental-fetch'.
The library uses a global fetch() and expects an instanceof global Response to be true on its returned responses. That is a fair expectation of any javascript runtime that has these globals available.
I will not do workarounds for inconsistent runtimes, it starts with Response, then Headers, then CryptoKey.
https://github.com/remix-run/remix/issues/4395 is likely the same issue. The authors of remix seem to think we need to require fetch, but global is a global for a reason.

Understandable and thanks for looking into it.


Append to log on --continue

Echo the Restarting install process message to the log file, to indicate that an attempt to resume from an error has been made.
By submitting pull requests to this repo, I agree to the Contributor License Agreement which can be found at: https://github.com/cpanel/elevate/blob/main/docs/cPanel-CLA.pdf

Let's revisit this after completing #83


Tests being skipped

Hi!
I've not had a chance to debug this fully yet, however, I've found that with this installed, all of my tests are being skipped (pytest=5.3.1).
I suspect that something may have changed around the way that modifying test collection works in newer versions of pytest, probably meaning that something needs to change around: https://github.com/GlobalRadio/pytest-appium/blob/master/pytest_appium/conftest.py#L202

@benhowes same issue... I'm, unfortunately, don't have enough time to fully investigate this right now, but features provided by pytest-appium plugin is so helpful and valuable, that I would consider to help fixing it.


[3.x] Fix TreeItem.remove_child not updating Tree immediately

Fixes #69553
Previously, the tree->update() call won't be reached when the function succeeds.

Thanks!

Cherry-picked for 3.5.2


Before config and invocation not executed in right behavior when previous method failed

TestNG Version
7.5
Expected behavior
when previous config method failed, the next method's config and invocation method all executed
Actual behavior
only invocation method has been executed.
Is the issue reproducible on runner?

[ ] Shell
[x] Maven
[ ] Gradle
[ ] Ant
[ ] Eclipse
[x] IntelliJ
[ ] NetBeans

Test case sample
public class SampleListener implements ITestListener, IInvokedMethodListener, IConfigurationListener {
  @Override
  public void beforeInvocation(IInvokedMethod method, ITestResult testResult) {
    System.out.println("before invocation executed");
  }

  @Override
  public void beforeConfiguration(ITestResult testResult) {
    System.out.println("before configuration executed");
  }
}

@Listeners({SampleListener.class})
public class IssueTest {
  @BeforeClass
  public void beforeClass() {
    int i = 5/0;
  }

  @BeforeMethod
  public void beforeMethod() {

  }

  @Test
  public void issueTest() {
    System.out.println("hello world");
  }
}

Contribution guidelines
Incase you plan to raise a pull request to fix this issue, please make sure you refer our Contributing section for detailed set of steps.

Could confirm that the configuration method is not called?
What is the state of ITestResult when the listener method is called?

@bj-9527 - I am not quite sure I understand this issue.
Here's what I see.

Your @BeforeClass method threw an exception
This means that nothing in that class is now going to be eligible for being executed because a higher level configuration failed.
That explains why the @BeforeMethod was skipped because when it comes to "weightage" a @BeforeClass is more important than a @BeforeMethod
The test got skipped because there's a configuration failure.
The listener is being invoked ONLY for the beforeClass() configuration. So IMO, all is well.

Please feel free to chime in if I have misunderstood this issue. If this answers your question, please feel to close off this issue.

Could confirm that the configuration method is not called?

@juherr - beforeMethod() is NOT invoked.

What is the state of ITestResult when the listener method is called?

The state of ITestResult is

STARTED in beforeInvocation() and
in afterInvocation()

beforeMethod() --> SKIPPED
beforeClass() --> FAILURE

@krmahadevan Looks good to me.
Did the behavior change in the latest release?

@krmahadevan thanks for clarify.
In this case, what I expect is that if the listener will execute, then all listeners method should be execute.
In my case, we will do some initial in before config, then go before invocation, but if the previous before class failed, the only the before invocation will be called, in this scenario, we will lose the initial part, it would cause confused result.

@krmahadevan Looks good to me. Did the behavior change in the latest release?

In 6.14.3, the result is the listener method for before method will not execute, in 7.4 or 7.5, it will only call the before invocation

@bj-9527
I made some pretty printing modifications to the listener and here's the output comparison across 7.5, 7.4.0 and 6.14.3
7.5
Version testng-7.5.jar
beforeConfiguration executed for configurationmethod beforeClass() and its status was STARTED
beforeInvocation executed for configurationmethod beforeClass() and its status was STARTED
afterInvocation executed for configurationmethod beforeClass() and its status was FAILURE
beforeInvocation executed for configurationmethod beforeMethod() and its status was STARTED
afterInvocation executed for configurationmethod beforeMethod() and its status was SKIP
beforeInvocation executed for testmethod issueTest() and its status was SKIP
afterInvocation executed for testmethod issueTest() and its status was SKIP

Version testng-7.4.0.jar
beforeConfiguration executed for configurationmethod beforeClass() and its status was STARTED
beforeInvocation executed for configurationmethod beforeClass() and its status was STARTED
afterInvocation executed for configurationmethod beforeClass() and its status was FAILURE
beforeInvocation executed for configurationmethod beforeMethod() and its status was STARTED
afterInvocation executed for configurationmethod beforeMethod() and its status was SKIP
beforeInvocation executed for testmethod issueTest() and its status was SKIP
afterInvocation executed for testmethod issueTest() and its status was SKIP

Version testng-6.14.3.jar
beforeInvocation executed for configurationmethod beforeClass() and its status was SUCCESS
afterInvocation executed for configurationmethod beforeClass() and its status was FAILURE
beforeInvocation executed for testmethod issueTest() and its status was CREATED
afterInvocation executed for testmethod issueTest() and its status was CREATED

Analysis:

beforeConfiguration() didn't exist for 6.14.3
beforeConfiguration() method is not being invoked for skipped configurations (This is consistent across 7.4.0 and 7.5)

So now I would need to know what is this bug tracking ?
Is this issue suggesting that beforeConfiguration() is NOT being invoked for skipped configurations ?
If yes, please have this defect updated with the proper description and expectation.
@juherr - I hope this adds clarity to your questions that you were asking for.

Is this issue suggesting that beforeConfiguration() is NOT being invoked for skipped configurations ?

Yes, as I described before, when execution comes to before method, all the listener method should be executed.
the expected order is like:
beforeConfiguration executed for configurationmethod beforeClass() and its status was STARTED
beforeInvocation executed for configurationmethod beforeClass() and its status was STARTED
afterInvocation executed for configurationmethod beforeClass() and its status was FAILURE

//this method is expect to call
beforeConfiguration executed for configurationmethod beforeMethod() and its status was STARTED

beforeInvocation executed for configurationmethod beforeMethod() and its status was STARTED
afterInvocation executed for configurationmethod beforeMethod() and its status was SKIP
beforeInvocation executed for testmethod issueTest() and its status was SKIP
afterInvocation executed for testmethod issueTest() and its status was SKIP

If the beforeClass is not failed, it would like:

What I expect is that normal and abnormal behaviour would be aligned.

@bj-9527 - Ok. I have updated the issue title and description to match the expectation. Please take a look

@bj-9527 - Ok. I have updated the issue title and description to match the expectation. Please take a look

Thanks a lot, it becomes more clear, I will try to raise  PR later


Using this in Nuxt/Vuex setup - Error -  import: export 'default' (imported as 'immutable') was not found in 'object-path-immutable'

In package json:
  "dependencies": {
    "@nuxtjs/axios": "^5.3.6",
    "cross-env": "^5.2.0",
    "express": "^4.16.4",
    "nuxt": "^2.0.0",
    "object-path-immutable": "^4.1.0"
  },

Importing it like this:
import immutable from "object-path-immutable";
Using it in a vuex mutation like this:
const mutations = {
  updateComponent: (state, { treePath = [], updatedComponent = {} }) => {
    state.componentTree = immutable.update(
      state.componentTree,
      treePath.join(".children."),
      updatedComponent
    );
    return state;
  }
};

Not sure if I'm doing anything wrong, cant find much about using this in this particular setup. Simply followed the docs to get started and I can't seem to overcome this yet.
Tried destructuring it to get the "update" function, tried es5 imports using require, neither worked with varying errors.
With the es5 imports, the error message was something like: TypeError: updater is not a function at update (object-path-immutable.js?bfd9:138)
Also tried to transpile it in the nuxt config: transpile: [/^vuetify/, /^object-path-immutable/], with es5/es6 imports, neither worked

nevermind, i was just using it wrong, thank you


Add a 'Stock videos' category

Consider adding a category for free stock videos and related resources.

Do you mean like a pixabay that provide free images, you want yours to be video under one category?

Yes, I wanted to add a resource like pixabay, and it offers only free stock video clips ( https://coverr.co/), but I wasn't sure if I should add it under the Photos category.

yes i wanted to add resources related stock videos in  your project could you please give us opportunity to make it
better

@markodenic not a bad idea right? Can I add that category? Or is there a reason we don't have it?

@breakerh Sure, you can add it. Thanks!

@anthonychinwe @markodenic If this issue is not yet resolved, can you please assign this to me. I am a beginner in Open source world, and I am trying to figure out how things work. I can add a category for free stock videos and related resources in it as well. And it would be of great help if you can label this with hacktoberfest.

@siddhant7666 Done! Thanks!

@markodenic I have successfully resolved the issue and made a PR. Please suggest me if some changes are needed there, and alongwith it I have made you a request of labeling the issue with hacktoberfest and hactoberfest-accepted

Thank you for doing so @siddhant7666 !
Seems like I've totally missed the assignment. Sorry.

Ahh.....no worries @breakerh Sir.

@breakerh Sir can you please label that pr with  hacktoberfest and hactoberfest-accepted. It will be of great help to me.
As I have participated in Biggest Open Source Festival and we have to make 4 successfull PRs
Thanks

Hey, can you assign this to me?

Hello @devharshu , this issue has been resolved already.
If you want to contribute to the repo then keep looking for the new issue or you can raise an issue too.
Thanks

Okay, Thanks @siddhant7666


Consider style guide addition for shorthand functions with return type void

I just read the style guide and wondered if it would a good idea to mention that shorthand function syntax should not be used for functions with return type void
bad
set someProp(String value) => _someProp = value

void foo() => doSomething();

/cc @Hixie , keeper of the style guide.

Why shouldn't it be used for functions that return void?

because shorthand function implicitly return the result of the expression.
@lhrn mentioned that no PR would pass his review containing such code

If the return type doesn't match, then the analyzer will report it. But if it does match, e.g. in your doSomething example assuming doSomething returns void itself, I don't understand the problem.

Right, it does for
void foo() => doSomething();

but it doesn't for
set someProp(String value) => _someProp = value

Perhaps that is the actual bug to report?

If the analyzer doesn't warn about the type mismatch in that case then yes, that seems like a good thing to report to the analyzer team.


how to produce and consume message at the same file or module （like nats.js）

I need to write a server code that consumes messages from clients and produces messages to other clients. how to do that?

Hey @samsomlan ,
I suggest to start with our docs

thanks yanivbh1。all the document and example only give the simple example to show how to use producer or consumer independent。 I need to write a server side app， some client app send message to it  ，and it also send some control message to other client base one the message in the queue 。 can you give me a simple example ?

Not sure what example do you need, but I am suggesting again to do some reading.


4.0.6 "Not connected"

Not able to connect to any server in 4.0.6.... Same issue in Ubuntu 22 and Windows 10
Clean install, standard wallet, recovering from seed. Standalone 4.0.6 in Windows 10, and running ./run_electrum_nmc in Ubuntu 22.
It just sits with big red circle, saying "Not connected", in both instances, regardless of automatic server selection or choosing one directly. There's no network traffic either, so its not as if its syncing in the background. Please advise.
edit: I briefly saw it say "Syncing 0/30" but then went back to "Not connected"

It auto-connected for a moment before dropping. Terminal printed this:
W/i | interface.[<IP_ADDRESS>:57002] | disconnecting due to GracefulDisconnect(RPCError(-101, 'excessive resource usage'))

Hi, thanks for the bug report! That sounds like it's due to a combination of:

The checkpoint is old, so it needs to download a lot of headers.
Namecoin headers are much larger than Bitcoin headers.
Probably the default rate limits on ElectrumX don't account for the bigger header size.

I'll look into fixing this, but it won't happen in the next month (due to an announcement incoming shortly). You could maybe try using Tor and see if that helps, but it might not.

Thanks for reply -- re your first point, this implies that it's downloading headers in the background? I don't see network traffic though.
What would be the most recent version that would not have this issue?

Also, is there an archive where we can download an older version that doesn't have this issue?

~ bump ~

在 2024-07-05 03:49:34，"noospheer" @.***> 写道：
~ bump ~
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks for reply -- re your first point, this implies that it's downloading headers in the background? I don't see network traffic though.

The error message you pasted indicates that there was network traffic. You wouldn't be getting that error from an ElectrumX server if there weren't a connection to an ElectrumX server.

What would be the most recent version that would not have this issue?

I don't think we've bumped the checkpoint for a while (I'll do this before branching the next release), but for issues caused by an outdated checkpoint, naturally things would be monotonically better with newer versions.

edit: same issue with the AppImage 4.0.6

Yeah there's no reason why the AppImage would behave differently from any other binary produced by the same tag.

Could you check what height you're currently synced to? I'd like to look at whether perhaps any of the nearby block headers are unusually large, which might inform an ElectrumX patch.

Network: Blockchain: 586655 blocks

.

@JeremyRand


Add kustomization.yaml

By adding a kustomization.yaml to the deploy/ directory, users who want to include this handler in their downstream builds will be able to do so easily by adding
- github.com/GoogleCloudPlatform/k8s-node-termination-handler.git//deploy/

to their resources array in their own kustomization files.

Mentioning @vishh 🙂

/lgtm

So following the readme, will get an error.
$ kubectl apply -f deploy/
daemonset.apps/node-termination-handler created
serviceaccount/node-termination-handler created
clusterrole.rbac.authorization.k8s.io/node-termination-handler created
clusterrolebinding.rbac.authorization.k8s.io/node-termination-handler created
error: error validating "deploy/kustomization.yaml": error validating data: [apiVersion not set, kind not set]; if you choose to ignore these errors, turn validation off with --validate=false

It should have been:
$ kubectl apply -k deploy/


[SBC-870]refactor to using custom RuleExt, not using Robin IRule.

Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Make sure there is a JIRA issue filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Format the pull request title like [SCB-XXX] Fixes bug in ApproximateQuantiles, where you replace SCB-XXX with the appropriate JIRA issue.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Run mvn clean install to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

refactor to RuleExt
fix a bug required=true that int will have default value
This commit is a initial commit, I am going to add more tests

Coverage decreased (-0.01%) to 86.169% when pulling c1ab6c5be36681b590d6813330fd58d826f95deb on liubao68:empty_param into ea17cca3e2e35a2f2b779533189f242b0b1f9324 on apache:master.


Add a fingerprint for each EvaluationModule

In order to support #126 we need to fingerprint whichever EvaluationModule (metric, measurement, etc) we're using for later reproducibility.
This extracts the already-computed hash from each EvaluationModule and makes it easy to access in the evaluation_cls via module._fingerprint, similar to how in datasets you can do ds._fingerprint.
Test via
module = evaluate.load("lvwerra/element_count", module_type="measurement")
print(f"Module fingerprint: {module._fingerprint}")

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Sounds good to me - also have no strong opinion :)

Renamed, thanks for the clarification on hash vs. fingerprint!


Req: Support matching multiple message events

If a message contains multiple matches, it seems that Bolt will only call the first message handler that matches, and then stop processing the message event.
I would like to see Bolt have a way to continue handling other message events.
Category

[X] slack_bolt.App and/or its core components
[X] slack_bolt.async_app.AsyncApp and/or its core components

Example
    @app.message("ping")
    async def message_ping(self, message: Dict, say: AsyncSay):
        await say("Pong!")

    @app.message("pong")
    async def message_pong(self, message: Dict, say: AsyncSay):
        await say("Ping!")

If I send the message Testing ping pong responders, I expect Bolt to respond twice, saying both Pong! and Ping!, but it only returns Pong!
This is a silly example meant to demonstrate the issue, but there are real-world use cases where a message can contain multiple "triggers" that should all be processed by the app.
I'm thinking that this could be implemented like middleware, where message handlers could (optionally) call next() to have Bolt continue processing other message handlers.
(Unfortunately this is a blocking issue for me, so if you have any ideas on how to work around it, I'm open to suggestions!)

Bolt intentionally ignores events generated by the same app's bot user. This is useful for preventing a common infinite-loop situation where your bot user endlessly replies to its own messages in a channel.
For instance, if the following code works, the Bolt app get stuck in a loop. A similar situation may easily arise.
@app.message("ping")
def handle_ping(event, say):
    say(f"pong >{event['text']}")

@app.message("pong")
def handle_pong(event, say):
    say(f"ping >{event['text']}")

The safeguard for this is implemented as a built-in middleware.

https://github.com/slackapi/bolt-python/blob/v1.3.2/slack_bolt/app/async_app.py#L290
https://github.com/slackapi/bolt-python/blob/v1.3.2/slack_bolt/middleware/ignoring_self_events/async_ignoring_self_events.py

there are real-world use cases where a message can contain multiple "triggers" that should all be processed by the app.

If the message is not for your end-users, I don't recommend posting the message in a channel. As your app already know the current state of the task, the app should be able to manage it without posting unnecessary messages in Slack.
For kicking off or running multiple operations, you can use lazy listener functions as a handy way. The feature is implemented mainly for FaaS support but it's useful for non-FaaS apps too (it uses threads by default). Although the document says it's in beta, it just means we haven't decided to implement the same feature in other Bolt frameworks (JavaScript, Java).
def accept(say):
    say("We'll update you when the task is completed!")

def start_new_task(entity, say):
    # pseudo code
    task_database.insert(entity)
    # another thread watches the database updates

app.message("trigger something")(
    ack=accept,
    lazy=[start_new_task]
)

def run_task():
    # check if there is a new row in task database
    pass

task_processor = Thread(run_task)
task_processor.start()

or
def accept(say):
    say("We'll update you when the task is completed!")

def run_multi_step_task(event, say):
    # step 1
    # step 2
    say("Completed!")

app.message("trigger something")(
    ack=accept,
    lazy=[run_multi_step_task]
)

Another solution is that simply continuing to run your workflow after ack() call. For Events API, ack() call is automatically done by Bolt at the beginning of listener execution. This does not cause 3 second timeout errors.
def run_task(event, say):
    say("We'll update you when the task is completed!")
    # step 1
    # step 2
    say("Completed!")

app.message("trigger something")(run_task)

If you need to run multi-step operations, as the above pseudo code shows, your app may want to have a kind of task manager or task queue in your app. In any case, posting a message only for triggering your app's code is not the only way to go and I don't recommend the approach from user experience perspective.

Wow, thanks for the comprehensive reply. 👍
I totally understand the importance of a bot not responding to its own messages! 🤖
I think I may have explained my issue poorly, or at least used a bad example. 😮 I'm going to try again:

Let's say I have handlers for two keywords, both of which generate different publicly-visible in-channel responses when they are detected in a message.
@app.message(re.compile(r"\bBug \d+\b", re.I))
...

@app.message(re.compile(r"\bCase \d+\b", re.I))
...

i.e. if somebody say Can somebody look at bug 314?, the bot replies with a message linking to "bug 314". Similarly if somebody says Check case 2778 first, the bot replies with a link to "case 2778". The problem is, the bot I'm trying to replace will respond to both triggers when somebody says them in the same message: Need 👀 on bug 456 (which is related to case 5150) would result in links to the bug and case being posted to the channel by the bot.
However, with the way Bolt processes listeners, it's "first match wins", so as soon as a listener returns a response, it stops processing any further listeners. (I think it's this code that's exiting the loop.)
So, this feature request is to have some way for listeners to indicate to he for listener in self._async_listeners loop to continue, and run the other listeners, even if the listener generated a response.
Does that make more sense?

Thanks for elaborating on your need. I'm sure now I understand your use case.

So, this feature request is to have some way for listeners to indicate to he for listener in self._async_listeners loop to continue, and run the other listeners, even if the listener generated a response.

In Bolt for Python, we are not planning to apply this change at this point. Of course, it's possible to loosen the limit. However, fundamentally speaking , only one listener should be responsible for responding to an incoming request. In other words, ack() should be done only once (in the case of Events API, it's done under the hood). Changing this assumption may cause confusion (say, your secondary matched function wanted to respond with 400 Bad Request but the primary one already returned a successful response).
Therefore, my suggestion for this use case is to use a pattern that matches both "bug" and "case" like @app.message(re.compile(r"(Bug|Case)\b+\d+", re.I)) and to extract multiple bug/case numbers inside the listener.

Thanks for the prompt reply!
Given that Bolt is the only Events API library I've found with Socket Mode and Async support, I'm thinking of how to work around this for my use case. (I really don't want to roll my own Socket Mode Async Event API library if I can help it!)
The bot I'm trying to modernize has (literally) dozens and dozens of individual classes, each with a unique purpose and several message listeners. It would be very messy to combine them all.
Given the "single ack() per event" architecture of Bolt, I'm thinking one approach might be something like this:
Don't use any @app.message listeners at all. Instead, I'm thinking I could use a single @app.event("message") listener. I would register each of the internal keyword handlers to my own list of "matchers", then have the single "message" handler test for matches, call all the handlers that trigger a match, and then finally, combine multiple responses into a single Block Kit-based response so I only send one message.

I do not know about your app but probably the approach may work well.
One thing I can suggest is that your app may want to filter subtypes this way:
@app.event({"type": "message", "subtype": (None, "bot_message")})
def handle_only_new_messages(event):
    your_own_message_processor.handle(event)

@app.event("message")
def acknowledge_other_message_subtypes():
    # just for acknowledging other subtypes
    pass

The handle_only_new_messages handler matches only newly posted messages. If you want to handle others as well, you can add more subtypes to the tuple in the constraints. See https://api.slack.com/events/message#message-event-type__message-subtypes for the list of available subtypes.

I'm going to go ahead and give this approach a try. Thanks for the tip about filtering out messages!
Can you provide any context about this comment?
    # As of Jan 2021, most bot messages no longer have the subtype bot_message.

If I want to ignore any events from a "bot", is there an easy way to look at the is_bot field in the authorizations section of the Events metadata? Would it be possible to use global middleware to just "skip" all events where is_bot is True?

Can you provide any context about this comment?

The second line in the comment was a bit unclear. I just updated the line. The reason why there are two patterns is Slack app's permission model migration: https://api.slack.com/authentication/token-types#bot
Messages posted by most apps with the current permission model don't have the subtype. On the other hand, messages by "classic" apps always have the subtype. Other apps in a workspace may send a message with the subtype.

If I want to ignore any events from a "bot", is there an easy way to look at the is_bot field in the authorizations section of the Events metadata? Would it be possible to use global middleware to just "skip" all events where is_bot is True?

The is_bot flag under authorizations is not suitable for the purpose. The flag tells whether an event is a bot event. Here is a screenshot of Slack app configuration page:

Most apps utilize bot events to receive notifications from Slack. In this case, is_bot is always true. If an event is the one on behalf of users, the field is false.
If you want to have a global middleware that does the same with the listener matcher I shared above, the code can be like this:
from slack_bolt import BoltResponse

@app.middleware
def skip_bot_message_events(body, logger, next):
    event = body.get("event", {})
    is_message_event = event.get("type") == "message"
    is_bot_message = event.get("subtype") is None and event.get("bot_id") is not None
    is_classic_bot_message = event.get("subtype") == "bot_message"
    if is_message_event and (is_bot_message or is_classic_bot_message):
        # just acknowledge the request
        logger.debug("Skipped a message from a bot user")
        return BoltResponse(status=200, body="")
    # continue processing
    next()

Thank you (as always!) for the informative reply.
I also very much appreciate you taking the time to provide a working skip_bot_message_events global middleware example! (One less thing to worry about in all the individual listeners. 🎉)
Your time is very much appreciated.
The question in my original issue has been answered, and it has now drifted off-course (my fault!) so I'm going to close it. Thanks again!


Passing Additional Parameters to callback function ?

If I want directive selected-object="memberAssigned(selected, arg1, arg2)"
How can I do that ?
Thank you.

What are arg1 and arg2? Do they change based on input?
Basically selectedObject function takes only one.
Depending on your needs, possibly you can use closure function.


Add node 6 under engines in package.json

Description
Add node v 6.0.0 to engines
Purpose
Highlight that at least node 6 is required for this repo (due to webdriver)

fyi @fippo


Declare Python package and expose some API

The tool has been working nicely for me so far, hence some polishing here so it's easier to be used as a dependency.
Breaking changes:

Invocation is now python3 -m pacfix (or simply pacfix) instead of pointing Python to the source file.  For incremental development, pip install -e ./ should work.
CLI error messages differs slightly.
Python ≥ 3.9 (available from Ubuntu 20.04 and above) is required for PEP 585, e.g. list[int].  In reality I'm just too lazy to track down the minimum supported version otherwise.

I roughly filled pyproject.toml, most metadata there might need correction.  In addition, I would like to incorporate my modifications under a free software license, preferably copyleft.  Please don't merge as-is since the licensing would default to all rights reserved and not very useful.
The changes are split into (IMHO) reasonably self-contained commits.  I wish I could submit them in separate PRs but they touch the same set of files.  The diffs should be clearer when review on a commit-by-commit basis.

Thanks for the merge!

BTW could you please tag the commit
corresponding to the release published on PyPI?

I'v added a tag v0.0.1

Thanks!


Added a test watcher

Never used a test watcher in JUnit, is this the cleanest implementation
Any other feedback to make this implementation cleaner?

your test watcher is better than the one I made. It would look even nicer with SauceBindings :)


CAMEL-12059: Remove redundant null checks from instanceof checks

If this PR is left open long enough it will get stale but I can easily discard and re-run the IntelliJ replacement that generated it

Good, checkstyle is ok. However please see few remarks in the review.

Force-pushed same change without superfluous re-formatting

Sadly, I have nothing to share that would do this. Thanks for corrections @drekbour, I will find a spot to merge this.

@aldettinger do you want to merge?

@oscerd please merge if you have time. This PR is ok in my opinion. Checkstyle is good. However, I was not able to test a full build due to the FileConsumeTemplateTest.testConsumeFileWithTemplate issue on my machine.

The unit test FileConsumeTemplateTest has just been fixed

Merged on master. Thanks for the PR.


Unique Identification of ODrives

Any system that uses multiple ODrives will need a way to repeatably tell them apart. We can use the 96bit unique identifier register that is available in the STM chips for this.

Adressed by #59


Failing to compute eigenvalues of Hermitian matrices

Hello, I am trying to use JAX for a project that involves diagonalizations of Hermitian matrices.  So far, I wasn't able to do so when using several TPU cores on Colab.  Instead,
import numpy as np
import jax
import jax.numpy as jnp
from jax.tools import colab_tpu
colab_tpu.setup_tpu()

n = 10

x = np.random.random((n, n))
y = np.random.random((n, n))
z = x+1j*y
np_hermitian = z + np.conjugate(np.transpose(z))

jnp_hermitian = jax.device_put(np_hermitian)

w, v = jnp.linalg.eigh(jnp_hermitian)

with jax.__version__ = 0.2.9 gives me the following error message:
---------------------------------------------------------------------------

RuntimeError                              Traceback (most recent call last)

/usr/local/lib/python3.6/dist-packages/jax/interpreters/xla.py in primitive_computation(prim, axis_env, backend, tuple_args, *avals, **params)
    337   try:
--> 338     return c.build(ans)
    339   except RuntimeError as e:

RuntimeError: Invalid argument: Type of the input matrix must be float: got c64[10,10].:

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

RuntimeError                              Traceback (most recent call last)

12 frames

<ipython-input-2-b15992c78a74> in <module>()
     14 jnp_hermitian = jax.device_put(np_hermitian)
     15
---> 16 w, v = jnp.linalg.eigh(jnp_hermitian)

/usr/local/lib/python3.6/dist-packages/jax/_src/numpy/linalg.py in eigh(a, UPLO, symmetrize_input)
    277
    278   a = _promote_arg_dtypes(jnp.asarray(a))
--> 279   v, w = lax_linalg.eigh(a, lower=lower, symmetrize_input=symmetrize_input)
    280   return w, v
    281

/usr/local/lib/python3.6/dist-packages/jax/_src/lax/linalg.py in eigh(x, lower, symmetrize_input)
    109   if symmetrize_input:
    110     x = symmetrize(x)
--> 111   v, w = eigh_p.bind(x, lower=lower)
    112   return v, w
    113

/usr/local/lib/python3.6/dist-packages/jax/core.py in bind(self, *args, **params)
    280     top_trace = find_top_trace(args)
    281     tracers = map(top_trace.full_raise, args)
--> 282     out = top_trace.process_primitive(self, tracers, params)
    283     return map(full_lower, out) if self.multiple_results else full_lower(out)
    284

/usr/local/lib/python3.6/dist-packages/jax/core.py in process_primitive(self, primitive, tracers, params)
    626
    627   def process_primitive(self, primitive, tracers, params):
--> 628     return primitive.impl(*tracers, **params)
    629
    630   def process_call(self, primitive, f, tracers, params):

/usr/local/lib/python3.6/dist-packages/jax/_src/lax/linalg.py in eigh_impl(operand, lower)
    449
    450 def eigh_impl(operand, lower):
--> 451   v, w = xla.apply_primitive(eigh_p, operand, lower=lower)
    452   return v, w
    453

/usr/local/lib/python3.6/dist-packages/jax/interpreters/xla.py in apply_primitive(prim, *args, **params)
    236 def apply_primitive(prim, *args, **params):
    237   """Impl rule that compiles and runs a single primitive 'prim' using XLA."""
--> 238   compiled_fun = xla_primitive_callable(prim, *unsafe_map(arg_spec, args), **params)
    239   return compiled_fun(*args)
    240

/usr/local/lib/python3.6/dist-packages/jax/_src/util.py in wrapper(*args, **kwargs)
    196         return f(*args, **kwargs)
    197       else:
--> 198         return cached(bool(FLAGS.jax_enable_x64), *args, **kwargs)
    199
    200     wrapper.cache_clear = cached.cache_clear

/usr/local/lib/python3.6/dist-packages/jax/_src/util.py in cached(_, *args, **kwargs)
    189     @functools.lru_cache(max_size)
    190     def cached(_, *args, **kwargs):
--> 191       return f(*args, **kwargs)
    192
    193     @functools.wraps(f)

/usr/local/lib/python3.6/dist-packages/jax/interpreters/xla.py in xla_primitive_callable(prim, *arg_specs, **params)
    280         f"available on backend {backend.platform}.")
    281   built_c = primitive_computation(prim, AxisEnv(nreps, (), ()), backend,
--> 282                                   tuple_args, *avals, **params)
    283   options = xb.get_compile_options(
    284       num_replicas=nreps,

/usr/local/lib/python3.6/dist-packages/jax/_src/util.py in wrapper(*args, **kwargs)
    196         return f(*args, **kwargs)
    197       else:
--> 198         return cached(bool(FLAGS.jax_enable_x64), *args, **kwargs)
    199
    200     wrapper.cache_clear = cached.cache_clear

/usr/local/lib/python3.6/dist-packages/jax/_src/util.py in cached(_, *args, **kwargs)
    189     @functools.lru_cache(max_size)
    190     def cached(_, *args, **kwargs):
--> 191       return f(*args, **kwargs)
    192
    193     @functools.wraps(f)

/usr/local/lib/python3.6/dist-packages/jax/interpreters/xla.py in primitive_computation(prim, axis_env, backend, tuple_args, *avals, **params)
    341            "This is a bug in JAX's shape-checking rules; please report it!\n"
    342            "https://github.com/google/jax/issues\n")
--> 343     raise RuntimeError(msg) from e
    344
    345 def primitive_subcomputation(prim, *avals, **params):

RuntimeError: Invalid argument: Type of the input matrix must be float: got c64[10,10].:
This is a bug in JAX's shape-checking rules; please report it!
https://github.com/google/jax/issues

Any help will be highly appreciated.

Hi, thanks for the report.
The issue is that TPU SVD implementation does not support complex inputs. Until that is supported, I don't know of a workaround apart from using a CPU or GPU backend instead.

Hi, thanks for the report.
The issue is that TPU SVD implementation does not support complex inputs. Until that is supported, I don't know of a workaround apart from using a CPU or GPU backend instead.

Thank you very much for your quick response.  By any chance, is it foreseeable when this feature is expect to be supported?

Thank you very much for your quick response.  By any chance, is it foreseeable when this feature is expect to be supported?

It is a known gap, but we do not know whether or when it will be supported by the XLA compiler.
So long as it remains unsupported, we could at least improve this error on the JAX side.


Admin navbar menu entries are innaccesible on WXGA screens and certain locales.

Gitea version (or commit ref): 1.12.1
Git version: not relevant
Operating system: Docker image
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[X] Not relevant

Log gist:
Not relevant.

Description
The admin dashboard on a WXGA screen (1366x768) while using the Español (Spanish) language makes impossible to access some menu entries. On my screenshot the Panel de Control (Dashboard) and Monitorización (Monitoring) entries are outside the screen, thus cannot be selected. Cannot try on the try.gitea.io site because it requires access to the admin dashboard.
This seems more like a UX problem than a layout/locale one because even if a menu entry is removed or the text shortened then another language similar resolution could cause the same problem again.
Maybe rolling back to a vertical menu would be the solution as other platforms does the same for their settings pages.
Screenshots

Somewhat related to #12025

The same here

Those menu overflows should all be fixed on master and upcoming 1.14. It will wrap to second line on small screens while being horizontally scrollable on bigger ones.


Docs/Fix: Update Broken Links

Closes: #XXX
What is the purpose of the change

Add a description of the overall background and high level changes that this PR introduces

Fixing broken and outdated links in Osmosis' documentations.
Changes

All references to https://docs.cosmos.network/master/run-node/cosmovisor.html have been updated to https://docs.cosmos.network/main/tooling/cosmovisor.
FeeGrowthOutsideCalcuations.png has been modified to be SpreadRewardGrowthOutsideCalcuations.png, with the text inside updated as well.
Updated a reference to a liquidity bootstrap pool.json document from https://docs.balancer.finance/guides/crp-tutorial/liquidity-bootstrapping to https://balancer.gitbook.io/balancer/guides/crp-tutorial/liquidity-bootstrapping

Note that updated link is to a now-deprecated docs, but the main documentation (https://docs.balancer.fi/) does not have a similar page.

Updated references from docs/create-pool.md to docs/create-balancer-pool.md

Things needing confirmation/help

x/superfluid/README.md has references to Markdown files that no longer exist (07_proposals.md, 06_hooks.md, 04_epoch.md, 03_messages.md).

They were initially removed in place of a bigger README in PR #1283, then once more in #2171. Unsure what to reference those as.

The automated action caught a "broken link" in client/docs/static/openapi/index.html. https://eips.ethereum.org/EIPS/eip-191/n/nCurrently is found and broken, but it's an OpenAPI with \n newlines. It might make sense to see if we can remove that file from those searched in the github action. I'll look into this tomorrow.
CONTRIBUTING.md makes reference to a release.yaml workflow and the osmosis-ci repo. I found a PR that moved away from that release.yaml workflow to fully use osmosis-ci, but could not find that repository - unsure if it's just private.
https://airdrop.osmosis.zone/ does not exist. Is there an updated link for that, or should it be removed from the docs?
I'm unable to access http://skynet.paullovette.com/. From research could night find a separate place/link to replace it with.
In networks/genesis-validators.md there's a "broken link". We just make reference to a local path in user's environments. I removed it being a hyperlink, although unsure if that will fix it "failing".
There are missing PRs in CHANGELOG.md. Unsure why they've been deleted.

Testing and Verifying
This change is a trivial rework / code cleanup without any test coverage.
Documentation and Release Note

[ ] Does this pull request introduce a new feature or user-facing behavior changes?

No

[ ] Changelog entry added to Unreleased section of CHANGELOG.md?

Where is the change documented?

[ ] Specification (x/{module}/README.md)
[ ] Osmosis documentation site
[ ] Code comments?
[ ] N/A

(For me) Todo tomorrow ~ re-update cosmovisor links to: https://docs.cosmos.network/main/tooling/cosmovisor

x/superfluid/README.md has references to Markdown files that no longer exist (07_proposals.md, 06_hooks.md, 04_epoch.md, 03_messages.md).
They were initially removed in place of a bigger README in PR https://github.com/osmosis-labs/osmosis/pull/1283, then once more in https://github.com/osmosis-labs/osmosis/pull/2171. Unsure what to reference those as.
Yeah they were originally as separate docs, but got merged as one at one point, we can delete the references.

The automated action caught a "broken link" in client/docs/static/openapi/index.html. https://eips.ethereum.org/EIPS/eip-
191/n/nCurrently is found and broken, but it's an OpenAPI with \n newlines. It might make sense to see if we can remove that file from those searched in the github action. I'll look into this tomorrow.
Thank you, lmk if you need any help with this!

CONTRIBUTING.md makes reference to a release.yaml workflow and the osmosis-ci repo. I found a PR that moved away from that release.yaml workflow to fully use osmosis-ci, but could not find that repository - unsure if it's just private.
Yes, this repo is private, it might make more sense to remove it from CONTRIBUTING.md

https://airdrop.osmosis.zone/ does not exist. Is there an updated link for that, or should it be removed from the docs?
Yes, this was a link that was used for airdrop at launch, I think we can go ahead and remove it

I'm unable to access http://skynet.paullovette.com/. From research could night find a separate place/link to replace it with.
I think we can go ahead and remove the broken links and its corresponding parts from docs

In networks/genesis-validators.md there's a "broken link". We just make reference to a local path in user's environments. I removed it being a hyperlink, although unsure if that will fix it "failing".

There are missing PRs in CHANGELOG.md. Unsure why they've been deleted.
Were they deleted in a specific commit?


Test fixes

Currently, this is a draft so I can check stuff is working (tests no longer get triggered on push)

Codecov Report

Merging #115 (672b2b6) into master (a3d031d) will decrease coverage by 25.68%.
The diff coverage is 25.80%.

@@             Coverage Diff             @@
##           master     #115       +/-   ##
===========================================
- Coverage   76.63%   50.95%   -25.69%
===========================================
  Files          36       33        -3
  Lines        3463     2628      -835
  Branches      741      527      -214
===========================================
- Hits         2654     1339     -1315
- Misses        618     1137      +519
+ Partials      191      152       -39

Impacted Files
Coverage Δ

...noptic/simulate/canonical_computations/__init__.py
100.00% <ø> (ø)

plenoptic/simulate/models/__init__.py
100.00% <ø> (ø)

plenoptic/tools/optim.py
48.27% <ø> (-21.12%)
:arrow_down:

plenoptic/tools/signal.py
37.50% <ø> (-11.92%)
:arrow_down:

plenoptic/synthesize/synthesis.py
59.35% <17.24%> (-17.81%)
:arrow_down:

plenoptic/synthesize/mad_competition.py
65.19% <29.62%> (-21.00%)
:arrow_down:

plenoptic/synthesize/metamer.py
74.00% <50.00%> (-10.91%)
:arrow_down:

plenoptic/simulate/models/frontend.py
26.53% <0.00%> (-73.47%)
:arrow_down:

plenoptic/synthesize/eigendistortion.py
17.68% <0.00%> (-71.43%)
:arrow_down:

plenoptic/metric/model_metric.py
28.57% <0.00%> (-71.43%)
:arrow_down:

... and 16 more

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 a3d031d...672b2b6. Read the comment docs.


[Bug]: Deprecated dependencies in kubernetes/client-node

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Currently we are using the library kubernetes/client-node:0.12.2 in our backend.
That version was released 3 years ago and contains several dependencies that are now deprecated.
We need to migrate the library to +1.0.0, as stated in the version section.
This version contains a lot of breaking changes so we need to work on migration our codebase.
Expected Behavior
Have libraries up to date.
Steps To Reproduce
No response
Workaround (if any)
No response
What browsers are you seeing the problem on?
No response
Open Data Hub Version
No response
Anything else
No response

Just a quick heads up, checking the current project, it seems that the current 1.xrc branch is quite deprecated, and they are working on a release soon, so I'm holding off to get the newest version with the fixes.

Moving this out of this sprint to focus on kserve.

See https://github.com/opendatahub-io/odh-dashboard/issues/2188 for the followup.


Stage keeps propagating handled touch events

I just stumbled over this issue:
http://gamedev.stackexchange.com/questions/106120/stopping-actor-tap-click-event-from-propagating
I believe this might be a bug in Stage. Looking at its touchUp handler (or any of the other handlers), it doesn't appear to stop events from propagating when listeners handle it, since it makes no attempt to break out of the loop if Event#isHandled() is true:
https://github.com/libgdx/libgdx/blob/2bd1557bc293cb8c2348374771aad832befbe26f/gdx/src/com/badlogic/gdx/scenes/scene2d/Stage.java#L348
This means that it's impossible to receive click events in actors and swallow them in order to prevent them from triggering other game behavior in response to taps on the stage.

PS: unless I'm missing something about the intended API contract here I'd happily throw a fix together if that helps?

This is intended behavior, read the javadoc:

An Event may be marked as "handled" which will end its propagation outside of the Stage (see {@link #handle()}).

To stop the propagation, call stop().

To stop the propagation, call stop().

That doesn't work either--see my SO post for more details. Just looking at the sources, the loop continues without checking any of handled/stopped/cancelled so how would stop have any effect?

Actually, I'm also not sure I understand this bit:

An Event may be marked as "handled" which will end its propagation outside of the Stage (see {@link #handle()}).

Events are never propagated between stages, so what is "outside the stage"?

Also:

An actor's capture listeners can {@link #stop()} an event to prevent child actors from seeing it.

I don't want to stop the event from propagating to child actors; as said above, I want the event to stop from propagating anywhere. I want to handle it, thus stop its propagation. I think that's what the canonical definition of handling an event is based on previous experience with other event systems.

From Stage#touchUp:

Only {@link InputListener listeners} that returned true for touchDown will receive this event.

It would be a mistake to NOT propagate touchUp to listeners that returned true for touchDown. Your problem is returning true in touchDown when you don't actually want to handle the touchUp.
This is because, if you look carefully, touchUp (among with touchDragged) is a special case - it does not propagate normally but always gets to the listeners which indicated their interest in these events by returning true in touchDown.

Both touchDown and touchUp in ActorGestureListener are void methods. The only thing I have any control over is the event that was fired. Similarly, the actor click handler that I would like to handle the event doesn't get touchDown, it gets clicked, which is equally void.
Could you clarify where it is I should be returning/handling touchDown?

Ah, I assumed InputListener. The returning is done in handle(Event) method of EventListener. InputListener returns whatever its (usually overriden) touchDown/Up/whatever returned. For ActorGestureListener this is slightly more complicated, because it does not support "not detecting gesture" and always returns true. Therefore, you will have to override the handle() method and add custom gesture-filtering logic.

Explanations by @Darkyenus are correct.


Fix Crash related to LRU with expiration time

This MR is related to the bug discussed here: https://github.com/MayakaApps/Kache/issues/249
A test was added to reproduce the crash, and then the fix was applied.
Note: This failure was reproducible only when the cache strategy was LRU and there was an expireAfterWriteDuration set. The fix was to move the order of some of the logic around to store the old tail when resizing, adding some checks on index when iterating the chain, and updating the extras before advancing the index.

Thank you for your contribution and investigating the issue, and I'm sorry for responding late.

No worries @MSDarwish2000. Happy to help! Do you know when you plan to release a new version with this fix?


feat(anta): Replace decorators for skipping tests with AntaTestFilter class

Hello,
WIP PR to integrate AntaTestFilter class to skip tests.
Related to #206

Closing for now - we will revisit if we think it is worth it


Feature window.onstalled in Chrome

What about adding the tracking of window.onstalled ?

As far as I can tell the "stalled" event only fires on media elements, not window. Are you sure window.onstalled is correct?


[EventRequest] OnAfterIsPriceUpdateNeeded in codeunit 7027 "Std. Item Jnl. Line - Price"

Hello, please consider adding the following event to codeunit 7027 "Std. Item Jnl. Line - Price"
   [IntegrationEvent(false, false)]
    local procedure OnAfterIsPriceUpdateNeeded(AmountType: enum "Price Amount Type"; FoundPrice: Boolean; CalledByFieldNo: Integer; StandardItemJournalLine: Record "Standard Item Journal Line"; var Result: Boolean)
    begin
    end;

and raise it accordingly
 procedure IsPriceUpdateNeeded(AmountType: enum "Price Amount Type"; FoundPrice: Boolean; CalledByFieldNo: Integer) Result: Boolean;
    begin
        if FoundPrice then
            Result := true
        else
            if AmountType <> AmountType::Discount then
                case CurrPriceType of
                    CurrPriceType::Sale:
                        Result :=
                            Result or
                            not (CalledByFieldNo in
                                [StandardItemJournalLine.FieldNo(Quantity),
                                StandardItemJournalLine.FieldNo("Variant Code")]);
                    CurrPriceType::Purchase:
                        Result :=
                            Result or
                            not ((CalledByFieldNo = StandardItemJournalLine.FieldNo(Quantity)) or
                                ((CalledByFieldNo = StandardItemJournalLine.FieldNo("Variant Code")) and not IsSKU))
                end;
        OnAfterIsPriceUpdateNeeded(AmountType, FoundPrice, CalledByFieldNo, StandardItemJournalLine, Result);
    end;

Thank you!

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Double-check creature environments

Instead of relying on the old groupings from the 3.0 textbook, go through the d20 site and use those listed environments in the generator.

[ ] Dungeon will be basically "Underground" encounters.  That means a ColdDungeon will be cold environment, all land, all magic, and "Underground"
[ ] Dragons will no longer be in their own group, but as part of their respective environments
[ ] Be sure to check creatures not listed on the site:

[ ] Carrion Crawlers
[ ] Mind flayers
[ ] Beholders
[ ] Yuan-ti
[ ] Umber hulk
[ ] Gauth (might have to add)
[ ] Displacer Beast
[ ] Githyanki (might have to add)
[ ] Githzerai (might have to add)
[ ] Kuo-toa (might have to add)
[ ] Slaad

[ ] Look at percentage distribution after this and see if weighting needs to change

Actually, let "Underground" be another modifier.  So, you can have "above-ground" and "underground" mountain encounters - both involve mountain monsters, but underground adds in the underground creatures.  Same for hills, plains, etc. - maybe even civilized.

Also, while doing this, add the Swarm encounter creatures

[ ] Rename "magic" group to "expraplanar"
[ ] Rename "land" group to "any"


Permission missing

I followed the readme but the example didn't work. (Can't list users and groups when I was trying to attach a task.)
I had to add "Access the directory a the signed-in user" permission in the "Windows Azure Active Directory" to solve my problem.
Is it an oversight in the readme or a problem specific to my azure AD ?

I know this does not help you but I have used this code a couple of times for examples and it has worked fine for me using the instructions in the Readme

I had the same problem.
Your credentials could not be authenticated: "Credentials are missing.". You will not be permitted access until your credentials can be verified.  This is typically caused by an incorrect username and/or password, but could also be caused by network problems.
Error = "Authorization_RequestDenied": "Insufficient privileges to complete the operation."
What i had to change is to set permissions in DELEGATED PERMISSIONS section and not "APPLICATION PERMISSIONS"

The sample has been completely updated, so closing this issue as these steps have changed.


DM-41367: Initial deployment of butler server

I made the requested changes if you'd like to take another look.


Add more history stats

Right now, the stats computed from the history data are all about packet loss, because that's mostly what I'm interested in tracking myself.
However, users over on the Starlink subreddit seem really interested in latency stats over time and there has been a question recently about tracking upload/download usage. Both these things are reported by the status info scripts, but are only instantaneous numbers. This data is also present in the history data and it should be easy enough to add computation of more robust stats from that.

Is it possible to get to a single aggregate dataset (and thus collection script) across history and status do you think?

Is it possible to get to a single aggregate dataset (and thus collection script) across history and status do you think?

It's certainly possible, but there is a tradeoff between making the scripts more complicated and do more things at once vs simpler and do just one thing. I don't mind complexity myself, but the whole point of publishing this stuff is to make it useful for other people, so I'm open to input of which is preferred.
That being said, I'm already heading in the more-complex direction, so I may just take a stab at unifying the scripts and see what it looks like. That would cut down on some of the duplication, at least.

It's certainly possible, but there is a tradeoff between making the scripts more complicated and do more things at once vs simpler and do just one thing. I don't mind complexity myself, but the whole point of publishing this stuff is to make it useful for other people, so I'm open to input of which is preferred.
That being said, I'm already heading in the more-complex direction, so I may just take a stab at unifying the scripts and see what it looks like. That would cut down on some of the duplication, at least.

Took a look and generally the History does not look very friendly in its native form for a time series database. It would be a boon if we could get the data to that point though. I think this would need to be tackled before merging the statistics anyhow. Thoughts?

Took a look and generally the History does not look very friendly in its native form for a time series database. It would be a boon if we could get the data to that point though. I think this would need to be tackled before merging the statistics anyhow. Thoughts?

You mean the full second-by-second data? That could, in theory, be unwound from the ring buffers and the timestamps back-computed, but it would be quite a large amount of data. I was assuming that would be too much to store in a database on an ongoing basis, so have been focused on crunching it down to summary stats per time period (such as every hour, or whatever) and storing those. But I don't have much experience with time series databases, so maybe that concern is overblown.
I've had the CVS history script running every hour and dumping the ping drop stats to a file for the past few weeks and am getting meaningful data out of it. That's not a real database, though, so it takes manual effort to make use of it.

You mean the full second-by-second data? That could, in theory, be unwound from the ring buffers and the timestamps back-computed, but it would be quite a large amount of data. I was assuming that would be too much to store in a database on an ongoing basis, so have been focused on crunching it down to summary stats per time period (such as every hour, or whatever) and storing those. But I don't have much experience with time series databases, so maybe that concern is overblown.
I've had the CVS history script running every hour and dumping the ping drop stats to a file for the past few weeks and am getting meaningful data out of it. That's not a real database, though, so it takes manual effort to make use of it.

Thinking about this a little more, I've decided I will run an experiment to see how well my local InfluxDB instance holds up on just dumping all the raw data in. InfluxData claims it can handle "ingesting millions of data points per second", so I guess it should be OK.
Actually polling the ring buffer data and pulling out the exact right samples to avoid missing or duplicate data points, as well as avoiding time drift, will be a little tricky, but I think doable. It will require keeping state across subsequent fetches of the history data, so either run in a loop from a single script invocation or saving off state to a file or something (or both). Anyway, I can run the experiment without that level of fidelity.

Thinking about this a little more, I've decided I will run an experiment to see how well my local InfluxDB instance holds up on just dumping all the raw data in. InfluxData claims it can handle "ingesting millions of data points per second", so I guess it should be OK.
Actually polling the ring buffer data and pulling out the exact right samples to avoid missing or duplicate data points, as well as avoiding time drift, will be a little tricky, but I think doable. It will require keeping state across subsequent fetches of the history data, so either run in a loop from a single script invocation or saving off state to a file or something (or both). Anyway, I can run the experiment without that level of fidelity.

After running a hacked-up version of the history InfluxDB script that writes a minute's worth of per-second data every minute for about a day, I've concluded that my concerns about it being too much data were entirely unfounded. I guess I was conflating how much data the entire 12 hour history buffer would be with how often you'd typically want to poll it, but of course if you're polling more often than every 12 hours, you would only need to write the data that is new since last write. Anyway, this works out to about 4MB of data per day.
I still want to have an option for output of summary stats instead of the full data set, since I think the full data set is really only appropriate for sending to InfluxDB, or similar if added in future, but I'm going to focus on getting full data working first. Since it's just InfluxDB and just history data, it'll just be the one script affected, so I'll worry about how to unify the history and status scripts at a later point.

After running a hacked-up version of the history InfluxDB script that writes a minute's worth of per-second data every minute for about a day, I've concluded that my concerns about it being too much data were entirely unfounded. I guess I was conflating how much data the entire 12 hour history buffer would be with how often you'd typically want to poll it, but of course if you're polling more often than every 12 hours, you would only need to write the data that is new since last write. Anyway, this works out to about 4MB of data per day.
I still want to have an option for output of summary stats instead of the full data set, since I think the full data set is really only appropriate for sending to InfluxDB, or similar if added in future, but I'm going to focus on getting full data working first. Since it's just InfluxDB and just history data, it'll just be the one script affected, so I'll worry about how to unify the history and status scripts at a later point.

This is awesome news and exactly what I was hoping to pull out of this project, super excited, I will take a look at the scripts tonight.

This is awesome news and exactly what I was hoping to pull out of this project, super excited, I will take a look at the scripts tonight.

I just checked in a rough cut of this into my working branch. It's not done yet, and I'm not planning to pull it into main until it is, but it should be sufficient to start testing against. To switch to bulk mode, pass the new '-b' option to dishHistoryInflux.py. I will likely change how to invoke this mode in the future, probably if/when I unify the scripts.
The primary thing that is missing right now is logic to track exactly which samples have been processed already, so there is potential for a second or 2 of overlap, or a second 2 of gap, between loop iterations. Also, I haven't decided whether or not to do anything special about the latency value in samples with 100% ping drop. The raw history data just repeats the prior value, and dishHistoryInflux.py is just passing that along right now. That strikes me as a bit wrong, but I'm not sure there's a better solution.

I just checked in a rough cut of this into my working branch. It's not done yet, and I'm not planning to pull it into main until it is, but it should be sufficient to start testing against. To switch to bulk mode, pass the new '-b' option to dishHistoryInflux.py. I will likely change how to invoke this mode in the future, probably if/when I unify the scripts.
The primary thing that is missing right now is logic to track exactly which samples have been processed already, so there is potential for a second or 2 of overlap, or a second 2 of gap, between loop iterations. Also, I haven't decided whether or not to do anything special about the latency value in samples with 100% ping drop. The raw history data just repeats the prior value, and dishHistoryInflux.py is just passing that along right now. That strikes me as a bit wrong, but I'm not sure there's a better solution.

Does Dishy (gRPC data) not provide its own timestamps? I believe Influx will overwrite existing fields which have the same exact timestamp and append any new fields which would address this.

Does Dishy (gRPC data) not provide its own timestamps? I believe Influx will overwrite existing fields which have the same exact timestamp and append any new fields which would address this.

Does Dishy (gRPC data) not provide its own timestamps?

Not exactly. It has a sample counter, which can be used for that purpose by converting counter values to some time base, I'm in the process of implementing that now.

I believe Influx will overwrite existing fields which have the same exact timestamp and append any new fields which would address this.

The problem is that the timestamps won't be exact right now, they will have drifted by some number of microseconds, since the script is pulling current system time every loop iteration. This is addressable, too, I just haven't gotten to it, yet.

Does Dishy (gRPC data) not provide its own timestamps?

Not exactly. It has a sample counter, which can be used for that purpose by converting counter values to some time base, I'm in the process of implementing that now.

I believe Influx will overwrite existing fields which have the same exact timestamp and append any new fields which would address this.

The problem is that the timestamps won't be exact right now, they will have drifted by some number of microseconds, since the script is pulling current system time every loop iteration. This is addressable, too, I just haven't gotten to it, yet.

Bummer, and nothing, anywhere in the data, even Status or elsewhere, which gives you what Dishy thinks the time is? I see a status - device - timestamp in the app debug that could be used as a reference?

Bummer, and nothing, anywhere in the data, even Status or elsewhere, which gives you what Dishy thinks the time is? I see a status - device - timestamp in the app debug that could be used as a reference?

Nope. The "device" section of the app debug is about the device the app is running on (ie: the phone, tablet, or whatever), not the dish or router, so that timestamp is presumably the equivalent of the scripts pulling current system time (which is exactly what they are doing).
That's OK, it just makes things a little complicated. It wouldn't be as much fun if it were simple....

Nope. The "device" section of the app debug is about the device the app is running on (ie: the phone, tablet, or whatever), not the dish or router, so that timestamp is presumably the equivalent of the scripts pulling current system time (which is exactly what they are doing).
That's OK, it just makes things a little complicated. It wouldn't be as much fun if it were simple....

Ahh, I see that now, well that actually surprises me (no time reference) yes, fun! Anyhow would to just trim to the current second and poll every minute for a minute+buffer's data & flush? re latency w/100% ping drop - I agree that seems wrong to me as well ( by definition if you have no reply you would be infinitely latent ).

Ahh, I see that now, well that actually surprises me (no time reference) yes, fun! Anyhow would to just trim to the current second and poll every minute for a minute+buffer's data & flush? re latency w/100% ping drop - I agree that seems wrong to me as well ( by definition if you have no reply you would be infinitely latent ).

Anyhow would to just trim to the current second and poll every minute for a minute+buffer's data & flush?

That's what the script I checked into 'working' is doing (if I understand you correctly). But if the timing loop gets off by more than a second because the system is busy, or whatever, it will miss some samples, and then repeat some on the next iteration (because of how I coded the interval timer). This won't really break InfluxDB, I've accidentally dumped the same 12 hours worth of data into it several time now and it seems fine with it, but it's not ideal.
Anyway, the "current" counter in the history data can be used determine exactly which samples are new. I have that running now and will probably get that checked in tomorrow. There's still a potential for it to get out of sync with real time if the dish's clock is running slightly fast or slow, but I haven't seen that happen, yet.

Anyhow would to just trim to the current second and poll every minute for a minute+buffer's data & flush?

That's what the script I checked into 'working' is doing (if I understand you correctly). But if the timing loop gets off by more than a second because the system is busy, or whatever, it will miss some samples, and then repeat some on the next iteration (because of how I coded the interval timer). This won't really break InfluxDB, I've accidentally dumped the same 12 hours worth of data into it several time now and it seems fine with it, but it's not ideal.
Anyway, the "current" counter in the history data can be used determine exactly which samples are new. I have that running now and will probably get that checked in tomorrow. There's still a potential for it to get out of sync with real time if the dish's clock is running slightly fast or slow, but I haven't seen that happen, yet.

... so after all that buildup, the actual change to implement counter tracking was not that complicated. And it actually made the sample range computation logic a little easier to understand vs how I had it before.
There's one more bit of functionality I want to implement before merging this into main branch, which is to track counter state across script invocations. It occurred to me that I can just keep that in the database along with the last written data point, so no need to keep it in a local file. I'm running into some annoying issues with the influxdb-python client lib wrt queries, but I think I can hack around them reasonably enough.

... so after all that buildup, the actual change to implement counter tracking was not that complicated. And it actually made the sample range computation logic a little easier to understand vs how I had it before.
There's one more bit of functionality I want to implement before merging this into main branch, which is to track counter state across script invocations. It occurred to me that I can just keep that in the database along with the last written data point, so no need to keep it in a local file. I'm running into some annoying issues with the influxdb-python client lib wrt queries, but I think I can hack around them reasonably enough.

OK, bulk mode for is now in the 'main' branch. I'm not going to close this issue out until summary stats are implemented for the  other scripts, or I decide that's not worth pursuing. Before I doing that, though, I'm going to take a stab at unifying the status and history scripts, since that will probably involve reworking the argument parsing logic to support selection of different stats/modes.

OK, bulk mode for is now in the 'main' branch. I'm not going to close this issue out until summary stats are implemented for the  other scripts, or I decide that's not worth pursuing. Before I doing that, though, I'm going to take a stab at unifying the status and history scripts, since that will probably involve reworking the argument parsing logic to support selection of different stats/modes.


vscodium last update broke multiple extentions

Describe the bug
vscodium does not load multiple extentions
Steps To Reproduce

Install vscodium with extentions like: pkgs.vscode-extensions.rust-lang.rust-analyzer, pkgs.vscode-extensions.mkhl.direnv, pkgs.vscode-extensions.kahole.magit, pkgs.vscode-extensions.bbenoist.nix, pkgs.vscode-extensions.eamodio.gitlens, pkgs.vscode-extensions.vadimcn.vscode-lldb or pkgs.vscode-extensions.james-yu.latex-workshop

Expected behavior
They don't show in list of installed plugins and they don't work
Additional context
TOML plugin seems to work. In debug output they seems to be listed as installed locally.
Reverting the update of codium did not fixed the problem
Notify maintainers
@ryand56
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.45, NixOS, 24.11 (Vicuna), 24.11pre669741.c374d94f1536`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.5`
 - channels(root): `"nixos"`
 - channels(mpiechotka): `""`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Add a :+1: reaction to issues you find important.

I can confirm this also happens with vscode version 1.92.2, with extensions pkgs.vscode-extensions.vscjava.vscode-java-pack and  pkgs.vscode-extensions.redhat.java


[CI] Use alias for table.struct

Which issue does this PR close?

A workaround to fix Closes #9891 .
Replace the problematic struct literal with alias
We can support accessing table with explicit struct literal later on.
Rationale for this change

What changes are included in this PR?

Are these changes tested?

Are there any user-facing changes?

Thank you @jayzhan211


Use and configure Sentry for stack traces

Jira ticket URL

Just add the ticket number to the end:

https://dfedigital.atlassian.net/browse/TEVA-
Changes in this PR:

Is there anything specific you want feedback on?

Screenshots of UI changes:
Before
After
Next steps:

[ ] Terraform deployment required?

[ ] New development configuration to be shared?

Commenting here so we don't forget – we need to:

switch JS error reporting to Sentry too, and
port over any custom Rollbar configuration we have


Help Section for Teachers

From #67

Maybe explain in a help section how teachers can send URLs with pre-applied filters to their students, to pre-select provenience = "Bremer Rechtschreibschatz" for example (https://wort.schule/?provenience=de-hb-rss2015).

If you can add the page (maybe invisible first), I can add content there.

Let's start with a Wiki page at https://github.com/wort-schule/wort.schule/wiki
Once we see how much information is in and how it is structured we can decide if we leave it in the Wiki (which would not be a bad idea) or put it into the application.

Sure. How can I edit the wiki page? The link takes me back to the project start page.

Sure. How can I edit the wiki page? The link takes me back to the project start page.

Please try again. I created a main page. Maybe that was the missing piece. If not we have to do a screen sharing session.

@cabotine Do you see these buttons when you visit https://github.com/wort-schule/wort.schule/wiki ?

Now I can see a wiki-page, but I don't have editing rights apparently.

Now I can see a wiki-page, but I don't have editing rights apparently.

Please try again.

Now it works.

I close this issue because of a) the Wiki is set up and b) https://github.com/wort-schule/wort.schule/issues/143


Fix for tracking events with bool as a parameter

What
Where/Who

JIRA Issue
SDK-354

People Involved
@dejan2k

Hh

Ok


"file created at 1"

Weirdly, it was working before whenever I'd just type in "autosub -i [file name] -S [language code]" but now it gives me an error saying -i isn't a command. So I just put in autosub [file name] -S [language code] and it tells me "Subtitles file created at 1"???? the file isn't in the same folder of the file I put in. where is 1???

nvm Idk how to close this but it seemed to just be the program wasn't correctly installed. I reinstalled python, reinstalled autosub and then downloaded the BingLingGroup version and their autosub.exe worked perfectly.


/en-US/docs/Tools/Web_Console/Helpers#pprint

Request type

[ ] Please close this issue, I accidentally submitted it without adding any details
[ ] New documentation
[x] Correction or update

Details

The pprint helper has been removed as per https://bugzilla.mozilla.org/show_bug.cgi?id=1613843. The documentation and example for pprint should therefore be removed. If possible, an equivalent example should be provided.
I actually only found out about this helper when reading the What's New pages for FF 75, only to find out that it doesn't work anymore. The rationale for removing this helper is flimsy at best, but who am I to argue?

Also here: https://developer.mozilla.org/en-US/docs/Tools/Web_Console/The_command_line_interpreter#Helper_commands

Marked as Obsolete inline in the article

The list in the  "interpreter" article is transcluded from the "Helpers" article. Force-refreshed it to get the update.


installation of Cloud SDK not working on newer Ubuntu (e.g. 18.04)

On recent Ubuntu versions, the easy_install scripts are no longer installed as part of package python-setuptools
This means that the procedure dsub uses to install the SDK (when gsutil is not already present on my docker image) breaks: in the error log I see a "command not found" message for easy_install.
One way to fix this would be to substitute:
apt-get install python-pip

for
easy_install -U pip

in dsub/providers/google.py
This seems a little bloated due to the number of dependencies but appears to work both for 14.04 and 18.04.  There might be a better way but this is at least simple.

With the deprecation of Pipelines v1alpha2 and the google provider, we have no plans to implement this. Pull requests would still be accepted.

Ah! TIL I could just use --provider google-v2 and problem solved!


[Hub Generated] Review request for Microsoft.Consumption to add version stable/2019-10-01

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM API Information (Control Plane)
Azure 1st Party Service can try out the Shift Left experience to initiate API design review from ADO code repo.  If you are interested, may request engineering support by filling in with the form https://aka.ms/ShiftLeftSupportForm.
Changelog
Add a changelog entry for this PR by answering the following questions:

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[x] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When are you targeting to deploy the new service/feature to public regions? Please provide the date or, if the date is not yet available, the month.
When do you expect to publish the swagger? Please provide date or, the the date is not yet available, the month.
By default, Azure SDKs of all languages (.NET/Python/Java/JavaScript for both management-plane SDK and data-plane SDK, Go for management-plane SDK only ) MUST be refreshed with/after swagger of new version is published. If you prefer NOT to refresh any specific SDK language upon swagger updates in the current PR, please leave details with justification here.

Contribution checklist (MS Employees Only):

[x] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

Applicability: :warning:
If your changes encompass only the following scenarios, you should SKIP this section, as these scenarios do not require ARM review.

Change to data plane APIs
Adding new properties
All removals

Otherwise your PR may be subject to ARM review requirements. Complete the following:

[ ] Check this box if any of the following apply to the PR so that the label "ARMReview" and "WaitForARMFeedback" will be added by bot to kick off ARM API Review.  Missing to check this box in the following scenario may result in delays to the ARM manifest review and deployment.

Adding a new service
Adding new API(s)
Adding a new API version
-[ ] To review changes efficiently, ensure you copy the existing version into the new directory structure for first commit and then push new changes, including version updates, in separate commits. You can use OpenAPIHub to initialize the PR for adding a new version. For more details refer to the wiki.

[ ] Ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If you have any breaking changes as defined in the Breaking Change Policy, request approval from the Breaking Change Review Board.
Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Additional details on the process and office hours are on the Breaking Change Wiki.
NOTE: To update API(s) in public preview for over 1 year (refer to Retirement of Previews)
Please follow the link to find more details on PR review process.

@msyyc  can you pls take a look at this PR?

Hi @kbharucha Please fix ModelValidation with detailed info https://github.com/Azure/azure-rest-api-specs/pull/20855/checks?check_run_id=8522713652

Hi @qiaozha @ArcturusZhang Please help review SDK breaking

Hi @kbharucha Please fix ModelValidation with detailed info https://github.com/Azure/azure-rest-api-specs/pull/20855/checks?check_run_id=8522713652

@msyyc: I've fixed the JSON files causing model validation failures. However, can we get an exemption for the open item(x-ms-example not found in Operations_List) as we haven't changed anything that could cause the failure? Appreciate the help as we are nearing our SLA for this fix.

Go breaking is from this PR and has already been approved: https://github.com/Azure/azure-rest-api-specs/pull/19768.


Add access to .vsix from the README

It would be beneficial to have a link to a .vsix or the link to the releases directly inside the README.

done