feat: playwright "headless" headers are masked

Description

See the issue description for more information.

Issues

Closes: #401

Testing

New unit tests were implemented.

Checklist

[ ] CI passed

feat: playwright "headless" headers are masked #545

Commit message should be imperative, it should describe what the commit is doing, not how things changed. So mask headless headers, not headless headers are masked.


updated the read me file for missing '/' for document templates config and fixed the openxml code for replacing the databindings correctly for fields and repeatable table rows.

… the code for updating word templates before pushing them into target instance/s.
Purpose
Describe the problem or feature in addition to a link to the issue(s).
the problem was the word templates with dataBinding tags were not deployed. the existing implementation tried to find and replace wpath for the binding in all document inner xml which ends up clearing the whole document and breaking the tag structure in the document.xml file for the template.
Approach
How does this change address the problem?
it now find all dataBinding descendant tags in the documentxml and it sets their prefixMapping property as expected. this allows the entitytypecodes to be set correctly without affecting the structure of document.xml at all. we can have 2 different types of dataBindings. one on added fields and one on repeatable tables which are 2 different tags. Both are now handled.

@ahmet269 the pull request title will be the default commit message for the squash commit. We're using Conventional Commits so it's helpful if you can create the pull request with a name that conforms to the spec and a concise message within GitHub's 72 character limit. Not an issue if not as this can be overridden by whoever does the merge.


glib: Fix build with v2_72 and require 2.72.0 now

Apparently ring requires a newer Rust version now, and we use ring indirectly in one of our examples. What to do?


Select contract templates for accounts

To speed up experimentation, allow users to populate accounts with template contracts (NFT, FT ...etc)

Currently users need to find and copy/paste code from the tutorials / docs.

This could be accomplished with a simple dropdown for selecting which contract to use.

Will be implemented in v2


resolve css conflict with Pandoc rendering (.Rmd files)

After headers (e.g. # title) all following text appear in a light gray. Details about the issue can be found in issue 71.

Hi @petzi53, I think this is not the way to solve this. Mermaid is external dependency and we should not touch it.
Whenever someone will update Mermaid, your commit will be wiped and problem will come back again.
I see options as:

Change order of CSS files loaded.
Maybe Mermaid needs update.
Adjust things within DocDock CSS itself to not conflict.
Other things

Do you have public link where the thing is wrong? Or .rmd file which renders wrong?

Thank you for your detailed explanation, this was very helpful for me as I am still a beginner. You are right, my solution is a kind of provisional hack.
I have prepared an online-example for you to see.


[BUG] send <IP_ADDRESS>:50001 http request failed with httpyac vscode plugin, 50001 is special port for this problem

When I send http request with httpyac, if I use 50001 port to send request will throw error.

httpYac - Rest Client v6.6.3

It seems that the error comes directly from NodeJS and it occurs when parsing the HTTP response. I think at port 50001 there is no HTTP server or it responds with HTTP/2 or newer. I would expect HTTP/1.1 for this request. Can you call this once with curl and give me the response. Alternatively record it with Wireshark. The same issue was reported at Postman (https://github.com/postmanlabs/postman-app-support/issues/9176). There are some good tips for research in there.

Hi, @AnWeber
This is my wrong usage. I send http request to GRPC server port.

Thank you for your patient reply!

You're welcome. Interestingly, the GRPC also returns HTTP/0.9 during a curl call. Possibly just one falltrough issue of curl (seems to be).


feature: Add ability to import Jest Globals

I would like to propose an option to being able to import jest globals, such as expect in the .test.js files.
Why? Because without it, any linter (StandardJS, ESLint) will throw a warning when stumbling across expect in the test code. I would like to be able to lint my tests as well as the main code, as it seems as a good practice. Currently, the only way of passing linting is by adding eslint-disable no-undef rule at the top of the file, which is not nice nor clear:
/* eslint-disable no-undef *
import myCode from './myFile.js'

expect(myCode.property).toBeTruthy()

Instead I would propose the optional import of expect (or jest object), so that linters would be happy:
import {expect} from 'jest'
import myCode from './myFile.js'

expect(myCode.property).toBeTruthy()

What do you think?

You can get around that by using eslint-plugin-jest or enabling the "jest" globals in your eslint config. As of now, we do not have plans to make certain modules importable directly, so I'm going to close this, but if somebody is willing to take this all the way through to a solid implementation, I'm willing to review the code for it.

And what are the options for StandardJS, which by design, is not configurable as ESLint is?

/* eslint-env jest */


Native Tabs: "file has been modified by another application" appears immediately

Short Description
The sheet "The document's file has been modified by another application. Do you want to revert the document?" appears immediately and dissapears after the animation has finished if a file has been edited outside of SEE
Steps to Reproduce the Issue

Open a file
Press cmd+T to open another tab
Open the same file in another editor
Edit & Save the file in another editor
Focus SubEthaEdit

Expected Result
The sheet "The document's file has been modified by another application. Do you want to revert the document?" appears once you switch to the tab with the affected file
Actual Result
The sheet "The document's file has been modified by another application. Do you want to revert the document?" appears immediately and dissapears after the animation has finished
Environment

SubEthaEdit: Version 5.1.0a (9567+)
System: Version 10.14.5 (Build 18F132)
Language: en

Hardware:

    Hardware Overview:

      Model Name: MacBook Pro
      Model Identifier: MacBookPro11,1
      Processor Name: Intel Core i7
      Processor Speed: 3 GHz
      Number of Processors: 1
      Total Number of Cores: 2
      L2 Cache (per Core): 256 KB
      L3 Cache: 4 MB
      Hyper-Threading Technology: Enabled
      Memory: 16 GB
      Boot ROM Version: <IP_ADDRESS>.0
      SMC Version (system): 2.16f68
      Serial Number (system): [redacted]
      Hardware UUID: [redacted]

We don't want the current behavior. That is for sure.
I do think the previous behavior was less introsive, but have to test. E.g. in the previous behavior the sheet was imho only shown when you switched to the document. this way multiple changes could easily coalesce. I think I would like that back.
So: only show sheet when switching to a document. Maybe put a accessory view in the tab to show that there is an issue. I do think we had the warnings sign pre native tabs.

Yes, I do think we need the old behavior back. E.g. show the sheet only after the user actively switched to the tab, and show a warning in the tab icon.

Probably also related to #86 as the mechanism that displays the warnings changed too.

There is also the problem that regular scheduled alerts don't show up. Easy repro steps:

open an untitled document
switch encoding to iso latin 1
enter an umlaut, e.g. ü
switch encoding to utf-8 and choose reinterpret

Expected Results:

show the information dialog, thet the reinterpretation failed.

Results:

no dialog showing that the reinterpretation failed

I don't know exactly if the previous mechanism was a full queue, but at least this one does not have enough trigger points to call the alert.

I added a caution symbol to be used in 686667b6745f454d4eace398f8f470461498bc91 so the art is prepared.


Implementing

Problem

Not working

Solution

make it work

PR Status

[ ] Code finished and ready to be reviewed/tested
[ ] The fix/enhancement were manually tested (if applicable)

Automatic tests
Automatic tests can be triggered on https://ci-apps-dev.yunohost.org/ after creating the PR, by commenting "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!". (N.B. : for this to work you need to be a member of the Yunohost-Apps organization)

!testme

!testme

Own CI results


📝 Add docs and test for no_args_is_help feature

Continuing from PR https://github.com/tiangolo/typer/pull/582, I've added a documentation example and test for the no_args_is_help feature.

FYI - related discussion on the no_args_is_help functionality and its default behaviour: https://github.com/tiangolo/typer/issues/328

Awesome, thanks @svlandeg! :rocket: :bow:


Purpose?

Would be interesting to hear the purpose of DetachBuffer(). What are the circumstances in which DetachBuffer() is useful?

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

ID: 8eaf6e1f-929b-02d6-fa89-7ae341e1bac0
Version Independent ID: 3eca355f-d556-5778-ad5f-525f82179cf2
Content: DataReader.DetachBuffer Method (Windows.Storage.Streams) - UWP app developer
Content Source: https://cpubwin.visualstudio.com/DefaultCollection/windows-uwp/_git/winrt-api-build?path=%2fwinrt-api-build%2fwindows.storage.streams.datareader.yml&version=GBlive&_a=contents
Product: uwp
Git Login: wdg-dev-content
Microsoft Alias: wdg-dev-content

It detaches the buffer from the DataReader, so that Disposing the DataReader won't delete it.


Deprecate sim.run_async

The Hdl21-side of https://github.com/Vlsir/Vlsir/issues/61

Pending deprecation warning goes in with PR #118
I guess it's good to cut a release that includes it, before ditching this public-facing "feature"

Version 4 had this included, with a DeprecationWarning
As of #168 it's deleted


Define standards

What exactly are we aiming for in these implementations: are we aiming to replicate the quirks of the GNU implementations exactly? Or trying to be POSIXly correct? Or just doing our best for now and worrying about the details later?
My 2p: the GNU quirks aren't all good, e.g. GNU uniq -i thinks 'Γ' and 'γ' are distinct.

I think the project is now trying to match GNU's behavior. Closing


Change order state workflow doesn't make sense

PHP Version
8.0.15
Shopware Version
<IP_ADDRESS>
Expected behaviour
Doesn't recalculate cart while change order state by Shopware\Core\System\StateMachine\StateMachineRegistry->transition()
Actual behaviour
Recalculate cart while change order state by Shopware\Core\System\StateMachine\StateMachineRegistry->transition()
How to reproduce
#0  Sdn\Platten\Core\Checkout\Cart\SampleProductCartProcessor->collect() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/Processor.php:101]
#1  Shopware\Core\Checkout\Cart\Processor->runProcessors() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/Processor.php:65]
#2  Shopware\Core\Checkout\Cart\Processor->Shopware\Core\Checkout\Cart\{closure}() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Profiling/Profiler.php:57]
#3  Shopware\Core\Profiling\Profiler::trace() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/Processor.php:84]
#4  Shopware\Core\Checkout\Cart\Processor->process() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/CartRuleLoader.php:127]
#5  Shopware\Core\Checkout\Cart\CartRuleLoader->Shopware\Core\Checkout\Cart\{closure}() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Profiling/Profiler.php:57]
#6  Shopware\Core\Profiling\Profiler::trace() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/CartRuleLoader.php:177]
#7  Shopware\Core\Checkout\Cart\CartRuleLoader->load() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Cart/CartRuleLoader.php:89]
#8  Shopware\Core\Checkout\Cart\CartRuleLoader->loadByCart() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/System/SalesChannel/Context/SalesChannelContextRestorer.php:128]
#9  Shopware\Core\System\SalesChannel\Context\SalesChannelContextRestorer->restoreByOrder() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Order/Listener/OrderStateChangeEventListener.php:205]
#10 Shopware\Core\Checkout\Order\Listener\OrderStateChangeEventListener->getContext() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Checkout/Order/Listener/OrderStateChangeEventListener.php:142]
#11 Shopware\Core\Checkout\Order\Listener\OrderStateChangeEventListener->onOrderStateChange() called at [/var/www/html/sw6/vendor/symfony/event-dispatcher/Debug/WrappedListener.php:117]
#12 Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke() called at [/var/www/html/sw6/vendor/symfony/event-dispatcher/EventDispatcher.php:230]
#13 Symfony\Component\EventDispatcher\EventDispatcher->callListeners() called at [/var/www/html/sw6/vendor/symfony/event-dispatcher/EventDispatcher.php:59]
#14 Symfony\Component\EventDispatcher\EventDispatcher->dispatch() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Content/Flow/Dispatching/FlowDispatcher.php:51]
#15 Shopware\Core\Content\Flow\Dispatching\FlowDispatcher->dispatch() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Framework/Webhook/WebhookDispatcher.php:96]
#16 Shopware\Core\Framework\Webhook\WebhookDispatcher->dispatch() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Framework/Event/BusinessEventDispatcher.php:53]
#17 Shopware\Core\Framework\Event\BusinessEventDispatcher->dispatch() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/Framework/Event/NestedEventDispatcher.php:35]
#18 Shopware\Core\Framework\Event\NestedEventDispatcher->dispatch() called at [/var/www/html/sw6/vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:154]
#19 Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch() called at [/var/www/html/sw6/vendor/shopware/platform/src/Core/System/StateMachine/StateMachineRegistry.php:242]
#20 Shopware\Core\System\StateMachine\StateMachineRegistry->transition() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Task/TaskHandler/SetOrderStatus.php:175]
#21 Sdn\PlatOa\Task\TaskHandler\SetOrderStatus->transitionState() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Task/TaskHandler/SetOrderStatus.php:143]
#22 Sdn\PlatOa\Task\TaskHandler\SetOrderStatus->setOrderState() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Task/TaskHandler/SetOrderStatus.php:35]
#23 Sdn\PlatOa\Task\TaskHandler\SetOrderStatus->do() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Task/Runner.php:44]
#24 Sdn\PlatOa\Task\Runner->run() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Task/Runner.php:66]
#25 Sdn\PlatOa\Task\Runner->runGroup() called at [/var/www/html/sw6/custom/plugins/platOrderAction/src/Command/TaskCommand.php:35]
#26 Sdn\PlatOa\Command\TaskCommand->execute() called at [/var/www/html/sw6/vendor/symfony/console/Command/Command.php:298]
#27 Symfony\Component\Console\Command\Command->run() called at [/var/www/html/sw6/vendor/symfony/console/Application.php:1042]
#28 Symfony\Component\Console\Application->doRunCommand() called at [/var/www/html/sw6/vendor/symfony/framework-bundle/Console/Application.php:96]
#29 Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() called at [/var/www/html/sw6/vendor/symfony/console/Application.php:299]
#30 Symfony\Component\Console\Application->doRun() called at [/var/www/html/sw6/vendor/symfony/framework-bundle/Console/Application.php:82]
#31 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() called at [/var/www/html/sw6/vendor/symfony/console/Application.php:171]
#32 Symfony\Component\Console\Application->run() called at [/var/www/html/sw6/bin/console:49]

#26 run command line for set order state following condition
#20 call set state service function
#4 recalculate cart for complete order?
#0 exit there
This might cause problem when use request data in calculation and product data changed after order.
I test in development template call stack pattern may different than production template.

Hello,
Within our company roadmap and work capacity, we try to address each bug or improvement request but admit that not each one will be resolved. To continue our culture of honesty and openness, we are closing this issue to focus on our roadmap on behalf of all Shopware users.
If you feel like this issue is still impacting you, please create a new issue and let us know.
Thank you again for your valuable feedback.


fix out of order bug

we cannot fix like this on serialization, because it can yield collision on serializaiton.
We need to add unit test on serialization, and normalize upstream.

See https://github.com/quickwit-oss/tantivy/pull/2445


Handling of pyimzML written files

Hi, for some reason i get an unexpected error when reading imzML files that where written by pyimzML.
Here is the traceback:
On most datsets, i get the following error,
File "C:\Users\Jannik\Documents\Uni\Master_Biochem\4_Semester\QCdev\src\i2nca\i2nca\test.py", line 13, in
J = m2.ImzMLReader(file_dir)
File "C:\Users\Jannik.conda\envs\QCdev\lib\site-packages\m2aia\ImageIO.py", line 222, in init
self.Load()
File "C:\Users\Jannik.conda\envs\QCdev\lib\site-packages\m2aia\ImageIO.py", line 234, in Load
self.handle = self.lib.CreateImageHandle(cPath)
OSError: [WinError -529697949] Windows Error 0xe06d7363
but on one dataset, i'm able to get a more informative message:
Traceback (most recent call last):
File "C:\Users\Jannik\Documents\Uni\Master_Biochem\4_Semester\QCdev\src\i2nca\i2nca\test.py", line 11, in
J= m2.ImzMLReader(out_path)
File "C:\Users\Jannik.conda\envs\QCdev\lib\site-packages\m2aia\ImageIO.py", line 222, in init
self.Load()
File "C:\Users\Jannik.conda\envs\QCdev\lib\site-packages\m2aia\ImageIO.py", line 233, in Load
cPath = create_string_buffer(self.imzML_path.encode())
AttributeError: 'NoneType' object has no attribute 'encode'
Since it goes down into the C++-parts, i am a bit lost. If i try to read old files written with pyimzML and pym2aia 0.3, everything is fine, but with newer files, i just get this error over and over again.
Any help is much appreciated :D

Hi, thank you for your message!
Is it possible to load the files in the GUI M2aia?

When run in the docker, the file can also not be read. however, the whole container crashes, so i was only able to obtain the output from the docker log, not the m2aia console that opened in the docker.
2024-01-30 11:06:27,923 INFO exited: m2aia (exit status 0; expected)
2024-01-30 11:06:27,926 WARN received SIGTERM indicating exit request
2024-01-30 11:06:27,935 INFO waiting for nginx, web, xvfb, wm, lxpanel, pcmanfm, x11vnc, novnc to die
2024-01-30 11:06:27,937 INFO stopped: lxpanel (terminated by SIGTERM)
2024-01-30 11:06:27,958 INFO stopped: xvfb (terminated by SIGKILL)
2024-01-30 11:06:27,978 INFO stopped: x11vnc (exit status 2)
2024-01-30 11:06:27,983 INFO stopped: novnc (exit status 143)
2024-01-30 11:06:28,032 INFO stopped: wm (exit status 1)
2024-01-30 11:06:28,139 ERROR Exception on /api/health [GET] (app.py:1890)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/dist-packages/flask/_compat.py", line 39, in reraise
raise value
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/dist-packages/flask/app.py", line 1935, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/local/lib/web/backend/vnc/app.py", line 41, in apihealth
if state.health:
File "/usr/local/lib/web/backend/vnc/state.py", line 129, in health
self._update_health()
File "/usr/local/lib/web/backend/vnc/state.py", line 31, in _update_health
output = gsp.check_output([
File "/usr/local/lib/python3.8/dist-packages/gevent/subprocess.py", line 348, in check_output
raise CalledProcessError(retcode, process.args, output=output)
subprocess.CalledProcessError: Command '['supervisorctl', '-c', '/etc/supervisor/supervisord.conf', 'status']' returned non-zero exit status 1.
2024-01-30 11:06:31,190 WARN killing 'pcmanfm' (178) with SIGKILL
2024-01-30 11:06:31,190 INFO waiting for nginx, web, pcmanfm to die
2024-01-30 11:06:31,200 INFO stopped: pcmanfm (terminated by SIGKILL)
2024-01-30 11:06:32,204 INFO stopped: web (terminated by SIGTERM)
2024-01-30 11:06:32,267 INFO stopped: nginx (exit status 0)
I don't kniw how helpful that is.
Is there a way to stop the container from closing, so that i can get the log output?

Also, i checked back with older versions.
Files parsed with pym2aia 0.3.2 and written with pyimzML 1.5.3 can be parsed by m2aia 0.5.1 and 0.5.10,
but those initially parsed with 0.5.1 and then written by pyimzML 1.5.3 cannot be reopened in m2aia 0.5.1

So, i've also tried the normal desktop app and i think the error mesage was was more informative:
Exception occured when reading file D:/wittej/data/docker_mount/c_error/output_conv_output_cont_profile.imzML:
C:\mitk\Modules\Core\src\DataManagement\mitkImage.cpp:763:
ITK ERROR Image(0000024C5B8B07E8): Invalid dimension[0]:0
I'm gonna check if the imzML writer performs better when provided with a z dimension of 1

So, i found the problem.
for some reason, if the first pixel is written at (1,1,1), m2aia 0.5.1 can easily parse it.
But if the pixel is written at (0,0,0), the error occurs.
I can easily fix this on my side, but it migth be nice to have a more robust way of dealing with this.
Also, that leads me to another question: Is m2aia intended to be 0-based or 1-based when indexing?
As the first spectrum gets assiged the id 0, (fro reference .GetSpectrum(0) should give a valid spectrum of the first pixel),
but the coordinat indices seem to be 1-based.
Empyty pixels (when using a non quadratical dataset) also get assigned the Index 0 (at least, within the .GetIndexArray() method).

Hi, I am happy that you have found the problem and thank you for the report.
Please take a look into the imzML documentation chapter "2.4 Orientation of images [...] "The position 1/1 is in the top left corner."
I have already found a way to support imzML images starting with both (1/1) and (0/0) :) It will be part of the next release.
M2aia is 0-based, even for the index image!
# Access valid spectrum IDs::

indexImage = I.GetIndexArray()
maskImage = I.GetMaskArray()
validIndices = indexImage[maskImage > 0]

I updated the pyM2aia documentation for GetIndexArray.
Thanks again!


improve task_prefix JSON field description

low priority TODO -- should probably also add this to the very nice diagrams of how model inputs are composed.

I think this is an interesting task, though it's unclear how well language models will do. My sense is it will be too difficult to do because classifying an image based on string representation is likely not something models have encountered. Is there any reason to expect this task to be feasible?


Set routing path for static files.

I couldn't find a solution to serve static files in specified path in Crystal public api. It's a nice feature worth considering. Or anything already works now?

Could you explain the issue with more details?

Now to set routing for static files
class DemoController < Grip::Controllers::Http
  def getHtml(context : Context) : Context
    context
      .send_file("./public/index.html")
  end
end

class Application < Grip::Application
  def initialize(@port : Int32)
    super(environment: "development", serve_static: true)

    scope "/" do
      get "/html", DemoController, as: :getHtml # This works well.

      scope "/foo" do
      get "/html", DemoController, as: :getHtml
      # Request to host/foo/html => ok
      # Request to other static files => 404 Not Found
      # In the url http://localhost/foo/static/js/main.2ee217bf.js, /foo is not expected.
      end
    end
  end
  ...
end

I prefer the way in gofiber

Now to set routing for static files
class DemoController < Grip::Controllers::Http
  def getHtml(context : Context) : Context
    context
      .send_file("./public/index.html")
  end
end

class Application < Grip::Application
  def initialize(@port : Int32)
    super(environment: "development", serve_static: true)

    scope "/" do
      get "/html", DemoController, as: :getHtml # This works well.

      scope "/foo" do
      get "/html", DemoController, as: :getHtml
      # Request to host/foo/html => ok
      # Request to other static files => 404 Not Found
      # In the url http://localhost/foo/static/js/main.2ee217bf.js, /foo is not expected.
      end
    end
  end
  ...
end

I prefer the way in gofiber

is this what you are looking for?

is this what you are looking for?

I have set the static file directory and assigned serve_static true.
It can only handle request to root path, right?

is this what you are looking for?

I have set the static file directory and assigned serve_static true. It can only handle request to root path, right?

Depends on how you structure your directories, for example:
public/
  images/
    cat.jpeg
  pages/
    cat.html

  index.html

You will be able to access cat.jpeg by /images/cat.jpeg and cat.html by /pages/cat.html.

I mean the prefix part of the path unrelated to the file structure.
I'm seeking for a portable solution.
For example, to access the same files
app.Static("/foo", "./public") => GET http://localhost/foo/index.html
app.Static("/foo/bar", "./public") => GET http://localhost/foo/bar/index.html
app.Static("/foo/bar/baz", "./public") => GET http://localhost/foo/bar/baz/index.html

I mean the prefix part of the path unrelated to the file structure. I'm seeking for a portable solution.
For example, to access the same files
app.Static("/foo", "./public") => GET http://localhost/foo/index.html
app.Static("/foo/bar", "./public") => GET http://localhost/foo/bar/index.html
app.Static("/foo/bar/baz", "./public") => GET http://localhost/foo/bar/baz/index.html

It could be an interesting feature, I will leave this open.


Refactor: config.rs

Changed keysym in hotkeys from evdev::Key to Vec<evdev::Key> so that we can handle multiple keysyms

Removed unnecessary errors and tests concerning empty commands (e.g. 'no command', 'command without whitespace')

Merge config_new branch so that we can join lines end with backslash

Sorry for these too many changes. This is the last time for me to do so I promise

The structure of the code looks good, but I really can't accept super-long pull requests, sorry. :/
Tests are also a must so that code can be maintainable, and this PR removes most of it.
I suggest making a new branch from the main branch, and making a small improvement to the parse_contents or parse_keybinds algorithm while making all of the tests pass. That way, we can review the changed code much more effectively.


Support GHES setup using the GITHUB_API_URL

Load the API_URL environment variable and use that instead of api.github.com. Since GHES will have its address as https://custom.domain.com/api/v3, we only need to add the domain name itself.
Closes #8

Hi, thank you for the pull request! What is the value of GITHUB_SERVER_URL in that case? I'm thinking maybe it can be just implemented as:
hosts.add(new URL(process.env.GITHUB_SERVER_URL).hostname);
hosts.add(new URL(process.env.GITHUB_API_URL).hostname);


HOFD-9 add update to exisiting form submission

What
Added update session to create
Why
Each time a user submits the form using the same ID, the session will be updated in the db

Looks good to me


Jest Error -   import connectStyle, { clearThemeCache } from "./src/connectStyle";     ^^^^^^      SyntaxError: Cannot use import statement outside a module

I have gone through these following points

[x] Check latest documentation: https://docs.nativebase.io/
[x] Check for existing open/closed issues for a possible duplicate before creating a new issue: https://github.com/GeekyAnts/NativeBase/issues
[x] Use the latest NativeBase release: https://github.com/GeekyAnts/NativeBase/releases
[x] Check examples from NativeBase KitchenSink https://github.com/GeekyAnts/NativeBase-KitchenSink
[x] For discussion purpose make use of NativeBase Slack: http://slack.nativebase.io/
[x] For queries related to theme, check Theme Variables from Docs and live NativeBase Theme Editor http://nativebase.io/customizer/

Jest enzyme test Error Native Base
react-native, version
Expected behaviour
Actual behaviour
Try run test from my screen component
<!-
import React from 'react';
import { Container, Content } from 'native-base';
const HomeScreen = props => {
return (

<Button
style={styles.button}
onPress={() => props.navigation.openDrawer()}
>
Custom Color

);
};
export default HomeScreen;
->
Got this error

I add this  in my transformIgnorePatterns:
<!-
transformIgnorePatterns: [
'node_modules/(?!react-native|native-base|react-navigation|react-native-reanimated|react-navigation-redux-helpers|react-native-maps|@react-navigation/|@shoutem/theme|native-base-shoutem-theme|@shoutem/animation|@shoutem/ui|react-native-easy-grid|tcomb-form-native.*)/'
],
->
Is the bug present in both iOS and Android or in any one of them?
Yes
Any other additional info which would help us debug the issue quicker.
###Important
If im using React native component the tst runs ok

I have the same problem with react-native-testing-library testing package too.

facing the same problem

Anyone has a resolution for this?

Came across same issue.

Add this to your jest config
"transformIgnorePatterns": [       "node_modules/(?!react-native|@shoutem|react-clone-referenced-element|native-base-shoutem-theme)"     ]

Add this to your jest config
"transformIgnorePatterns": [       "node_modules/(?!react-native|@shoutem|react-clone-referenced-element|native-base-shoutem-theme)"     ]

This solution unfortunately didn't work, are there any other solutions?  It's not great if we can't use Jest for testing NativeBase?

Add this to your jest config
"transformIgnorePatterns": [ "node_modules/(?!react-native|@shoutem|react-clone-referenced-element|native-base-shoutem-theme)" ]

I am thinking of not not using Native Base... since it does not support testing with Jest . Or at least if we had a workaround? Could not configure my project to successfully use NativeBase and Jest.

I will share my jest.config.js, this was enough to make it work for me:
module.exports = {
  preset: 'react-native',
  setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
  transformIgnorePatterns: [
    '<rootDir>/node_modules/(?!(jest-)?react-native|native-base-shoutem-theme)'
  ]
};

My jest.setup.js does nothing but import @testing-library/jest-native/extend-expect.


Validate queue throttle config and update api document

This PR adds validation for queue throttle config. Also updates the api document.

Thank you.


Reapply "add config for enabling tekton results dbssl"

Reapplies openshift-pipelines/pipeline-service#906

I will try to perform the test myself. And put my results here.

Closing in favor of #984


LayoutController - Hide events button

Can an option be added to remove this:

Where's that button?


Export csv  AttributeError: 'NoneType' object has no attribute 'index'

A clear and concise description of what the bug is.
Expected results
Successfully export CSV data
Actual results
AttributeError: 'NoneType' object has no attribute 'index'
After re-login, it can be exported normally.
Screenshots

How to reproduce the bug
Click on dashboard
Click on Export csv
Environment

superset version:  0.24
python version: 3.5.5
node.js version: 0.10.48
npm version: 1.3.6

I have the same Problem.

I'd like to reopen this issue because it's still happening on Export CSV for filter box


Enhance the footer section of the website

Footer of which page?

About section

It is being worked on by another mentee.


example Mikrotik IPFIX packets which result in parsing error

I have grepped some error log messages with example packets which result in parsing error as asked in #28.
v10_errors.txt
As you can see, they are from several devices and do not appear much often, on average each 10 seconds. Considering that server parse around 5000 IPFIX packets per second they are very rare.
Hope it will help.

Do you have the template information for these sets?


doc: better define the public interface

Our previous definition only described the public API, but did not say
much about the other things that applications must use to get to a
library (package names, library names, etc.) Updated the README to
include all of those.
I expect this will require some discussion, but I thought I could get the ball
rolling with a PR.
Part of the work for #5726

This change is

PTAL


Feature/goal sorting

Updated sorting to work more properly and added goal sorting

there's a conflict that needs to be resolved

picking a location in the map doesn't update county dropdown

plant hardiness zone in the explorer should be changed to a dropdown

search in the explorer is broken for midwest

filtering crops is broken for the midwest

need to add fly free dates like how they have here https://www.midwestcovercrops.org/covercroptool. to recreate select Illinois, Christian county, Good Grazing and scroll down

need to add fly free dates like how they have here https://www.midwestcovercrops.org/covercroptool. to recreate select Illinois, Christian county, Good Grazing and scroll down

@mikahpinegar This issue cannot yet be fixed.  While i can see where the fly-free attribute is inside some crops there is not a description or a date associated it it to operate like the Midwest's site is working.
The rest of the tasks are done and ready to be reviewed.

filtering is still broken for mccc


VSCE Bug: Sidebar during initial startup

In the new chat panel UI, if you restart VS Code and then click on the Cody icon during the start up stage, you will see the sidebar is opened and then closed again, before you can click on it to open the sidebar again.
https://github.com/sourcegraph/cody/assets/68532117/918de800-61d9-47b0-9c8a-78f1be830331

Hey @abeatrix👋🏻 ,
I see in version 0.16.0 I am unable to reproduce this issue. So is this issue still persists from your side?

@iswarmondal sorry for not updating the issue properly, as you mentioned, this issue has been resolved in the linked issues!


Add --claim option to generate-jwt

Add a --claim option, which allows the user to add JWT claims as
name/value pairs.  Refactor the name/value parsing code, so that the
same code is used for claims and tags.

LGTM 👍


Rearrangement in directory structure

After long inactivity here, I'm now fully occupied with this project. I'm trying to better organize the things, but I'm also trying to keep things as unchanged as possible, so existing users could easely migrate to latest version.
Master branch is mostly unchanged, developing continues on split-driver branch, which I try to keep it stable. Separating the driver #108 advances well. Updating the CANopenPIC project was quick.
On https://www.can-cia.org/news/ I found interesting cite, which describes my current intentions: "The problems are solved, not by giving new information, but by arranging what we have known since long."

I would like to make some rearrangement in directory structure. No other change, but Makefile and all project files will have to be updated. I would make this now, together with split-driver. I'm open to other suggestions. Here is, what I mean:

301/ - CANopen application layer and communication profile

CO_driver.h - Interface between CAN hardware and CANopenNode.
CO_Emergency.h/.c - CANopen Emergency object.
CO_HBconsumer.h/.c - CANopen Heartbeat consumer object.
CO_NMT_Heartbeat.h/.c - CANopen Network slave and Heartbeat producer object.
CO_PDO.h/.c - CANopen PDO object. It configures, receives and transmits CANopen process data.
CO_SDOclient.h/.c - CANopen SDO client object (master functionality).
CO_SDOserver.h/.c - CANopen SDO server object. It serves data from Object dictionary.
CO_SYNC.h/.c - CANopen SYNC producer and consumer object.
CO_TIME.h/.c - CANopen TIME protocol object.
crc16-ccitt.h/.c - CRC calculation object.

305/ - CANopen layer setting services (LSS) and protocols

CO_LSS.h - CANopen LSS common. This is common to LSS master and slave.
CO_LSSmaster.h/.c - CANopen LSS master functionality.
CO_LSSslave.h/.c - CANopen LSS slave functionality.

309/ - CANopen access from other networks

New objects to be added from CANopenSocket. There is already implementation
of the DS309-3 standard (ASCII mapping), which enables CANopen master tools via
terminal. Nonblocking object could be implemented, which can also be used with
microcontroller serial console. NMT, LSS and SDO master commands would be available.
See also https://github.com/CANopenNode/CANopenSocket#third-terminal-canopencomm.

extra/

CO_trace.h/.c - Trace object with timestamp for monitoring variables from Object Dictionary.

socketCAN/ - Directory for Linux socketCAN interface.

...

example/ - Directory with basic example.

... no changes

CANopen.h/.c - Initialization and processing of CANopen objects.
Makefile - Basic makefile.
etc.

Discussion continues in # 177


PodFile SWIFT_SWIFT3_OBJC_INFERENCE to On

Hi,
I've recently installed your great markdown lib into my Nativescript angular app. Thanks for that !
But it seems your PodFile is changing the build configuration of Xcode.
post_install do |installer|
  installer.pods_project.targets.each do |target|
   target.build_configurations.each do |config|
      config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'On'
    end
  end
end
pod 'TSMarkdownParser'
This was failing the iOS build process for other libs !
Example of error it created with nativescript-toasty :
error: method 'makeToastActivity' with Objective-C selector 'makeToastActivity:' conflicts with previous declaration with the same Objective-C selector    @objc func makeToastActivity(_ point: CGPoint) {               ^ .../platforms/ios/Pods/Toast-Swift/Toast/Toast.swift:279:9: note: 'makeToastActivity' previously declared here    func makeToastActivity(_ position: ToastPosition) {         ^ note: Using new build systemnote: Planning buildnote: Constructing build descriptionwarning: **The use of Swift 3 @objc inference in Swift 4 mode is deprecated**. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the **"Swift 3 @objc Inference" build setting to "Default"** for the "Toast-Swift" target. (in target 'Toast-Swift' from project 'Pods')warning: The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "Toast-Swift" target. (in target 'Toast-Swift' from project 'Pods') ** BUILD FAILED **
---> So I needed to change this line to :
config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'Default'
to get the build pass and working again.
Can you confirm that changing this will not make your lib not working as expected ?
If so, can you update your repo ?
Thanks for help and thank you for this plugin !
Lo.

I have the exact same issue. I cretead App_Ressources/ios/Podfile with this content
post_install do |installer|
  installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_SWIFT3_OBJC_INFERENCE'] = 'Default'
    end
  end
end

effectively overriding this plugin's mistake.

Yes ;-)

Is this still an issue? Can someone create a PR for this?


05-Feb-2024 backup of Postman Data API collection

What this PR does:
Which issue(s) this PR fixes:
Fixes #
Checklist

[ ] Changes manually tested
[ ] Automated Tests added/updated
[ ] Documentation added/updated
[ ] CLA Signed: DataStax CLA

Hi @Hazel-Datastax and @jeffreyscarpenter , this backup contains the most recent updates to the Data API Postman collection, including examples with range operators and others. In addition to your approvals, one of you will likely need to do a force merge because the checks expect to find a code change. There's no code change - it's just a json file.


Add Content-type: image/jpeg for camera proxy

Description:
This PR will add a Content-type-header for the camera proxy.
Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

       1 failed
         - tests/components/sensor/test_darksky.py:66 TestDarkSkySetup.test_setup

[ ] New dependencies have been added to the REQUIREMENTS variable ([example][ex-requir]).
[ ] New dependencies are only imported inside functions that use them ([example][ex-import]).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

Hi @olekenneth,
It seems you haven't yet signed a CLA. Please do so here.
Once you do that we will be able to review and accept this pull request.
Thanks!


Feat walletconnect wc registry

~Blocked by #68~ Ready to be reviewed.
This PR refactors the list of apps to be fetched from the walletconnect registry
[Closes celo-org/celo-monorepo#8963]
[Closes celo-org/celo-monorepo#8663]

@nicolasbrugneaux I see you've made some changes since my review. Has the Celo Wallet custom UI been restored and does deep linking work? If so I'll re-review :)

Yes you're correct! I backported the logic for celowallet in the modal logic. It's not finalized yet and I wanted @dckesler to have a look, but you're more than welcome to check it out too! 🙏

Codecov Report

Merging #71 (369bc8a) into master (06d46b8) will decrease coverage by 0.46%.
The diff coverage is 43.11%.

@@            Coverage Diff             @@
##           master      #71      +/-   ##
==========================================
- Coverage   37.79%   37.32%   -0.47%
==========================================
  Files          41       40       -1
  Lines        1061     1085      +24
  Branches      141      150       +9
==========================================
+ Hits          401      405       +4
- Misses        529      542      +13
- Partials      131      138       +7

Impacted Files
Coverage Δ

.../use-contractkit/src/components/ProviderSelect.tsx
33.33% <ø> (ø)

...e-contractkit/src/connectors/connectors-by-name.ts
100.00% <ø> (ø)

packages/use-contractkit/src/constants.tsx
57.62% <ø> (+4.46%)
:arrow_up:

packages/use-contractkit/src/screens/index.ts
100.00% <ø> (ø)

packages/use-contractkit/src/types.ts
75.00% <ø> (ø)

packages/use-contractkit/src/walletIcons.tsx
77.77% <ø> (-5.56%)
:arrow_down:

...ages/use-contractkit/src/utils/useWalletVersion.ts
23.80% <8.33%> (ø)

...-contractkit/src/screens/wallet-connect-custom.tsx
22.58% <15.78%> (ø)

packages/use-contractkit/src/modals/connect.tsx
17.74% <18.75%> (-1.78%)
:arrow_down:

...ges/use-contractkit/src/utils/useFetchWCWallets.ts
37.50% <37.50%> (ø)

... and 1 more

Continue to review full report at Codecov.

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

closing cause its stale


[Docs] Update contributor guide with enhanced with how dark mode works

Current State:
Meshery.io has a new dark mode.
Desired State:
New and existing contributors need training / documentation on how this feature works.
Acceptance Criteria

Concise instructions and example(s) should be included in this repo's readme.
A similar set of instructions should be included in a new page in https://docs.meshery.io/project/contributing

Contributor Resources

Meshery documentation site
Meshery documentation source
Instructions for contributing to documentation

@leecalcote , can I work on this.

That would be helpful, @Musab1258. Thank you.

screen-capture (1).webm

@leecalcote , just to be sure is this the darrk mode you are talking about.
screen-capture.webm

Tagging @Krishna2323

@Musab1258, yes, we are talking about the dark mode on meshery.io, you can check out once how that is implemented and if you need help anywhere then pls ping me in slack.

okay.

Hey @leecalcote I would like to give this a shot.


[FEATURE] Gaslite Gas Optimization Audit

Feature or Improvement Description
Nexus Gas Optimization Audit
Benefits & Outcomes
Finding 1
File: BaseAccount.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/BaseAccount.sol#L36-L41
Revise the revert condition to apply the not condition a single time when evaluating if the caller is _ENTRYPOINT or address(this).
    modifier onlyEntryPointOrSelf() {
        if (!(msg.sender == _ENTRYPOINT || msg.sender == address(this))) {
            revert AccountAccessUnauthorized();
        }
        _;
    }

Gas savings: 12-17 gas units per call that uses onlyEntryPointOrSelf modifier.

Finding 2
File: BaseAccount.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/BaseAccount.sol#L71-L96
Utilize private function variables to change the behavior of addDeposit and withdrawDepositTo at the time of deployment rather than relying on an EXTCODESIZE check on _ENTRYPOINT on every call to determine if the contract exists.
    function() private immutable _addDeposit;
    function(address,uint256) private immutable _withdrawDepositTo;

    constructor() {
        uint256 entryPointCodesize;

        /// @solidity memory-safe-assembly
        assembly {
            entryPointCodesize := extcodesize(_ENTRYPOINT)
        }

        if (entryPointCodesize > 0) {
            _addDeposit = _addDepositWithoutEntrypointCheck;
            _withdrawDepositTo = _withdrawDepositToWithoutEntrypointCheck;
        } else {
            _addDeposit = _addDepositWithEntrypointCheck;
            _withdrawDepositTo = _withdrawDepositToWithEntrypointCheck;
        }
    }

...

    /// @notice Adds deposit to the EntryPoint to fund transactions.
    function addDeposit() external payable virtual {
        _addDeposit();
    }

    function _addDepositWithEntrypointCheck() private {
        /// @solidity memory-safe-assembly
        assembly {
            // The EntryPoint has balance accounting logic in the `receive()` function.
            if iszero(mul(extcodesize(_ENTRYPOINT), call(gas(), _ENTRYPOINT, callvalue(), codesize(), 0x00, codesize(), 0x00))) {
                revert(codesize(), 0x00)
            } // For gas estimation.
        }
    }

    function _addDepositWithoutEntrypointCheck() private {
        /// @solidity memory-safe-assembly
        assembly {
            // The EntryPoint has balance accounting logic in the `receive()` function.
            if iszero(call(gas(), _ENTRYPOINT, callvalue(), codesize(), 0x00, codesize(), 0x00)) {
                revert(codesize(), 0x00)
            } // For gas estimation.
        }
    }

    /// @notice Withdraws ETH from the EntryPoint to a specified address.
    /// @param to The address to receive the withdrawn funds.
    /// @param amount The amount to withdraw.
    function withdrawDepositTo(address to, uint256 amount) external payable virtual onlyEntryPointOrSelf {
        _withdrawDepositTo(to, amount);
    }

    function _withdrawDepositToWithEntrypointCheck(address to, uint256 amount) private {
        /// @solidity memory-safe-assembly
        assembly {
            mstore(0x14, to) // Store the `to` argument.
            mstore(0x34, amount) // Store the `amount` argument.
            mstore(0x00, 0x205c2878000000000000000000000000) // `withdrawTo(address,uint256)`.
            if iszero(mul(extcodesize(_ENTRYPOINT), call(gas(), _ENTRYPOINT, 0, 0x10, 0x44, codesize(), 0x00))) {
                returndatacopy(mload(0x40), 0x00, returndatasize())
                revert(mload(0x40), returndatasize())
            }
            mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.
        }
    }

    function _withdrawDepositToWithoutEntrypointCheck(address to, uint256 amount) private {
        /// @solidity memory-safe-assembly
        assembly {
            mstore(0x14, to) // Store the `to` argument.
            mstore(0x34, amount) // Store the `amount` argument.
            mstore(0x00, 0x205c2878000000000000000000000000) // `withdrawTo(address,uint256)`.
            if iszero(call(gas(), _ENTRYPOINT, 0, 0x10, 0x44, codesize(), 0x00)) {
                returndatacopy(mload(0x40), 0x00, returndatasize())
                revert(mload(0x40), returndatasize())
            }
            mstore(0x34, 0) // Restore the part of the free memory pointer that was overwritten.
        }
    }

Gas savings: 78 gas units per call when _ENTRYPOINT is deployed prior to a BaseAccount.

Finding 3
File: ExecutionHelper.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ExecutionHelper.sol#L71-L119
Do not cache executions.length, move Execution calldata exec outside of the for loop for more efficient stack operations.
    /// @notice Executes a batch of calls.
    /// @param executions An array of Execution structs each containing target, value, and calldata.
    /// @return result An array of results from each executed call.
    function _executeBatch(Execution[] calldata executions) internal returns (bytes[] memory result) {
        result = new bytes[](executions.length);

        Execution calldata exec;
        for (uint256 i; i < executions.length; i++) {
            exec = executions[i];
            result[i] = _execute(exec.target, exec.value, exec.callData);
        }
    }

    /// @notice Tries to execute a batch of calls and emits an event for each unsuccessful call.
    /// @param executions An array of Execution structs.
    /// @return result An array of results, with unsuccessful calls marked by events.
    function _tryExecuteBatch(Execution[] calldata executions) internal returns (bytes[] memory result) {
        result = new bytes[](executions.length);

        Execution calldata exec;
        for (uint256 i; i < executions.length; i++) {
            exec = executions[i];
            bool success;
            (success, result[i]) = _tryExecute(exec.target, exec.value, exec.callData);
            if (!success) emit TryExecuteUnsuccessful(i, result[i]);
        }
    }

Gas savings: 6 gas units per call plus 2 gas units per item in executions.

Finding 4
File: Storage.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/Storage.sol#L28-L29
Consider a zero mask on the upper 128 bits of the _STORAGE_LOCATION constant to reduce the deployed bytecode size by ~400 bytes. This may yield runtime gas savings in a future EVM environment where Verkle trees are utilized and the amount of contract bytecode accessed is a factor in the overall gas cost of a transaction (see Vitalik notes on witness data).
    bytes32 private constant _STORAGE_LOCATION = 0x00000000000000000000000000000000e7cbd8cb82505941fba30d1eb5b82f00;

Immediate gas savings in deployment costs, future gas savings in Verkle tree execution could be several hundreds of gas units per call.

Finding 5
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L39-L44
Do not cache _getAccountStorage().executors to optimize stack operations by avoiding duplicating the storage pointer.
    /// @notice Ensures the message sender is a registered executor module.
    modifier onlyExecutorModule() virtual {
        if (!_getAccountStorage().executors.contains(msg.sender)) revert InvalidModule(msg.sender);
        _;
    }

Gas savings: 8 gas units per call to functions using onlyExecutorModule.

Finding 6
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L46-L51
Do not cache _getAccountStorage().validators to optimize stack operations by avoiding duplicating the storage pointer.
    /// @notice Ensures the specified address is a registered validator module.
    modifier onlyValidatorModule(address validator) virtual {
        if (!_getAccountStorage().validators.contains(validator)) revert InvalidModule(validator);
        _;
    }

Gas savings: 8 gas units per call to functions using onlyValidatorModule.

Finding 7
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L60-L111
The generic fallback function will either return or revert directly from the assembly blocks, as such calldata can be copied without concern for the free memory pointer or other data that currently exists in memory. Simplify memory allocation by storing calldata starting at zero and return data at zero for the revert or return.
        if (calltype == CALLTYPE_STATIC) {
            assembly {
                calldatacopy(0, 0, calldatasize())

                // The msg.sender address is shifted to the left by 12 bytes to remove the padding
                // Then the address without padding is stored right after the calldata
                mstore(calldatasize(), shl(96, caller()))

                if iszero(staticcall(gas(), handler, 0, add(calldatasize(), 20), 0, 0)) {
                    returndatacopy(0, 0, returndatasize())
                    revert(0, returndatasize())
                }
                returndatacopy(0, 0, returndatasize())
                return(0, returndatasize())
            }
        }
        if (calltype == CALLTYPE_SINGLE) {
            assembly {
                calldatacopy(0, 0, calldatasize())

                // The msg.sender address is shifted to the left by 12 bytes to remove the padding
                // Then the address without padding is stored right after the calldata
                mstore(calldatasize(), shl(96, caller()))

                if iszero(call(gas(), handler, 0, 0, add(calldatasize(), 20), 0, 0)) {
                    returndatacopy(0, 0, returndatasize())
                    revert(0, returndatasize())
                }
                returndatacopy(0, 0, returndatasize())
                return(0, returndatasize())
            }
        }

Gas savings: 115 gas units on fallback.

Finding 8
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L168-L169
Do not cache _getAccountStorage().validators to optimize stack operations by avoiding duplicating the storage pointer.
        _getAccountStorage().validators.push(validator);

Gas savings: ~6 gas units on adding a validator.

Finding 9
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L173-L189
Cache the _getAccountStorage().validators storage pointer to avoid multiple lookups. Revise the determination of whether the validator being removed is the last validator by checking if the previous item in the linked list is the sentinel address first. If it is not the sentinel address then there is at least one other item in the list, if it is the sentinel address then check if the item being removed's linked item is the sentinel address. If the item being removed's linked item is the sentinel address then it is the last item in the list and removal should revert, otherwise allow removal.
    /// @dev Uninstalls a validator module /!\ ensuring the account retains at least one validator.
    /// @param validator The address of the validator to be uninstalled.
    /// @param data De-initialization data to configure the validator upon uninstallation.
    function _uninstallValidator(address validator, bytes calldata data) internal virtual {
        SentinelListLib.SentinelList storage validators = _getAccountStorage().validators;

        (address prev, bytes memory disableModuleData) = abi.decode(data, (address, bytes));

        // Check if the account has at least one validator installed before proceeding
        // Having at least one validator is a requirement for the account to function properly
        if (prev == address(0x01)) {
            if(validators.getNext(validator) == address(0x01)) {
                revert CannotRemoveLastValidator();
            }
        }

        validators.pop(prev, validator);

        IValidator(validator).onUninstall(disableModuleData);
    }

Gas savings: 3,504 gas units on successful removal
NOTE: Test test_UninstallModule_Success was not actually removing mockValidator since it was not installed and prev was being passed as address(0) because findPrevious does not fall back to the sentinel address. The below revision ensures that mockValidator is installed to validate gas savings on removal.
    function test_UninstallModule_Success() public {
        MockValidator newMockValidator = new MockValidator();

        bytes memory installCallData = abi.encodeWithSelector(
            IModuleManager.installModule.selector, MODULE_TYPE_VALIDATOR, address(newMockValidator), ""
        );
        installModule(installCallData, MODULE_TYPE_VALIDATOR, address(newMockValidator), EXECTYPE_DEFAULT);

        installCallData = abi.encodeWithSelector(
            IModuleManager.installModule.selector, MODULE_TYPE_VALIDATOR, address(mockValidator), ""
        );
        installModule(installCallData, MODULE_TYPE_VALIDATOR, address(mockValidator), EXECTYPE_DEFAULT);

        assertTrue(
            BOB_ACCOUNT.isModuleInstalled(MODULE_TYPE_VALIDATOR, address(newMockValidator), ""),
            "New Mock Module should be installed initially"
        );

        assertTrue(
            BOB_ACCOUNT.isModuleInstalled(MODULE_TYPE_VALIDATOR, address(mockValidator), ""),
            "Mock Module should be installed initially"
        );

        (address[] memory array,) = BOB_ACCOUNT.getValidatorsPaginated(address(0x1), 100);
        address remove = address(mockValidator);
        address prev = SentinelListHelper.findPrevious(array, remove);
        // If return is address(0), prev should be the sentinel address
        if (prev == address(0)) prev = address(0x01);

        bytes memory callData = abi.encodeWithSelector(
            IModuleManager.uninstallModule.selector,
            MODULE_TYPE_VALIDATOR,
            address(mockValidator),
            // uninstallData needs to provide prev module address with data to uninstall
            abi.encode(prev, "")
        );

        uninstallModule(callData, EXECTYPE_DEFAULT);

        assertFalse(
            BOB_ACCOUNT.isModuleInstalled(MODULE_TYPE_VALIDATOR, address(mockValidator), ""),
            "Module should not be installed anymore"
        );
        assertTrue(
            BOB_ACCOUNT.isModuleInstalled(MODULE_TYPE_VALIDATOR, address(newMockValidator), ""),
            "Module should be installed"
        );
    }

Finding 10
File: ModuleManager.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/base/ModuleManager.sol#L200-L201
Do not cache _getAccountStorage().executors to optimize stack operations by avoiding duplicating the storage pointer.
        _getAccountStorage().executors.push(executor);

Gas savings: ~6 gas units on adding a executor.

Finding 11
File: AccountFactory.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/factory/AccountFactory.sol#L42-L73
The salt value can be more efficiently hashed using assembly to calldatacopy all data after the function selector.
    /// @notice Creates a new Nexus with a specific validator and initialization data.
    /// @param validationModule The address of the validation module to configure the new Nexus.
    /// @param moduleInstallData Initialization data for configuring the validation module.
    /// @param index An identifier used to generate a unique deployment address.
    /// @return The address of the newly created Nexus.
    /// @dev Deploys a new Nexus using a deterministic address based on the input parameters.
    function createAccount(address validationModule, bytes calldata moduleInstallData, uint256 index) external payable returns (address payable) {
        bytes32 salt;

        assembly {
            let ptr := mload(0x40)
            let calldataLength := sub(calldatasize(), 0x04)
            mstore(0x40, add(ptr, calldataLength))
            calldatacopy(ptr, 0x04, calldataLength)
            salt := keccak256(ptr, calldataLength)
        }

        (bool alreadyDeployed, address account) = LibClone.createDeterministicERC1967(msg.value, ACCOUNT_IMPLEMENTATION, salt);

        if (!alreadyDeployed) {
            INexus(account).initialize(validationModule, moduleInstallData);
            emit AccountCreated(account, validationModule, moduleInstallData);
        }
        return payable(account);
    }

    /// @notice Computes the expected address of a Nexus contract using the factory's deterministic deployment algorithm.
    /// @param validationModule The address of the module to be used in the Nexus.
    /// @param moduleInstallData The initialization data for the module.
    /// @param index The index or type of the module, used for generating the deployment address.
    /// @return expectedAddress The expected address at which the Nexus contract will be deployed if the provided parameters are used.
    /// @dev This function allows for address prediction without deploying the Nexus.
    function getCounterFactualAddress(
        address validationModule,
        bytes calldata moduleInstallData,
        uint256 index
    ) external view returns (address payable expectedAddress) {
        bytes32 salt;

        assembly {
            let ptr := mload(0x40)
            let calldataLength := sub(calldatasize(), 0x04)
            mstore(0x40, add(ptr, calldataLength))
            calldatacopy(ptr, 0x04, calldataLength)
            salt := keccak256(ptr, calldataLength)
        }

        expectedAddress = payable(LibClone.predictDeterministicAddressERC1967(ACCOUNT_IMPLEMENTATION, salt, address(this)));
    }

Gas savings: ~100 gas units on account creation.

Finding 12
File: K1Validator.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/modules/validators/K1Validator.sol#L55-L62
Cache the smartAccountOwners[userOp.sender] value to avoid duplicate hashing of the storage slot if the first signature validation is unsuccessful. Return early if signature is valid and leave a default return of failed at the end of the function for more efficient stack utilization.
    function validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash) external view returns (uint256) {
        address owner = smartAccountOwners[userOp.sender];
        if(owner.isValidSignatureNow(ECDSA.toEthSignedMessageHash(userOpHash), userOp.signature)) {
            return VALIDATION_SUCCESS;
        }
        if (owner.isValidSignatureNow(userOpHash, userOp.signature)) {
            return VALIDATION_SUCCESS;
        }
        return VALIDATION_FAILED;
    }

Finding 13
File: Nexus.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/Nexus.sol#L58-L75
Utilize a named return value for the validateUserOp return.
    function validateUserOp(
        PackedUserOperation calldata userOp,
        bytes32 userOpHash,
        uint256 missingAccountFunds
    ) external virtual payPrefund(missingAccountFunds) onlyEntryPoint returns (uint256 validationData) {
        address validator;
        uint256 nonce = userOp.nonce;
        assembly {
            validator := shr(96, nonce)
        }
        // Check if validator is not enabled. If not, return VALIDATION_FAILED.

        if (!_isValidatorInstalled(validator)) return VALIDATION_FAILED;

        // bubble up the return value of the validator module
        validationData = IValidator(validator).validateUserOp(userOp, userOpHash);
    }

Gas savings: 11 gas units per call to validateUserOp.

Finding 14
File: Nexus.sol
https://github.com/bcnmy/nexus/blob/2d7a72a3f0338e047ad619d777ee069eb9b7a53e/contracts/Nexus.sol#L245-L258
Join the callType and execType evaluations into a single return statement so that short-circuiting may be applied to evaluations. Consider the ordering within callType and execType based on expected usage.
    /// @notice Determines if a specific execution mode is supported.
    /// @param mode The execution mode to evaluate.
    /// @return isSupported True if the execution mode is supported, false otherwise.
    function supportsExecutionMode(ExecutionMode mode) external view virtual returns (bool isSupported) {
        (CallType callType, ExecType execType, , ) = mode.decode();

        // Return true if both the call type and execution type are supported.
        return (callType == CALLTYPE_BATCH || callType == CALLTYPE_SINGLE)
            && (execType == EXECTYPE_DEFAULT || execType == EXECTYPE_TRY);
    }

Gas savings: ~25 gas units.
Any References?
No response
Code of Conduct

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

Apologies, finding 2 should be:
function() internal immutable _addDeposit;
function(address,uint256) internal immutable _withdrawDepositTo;

on finding 2
function() private immutable _addDeposit;
compiler complains with Invalid visibility, can only be "external" or "internal".

It is also safe to assume entrypoint would always be deployed prior to BaseAccount.

If it's safe to assume entrypoint is deployed, then you don't need a version of the functions with the entrypoint check ... which is what was being done with mul(extcodesize(_ENTRYPOINT)

on finding 4 if we go ahead we would lose relation to keccak256(abi.encode(uint256(keccak256(bytes("biconomy.storage.Nexus"))) - 1)) & ~bytes32(uint256(0xff))
also, if the more zeros the better then to what extend I can add more zeros in below? 0x00000000000000000000000000000000e7cbd8cb82505941fba30d1eb5b82f00

given your current implementation, you could probably get away with all zeroes since the only contract that uses it is ModuleManager and it doesn't have any storage slots defined. Safe is a base slot where you cannot reasonably expect to get there from contract storage slot allocations

on finding 2
function() private immutable _addDeposit;
compiler complains with Invalid visibility, can only be "external" or "internal".

It is also safe to assume entrypoint would always be deployed prior to BaseAccount.

If it's safe to assume entrypoint is deployed, then you don't need a version of the functions with the entrypoint check, which is what was being done with mul(extcodesize(_ENTRYPOINT)

yes @pop-punk I am planning to keep only one version which does not do extcodesize.

on finding 4 if we go ahead we would lose relation to keccak256(abi.encode(uint256(keccak256(bytes("biconomy.storage.Nexus"))) - 1)) & ~bytes32(uint256(0xff))
also, if the more zeros the better then to what extend I can add more zeros in below? 0x00000000000000000000000000000000e7cbd8cb82505941fba30d1eb5b82f00

given your current implementation, you could probably get away with all zeroes since the only contract that uses it is ModuleManager and it doesn't have any storage slots defined. Safe is a base slot where you cannot reasonably expect to get there from contract storage slot allocations

hmm got it, I would prefer fairly unstructured storage. will leave this acknowledged for now and layer maybe change our storage slot and compare gas again through future benchmarks. cc @pop-punk

closing this a completed


Blender: Use new Extractor location

Brief description
Using new import source of Extractor in Blender.
Description
Blender extractors are using new location of Extractor plugin. PR is related to https://github.com/pypeclub/OpenPype/pull/3771 .
Testing notes:

[ ] all blender extractors should work

tried it, seems like extractor is starting and working normally.


Delaunay error.

no such module called Delaunay.
How to resolve this error?

You need to checkout with recursive submodules:
git clone --recurse-submodules https://github.com/sakrist/BezierPath.git
Delaunay is submodule repository and it's essential for triangulation in this sample. You can find it in my repositories.


Fix for the fp16 related XLA unit test failures.

This commit builds upon the work that Sumesh has done in PR 447, to fix the incorrect code generation for the atomic CAS loop, in the case where the element type is < 32bits.
The main change in this commit over what was already tried out in PR 447 is to use the correct address space, when the casting the value for "cas_new_output_address" from i64 to half*.
@sumesh13 @whchung , please review

grcpio install error strikes again ... (cause of failure for rocm-xla build)
will tell Jenkins to retest once the rest of the runs finish up

Also can you try segment_reductions_ops_test as well ..

all three tests below pass with this fix
//tensorflow/compiler/tests:scatter_nd_op_test_gpu
//tensorflow/compiler/tests:segment_reduction_ops_test_gpu
//tensorflow/compiler/tests:xla_ops_test_gpu

please refer to my comments earlier. some lines aren't necessary.

got it..waiting for rocm, rocm-v2 to finish before I push out the change.

@sunway513 / @deven-amd / @jeffdaily we'll likely need to address the following issues on rocm-v2
### HCC STATUS_CHECK Error: HSA_STATUS_ERROR_OUT_OF_RESOURCES (0x1008) at file:mcwamp_hsa.cpp line:1220

in the weekly merge next week.

pushing out the new commit, since rocm-v2 failed too :(

rocm CI run hit the grpcio install error
rocm-v2 CI run had only one error
//tensorflow/tools/compatibility:test_file_v2_0                          FAILED in 5 out of 5 in 20.4s

looking into the cause of failure, and whether it is related to this PR

I am unable to reproduce the lone failure locally...hoping it is just a hiccup (also no change in this PR can be the cause of it)
I will be a pushing out a new commit soon, hoping the CI runs clean on it

@deven-amd //tensorflow/tools/compatibility:test_file_v2_0 is still failing. do you think we go ahead and take this PR?

@whchung not yet.  the same test failed again, so can no longer discount it :(
question now is whether this is a pre-existing failure or a regression being caused by something in this PR. (I still cannot reproduce it locally...tried again today)
I am about to submit another PR (for removing the extra parens and dim3 calls from GpuLaunchKernel args). Lets see the rocm-v2 result for that PR. If the same test fails there too, then we know this is failure that somehow made it past our CI checks. Else it is something in this PR causing the failure.

@whchung you can take this PR.
The rocm-v2 CI run in PR #465 also failed with the same error...so it seems to be a pre-existing failure.


Fix compiler errors

Moves event header files to include folder an adds missing include to fix compilation errors.

sfulham, if you don't include Event.h in EventHandler.h it doesn't compile, because Event is referenced on line 21 as Event&.
But this pull request wasn't necessery as I did this in my pull request.

Oh yeah, didn't see that, sorry.

You will need to rebase though


Mesh.vertices is too small.

Mesh.vertices is too small. The supplied vertex array has less vertices than are referenced by the triangles array.
UnityEngine.Mesh:SetVertices(List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:687)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)

Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
UnityEngine.Mesh:SetUVs(Int32, List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:688)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)

Mesh.colors is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
UnityEngine.Mesh:SetColors(List`1)
GameCanvas.Engine.Graphic:convertToMesh(Mesh&, TextGenerator&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:690)
GameCanvas.Engine.Graphic:drawStringInternal(String&, Int32&, Int32&, TextAnchor) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:709)
GameCanvas.Engine.Graphic:DrawRightString(String&, Int32&, Int32&) (at Assets/Plugins/GameCanvas/Scripts/Engine/Graphic.cs:273)
GameCanvas.Proxy:DrawRightString(String, Int32, Int32)
Game:DrawGame() (at Assets/Game.cs:50)
GameCanvas.BehaviourBase:Update() (at Assets/Plugins/GameCanvas/Scripts/BehaviourBase.cs:95)

v.2.0.1 にて修正しました


attachedcluster: init webhook

What type of PR is this?
/kind feature
What this PR does / why we need it:
add validation for attachedcluster
part of #336
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

add validation for attachedcluster

/cherry-pick release-0.4


Poor user experience with scrolling dropdowns on mobile

The scrolling area is way too small on mobile. You can only see three items regardless of how much screen space is available. With only three items showing, it is hard to scroll with your finger.

You can change this if you prefer  something else, but 3 is the max safe size for mobile.
@selectionMobileMaxItems: 3;
https://github.com/Semantic-Org/Semantic-UI/blob/master/src/themes/default/modules/dropdown.variables#L176


String enum in nested fields

I have proto which contains map with other proto:
message Meeting{
    enum MeetingState {
        Uploading = 0;
        Processing = 1;
        Error = 2;
        Done = 3;
    }
MeetingState state = 3;
`map<string, Participant> participants = 5;`
}

and participant has
message Participant{
enum ParticipantRole {
        Viewer = 0;
        Editor = 1;
        Owner = 2;
    }
ParticipantRole role = 3;
}

However when called:
const tmp = Meeting.toJson(this, { enumAsInteger: false, emitDefaultValues: false, });
### role == 0 not 'Viewer'
Obviously setting work fine for root level, so meetingState is correctly set to 'Uploading'

I would expect the following JSON for the following message:
const m = Meeting.create({
  state: MeetingState.Done
})

Meeting.toJsonString() // '{"state": "Done"}'

Can you provide some context? It's not clear to me whether you are reporting a bug or requesting a feature.

@timostamm that is correct asumption state is 'Done' but nested map should be
{
"state":"Done",
  "participants":{
    "documentId::{
      "role":"Viewer"
    }
  }
}

However it is:
{
"state":"Done",
  "participants":{
    "documentId::{
      "role":0
    }
  }
}

Thank you for the bug report, @tomas-carv-com. Unfortunately, the proto source you gave doesn't compile, and you didn't provide a runnable piece of code using it. That makes it difficult to reproduce what you are actually doing.
I suppose you have a map field, and map value is a message with an enum field:
// m.proto
syntax="proto3";
enum E {
  E_UNSPECIFIED=0;
  E_A=1;
  E_B=2;
}
message M {
  E e = 1;
  map<string,M> map = 2;
}

And you somehow create an instance of it:
// index.ts
import {M, E} from "./m";

const m = M.create({
  map: {
    "key": {
      e: E.E_A,
     }
  }
})

console.log(
  M.toJsonString(m)
)

I'm still seeing the expected output here:
$ npx tsx index.ts
{"map":{"key":{"e":"E_A"}}}

Closing this. If you are certain you have found a bug, please reopen! But please follow up with a reproducible example.

I am not sure what are you talking about. I gave the proto files above, those are just partial messages exactly talking only about enums.
meeting.proto file can be like here:
syntax = "proto3";
import "participant.proto";
message Meeting{
    enum MeetingState {
        Uploading = 0;
        Processing = 1;
        Error = 2;
        Done = 3;
    }
    MeetingState state = 1;
    map<string, Participant> participants = 2;
    }

with participant.proto
syntax = "proto3";

message Participant{
    enum ParticipantRole {
        Viewer = 0;
        Editor = 1;
        Owner = 2;
    }
     string participantId = 1;
    ParticipantRole role = 2;
    optional string name = 3;
    }

And I used your example:
import { Meeting, Meeting_MeetingState } from "./proto/meeting_pb"
import { Participant_ParticipantRole } from "./proto/participant_pb"

const m = Meeting.create({
    state: Meeting_MeetingState.Done,
    participants: {
        "1": { name: "John", role: Participant_ParticipantRole.Viewer, participantId: "1" },
    }
})

console.log(
    Meeting.toJsonString(m)
)

which resulted in
{"state":"Done","participants":{"1":{"participantId":"1","name":"John"}}}
This one even completely omitting nested role for some reason.

I'm asking for a minimal, reproducible example as described here. Will make it much easier to identify a problem :)

which resulted in
{"state":"Done","participants":{"1":{"participantId":"1","name":"John"}}}
This one even completely omitting nested role for some reason.

This is not very intuitive when starting with protobuf, but expected. Enum zero values are the default, you can learn more about them here.

Ah yeah make sense. Ok let me run whole suite of my tests, and will get back to you tomorrow if I am still facing issues. THX for quick reply and understanding


STM32WL : NUCLEO_WL55JC support

Hi
After https://github.com/ARMmbed/mbed-os/pull/14249
merge in mbed-os
NUCLEO_WL55JC is now LoRa capable by default.
Thx
@ludoch-stm
@ARMmbed/team-st-mcd
@MarceloSalazar

Hi
now that https://github.com/ARMmbed/mbed-os/pull/14249 is merged,
could we merge this one ?
Thx
@paul-szczepanek-arm


docs: improve documents for beginners

Hello Docker team,
I'm a beginner who is exploring Docker. I've read the documents and followed the guidelines.
In get-started/07_multi_container.md, there's a point that I think we should improve for other beginners who are like me at this time.
There's no description shows how to exit CLI after using SHOW DATABASES; command:

I did this way. I think that there are some beginners who haven't had MySQL knowledge like me at this time.

Now, I can handle it. Just need to use the command EXIT before starting a new container. But this interrupted my self-training. Because the target of documents is for everyone. I think we should add 1 more guide.
Could you consider this? BTW, this is awesome. Thanks for your contributions.
Best regards,
Anh Tran

Thanks for sharing the issue. The exit command is included in the topic now.


Add What’s in the Task? documentation article

@majetideepak Deepak, thank you for reviewing. Updated.

Thanks Masha for putting this together. The explanation really helps.

@aditi-pandit Aditi, thank you for your feedback. Updated.


gis.utah.gov is using lozad

we switched our index and /data page from blazy to lozad

@steveoh thanks for mentioning, really glad that Lozad is a making a mark at such prestigious places :1st_place_medal:


annotations: Expands list of health-probe related ingress annotations

Checklist

[X] The title of the PR is clear and informative
[X] If applicable, the changes made in the PR have proper test coverage
[X] Issues addressed by the PR are mentioned in the description followed by Fixes.

Description
It expands list of recognized ingress annotations with following additions:

appgw.ingress.kubernetes.io/health-probe-hostname
appgw.ingress.kubernetes.io/health-probe-port
appgw.ingress.kubernetes.io/health-probe-path
Those annotations allow user override health probe settings with values from annotations.

Fixes
https://github.com/Azure/application-gateway-kubernetes-ingress/issues/1048

@polasekr can you also add an annotation for supporting allowed status code ?

As suggested I added annotation health-probe-status-codes plus 3 others

health-probe-interval
health-probe-timeout
health-probe-unhealthy-treshold

@polasekr PR looks good.
Added one comment to correct the doc.

@polasekr You can try your changes tomorrow using nightly build.

Hi,
When can we expect a new version to be released incorporating this PR?
Thank you

Also waiting for these features to be available. Cannot utilize App Gateway until then.

Also waiting for these features to be available. Cannot utilize App Gateway until then.

Hi @andreaslarfors, we are using the nightly build until the next release is cut.
@akshaysngupta this PR was merged over two months ago. A new versioned release would be most helpful.

Hi @andreaslarfors, we are using the nightly build until the next release is cut.
@akshaysngupta this PR was merged over two months ago. A new versioned release would be most helpful.

Has this been put in a release?


[Fix #10766] Use the path given by --cache-root to be the parent for  rubocop_cache dir like other ways to specify it

Fixes #10766.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[x] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Thanks!


Version bump to 0.15.2 node_exporter

Tested to be working correctly with
the prometheus 2.x series.
Just a simple version bump if you still care to update the repository.
It shows up in google search when one searches for "node exporter ansible playbook"
and it works great.

thanks!


Enable github pages for this repository

The rendered version of the specification is dumped into the gh-pages branch.

[ ] Enable GitHub Pages.
[ ] Create an empty .nojekyll file in the root of the gh-pages branch.

GitHub Pages

https://ethereum.github.io/eth1.0-specs/

Create an empty .nojekyll file in the root of the gh-pages branch.

https://github.com/ethereum/eth1.0-specs/blob/gh-pages/.nojekyll
@SamWilsn Let me know if it's done or anything is missed.

Looks perfect.


Review design of Ockam.Services.API.Endpoint.handle_request/2 and ancestors

Current behavior
The current design of Ockam.Services.API.Endpoint has some prior design assumptions that have been questioned during recent code review. Further discussion of new designs was deferred.
https://github.com/build-trust/ockam/pull/4660#discussion_r1163309703
Desired behavior
Review the implicated code together and consider whether any improvements or desirable refactors are possible, then file issues with designs and prioritize.

When designing an "API request handler" approach, it would make sense to separate the runtime of the handler execution from the handler function implementation. This allows to define a handler as a function from Request to Response and manage the actual execution in the endpoint level.
However this requires some additional configuration format for the endpoint to instruct it to run some handlers in parallel, which can be implemented differently, for example we might want to run them all synchronized, or run some of them synchronized, or to run all in parallel, or to have some pool of runners to run in parallel.
Relatively simple and a flexible approach would be to have a pool of runners,  if the pool size is 1 - all requests are synchronized if the pool size is -> ∞ then all handlers run in parallel.
The pool size may be configured per handler or per endpoint, which is TBD.


Fix invalid reference for deleted prop in the signal handler - #210

Fixes https://github.com/cferdinandi/reef/issues/210

Thanks for this! Merged and live. Just updated the version number and pushed to NPM as well.


Update CDX parser to generate GraphQL nodes

Rewrote cdx parser to work with new ontology (#584):

Tests have been adapted
Except Test_addEdgesRecursive which seems to me is not relevant anymore. Let me know if you see it differently.
I tried to carry on some of the improvements from #390
More improvements and usage of helpers functions can be done later on

Thanks @dejanb ! We'll get to this sometime this week!

looking good, just some minor comments!

Thanks for the review. I tried to fix all the remarks. I thought to deal with artifacts and isOccurence in a separate PR. Let me know if that's OK or you think we should include it in this one.


NETOBSERV-1383: do not turn off conversion-gen

conversion-gen was turned off on some fields because it didn't work well with some alpha1 missing fields.
But the problem is that it's also turned off for beta1<->beta2 conversions, which we don't want.
This is turning them back on, however, adding the missing fields in alpha1 (which is deprecated) so that it converts without trouble
Description

Dependencies

n/a
Checklist
If you are not familiar with our processes or don't know what to answer in the list below, let us know in a comment: the maintainers will take care of that.

[x] Is this PR backed with a JIRA ticket? If so, make sure it is written as a title prefix (in general, PRs affecting the NetObserv/Network Observability product should be backed with a JIRA ticket - especially if they bring user facing changes).
[ ] Does this PR require product documentation?

[ ] If so, make sure the JIRA epic is labelled with "documentation" and provides a description relevant for doc writers, such as use cases or scenarios. Any required step to activate or configure the feature should be documented there, such as new CRD knobs.

[ ] Does this PR require a product release notes entry?

[ ] If so, fill in "Release Note Text" in the JIRA.

[ ] Is there anything else the QE team should know before testing? E.g: configuration changes, environment setup, etc.

[ ] If so, make sure it is described in the JIRA ticket.

QE requirements (check 1 from the list):

[x] Standard QE validation, with pre-merge tests unless stated otherwise.
[ ] Regression tests only (e.g. refactoring with no user-facing change).
[ ] No QE (e.g. trivial change with high reviewer's confidence, or per agreement with the QE team).

/ok-to-test

/label qe-approved

/lgtm
its expected the older version won't match new version so at somepoint we probably need to findout what is the best practice to do this instead of adding new fields to older version but not urgent

/approve


Allow rename() on /etc/resolv.conf & /etc/hosts

Description
This is a feature request to allow rename() to work on /etc/resolv.conf & /etc/hosts. Currently, adding a new file to /etc, writing to /etc/resolv.conf & /etc/hosts work, but renaming these two files fails.
Steps to reproduce the issue:

Run -it a new container for a typical Linux distro, e.g. Fedora.
At the shell, issue "mv /etc/hosts /etc/hosts.backup"

Describe the results you received:
An error message appears mv: cannot move '/etc/hosts' to '/etc/hosts.backup': Device or resource busy. strace also indicates that the system call rename() fails.
Describe the results you expected:
rename() on these special files to work. If writing to them and making new files in /etc both work, semantically, it's weird that renaming doesn't work.
Additional information you deem important (e.g. issue happens only occasionally):
The use case is that a third-party app I'm trying to run needs to modify /etc/resolv.conf and tries to backup the original version first by renaming it.
Output of docker version:
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:
 OS/Arch:      linux/amd64

Output of docker info:
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 7
Server Version: 1.12.3
Storage Driver: devicemapper
 Pool Name: docker-253:0-33587401-pool
 Pool Blocksize: 65.54 kB
 Base Device Size: 107.4 GB
 Backing Filesystem: ext4
 Data file: /dev/loop0
 Metadata file: /dev/loop1
 Data Space Used: 2.561 GB
 Data Space Total: 107.4 GB
 Data Space Available: 104.8 GB
 Metadata Space Used: 2.154 MB
 Metadata Space Total: 2.147 GB
 Metadata Space Available: 2.145 GB
 Thin Pool Minimum Free Space: 10.74 GB
 Udev Sync Supported: true
 Deferred Removal Enabled: false
 Deferred Deletion Enabled: false
 Deferred Deleted Device Count: 0
 Data loop file: /var/lib/docker/devicemapper/devicemapper/data
 WARNING: Usage of loopback devices is strongly discouraged for production use. Use `--storage-opt dm.thinpooldev` to specify a custom block storage device.
 Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata
 Library Version: 1.02.93 (2015-01-30)
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: overlay bridge null host
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: seccomp
Kernel Version: 4.4.14-200.fc22.x86_64
Operating System: Fedora 22 (Twenty Two)
OSType: linux
Architecture: x86_64
CPUs: 8
Total Memory: 31.35 GiB
Name: smoothie
ID: XREU:DUUM:7KRY:NRV5:ZHMC:QGPF:JDJO:BJCU:JICF:PGP7:DTUR:I7KA
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Insecure Registries:
 <IP_ADDRESS>/8

Additional environment details (AWS, VirtualBox, physical, etc.):

This is very difficult, as bind mounting a single file bind mounts the inode, not the name. You can update the file by modifiying it in place, but that is very racy. We could have to bind the new version over the top of the old one in the container, which would leak space for all the old versions. So there does not seem to be a satisfactory way of doing this that anyone has come up with yet.


Coordinates are wrong

When you create a waypoint the coordinates are wrong and do not match the location on the map. I have compared this with several other maps.

Cannot reproduce. Do you have an example?


[type]$x  and $x -as [type] aren't identical

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
There are lots of different issues around date formats, and it's well understood that

Some date format needs to be picked as the "invariant" one . Because much of IT is US-based, US format is used for this
Local customs for how dates are written vary.
As a result one needs to understand whether translation happens between text and date objects (and vice versa) is done using local or invariant format .

Some oddness may be down to .NET but the following seem to be PowerShell quirks which make it harder to understand which way the translation occurs. To see this you need to ensure you're not on US format
> Get-Culture

LCID             Name             DisplayName
----             ----             -----------
2057             en-GB            English (United Kingdom)

> [datetime]::now -as [String]
10/12/2021 15:18:51

> [string][datetime]::now
12/10/2021 15:18:17

-as type converts using invariant.
[type] converts as local.
It works the other way
> ([string][datetime]::now) -as [datetime]

12 October 2021 15:21:14

>[datetime]([string][datetime]::now)
10 December 2021 15:33:40

> $x =  [datetime]::now
> "It's " + $x
It's 12/10/2021 15:36:50

> "It's " + $x.ToString()
It's 10/12/2021 15:36:50

Yes, I know that there are loads of things depending on the current behaviour so making things consistent would be a massive breaking change. But I'd love someone who knows to explain how we ended up in this mess.
Expected behavior
$x -as [string] -eq [string]$x
true

Actual behavior
$x -as [string] -eq [string]$x

Returns false when $x is a date time object and the culture is not US.

Error details
No response
Environment data
Name                           Value
----                           -----
PSVersion                      7.2.0
PSEdition                      Core
GitCommitId                    7.2.0
OS                             Microsoft Windows 10.0.19042
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0ΓÇª}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

It's the same on PowerShell 5.1

Visuals
No response

But I'd love someone who knows to explain how we ended up in this mess.

So the big difference is that -as [string] is compiled as:
TypeOps.AsOperator(DateTime.Now, Fake.Const<Type>(typeof(string)));

and [string][datetime]::Now is compiled as:
Fake.Dynamic<Func<CallSite, DateTime, string>>(PSConvertBinder.Get(typeof(string)))(DateTime.Now);

Now both AsOperator and PSConvertBinder end up calling LanguagePrimtivies.FigureConversion, they both receive the same IConversionData and invoke it. The difference is the IFormatProvider specified. -as will use NumberFormatInfo.InvariantInfo and an explicit conversion will specify null.
Now why is it different? 🤷 probably an oversight. Would be easy to make. Ideally they'd both just call the binder and the binder would just have an option for "defaultOnError" or something like that.


Daily Feed is sending the wrong day to trade bars, causing factor file to factor incorrectly

The the daily file has (please see bold below):
20151231 00:00,487500,492800,485600,485700,12461
20160104 00:00,480200,481100,464300,471800,227296
20160105 00:00,1234300,1262500,1223100,1258400,22306
20160107 00:00,1163800,1197400,1149300,1149500,25666
AND the factor file has
20151113,2.551261,1
20160104,2.569452,1
20160328,0.969969,1
WHEN i use my start of 20160105
SetStartDate(new DateTime(2016, 01, 05););
THEN my first tradbar has a Time of 20160104 with a value of ~47 (consider the factor is using 0.969969 and should be using 0.569452 with a value of ~120.
If I change my start date to 20160104 (or before) the trade bar does us the factor or 0.569452 with a value of ~120.
In other words, if my start date is the same day as a new factor, the trade bar values are wrong; otherwise the are correct.

Hey @jasonrock11! Sorry for the late response.
Consider the following algorithm:
public override void Initialize()
{
    SetStartDate(2016, 06, 17);
    SetEndDate(2016, 06, 18);
    AddEquity("SPY", Resolution.Daily);
}

20160317 | 0.929322 | 1 | 203.4
20160616 | 0.934114 | 1 | 207.75
20160915 | 0.93898 | 1 | 213.14

The first daily data point starts at 16 and ends on the 17 and by design, it uses the 20160616 | 0.934114 factor file entry see https://github.com/QuantConnect/Lean/blob/master/Common/Data/Auxiliary/FactorFile.cs#L124. Think there is no issue in master.
This might of been an issue that has already been fixed, closing


Fixed Searching feature on tracks page

@mariobehling Please review this PR at https://jainaman224.github.io/open-event-webapp/issue863/tracks.html regarding #863 .

Current coverage is 38.89% (diff: 100%)

Merging #867 into development will not change coverage

@@           development       #867   diff @@
=============================================
  Files                6          6
  Lines              815        815
  Methods             88         88
  Messages             0          0
  Branches           136        136
=============================================
  Hits               317        317
  Misses             498        498
  Partials             0          0

Powered by Codecov. Last update ed69a92...9e60d36

Well-done!