Handling responses with types dependent on status codes

I am making requests on a service that returns status code 200 and  a body containing json data on success, but returns status code 401 and a plain error message when unauthorised.
How should this be handled? The precise type of the AffjaxResponse can't really be determined until the status code is examined.

That's a bad API. If you request JSON response, then the error should be encoded in JSON.
That said, we have to deal with APIs. :smile:
For a short-term workaround, I'd suggest creating a UnknownFormat type which is basically just a String, which you can then de-serialize to JSON or interpret as text depending on the response code. I'll try to think of a better to handle this in the API (maybe by having such a type).

I'm just using Strings for now, and doing the deserialisation outside the
response. It works ok, but it is a shame to not be using the "baked in"
decoding.
On Mon, Jul 20, 2015 at 2:12 AM, John A. De Goes<EMAIL_ADDRESS>wrote:

That's a bad API. If you request JSON response, then the error should be
encoded in JSON.
That said, we have to deal with APIs. [image: :smile:]
For a short-term workaround, I'd suggest creating a UnknownFormat type
which is basically just a String, which you can then de-serialize to JSON
or interpret as text depending on the response code. I'll try to think of a
better to handle this in the API (maybe by having such a type).
—
Reply to this email directly or view it on GitHub
https://github.com/slamdata/purescript-affjax/issues/34#issuecomment-122676557
.

I think my problems belongs to this ticket.
Reddit API correctly returns 403 when my authentication header is missing or is wrong. How can this be handled with affjax? I want an obvious thing — to get status code as an Integer so I could pattern-match on it or check equality with it.

The status code is accessible via the status property of the response - although if the content-type of the response is typed differently than what was requested, then yes this ticket is relevant, as the request will fail entirely.
If this is the case, then the workaround is to expect an Foreign result, and then handle the parsing of the content yourself, choosing the appropriate parser for the status code returned.

I didn't elaborate.
I get an Error. When I use Aff.attempt, I get Left value with Error with a string inside, can I get status from there?

No you can't - that's what I meant by the "request failing entirely" (unless the string contains the error code or something like that and you parse it out of there, but that's not really the point!).

I have an edge case that might fit into this.  The API speaks Json but may return a 201 status with a Content-Length: 0 response header.  null is valid in JSON.parse, but undefined and '' are not.  At first glance this made sense.. no body was returned so it's not Json!  But null is valid Json.. and it might be a much cleaner way to encode this edge case.  Or maybe the response type should be Maybe Json?  Looking at the code a bit, I think I'll have the same issue using Foreign, because it uses JSONResponse as well, which is what causes it to run the response through parseJSON.. maybe it could convert empty strings to null and send everything else through parseJSON.
Or maybe I should just be doing it all manually with String 😅

@spicydonuts I don't think we call parseJSON at all actually - it unsafeCoerces values in the Respondable instances for Foreign and Json, so I'm not too sure what's going on your case.

This case: https://github.com/slamdata/purescript-affjax/blob/master/src/Network/HTTP/Affjax.purs#L283

Well that's embarrassing :see_no_evil:

Haha, no worries.  I currently have a MaybeBody a newtype around Maybe a which still sets the JSON content type headers but uses StringResponse.  It returns Nothing if the Foreign handed to fromResponse is just an empty string.  It's one more failure case for the calling code to worry about, but it's easy to push Nothings back up into the failure path with a throwError.  I don't think it's ideal though.. not sure what would be better for the default json-like instances.

I'm not sure what the right answer is here either. I guess the question is: is it ever going to be useful to distinguish between an empty response and an actual null value for the response. I'd lean towards "probably not". Or it would be uncommon at least.
With that, perhaps we should add some handling for empty results in the JSONResponse case. For people who do need that distinction, it's still possible, since the String result type could be used and then the JSON parsing could be done "manually".

Null is not the same as an empty response. A REST API that is returning application/json for its content type but which has an empty body is broken. Different applications may want to pretend this makes sense, but probably in different ways. As per spec, a null value may not even occur at the top-level position, so returning null there would be broken in other ways.

That's true if you're coding exactly to the http spec, but if it doesn't affect the normal behavior at all it seems odd to have all the convenience break down because an api misbehaved slightly.
But that's a separate issue because the api isn't actually misbehaving.. it sends 200 and application/json OR 204 and no content-type and no body.  And Affjax doesn't use the response content-type when deciding whether to decode.. it uses the type built into the code, which does make sense, but it'd be nice if Maybe a was easier.  Also, the parsing error is a slightly confusing "unexpected token 'u'" (trying to parse undefined) instead of something like "you said there'd be a body and there wasn't" or "content-type didn't match", both of which should happen before unsuccessful json parsing if coding exactly to the spec is the goal.

The type "built into the code" should be what is returned by the API, as it sends the appropriate Accept header for that content type - so that the API ignores that also means it's wrong, strictly speaking.

There's a content-type for no body and the client should know in advance what the server will say, or no api should ever send differing response codes?

Accept doesn't control whether the server sends a body in the response.  It only indicates to the server what formats the client prefers to receive data if it does receive some.

Hi @garyb. I'm adding my comment to this thread because I believe it's relevant here.
I'm working with an API where the /register endpoint accepts a request body of Content-Type application/json and returns a 204 "No Content" status upon success (along with a zero length response), and upon failure a 4xx status and a { "error": "The foo provided is invalid" } response body. This behavior seems impossible to encode in Affjax. Is the endpoint violating the HTTP spec? What content types should it Accept?

I think if the response Content-Type is application/json then the 204 should probably also return {} rather than a zero-length response. I could be wrong though, in which case maybe we need to add a special case for zero-length JSON responses?
This behaviour is impossible for Affjax to deal with currently though, yeah - I'd suggest just using a string reponse type, and then switching on the status code to "manually" parseJson as necessary instead.

It's invalid to return {} with a 204:

The 204 response MUST NOT include a message-body, and thus is always
terminated by the first empty line after the header fields.

Why should the Content-Type of the request necessarily match the Content-Type of the response?

Ah right.

Why should the Content-Type of the request necessarily match the Content-Type of the response?

I was saying if the response Content-Type is application/json and it's empty I think that's probably incorrect - not the request. Even if it's not, this won't work out with affjax as it stands, as it will either fail due to the response Content-Type not being application/json or due to it not parsing "" for the Respondable instance for Json.

Ah, but what if the Content-Type of the 204 response is unspecified? It's not mandatory.
Moreover, what should the Accept header be set to in the request?

What I mean is, if you use a Respondable of type Json, it will fail unless Content-Type is application/json, etc. Hence why I suggest using a string and then decoding manually when the response is determined.

When I ran into this I ended up making a custom decoder around Maybe.  204s become Nothing.  It was kind of obnoxious to write though.  I'd rather be forced to deal with the Maybe all the time if it makes it easy to cover potential 204s.
Specifically,
type AffjaxResponse a =
  { status :: StatusCode
  , headers :: Array ResponseHeader
  , response :: a
  }

would become
type AffjaxResponse a =
  { status :: StatusCode
  , headers :: Array ResponseHeader
  , response :: Maybe a
  }

because it's always possible for a server to send an empty body.

This is no longer relevant now that there is not a Requestable or Respondable type, so I'm going to close the issue. Thanks!


Doesn't work

$ podman run -p 8000:8000 realworld-app
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 289, in ensure_connection
self.connect()
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 270, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 275, in get_new_connection
connection = self.Database.connect(**conn_params)
File "/usr/local/lib/python3.10/site-packages/psycopg2/init.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: could not translate host name "db" to address: Name or service not known
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/usr/local/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/usr/local/lib/python3.10/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 136, in inner_run
self.check_migrations()
File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 574, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "/usr/local/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in init
self.loader = MigrationLoader(self.connection)
File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in init
self.build_graph()
File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 81, in applied_migrations
if self.has_table():
File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 57, in has_table
with self.connection.cursor() as cursor:
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 330, in cursor
return self._cursor()
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 306, in _cursor
self.ensure_connection()
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 288, in ensure_connection
with self.wrap_database_errors:
File "/usr/local/lib/python3.10/site-packages/django/db/utils.py", line 91, in exit
raise dj_exc_value.with_traceback(traceback) from exc_value
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 289, in ensure_connection
self.connect()
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 270, in connect
self.connection = self.get_new_connection(conn_params)
File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/usr/local/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", line 275, in get_new_connection
connection = self.Database.connect(**conn_params)
File "/usr/local/lib/python3.10/site-packages/psycopg2/init.py", line 122, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: could not translate host name "db" to address: Name or service not known

This is an issue with database connection. This django application is configured to connect with postgres db through docker compose by cloning the project and running docker-compose up. If you want to modify this behaviour you can change the settings file to connect to your custom database and migrate the changes.


Translated Maccy to Dutch (nl)

I have translated Maccy to Dutch and will be maintaining it. Feel free to let me know of any errors!

Thank you!


[Dubbo-3625] Add constant 'MIN_PATH_ARRAY_LENGTH'

Fixes #3625
What is the purpose of the change
Remove magic number 5 in line 70 of org.apache.dubbo.configcenter.support.zookeeper.CacheListener#childEvent.
Brief changelog
Add constant 'MIN_PATH_ARRAY_LENGTH'
Verifying this change
XXXXX
Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Make sure there is a GITHUB_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GITHUB issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [Dubbo-XXX] Fix UnknownException when host config not exist #XXX. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn clean install -DskipTests=false & mvn clean test-compile failsafe:integration-test to make sure unit-test and integration-test pass.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #3680 into master will decrease coverage by 0.13%.
The diff coverage is 100%.

@@             Coverage Diff              @@
##             master    #3680      +/-   ##
============================================
- Coverage     63.44%   63.31%   -0.14%
  Complexity       71       71
============================================
  Files           703      703
  Lines         31000    31050      +50
  Branches       5024     5039      +15
============================================
- Hits          19669    19659      -10
- Misses         9066     9122      +56
- Partials       2265     2269       +4

Impacted Files
Coverage Δ
Complexity Δ

...dubbo/remoting/exchange/support/DefaultFuture.java
71.42% <100%> (-4.25%)
0 <0> (ø)

.../configcenter/support/zookeeper/CacheListener.java
63.15% <100%> (+0.99%)
0 <0> (ø)
:arrow_down:

.../apache/dubbo/remoting/transport/AbstractPeer.java
60.86% <0%> (-10.87%)
0% <0%> (ø)

...mmon/threadpool/support/AbortPolicyWithReport.java
83.33% <0%> (-5.56%)
0% <0%> (ø)

...ng/exchange/support/header/HeartbeatTimerTask.java
73.68% <0%> (-5.27%)
0% <0%> (ø)

...bo/rpc/cluster/support/FailbackClusterInvoker.java
67.21% <0%> (-3.28%)
0% <0%> (ø)

...a/org/apache/dubbo/registry/etcd/EtcdRegistry.java
0% <0%> (ø)
0% <0%> (ø)
:arrow_down:

...pache/dubbo/remoting/transport/AbstractServer.java
47.91% <0%> (+1.04%)
0% <0%> (ø)
:arrow_down:

...ache/dubbo/remoting/p2p/support/AbstractGroup.java
56.81% <0%> (+11.36%)
0% <0%> (ø)
:arrow_down:

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 b2bfbc7...8eb47c3. Read the comment docs.


drivers/mm: Only disable unused RAM on Kconfig on Intel ADSP MTL

Disabling by default can confuse things that dynamically manage RAM, such as newlib heap. So this patch shields this behaviour befault a non-default Kconfig.
Signed-off-by: Ederson de Souza<EMAIL_ADDRESS>

Other than what was commented would be better make it feature driven instead of target driven. I mean, let this option available if the target declares be capable of such thing ?

Other than what was commented would be better make it feature driven instead of target driven. I mean, let this option available if the target declares be capable of such thing ?

That sounds interesting.

v2:

Kconfig is now at the driver level (and thus renamed);
Removed redundant "default n";
Rebased.

This needs a rebase.

v4:

Rename Kconfig and update docs/comments/commit message to reflect underlying nature of change and make it Intel ADSP specific;
Rebased.

crap, forgot that the reviews were dismissed.


error while building - using python 3.9

C:\Users\johnsmith\AppData\Local\Programs\Python\Python39\Scripts\MY SCRIPTS\Birds Apolcalypse Pra v1>pyjsbuild main.py
Traceback (most recent call last):
File "C:\Users\johnsmith\AppData\Local\Programs\Python\Python39\Scripts\pyjsbuild-script.py", line 33, in
sys.exit(load_entry_point('pyjs==0.8.2', 'console_scripts', 'pyjsbuild')())
File "C:\Users\johnsmith\AppData\Local\Programs\Python\Python39\Scripts\pyjsbuild-script.py", line 25, in importlib_load_entry_point
return next(matches).load()
File "c:\users\johnsmith\appdata\local\programs\python\python39\lib\importlib\metadata.py", line 77, in load
module = import_module(match.group('module'))
File "c:\users\johnsmith\appdata\local\programs\python\python39\lib\importlib_init_.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1030, in _gcd_import
File "", line 1007, in _find_and_load
File "", line 986, in _find_and_load_unlocked
File "", line 680, in _load_unlocked
File "", line 790, in exec_module
File "", line 228, in _call_with_frames_removed
File "c:\users\johnsmith\appdata\local\programs\python\python39\lib\site-packages\pyjs\browser.py", line 8, in
from pyjs import linker
File "c:\users\johnsmith\appdata\local\programs\python\python39\lib\site-packages\pyjs\linker.py", line 267
except translator.TranslationError, e:
^
SyntaxError: invalid syntax

Refer to issue.

the project is written in Py2, and unfortunately, it's almost dead.

I was really excited to try this project out, sadly it's dead now

try brython or pyscript


Put an edit file button on pull request files to allow a quick operation

This PR put an edit file button on pull request files to allow a quick edit for a file. After the edit finished, it will return back to the viewed file position on pull request files tab.
It also use a branch view file link instead of commit link when it's a non-commit pull request files view.

It also moved the escape/unescape to the left.

I think it should stay on right (or be eliminated entirely, but that's another topic).

It also moved the escape/unescape to the left.

I think it should stay on right (or be eliminated entirely, but that's another topic).

Done.

Hmm… I think this PR depends on #29400:
It sounds much more easy to use to me when we simply display a menu with actions there instead of filling the available space with more and more buttons.

That's also what GitHub is doing:

Hmm… I think this PR depends on #29400: It sounds much easier to use to me when we simply display a menu with actions such as (un)escape there instead of filling the available space with more and more buttons.

It's a bit of a unusual use case for <overflow-menu> given that this is not a tab menu, but I think it should work as long as all affected items bear the .item class.

Is this somehow related to resolving conflicts?
would this editing help resolve conflicts?

Any progress? Why stale.

Any progress? Why stale.

I think it's ready to be reviewed again. Need one more approval.

Does not compile for me currently:
routers/web/repo/editor.go:85:6: ctx.RedirectToFirst undefined (type *"code.gitea.io/gitea/services/context".Context has no field or method RedirectToFirst)

I guess I can try making it a dropdown after above error is fixed.

I guess I can try making it a dropdown after above error is fixed.

I will fix the compile error. But please "make it a dropdown" in a new PR. I don't think it should keep bloating a reviewed PR or keep it stale.

I guess I can try making it a dropdown after above error is fixed.

Maybe you can change the mean in that PR together after this PR is merged.

I would initiate the last call. If no objection, merge it as-is with one approval.


feat: ASAP-234 Use Esbuild for packaging serverless files

Swaps serverless-webpack for serverless-esbuild. Notable changes:

introduces S3_SYNC_ENABLED flag for conditionally switching on the s3 sync plug. This is a plugin we need for deployment only. during packaging however it freezes the zipping process which is why it was disabled
removes googleapis package in favour of @googleapis/calendar and  google-auth-library for easier bundling

Looks good! Just curious about why S3_SYNC_ENABLED is set to false?

good point, I added an explanation to the description


made numerous changes, fixed routes(had merge conflict text), improve…

Navy Veteran here, made a bunch of html changes to fix up the ui(over use of containers etc).  Changed the website so its more responsive.  Removed conflict that got merged in routes(be sure to check this kinda stuff).  Might make some more Improvements later on, hit me up on twitter if you have something specific in mind @cenderin

If you want me to fix those other houndci issues I will, otherwise I fixed a majority of them

That be awesome.
Separately, unable to get the donation and blog firing up locally. Been hacking away might need a bit of help.

On Jun 30, 2015, at 8:46 PM, Michael Alexander<EMAIL_ADDRESS>wrote:
If you want me to fix those other houndci issues I will, otherwise I fixed a majority of them
—
Reply to this email directly or view it on GitHub.

I can't do the stripe atm since it needs an api key, I also don't see where the blog is at.  so i'm not sure.

Thanks @cenderin! Having trouble w/ the Stripe integration too. That and our blog is our two major hot fixes.

Do you need more help managing this project?.  Let me know and I can help sift through pull requests and issues.  Also contribute more

Yes. Stripe. And, blog setup. Took our site down twice so definitely
another set of eyes so it's done correctly.
On Wed, Jul 1, 2015 at 12:30 PM, Michael Alexander<EMAIL_ADDRESS>
wrote:

Do you need more help managing this project?. Let me know and I can help
sift through pull requests and issues. Also contribute more
—
Reply to this email directly or view it on GitHub
https://github.com/OperationCode/operationcode/pull/75#issuecomment-117801490
.

--
David
t. @davidcmolina https://twitter.com/davidcmolina
http://davidmolina.github.io/

If you want to add me as a collaborator on this project I can help out with these pull requests and issues

That be great!

On Jul 1, 2015, at 1:36 PM, Michael Alexander<EMAIL_ADDRESS>wrote:
If you want to add me as a collaborator on this project I can help out with these pull requests and issues
—
Reply to this email directly or view it on GitHub.

@cenderin the blog is here: https://github.com/Scripore/scripore.github.io and it needs to go here: https://github.com/OperationCode/operationcode.github.io. I'm working the Stripe now--


fix!: unmark Relax trait as unsafe

Breaking:

relax::Relax is no longer marked as a unsafe trait.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (4f2a727) to head (05dfbcd).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##              main        #2   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            7         7
  Lines          158       160    +2
=========================================
+ Hits           158       160    +2

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


Deeply nested folder structures - some way to simplify the view

This is a focused view of a folder, where I am only about 3 folders in.

I think for this plugin when in focus mode, there should be two useful things:

Location: where am I, but in a simplified format.
Showing more of the actual file names

So in this example, instead of seeing each folder, one under the other, have just one root node with a summary like:
Areas > Teaching > 2022-11-07
and then files listed underneath

@TfTHacker
new version (0.9.9) introduces Simplified View (available as a setting in plugin settings; you can also map a key shortcut for it).
It hides all of parent directories and provides a much cleaner view, especially when using nested folders.
I didn't really work on showing the location, as it is visible in some themes (including the default one), right above the file contents and adding it to file tree in a clean way was tricky for me atm.
Let me know if it works for you!

This looks great! Subtle but effective change.
Thank you for implementing this.


Configuration#2: Step#2: Merging each 100K FinalHadronState Files into one File including 600K: MATTER

singularity-events-merger-600k.sh
CONFIG_NUMBER=2
ELOSS_TYPE_UPPERCASE="MATTER"
ELOSS_TYPE_LOWERCASE="matter"

done and move to overleaf


Check if the right task outputs are created

We do some validation on annotated output properties before task execution to see if they are of the declared type (or initialize them if they don't yet exist). However, we don't have any checks for what the task actually did. Cases like this go unnoticed:

task declares a non-optional @OutputFile or @OutputDirectory, but ends up not creating an output
task declares an @OutputFile, but ends up creating a directory
task declares an @OutputDirectory, but ends up creating an output file

The same checks should be done for the elements declared via @OutputFiles and @OutputDirectories as well.
These errors can be confusing for downstream tasks depending on the outputs of the task. Producing the wrong type of (or no) output will also cause errors when the task's output is packed by task output caching.

We still want this.

If possible, it would be nice if this could be expanded to the runtime API defined outputs.
Another thing that would be nice to check is if the task actually produced the defined outputs. If a defined output is missing, we could show a deprecation warning, or even better, allow outputs to be marked as optional (via runtime API as well) and fail the build if an output is required/not optional (I'd default to required/not optional).


Wrong webpack version causes selenium-tests to fail locally

What happened?
Selenium tests are currently not working. This is seemingly due to the config being written for webpack v5+
Steps to Reproduce

cd ./selenium-tests
npm install
npm run server <- this will fail

Expected Result
Server starting up so that tests can be run with npm run all:local
Actual Result
Server startup fails with:
><EMAIL_ADDRESS>server
> webpack serve --progress --port 8090 --config webpack.dev.js --hot --host <IP_ADDRESS>

[webpack-cli] Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function

Additional Details
Can be fixed by using the following webpack versions:
    "webpack": "^5.60.0",
    "webpack-cli": "^4.10.0",
    "webpack-dev-server": "^4.5.0",
    "webpack-merge": "^5.8.0"

OpenTelemetry Setup Code
n/a

package.json
n/a

Relevant log output
see "Actual Result"

@pichlermarc Can you please review the changes ?


Cow: Watch shuddhi.com

Cow requests the watch of the watch_keyword shuddhi\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

shuddhi\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Implement Verifiers for KZG and SNARK Proofs in Contracts

Verifier test code is located in contracts/test/Verifiers.ts.
The pre-generated proofs for testing are located at kzg_prover/bin as a JSON file.

The proofs are generated by these two scripts: gen_commitment.rs and gen_inclusion_proof.rs.

Only the SNARK verifier is generated from the gen_verifier.rs script in kzg_prover.
Retained ProverGWC for further benchmarks on a higher number of currencies.

Todo

[x] Fix the revert error while verifying the Inclusion proof.
[x] Align terminology in verifier comments with that used in other references.
[x] Update README for generating verifer and proofs.

I removed revert message in the InclusionVerifier due to the bug in ethers: https://github.com/ethers-io/ethers.js/issues/3605

Awesome job! Let's follow the consistent naming pattern for grand sum-related things (separate "grand sum" in text and proper snake/camel case in code, e.g., "grand_sum" and "grandSum", including the file names).

Thanks, That's great naming idea


configuration of mouse pressence

having a featureset simmilar to unclutter from x, and being able to explicitly manipulate if the cursor is hidden or not would be nice

IDK about explicit manipulation, but unclutter is already here:
general {
    cursor_inactive_timeout = 5
    # hide after 5 seconds of not moving
}

thanks for pointing that out, i must have missed that in the docs, i went ahead and corrected my comment

manually as in with hyprctl?

ideally configuring pressence through dispatchers, ie hidecursor, showcursor, perhapsit could also take a param that determines what workspaces it hides and shows the cursor on. sorry for not explaining it better initially lol

closing. this was a dumb issue on my part tbh, ive come to the conclusion this can all be done with ipc.


TriffleJS --render fails on http://livedoor.com/

Here is the output:
C:...\trifleJS\bin\Debug>TrifleJS.exe --debug --render=http://livedoor.com/
TrifleJS.exe --debug --render=http://livedoor.com/
Setting Version to IE11
Rendering http://livedoor.com/...
WebBrowser#DocumentCompleted
Render(,)...
Ratio: 1
Width: 1007
Height: 1045
Screenshot rendered to file: livedoor.com.png
WebBrowser#DocumentCompleted
Render(,)...
Ratio: 1
Width: 1007
Height: 1045
Screenshot rendered to file: livedoor.com.png
Then it hangs.
With more debugging, I caught this error message:
System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW cannot be used.
at System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
at System.Windows.Forms.UnsafeNativeMethods.IHTMLWindow2.GetDocument()
at System.Windows.Forms.HtmlWindow.get_Document()
at TrifleJS.API.Modules.WebPage._evaluate(String function, Object[] args)
The excpetion happemns inside the check for CurrentFrame.Document != null
If you trap the exception inside _evaluate and wait long enough, the page will load completely and a screenshot can be taken.

Hiya,
Thanks for the example and debug info. Will chase up when I get a mo.

I'm having an issue with trifflejs similar to what is mentioned in this old post - https://github.com/ariya/phantomjs/issues/10619.
I'm setting a viewport width of 1420 and height of 800. But the rendered image takes the width correctly but the height is 10425. This makes the document very narrow. I would use clipRect if that works?. Do you know when clipRect will be available for trifflejs?

Hi @rajeshpaddy,
Can you copy/paste your testing script?
Thanks!

var page = require('webpage').create();
page.zoomFactor=1;
page.onLoadFinished = function(e) {
setTimeout(function(){
page.render('msn.jpg',{quality:50});
phantom.exit();},30000);
};
page.viewportSize={width:1420,height:800};
console.log(page.viewportSize);
page.localT1oRemoteUrlAccessEnabled =true;
setTimeout(page.open('http://www.msn.com', function() {}),30000);

In the above example the height is coming out as 5344. I expect it to 800.

Screenshot and test script received with thanks. Will get to it as soon as I can turn attention back to rendering functionality.
By the way this is related to page.viewportSize, which is a separate issue to one logged by @juliensobrier, in the future kindly open a separate ticket. Thanks.

Hi @juliensobrier.
Sorry for taking so long to get back, I think your issue should have been fixed after commit 125e7a0. This was repairing a call to window.navigator (using page._evaluate()) before the document had been initialized. Could you try again?
Thanks!

HI @rajeshpaddy, @juliensobrier.
Try your scripts after this fix, should help when rendering websites.
BTW @rajeshpaddy. I'm still to look into page.viewportSize, I have a feeling that the current functionality is the same as phantomJS (ie that rendered screenshots are not limited by viewport size but always render the whole page). I could be wrong though..

Hi @rajeshpaddy,
I just checked phantomJS and the script you sent me outputs a file `msn.jpg' that is 1420 x 2444. There is no issue here.. just your own expectation (although I have to admit this is what I thought phantom would do originally when I first wrote the API).

@sdesalas http://livedoor.com/ still hangs TriffleJS

Seems ok for me, try using the --render=http://livedoor.com option.
D:\Software\TrifleJS>TrifleJS.exe --render=http://livedoor.com
Rendering http://livedoor.com...
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png
Screenshot rendered to file: livedoor.com.png

D:\Software\TrifleJS>

I have to do a bit of work on the event listeners (this is firing many times - probably due to iframes on adverts) but its rendering ok as far as I can tell (the output png looks good). I haven't done work on the page.open() page.render(), and have the feeling that the hanging will still apply if you execute a JS script to do this, however the availability of --render option means it'll be quicker to fix this.


Replicate figure 2 from Stokes (2016)

Paper:
https://onlinelibrary.wiley.com/doi/pdf/10.1111/ajps.12220?casa_token=OYr70MTskmcAAAAA:xERYbd_MrYdTQFWihDN_pyJCIBF7Ux7psIvBPtnJGJV-FcUePLZkPQeItW_kZyNFGq_m2caqjVggsOBY
Data:
https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/SDUGCC

Maybe some more later, but that will be a good start!


Update README.md

Update Layer5 Contributors Welcome Guide to Layer5 Community Welcome Guide
Fix for issue => https://github.com/layer5io/meshery/issues/1248

@neha-saggam thanks for taking this on. 👍 Jump into our community slack (http://slack.layer5.io) and let's get you connected with some other contributors who would be happy to collaborate here.  // @Adeola-Adesoba @crustyy

Hi,
Has this task been worked on? Nothing seems to have changed on the readme.md file.


influxdb response format error

###Requirement
we use influxdb srelay(https://github.com/toni-moreno/influxdb-srelay) for influxdb ha.but influxdb-sreay not support msgpack protocol only support JSON format.

Read https://github.com/apache/skywalking/pull/5932#issuecomment-737648703 for the update.


objc: add nullability regions

Contents of these interfaces should be assumed to be nonnull.
Signed-off-by: Michael Rebello<EMAIL_ADDRESS>

Merging, library built and other tests flaked.


This is beautiful!

Please can @sinofool add a few screenshots on how to integrate with xCode or would you like me to add some?

Go ahead please, good idea.

Reopen this if needed.


New changes to live

Priority to fix url bugs

Docs Build status updates of commit 7d36f47:
:warning: Validation status: warnings

File
Status
Preview URL
Details

articles/user-guide/machines/resources-estimator.md
:warning:Warning
View
Details

articles/user-guide/machines/qc-trace-simulator/distinct-inputs-checker.md
:warning:Warning
View
Details

articles/user-guide/machines/qc-trace-simulator/invalidated-qubits-use-checker.md
:warning:Warning
View
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

articles/user-guide/machines/resources-estimator.md

Line 4, Column 9: [Warning-author-not-found] Invalid value for author: 'anpaz-msft' is not a valid GitHub ID.

articles/user-guide/machines/qc-trace-simulator/distinct-inputs-checker.md

Line 48, Column 244: [Warning-xref-not-found] Cross reference not found: 'Microsoft.Quantum.Simulation.Simulators.QCTraceSimulators.DistinctInputsCheckerException'.
Line 91, Column 7: [Warning-xref-not-found] Cross reference not found: 'Microsoft.Quantum.Simulation.Simulators.QCTraceSimulators.DistinctInputsCheckerException'.

articles/user-guide/machines/qc-trace-simulator/invalidated-qubits-use-checker.md

Line 30, Column 328: [Warning-xref-not-found] Cross reference not found: 'Microsoft.Quantum.Simulation.Simulators.QCTraceSimulators.InvalidatedQubitsUseCheckerException'.
Line 74, Column 7: [Warning-xref-not-found] Cross reference not found: 'Microsoft.Quantum.Simulation.Simulators.QCTraceSimulators.InvalidatedQubitsUseCheckerException'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Add handler for catch "toString() failed" error

PR Checklist:

[ ] I have run npm test locally and all tests are passing.
[ ] I have added/updated tests for any new behavior.

[ ] If this is a significant change, an issue has already been created where the problem / solution was discussed: [N/A, or add link to issue here]

PR Description

https://github.com/request/request/issues/2332


fix(deps): Update stack definition member versions

Update stack definition member versions

Stack
Change

Account Infrastructure Base
v1.12.11 --> v1.16.0

Essential Security - Encryption Key Management
v4.15.13 --> v4.17.0

Essential Security - Event Notifications
v1.10.19 --> v1.15.0

Essential Security - Secrets Manager
v1.18.6 --> v1.19.0

Essential Security - Security Compliance Center
v1.20.2 --> v1.24.1

Gen AI - Databases for Elasticsearch
v1.20.4 --> v1.23.5

Workload - Code Engine Projects
v2.0.1 --> v2.1.1

Workload - DevSecOps Application Lifecycle Management
2.0.3 --> 2.4.3

Workload - Sample RAG App Configuration
v2.5.10 --> v2.6.1

Workload - Compute Red Hat OpenShift Container Platform on VPC
v6.0.1 --> v6.2.1

(NOTE: Observability DA update was reverted due to https://github.com/terraform-ibm-modules/stack-retrieval-augmented-generation/issues/225)

/run pipeline

/run pipeline

/run pipeline

/run pipeline

The failure that occurred was not actually a failure. Projects marked a deploy as failed, even though it never failed:
Project activity:

Schematics UI:

Reported to the projects team

/run pipeline

/run pipeline

/run pipeline

/run pipeline

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

GitHub release
v2.1.0

Your semantic-release bot :package::rocket:


Lucky Explorer enchant broken?

The description for the enchantment states "Chance to spawn emeralds with every block travelled", but it always spawns emeralds after travelling 6 blocks. The enchantment level only increases the amount of emeralds spawned.
This is obviously completely overpowered (especially with mods like Apotheosis which raise the max level for enchantments), and does not seem like the intentional behaviour.

That is the intended behavior, the description which I ripped right from the official wiki admittedly doesn't make the 6 blocks rule clear.
It is overpowered, which is why the enchantment is blacklisted by default for survival purposes.


Does BEIR support tuning config k and b of BM25 ?

Hi @thakur-nandan, thanks for the amazing work! I would like to know if BEIR supports tuning config k and b of BM25?
In the paper, anserini BM25 was implemented with default Lucene parameters (k=0.9 and b=0.4). I want to run evaluate_bm25.py or  evaluate_anserini_bm25.py of beir with different k and b. But I can't find where to tune them.
Thanks.

You can find Anserini regressions for BEIR here: https://github.com/castorini/anserini#regressions-for-beir-v100
You can reuse the tuning script implemented here: https://github.com/castorini/anserini/blob/master/docs/experiments-msmarco-passage.md#bm25-tuning

You can find Anserini regressions for BEIR here: https://github.com/castorini/anserini#regressions-for-beir-v100 You can reuse the tuning script implemented here: https://github.com/castorini/anserini/blob/master/docs/experiments-msmarco-passage.md#bm25-tuning

Does BEIR support originally setting the k and b for BM25, or should I import the BM25 from Anserini to set these parameters? I find the scripts in the two links are hard to follow. Are there any other relevant tutorials or documentation?
Thanks


🐛 [Bug] RuntimeError: [Error thrown at core/conversion/converters/impl/select.cpp:236] Expected const_layer to be true but got false

Bug Description
when i convert jit model, got the error
this is my forward code:
input x shape is (batch, 6, height, width), first step is to split x into two tensors, but failed
    def forward(self, x):
        fg = x[:,0:3,:,:]   ## this line got error
        bg = x[:,3:,:,:]

        fg = self.backbone(fg)
        bg = self.backbone(bg)
        out = self.heads(fg, bg)
        return out

complete traceback:
ERROR: [Torch-TensorRT TorchScript Conversion Context] - 3: [network.cpp::addConstant::1052] Error Code 3: Internal Error (Parameter check failed at: optimizer/api/network.cpp::addConstant::1052, condition: !weights.values == !weights.count
)
Traceback (most recent call last):
  File "model_converter.py", line 263, in <module>
    engine = get_engine(model_info.trt_engine_path, calib, int8_mode=int8_mode, optimize_params=optimize_params)
  File "model_converter.py", line 173, in get_engine
    return build_engine(max_batch_size)
  File "model_converter.py", line 95, in build_engine
    return build_engine_from_jit(max_batch_size)
  File "model_converter.py", line 80, in build_engine_from_jit
    tensorrt_engine_model = torch_tensorrt.ts.convert_method_to_trt_engine(traced_model, "forward", **compile_settings)
  File "/usr/local/lib/python3.6/dist-packages/torch_tensorrt/ts/_compiler.py", line 211, in convert_method_to_trt_engine
    return _C.convert_graph_to_trt_engine(module._c, method_name, _parse_compile_spec(compile_spec))
RuntimeError: [Error thrown at core/conversion/converters/impl/select.cpp:236] Expected const_layer to be true but got false
Unable to create constant layer from node: %575 : Tensor = aten::slice(%570, %13, %12, %14, %13) # /data/small_detection/centernet_pytorch_small_detection/models/low_freeze_comb_net.py:455:0

Environment

Build information about Torch-TensorRT can be found by turning on debug messages

PyTorch Version (e.g., 1.0): 1.4.0
CPU Architecture: arm (nx)
OS (e.g., Linux):
How you installed PyTorch: docker of nvidia l4t
Python version: 3.6.9
CUDA version: 10.2.300
Tensorrt version: <IP_ADDRESS>

I tried to reproduce your bug with your code, but it works.Maybe your torch version is too low，try to use higher than torch 1.8.0.

I use 1.10.0 but still got same error
I tested in embed arm device, not on gpu, may be difference ?

Can you provide the code to reproduce this?

I use 1.10.1 to trace jit model, but still got same error my steps: 1、trace jit model on training environment (GPU nvidia tesla T4, torch 1.10.1+cu102 (at first I use 1.4.0)) 2、use torch_tensorrt to convert jit model to tensorrt engine (nvidia xavier, torch 1.10.0)
I tested in embed arm device, not on gpu, may be difference ?

@pupumao This may due to dynamic shape issue, can you try this pr https://github.com/pytorch/TensorRT/pull/1110

already solved
it's not a bug, just because wrong input setting for torch-tensorrt api(error kept require_grad=True)


SSH interactive remoting Ctrl+Break causes hang in running script

Ctrl+Break should send a "Break All" message to the remote session and stop the running script in the remote script debugger.  But instead the client hangs.
One issue is that the client never sends the Break All signal to the remote session because the server capabilities returned by the session is null, and Break All is implemented only for server sessions running PowerShell V5.0 or greater.
The hang issue seems to be related to SSH.  Since its process is also attached to the console it also receives the Ctrl+Break event.  The event doesn't terminate SSH client process like Ctrl+C does but it does something so that PSRP data messages no longer arrive at the PowerShell client even though the server PowerShell session continues to send PSRP data and command complete messages.
Need to find out why the remote session does not send server capabilities to client.
Need to find out how Ctrl+Break affects SSH client process.
Steps to reproduce
PS> Enter-PSSession -HostName <hostName> -UserName <userName>
[<hostName>]: PS> 1..100 | foreach { sleep 1; "Output $_" }
Output 1
Output 2
# while script is running type Ctrl+Break

Expected behavior
Running script should break into the remote debugger.
Actual behavior
Client hangs and never receives anymore PSRP messages from server session.
Environment data
Name                           Value
----                           -----
SerializationVersion           <IP_ADDRESS>
GitCommitId                    v6.0.0-alpha.10-8-gdd2394b1e6088f6c82054f5cae5520e532010fd4-dirty
PSRemotingProtocolVersion      2.3
WSManStackVersion              3.0
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
CLRVersion
BuildVersion                   <IP_ADDRESS>
PSVersion                      6.0.0-alpha
PSEdition                      Core

Un-assigning since I am not currently working on this.

This still causes craziness. We should reassess the priority of this when we triage each project.


request: Handle image errors and display fallback image

Is there an existing issue or pull request for this?

[X] I have searched the existing issues and pull requests

Feature description
The library should use its own image component that handles image errors and provides a fallback image either by the user or by the library itself (discord icon)
To prevent things like this
Desired solution
Being able to provide a custom fallback image for when a url is expired or doesnt load properly.
Alternatives considered
The library providing a hardcoded fallback image.
Additional context
No response

You can use a NextImage already when using DiscordImageAttachment. That should handle all your cases far better than what this library can provide.

Yea that is fair.


How to get the $index from the item

Hi,
I need to take the item, begins dragged. And id for destination.
Or whats its better practices for shot my api with the  item and destination.
Thanks

I dont understand the question, please try to be more specific, thank you.

Closing due to idle.


Release Google.Cloud.BinaryAuthorization.V1Beta1 version 2.0.0-beta08

Changes in this release:
New features

Add IServiceCollection extension methods for client registration where an IServiceProvider is required. (commit 022fab2)

Created release for Google.Cloud.BinaryAuthorization.V1Beta1-2.0.0-beta08


Custom Title Bar Style with Native decorations

In Gnome custom looks like:

For native looks like:

Custom is more compact and don't waste a space, but decorations doesn't follow OS theme as native do.
Can be implemented something between?

/duplicate https://github.com/microsoft/vscode/issues/176467


Animated eicons

This is a feature request.
I don't think this needs much explanation. F-List now allows for animated icons, and I'd like to be able to see them animated in slimCat.

I have very strong distaste for this functionality, but implementation may be necessary if only for feature parity. It is likely a much more expensive implementation than how f-chat webclients were able to add in.


Add mysql support to js vcxagent core

Codecov Report

Merging #469 (1eab7e9) into main (7a45070) will decrease coverage by 34.19%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #469       +/-   ##
===========================================
- Coverage   60.27%   26.08%   -34.20%
===========================================
  Files         154       19      -135
  Lines       14543      970    -13573
  Branches     3586      189     -3397
===========================================
- Hits         8766      253     -8513
+ Misses       2382      642     -1740
+ Partials     3395       75     -3320

Flag
Coverage Δ

integration-aries-vcx
?

unittests-agency-client
26.08% <ø> (ø)

unittests-aries-vcx
?

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

aries_vcx/src/init.rs
0.00% <0.00%> (-36.67%)
:arrow_down:

agency_client/src/utils/comm.rs
0.00% <0.00%> (-25.00%)
:arrow_down:

agency_client/src/httpclient.rs
0.00% <0.00%> (-21.74%)
:arrow_down:

agency_client/src/agent_utils.rs
15.00% <0.00%> (-13.10%)
:arrow_down:

agency_client/src/agency_client.rs
0.00% <0.00%> (-9.10%)
:arrow_down:

agency_client/src/get_message.rs
0.00% <0.00%> (-5.97%)
:arrow_down:

agency_client/src/update_message.rs
22.64% <0.00%> (-3.75%)
:arrow_down:

agency_client/src/payload.rs
0.00% <0.00%> (ø)

aries_vcx/src/libindy/utils/error_codes.rs

.../protocols/proof_presentation/verifier/messages.rs

... and 134 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 7a45070...1eab7e9. Read the comment docs.


fix type definitions not working when using require()

The type definitions are wrong and don't work at all.
If you try to use puppeteer v7 in a javascript file using const puppeteer = require('puppeteer'), typescript will tell you that it's wrong and you should be doing const puppeteer = require('puppeteer').default which is rubbish.
To confirm, enter this into your terminal:
node -p "require('puppeteer').default"

and note how it prints undefined.
Therefore the type definitions are wrong and should be using the export = syntax.

@googlebot I signed it!

@k-yle Do you have the ability to test this also with import? I'm wondering if this combined with an addition to puppeteer/node.ts to export * from "./api-docs-entry" would expose all the types as well.

closing, #6837 fixed this


Linux version shows Mac shortcuts

I'm on Linux and it shows "Cmd" in the shortcuts. I don't know how to get it to work.

Try "meta", or the so-called "Win" button. :smiley:

Sorry for the delay in replying. Using Meta seems to work.


Add first, reverse and iso for Tuple1

nice, I didn't know they were a Tuple1.
:+1: once travis is done


localCI: do not fail if we don't know if the pr is mergeable

in the case that we do not know if a pull request is mergeable
localCI should not fail, we can just test the pull request
fixes #300
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

lgtm


Fix xjoin for Windows pathnames

This PR fixes a bug in xjoin function with Windows pathnames.
Fix #5296.

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


KAFKA-8142: Fix NPE for nulls in Headers

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.
Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Java11 failed with https://issues.apache.org/jira/browse/KAFKA-7647
Java8 passed.
Retest this please.

Call for review @guozhangwang @vvcephei @ableegoldman

Merged to trunk and cherry-picked to 2.2 and 2.1.


coverage is not getting collected

Hi, The README file mentions the step to generate the instruction and collect the coverage without running the simulation.
I ran the below command as mentioned :
// Randomly generate 100000 instructions, split to 20000 instructions per batch
python3 cov.py -d -i 100000 -bz 20000
The command give below output on  terminal:
[amgarg@soc-pe-001 riscv-dv-master]$ python3 cov.py -d -i 100000 --iss ovpsim
Fri, 04 Oct 2019 08:16:21 INFO     Building the coverage collection framework
Fri, 04 Oct 2019 08:16:22 INFO     Randomizing 100000 instructions in 1 batches
Fri, 04 Oct 2019 08:16:22 INFO     Running batch 1/1
Fri, 04 Oct 2019 08:16:22 INFO     Collecting functional coverage from 100000 random instructions...done
It seems like the coverage has been collected but i dont find any file /logfile with the information.  i see directory out_2019_10_04 is created but it doesnt have any thing.
Can you please  tell me what we need to look here?
Thanks,

Right now the coverage flow only support VCS + spike, will need some work to add support for ovpsim.

Does it support Questa+ SPIKE as well ?
Also, while installing SPIKE, the first steps is apt-get install device-tree-compiler which gives me the issue.
since i have RED HAT OS, i use the below command:
sudo tum install device-tree-compiler
but it gives me below error:
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
No package device-tree-compiler available.
Error: Nothing to do
what are the steps followed by you to install spike ?

To enable coverage collection for questa, you need to add coverage related compile/sim options here
https://github.com/google/riscv-dv/blob/master/yaml/simulator.yaml#L47

For spike setup, I am just following the standard steps here
https://github.com/riscv/riscv-isa-sim#build-steps

Thanks, I am able to set up Spike.
Now looking into coverage aspects through Questa.
ti run with VCS, you pass --cov option while running run.py and then run the cov.py command as mentioned in README file?

--cov is not needed in your command line.

Thanks, I am able to setup coverage flow with Questa now.
(I also actually made Questa as default simulator as well)

Cool, this is good to know.
I am closing this issue now. If you want to share you cov setting for Questa, please create a PR for it, thanks.

Hi Tao,
Below are the changes in simulator.yaml file to enable coverage for Questa:

tool: questa
compile:
cmd:
- "vmap mtiUvm $QUESTA_HOME/uvm-1.2"
- "vlog -64
+incdir+
+incdir+<user_extension>
-access=rwc
-f /files.f
-sv
-mfcu -cuname design_cuname
+define+UVM_REGEX_NO_DPI
-writetoplevels /top.list
-l /compile.log <cmp_opts>"
- "vopt -64 -debug
-designfile design.bin -f /top.list
-l /optimize.log <cmp_opts>
-o design_opt"
sim:
cmd: >
vsim -64 -c  <cov_opts> -do /questa_sim.tcl design_opt <sim_opts>  -qwavedb=+signal+memory+transaction+class+uvm_schematic -sv_seed
cov_opts: >
-do "coverage save -onexit cov.ucdb;"


How to run tests on generated samples?

Imagine that I have trained something to generate code according the problem description. I would like to measure the quality of such generation in terms of the number of test cases that got a good verdict (AC).  How can I run tests?

After you download the full CodeNet dataset, you can refer to /Project_CodeNet/derived/input_output/README to get information on how to do that.


Admin ui product changes

Closes #2664 and #2681

This change is

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/a1d2a13bc417bc9a8422640450f9b97142e67446/

http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/1b887f4e0693ecec7947d2216da67206c5fae7fd/


import cupy eats ~1.8Gb of virtual memory for nothing in every process instance

My app (https://github.com/iperov/DeepFaceLive) uses multiple python subprocesses (multiprocessing.Process) to do the work.
Every process which imports cupy uses 1.8Gb+ physical memory or paging file.
import cupy
https://user-images.githubusercontent.com/8076202/126863232-90bd879a-dedc-48a6-94c9-bfc8a3e3ee7f.mp4
If user has no free space in paging file, MemoryError will occur.
Can you fix it?
Temporary solution is to import cupy on demand, but the code looks like crap,
and unable to use type hinting like img : cp.ndarray, because it requires cupy to be imported.
>>> cupy.show_config()
OS                           : Windows-10-10.0.19041-SP0
CuPy Version                 : 9.0.0
NumPy Version                : 1.21.1
SciPy Version                : 1.5.4
Cython Build Version         : 0.29.23
Cython Runtime Version       : None
CUDA Root                    : D:\DevelopPPP\projects\DeepFaceLive\_internal\CUDA
CUDA Build Version           : 11010
CUDA Driver Version          : 11030
CUDA Runtime Version         : 11010
cuBLAS Version               : 11201
cuFFT Version                : 10300
cuRAND Version               : 10202
cuSOLVER Version             : (11, 0, 0)
cuSPARSE Version             : 11200
NVRTC Version                : (11, 1)
Thrust Version               : 100910
CUB Build Version            : 100910
Jitify Build Version         : 60e9e72
cuDNN Build Version          : 8101
cuDNN Version                : 8005
NCCL Build Version           : None
NCCL Runtime Version         : None
cuTENSOR Version             : None
cuSPARSELt Build Version     : None
Device 0 Name                : NVIDIA GeForce RTX 3090
Device 0 Compute Capability  : 86
Device 0 PCI Bus ID          : 0000:01:00.0

I think this issue is not specific to CuPy but may happen on many libraries using CUDA on Windows, because multiprocessing on Windows cannot use fork (copy-on-write). Please consider using threading if it works for your use case.

cuDNN Version                : 8005

CuPy automatically loads cuDNN if it is installed. You may try uninstalling cuDNN to reduce the memory footprint (a bit).

@kmaehashi
in reproduce example I don't use multiprocessing.
CUDA/Cudnn cannot be installed/uninstalled, it is just a DLL set that loaded by the app.
P.S. please don't answer in topic if you are not a developer of CuPy.

Might be related: https://github.com/numpy/numpy/issues/19556.
@iperov What's the matter with all the downvotes? Please be mindful and respectful to all constructive discussions. @kmaehashi is the CuPy project lead, but it shouldn't be of concern to you.

Might be related: numpy/numpy#19556.

that is fixed by updating to latest version of numpy.
But CuPy has a bug.

@iperov Please be considerate and respectful to the community and toward other contributors. I understand your frustration but the problem is not simply a CuPy bug but involves how CUDA and Windows work. Discussion is essential to think about how we can deal with this kind of issue.
As I mentioned above, the memory usage is coming from CUDA and not CuPy itself. For example, simply loading cuSOLVER (one of CUDA Toolkit library which CuPy depends on) to the process:
>>> import ctypes
>>> ctypes.CDLL(r"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\cusolver64_11.dll")
<CDLL 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\cusolver64_11.dll', handle 7ffc64e00000 at 0x263945c22b0>

takes 650 MB commit charge in Windows. This problem exists in many libraries using CUDA. For example import torch (PyTorch 1.9.0) took 4 GB commit charge in my environment.
I think the workaround available today is to increase the page file size. Although the commit charge is not the amount of memory actually used, Windows reserves the amount from physical memory size + page file size.
We may be able to consider deferring the import of CUDA libraries, but if you call CuPy features in child processes you will experience MemoryError anyway.

We may be able to consider deferring the import of CUDA libraries

this will be better solution,
because import cupy and type hinting are accesed by all processes due to python nature, but cupy is used only in one of them.

Hi @iperov, I think you suggestion makes sense and we are moving forward to lazy-loading CUDA libraries.
Let me close this issue to merge the discussion to #5649.


add a BitVec wrapper

Hi!
I promised a while ago that I would polish my BitVec wrapper and post it so here we go.

bitvec provides a foundational API for bitfields in Rust. It specializes standard-library data structures (slices, arrays, and vectors of bool) to use one-bit-per-bool storage, similar to std::bitset and std::vector in C++.

This adds a BitVecWrapper that can be used with the #[with(BitVecWrapper)] attribute as shown in the doc example in src/bitvec.rs. It is available under the bitvec feature flag.
I'm not 100% of the correctness of this code, but if it works well enough Archive could be directly implemented on BitVec in the main rkyv crate.

I think it looks great! Would you rather it be external crate support in the main rkyv crate? I think it would be reasonable to add built-in support so you can just add features = ["bitvec"] and use bitvec types with rkyv without any wrappers. This would bring it up to the same level of support as other crates like uuid and indexmap.

Closing now that rkyv/rkyv#296 has been merged


Histogram chain operations

Transferred the switch case for chains of operations into the deriveHistogram() function, as the estimation of the nnzs stays the same and only the propagation of the vectors stays the same.

LGTM - thanks @johannaSommer. I fixed the allocated dimensions, unnecessary overwrites of allocated vectors, and rbind/cbind which can be composed of basic addition instead of probabilistic propagation. Furthermore, I added a TODO for the remaining unary operations. To simplify development and ensure we don't introduce bugs, it would be good to complement these additional operations with appropriate junit tests.


Needs basic instructions in README

@jantman Thank you for your work! I know this repo is just a personal project, but please please help me out and post some super basic instructions on how to use in the readme. I know just enough about docker to be dangerous!
So far I used docker pull to grab your code from Docker hub. I tried docker run jantman/docker-zoneminder but it hangs on startup during and then repeats MariaDB not answering ping yet; try again in 3s... indefinitely. I am sure I haven't properly set up the environment variables yet. I see there are .EXAMPLE files in the repo, but I have no idea where to find them on the system I used the docker pull command on.
I'm desperately trying to get a containerized instance of Zoneminder set up on a new server I'm building. Thank you in advance for any light you might shed!

Hey @maskott . Sorry about that. I'll try to get something added to the README in the next few days, but in the mean time, hopefully this will get you started:

Either clone this git repo on the machine where you want to run it, or download the two docker-compose files and all of the EXAMPLE files to that machine.
Remove the EXAMPLE. from the example file names, and edit the content of the files as needed. These are all documented elsewhere, and are all related to the ZM Event Notification server (ZMES) and object detection. If you don't care about ZMES and object detection, then these files can just be left as-is.
If the docker-compose command isn't already available on your system, install docker-compose.
In whichever docker-compose file you use (or both), change jantman/docker-zoneminder:devel to jantman/docker-zoneminder:1.36.33-jantman3
From that same directory, docker-compose up should start the database and then zoneminder. If you also want the MLAPI object detection, you can use docker-compose -f docker-compose-mlapi.yml up

This should get everything up and running. Please note, however, that this is really just a demo method - you'll want to start the docker containers up in a way that starts them at boot in the right order and restarts them if they die (i.e. systemd units) and at a minimum you'll also want to ensure that you're backing up the MariaDB database content (outside the scope of this project's docs) and whatever you need to backup from ZoneMinder (i.e. if you want to back up events).
I hope this can get you started. The docker-compose files should provide a decent reference for how this container is expected to run. Note that, as you'll see, this image needs a separate MySQL/MariaDB database; that's provided by a separate image in the docker-compose files.

@jantman Thank you so much for taking the time to point me in the right direction! Using your instructions, I was able to get the container running. I'm just starting to get things set up now. I think I may need to go back and find where to edit to give myself access to some storage to save all of the recordings and events to. Thanks again and I look forward to more details in the README when you have a chance. 🙏

I've added my post above to the README. If there's anything else that you feel I should add, please let me know.


Fix unescaped square brackets and escaped delims in percent arrays

e.g. %w{[ ]} => %w[\[ \]] (which is equivalent to ["[", "]"])
fixes: #225
This does mean that this is possibly unnecessarily escaped, because
balanced pairs are fine in percent literals BUT this is easier, and
slightly more explicit.
i also added a hacky way to transform %w{\{}
before it would change the value from ['{'] to ['\\{']. now it doesn't.
but christ is it a hack
(also i'm unclear which ruby file i'm supposed to be modifying so i
modified them all)
ALTERNATIVELY TO THIS PR, we push the delim to the ast and don't change it
to another delim (might be cleaner in the end, but that sounds like a rust task and my
rust is weak at best)
ALTERNATIVELY ALTERNATIVELY, we transform things even more to regular array & string/symbol literals

(not clear why the build failed, it built fine on my mac)

@robotdana this failure is 100% unrelated to your change, I will fix it when I can (I'm recovering from surgery right now!)

❤

manually merged in da5c3631779121f5281726c093f0548e00cf8034


LayerThinningModifier

Reference:

Hey @vjsrinivas, we do have this enabled for models like ResNet-50 to automatically thin the network. Specifically, we have a LayerThinningModifier that can be used.

I've attached an example implementation of that for ResNet-50. Let us know if you need any support or run into any issues (the dependency graph generation can be tricky). Generally, we've seen 40% filter pruning being at the upper limit for ResNet-50 before it starts degrading in accuracy.

resnet50-structured.yaml.zip

Originally posted by @markurtz in https://github.com/neuralmagic/sparseml/issues/489#issuecomment-1071199309

Since the other issue is more about TensorRT, I don't want to pollute it with structured pruning related discussion. I ran the YAML for ResNet50 with LayerThinningModifier, but I would get the following error:
Traceback (most recent call last):
  File "classfication_channel.py", line 340, in <module>
    prune_train(model, input_size)
  File "classfication_channel.py", line 103, in prune_train
    model, train_loader, criterion, device, train=True, optimizer=optimizer
  File "classfication_channel.py", line 42, in run_model_one_epoch
    loss.backward()
  File "/home/vijay/anaconda3/envs/radar/lib/python3.7/site-packages/torch/tensor.py", line 245, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph, inputs=inputs)
  File "/home/vijay/anaconda3/envs/radar/lib/python3.7/site-packages/torch/autograd/__init__.py", line 147, in backward
    allow_unreachable=True, accumulate_grad=True)  # allow_unreachable flag
RuntimeError: Function CudnnConvolutionBackward returned an invalid gradient at index 1 - got [2048, 332, 1, 1] but expected shape compatible with [2048, 512, 1, 1]

It seems like the zeroed weights are removed but the layer objects themselves are still expecting the old weight and bias shapes. I changed the YAML file to run LayerThinningModifier at the end of training, and it successfully trained and removed the weights. I had to recreate the network when loading the pruned weights though.

Here is the file that will reproduce the error: simple_classification_structured.zip
It's mostly copy-pasted from the classification.ipynb tutorial.
Here are my relevant specs:

Python 3.7.10
PyTorch 1.8
CUDA 10.2

thanks for filing the issue @vjsrinivas.  We're looking into potential causes for this.  In the meantime, using our image classification training script (integrations/pytorch/train.py) I was able to successfully run the recipe on resnet50 with imagenette with no errors.  Could you try running the recipe there?
python integrations/pytorch/train.py \
  --recipe-path resnet50-structured.yaml \
  --arch-key resnet50 \
  --dataset imagenette \
  --dataset-path <Path to dataset>  \
  --pretrained True

Hi @bfineran, I was able to run the recipe with train.py successfully, but I had some trouble with it initially. I ran python integrations/pytorch/train.py   --recipe-path ../resnet50-structured.yaml   --arch-key resnet50   --dataset imagenette   --dataset-path ../../imagenette2    --pretrained True --train-batch-size 16 --test-batch-size 16, and it would train correctly until the last epoch, where it would error out with:
AssertionError: can only test a child process
Exception ignored in: <function _MultiProcessingDataLoaderIter.__del__ at 0x7f5fabd0cd40>
Traceback (most recent call last):
  File "/home/vijay/anaconda3/envs/radar/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1324, in __del__
    self._shutdown_workers()
  File "/home/vijay/anaconda3/envs/radar/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1279, in _shutdown_workers
    self._pin_memory_thread.join()
  File "/home/vijay/anaconda3/envs/radar/lib/python3.7/threading.py", line 1041, in join
    raise RuntimeError("cannot join current thread")
RuntimeError: cannot join current thread

From my searches, it seems related to num_workers in the DataLoaders of _create_train_dataset_and_loader and _create_val_dataset_and_loader. I set num_workers to zero and it worked all the way through.
I get the following accuracy at the end of the last epoch:
Saving model for epoch 9 and top-1 accuracy 94.5999984741211 to /home/vijay/Documents/devmk4/radar-cnn/misc/pruning_example/resnet50/test/sparseml/pytorch_vision/resnet50_imagenette__02 for model

But the layer sparisty stats are all zero:
2022-03-21 21:58:08 __main__     INFO     layer sparsities:
2022-03-21 21:58:08 __main__     INFO     layer sparsities:
2022-03-21 21:58:08 __main__     INFO     input.conv.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     input.conv.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv1.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv1.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv2.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv2.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv3.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.conv3.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.identity.conv.weight: 0.0000
2022-03-21 21:58:08 __main__     INFO     sections.0.0.identity.conv.weight: 0.0000
...

Also, I checked on the pth file output and it's the same size as the original, which I'm guessing means that it did not actually remove any weights?

Hi @vjsrinivas glad to hear your were able to get the run working.

Setting non zero number of DataLoader workers may cause issues when pytorch doesn't detect enough shared memory for processes to communicate with. Could you check the amount of shared memory available on your system? df -h | grep shm
The recipe you are using just applies structured pruning and then thins the model to remove the now defunct channels.  After those channels are removed, you will have a smaller dense model which is why the final sparsity is detected to be 0. Definitely up for debate if we should add additional logging at the end for structurally thinned models.
What's the file size? And are you looking at the torch checkpoint? The torch checkpoint will contain additional data for items such as optimizer state which will essentially double the memory required for saving.  You can try grabbing just the model weights and re-saving with the following:

import torch

PATH_TO_CKPT = "..."
NEW_CKPT_PATH = "..."

checkpoint = torch.load(PATH_TO_CKPT)
torch.save(checkpoint["state_dict"])

The new checkpoint should just contain the model weights.

re: 1, the shared memory is 16GB: tmpfs                   16G  210M   16G   2% /dev/shm
re: 2, I would strongly be in favor of showing the final max sparsity of the overall training cycle rather than the final epoch.
re: 3, Yes, I was talking about the PyTorch weight. You were right, the weights are pruned.
Now, when loading the pruned weights into original model, it will not fit because the filter and output sizes are different for each layer (expected). Currently, I'm manually editing the model structure with the new weight shapes (gist). It works but is very messy. Is there an easier way?
Thank you for the help, btw!

hm, ok maybe something else is causing the dataloader issue, what batch size are you running at and with how many workers were you trying?
that's great news.  for re-loading the weights we're currently in the process of rolling out "phased recipes" that will track changes between runs and apply them before weight load.  Until then, you can apply the structural changes yourself using the old recipe with the following:
from sparseml.pytorch.optim import ScheduledModifierManager

# model definition
model = ...

# load old recipe and apply to make structural changes
OLD_RECIPE_PATH = ...
ScheduledModifierManager.from_yaml(OLD_RECIPE_PATH).apply(model)
# parameter sizes should now line up and weights can be loaded

Batchsize was 16. I did not set a value for num_worker, but the default value was 4. I'll make sure to use --loader-num-workers next time.
The code snippet works perfectly, thanks!
I had a couple of questions about the YAML recipe:

The docstring says that param_groups is to group similar layers for pruning (like residual blocks), but it seems like its grouped by corresponding layers between each residual block for each stage. I guess I'm confused on the reasoning behind the param_groups
From NeuralMagic's blog post about GMP, it was advised to plot the average, absolute value of each layer weight to determine which layer to prune. This makes sense in unstructured pruning, but if you're grouping layers together for structure pruning, how would you figure out which groups to prune if the average magnitude differs nontrivial for each layer in the group?
Is there a way to generate param_groups and param_group_dependency_map without exporting to ONNX?

No problem, happy to support.

a param group is a set of parameters who share overlapping parameters that are dependent on them for layer thinning. they must be pruned along the same channels (accounting for strides) so that there are no conflicts in connections when removing the corresponding channels from the dependent parameters. (ie in a residual block the same channels need to be pruned so they can feed into the same channels on the first layer after that block)
currently we use the l2 of magnitudes across channels to account for differing channel sizes in a group, feel free to experiment with different methods though, the logic is contained in the structured mask creator class
no, currently the best supported method is going through sparseml.onnx.optim. get_param_structured_pruning_group_dependencies with an onnx export. This is due to pytorch graphs not being static, we could in theory trace the graph with torch.jit, but the onnx export essentially does this and gives it to us in an easy to parse format

@bfineran Thank you for your help! If it is available, do you mind making a YOLOv3 structured pruning recipe available?
I'll close this issue since the main questions have been addressed.

I don't want to resuscitate an old issue, but this error: RuntimeError: Function CudnnConvolutionBackward returned an invalid gradient at index 1 - got [2048, 332, 1, 1] but expected shape compatible with [2048, 512, 1, 1] was fixed by re-initializing the optimizer to account for the newly thinned models parameters. Not sure how it'd work with a lr scheduler.


feat(#major); arbitrum-one-bridge; add arb side subgraph, track ARB token + fix(#patch); fix TVL inconsistencies fix(#patch); fix sender address L1->L2 for bridge transfers

This commit includes the following changes:

feat(#major); add arbitrum side subgraph
feat(#major); track ARB token / ARB gateway activity
fix(#patch); https://github.com/messari/subgraphs/issues/2090
fix(#patch); https://github.com/messari/subgraphs/issues/2202

See https://github.com/messari/subgraphs/pull/2101#issuecomment-1581949662 for reference.

@bye43 should be good to go ahead with the QA for all the changes https://github.com/messari/subgraphs/pull/2196#issue-1750013039?

Ethereum side is at 100%
Arbitrum side is at 15%+

@jaimehgb good from your side on code review?

The changes to both the price lib and the sdk are from pulling their latest versions? Or are there some custom changes?

Correct, no custom changes made.


[1.3.x] KOGITO-4507 Downgrade to Quarkus 1.11.x

https://issues.redhat.com/browse/KOGITO-4507
Downgrade to 1.11.3

The Linux check has failed. Please check the logs.

Jenkins please retest this

The Linux check is successful.


fix/OS-SWP-SUG-02

As recomended by SDF, we should implement to.require_auth() and transfer.
I will close this PR


Update client.py

Formating client.py

@carpedm20, Is there anything wrong with this pull request.

@tcyrus No problem. Thx.


Key remapping and Clipboard history

Microsoft PowerToys version
0.56.2
Running as admin

[X] Yes

Area(s) with issue?
General
Steps to reproduce
Head to Microsoft Powertoy's Keyboard management section
Click on "Remap a shortcut"
Set the Physical shortcut to Windows key + V and the "Mapped to" to whatever keybind you want it to be. Leave "Target App" blank
Press the Keybind you set it to
✔ Expected Behavior
Microsoft PowerToys would bring up the Clipboard history
❌ Actual Behavior
Nothing happens, the Clipboard history doesn't pop up
Other Software
No response

May be you're confusing the columns? I think you want to set Win+V in the Mapped to column and your keybind in the first column.
/needinfo

Typical case of #13710. The word "physical" should be a hint that you should press these keys to achieve the other hotkey.


[analyzer] Fix yaml dumper

If the key attribute (path) in the invocation-list.yml file is longer then
128 characters the yaml module will mark it as a complex key which is not
supported by the LLVM yaml parser. For this reason we will create an
LLVM compatible yaml dumper class which will mark these keys as non-complex
keys.

@martong Good idea, I have extended our test cases.


RuntimeError: Cannot launch Triton kernel since n = 46336 exceeds the maximum CUDA blocksize = 65535.

RuntimeError: Cannot launch Triton kernel since n = 46336 exceeds the maximum CUDA blocksize = 65535.
ile /usr/local/lib/python3.10/dist-packages/unsloth/kernels/utils.py:23, in calculate_settings(n)
     21 # CUDA only supports 65535 - 2^16-1 threads per block
     22 if BLOCK_SIZE > MAX_FUSED_SIZE:
---> 23     raise RuntimeError(f"Cannot launch Triton kernel since n = {n} exceeds "\
     24                        f"the maximum CUDA blocksize = {MAX_FUSED_SIZE}.")
     25 num_warps = 4
     26 if   BLOCK_SIZE >= 32768: num_warps = 32
H100 80GB

Getting the same on my RTX 4090:
 File "/storage/venvs/unsloth/lib/python3.11/site-packages/unsloth/kernels/utils.py", line 23, in calculate_settings
    raise RuntimeError(f"Cannot launch Triton kernel since n = {n} exceeds "\
RuntimeError: Cannot launch Triton kernel since n = 64000 exceeds the maximum CUDA blocksize = 65535.

@epicfilemcnulty Possibly fixed with a pre-release - hopefully you can try it to check it out! :) Thanks!

@danielhanchen yep, it's fixed! Thank you for awesome work!


Error enabling humidity sensor on a CC2650

Hi,
When enabling the humidity sensor on the CC2650, I get the error Error: service uuid f000aa2004514000b000000000000000 not found!
I get this immediately after calling sensorTag.enableHumidity(callback);
My code looks as follows:
SensorTag.discoverByUuid(uuid, function(sensorTag) {
	console.log(sensorTag);
	sensorTag.on('disconnect', function() {
		console.log('disconnected!');
	});
	console.log('Connecting/Setting up...');
	sensorTag.connectAndSetUp(callback);
	setTimeout(function(){
		console.log('Enabling Humidity...');
		sensorTag.enableHumidity(callback);
	},1500);
});

Did I miss something?
BR

@BastiOfBerlin what firmware version is your SensorTag running?

@BastiOfBerlin also, connectAndSetUp might take longer than 1.5 seconds to complete. You could try something like this instead:
SensorTag.discoverByUuid(uuid, function(sensorTag) {
    console.log(sensorTag);
    sensorTag.on('disconnect', function() {
        console.log('disconnected!');
    });

    console.log('Connecting/Setting up...');
    sensorTag.connectAndSetUp(function() {
        console.log('Enabling Humidity...');
        sensorTag.enableHumidity(callback);
   });
});

Hi @sandeepmistry
Looks like the 1.5 seconds where indeed too short, the asynchronous way fixed it for me. Thanks!
Interesting thing is: Using software, I read out the values
firmware revision = 0.91 (Feb 13 2015)
hardware revision = PCB 1.2
software revision = PCB 1.2

But on the PCB it says FW: 1.0.1... -_-


[lighthouse] add 3.0 content

What's changed, or what was fixed?

adds v3 content

Fixes: N/A
Target Live Date: 2018-05-08

[ ] This has been reviewed and approved by @patrickhulce || @paulirish
[x] I have run gulp test locally and all tests pass.
[x] I have added the appropriate type-something label.
[x] I've staged the site and manually verified that my content displays correctly.

CC: @petele

Whoops!
There were 13 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/tools/lighthouse/v3/migration.md#L32 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L33 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L40 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L41 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing RSS feed widget: '{% include "web/_shared/rss-widget-updates.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L20 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L35 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L36 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L57 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L175 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L181 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L182 - Line must be at most 100 characters

Whoops!
There were 13 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/tools/lighthouse/v3/migration.md#L32 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L33 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L40 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L41 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing RSS feed widget: '{% include "web/_shared/rss-widget-updates.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L20 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L35 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L36 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L57 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L175 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L181 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L182 - Line must be at most 100 characters

@brendankenny I don't believe you've seen this yet if you want to give it lookover with fresh eyes

Whoops!
There were 19 warnings that will prevent this PR from being merged. Please take a look, and either fix, or provide a justification for why they can't be fixed.
WARNINGS
src/content/en/tools/lighthouse/v3/migration.md#L22 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L84 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L85 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L87 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L93 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L94 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L151 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L156 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L170 - Line must be at most 100 characters
src/content/en/tools/lighthouse/v3/migration.md#L175 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing comment widget: '{% include "comment-widget.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L183 - Updates post is missing RSS feed widget: '{% include "web/_shared/rss-widget-updates.html" %}'
src/content/en/updates/2018/05/lighthouse3.md#L20 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L35 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L36 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L57 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L175 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L181 - Line must be at most 100 characters
src/content/en/updates/2018/05/lighthouse3.md#L182 - Line must be at most 100 characters

:+1:

:+1:

Merging after talking with V

:tada: This has been pushed live to https://developers.google.com/web/


boto3 not found for dev package openmetadata-ingestion on test.pypi

I created a fresh virtual environment and installed the dev package using the following command
pip install --extra-index-url https://test.pypi.org/simple/ openmetadata-ingestion==0.8.0.dev1

after installation on execution of metadata --help or any other operation with metadata command throws module not found error for boto3
% metadata --help
Traceback (most recent call last):
  File "/Users/mayursingal/Desktop/ulixius/OpenMetadata/venv/bin/metadata", line 5, in <module>
    from metadata.cmd import metadata
  File "/Users/mayursingal/Desktop/ulixius/OpenMetadata/venv/lib/python3.8/site-packages/metadata/cmd.py", line 22, in <module>
    from metadata.cli.backup import run_backup
  File "/Users/mayursingal/Desktop/ulixius/OpenMetadata/venv/lib/python3.8/site-packages/metadata/cli/backup.py", line 21, in <module>
    import boto3
ModuleNotFoundError: No module named 'boto3'

Thanks, @ulixius9 for reporting this. We'll move the import inside the specific command so that it is not trying to be called by default.
Meanwhile, you can retry to install with the openmetadata-ingestion[backup] plugin


ModuleNotFoundError: No module named 'morphablegraphs'

When I run main.py,

from morphablegraphs.constraints.constraint_builder import ConstraintBuilder, MockActionConstraints

at line 32 in mg_state_planner.py inside morphablegraphs.
bug: ModuleNotFoundError: No module named 'morphablegraphs'
The morhpablegraphs is not imported.

Even this morhpablegraphs  module is imported, it should be morphablegraphs.core.constraints if not import constraints in init of morphablegraphs module.

Thanks for testing it. It somehow worked for me. I will change this submodule into a python package so that you can install using pip.

I have changed morphablegraphs now to be installable as a package using PIP. Due to an optional submodule it has to be checked out manually.

Thanks, it works now. 👍


Bulk annotation or "repeat" button

As a moderator working alone (thereby avoiding back-end conflicts with other authenticated moderators?!)
facing a long backlog of repetitive false positives (currently there are 1750 unmoderated candidates)
I want to be able to annotate many candidates simultaneously/efficiently with the same tag and comment field values
This could be much faster than my current workflow, after listening to the candidate, usually using the "Detailed" view:

Hit "no" radio button
Type in tags
Type in comments
Hit submit

There are at least 3 ways that I can imagine accelerating the moderation process:
A:

Moderate first candidate
Listen to 2nd candidate
Toggle a "Repeat previous annotation" button
Watch the yes/no/unknown, tag(s), and comment automatically toggle/fill to match the previous values entered by this moderator
Hit Submit

B:

Listen to all 5 candidates on the current page
For the first listed candidate, fill in tags and a comment that apply to all of the candidates
Hit a select all button near the top of the list
Then "Apply annotations" to all the candidates on the page (e.g. default 5)

C:

Select a start and end datetime
Specify a status (yes, no, unknown, or maybe a new one "archive"?)
Specify any tag(s) and/or comment
Bulk process all candidates within the datetime range

I'm sure the UX/design team could get more/better feedback from other moderators, and then devise other/better solutions! Also, I  think Akash may have "cleared" some older back-logs, but I'm not sure how he accomplished it...

Hey Scott. In the Project Kanban board, should we have a separate column for Moderator API/UI items? Otherwise they might be spread across multiple columns.


Set tenant domain when building service url

Purpose
The tenant domain is set here after creating an ServiceURLBuilder instance to ensure the expected tenant domain is considered when building the service url

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/9126229811

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/9126229811
Status: success


Add a page to settings which lists all the nice shortcuts

I would be very handy to have a page a user can check to get an overview over all available shortcuts.

@R3voA3 Would creating a wiki page with the available shortcuts be helpful?

That would work as well, sure.

@R3voA3 I started work on a new Wiki page, there are many shortcuts available which we will add to the list over time.


trim down Docker base image when running in CI

it takes a long time to apt get a bunch of packages we don't need there

fixed in #15


Added simple generator

So this is my first approach to adding generators. For now I left almost everything untouched and just have generators for client, server and config that copy all files over.

Hi @Neitsch, sorry for my very late reply here. What's the difference between the contents in this PR and the ones that are in the yeoman-generator branch?

I really don't see that it is possible to maintain all those branches. As a proof of concept I wrote a generator that has a default configuration and commits the generated code to another branch. In this use cases we would generate two configurations (master and canary). https://github.com/Neitsch/fb-fullstack

I got what you meant now, that would be a great option to solve this problem. In my opinion, we could try to build everything inside our yeoman branch, we could actually merge canary into yeoman branch.  Whenever we want to release a new version of Relay Fullstack, we run a yeoman script without selecting any options to generate the master branch. So, people can just clone the master branch and get the fresh minimum requirements to run Relay, or if they want to go further, they can absolutely use yeoman to add more options.
The development working would be as following:

yeoman branch (merged with canary) => All development goes here
master branch => Automatically generated by our yeoman script when we released a new version of Relay Fullstack

In conclusion, we can maintain only the yeoman branch. Is this exactly what you meant or what do you think about this approach?

Exactly. It requires a slightly deeper understanding of yeoman to apply any changes properly, but I think it would be great to have the generator and master in sync!
@ncrmro any thoughts?

I'm all for it. Sound awesome! I'm not a super expert with yeoman right now. I'm betting we could automate the push to master after testing the generator.

Perfect, can I close this PR for now, and we can start merging canary branch into yeoman?

Sounds good. I'll get started on that!


Modify readme to be ophyd-async specific

Need the readme and docs to be properly configured for ophyd-async.

what is the policy on getting the docs up and running? Who should I contact? Also, should we make a separate issue on ophyd to migrate the v2 docs? (they should be already in this repo)