[LBT][compat] propogate validator image rename

Motivation
Propagate validator image rename.
Test Plan
Canary

/canary

:broken_heart: Test Failed - Build images and run cluster test

/canary

:sunny: Canary successful

woohoo - canary passed

/land priority high

:exclamation: Invalid command

Bors help and documentation

Bors is a Github App used to manage merging of PRs in order to ensure that CI is always green. It does so by maintaining a Merge Queue. Once a PR reaches the head of the Merge Queue it is rebased on top of the latest version of the PR's base-branch (generally master) and then triggers CI. If CI comes back green the PR is then merged into the base-branch. Regardless of the outcome, the next PR is the queue is then processed.
General

This project's Merge Queue can be found here.
This project requires PRs to be Reviewed and Approved before they can be queued for merging.
Before PR's can be merged they must be configured with "Allow edits from maintainers" enabled. This is needed for Bors to be able to update PR's in-place so that Github can properly recognize and mark them as "merged" once they've been merged into the upstream branch.

Commands
Bors actions can be triggered by posting a comment which includes a line of the form /<action>.

Command
Action
Description

Land
land, merge
attempt to land or merge a PR

Canary
canary, try
canary a PR by performing all checks without merging

Cancel
cancel, stop
stop an in-progress land

Cherry Pick
cherry-pick <target>
cherry-pick a PR into <target> branch

Priority
priority
set the priority level for a PR (high, normal, low)

Help
help, h
show this help message

Options
Options for Pull Requests are configured through the application of labels.

          Option
Description

Indicates that the PR is high-priority. When queued the PR will be placed at the head of the merge queue.

Indicates that the PR is low-priority. When queued the PR will be placed at the back of the merge queue.

Before merging the PR will be squashed down to a single commit, only retaining the commit message of the first commit in the PR.

/land
/priority high

/priority high


Infer a string indexer instead of a numeric for Any computed property (#45629)

Fixes #45629.

Housekeeping: Closing due to lack of follow-up. Please open a new PR if you'd like to continue with this. Thanks!


Create Blog

What would you like to be added:
Cretae a blog dedicated to Serverless Workflow, as suggested by @ricardozanini.
Why is this needed:

Publish important information, such as releases.
Publish tutorials
Publish articles
...

For one, i'd love to document and share my learning journey as a "workflow owner/editor" as we're migrating from the old to the new (exciting) spec!! Just expressing interest at this point and looking forward to contributing if time permits :)

hey @bvandewe we use https://github.com/serverlessworkflow/serverlessworkflow.github.io as the main repo for our website.
The idea is to add a blog.serverlessworkflow.io subdomain (I can take care of the paperwork) pointing to a GH tool in this repo that can publish the blog.
So contributors can send PRs there and publish their blogs.
Are you willing to work on the infra to setup this blog engine?


Handle head requests correctly

should not send back anything... also should be allowed by default on all routes.

Added the HEAD request handling for static files. Developers can add handling for HEAD in other areas on their own. Not something the framework should handle.


docs: convert core and prover docs to mdbook project and add CI

What ❔

[x] Convert docs core project documentation to mdBook project
[x] Convert prover/docs prover project documentation to mdBook project
[x] Add CI workflows to build, test, and deploy versioned documentation for these projects using https://github.com/matter-labs/deploy-mdbooks action

Why ❔
Fixes https://github.com/matter-labs/zksync-era/issues/3185
To improve documentation visibility and usability in ZKsync era repository.

Tests
Deployed documentation examples are available in the fork:

For core project: https://antonbaliasnikov.github.io/zksync-era/core/latest/
For prover project: https://antonbaliasnikov.github.io/zksync-era/prover/latest/

Design decisions
It was chosen to use two different workflow files for documentation deployments to keep CI reliable and easy to support regardless of a bit of boilerplate code. Solution with the unified workflow for both projects was implemented but rejected as it is overcomplicated and more difficult to support in the long term.
Checklist

[x] PR title corresponds to the body of PR (we generate changelog entries from PRs).
[x] Tests for the changes have been added / updated.
[x] Documentation comments have been added / updated.
[x] Code has been formatted via zkstack dev fmt and zkstack dev lint.

@popzxc , I fixed all issues. Please take another look when possible.

@antonbaliasnikov the CI is green, but the diff is now over 200k lines for some reason 😅

New rebased PR is here https://github.com/matter-labs/zksync-era/pull/3275


Text Glitching

Godot version:
Godot v3.3.2
OS/device including version:
Windows 7, 32-bit
GLES3
OpenGL ES 3.0 Renderer: AMD Radeon HD 5500
OpenGL ES Batching: ON
Issue description:
Happening since i use Godot v3.3
When running the game, a text glitching and flickering
Details

Here is A Photo about the bug, as you can see there's no glitch

But When running

Now I try to swap the Button nodes

Now the button 2 that glitching

("but" for button)

It seems to occur with label as well

It doesn't occur when you write a small text on it

Note
Now you might find in the photo that the text is just glitching, but it's actually flickering too.
I have try to make the label or button to be the parent but it still occur.
I'm not testing it with other node, just button and label.
English is not my first language.
Steps to reproduce:

Create a parent node
Have at least 2 button or label inside the game
Write a pretty long text in it
Then run the game
If it doesn't occur, try to make the text longer or try to move your mouse like crazy near or to button

Minimal reproduction project:
Tower Defense (Player has a job to atomized stuff).zip
Ignore the name please

Can't seem to reproduce on my machine (Linux Mint 20, Intel HD graphics 630). (Not dismissing the issue but it is relevant if it doesn't occur on all machines.)


Add AdditiveGroup trait + Field: AdditiveGroup

Description

closes: #507

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against correct branch (master)
[ ] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[ ] Wrote unit tests
[ ] Updated relevant documentation in the code
[ ] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[ ] Re-reviewed Files changed in the GitHub PR explorer

Hi @Pratyush ! I updated the PR with the changes you suggested over discord, can you please check it out?

Hi @mmaker this looks mostly good. Could you add a section in the ff README talking about the new trait?

sure, thank you! (Assuming you meant CHANGELOG.md)

Thanks for updating the CHANGELOG! But I meant the README =P. Specifically in the usage section: https://github.com/arkworks-rs/algebra/blob/master/ff/README.md#usage

Yes -- correcting the formulation in the hope it clarifies a bit

Great, any chance you can merge it? @yuwen01 needs it to work on ark-circom and update it to 0.4.0

Hm this is a breaking change to 0.4 as we are renaming traits and changing their contents. I don't think we can merge this in this release, and would probably have to wait until the next one. (Thankfully the next breaking release 0.5 should only be a few months away, and not 2 years away =P)

agreed 👍

Just curious:  Arkworks handles many protocols in which subgroup checks become quite time consuming, so likely people do start doing non-prime order groups eventually.  Any thoughts if this new trait improves that story?


Model weights for Transmitter and Receiver

Can anyone please upload the model weights of trained Transmitter and Receiver?
Thank you.

@parthpatwa Hi, although I do not know why you need weights of Transmitter and Receiver (actually, we have uploaded the final fine-tuned model), I'm uploading it to Google drive. Please wait for minutes.

@parthpatwa  Now we only have Receiver for revised mode LINK and Transmitter for revised mode LINK. Hope it help you.

@SivilTaram Thank you. I need it to retrain PSquare on a new data. I will use your existing model weights instead of starting from scratch
These are the steps I am following:

initialize transmitter to existing weights and retrain on new data
initialize receiver to existing weights and retrain on new data
initialize PSquare to existing weights and retrain by using above obtained transmitter and receiver.

Is this process correct?

@parthpatwa Yes, it seems correct for me. And remember to set a small learning rate to avoid catastrophic forgetting (if your own data is relatively small).

@SivilTaram help!
the receiver file you uploaded seems to be corrupted. I tried downloading and using 3 times.
pfa

@parthpatwa which version of pytorch do you use? I will recheck if it could be loaded in my environment.

@SivilTaram
I tried on 2 systems-
torch==1.5.1
torchvision==0.6.1
and
torch==1.6.0
torchvision==0.7.0
both gave same error

@parthpatwa You're correct, and the file is corrupted. I have re-uploaded another weight file for receiver here. You could try it.


An error when calling a \TelegramBot\Api\Types\Message::toJson

Required Information

PHP version: PHP 7.0.15

PHP Telegram Bot version: 2.2.7

Using MySQL database: no

Update Method: getUpdates

Self-signed certificate: no

RAW update (if available):

Expected behaviour
Calling \TelegramBot\Api\Types\Message::toJson of an object with a non-empty entities filed should return a json-string
Actual behaviour
An erro Call to a member function toJson() on array
Steps to reproduce

Create a response array

    $response = [
        "message_id" => 17,
        "from" => [
            "id" => 142775991,
            "first_name" => "first name",
            "last_name" => "last name",
            "username" => "nickname",
        ],
        "chat" => [
            "id" => 142775991,
            "first_name" => "first name",
            "last_name" => "last name",
            "username" => "nickname",
            "type" => "private",
        ],
        "date" =><PHONE_NUMBER>,
        "text" => "/latest",
        "entities" => [
            [
                "type" => "bot_command",
                "offset" => 0,
                "length" => 7,
            ],
        ],
    ];

Create a message from a response

    $message = \TelegramBot\Api\Types\Message::fromResponse($response);

Dump the message into a json-string

    $json = $message->toJson();

Got an error since $this->$property->toJson(true) is called for a field entities which is an array

Wrong repo, mate....

Сорри, слишком много вкладок открыл.


Route Middleware not work

Hi!
This is my code, but not work:
require ('.././libs/CorsSlim/vendor/autoload.php');
$app = new \Slim\Slim();

$app->post('/item',
          \CorsSlim\CorsSlim::routeMiddleware(),
          function () use ($app) {
            $r = json_decode($app->request->getBody());
            $response["status"] = "success";
            $response["message"] = $r->data->nickname;
            echoResponse(200, $response);
          }
        );

The error:
XMLHttpRequest cannot load [...]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
If I use this code, it works. But I need apply only in one route:
require ('.././libs/CorsSlim/vendor/autoload.php');
$app = new \Slim\Slim();

$corsOptions = array(
    "origin" => "*",
    "exposeHeaders" => array("X-My-Custom-Header", "X-Another-Custom-Header"),
    "maxAge" => 1728000,
    "allowCredentials" => True,
    "allowMethods" => array("POST, GET"),
    "allowHeaders" => array("Origin, X-Requested-With, Content-Type, Accept")
    );

$cors = new \CorsSlim\CorsSlim($corsOptions);
$app->post('/item',
          function () use ($app) {
            $r = json_decode($app->request->getBody());
            $response["status"] = "success";
            $response["message"] = $r->data->nickname;
            echoResponse(200, $response);
          }
        );

$app->add($cors);

You code looks ok and I am able to run it locally with correct cors response.
Could you add $corsOptions to routeMiddleware() and try.
\CorsSlim\CorsSlim::routeMiddleware($corsOptions)

Nothing, I get the same error:
XMLHttpRequest cannot load [...]. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
The code:

$corsOptions = array(
    "origin" => "*",
    "exposeHeaders" => array("X-My-Custom-Header", "X-Another-Custom-Header"),
    "maxAge" => 1728000,
    "allowCredentials" => True,
    "allowMethods" => array("POST, GET"),
    "allowHeaders" => array("Origin, X-Requested-With, Content-Type, Accept, Authorization")
    );

$app->post('/item',
          \CorsSlim\CorsSlim::routeMiddleware($corsOptions),
          function () use ($app) {
            /*$r = json_decode($app->request->getBody());
            $response["status"] = "success";
            $response["message"] = "motherfucker";
            echoResponse(200, $response);*/
          }
        );

The issue is with pre-flight call.
With routeMiddleware you have to explicitly support OPTIONS calls for Preflighted requests, like this:
$app->options('/item',
              \CorsSlim\CorsSlim::routeMiddleware(),
              function () use ($app) {}
              );

No need to return any response.


Split the pr to support dataset version ttl update

Codecov Report
Patch coverage: 47.05% and project coverage change: -13.41% :warning:

Comparison is base (1307007) 33.05% compared to head (12c5346) 19.65%.
Report is 1 commits behind head on master.

Additional details and impacted files
@@              Coverage Diff              @@
##             master    #2543       +/-   ##
=============================================
- Coverage     33.05%   19.65%   -13.41%
+ Complexity     4428     2723     -1705
=============================================
  Files           794      794
  Lines         63782    63831       +49
  Branches       7793     7797        +4
=============================================
- Hits          21086    12543     -8543
- Misses        40479    50112     +9633
+ Partials       2217     1176     -1041

Files Changed
Coverage Δ

...com/github/ambry/account/CachedAccountService.java
59.42% <0.00%> (+59.42%)
:arrow_up:

.../com/github/ambry/account/MySqlAccountService.java
42.85% <0.00%> (+42.85%)
:arrow_up:

.../java/com/github/ambry/account/AccountService.java
7.40% <0.00%> (+7.40%)
:arrow_up:

.../com/github/ambry/account/InMemAccountService.java
39.00% <0.00%> (+10.49%)
:arrow_up:

...ava/com/github/ambry/account/mysql/DatasetDao.java
78.65% <100.00%> (+78.65%)
:arrow_up:

.../github/ambry/account/mysql/MySqlAccountStore.java
94.44% <100.00%> (+94.44%)
:arrow_up:

... and 541 files with indirect coverage changes

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


Logminer hangs where log switch happens

Hi Erdem:
In my tests i notice this frequently.  I start the kafka connect logminer , it keep capturing the inserts.  After some time i shutoff of the table insert simulator.  If if leave it for a long period without any traffic --  and then start sending inserts again I noticed that
i dont get any more notifications on the kafka-connect-logminer
I checked that the network socket is still in established state,
I also noticed everytime this happens the the v$log entry for the SCN  "v$log where ? between FIRST_CHANGE# and NEXT_CHANGE#"   is now no more CURRENT and is archived.
I dont know what might be happening but some log getting switched from online to archived may be causing it.
To fix it , I have to kill and restart the process and then it catches up.    Any thoughts on this behavior ?
Thanks
Sriram C

What is the oracle version you have the problem with?

Hi Erdem:
In my tests i notice this frequently. I start the kafka connect logminer , it keep capturing the inserts. After some time i shutoff of the table insert simulator. If if leave it for a long period without any traffic -- and then start sending inserts again I noticed that
i dont get any more notifications on the kafka-connect-logminer
I checked that the network socket is still in established state,
I also noticed everytime this happens the the v$log entry for the SCN "v$log where ? between FIRST_CHANGE# and NEXT_CHANGE#" is now no more CURRENT and is archived.
I dont know what might be happening but some log getting switched from online to archived may be causing it.
To fix it , I have to kill and restart the process and then it catches up. Any thoughts on this behavior ?
Thanks
Sriram C

Hello Sriram,
We are facing the same issue. Did you solve it ?
Best regards
Yascov

Hi,
Could you please send your connector log file from start to kill ?
Thanks

Yascov:
I did not solve it.  For now the only option was to detect and kill the process so that it starts again clean from the  previous state.


PyPI Release pipline

Add a pipeline for releasing to PyPI. This follows the pattern from Fairlearn, but uses the Twine authentication task in place of an Azure KeyVault.

Successful run:
https://dev.azure.com/responsibleai/interpret-text/_build/results?buildId=7540&view=results
Wheel uploaded:
https://test.pypi.org/project/interpret-text/0.1.2.dev3/

Just noticed that the 'freeze' artifacts were having trouble, and I was getting lost in a twisty maze of VS Code windows when trying to port to interpret-community.


Update settings text for "Flash taskbar icon when..."

Before submitting, please confirm you've

[X] read and understood our Contributing Guidelines
[X] completed Mattermost Contributor Agreement
[X] executed npm run lint:js for proper code formatting

Please provide the following information:
Summary
Update settings text for "Flash taskbar icon when..." to "Flash app window and taskbar icon when a new message is received", as the latter is the actual behaviour of the setting.
Issue link
https://github.com/mattermost/desktop/issues/447
Test Cases

Go to File > Settings
Confirm the settings text reads Flash app window and taskbar icon when a new message is received
Confirm the help text reads If enabled, app window and taskbar icon flashes for a few seconds when a new message is received.

@yuya-oc I updated the help text based on your reply to #447.
Maybe have your help verify, and we can update for 3.6?
Artifact here: https://circleci.com/gh/mattermost/desktop/896#artifacts

Screenshot here from Windows 10:

Is there any way to have Mattermost keep flashing until it gets focus? - as it is now I, and many in my team, keeps missing important messages because they where busy with something else for few minutes


[Feature] select_out_keys

Description
Implements a select_out_keys method for all TensorDictModuleBase subclasses, as an alternative to #349
Usage
>>> from tensordict import TensorDict
>>> from tensordict.nn import TensorDictModule, TensorDictSequential
>>> import torch
>>> mod = TensorDictModule(lambda x, y: (x+2, y+2), in_keys=["a", "b"], out_keys=["c", "d"])
>>> mod(TensorDict({"a": torch.zeros(()), "b": torch.zeros(())}, []))
TensorDict(
    fields={
        a: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        b: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        c: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        d: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False)},
    batch_size=torch.Size([]),
    device=None,
    is_shared=False)
>>> mod.select_out_keys(["d"])
>>> mod(TensorDict({"a": torch.zeros(()), "b": torch.ones(())}, []))
TensorDict(
    fields={
        a: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        b: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        d: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False)},
    batch_size=torch.Size([]),
    device=None,
    is_shared=False)

This works with dispatch too:
>>> mod(torch.zeros(()), torch.zeros(()))
tensor(2.)

Can also be reset:
>>> mod.reset_out_keys()
>>> mod(TensorDict({"a": torch.zeros(()), "b": torch.ones(())}, []))
TensorDict(
    fields={
        a: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        b: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        c: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False),
        d: Tensor(shape=torch.Size([]), device=cpu, dtype=torch.float32, is_shared=False)},
    batch_size=torch.Size([]),
    device=None,
    is_shared=False)
>>> mod(torch.zeros(()), torch.ones(()))
(tensor(2.), tensor(3.))

TODO:

[ ] docstrings
[ ] tests

TDModule
Custom TDModuleBase
Tricky signatures
TDSequential
Probabilistic modules
remove hook

cc @apbard

One reason we were interested in a change like this was so that we could get control over the out_keys of a TensorDictSequential which otherwise attempts to infer out_keys from the sequence. It would be nice if we could add an argument to the constructor in that case so that we can write something like
module = TensorDictSequential(module1, module2, module3, out_keys=["the_key_i_want"])

instead of
module = TensorDictSequential(module1, module2, module3)
module.select_out_keys(["the_key_i_want"])

One reason we were interested in a change like this was so that we could get control over the out_keys of a TensorDictSequential which otherwise attempts to infer out_keys from the sequence. It would be nice if we could add an argument to the constructor in that case so that we can write something like
module = TensorDictSequential(module1, module2, module3, out_keys=["the_key_i_want"])

instead of
module = TensorDictSequential(module1, module2, module3)
module.select_out_keys(["the_key_i_want"])

While I understand the need for this and how that could be used, I'm reluctant to this.
I will try to summarize here why:
Extra kwarg argument always look like a good idea. Who prefers to call a method to condition the state of the object rather than building it straight away like she wants to?
However, there are a number of arguments against this in this case:

TensorDictSequential is neat, clear, has no extra kwarg and that makes it compelling to use.  We would add one more level of complexity to this.
"No big deal, it's just one". I hear you. But it's one too much. The first reason is inheritance: we have quite some subclasses of TensorDictSequential already in tensordict and tochrl. I bet there will be more to come in this library and others. We will ask developers to do one of two things: either ignore the kwarg and break reusability / modularity (ie you won't be able to swap classes easily) or adopt it but then all the __init__ signature will need to be adapted backward (existing subclasses) and forward (future subclasses). This is an extra burden on all ends:

ourselves: we'll need to review each PR with that feature in mind, asking users to add an extra kwarg. If we forget, no class substitution allowed and/or bugs.
our users for the same reason
Keep in mind also that we're doing this in a context where we already have the solution (proposed by this PR) at hand, the constructor just calls that from what I understood. So it's an extra burden with limited benefit IMO.

This brings me to the Don't Repeat Yourself principle: we'd be providing two alternative ways of doing the same thing. That isn't great in general: confusing for the users (which one is the best?) and hard to maintain.

Here are some scenarios where I think we'd be annoyed by this:

One day, we change out_keys in selected_out_keys for commodity. We put a deprecation warning in __init__ then remove it. We're asking all developers that uses TensorDictSequential to modify their __init__ method. On the other hand, changing it in set_out_keys only affects us (and maybe users?) although right now you just pass keys as select_out_keys(key1, key2) so this scenario does not apply but you got the idea anyway.
We change something in the docstrings of the behaviour of this key selection (by definition, it could happen but as of now i can't tell you what it is oc). We'll need to chase every subclass and change its docstrings. Again, none of this would be necessary with the method and the method only.

TLDR
The score of TensorDictSequence is to be used as is but also to be subclassed, and as such it is a burden to have extra kwargs in the constructor.
Without considering inheritance, we'd be writing 2 entry points for one functionality, duplicating docstrings etc.
I'm happy to explain further if things are not clear but to be honest I don't think I'm ready to add it to the constructor just yet.


Getting previous (1 or more) frames?

Does this shader filter come with the ability to get the previous (original or post-processed) frame (or previous N frames) for things like time smoothing and noise reduction? Or, does it get run in a way that makes it possible to buffer a frame at each pass so that it stays available for the next pass? (if so, what's the right way to do that buffering?)

Not currently supported... you'd need to capture each frame in the backend and store it in memory, and then decide how each old frame would be exposed to the shader on subsequent frames. I think it's probably a bit beyond the scope of this plugin to do this; the behavior is specific enough to your use cases that you'd probably do better writing a dedicated effect plugin to handle the memory management and configuration.


GEODE-2014: Upgrade Swagger libraries

Added a test to see if Swagger is up and the splash page has the right Geode headers.
Upgraded to the Swagger2 specification
Removed the accidental checkin of the sleep.


why ads not showing?? here is the html code i used

why ads not showing?? here is the html code i used

You should use xml vast, now you tried to use js script

is there a way where i can use vast link

@biguz is indeed right - vastTag expects valid VAST XML URL. You have provided some kind of JavaScript. This would never work.


After core update version 5.4 Energyzero get no info

Retrying setup: Error communicating with EnergyZero API.
a reboot does not help
also not after a reboot from Has

Since you are using the integration, this issue belongs more in the Home Assistant core repository, but the problem will probably solve itself and the API is just temporarily down.


Update output mentioned in 'Generating a new app' section

https://github.com/probot/create-probot-app/issues/11

Looks, good, thanks!


org.bukkit.event.world.PortalCreateEvent doesn't get called when portal gets generated.

PortalCreateEvent doesn't get fired when a portal gets generated from teleporting from (custom) world worldTest -> worldTest_nether.

Closing issue because it's an old post. If you are still running a Minecraft server and this persists, try updating all the Multiverse plugins and try again, otherwise please don't hesitate to ask for support on our Discord (quickest support) or submit a new issue.


fix: fixed the image upload issue

made it work.
had to change the parameter name file to image_file..... probably we need to report that.
def create_catalog_image(self,
request=None,
image_file=None)
https://github.com/square/square-python-sdk/blob/master/doc/api/catalog.md

very good.  Did you look at the python source to see this?  If so good job. FWIW, I made two changes. I modified pip install requirements.txt to use the git repo and recreated the venv in vscode.  The error persisted.  I modified the parameter as you have found.  Good job.  I did this before I did the merge. I'll close without merging however, its essentially your merge  Thank you.
It gets an error on a key which we can followupo on tomorrow.

you got error
[{'category': 'INVALID_REQUEST_ERROR', 'code': 'IDEMPOTENCY_KEY_REUSED', 'detail': 'The idempotency key can only be retried with the same request data.', 'field': 'idempotency_key'}]
because idempotency_key must be unique for every CreateCatalogImage request, and you've probably made one request with that key when used api explorer. I had same issue first.

Wow you are awesome.  I'm on phone. I'll try to verify the diff.


Install Git for Composer --prefer-source option.

I'm not sure whether this is intended as a dev/CI/CD or production container, but Git would be very useful (essential) in case Composer cannot download a release and has to check out a repository's source.
Git would be useful in dev/ci/cd environments, but not production. I don't think this intended for production regardless, because you don't need Composer on a prod server.. So this addition should be welcome - correct me if I'm wrong.

There are static binaries from Nexcess for install, in the case you don't want to use composer. Git is not required to install from these binaries and they should work quote well for install.

Thanks for your time and comment @markoshust. Unfortunately I'm not quite following your message. I'm using Composer to install Magento, including some third party modules. Sometimes I use dev-master#hash to reference the version. Composer correctly fails with a message like "Failed to clone, Git was not found..."
What's your reasoning for not including Git in this container?

Ah ok. Thank you for the explanation, that actually makes complete sense. I'm reopening this ticket and will be adding git in.

Merged this in https://github.com/mageinferno/docker-magento2-php/pull/40
Will include it in next release. I'll be reviewing this entire Docker image to ensure it works with the last few updates and major version of Magento.


Make better error when Electric can't connect to the database

Right now if you type the wrong database name in your postgres string, you'll get the following error:
** (Postgrex.Error) ERROR 55000 (object_not_in_prerequisite_state) replication slot "electric_slot_default" was not created in this database
Instead we should just say something more helpful like that we could connect but the database name isn't correct. I'm assuming we are connecting but then the replication slot creation fails — so we could put in a check that the database exists first.

I just tried in main (d43c375) and got:
09:29:26.784 [warning] Database connection in lock_connection mode failed: database "wibble" does not exist (PG code: 3D000, PG routine: InitPostgres)

Which is already pretty helpful.

I think that's fine. People might not know what lock_connection is but message is fine.


Custom Asset About sections

Overview
Enable contributors to easily update about sections on the asset page.
For assets that can only be acquired by depositing asset(s) into a DeFi strategy not yet supported natively in ShapeShift, we can make bounties for community members to research and write copy for each about section that provides some background on the asset along with instructions to the user on how to acquire this asset.
Example about section:
https://app.shapeshift.com/assets/ethereum/0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9

Example of an asset with no about section:
https://app.shapeshift.com/assets/ethereum/0x6c3f90f043a72fa612cbac8115ee7e52bde6e490
Reference
This will need to be implemented under the asset service, as a hardcoded overrides file.
Please implement a descriptions.json file, which is a key/value map between the asset id (caip19) with a string containing the description, e.g.
{
  "eip155:1/erc20:0x6c3f90f043a72fa612cbac8115ee7e52bde6e490": "3CRV is a Curve Finance pool token containing a mix of DAI, USDC, and USDT stablecoins."
}

The asset service will need to be modified here https://github.com/shapeshift/lib/blob/main/packages/asset-service/src/service/AssetService.ts#L123
The logic should be

check the descriptions.json file for the asset id and return the description if present
check supported upstream data source(s) (CoinGecko)
finally give and return an error

Acceptance criteria

Contributors can make a pull request to the descriptions.json to add custom about copy for each asset.
If an asset has custom about copy, this overrides any about copy that comes from external APIs (ie. CoinGecko)

Would love to take this one as a first contrib!


CASMMON-337 Smartmon role should not run during image customization

Summary and Scope
SuSmartmon role should not run during image customization
Is this change backwards incompatible, backwards compatible, or a backwards compatible bugfix?
Issues and Related PRs
List and characterize relationship to Jira/Github issues and other pull requests. Be sure to list dependencies.
Resolves -
https://jira-pro.it.hpe.com:8443/browse/CASMMON-337
Tested on mug
step 1: create json
 cat ram.json

{
  "layers": [
    {
      "name": "configurations-layer-example-1",
      "cloneUrl": "https://api-gw-service-nmn.local/vcs/cray/csm-config-management.git",
      "playbook": "ncn_nodes.yml",
      "branch": "ram"
    }

  ]
}

step 2 create session
cray cfs sessions create --name "ram1" --configuration-name "configurations-example" --ansible-limit "x3000c0s17b0n0"

name = "ram1"

[ansible]
config = "cfs-default-ansible-cfg"
limit = "x3000c0s17b0n0"
verbosity = 0

[configuration]
limit = ""
name = "configurations-example"

[status]
artifacts = []

[tags]

[target]
definition = "dynamic"
groups = []
imageMap = []

[status.session]
startTime = "2023-08-24T10:51:41"
status = "pending"
succeeded = "none"

cray cfs  sessions describe ram1

name = "ram1"

[ansible]
config = "cfs-default-ansible-cfg"
limit = "x3000c0s17b0n0"
verbosity = 0

[configuration]
limit = ""
name = "configurations-example"

[status]
artifacts = []

[tags]

[target]
definition = "dynamic"
groups = []
imageMap = []

[status.session]
job = "cfs-9490c121-0fc2-42c8-a4ac-6a055822a1a3"
startTime = "2023-08-24T10:51:41"
status = "pending"
succeeded = "none"

kubectl logs -n services jobs/cfs-9490c121-0fc2-42c8-a4ac-6a055822a1a3 ansible

Inventory generation completed
SSH keys migrated to /root/.ssh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
HTTP/1.1 200 OK
content-type: text/html; charset=UTF-8
cache-control: no-cache, max-age=0
x-content-type-options: nosniff
date: Thu, 24 Aug 2023 10:51:53 GMT
server: envoy
transfer-encoding: chunked

Sidecar available
Running ncn_nodes.yml from repo https://api-gw-service-nmn.local/vcs/cray/csm-config-management.git

PLAY [Management_Master,Management_Worker,Management_Storage] ******************

TASK [trust-csm-ssh-keys : Inject CSM public Key into SSH authorized_keys file] ***
changed: [x3000c0s17b0n0]

TASK [passwordless-ssh : Write private keyfile to disk with appropriate permissions] ***
changed: [x3000c0s17b0n0]

TASK [passwordless-ssh : Create the CSM public key file on target hosts] *******
changed: [x3000c0s17b0n0]

PLAY [Management_Master,Management_Worker] *************************************
skipping: no hosts matched

PLAY [Management_Storage] ******************************************************

TASK [csm.packages : Allow unsigned repo metadata] *****************************
changed: [x3000c0s17b0n0] => (item={'name': 'csm-sle-15sp2', 'description': 'CSM SLE 15 SP2 Packages (added by Ansible)', 'repo': 'https://packages.local/repository/csm-sle-15sp2'})
changed: [x3000c0s17b0n0] => (item={'name': 'csm-sle-15sp3', 'description': 'CSM SLE 15 SP3 Packages (added by Ansible)', 'repo': 'https://packages.local/repository/csm-sle-15sp3'})
changed: [x3000c0s17b0n0] => (item={'name': 'csm-sle-15sp4', 'description': 'CSM SLE 15 SP4 Packages (added by Ansible)', 'repo': 'https://packages.local/repository/csm-sle-15sp4'})
changed: [x3000c0s17b0n0] => (item={'name': 'csm-noos', 'description': 'CSM No-OS Packages (added by Ansible)', 'repo': 'https://packages.local/repository/csm-noos'})
changed: [x3000c0s17b0n0] => (item={'name': 'csm-embedded', 'description': 'CSM Embedded NCN Packages (added by Ansible)', 'repo': 'https://packages.local/repository/csm-embedded'})

TASK [csm.storage.smartmon : Apply ceph orch] **********************************
changed: [x3000c0s17b0n0] => (item=apply -i /etc/cray/ceph/node-exporter.yml)
changed: [x3000c0s17b0n0] => (item=reconfig node-exporter)
changed: [x3000c0s17b0n0] => (item=redeploy node-exporter)

PLAY RECAP *********************************************************************
x3000c0s17b0n0             : ok=23   changed=5    unreachable=0    failed=0    skipped=5    rescued=0    ignored=0

All playbooks completed successfully

I'm going to merge this to a dev branch in the csm-config repo so I can do some commit tidying before merging to develop


Add SassDoc comments to existing components

Thanks to @danmurf and @dantesolis, we now have a working SassDoc generation and many components. All we need now is to link those by adding comments to newly created components !
Help can be found here => http://sassdoc.com/annotations/

Would be happy to help out with this! Haven't looked too deep in the project yet, but any other particular information to look out for? Any section you would like to start with?

Well, I guess you can start with the typography components, which were added by @dantesolis. Grid and Auto-grid systems are not quite ready yet and will need some extensive documentation.
I think it might be good to provide each component with at least a name, a description, an example, a group and an author.
Thanks for your help, and as always, don't hesitate if you have any question.

Perfect! I'll let you know if I have any.

Just noticed the gulp watch task doesn't include the sassdoc task. Interested in including this? Or would you prefer to have it as a separate compilation?

Well I didn't want to add this to the watcher because I figured it might slow down the CSS generation and browser reload. But you can test it and see if it has such a big impact on the delay.
Keep me updated on that.

Just posted two PRs, one for the gulpfile changes (created separate run tasks just for doc updates), and another for a couple of the component files!

Hey guys, do we need more SassDoc  created? Anything I would be working on?


[WIP] Allow to fetch pages via dynamic import

This is an optimization to our Link component which fetches pages via dynamic import. (By statically analyzing Link elements)
With this case, we can support caching pages across multiple builds.
Here's how to use it:
<Link href='/about?team=1' page={import('./about.js')}>
  About
</Link>

Have a look at the new page prop.
Issues(questions) we need to address

[x] Syntax
[x] Write tests
[ ] Code Refactor (Specially on the router)
[ ] Docs

I'm going to close this as it was an experiment to solve immutable build artifacts for pages. We might want to add this API in the future, but currently we're focusing on other things :+1:


Indentscope: Add option to ignore small scope

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md

Module(s)
mini.indentscope
Description
Thanks for your plugin!
I often find it is disturb to draw animation in small if-else which only contain one or two lines during cursor movement, and I want to show the indent which is one lever "bigger" than small scopes, by that case, goto_top is more useful.

Thanks for the issue!
First instinct is that this is a bit too much configuration for what I perceive as not a huge issue. But as this might fit together with possible solution of #568 (via introducing upper bound of when to draw or stop drawing indentscope line), I'll think about it.

I want to second this! A very small scope of 1-3 lines is often not all that interesting to visualize. I was hoping to find an option where I can set the minimum number of lines that should cause the indent to be shown in a nested scope.
Also, this is a really sweet plugin! Thanks a lot for all the work so far!

As I don't think having a solution to #568 via upper bound is a good approach, I am afraid I am going to close this issue. This indeed feels like too much configuration for something that I don't feel like a crucial and/or universally useful feature. Thanks for the suggestion, though!


CHQ-85 Adding behavioral testing

Story
https://maddonkeysoftware.myjetbrains.com/youtrack/issue/CHQ-85
Summary

Added ./behave-ci-cd.sh to run all things needed for behavioral testing
Fixed merge bug in EveDataJob
Added helper to Job to dump exceptions to the screen in a "prettier" format to make finding exceptions in console output easier
Updated Monitor of the runner project to retry connecting to RabbitMQ if it was unreachable at first
Added behavioral test items

Tests are written into feature file
Feature files are then converted into runnable code by developers
Using son-server to handle mocking external json API dependencies.

Testing

Run ./behave-ci-cd.sh from the bash prompt. Tests take about 90 seconds and should have an exit code of zero.

👍 after travis works.


Terminal doesn't let me type anything

The terminal doesn't initialize and it doesn't let me type anything. It won't print any errors or messages, just the blinking cursor.

I am having the same problem on OSX. I would report errors but no messages appear.

Sorry about this, guys. I believe it's the same issue our upstream is facing:
https://github.com/platformio/platformio-atom-ide-terminal/issues/493
https://github.com/platformio/platformio-atom-ide-terminal/issues/490
https://github.com/platformio/platformio-atom-ide-terminal/issues/477
They have a fix out, but it doesn't seem to be working for all users. I'll look into it and post back ASAP!
Cheers!
Fred

Thank you for looking into this! If there is any additional information I can provide, let me know.

@norman123123 @mdtdev I've been puzzling over why I can't replicate this myself on my home system (Linux) but can on my work desktop (Windows 7), and then I realized I build from the latest code here on GitHub for my home desktop. So...
Can you please run the following for me and see if it helps:
apm uninstall Termination

Then check ~/.atom/packages/ to make sure that the Termination folder really is gone.
Finally,
apm install Fred-Barclay/Termination

will install from latest here on GitHub.
If that works I'll push out a fix soon.
Thanks!
Fred

I can confirm that the above version Fred-Barclay/Termination works on my Windows 10 system. I will attempt to replicate this on OS X later today. I am not able to get to my Mac just now.

Sorry for the delay! I can confirm that the OS X version works for me, too. Thanks for the help!
When you push the fix, I assume that I have to APM uninstall the branch version then reinstall from the main the usual way?
Thanks for your work on this project!

@mdtdev Thanks! I've pushed the new version. You will have to apm uninstall Termination first, and then reinstall from main as usual.
Cheers and thanks for the help!
Fred


Remove Announcement View Email activity

Hello!
Here is the pr for remove announcement view activity since we want to use another strategy.

@josikie Kasih!

Iya, sama sama @kcw-grunt


Promise seems to be missing

hey!
I was trying this out on a personal repo of mine (on an old version of node) and noticed that fs-promise and to some extent x-changelog expects Promise to be available. Perhaps this package should declare, promise or bluebird as a dependency so everything works without me needing to add it as a devDep?

Well i looked into it more, and the issue is not here but in the changelog, sorry about that, I sent a fix over here https://github.com/mtscout6/mt-changelog/pull/9

Hey. It's nice to hear that you are trying to use it :cherries:

its great, I quite enjoy it, switching all my personal stuff over to using it :)


bad mobile render on ff and chromium

https://anysoftkeyboard.github.io/about/

Thanks for opening an issue for this, it will be fixed today.

Fixed on commit 01f8aa327f6facd1fedbe34f78996e5ba32f6de1.

It's better now, but the license still has a horizontal scroll.


move explicit key checks to :bind method

common logic for registering and responding to key combinations should go in a :bind method located in some common mixin, such as Widget. this will make way later for rebindable key combos

some explicit key checks are necessary. so we still need key pressed and key released, but they ought to be a last resort when key combos are not suitable

once we write :bind, remove the ctrl parameter from the key callbacks. it can be queried separately in the event that it's necessary

effectively resolved by 33c38c36166db1bc5dcff80e723207a965d0bd9b

the rest has been taken care of by a1219632bc11c5c284e358a6ae083d432df0c884


The elasticsearch container was to grow memory size,But that not to take effect

set paramers：
environment:
ES_JAVA_OPTS: "-Xmx4g -Xms4g"
enter elasticsearch container：
ps -ef result：
elastic+     1     0 23 08:02 ?        00:22:30 /usr/lib/jvm/jre-1.8.0-openjdk/bin/java -Xms2g -Xmx2g

The -Xms2g -Xmx2g flags are always set, they ensure the JVM starts with sane defaults.
The value of the ES_JAVA_OPTS environment variable is appended at the end of the startup command. Try docker-compose exec elasticsearch ps -efww instead to see the full command.

You can also poll the Elasticsearch API to get a confirmation that your Heap size is correct. For example with the default of -Xmx256m -Xms256m:
$ curl 'localhost:9200/_nodes/stats/jvm?pretty'

{
  "_nodes" : {
    "total" : 1,
    "successful" : 1,
    "failed" : 0
  },
  "cluster_name" : "docker-cluster",
  "nodes" : {
    "VskaaBsLTLK4iSbgqYE3WQ" : {
      ...
      "jvm" : {
        "timestamp" :<PHONE_NUMBER>686,
        "uptime_in_millis" : 77122,
        "mem" : {
          ...
          "heap_max_in_bytes" : 259522560,    <--------  ~259 MB
          ...
      }
    }

thanks！


feat: add auto increment transformer

Draft Conditions
This PR is a draft because there are a few things I am aware of and have to modify/finish before it is worthy of formal review:

[x] API Name Review: I know that the PR says @generated and the implementation is @sequence. After reaching a consensus I will modify the names as necessary.

[ ] Update Names: Settled on @default

[ ] E2E Changes: The E2E tests as they are setup are mostly an exercise and I ran them by disabling validations on the transformer. Mainly I need to rewrite using a mock Postgres datasource.
[ ] Docs: I wrote documentation in this repo in a place or two but will follow up on places that I may be missing/update docs website as necessary.

Description of changes
Implements a transformer for @generated along with appropriate unit and e2e tests.
CDK / CloudFormation Parameters Changed
N/a
Issue #, if available
#815
(https://github.com/aws-amplify/amplify-category-api/issues/815#issuecomment-1253442915)
Description of how you validated changes
Unit and E2E tests. Also tested with sample app.
Checklist

[x] PR description included
[x] yarn test passes
[x] Tests are changed or added
[ ] Relevant documentation is changed or added (and PR referenced)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Closing as I am going to replace this with a formal PR with the approved API.


Any difference between H619 & H713?

Any difference in terms of code between the V1 & V2 Amoled version?
I am not able to see any display when flashing Nerdminer firmware into H713 (Amoled V2)

As far as I know, they are exactly the same. It seems that the PCB layout has been optimized.


Use cloud.scaleway.com instead of cloud.online.net for resolv.conf

I believe this is some leftover from the labs time...like the ntp.conf the resolv.conf should be using cloud.scaleway.com by default instead of cloud.online.net.

Hi @valentinul,
Quite an old issue :) however, it was fixed, so I'm closing this issue


Creating a new mesh resource inside a MeshInstance wipes out materials slots

Godot version:
Godot 3.2.4 dev 279f4fbb5f83c2df6e8499799a2aa0c14f85aa2d
OS/device including version:
Windows 10 64 bits
Issue description:
I created a new mesh resource in a MeshInstance that already had a material slot setup, and the material was removed. I expected the material to stay. I have to re-setup the material again, which is annoying.
The way I understand those slots, they are per-MeshInstance, not directly inside the mesh? (since they appear on the node, and it wont show up if I edit the mesh resource) Either way, in the case cited above, I would not expect them to be wiped.
Steps to reproduce:

Create a MeshInstance
Assign a new CubeMesh
In this material slot, create a new material

Assign a new SphereMesh in place of the previous mesh
Observe the material previously setup is gone

Minimal reproduction project:
None

I can Confirm, went all the way back to 3.1.1 stable (didn't check further down the line)
Seems like it happens because the Material is a Property of the Mesh or Just takes the Mesh Surface count (which could mean that it is for like a moment 0 surfaces instead of 1 thus clearing the 0th surface material before creating a new one), as can be clearly observed when there is no mesh as there is no Material option available in that case...
That Material Option (which overrides the material set by the mesh itself) should be Considered a property of the MeshInstance that by Default has the 0th surface available (which it doesn't by default as empty mesh doesn't show it), and the option to add more of those surfaces to override (which would override the corresponding surfaces if the mesh has said surfaces)


Implement transmission spectra from de Wit and Seager (2013)

Included in this PR:

de Wit & Seager (2013) transmission spectrum model
"tiny opacity archives": these are very simplified, very light-weight approximations to opacity grids. They allow us to include tiny data files in this package that can be built into netCDF opacity archives that behave just like the real ones, but take up very little space and require no downloads beyond the source code. These can be used throughout the docs and tests.
Rayleigh scattering from H2 and He
general docs formatting improvements
new constants.py module for constants that get used repeatedly throughout the package
improved H&K docstring since the original in #7

However, this brought to light an error that I think is in fastchem, where the ratios of at least CO2 and CO are bugged at low pressure.

Offline, @Hoeijmakers and I have shown that this is an artifact of Mac ARM lacking double precision. FastChem will give strange results when values in the matrices fall below the limits of the float precision.
As a follow-up, we will add a warning if you're using the FastChem wrapper on Mac ARM.


Swagger validation passed when it should fail

Verification doesn't work properly, tests that should failed passed. When pass incorrect definition for getting failure 400 response we've got passed instead (so this step (response body should be valid according to swagger definition (.*) in file (.*)) works not as expected).
Feature and Spec.zip
Attached swagger spec in *.json format and test in *.feature file.

Hi @andrii-denysov , please provide example JSON of invalid response body which was mistakenly identified as valid by swagger validator.
Thanks

Hi @illegal, here it is:
{     "code": "card.number.invalid",     "message": "Please enter the correct card number" }

@andrii-denysov
According to the spec, there can be an error response (HTTP status 400) which should contain two optional properties "code" and "message". That means that the JSON example you provided is absolutely valid according to your spec.

@illegal
Yep, but if we swap definitions in feature it'll pass too, but shouldn't.

Hi @andrii-denysov
So you are trying to validate JSON
{
  "code": "card.number.invalid",
  "message": "Please enter the correct card number"
}

with the following spec
    "CardType": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "Visa",
            "Partnership Card",
            "American Express",
            "Solo",
            "Maestro",
            "MasterCard",
            "Delta",
            "Electron",
            "Business Account"
          ]
        },
        "cardNumberLength": {
          "type": "number"
        },
        "securityCodeLength": {
          "type": "number"
        }
      },
      "example": {
        "type": "Visa",
        "cardNumberLength": 19,
        "securityCodeLength": 3
      }
    }

and I believe the thing is that CardType definition does not mark any required properties, which is why validation does not fail.

@andrii-denysov
All apickli is doing is to use the swagger-tools module's validate function, see https://github.com/apickli/apickli/blob/master/source/apickli/apickli.js#L328. If there are any problems with catching and reporting any errors on apickli end, let us know. Otherwise you might get better support from swagger-tools project.


Where do I put the configuration for gitlab shell?

Hello,
Where do I put the ruby code example you've provided so that gitlab shell reads it in when it starts, please?
Aleksey

Are you asking how to set the necessary environment variables?

What environment variables should I set to use gitlab shell?  I need to set
API endpoint.
On Wed, May 13, 2015 at 5:27 PM, Sean Edge<EMAIL_ADDRESS>wrote:

Are you asking how to set the necessary environment variables?
—
Reply to this email directly or view it on GitHub
https://github.com/NARKOZ/gitlab/issues/130#issuecomment-101863952.

--
Need CFEngine training?  Email<EMAIL_ADDRESS>

https://github.com/NARKOZ/gitlab/blob/master/lib/gitlab/configuration.rb#L37-L38

GITLAB_API_ENDPOINT and GITLAB_API_PRIVATE_TOKEN are required.  I created some dotfiles in my $HOME directory that export those variables for a couple different instances of Gitlab we run.  Then I just source the one I need.  Reopen this if you need more assistance.


beta 1 z probe

I'm getting a NaN in place of the Z postion below when z probing.
G53G0Z-163.048
ok
PM:ok
<Run|MPos:-84.446,-62.372,-164.066|Bf:14,512|FS:108,0|Pn:P>
<Run|MPos:-84.446,-62.372,-164.020|Bf:14,512|FS:180,0>
<Run|MPos:-84.446,-62.372,-163.322|Bf:14,512|FS:160,0>
<Run|MPos:-84.446,-62.372,-163.195|Bf:14,512|FS:88,0>
<Idle|MPos:-84.446,-62.372,-163.048|Bf:15,512|FS:0,0>
G10L2P1ZNaN

I am not able to replicate, but I have this comment in the code so I have seen the problem before:
pos.Z += probing.Depth; // Sometimes NaN...?
I could be settings related, can you please post them?

I meant the controller settings. Somehow one of the sender internal position structs is likely not initalized when this happens.
By the way, is this issue consistently repeatable for you?

A new beta release is now available, with luck this will resolve this issue. If not I need enough information to be able to replicate it.

Still have the problem with beta-2.  Below are my settings, this is bart's port.  Beta 2 also does not retract the probe when doing heightmap.  It runs the seek, then the latch, then it just moves in X with the probe down.
verbose output
ok
<Idle|MPos:-84.310,-109.231,-108.789|Bf:15,512|FS:0,0>
Probing...
G91F100
ok
PM:ok
G38.3F100Z-10
<Run|MPos:-84.310,-109.231,-109.343|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-109.697|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-110.011|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-110.344|Bf:14,512|FS:100,0|WCO:-84.310,-112.231,-112.835>
<Run|MPos:-84.310,-109.231,-110.687|Bf:14,512|FS:100,0|Ov:100,100,100>
<Run|MPos:-84.310,-109.231,-111.035|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-111.370|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-111.701|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-112.035|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-112.370|Bf:14,512|FS:100,0>
<Run|MPos:-84.310,-109.231,-112.724|Bf:14,512|FS:100,0>
[PRB:-84.310,-109.231,-112.788:1]
ok
PM:ok
G0Z0.5
ok
PM:ok
G38.3F25Z-10
<Run|MPos:-84.310,-109.231,-112.884|Bf:14,512|FS:144,0|Pn:P>
<Run|MPos:-84.310,-109.231,-112.412|Bf:15,512|FS:0,0>
<Run|MPos:-84.310,-109.231,-112.492|Bf:14,512|FS:25,0>
<Run|MPos:-84.310,-109.231,-112.561|Bf:14,512|FS:25,0>
<Run|MPos:-84.310,-109.231,-112.650|Bf:14,512|FS:25,0>
<Run|MPos:-84.310,-109.231,-112.734|Bf:14,512|FS:25,0>
[PRB:-84.310,-109.231,-112.790:1]
ok
PM:ok
G53G0Z-108.79
ok
PM:ok
<Run|MPos:-84.310,-109.231,-112.794|Bf:14,512|FS:144,0|Pn:P>
<Run|MPos:-84.310,-109.231,-112.267|Bf:14,512|FS:432,0>
<Run|MPos:-84.310,-109.231,-111.910|Bf:14,512|FS:522,0>
<Run|MPos:-84.310,-109.231,-110.587|Bf:14,512|FS:550,0>
<Run|MPos:-84.310,-109.231,-109.920|Bf:14,512|FS:406,0>
<Run|MPos:-84.310,-109.231,-109.111|Bf:14,512|FS:190,0>
<Run|MPos:-84.310,-109.231,-108.815|Bf:15,512|FS:0,0|Ov:100,100,100>
<Idle|MPos:-84.310,-109.231,-108.790|Bf:15,512|FS:0,0>
<Idle|MPos:-84.310,-109.231,-108.790|Bf:15,512|FS:0,0>
G10L2P1ZNaN
Probing completed
error:2
<Idle|MPos:-84.310,-109.231,-108.790|Bf:15,512|FS:0,0>
G91
ok
ok

settings
$0=3
$1=255
$2=0
$3=3
$4=0
$5=1
$6=0
$10=3
$11=0.010
$12=0.002
$13=0
$20=1
$21=1
$22=1
$23=2
$24=200.000
$25=1000.000
$26=200
$27=5.000
$30=1000.000
$31=0.000
$32=0
$33=5000.000
$34=0.000
$35=0.000
$36=100.000
$80=0
$81=0
$82=0
$83=0
$84=0
$90=0.000
$91=0.000
$92=0.000
$93=0.000
$94=0.000
$100=3850.000
$101=3850.000
$102=10495.000
$110=1000.000
$111=1000.000
$112=600.000
$120=50.000
$121=50.000
$122=30.000
$130=240.000
$131=136.000
$132=200.000
$140=0.250
$141=0.250
$142=0.250
$150=50.000
$151=50.000
$152=50.000
$160=16
$161=16
$162=16
$170=16
$171=16
$172=16

Thanks.
I have found the NAN issue, it is due to the sender expecting tool offset values for all axes in the TLO report. grblHAL and some other ports outputs outputs values for all axes, but not vanilla grbl. A minor issue remaining for vanilla grbl is that there is no way of knowing which axis the offset is reported for, so I will assume Z for now. It is a compile time option in vanilla grbl, TOOL_LENGTH_OFFSET_AXIS.
Heightmap probing is working as it should for me, here is the verbose output:
Probing...
G91F100
[GC:G0 G54 G17 G21 G90 G94 G49 G98 G50 M5 M9 T0 F300 S0.]
ok
PM:ok
G38.3F100Z-10
<Run|WPos:0.000,0.000,2.738|Bf:34,1023|FS:100,0|WCO:-58.395,49.993,-14.726|WCS:G54|Ov:100,100,100|A:|Sc:|H:0|T:0|TLR:0>
[GC:G38.3 G54 G17 G21 G91 G94 G49 G98 G50 M5 M9 T0 F100 S0.]
<Run|WPos:0.000,0.000,2.405|Bf:34,1023|FS:100,0>
[GC:G38.3 G54 G17 G21 G91 G94 G49 G98 G50 M5 M9 T0 F100 S0.]
<Run|WPos:0.000,0.000,2.072|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,1.738|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,1.384|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,1.051|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,0.717|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,0.385|Bf:34,1023|FS:100,0>
<Run|WPos:0.000,0.000,0.030|Bf:34,1023|FS:100,0>
[PRB:-58.395,49.993,-14.734:1]
ok
PM:ok
G0Z0.5
ok
PM:ok
G38.3F25Z-10
<Run|WPos:0.000,0.000,-0.151|Bf:34,1023|FS:240,0|Pn:P>
[GC:G38.3 G54 G17 G21 G91 G94 G49 G98 G50 M5 M9 T0 F25 S0.]
<Run|WPos:0.000,0.000,0.316|Bf:34,1023|FS:25,0>
<Run|WPos:0.000,0.000,0.233|Bf:34,1023|FS:25,0>
<Run|WPos:0.000,0.000,0.150|Bf:34,1023|FS:25,0>
<Run|WPos:0.000,0.000,0.061|Bf:34,1023|FS:25,0>
<Run|WPos:0.000,0.000,-0.022|Bf:34,1023|FS:0,0|Pn:P>
[PRB:-58.395,49.993,-14.724:1]
ok
PM:ok
G1F1500Z3
ok
PM:ok
G1F1500Y5
...

G1F1500Z3 above is the retract command, is this incorrect or missing for you?
Retract distance is from Diameter in Probe tip/tool, I guess it should have been Offset from Probing clearances?
Tooltips for Probing clearances seems to be wrong to me - I need to check them again.
I have a fix for the NaN issue, but I would like resolve the heightmap issue before uploading a new build.

The "Diameter" in probe tip/tool threw me off.  I had it set to 0.
Many of the settings in the probing tab are ambiguous, for instance what is the difference between touch plate and fixture?  Why is there a "work piece height" setting for Z probing in the "edge finder" tab?  This is why I attempted to have the 3d renderer draw the tool path for the given settings.   Perhaps I should revisit that if you would support merging it.  Alternatively we could just do static drawings with clear labels that correlate the settings visually based on the current mode.  I'd be happy to work on that if you wanted help with it.
I'd honestly prefer discrete settings for ever mode over ambiguous re-used settings.  This would require having the defaults/custom probe config updatable for each probing mode.

Fix for NaN issue added in latest release.
As for the how probing is implemented a good starting point would be to add a wiki page as a reference/specification and proceed from there? I am not a machinist so I am open for input and I have to admit I find the probing stuff challenging, e.g. the concepts used in the info I have found on the web does not seem to be consistent. It does not help that english is a second language for me...
I have used this document as a basis for how I have implemented probing. The LinuxCNC documentation should, IMO, also be used as a reference for how concepts are defined/used.


Requesting justification for bad code pattern

Hello,
What is the exact reason for this wasteful array that could be replaced by a sprintf?
https://github.com/apache/nuttx/blob/master/libs/libc/string/lib_strsignal.c#L37
Thank you.

I think with sprintf you can't make strsignal reentrant.

Is there really no other way to implement this? It looks particularly inefficient.

Not that I'm aware of. You can see that other cases in switch/case also have a common SIG part of the string. The only difference is that in the array it is a bit longer.
Let me think a bit of what can be an option. Maybe having a reentrant variant can be a config option or we can return just the number string and drop Signal  prefix

@slorquet can we close this issue now?

we can :)


Support for escape sequences in String

I've been looking around to find a way to support escape sequences inside my string.
I've got [String] STRING : "\"" "\\"; in my grammar file. It works very well for single and multi line strings.
Sometimes, when I'm only asking for a specific character like a line break, I don't want to have an actual line break in my code, especially because different editors will have different line breaks.
What I wanted in my input is something like \n.
In the long run, I would like to support all of these:
https://learn.microsoft.com/en-us/cpp/c-language/escape-sequences?view=msvc-170
Any pointer where I have to go to find a solution for this?

@Remo, I don't well understand your issue. What i have guessed is that you want CSLY to automatically replace escaped sequence. So for example replace \n by a (char)10 character, or (char)09 by a tabulation. Is this what want ?
CSLY can not know what is the escaped sequence meaning, it could depend on the defined language. So it's up to the user to replace those sequence with the expected value.

@Remo, you could use  lexer callbacks  to replace to replace all escaped sequences before the parse phase. this could be something like (warning not tested)
namespace escape
{
    [CallBacks(typeof(TestCallbacks))]
    public enum CallbackTokens
    {
        [String] STRING
    }

    public class TestCallbacks
    {

        [TokenCallback((int)CallbackTokens.STRING)]
        public static Token<CallbackTokens> EscapeEscapedSequences(Token<CallbackTokens> token)
        {
            string value = token.Value;
            value = value.Replace("\\", "\\\\");
            value = value.Replace("\n", "\\n");
            value = value.Replace("\r", "\\r");
            value = value.Replace("\t", "\\t");
            // ... address all escaped sequences
            token.SpanValue = new ReadOnlyMemory<char>(value.ToCharArray());
            return token;
        }
    }
}

Thanks for your reply!
Let's say I've got the following input:
Property: "Hello \"There\"\nSecond line"

My lexer:
[Sugar] COLON : ":";
[KeyWord] PROPERTY: "Property";
[String] STRING : "\"" "\\";

And then a simple rule like this;
PROPERTY COLON STRING

What I would like to see in C# is a string like this:
Hello "There"
Second line

What I currently get is: Hello "There"nSecond line
I'm not expecting csly to do the magic for me, but the \n is gone. So basically I would like csly to replace \" with ", but leave all other backslashes in place.

oh ok I see. when lexing string escape char (here \) is purely removed !
This works well with the string delimiter " but remove usefull information for other escaped sequences like \n.
I will fix this right now and push a new nuget version. stay tuned

@Remo i've publish CSLY nuget 3.3.0, you can test it. In fact i 've found some other issues fixing yours, so great thank to report.
I've done a simple test with cslyviz - escape So you can have a look. As graphviz automatically substitute \n with a line feed it produces a new line (see below).

if you look at the JSON (on the source tab) you will see the \n

let me know if it works as expected.

You can also have a look at my commit https://github.com/b3b00/csly/commit/fe72161c234b6cf6cbe11f5c08c94ac41341b8ed, it embeds a test case that more or less matches what you're trying to do using a lexerCallback


Wrong exception body when exception body is an object

The generated exception body is duplicated with my custom exception
This is my custom exception:
export class CodeInvalidException extends UnauthorizedException {
  constructor(error?: string) {
    super(
      {
        code: ExcepionsEnum.CODE_INVALID,
        message: 'Your provided code is invalid, please try again',
      },
      error,
    );
  }
}

And this is the Swagger output:
{
  "statusCode": 401,
  "message": "Your provided code is invalid, please try again",
  "error": "Your provided code is invalid, please try again"
}```

And this is the expected output:
```json
{
  "statusCode": 401,
  "message": "Your provided code is invalid, please try again",
  "error": "string"
}

Now I found the templating feature and it's perfect! But I have struggling to add code placeholder.
This is m template:
export const ApiCustomException = buildTemplatedApiExceptionDecorator(
  {
    code: '$code',
    message: '$description',
  },
  {
    placeholders: buildPlaceholder(
      () => InternalServerException,
      exception => ???,
    ),
  },
);

And I don't know if it's possible to get my custom error code from exception object. This is one of my exception objects as mentioned in the first post:
export class CodeInvalidException extends UnauthorizedException {
  constructor(error?: string) {
    super(
      {
        code: ExcepionsEnum.CODE_INVALID,
        message: 'Your provided code is invalid, please try again',
      },
      error,
    );
  }
}

Hi :)
If you pass the error as second argument, you're overriding the description of the UnauthorizedException which is Unauthorized. Is this intended by you?
I'd assume, that the error needs to be in the first object:
export class CodeInvalidException extends UnauthorizedException {
  constructor(error?: string) {
    super({
      code: '1000',
      message: 'Your provided code is invalid, please try again',
      error,
    });
  }
}

The default behavior then by the @ApiException decorator is, that if error is undefined, it takes the message by the exception. To override the error with a string value, you could then do the following:
@ApiException(() => new CodeInvalidException('string'))

This overwrites the error property with the given string.

I'm closing this issue for now. Feel free to open this issue again if you have any further questions :)


Does cri-containerd support config log rotation

Docker can config the log rotation.Does cri-contaienrd also can config log rotation and if support how to config?

Kubelet will rotate the log now. https://github.com/kubernetes/kubernetes/pull/59898

Ok,thanks:)


Typo: error should be FATAL_ERROR

See line https://github.com/KitwareMedical/TubeTK/blob/master/CMakeLists.txt#L261
Reporting this minor bug before I forget. Kudos to @fbudin69500 for catching it :)

Corrected in #728


FerdiWeblet

I had been considering some of Ferdi's use case and some of its advantages. With something like Google workspace benefitting Google, and Outlook's office thing benefitting Microsoft, Ferdi does a great job unifying those workspaces together.
However, what if Ferdi was served as a web app instead of a desktop application. By using something along the lines of Kubernetes and continuing the lines of javascript, we could enhance so many features of Ferdi.
In addition, something like Mozilla could potentially use a single source of truth like Ferdi to bring a unity to web messaging and workspaces.
This was an idea that just came to mind as I was working on an issue. If this is something that would be interesting, I can write up a much better and more formal document for the community to read. This would be a whole project in itself to transition to something of this scale. However, I think it would be really fun to see Ferdi grow and set plans for the long term in some potentially interesting ways.
Very innovative ideas have been going on all around the board. I firmly believe in Ferdi, and it's purpose. With that, I am open to any feedback as well! I am glad to have met this community.

In addition, Go is a language that optimizes both concurrent and parallel programming paradigms that are rather intuitive to learn with a few docs allowing you to extend a lot of Kubernetes features.
This parallel programming paradigm can optimize resource allocation (semaphore, I believe ... fact check me on that please) to load between messengers and workspaces faster than normal. I've noticed sometimes for me it may take a little longer than normal to reload pages like gmail.


Add visitor - a promise equivalent of Match

@nicolasnoble

Looks like this is ICE-ing some older compilers - will likely have to massage it a little - will ping here when it's ready.


deep or shallow copy?

https://github.com/pyiron/pyiron_workflow/blob/913a03f9a4c8933e944366d1efc5d1dad1b8ae83/pyiron_workflow/mixin/has_interface_mixins.py#L28-L31
The comment is contradictory in itself.
What the code actually does: It makes a deep copy for the root hierarchy level and a shallow copy for everything beneath. Is this intentional?

I was wrong with the actual definition of shallow copy. Works as intended.


Fix #109 and #50

I just updated to the latest version and hit #109 again - any chance this fix can be integrated?

If we're going to go this route it might be best to just make sure the entry ends in .proto rather than adding the overhead of statSync for each file (or in addition).

The overhead on my system is ~3ms total (average of 10 runs). Is it guaranteed that the files will always have a .proto extension? (I'll need to start a new pull since I don't have access to this branch.)

Yes, the protobuf files will always have a .proto extension.

See #138


Exchanging token issue : java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

Hello,
Some user encounter this kind of exception regarding a wrong ssl certificate when trying to log in (exchanging the token) :
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Is it an issue you are aware of ?

I'm not really sure what that error means. Any more details? Our SSL certificates should be all valid.


Crash dev after 20min.

File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokecli.py", line 126, in
main()
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokecli.py", line 119, in main
bot.take_step()
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokemongo_bot_init_.py", line 33, in take_step
self.stepper.take_step()
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokemongo_bot\stepper.py", line 56, in take_step
self._work_at_position(position[0], position[1], position[2], True)
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokemongo_bot\stepper.py", line 104, in work_at_position
self.bot.work_on_cell(cell, position, pokemon_only)
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokemongo_bot_init.py", line 97, in work_on_cell
hack_chain = worker.work()
File "C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev\pokemongo_bot\cell_workers\seen_fort_worker.py", line 49, in work
fort_name = fort_details['name'].encode('utf8', 'replace')
KeyError: 'name'
C:\Users\Manuel\Desktop\PokemonGo-Bot-dev\PokemonGo-Bot-dev>

need more exception protection here.

https://github.com/PokemonGoF/PokemonGo-Bot/pull/409

please confirm if issue persists

no reply


Limit to debate levels/children

Once you get down past 6 or 7, the width of the form/comment gets extremely thin and unusable depending on screen size.
I'd suggest adding a limit, or stopping the indentation at a certain level.

Good suggestion. Is there any clear reference for example on how Reddit or Hacker News impose limits to threading?

I don't believe they have restrictions. I just looked at both, and what's different is that they are both full-screen and the indentation is smaller, or becomes smaller on mobile screen widths.

An alternative would be to allow the debating section to go full-page, and visually hide replies in the condensed mode.

For the time being the agora component has been scaled out to focus on core features. Hence closing
Go checkout #projectgruff in our Slack. It's a project being lead by a member of the community to enable productive debate on a web interface.


Licence + Improve dockerfile

Hello, lovely single page application already in a container, thanks for sharing.

To make it a bit more usable, could you add a LICENCE.md ? you can find a ton of them on github, I usually use apache, but MIT is nice too. I cannot help more since it have to be your choose.
Can I suggest to improve the dockerfile by adding a nginx conf in order to allow refreshing the page and avoid getting 404 (spa application). Like so:

Dockerfile in the last stage:
COPY scripts/docker/docker_nginx.conf /etc/nginx/conf.d/default.conf

scripts/docker/docker_nginx.conf content:
server {
	listen 80 default_server;

	gzip on;
	gzip_min_length 1000;
	gzip_types text/plain text/xml application/javascript text/css;

	root /app;

	# normal routes
	# serve given url and default to index.html if not found
	# e.g. /, /user and /foo/bar will return index.html
	location / {
		add_header Cache-Control "no-store";
		try_files $uri $uri/index.html /index.html;
	}

	# files
	# for all routes matching a dot, check for files and return 404 if not found
	# e.g. /file.js returns a 404 if not found
	location ~ \.(?!html) {
		add_header Cache-Control "public, max-age=3600";
		try_files $uri =404;
	}
}

I'll make feedback while using it if you do add a licence ;)

Hey there! Thanks for the suggestions! An MIT license has been added now. Additionally nginx config has been added to fix the refresh issue as well :smile:

Thanks a lot @NeoScript, I don't have complex need with this project but I'll keep you posted!


Add ciscobgp snmp collector

Add SNMP collector for the gathering of BGP health data from Cisco devices (CISCO-BGP4-MIB).

Overall looks pretty solid. Just a few minor things to look at, to make sure this won't panic on us.


Availability problem on<EMAIL_ADDRESS>

I am using libman to fetch a package from unpkg but the download always fails with an error after some files. The package is<EMAIL_ADDRESS>Basically, the tool downloads ?meta, then each file one by one.
I can see that a lot of files are missing in cloudflare cache (supposing because of the low usage), but what is strang is that only .js and .css files are missing from cache, and other extensions are successfully retrieved from cache (.yaml, .json, .txt, .md). Perhaps cloudflare is not caching .js files ? Or it is just related to the low usage of this lib ?
Each download is relatively slow (some seconds even for a 2k .js file), and after ~90 requests the server returns a 524 status code (origin time-out).
Thanks,

It seems that the problem is resolved now: I receive cache hit for all resources. But there are still some 504 error code when reaching ?meta endpoint. It seems the site is suffering from high load ?

I provisioned a larger server earlier today in an attempt to be able to handle the load better, and so far it seems to be working. Error rates are down, anyway, so it seems we were just underprovisioned. I'm going to close for now, but please feel free to comment if you're still experiencing issues.

I am still receiving errors this morning when adressing http://unpkg.com/foundation-sites@6.2.4/?meta.
I receive 503 errors (HTTP/1.1 503 Service Unavailable).
I have retried multiple times without success. Did you detect an increase of usage recently ? Perhaps the release of libman which can use unpkg as a provider is related ?


Service Brokers

For each cloud, we should also install their unique service brokers.  This would expose AWS (in the Amazon cloud) specific services inside of the Service Catalog and be visible to developers of our cluster.  Plus, it becomes more visually obvious which cluster becomes to a specific cloud.

duplicated with #2


fix(moduleExec): pass correct object to validation

This PR fixes https://github.com/gadicc/node-yahoo-finance2/issues/24
Changes

moduleExec: Change so that we always pass an object to validateAndCoerceTypes
quote: no need to default to empty object for overrides since that is done later

Thanks for another PR!
Umm, on looking at the issue in #27 I think I'd prefer to go the simpler route of just defaulting to an empty object, rather than validating the default options on every call.  So instead of the objectToValidate const could we just change the
    object: queryOpts.overrides,

to
    object: queryOpts.overrides ?? {},

I'm going to add a quick test for this to make sure it works just as well.  Thanks again :)

@gadicc Ah, I see your viewpoint.
I thought it made sense to validate  "ALL" query parameters, since theoretically queryOpts.overrides could change and not pass the validation? Or is this being validate elsewhere?
I saw that you solved this in another way here but it's better to account for this in moduleExec I believe. Then we can remove that.
I'll update the PR with your suggested change, but if you have time please respond to my first question.

@gadicc this should be good to go now! And hopefully fixes the broken test that you've added here; https://github.com/gadicc/node-yahoo-finance2/commit/8017659c8392731ab5240b519187419f725071c7
I think it's a really good practice to do when we found a bug btw, to add the broken test and then fix it. Nice one 💯

Awesome, thanks, @pudgereyem! :raised_hands:
And yes adding the broken test first is a great habit!  I love it.  I'll add a note about it on the contributing doc too.

I thought it made sense to validate "ALL" query parameters, since theoretically queryOpts.overrides could change and not pass the validation? Or is this being validate elsewhere?

I think you mean the queryOpts.defaults, right?  Essentially Yahoo validates this for us on the request, so if these's a mistake in here it will get picked up during testing (although I guess I should add some URL validation into fetchDevel at some point).  The defaults are set when we publish the package, they don't change at runtime and can only be overriden.

I saw that you solved this in another way here but it's better to account for this in moduleExec I believe. Then we can remove that.

You're absolutely right about this, thanks for cleaning up my code in quote too! :pray:

I think you mean the queryOpts.defaults, right? Essentially Yahoo validates this for us on the request, so if these's a mistake in here it will get picked up during testing (although I guess I should add some URL validation into fetchDevel at some point). The defaults are set when we publish the package, they don't change at runtime and can only be overriden.

Yes, I mean queryOpts.defaults, sorry for the typo! Yeah, I see what you mean! All good 👍

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


As a developer, I want to have a sliced OpenAPI document with only the endpoints and components used by my solution when generating a client

Is your feature request related to a problem? Please describe the problem.
Kiota produces large OpenAPI documents even when only one endpoint is selected because it doesn’t remove unused components.
Client library/SDK language
None
Describe the solution you'd like
When generating clients, Kiota should be able to trim unused components from the original OpenAPI document to generate a clean sliced OpenAPI document with only the information that is important for my solution.
For clients:
Remove all unused components and keep all used components including schemas, parameters, responses.
Remove all extensions (starts with x-) that don't match with our internal documentation of supported extensions in Kiota.
Additional context
No response

Is this for the kiota folder? We should always keep the original description in case the user wants to change their selection IMHO

@baywet This is still unclear. This issue was created to split out https://github.com/microsoft/kiota/issues/4672 to only work for plugins generation as the questions on functionality in client generation is cleared up.

@maisarissi to provide additional input

I'll jump in on this one. I don't think the goal is to get an OpenAPI document with only the right endpoints. I think the goal is to reuse a similar logic to the one built for plugins instead of having 2 different logic that do very similar things, without being reused. I agree with @baywet, we should absolutely not replace the OpenAPI we cache with a sliced version of it or we'll lose the possibility to expand its capabilities.

where would you place this new sliced description? for plugins it makes sense since it's required by the "engine". For clients we could place it next to the Client class. Thoughts?

In the output folder as an openapi.yaml file would be optimal. That way it live with the code.


Semantics of the internal session cache related APIs when using TLSv1.3 tickets

In a server, I need to abuse sessions for client identity because the application layer protocol doesn't support that. Ultimately, I need to manage sessions externally, and with TLSv1.2 I was able to do that using the sess_new_cb, sess_get_cb and sess_remove_cb callbacks.
Edit: I just realized that I still had SSL_OP_NO_TICKET set. This appears to interact with TLSv1.3 session tickets in surprising ways; it appears to me as if OpenSSL tries to sort of emulate a session cache as if no tickets were being used, but that emulation seems incomplete.
I am observing that with TLSv1.3, the "remove session" callback (SSL_CTX_sess_set_remove_cb) isn't called for every session that was added previously through the "new session" callback. In particular, it's not called at all if the connection is terminated ungracefully (this contradicts the docs here), and additionally, it is only called for the last ticket that was sent to the client (in case multiple tickets are sent).
My understanding is that this is sort of to be expected, but I'd like some confirmation on this. Afaiu, the point of session tickets is that the server doesn't have a cache in the first place since all the information is contained in the ticket, which is stored client-side. Thus, the only SSL_SESSION object the server knows about is the one which happens to be in SSL_get_session, and thus, only this ticket is passed to the "remove session" callback when the connection is terminated [gracefully]. This would imply that I have to manually clean up all sessions belonging to a client from my external cache when that client disconnects.
However if that's correct, I don't understand why in SSL_CTX_set_session_cache_mode the flag SSL_SESS_CACHE_NO_INTERNAL_STORE has any effect (I can sort of see LOOKUP maybe meaning that OpenSSL tries to decrypt the ticket by itself rather than asking the application to do so). Also, if that's correct, then the semantics of the sess_get_cb should be totally different: Rather than looking up the provided data bytes in a cache, it should attempt to decrypt them and construct an SSL_SESSION object from the decrypted data. Since I haven't found any hint in the docs that this is true (let alone how to do that), is there still some sort of internal session cache used by OpenSSL with TLSv1.3 tickets? If so, (1) why, and (2) why isn't the sess_remove_cb called for all of the sessions then?
Additionally, the docs on remove_session_cb don't seem quite correct:

The remove_session_cb() is called whenever the SSL engine removes a session from the internal cache.

With TLSv1.2, it is not only called when a session is removed from the internal cache. It is also called when the internal cache is disabled and the SSL engine would have wanted to remove a session from the internal cache.

I just realized that I still had SSL_OP_NO_TICKET set. This appears to interact with TLSv1.3 session tickets in surprising ways; it appears to me as if OpenSSL tries to sort of emulate a session cache as if no tickets were being used, but that emulation seems incomplete.

Correct. It does exactly that. In TLSv1.3 when SSL_OP_NO_TICKET is set, the "ticket" is actually just a session id. The state is still held on the server.

I am observing that with TLSv1.3, the "remove session" callback (SSL_CTX_sess_set_remove_cb) isn't called for every session that was added previously through the "new session" callback. In particular, it's not called at all if the connection is terminated ungracefully (this contradicts the docs here), and additionally, it is only called for the last ticket that was sent to the client (in case multiple tickets are sent).

This seems like a potential bug

it's not called at all if the connection is terminated ungracefully

Are you sure its never called? I'm wondering whether it eventually gets called when it times out in the session cache after 2 hours (the default timeout).

One of the things I definitely tried is setting the timeout to 10 seconds
to check out what's going on then (it worked in so far that the session
resumption was rejected), but I'm not sure if I tested ungraceful
disconnects with that. Will test again later today. I've also worked on a
list of various test cases under different conditions, including a summary
of "surprising" API behaviors.
On Mon, Sep 20, 2021, 11:29 mattcaswell @.***> wrote:

it's not called at all if the connection is terminated ungracefully
Are you sure its never called? I'm wondering whether it eventually gets
called when it times out in the session cache after 2 hours (the default
timeout).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/openssl/openssl/issues/16623#issuecomment-922765378,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMRS3CAXVCPXANIEMZDWQLUC35FZANCNFSM5EJFKP5Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

TLSv1.3, SSL_OP_NO_TICKET
Without SSL_SESS_CACHE_NO_INTERNAL:
If the connection is terminated ungracefully, then the sess_remove_cb is called for both tickets, as long as the application manually calls SSL_CTX_flush_sessions, which may be called immediately after the disconnect.
If the connection is terminated gracefully, then the sess_remove_cb for the first ticket is called only after the ticket timeout has elapsed, and only if the application calls SSL_CTX_flush_sessions (after the timeout has elapsed).
With SSL_SESS_CACHE_NO_INTERNAL:
If the connection is terminated ungracefully, sess_remove_cb is not called, regardless of timeout and flush.
If the connection is terminated gracefully, sess_remove_cb is called for the last issued ticket only, immediately after disconnect, regardless of timeout, and without manually flushing.
I had omitted SSL_CTX_flush_sessions because previously I hadn't observed any difference. Will have to redo all tests.

the "ticket" is actually just a session id

Could you clarify what that means?
Does that mean that with SSL_OP_NO_TICKET, the ticket contains literally no data at all except for an arbitrary "session ID", which is then passed verbatim as data to the sess_get_cb? That would explain a lot, like why the session ticket dec_cb is never called in this case.
I've tried reading the contents of the ticket (on the server side) using SSL_SESSION_get0_ticket, although its result is empty (SSL_SESSION_has_ticket also always returns false). I don't think I've ever seen these functions do anything else, regardless of SSL_OP_NO_TICKETS and/or SSL_SESS_CACHE_INTERNAL. I suppose they don't work on the server side.

Unfortunately the more I try to test the more questions I ask myself, so it takes quite a lot of time to read docs and RFCs so I can actually pinpoint things in a meaningful way. Anyway, some intermediate findings:

Without SSL_OP_NO_TICKET, regardless of SSL_SESS_CACHE_NO_INTERNAL:
Using TLSv1.2, none of sess_new_cb, sess_remove_cb, sess_get_cb are called.
Using TLSv1.3, sess_new_cb is called for each new session after session ticket gen_cb. sess_remove_cb is called, but see below. sess_get_cb is not called.
-> It is inconsistent that sess_new_cb and sess_remove_cb are called for TLSv1.3, but not for TLSv1.2, even though both cases supposedly use server-stateless tickets.

Regarding sess_remove_cb:
Here, I had the client use SSL_clear before closing the connection. Apparently, on the server side, this means that the server invalidates the current session ASAP (which is documented for SSL_clear, although I don't know if this is "the canonical way" to do that on the client side - it wasn't very discoverable and the docs read like it's just a clumsy side effect of SSL_clear).
Using TLSv1.2, without session tickets, this causes sess_remove_cb to be called for the current session in the final BIO_read (which will return 0), and with second tickets, no callback is called.
Using TLSv1.3, this isn't the case. The server issues two tickets initially. I still don't actually know why, and what the purpose of the first ticket is, and found no hint in RFC8446 either. Actually using the first ticket on the client side seems pretty difficult anyway - I only managed to get it to work by enabling the SSL_SESS_CACHE_CLIENT and using sess_new_cb on the client-side to cache the first SSL_SESSION, which seems pretty hacky. When the client closes this connection (including SSL_clear), then, on the server side, sess_remove_cb is called, with the SSL_SESSION associated with the second ticket. The first ticket is not removed, and the client can in fact use it to resume a session. The first ticket is removed eventually after when calling SSL_CTX_flush_sessions after it timed out. This is the same regardless of the SSL_OP_NO_TICKET setting.
Next, the same test, but instead of having the client disconnect, the connection is terminated ungracefully.
Using TLSv1.2, the behavior is the same as above (using SSL_clear).
Using TLSv1.3, the behavior is different again. Neither the first nor the second session is removed in the final BIO_read call. However, explicitly calling SSL_CTX_flush_sessions will cause both to be removed immediately (even if they haven't timed out yet). I was not able to get an example working where I try to reconnect with a new client using these tickets before they have been flushed, because I have not found a way to simply construct an SSL_SESSION object from existing ticket data from SSL_SESSION_get0_ticket.
-> This behavior is inconsistent at least. It does make sense that, in a true server-stateless case, the server cannot invalidate tickets based on anything other than the data in the ticket, i.e. the timeout. On the other hand, in case of SSL_clear, the server does seem to remember that the ticket was invalidated because it cannot be used by the client to resume, reglardless of SSL_CACHE_NO_INTERNAL and/or SSL_OP_NO_TICKET, although interestingly, I'm not getting a sess_get_cb where I could have made that decision. Still, with the TLSv1.3 session cache emulation via SSL_OP_NO_TICKET, it could behave exactly like the TLSv1.2 case if that is desirable.

I'm still trying to come up with an exhaustive list of session related behaviors and callback chains in various cases (TLS version, SSL_OP_NO_TICKET, SESS_CACHE_NO_INTERNAL_*, graceful disconnect, ungraceful disconnect, SSL_clear), detailing when which callbacks happen (sess_new_cb, sess_get_cb, sess_remove_cb, session ticket gen_cb, dec_cb) what is being cached, and what can or can't be resumed, since every case seems to exert slightly different behavior. This is relevant for me to implement client identification in a way that works in all cases and isn't buggy or exploitable.

Marking as inactive, will be closed at the end of 3.4 dev barring further input.


docs: enable tab sync

In the quickstarts, we often support multiple languages. At this time, someone using the non-default language must manually click the tab of the preferred language (ex. Kotlin or Python)
Setting :tabs-sync-option: will sync these tabs. After selecting Python on 1 tab, it will also select Python on all other tabs. See https://github.com/asciidoctor/asciidoctor-tabs for more details.
This increases the usability of our docs at a relatively low cost. We do need to align the naming of all our tabs, and create tabs even when Java/Kotlin have exactly the same content.

Yes! This is a serious paper cut.

Already did this on a separate branch. @ge0ffrey. Will finish it up today. 😊