Continuing training based on checkpoint using torch tile

Description
Saving and loading the model and optimizer state before resuming training changes the behavior.
How to reproduce
MWE:
import torch
from aihwkit.optim.analog_optimizer import AnalogSGD
from aihwkit.simulator.configs import TorchInferenceRPUConfig
from aihwkit.simulator.configs.utils import (
    BoundManagementType,
    NoiseManagementType,
)
from aihwkit.nn.conversion import convert_to_analog

def train_linear_regression(reload: bool):
    def generate_toy_data(num_samples=100):
        torch.manual_seed(0)
        X = 2 * torch.rand(num_samples, 1)
        y = 4 + 3 * X + torch.rand(num_samples, 1)
        return X, y

    def mean_squared_error(y_true, y_pred):
        return torch.mean((y_true - y_pred) ** 2)

    torch.manual_seed(0)
    num_epochs = 1000
    learning_rate = 0.001
    X, y = generate_toy_data()
    model = torch.nn.Linear(1, 1)

    rpu_config = TorchInferenceRPUConfig()
    rpu_config.forward.bound_management = BoundManagementType.NONE
    rpu_config.forward.noise_management = NoiseManagementType.NONE
    rpu_config.forward.out_noise = 0.0
    rpu_config.pre_post.input_range.enable = True
    rpu_config.pre_post.input_range.init_value = 3.0
    rpu_config.forward.is_perfect = True
    rpu_config.pre_post.input_range.enable = True
    rpu_config.pre_post.input_range.init_from_data = 1000
    rpu_config.pre_post.input_range.learn_input_range = False
    rpu_config.pre_post.input_range.decay = 0.0

    model = convert_to_analog(model, rpu_config)
    optimizer = AnalogSGD(params=model.parameters(), lr=learning_rate)

    losses = []
    for epoch in range(num_epochs):
        predictions = model.forward(X)
        loss = mean_squared_error(y, predictions)
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()
        losses.append(loss.item())

        if epoch == 500 and reload:
            sd = model.state_dict()
            optimizer_sd = optimizer.state_dict()
            model = torch.nn.Linear(1, 1)
            model = convert_to_analog(model, rpu_config)
            optimizer = AnalogSGD(params=model.parameters(), lr=learning_rate)
            model.load_state_dict(sd)
            optimizer.load_state_dict(optimizer_sd)
    return torch.tensor(losses)

if __name__ == "__main__":
    losses_false = train_linear_regression(reload=False)
    losses_true = train_linear_regression(reload=True)
    assert torch.allclose(losses_false, losses_true, atol=1e-4)

Expected behavior
Losses should be the same.

@maljoras I have identified the source of the bug, but I can't really solve it in an elegant fashion.
What causes the bug:
In the __init__ of the TorchInferenceTile (see here) if I pass ignore_analog_state=False the test passes.
This is because a new tile is not created and therefore new Parameter objects are not created. When a new Parameter object is created, the corresponding parameter in the optimizer now points to the wrong memory. This is why the MWE above works when I call optimizer = AnalogSGD(params=model.parameters(), lr=learning_rate) after model.load_state_dict(sd).
What is the best way to solve this?

The problem is that the torch tile might bypass important tile loading code. You should make sure that this code is called when setting the tile, see simulator.tile.module.py line 222. Originally it was, maybe something has changed since.

Just for reference, this is the code:
def __setstate__(self, state: Dict) -> None:
    # pylint: disable=no-member

    if hasattr(super(Module, self), "__setstate__"):
        # The TileWrapper is handling all the attributes
        super(Module, self).__setstate__(state)
    else:
        Module.__setstate__(self, state)

    # update parameter IDs
    for name in self._parameters:  # type: ignore
        self._parameters[name] = getattr(self, name)  # type: ignore

    for name in self._buffers:
        self._buffers[name] = getattr(self, name)

    for name in self._modules:
        self._modules[name] = getattr(self, name)

So, this line super(Module, self).__setstate__(state) creates the new tile, including a brand-new Parameter object that is then populated with the weights. The code below that is also called, but when we loop over the _parameters of self which is the TorchInferenceTile, we don't have any weights, since the weight parameters are in the tile, i.e. self.tile. Maybe that is the issue?

Yes, I think so, too. For that reason I defined all parameters on the Tile Module level and not on the SimulatorTile (self.tile) level even for TorchInferenceTile. Has that changed?

For the torch tile it was always like that I think. How should we proceed?

@jubueche Is this only the case for init_from_data=True? Could it be that the counter is not saved, so that the init is done again after loading?

@maljoras That is also the case (I made a private PR for that) but here I explicitly avoided that by using 1000 epochs and setting the init_from_data to 1000 as well.


Implement getAllBindings

There is a method getAllBindings in Guice. And in my project, I really need this method from Python injector. I could have done it in a pull request, if you don't mind, or maybe you can easily add this one method?

That's a reasonable thing to have I think. Can you say/show how would you like to use it (so that it's clear to me what's required from the API)?
In the meantime if you're not afraid of using private API you can get the bindings through injector_instance.binder._bindings[1][2].
[1] As all private API-s it can stop being supported in the future
[2] It won't give you bindings of parent Injector (if present)

Cross-referencing https://github.com/alecthomas/injector/issues/164#issuecomment-740228379 as that thread is a bit busy


updates author to GitHub username

@dabutvin,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Connection:close header for all HTTP responses

By libraries/fc 4d8b5e571fd4b620816cf62171b5f056591157fb, all of the HTTP responses by nodeos includes "Connection: close" header.
It means all DApps which use the common HTTP/1.1 libraries are forced to do TCP connect for every HTTP request, which can cause significant performance degradation and resource limitation(TCP port, ...).

added "Connection: close" to websocketpps http request handling as "keep-alive" is the default for HTTP/1.1 and it was confusing Beast

I don't know what the problem was caused by Beast, but setting "Connection: close" header must be done specifically not generally.

I am going to close the issue and open it the EOS/fc.

https://github.com/EOSIO/fc/issues/10


Improve AbstractTrainer Docs

Issue #, if available:
Description of changes:

Improve AbstractTrainer Docs

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Previous CI Run
Current CI Run

Previous CI Run
Current CI Run


climbs() method for Stage scraper produces empty list

https://github.com/themm1/procyclingstats/blob/14c49218d67f2d9311db4c9da4166dc3232706f3/procyclingstats/stage_scraper.py#L258
Was following along with the examples/climbs_by_stages.py example, but all values in the stages_climbs dict were empty lists. Found that it was the climbs() method for Stage scraper not grabbing them from their respective pages. I resolved this locally by changing the CSS selector:
climbs_html = self.html.css_first("ul.list.circle")

Worth noting that I installed procyclingstats from pip, and when doing so the version of selectolax that was installed in my virtual environment was 0.3.12, which is different than the version listed in requirements.txt (0.3.8). Not sure if related.

Thanks for reporting an issue. Somehow I've put only stages with no climbs to my testing dir., so it didn't catch the error. PCS changed their HTML a little so I had to change the line to self.html.css_first("ul.list.circle") .  Now in the latest version it should work as expected. (to get lates version just run pip install procyclingstats --upgrade)


Fix range violation when writing to access log

When the requested URL is > ~2000 bytes the server crashes and the process hangs forever using 100% CPU on Linux. Easily exploitable by malicious users.

Thanks. Does this happen for debug builds or just for release builds? I would have really hoped for at least a RangeError being thrown and the application exiting gracefully. Of course that still is a DoS vector.

AllocAppender?

Of course that still is a DoS vector.

Biggest DoS vector is the unlimited json upload size. Unless I'm mistaken

It does crash with a range error. I believe in release as well. The problem is that it then hangs there forever using 100% CPU. I think last time I checked it was stuck in _d_throw or something... It's been like this forever for a long time.
@etcimon Unlimited? Isn't maxRequestSize honored before trying to do anything with the request contents?

Unlimited? Isn't maxRequestSize honored before trying to do anything with the request contents?

Sure, but if you're a little creative you can send a 2mb json multiplied by unlimited connections, because while max request size is implemented, the request timeout isn't.

I think last time I checked it was stuck in _d_throw or something... It's been like this for a long time.

invalid memory operation. I get infinite loops there too, only solution is to send a signal in druntime's onInvalidMemoryOperation

AllocAppender?

I think Appender is actually OK in this case, since it usually just allocates once at startup.

BTW, has anyone seen an open bug report on issues.dlang.org for the exception issues? What I often get is an access violation when an exception is supposed to be caught, and of course the infinite loop here.


Use tqdm.write

Using tqdm.write prevents the tqdm progress bar being rewritten every time something is printed.

TypeError: write() got an unexpected keyword argument 'sep'

this doesn't seem to work
not sure it's worth fixing that as anyway tqdm is not doing anything very useful and it'll probably be replaced by something else (see #28 )

Yeah, sep and end are invalid kw_args I think. Removing this should work and I would recommend it over print. One issue is that is currently printing both stdout / stderr which interleaves the output annoyingly.

yeah, I'm not sure how to remove opencv warning prints
Maybe using albumentations as suggested there https://github.com/rom1504/img2dataset/issues/8 will fix it

let's close this one, I think #27 is the way to go, and this should be fixed while doing this


Update discovery cache to listen to changes to all configs

The discovery cache was ignoring updates to v1alpha2 configs. This effectively broke v1alpha2 rules.

Nice ! So you finally found the bug!

Yep, would have found it earlier but I was not setting the --discovery_cache flag correctly.
        - --discovery_cache
        - "false"```
vs

    - --discovery_cache=false```

in pilot.yaml.tmpl, so we were looking for the issue in all the wrong places.

Part of https://github.com/istio/istio/issues/1925


Kafka-dispatcher retries failures dozens of times when running multiple replicas

Description
During some load testing we discovered that event failures mostly due to timeouts are not handled according to configuration.
We had delivery options set to no retries and a deadletter ksvc.
We observed that if our ksvc handling the event take longer than expected the dispatcher handles the failure and correctly sends the deadletter request to our deadletter queue ksvc, but the event eventually gets redelivered up to 20 times over the next hour.
Note that we were running four dispatcher replicas out of scalability concerns
Expected behavior
After the events get sent to deadletter and no reties are configured, the events should not get retried.
To Reproduce
Set up four dispatcher replicas. Find a long running target function that does an operation that take longer under duress. In our case we were processing some s3 files and sending the result to another ksvc - the most common case to get a retry is when the send to the form ksvc 1 to ksvc 2 receives context canceled due timeout
Knative release version
knative 1.6
kafka-broker 1.7
Additional context
I will add some logs from the dispatcher that show the behavior and will upload more if necessary

The log that shows the redeliveries:
exportedLogRecords.csv

I can provide more detailed information from the debug log but need a bit more scoping criteria because the log is huge.
What would be something that will help target the logs?


Net::ReadTimeout: Net::ReadTimeout

View details in Rollbar: https://rollbar.com/trystant/BOW/items/372/

ActiveRecord::RecordNotFound: ActiveRecord::RecordNotFound
  File "/app/vendor/bundle/ruby/2.3.0/gems/friendly_id-5.1.0/lib/friendly_id/finder_methods.rb", line 23, in find
  File "/app/app/controllers/articles_controller.rb", line 95, in find_article
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 432, in block in make_lambda
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 145, in block in halting_and_conditional
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 504, in block in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 504, in each
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 504, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 92, in __run_callbacks__
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 778, in _run_process_action_callbacks
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 81, in run_callbacks
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/abstract_controller/callbacks.rb", line 19, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal/rescue.rb", line 29, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal/instrumentation.rb", line 32, in block in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/notifications.rb", line 164, in block in instrument
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/notifications/instrumenter.rb", line 20, in instrument
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/notifications.rb", line 164, in instrument
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal/instrumentation.rb", line 30, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal/params_wrapper.rb", line 250, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/searchkick-1.2.1/lib/searchkick/logging.rb", line 153, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.6/lib/active_record/railties/controller_runtime.rb", line 18, in process_action
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/abstract_controller/base.rb", line 137, in process
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionview-4.2.6/lib/action_view/rendering.rb", line 30, in process
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal.rb", line 196, in dispatch
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal/rack_delegation.rb", line 13, in dispatch
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_controller/metal.rb", line 237, in block in action
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/routing/route_set.rb", line 74, in dispatch
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/routing/route_set.rb", line 43, in serve
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb", line 43, in block in serve
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb", line 30, in each
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/journey/router.rb", line 30, in serve
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/routing/route_set.rb", line 817, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-pjax-0.8.0/lib/rack/pjax.rb", line 12, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-attack-4.4.1/lib/rack/attack.rb", line 107, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/bullet-5.0.0/lib/bullet/rack.rb", line 10, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/warden-1.2.6/lib/warden/manager.rb", line 35, in block in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/warden-1.2.6/lib/warden/manager.rb", line 34, in catch
  File "/app/vendor/bundle/ruby/2.3.0/gems/warden-1.2.6/lib/warden/manager.rb", line 34, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.4/lib/rack/etag.rb", line 24, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.4/lib/rack/conditionalget.rb", line 25, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.4/lib/rack/head.rb", line 13, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/remotipart-1.2.1/lib/remotipart/middleware.rb", line 27, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/params_parser.rb", line 27, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/flash.rb", line 260, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb", line 225, in context
  File "/app/vendor/bundle/ruby/2.3.0/gems/rack-1.6.4/lib/rack/session/abstract/id.rb", line 220, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/cookies.rb", line 560, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.6/lib/active_record/query_cache.rb", line 36, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/activerecord-4.2.6/lib/active_record/connection_adapters/abstract/connection_pool.rb", line 653, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/callbacks.rb", line 29, in block in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 88, in __run_callbacks__
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 778, in _run_call_callbacks
  File "/app/vendor/bundle/ruby/2.3.0/gems/activesupport-4.2.6/lib/active_support/callbacks.rb", line 81, in run_callbacks
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/callbacks.rb", line 27, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/remote_ip.rb", line 78, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rollbar-2.8.3/lib/rollbar/middleware/rails/rollbar.rb", line 24, in block in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/rollbar-2.8.3/lib/rollbar.rb", line 948, in scoped
  File "/app/vendor/bundle/ruby/2.3.0/gems/rollbar-2.8.3/lib/rollbar/middleware/rails/rollbar.rb", line 22, in call
  File "/app/vendor/bundle/ruby/2.3.0/gems/actio

dupe #445


Implement ANALYZE on target variables

For a bayeslite generator G, MML supports running a generic "transition" operator:
ANALYZE G FOR <s> SECONDS WAIT
We are now at a stage where this per-generator `ANALYZE

See #429


Lost Issue #62476

It's been a while (years) since this issue is last reviewed by a maintainer. Obviously lost between hundreds of issues this repo gets, but it should at least be viewed:
https://github.com/microsoft/vscode/issues/62476

That issue hasn't been locked, and is still assigned to a team member (@joaomoreno) so I'm going to close this as a duplicate. I see you have already commented on the original one.
/duplicate

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


ToDOList

[x] Support compilation on Ubuntu, we haven't got an Ubuntu environment yet, if you have tried on Ubuntu, I shall be grateful if you issue us the modifications you have done to make compilation successful.https://github.com/baidu/mobile-deep-learning/issues/54
[x] Support ResNet transform & run ResNet models, it's under developing, and will be updated in few days https://github.com/baidu/mobile-deep-learning/issues/47
[ ] TensorFlow2MDL https://github.com/baidu/mobile-deep-learning/issues/36
[ ] Support RCNN & Faster RCNN, there are serval layers need to be added.https://github.com/baidu/mobile-deep-learning/issues/43

I have compiled MDL in Ubuntu16.04 successfully, and here are several changes:

In file "CMakeLists.txt" : add
"link_libraries(pthread)"
In file "caffe2mdl.cpp" : add
"#include
#include
#include
#include
#include "
In file "commons.h" : add
"#include
#include
#include <limits.h>"
Replace files "caffe.pb.cc" "caffe.pb.h" "caffe.proto" to your own caffe's files.
After the above changes, just run "./build.sh mac", you will get your MDL library in Ubuntu16.04.

ResNet supported now.

Resnet-50 caffemodel is not uploaded, because of file size limitation.

@WolffyChen Welcome to PR

I think that in the detection scene, SSD or YOLO maybe better than Faster-RCNN.

@BUG1989 to support SSD is in our plan


Schema validation crashes with stack overflow

Nuget Package
json-everything.net (playground)
Package Version
7.0.4
Operating System
Windows
.Net Target (if relevant, please specify the version in the description)
.Net (5 or after)
A clear and concise description of the bug.
Hello,
In the last 2-3 months I've been building a schema that became quite large - almost 2000 lines with some minification. The schema is quite recursive - naturally - it defines JSON structure for the serialization of LINQ expressions (AST). Yesterday I added the last 4 types (literally at the bottom of the file) and all my tests crashed with stack overflow (if it helps, I am pasting the stack below). Then I tried other schema validators online and replaced JsonSchema with Newtonsoft's JSchema - they all work. If you have advice on how to fix it (unless it is a bug) I'll appreciate it very much, as I already committed to System.Text.Json (hence ergo Json.Schema) and adding Newtonsoft to the mix ... smells bad. You can find plenty of valid JSON documents in my test folders. If you need more information about the project, etc., please don't hesitate to contact me here or directly.
Thank you very much for the good work and previous support with other issues.
Val
What did you expect?
Not to crash
Please add test code or steps to reproduce the behavior.
See the project tests.
Is there any other information you'd like to share regarding this bug?
========== Starting test run ==========
[xUnit.net 00:00:00.00] xUnit.net VSTest Adapter v2.8.1+ce9211e970 (64-bit .NET 8.0.6)
[xUnit.net 00:00:00.08]   Starting:    JsonTests
The active test run was aborted. Reason: Test host process crashed : Stack overflow.
   at System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyLookupCore(System.Runtime.Intrinsics.Vector256`1<Byte>, System.Runtime.Intrinsics.Vector256`1<Byte>)
   at System.Buffers.IndexOfAnyAsciiSearcher.IndexOfAnyVectorized[[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](Byte ByRef, Int32, System.Runtime.Intrinsics.Vector256`1<Byte> ByRef)
   at System.MemoryExtensions.IndexOfAny[[System.Byte, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.ReadOnlySpan`1<Byte>, System.Buffers.SearchValues`1<Byte>)
   at System.Text.Json.Utf8JsonReader.ConsumeString()
   at System.Text.Json.Utf8JsonReader.ConsumeValue(Byte)
   at System.Text.Json.Utf8JsonReader.ConsumeNextToken(Byte)
   at System.Text.Json.Utf8JsonReader.ConsumeNextTokenOrRollback(Byte)
   at System.Text.Json.Utf8JsonReader.ReadSingleSegment()
   at System.Text.Json.Utf8JsonReader.Read()
   at System.Text.Json.Utf8JsonReader.TrySkip()
   at System.Text.Json.JsonDocument.TryParseValue(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.JsonDocument ByRef, Boolean, Boolean)
   at System.Text.Json.Serialization.Converters.JsonArrayConverter.Read(System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.JsonSerializerOptions)
   at Json.More.JsonSerializerOptionsExtensions.Read[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Text.Json.JsonSerializerOptions, System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.Serialization.Metadata.JsonTypeInfo`1<System.__Canon>)
   at Json.Schema.EnumKeywordJsonConverter.Read(System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.JsonSerializerOptions)
   at Json.More.WeaklyTypedJsonConverter`1[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Json.More.IWeaklyTypedJsonConverter.Read(System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.JsonSerializerOptions)
   at Json.Schema.JsonSerializerOptionsExtensions.Read(System.Text.Json.JsonSerializerOptions, System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.Serialization.Metadata.JsonTypeInfo)
   at Json.Schema.SchemaJsonConverter.Read(System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.JsonSerializerOptions)
   at System.Text.Json.Serialization.JsonConverter`1[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TryRead(System.Text.Json.Utf8JsonReader ByRef, System.Type, System.Text.Json.JsonSerializerOptions, System.Text.Json.ReadStack ByRef, System.__Canon ByRef, Boolean ByRef)
   at System.Text.Json.Serialization.JsonConverter`1[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ReadCore(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.JsonSerializerOptions, System.Text.Json.ReadStack ByRef)
   at System.Text.Json.JsonSerializer.ReadFromSpan[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.ReadOnlySpan`1<Byte>, System.Text.Json.Serialization.Metadata.JsonTypeInfo`1<System.__Canon>, System.Nullable`1<Int32>)
   at System.Text.Json.JsonSerializer.ReadFromSpan[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.ReadOnlySpan`1<Char>, System.Text.Json.Serialization.Metadata.JsonTypeInfo`1<System.__Canon>)
   at System.Text.Json.JsonSerializer.Deserialize[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.String, System.Text.Json.Serialization.Metadata.JsonTypeInfo`1<System.__Canon>)
   at Json.Schema.JsonSchema.FromText(System.String)
   at Json.Schema.JsonSchema.<Json.Schema.IBaseDocument.FindSubschema>g__ExtractSchemaFromData|54_0(Json.Pointer.JsonPointer, System.Text.Json.Nodes.JsonNode, Json.Schema.JsonSchema, <>c__DisplayClass54_0 ByRef)
   at Json.Schema.JsonSchema.<Json.Schema.IBaseDocument.FindSubschema>g__CheckResolvable|54_1(System.Object, Int32 ByRef, System.String, Json.Schema.JsonSchema ByRef, <>c__DisplayClass54_0 ByRef)
   at Json.Schema.JsonSchema.Json.Schema.IBaseDocument.FindSubschema(Json.Pointer.JsonPointer, Json.Schema.EvaluationOptions)
   at Json.Schema.RefKeyword.GetConstraint(Json.Schema.SchemaConstraint, System.ReadOnlySpan`1<Json.Schema.KeywordConstraint>, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.PopulateConstraint(Json.Schema.SchemaConstraint, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.GetConstraint(Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Schema.EvaluationContext)
   at Json.Schema.PropertiesKeyword+<>c__DisplayClass9_0.<GetConstraint>b__0(System.Collections.Generic.KeyValuePair`2<System.String,Json.Schema.JsonSchema>)
   at System.Linq.Enumerable+SelectEnumerableIterator`2[[System.Collections.Generic.KeyValuePair`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToArray()
   at Json.Schema.PropertiesKeyword.GetConstraint(Json.Schema.SchemaConstraint, System.ReadOnlySpan`1<Json.Schema.KeywordConstraint>, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.PopulateConstraint(Json.Schema.SchemaConstraint, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.GetConstraint(Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Schema.EvaluationContext)
   at Json.Schema.RefKeyword.GetConstraint(Json.Schema.SchemaConstraint, System.ReadOnlySpan`1<Json.Schema.KeywordConstraint>, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.PopulateConstraint(Json.Schema.SchemaConstraint, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.GetConstraint(Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Schema.EvaluationContext)
   at Json.Schema.PropertiesKeyword+<>c__DisplayClass9_0.<GetConstraint>b__0(System.Collections.Generic.KeyValuePair`2<System.String,Json.Schema.JsonSchema>)
   at System.Linq.Enumerable+SelectEnumerableIterator`2[[System.Collections.Generic.KeyValuePair`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].ToArray()
   at Json.Schema.PropertiesKeyword.GetConstraint(Json.Schema.SchemaConstraint, System.ReadOnlySpan`1<Json.Schema.KeywordConstraint>, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.PopulateConstraint(Json.Schema.SchemaConstraint, Json.Schema.EvaluationContext)
   at Json.Schema.JsonSchema.GetConstraint(Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Pointer.JsonPointer, Json.Schema.EvaluationContext)
   at Json.Schema.OneOfKeyword+<>c__DisplayClass6_0.<GetConstraint>b__0(Json.Schema.JsonSchema, Int32)
   at System.Linq.Enumerable+<SelectIterator>d__229`2[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext()
   at System.Collections.Generic.LargeArrayBuilder`1[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].AddRange(System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at System.Collections.Generic.
========== Test run aborted: 0 Tests (0 Passed, 0 Failed, 0 Skipped) run in < 1 ms ==========

Code of Conduct & Contributor Guidelines

[X] I agree to follow this project's Code of Conduct and Contribution Guidelines.

I have discovered the problem, and it's probably specific to my implementation.
The short answer is that you have your $defs kinda messed up. It needs to be a flat dictionary, not a nested folder lookup.
What's happening is that it's reading /$defs/components as a schema, which means all of the keys under it are treated as unknown keywords. As a result, it doesn't try to deserialize them... until they're referenced. And it deserializes them each time they're referenced (probably something I can try to fix up).
So every time you reference something like #/$defs/components/tokens/identifier, this happens:
it looks up the DefsKeyword
finds the components subschema
finds the UnrecognizedKeyword with a "tokens" name, which contains its value as a JsonNode
evaluates the remainder of the pointer (which is just /identifier), which returns another JsonNode
deserializes that as a JsonSchema
returns the schema
SchemaRegistry only tracks named subschemas, ones that contain $id, $anchor, or $dynamicAnchor (or $recursiveAnchor for 2019-09). It doesn't track pointer-identified subschemas. So when you point into an unknown keyword, it has to go through a lot of deserialization. When you then do that recursively... you saw what happened.
The solution is to flatten your $defs and don't point $ref to locations where subschemas aren't expected. Fix that up and it'll easily validate the instances. (I tried it.)

(Just out of curiosity, why are you serializing Linq expressions? And then, why do you need to validate them?)

(Migrated from https://github.com/json-schema-org/json-schema-spec/issues/1528)

I added a little more structure in the $defs only to be able to navigate the 2000-lines schema easier. However, It was working fine until the last 4 definitions under the $defs, before that it  was working fine, so this may not be the real culprit but related to it. Also, like I said, all other validators worked with paths after the $defs.

I think this is definitely what's happening.  I think you just hit the ceiling with those last 4 definitions.

Also, like I said, all other validators worked with paths after the $defs.

Yes, this isn't a required behavior, and technically I support it.  It's just with the size of your schema and the way my validator works, you found the limit of its capability.  (Congratulations?)

I've linked a PR here, you can see above.  I added this new option to help diagnose your problem.  Once I found that it had deserialization nested in the stack trace, I figured that was it, but I didn't want to scan your schema for it.
So I added the option and ran the test again, and it threw an exception as soon as it tried to resolve one of those references (the option works!).  That let me see what the reference was.
Then I used VSCode to flatten your $defs and find/replace to update all of the pointers and ran the test again, and everything worked.

(Just out of curiosity, why are you serializing Linq expressions? And then, why do you need to validate them?)

Good question! If the the LINQ expressions are created by the customer (say by using some UI or some other query language transformed to LINQ, e.g. GraphSQL), then I can save them and the customer can refer to them in the future. They will be "categories" of sorts and every time when the user adds or updates an object, I can "categorize" or attribute it automatically by running their saved queries (category definitions). In the past (when I was using the 1st XML incarnation of the package) I had other very useful scenarios as well.

Why do I need schema? Frankly, I don't. However, it turned out to be a useful development/definition/requirements tool. Also, I can theoretically accept queries from other languages but then I'd need to validate the input.

Do you plan to fix it? I can wait a few weeks. If not, I'll flatten my schema and live with it - not a biggie.

Realistically, you should use $defs the way it was intended.
I could put in a hack to handle this specific scenario, but you're the first to experience it, so I'm not sure updating the library is the right approach here.

Another option is to break out the schemas into separate files, each with its own $id.  The catch here is that you'd need to pre-register all of them prior to validation.  Not a big catch, just something else you'd need to do.


Tracking dialy tasks

Thanks a lot for checking! You too have a great week :)

Have a great week!


Fix events handler

Fix events handler.
Replace dot-prop-immutable to object-path-immutable.

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

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


ane.27.9a - split [21/11/24, Anchovy, 9a]

1. Please select only one of the following cases:

[ ] A new stock code needs to be created (not linked to any existing stock).
[x] An existing stock code needs to be split into 2 or more components.
[ ] Two (or more) existing stock codes need to be merged into a single stock.
[ ] One or more existing stocks need to be modified.

2. Please Provide information regarding the request below:
List the previously existing code(s) and description(s), if applicable:
Stock Code: ane.27.9a
Description: Anchovy (Engraulis encrasicolus) in Division 9.a (Atlantic Iberian waters)
Describe your request in detail, with the new/updated stock code(s) and description(s), and the proposed changes:
The stock is being split into Western and Southern components based on the outcomes of WKBANSP.
Which Benchmark, Expert Group or Workshop has requested a new stock code?
(Link to the report and section within it if relevant)
WGHANSA and WKBANSP
Name of the contact ICES Professional Officer for the request
David Miller and Sarah Miller (WKBANSP)
3.  Please confirm:

[ ] The request has been approved by ACOM.
Please provide a link to the minutes, notes etc. where the approval is found.
Final decision due early next week (but already have indications that ACOM will support it). Working group is next week, so getting an early start on this process.

[x]  The codes and descriptions have been reviewed for grammar and style by the editorial office
Sent, waiting for feedback
Proposed names and codes
Name: Anchovy (Engraulis encrasicolus) in Subdivision 9.a.South (Gulf of Cadiz)
Stock code: ane.27.9aS
Name: Anchovy (Engraulis encrasicolus) in subdivisions 9.a.North, 9.a.Central North, and 9.a.Central South (western Iberian waters)
Stock Code: ane.27.9aW

To be filled by RMG

Checklist for RMG (click arrow to expand)

[ ] Request is processed by RMG
[ ] ICES Vocabulary updated
[ ] The requester PO has been informed

If the request is accepted, the RMG will create the stock code in the ICES Vocabulary, whereafter the Professional Officer needs to create a stock list record in SID by linking the stock code to the year(s) that it is valid for.

Will have final confirmation from ACOM and editorial checks next week.

We have ACOM approval and pubs have checked the stock names.
@odontaster when could the new codes/vocabs be ready?

@Milldaz and @odontaster agreed on:
-ane.27.9.a.s: Anchovy (Engraulis encrasicolus) in the southern part of Division 9.a (Gulf of Cadiz and southern coast of Portugal)
-Create a new AreaNonFao
https://vocab.ices.dk/?codetypeguid=d94d4dca-c8d1-40ea-8b82-ff93ae3a7dcf
27.9.a.w: Division 9.a between  43º 00 ‘ N and an oblique line from (37°01.8’N, 9°00’W) to (36° 48.3’N, 9°16.9’W).
-ane.27.9.a.w: Anchovy (Engraulis encrasicolus) in the western part of Division 9.a.

Implemented in ICES_StockCode.
Pending in IC_Stock

Implemented in IC_Stock


Loading pinocchio model fails

After updating Pinocchio to the latest devel branch, I found a problem in the loading of a Pinocchio model. For instance, if I run the following code
import pinocchio
from pinocchio.robot_wrapper import RobotWrapper

URDF_FILENAME = "anymal.urdf"
URDF_SUBPATH = "/anymal_b_simple_description/robots/" + URDF_FILENAME
modelPath = "/home/cmastalli/devel/example-robot-data/robots"
robot = RobotWrapper.BuildFromURDF(modelPath + URDF_SUBPATH, [modelPath], pinocchio.JointModelFreeFlyer())

it fails and says:
*** stack smashing detected ***: /usr/bin/python terminated
Aborted (core dumped)

Then I run the unittest code in Pinocchio, and I found the follows:
Running tests...
/usr/bin/ctest --force-new-ctest-process
Test project /home/cmastalli/devel/pinocchio/build
      Start  1: test-cpp-eigen-basic-op
 1/91 Test  #1: test-cpp-eigen-basic-op .....................   Passed    0.01 sec
      Start  2: test-cpp-eigen-tensor
 2/91 Test  #2: test-cpp-eigen-tensor .......................   Passed    0.00 sec
      Start  3: test-cpp-sincos
 3/91 Test  #3: test-cpp-sincos .............................   Passed    0.01 sec
      Start  4: test-cpp-quaternion
 4/91 Test  #4: test-cpp-quaternion .........................   Passed    0.43 sec
      Start  5: test-cpp-rpy
 5/91 Test  #5: test-cpp-rpy ................................   Passed    0.01 sec
      Start  6: test-cpp-rotation
 6/91 Test  #6: test-cpp-rotation ...........................   Passed    1.06 sec
      Start  7: test-cpp-spatial
 7/91 Test  #7: test-cpp-spatial ............................   Passed    0.04 sec
      Start  8: test-cpp-symmetric
 8/91 Test  #8: test-cpp-symmetric ..........................   Passed    3.62 sec
      Start  9: test-cpp-aba
 9/91 Test  #9: test-cpp-aba ................................   Passed    0.27 sec
      Start 10: test-cpp-rnea
10/91 Test #10: test-cpp-rnea ...............................   Passed    0.17 sec
      Start 11: test-cpp-crba
11/91 Test #11: test-cpp-crba ...............................   Passed    0.14 sec
      Start 12: test-cpp-centroidal
12/91 Test #12: test-cpp-centroidal .........................   Passed    0.32 sec
      Start 13: test-cpp-com
13/91 Test #13: test-cpp-com ................................   Passed    1.29 sec
      Start 14: test-cpp-joint-jacobian
14/91 Test #14: test-cpp-joint-jacobian .....................   Passed    0.08 sec
      Start 15: test-cpp-cholesky
15/91 Test #15: test-cpp-cholesky ...........................   Passed    0.20 sec
      Start 16: test-cpp-contact-dynamics
16/91 Test #16: test-cpp-contact-dynamics ...................   Passed    0.15 sec
      Start 17: test-cpp-sample-models
17/91 Test #17: test-cpp-sample-models ......................   Passed    0.02 sec
      Start 18: test-cpp-kinematics
18/91 Test #18: test-cpp-kinematics .........................   Passed    0.06 sec
      Start 19: test-cpp-urdf
19/91 Test #19: test-cpp-urdf ...............................   Passed    0.14 sec
      Start 20: test-cpp-value
20/91 Test #20: test-cpp-value ..............................   Passed    0.07 sec
      Start 21: test-cpp-python_parser
21/91 Test #21: test-cpp-python_parser ......................   Passed    0.85 sec
      Start 22: test-cpp-model
22/91 Test #22: test-cpp-model ..............................   Passed    0.07 sec
      Start 23: test-cpp-data
23/91 Test #23: test-cpp-data ...............................   Passed    0.04 sec
      Start 24: test-cpp-constraint
24/91 Test #24: test-cpp-constraint .........................   Passed    0.05 sec
      Start 25: test-cpp-joints
25/91 Test #25: test-cpp-joints .............................   Passed    0.09 sec
      Start 26: test-cpp-compute-all-terms
26/91 Test #26: test-cpp-compute-all-terms ..................   Passed    0.12 sec
      Start 27: test-cpp-energy
27/91 Test #27: test-cpp-energy .............................   Passed    0.04 sec
      Start 28: test-cpp-frames
28/91 Test #28: test-cpp-frames .............................   Passed    0.11 sec
      Start 29: test-cpp-joint-configurations
29/91 Test #29: test-cpp-joint-configurations ...............   Passed    0.08 sec
      Start 30: test-cpp-joint-generic
30/91 Test #30: test-cpp-joint-generic ......................   Passed    0.04 sec
      Start 31: test-cpp-explog
31/91 Test #31: test-cpp-explog .............................   Passed    0.05 sec
      Start 32: test-cpp-finite-differences
32/91 Test #32: test-cpp-finite-differences .................   Passed    0.11 sec
      Start 33: test-cpp-visitor
33/91 Test #33: test-cpp-visitor ............................   Passed    0.08 sec
      Start 34: test-cpp-algo-check
34/91 Test #34: test-cpp-algo-check .........................   Passed    0.02 sec
      Start 35: test-cpp-joint-composite
35/91 Test #35: test-cpp-joint-composite ....................   Passed    0.04 sec
      Start 36: test-cpp-joint-mimic
36/91 Test #36: test-cpp-joint-mimic ........................   Passed    0.02 sec
      Start 37: test-cpp-liegroups
37/91 Test #37: test-cpp-liegroups ..........................   Passed    0.24 sec
      Start 38: test-cpp-regressor
38/91 Test #38: test-cpp-regressor ..........................   Passed    0.06 sec
      Start 39: test-cpp-version
39/91 Test #39: test-cpp-version ............................   Passed    0.00 sec
      Start 40: test-cpp-copy
40/91 Test #40: test-cpp-copy ...............................   Passed    0.03 sec
      Start 41: test-cpp-serialization
41/91 Test #41: test-cpp-serialization ......................   Passed    0.72 sec
      Start 42: test-cpp-kinematics-derivatives
42/91 Test #42: test-cpp-kinematics-derivatives .............   Passed    0.55 sec
      Start 43: test-cpp-rnea-derivatives
43/91 Test #43: test-cpp-rnea-derivatives ...................   Passed    1.38 sec
      Start 44: test-cpp-aba-derivatives
44/91 Test #44: test-cpp-aba-derivatives ....................   Passed    1.89 sec
      Start 45: test-cpp-centroidal-derivatives
45/91 Test #45: test-cpp-centroidal-derivatives .............   Passed    0.48 sec
      Start 46: test-cpp-center-of-mass-derivatives
46/91 Test #46: test-cpp-center-of-mass-derivatives .........   Passed    0.11 sec
      Start 47: test-cpp-contact-dynamics-derivatives
47/91 Test #47: test-cpp-contact-dynamics-derivatives .......   Passed    2.33 sec
      Start 48: test-py-bindings
48/91 Test #48: test-py-bindings ............................   Passed    0.44 sec
      Start 49: test-py-bindings_model
49/91 Test #49: test-py-bindings_model ......................   Passed    0.44 sec
      Start 50: test-py-bindings_data
50/91 Test #50: test-py-bindings_data .......................   Passed    0.56 sec
      Start 51: test-py-bindings_com
51/91 Test #51: test-py-bindings_com ........................   Passed    0.61 sec
      Start 52: test-py-bindings_com_velocity_derivatives
52/91 Test #52: test-py-bindings_com_velocity_derivatives ...   Passed    0.62 sec
      Start 53: test-py-bindings_regressor
53/91 Test #53: test-py-bindings_regressor ..................   Passed    0.45 sec
      Start 54: test-py-bindings_dynamics
54/91 Test #54: test-py-bindings_dynamics ...................   Passed    1.05 sec
      Start 55: test-py-bindings_force
55/91 Test #55: test-py-bindings_force ......................   Passed    0.35 sec
      Start 56: test-py-bindings_frame
56/91 Test #56: test-py-bindings_frame ......................   Passed    0.36 sec
      Start 57: test-py-bindings_inertia
57/91 Test #57: test-py-bindings_inertia ....................   Passed    0.39 sec
      Start 58: test-py-bindings_spatial
58/91 Test #58: test-py-bindings_spatial ....................   Passed    0.33 sec
      Start 59: test-py-bindings_joint_composite
59/91 Test #59: test-py-bindings_joint_composite ............   Passed    0.33 sec
      Start 60: test-py-bindings_motion
60/91 Test #60: test-py-bindings_motion .....................   Passed    0.35 sec
      Start 61: test-py-bindings_SE3
61/91 Test #61: test-py-bindings_SE3 ........................   Passed    0.35 sec
      Start 62: test-py-bindings_geometry_model
62/91 Test #62: test-py-bindings_geometry_model .............   Passed    0.33 sec
      Start 63: test-py-bindings_rnea
63/91 Test #63: test-py-bindings_rnea .......................   Passed    0.38 sec
      Start 64: test-py-explog
64/91 Test #64: test-py-explog ..............................   Passed    0.34 sec
      Start 65: test-py-rpy
65/91 Test #65: test-py-rpy .................................   Passed    0.34 sec
      Start 66: test-py-utils
66/91 Test #66: test-py-utils ...............................   Passed    0.34 sec
      Start 67: test-py-serialization
67/91 Test #67: test-py-serialization .......................   Passed    0.39 sec
      Start 68: test-py-bindings_urdf
*** stack smashing detected ***: /usr/bin/python terminated
68/91 Test #68: test-py-bindings_urdf .......................***Exception: Other  0.48 sec
      Start 69: test-py-bindings_geometry_model_urdf
*** stack smashing detected ***: /usr/bin/python terminated
69/91 Test #69: test-py-bindings_geometry_model_urdf ........***Exception: Other  0.48 sec
      Start 70: example-cpp-inverse-kinematics
70/91 Test #70: example-cpp-inverse-kinematics ..............   Passed    0.09 sec
      Start 71: example-cpp-overview-simple
71/91 Test #71: example-cpp-overview-simple .................   Passed    0.02 sec
      Start 72: example-cpp-overview-lie
72/91 Test #72: example-cpp-overview-lie ....................   Passed    0.01 sec
      Start 73: example-cpp-overview-SE3
73/91 Test #73: example-cpp-overview-SE3 ....................   Passed    0.01 sec
      Start 74: example-cpp-overview-urdf
74/91 Test #74: example-cpp-overview-urdf ...................   Passed    0.02 sec
      Start 75: example-cpp-interpolation-SE3
75/91 Test #75: example-cpp-interpolation-SE3 ...............   Passed    0.01 sec
      Start 76: example-cpp-build-reduced-model
76/91 Test #76: example-cpp-build-reduced-model .............   Passed    0.02 sec
      Start 77: example-cpp-geometry-models
77/91 Test #77: example-cpp-geometry-models .................   Passed    0.04 sec
      Start 78: example-cpp-kinematics-derivatives
78/91 Test #78: example-cpp-kinematics-derivatives ..........   Passed    0.03 sec
      Start 79: example-cpp-forward-dynamics-derivatives
79/91 Test #79: example-cpp-forward-dynamics-derivatives ....   Passed    0.04 sec
      Start 80: example-cpp-inverse-dynamics-derivatives
80/91 Test #80: example-cpp-inverse-dynamics-derivatives ....   Passed    0.03 sec
      Start 81: example-py-inverse-kinematics
81/91 Test #81: example-py-inverse-kinematics ...............   Passed    0.51 sec
      Start 82: example-py-overview-simple
82/91 Test #82: example-py-overview-simple ..................   Passed    0.34 sec
      Start 83: example-py-overview-urdf
*** stack smashing detected ***: /usr/bin/python terminated
83/91 Test #83: example-py-overview-urdf ....................***Exception: Other  0.46 sec
      Start 84: example-py-kinematics-derivatives
84/91 Test #84: example-py-kinematics-derivatives ...........   Passed    0.36 sec
      Start 85: example-py-forward-dynamics-derivatives
85/91 Test #85: example-py-forward-dynamics-derivatives .....   Passed    0.43 sec
      Start 86: example-py-inverse-dynamics-derivatives
86/91 Test #86: example-py-inverse-dynamics-derivatives .....   Passed    0.40 sec
      Start 87: example-py-gepetto-viewer
*** stack smashing detected ***: /usr/bin/python terminated
87/91 Test #87: example-py-gepetto-viewer ...................***Exception: Other  0.48 sec
      Start 88: example-py-meshcat-viewer
*** stack smashing detected ***: /usr/bin/python terminated
88/91 Test #88: example-py-meshcat-viewer ...................***Exception: Other  0.48 sec
      Start 89: example-py-meshcat-viewer-dae
*** stack smashing detected ***: /usr/bin/python terminated
89/91 Test #89: example-py-meshcat-viewer-dae ...............***Exception: Other  0.47 sec
      Start 90: example-py-robot-wrapper-viewer
*** stack smashing detected ***: /usr/bin/python terminated
90/91 Test #90: example-py-robot-wrapper-viewer .............***Exception: Other  0.47 sec
      Start 91: example-py-geometry-models
*** stack smashing detected ***: /usr/bin/python terminated
91/91 Test #91: example-py-geometry-models ..................***Exception: Other  0.46 sec

91% tests passed, 8 tests failed out of 91

Total Test time (real) =  32.62 sec

The following tests FAILED:
	 68 - test-py-bindings_urdf (OTHER_FAULT)
	 69 - test-py-bindings_geometry_model_urdf (OTHER_FAULT)
	 83 - example-py-overview-urdf (OTHER_FAULT)
	 87 - example-py-gepetto-viewer (OTHER_FAULT)
	 88 - example-py-meshcat-viewer (OTHER_FAULT)
	 89 - example-py-meshcat-viewer-dae (OTHER_FAULT)
	 90 - example-py-robot-wrapper-viewer (OTHER_FAULT)
	 91 - example-py-geometry-models (OTHER_FAULT)
Errors while running CTest
Makefile:85: recipe for target 'test' failed
make: *** [test] Error 8

This code is reported in Ubuntu 16.04 with all required dependencies installed from binaries.

On 18.04, your snippet works.

On 18.04, your snippet works.

Yes, it works on 18.04

Can you run it with gdb and provide the backtrace ?

Are you working from a clean installation? Could you also provide the ldd output related to Pinocchio pywrap lib.

Can you run it with gdb and provide the backtrace ?

I will run it as soon as Pinocchio finish to compile (in my old laptop takes easily 30 minutes)

Are you working from a clean installation? Could you also provide the ldd output related to Pinocchio pywrap lib.

No, I don't; just make clean then make install. But note that it was working before
However, I am trying now to clean my PC, to be sure that it is not installation related.
I will report you as soon as I have tested both things

make clean is not always sufficient. You may have run into a CMake caching issue.

@cmastalli Just to mention that everything is running well on the CI. So, the issue seems to come from your side. As mentionned by @jmirabel or me, working with a clean build directory should solve your issue.

In addition, remove any installed library. Because the new thing with the current devel branch is that we have moved the URDF parser back to the libpinocchio.so file in order to avoid the managment of borring compilation flags that were only related to URDF, which is a compiled lib.

I fixed this issue in my installation by doing:
 cd ${build}
 rm -rf *
 cmake ../
 make install

So @jmirabel was right, cmake did a mess in my PC.
Thank you for the support!


Feedback on trying it out

First - This is awesome! Join us on the #hacking channel in Roam slack!
Some edges:

I needed to manually enable actions on the fork (apparently disabled for forks)
Nothing happened until I've made a commit
S3 policy should probably really only have the PutObject permission for the bucket and not S3 Full access
It actually timed out for me just now, but WF reports success =\ (gonna try increasing timeouts)

Requests:

Also backup Markdown

Also it does not seem to be able to handle the case when you have multiple databases (in that case you'd see their list after login). 's probably why this times out for me

hey @Stvad, this is great feedback, thanks so much! can you tell me more about the multi database thing? i was unaware you could even do that, how do you set it up?

some good docs stuff here, too - i'll update the README w/ the s2 perms stuff, and let ppl know you need to enable actions.
should be able to make the markdown/json thing configurable too

If you go to https://roamresearch.com/#/secretinvite you can create multiple databases on the same account. A relevant feature request would be to back up all of them :)

Just run it in the dev env and confirmed that it times out on the DB selection page

Moving multi-db discussion in #4

+1 on @Stvad's points regarding needing to enable actions, and make an initial commit. I was also able to confirm it still works when using a more conservative access policy, but that requires creating a custom policy.
Added some PRs to update README clarifying all of the above.

One other thing is - I'd like the workflow to fail if one of the steps fails (so I can see when it's having problems)

Also for my larger database the switch to JSON format does not seem to work =\

@Stvad I'm going to close this issue – #4 covers the multi-database work and @sansari has been a huge help in #3 #5 to get these things documented in the README. Feel free to re-open if you think there's something I missed!


Fix order of README for clarity

Looks like it was moved out of order making GCP portion hard to follow

@Flydiverny please merge as I don't have permissions


master - Can't edit a host

Version - master 4/15
Steps to Reproduce:

Try to edit a host

Results: Method not allowed error
Expected:  Should allow me to edit

Version - master 4/19
Verified fixed


CI: Update mergify rules

Updated mergify rules to remove kubernetes 1.23 and consider kubernetes 1.26 for CI jobs and added a new section for 3.8 backporting.
Signed-off-by: Madhu Rajanna<EMAIL_ADDRESS>

https://kubernetes.io/releases/ shows that 1.23 is still maintained, until the end of the month. Not enforcing the CI to pass on that version is ok with me.
Do you want to remove the 1.23 version from the Pull Request Commentor GitHub Workflow too already?

Not yet, will remove it once it's not supported anymore

@mergifyio rebase


System CPU utilization shows as -100% when the actual value is not available

Describe the bug
CPU -100% (Linux and/or Fabric issue?)
Happens regardless of other mods, even in a server on its own.
https://paste.ubuntu.com/p/SgCHyGR8rj/
To Reproduce
Steps to reproduce the behavior:

On Linux (I'm using Arch, specifically), start a Fabric server with TabTPS installed.
run /tickinfo

Expected behavior
Actual CPU utilization on sys. portion
Screenshots

Server Software and Version:

Vendor: Fabric
Minecraft Version: 1.17.1
Output of /version command:

Additional context
I don't really know what else to add...

This basically means system usage is not available.
To quote the Javadoc for the method I use to get system cpu usage: "If the recent cpu usage is not available, the method returns a negative value."
There isn't much I can do about this from the TabTPS side of things, however a possible improvement might be to not display system utilization when it's unavailable, instead of displaying invalid data.
I don't think the issue here is related to your operating system, as I test and develop the mod on Arch Linux as well.

This basically means system usage is not available.

I don't think the issue here is related to your operating system, as I test and develop the mod on Arch Linux as well.

Why would it be unavailable? Could it be a problem with the server's JVM arguments?
java -jar -Xms1024M -Xmx3072M -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true fabric-server-launch.jar nogui

It's more likely to be something with your system configuration, or with the JVM and how it interacts with your system. Are you running in a VM, or on bare metal?
I also noticed this commit to OpenJDK: https://github.com/AdoptOpenJDK/openjdk-jdk/commit/e2106d5af6244a9394be10106619ea5ac3262a9a
That commit is included in JDK 17, but not 16. It might be worth trying out one of the early access 17 builds to see if anything changes there.

It's more likely to be something with your system configuration, or with the JVM and how it interacts with your system. Are you running in a VM, or on bare metal?
I also noticed this commit to OpenJDK: AdoptOpenJDK/openjdk-jdk@e2106d5
That commit is included in JDK 17, but not 16. It might be worth trying out one of the early access 17 builds to see if anything changes there.

Bare metal, on my main system. And I will try the Java 17 build now.

Java 17 is displaying it correctly, thank you. :D
(Out of sheer laziness I just hacked the conflicting mod so instead of depending on
"Java": "16"
it depends on
"Java": "*"
(10/10 idea nothing can go wrong wait why is my game crashing ;-; )

Nice, I'm glad that worked. I'm going to close this issue as it seems resolved to me.


Readme.txt changelog parsing issue after replacing Markdown with Parsedown

After updating to the latest version in master, I have noticed a plugin changelog is shown incorrectly in the WordPress dashboard.
A regression introduced in this commit: https://github.com/YahnisElsts/wp-update-server/commit/659be8df3ea81ab5d2516edeeda5885c5775c7cf
Input:
<...>
== Changelog ==

= 1.1.0 =
* Fix B.

= 1.0.0 =
* Fix A.

Output before:

1.1.0

Fix B.

1.0.0

Fix A.

Output after:

1.1.0

Fix B.

1.0.0

Fix A.

I have found that a "native" wp.org readme parser is available. Wondering if it would be the best option to stick with to keep the compatibility?

Thank you for the report, I hadn't noticed this regression. It should probably be fixed now.
Switching to another parser is an option, but it could be a time-consuming task. I would prefer to stick to the current implementation unless it turns out to have some hard-to-fix issues.

Thank you for the report, I hadn't noticed this regression. It should probably be fixed now.
Switching to another parser is an option, but it could be a time-consuming task. I would prefer to stick to the current implementation unless it turns out to have some hard-to-fix issues.

Thank you for the quick update. Works for me.
I'm thinking about adding tests to prevent regressions and change minor things to make sure the response is the same to wp.org API. For now, it looks for me like the ideal way is to keep it exactly the same, byte-to-byte. I understand that a few more or less spaces in the HTML parts, for example, won't hurt anyone. But is this assumption correct in general? For example, won't it break something in the plugin-update-checker counterpart? Do you see any consequences or obstacles going this way?

Thank you for the quick update. Works for me.
I'm thinking about adding tests to prevent regressions and change minor things to make sure the response is the same to wp.org API. For now, it looks for me like the ideal way is to keep it exactly the same, byte-to-byte. I understand that a few more or less spaces in the HTML parts, for example, won't hurt anyone. But is this assumption correct in general? For example, won't it break something in the plugin-update-checker counterpart? Do you see any consequences or obstacles going this way?

In general, this server should produce the same results as wp.org when parsing plugin readmes. Or at least a subset of those results, as this implementation doesn't handle screenshots and possibly a few other things.
However, the update API responses are intentionally different from the wp.org API. Here's why:

Personally, I found some some of wp.org API design choices unintuitive or inconsistent. For example, some parts of the API call the download URL package and others call it download_link, the plugin update and plugin info APIs return slightly incompatible responses even though the first is really just a subset of the second one's fields, etc.
I don't want to get stuck trying to emulate a mostly-undocumented API in multiple places. plugin-update-checker has to do it to interoperate with WP core, but the update server is not bound by that constraint.

In general, this server should produce the same results as wp.org when parsing plugin readmes. Or at least a subset of those results, as this implementation doesn't handle screenshots and possibly a few other things.
However, the update API responses are intentionally different from the wp.org API. Here's why:

Personally, I found some some of wp.org API design choices unintuitive or inconsistent. For example, some parts of the API call the download URL package and others call it download_link, the plugin update and plugin info APIs return slightly incompatible responses even though the first is really just a subset of the second one's fields, etc.
I don't want to get stuck trying to emulate a mostly-undocumented API in multiple places. plugin-update-checker has to do it to interoperate with WP core, but the update server is not bound by that constraint.

Ok, got it.

Ok, got it.


Support serde Rename In Impl Macros

Instead of the pattern $($arg),* use $($rust_field, $es_field),*.
Support field renaming, but keep the existing matches where the es_field is the same.

This is now done


Swap wasm-bz2 for compressjs

Solves #4
Swapped wasm-bz2 for compressjs since WASM compatibility seems hard for tools like vite or esbuild
Pinned web-worker 1.2 since 1.3.0 gave me an error.
NOTE: package-lock.json not updated since prebuilt binaries for canvas are not available for ARM mac, and npm fails to build it. I succeeded with pnpm, but did not want to include that lock file, so you have to run npm i yourself after this PR

@Dezinater added cache loading via downloading and unzipping remote and local zip files. Solves #1

Nice! This looks really good. Maybe this zip loading part can be a separate pull request. I think for the bz2 stuff we should leave this pull request open and confirm it works with multiple caches. But now that you've added zip loading we can actually have it automatically check so it's even better. What do you think?
Also I have a couple of ideas for the zip loading as well so it would be nice to have all that in a separate PR

@Dezinater Removed the unzip part from this PR and made a new one, #6
Though this one is somewhat important to me since I'm having no success with wasm-bz2 😛

Since it was a bit important to you I just checked a few cache versions manually with this PR and they seem to load fine (version 210-219)
I also checked the documentation for compressjs and it seems like a C port of bz2 so I'm fairly confident this should be good going forward
I will merge it now

So it seems like I made a mistake with the testing and didn't properly test it. There is a problem on this branch with webpack now lol. I'm not entirely sure what the problem is but somewhere in compressjs it calls define() which webpack doesn't seem to handle too well. Other people have already had this same issue with webpack+compressjs
https://github.com/webpack/webpack/issues/5316
https://github.com/cruise-automation/webviz/pull/316
I really would like this repo to work with webpack and vite since I know other frameworks both depend on those. I won't revert this merge tho since it's basically the same problem either way.
If you want to see this error you can just run it with npm run dev and put some sample code in index-dev.js
Uncaught TypeError: Cannot read properties of undefined (reading 'apply')
    at req (amdefine.js:145:31)
    at stringRequire (amdefine.js:221:28)
    at amdRequire (amdefine.js:114:24)
    at eval (amdefine.js:178:24)
    at Array.map (<anonymous>)
    at runFactory (amdefine.js:177:25)
    at define (amdefine.js:278:13)
    at eval (main.js:3:1)
    at ./node_modules/compressjs/main.js (osrscachereader.js:93:1)
    at __webpack_require__ (osrscachereader.js:1313:42)

Will look into it this week

PR opened with fix: #8


[jvm-packages] bump version for 0.82 release

@CodingCat I already updated the version numbers in release_0.82 branch: https://github.com/dmlc/xgboost/commit/2f218fc4be980dd341012c99e7baf3b7e970daa3


Drawing primitives in batches causes texture transparency artifacts

Drawing primitive directly doesn't cause any problems, it could be a state that doesn't get reset

The way batching was working was not really smart and useful. I've removed it, it could be reintroduced later by creating another batching system independent from the Context


Conserve python object in callbacks

Issue
Consider this code
class MyObj_Is_An_Array:
   def __init__():
      self.a_data_to_access = 42
   def __descriptor__(): # Give DaCe the possibility to use it as an array
            ...

# For the sake of the argument this function will _not_ be parsed by DaCe
# but triggers a callback
 def callback(the_obj):
       the_obj.a_data_to_access # <--- error, we get a dace.Array instead of a MyObj_Is_An_Array

@dace.program
def a_program(the_obj):
    ...
    callback(the_obj)

the_obj = MyObj_Is_An_Array()
a_program(the_obj)

Solution
Marshall the true type of Python object in the callback system.
(Also we would need it to keep working with literal list, e.g. callback([obj, obj, obj])
Motivation
The Pace code makes use of callback to access an optimized halo exchange system. Of course we should ultimately try and have the halo exchange be DaCe readable, but in the meantime callbacks are an effective (and used) way to reach working system in large codebase.

Addendum: the type of the object might be a np.array and not a dace.Array, would have to be tested.
Issue with this feature: if callback(myObj_Is_An_Array) is straightforward, what to be done with callback(myObj_Is_An_Array[10:24]) ?

I suggest the following solution:
import ctypes
import dace
import numpy as np

def dace_blocker(f):
    return f

class MyObj_Is_An_Array(np.ndarray):

    def __init__(self, shape, dtype):

        self.a_data_to_access = 42
        self.shape=shape
        self.dtype=dtype

        super(MyObj_Is_An_Array, self).__init__()

    def __descriptor__(self):
        return dace.data.Array(dace.typeclass(self.dtype.type),
                               self.shape,
                               strides=tuple(s // self.itemsize for s in self.strides))

@dace_blocker
def callback(obj, obj_id):
    print(f'obj has type {type(obj)} and value {obj}')   # obj is numpy.ndarray
    actual_obj = ctypes.cast(obj_id, ctypes.py_object).value
    print(f'actual_obj has type {type(actual_obj)} and value {actual_obj}')  # actual_obj is MyObj_Is_An_Array
    print(f'actual_obj.a_data_to_access has type {type(actual_obj.a_data_to_access)} and value {actual_obj.a_data_to_access}')

@dace.program
def a_program(obj, obj_id):
    obj[:] = 5
    callback(obj, obj_id)

the_obj = MyObj_Is_An_Array(shape=[1], dtype=np.int32)
a_program(the_obj, id(the_obj))

Regarding passing a slice of the object, then obj will be the slice, while actual_obj will be the whole array (and will still have access to the custom attributes):
@dace.program
def a_program(obj, obj_id):
    obj[:] = 5
    callback(obj[2:4], obj_id)

the_obj = MyObj_Is_An_Array(shape=[5], dtype=np.int32)
a_program(the_obj, id(the_obj))

returns:
obj has type <class 'numpy.ndarray'> and value [5 5]
actual_obj has type <class '__main__.MyObj_Is_An_Array'> and value [5 5 5 5 5]
actual_obj.a_data_to_access has type <class 'int'> and value 42

A modified program passing lists of objects (and lists of their IDs):
@dace_blocker
def callback(obj_list, obj_id_list):
    print(f'obj_list has type {type(obj_list)} and value {obj_list}')
    print(f'obj_id_list has type {type(obj_id_list)} and value {obj_id_list}')
    for obj_id in obj_id_list:
        actual_obj = ctypes.cast(obj_id, ctypes.py_object).value
        print(f'actual_obj has type {type(actual_obj)} and value {actual_obj}')
        print(f'actual_obj.a_data_to_access has type {type(actual_obj.a_data_to_access)} and value {actual_obj.a_data_to_access}')

@dace.program
def a_program(obj, obj_id):
    obj[:] = 5
    callback([obj, obj, obj], [obj_id, obj_id, obj_id])

the_obj = MyObj_Is_An_Array(shape=[5], dtype=np.int32)
a_program(the_obj, id(the_obj))

returns:
obj_list has type <class 'list'> and value [array([5, 5, 5, 5, 5], dtype=int32), array([5, 5, 5, 5, 5], dtype=int32), array([5, 5, 5, 5, 5], dtype=int32)]
obj_id_list has type <class 'list'> and value [139645202514256,<PHONE_NUMBER>14256,<PHONE_NUMBER>14256]
actual_obj has type <class '__main__.MyObj_Is_An_Array'> and value [5 5 5 5 5]
actual_obj.a_data_to_access has type <class 'int'> and value 42
actual_obj has type <class '__main__.MyObj_Is_An_Array'> and value [5 5 5 5 5]
actual_obj.a_data_to_access has type <class 'int'> and value 42
actual_obj has type <class '__main__.MyObj_Is_An_Array'> and value [5 5 5 5 5]
actual_obj.a_data_to_access has type <class 'int'> and value 42


Feat / WCAG validation per page  using axe-playwright

Description
With this PR, we now perform a WCAG check per page using axe-playwright.
Due to these accessibility tests, new issues have been found and fixed:

aria-rowindex and aria-colindex should start with 1 according to the docs (docs)
The featured shelf was missing a (hidden) h2, which made the header order illogical (Axe DevTools extension couldn't detect this one)
The role img was missing on the lock icon in VideoListItem
A label element was missing for the Select component
The heading hierarchy is fixed on the Search page

Update June 4th: Temporary wait functions are necessary (sadly)
The accessibility tests always fail on the first run, but succeed on all subsequent runs (e.g. when you locally rerun, they always pass).
It looks like we need to implement proper page load handling and find an alternative to the temporary I.wait() in our accessibility tests . It appears that the I.waitForLoaderDone() function is not sufficient to address the issue in all tests, therefore we resorted to a wait function for now as a temporary fix (I've created a ticket for this research: OTT-1884)
Update June 5th
🚧 Work in Progress: Tests still fail after implementing a wait of 2 seconds in the checkA11y function. We need to further investigate and find a solution, see Slack thread for more info: Thread.

Original ticket: https://videodock.atlassian.net/browse/OTT-1134
Other tickets that are solved, see userstory: OTT-1593
Solely run the a11y tests
Change codecept start script to:
"codecept:desktop": "cd test-e2e && rm -rf \"./output/desktop\" && codeceptjs run --config ./codecept.desktop.cjs"

Change test config to only run a11y tests:
tests: ['./tests/**/*.js', './tests/**/accessibility_test.ts'],

For a more verbose output, add logging to if (impactedViolations.length > 0) check:
console.dir(impactedViolations, { depth: null });

@ChristiaanScheermeijer maybe we should push this through next sprint and submit it as a PR in the OSS repo. Even without e2e tests for some of the modals (there is still an open ticket for that). It is beneficial to have this in the OSS repo so nobody accidentally breaks accessibility.
If @MelissaDTH  is back on Monday, maybe she could finish off this PR and do some of the modals later.


Lack of application of discriminators in both dgmr.py and pseudocode/train.txt

Hi, I am also interested in the original paper and I'm glad to see recent great progress in this repo due to uploaded pseudocodes.
From what I read, I'm afraid that both pseudocode/train.txt (from DeepMind) and dgmr.py (in this repo) lack applying discriminators before calculating the generator loss.

train.txt

def train():

  # ...

  gen_sequences = [tf.concat([batch_inputs, x], axis=1) for x in gen_samples]
  # HERE: loss_hinge_gen should accept Tensor containing discriminator scores instead of precipitation themselves.
  gen_disc_loss = loss_hinge_gen(tf.concat(gen_sequences, axis=0))

dgmr.py

    def training_step(self, batch, batch_idx):

        # ..

        generated_sequence = [torch.cat([images, x], dim=2) for x in predictions]
        # HERE
        generator_disc_loss = loss_hinge_gen(torch.cat(generated_sequence, dim=0))

Because loss_hinge_gen() applies the whole-Tensor mean function inside, the resulting Tensor appears to have a correct shape.
Thanks.

Thanks for pointing that out! Should have just pushed a fix!


Unable to send email to mailing list.

Describe the bug, including details regarding any error messages, version, and platform.
Sending an email to<EMAIL_ADDRESS>gives the following error.

Component(s)
Other

Could you show raw e-mail you sent?

Could you show raw e-mail you sent?

Could you show the source of the e-mail not rendered one?

I am not sure if I understand what you mean by "source of the email". Could you kindly elaborate?

It depends on your mail client. For example, Gmail case: https://support.google.com/mail/answer/29436
I want to see a text like the following:
Subject: Getting Issues ...
From: ...
To<EMAIL_ADDRESS>...

I am a beginner ...

I want to see a text like the following:

Message Id<EMAIL_ADDRESS>Created at:  Sat, Feb 4, 2023 at 11:22 PM (Delivered after 14 seconds)
From:  Shaheer Ahmad<EMAIL_ADDRESS>To<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject:  Getting Issues during build cpp libraries.

Return-Path<EMAIL_ADDRESS>Received: from Shaheer ([2400:adc5:16b:2d00:958c:d38e:150a:664e])
by smtp.gmail.com with ESMTPSA id k6-20020adfb346000000b0027cb20605e3sm4957551wrd.105.2<IP_ADDRESS>.23.02
for<EMAIL_ADDRESS>(version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
Sat, 04 Feb 2023 10:23:03 -0800 (PST)
MIME-Version: 1.0
Date: Sat, 4 Feb 2023 23:22:49 +0500
From: Shaheer Ahmad<EMAIL_ADDRESS>Subject: Getting Issues during build cpp libraries.
Thread-Topic: Getting Issues during build cpp libraries.
Message-ID<EMAIL_ADDRESS>To<EMAIL_ADDRESS><EMAIL_ADDRESS>Content-Type: multipart/related; boundary="86DB2D15-1A58-4761-BD5A-FA22049C1209"
--86DB2D15-1A58-4761-BD5A-FA22049C1209
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="utf-8"
I am a beginner in opensource contributions and I am followin=
g the guide to build the arrow=E2=80=99s source code. Following the steps, =
I installed the requirements by vcpkg, install cmake and ninja-debug to bui=
ld using a preset and finally when I passed the command =E2=80=9Ccmake =E2=
=80=93build .=E2=80=9D within =E2=80=9Carrow/cpp=E2=80=9D directory (as tol=
d in the guide), the following error arises.<=
/p>Any help would be appreciated! Sent from Mail for Windows
--_86DB2D15-1A58-4761-BD5A-FA22049C1209_
Content-Type: image/png; name="46CEB29392EE440D81FC4B31AAA31C1E.png"
Content-ID:
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="46CEB29392EE440D81FC4B31AAA31C1E.png"
--86DB2D15-1A58-4761-BD5A-FA22049C1209--

Thanks.
Could you try disabling a HTML e-mail feature in your mail client?

@Shaheer-Ahmd should we close this issue?

Succeeded: https://lists.apache.org/thread/93kyn8dwx720hb97c6sorz1rj3m0gsvr


Add support for java.time.Instant

Hi.
I run into this problem in my project. I can support you with relevant info and code, to get this done.
We need this codec as java.time.Instant is modern type for storing datetime when using machine-to-machine communication.
The problem is to choose which store type to use.
Use datetimeoffset in this case is tempting but I'd not use it. The reason is that we're aiming to store Instant as date time in UTC timezone only. So we have fixed TZ. Using datetimeoffset allows to define or put data in different timezone than UTC.
Using datetime2 is the best approach. It does not declare TZ explicitly but here we have only one possible TZ and it's UTC.
The way datetime2 works is taking datetime as it is, with trimming Z that denotes TZ. It's simply omitted. And this is what we need taking java.time.Instant as an input.
@mp911de
I can provide working Codec for this but I need your approval and agreement on this.

DATETIME2 is a local type. Looking at the TDS Date and Time types, none of the types seems appropriate.
While you could read DATETIMEOFFSET into Instant, writing such a value would lose the offset information. Since there's no temporal type storing a point in time (UTC-based), I do not think that adding an Instant codec for writing is a good idea.

DATETIME2 is a local type. Looking at the TDS Date and Time types, none of the types seems appropriate.

Sorry but I don't agree with that interpretation. DATETIME2 is a type of Date and Time without TZ explicitly set. Period.
So interpretation is left to the developer. Since Instant has a fixed TZ to UTC that means we could use DATETIME2 and explicitly say (in particular project that uses R2DBC) that it's always fixed to UTC TZ and we interpret this field as such. And it often happens with modern designes.
In fact, using any other mssql datetime type that allows us to set TZ could be a real problem as this can be configured wrong, to to use TZ order thatn UTC. Or we'd have to make a conversion from TZ set in data into UTC, which again is not a driver's responsibiliy. This makes me even more sure that a datetime without TZ storage has to be used.
DATETIME2 is not a local datetime type. It says nothing about TZ. If we assume it local this would be wrong since TZ of DB server can be different than application server that makes SQL call or worst, a few application servers from different TZs if we have a distributed system that uses same DB.
R2DBC nor other drivers are not to decide the designation of the data stored in the columns. Driver is to give an access and a possibility to map DB columns into datatypes present in particular language (in this case Java and Instant). And this gives a freedom for developers to use it.
Driver's responsibility is of course to map it clearly and idempotent so mapping should be done correctly in both ways (in and out).
JDBC allows this so there's some kind of a convention or possiblity. Then moving from JDBC to reactive access would be (almost) like switching some libraries. But not if suddenly R2DBC is not supporting Instant. Other problem arises that it supports Instant depending on DB used, here I refer H2. We've implemented all with Instant in Entities, worked well in test and failed on deploy on real MSSQL DB. The worst thing is that reading data as Instant actually worked. Saving it did not and this was so confusing for me.
Again, I encourage you to discuss it and be open for my reasoning. I propose my input on this and a ready PR. Just making sure that is worth spending time on this.

Ok. Since seems that I will not convince you - your remarks are also good and valid.
In my current project, as a solution, my colleagues introduced LocalDateTime in place of Instant. That is - in first place I moved to Instant all our Entities, this worked great with H2 and then, after deployment on TEST, it failed with real MSSQL DB. I went on vacations and in meantime, my colleagues reverted to LocalDateTime as a only solution here :-/ Seems like a reasonable (in this case).
But I see lots of damage that can happen if using LocalDateTime in place of Instant that is - whenever we have UTC represented datetime that arrives or being created in higher layers and then suddenly we put it in DB as LocalDateTime.
Interesting is that, they left DATETIME2 type for this. It works. But this involves a middle layer that translates LocalDateTime <-> Instant that we use in Domain and higer (up to DTO and API).
This is my story. Let's wrap it up. MSSQL has no good storate type to "natively" support Instant.
Period.
This is good ground for my second proposal, that I had in my pocket from the start - allow to add custom project Codecs.
Currently there's only DefaultCodecs collection that is fixed and set into Options of r2dbc connection.
My proposal is to add a feature to easily register new codecs. This would include easy way to add them into existing, created by Spring, DB connection. This would be like adding single implementation and/or adding a Codecs impl. This should be easily done by extending / composing  / copying already created in DefaultCodecs.
Currently I see lots of limitations put in the code like package-private classes (for example ConnectionOptions), final classes  and fixed instantiation of DefaultCodecs in ConnectionOptions.
For me, this is a natural direction of R2DBC library, since you've already introduced nice interfaces like Codec and Codecs. One piece is missing to add an ability for developers to enhance their codes list.  This would be a win-win since R2DBC is a clean solution and a weight of responsibility for vague codecs would be put on developers and their decisions in their project.
@mp911de WDYT? I could add some nice code for this. Let's try, heh?

As of now, our codecs support isn't complete. We're missing support for more complex types such as SQL variant that will likely require changes to our codec registry. Once that is in place, we can evaluate opening up our codec registry.


Publish to CDNs (jsdelivr/cdnjs/etc.)

It'd be great to publish this library to CDNs:

http://www.jsdelivr.com/
https://cdnjs.com/
...

+1

you guys can use rawgit
https://rawgit.com/chieffancypants/angular-loading-bar/blob/{{ version }}/build/{{ file .js or .min.js or .css }}
https://rawgit.com/chieffancypants/angular-loading-bar/blob/0.6.0/build/loading-bar.js

This appears to be available on cdnjs.com.  I'll update the readme


Add additional steps to issue/pr checklists

Is your feature request related to a problem? Please describe.
There are quite a lot of project specific steps missing on the PR and issue templates that should be added.
Describe the solution you'd like
Checklists should be extended based off of items on GitHub checklist. Not all items on there will be applicable so use discretion.
Issue templates should have checklists added

before you open this PR for review, can you please copy the PR template into this PR description


Implemented Project_Euler_2 Even_Fibonacci_Numbers and Project_Euler_3 Largest_Prime_Factor in C

Assigned Issue Number?
#126
Language Opted?
C
Number of files added or updated?
2
Name of these files?
Project_Euler => 2-Even_Fibonacci_Numbers => 2-Even_Fibonacci_Numbers.c
Project_Euler => 3-Largest_Prime_Factor=> 3-Largest_Prime_Factor.c
example :
Algorithms => Searching => Linear_Search => Linear_Search.py
Checklist

[x] I was assigned for this otherwise my PR will be rejected.
[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've filled up this entire template correctly.

:star2: this repository and support.

@krishrahul98 Kindly Verify this PR too !


Update README with project info

Update to the README

/assign @cpanato

/test

/ok-to-test

@vladimirvivien I think you are not in the k-sigs org, can you add a PR to join the org?

@cpanato thanks. I created PR and got added to k8s/org.

/test