Add observability stack with jaeger and opentelemetry-collector

Make a Stack (Jaeger) to aid in development and validation of webhook telemetry (and beyond).
Stack

[x] Jaeger Deployment

Actually also added Loki (logs) and Tempo (a second trace sink to show that multiple can be used), and the Grafana dashboard app.

[x] OpenTelemetry Operator Deployment

[x] OpenTelemetry Collector

[ ] Deploy an instrumented operator with a webhook

Demo

[ ] Deploy a CR for the operator to generate traces (one that will trigger the webhook).

Just on very high level comment, because I was working on integrating openobserve into the demos somewhere else, which would in theory also support OpenTelemetry I believe.
Is it maybe worth taking a brief look at what Jaeger gives us more than OpenObserve? If OpenObserve suffices, we'd have one tool to take care of logs, metrics and traces all in one fell swoop for the demos ..

Just on very high level comment, because I was working on integrating openobserve into the demos somewhere else, which would in theory also support OpenTelemetry I believe.
Is it maybe worth taking a brief look at what Jaeger gives us more than OpenObserve? If OpenObserve suffices, we'd have one tool to take care of logs, metrics and traces all in one fell swoop for the demos ..

I've gone with the Grafana stack as it has been IMO the best all-round observability stack.
Jaeger was added as an additional tool to show how the opentelemetry-collector can take one stream of logs/metrics/traces and send them to multiple things (out of scope, but the benefit is allowing end users to easily migrate to other tools without a hard cut which is often required when observability SaaS vendors' SDKs are used in code. In Rust, the tracing crate helps there too).
At this point in time, only the stack exists, so it wasn't described, but my intention is that a demo would explain all of this.

This is basically done, but I was waiting on a couple of changes to go into stackable-webhooks/stackable-telemetry to ensure a problem wasn't being created by the opentelemetry-collector.
I have some local changes/clean up to finalize this.

[!NOTE]
It is only a stack at this point, and not an entire demo (that is best left to when we have instrumented real webhooks/operators and/or enabled instrumentation on products).

Please expose using NodePorts

I have done so for Grafana, but am unable to do the same for the OpenTelemetry Collector (see https://github.com/open-telemetry/opentelemetry-operator/issues/902).

Deploy collector Pod (and not only sidecars)

Done

URLs in stacks.yaml need updating (just before merging)

Done

LGTM. Can you please add a comment everywhere you were not able to use a NodePort including the link to the issue if possible?

Done in d8c58d0


feat(ecau): progress indicators

Fetching and queueing images can take a long time, depending on the number of images there are and their size. I've added a bunch of progress indicators as "waiting therapy". Summary:

Providers with track images (mainly Bandcamp) can take a while to find and pre-process all track images, so I've changed the logging to also emit a message whenever an image is processed. It'll now say e.g. “Checking for track images, this can take a while… (3/9)”, incrementing as each track image gets loaded.
Instead of waiting until the end to enqueue all images at once, we'll now enqueue them as soon as they're ready.
While fetching an image, a progressbar is now shown tracking the download progress.
We'll also now block submissions of the edits until all input URLs are fully processed. Otherwise, it'd be possible for users to submit an edit while ECAU is still actively loading and enqueueing images.

Also includes some behind-the-scenes changes to make this possible.

/deploy-preview for the lurkers who want to get it early. I know you're watching :eyes:

YOLO


LightSheetManager AcqEngJ backend

@jondaniels @bls337
Working on a PR for an initial version of this right now. The immediate goal would be to recreate the most important features for diSPIM control, but with the more performant/reliable/debuggable backend provided by AcqEngJ.
I've gone through the main function that performs acquisition in the diSPIM plugin, and I want to make sure I understand what its doing correctly:

If I'm understanding correctly, most of the heavy lifting is done on the Tiger controller. The AcquisitionSettings object is passed to the function prepareControllerForAquisition, which converts these into commands accepted by the Tiger. The acquisition code does not use the sequencing API in the MMCore to, for example, pre-load a sequence of Z-positions. Is that right?
One thing that confuses the above assessment is that core_.loadStageSequence (i.e. the core's sequencing API) is called in the preparePlanarCorrectionForAcquisition function. What is planar correction? And how important is it to implement in this first pass?
The number of (software) triggers sent to the controller is dependent on the specific acquisition settings. In some cases, only a single (software) trigger is sent to the controller and it kicks off a multiple timepoint, 3D, (multiple channel?) acquisition, correct?
In other cases, there is a (software) trigger for each time point?
Is there a (software) trigger for each channel always, or sometimes?
There is a "separate timepoints" mode where each timepoint is essentially its own acquisition, with its own viewer and own file saving. What was the original reason for this? It it still needed in the new version in light of @bls337 's playlist feature?
What is "stage scanning" mode?
Multiple positions: diSPIM uses the micro-manager position list. Are there more than just a single XY and single Z stage? And it seems like there may be something important here about the order in which they are moved? And these will always be controlled from API calls, not through the tiger?
Seems like the SPIM head gets lifted up before moving between XY positions and then re-lowered to prevent objective crashing. Is that right?
Acquisition order: It seems like the acquisition order is hard-coded to be "xy positions--time points--channels--volumes". Correct? Do we want to expose any other orders as options? Maybe timelapses at each position? (or will playlists handle this?)

Here is my take, @bls337 may have clarifications or completely different ideas ;-)

If I'm understanding correctly, most of the heavy lifting is done on the Tiger controller. The AcquisitionSettings object is passed to the function prepareControllerForAquisition, which converts these into commands accepted by the Tiger. The acquisition code does not use the sequencing API in the MMCore to, for example, pre-load a sequence of Z-positions. Is that right?  Correct.
One thing that confuses the above assessment is that core_.loadStageSequence (i.e. the core's sequencing API) is called in the preparePlanarCorrectionForAcquisition function. What is planar correction? And how important is it to implement in this first pass?  This feature is an advanced one that can be omitted at first.
The number of (software) triggers sent to the controller is dependent on the specific acquisition settings. In some cases, only a single (software) trigger is sent to the controller and it kicks off a multiple timepoint, 3D, (multiple channel?) acquisition, correct?  Under most circumstances the plugin triggers separate single-volume acquisitions in the controller.  If the expected time between finishing one time point/position and starting the next is less than a semi-arbitrary 0.75 second threshold, a special “hardware timepoints” mode is invoked silently.  In the "hardware timepoints" mode only a single software trigger is sent and the controller handles the rest itself.  Also note that there may be other serial traffic sent besides the software trigger.
In other cases, there is a (software) trigger for each time point? Yes, see above.
Is there a (software) trigger for each channel always, or sometimes?  It depends on the channel mode.  In "interleave" mode all the channels are done with one software trigger.  The plugin calculates how many images it is expecting per trigger.
There is a "separate timepoints" mode where each timepoint is essentially its own acquisition, with its own viewer and own file saving. What was the original reason for this? It it still needed in the new version in light of @bls337 's playlist feature?  The initial reason was to have logical file chunks that could be operated on before the overall acquisition was complete.  The playlist feature mostly if not completely supplants the need for this mode.
What is "stage scanning" mode?  **There are several acquisition modes that use the stage to move the sample through the light sheet instead of moving the light sheet through the sample.  These are all "stage scanning" and there are variants like having the 2nd view be the same stage direction as the first or the reverse direction. **
Multiple positions: diSPIM uses the micro-manager position list. Are there more than just a single XY and single Z stage? And it seems like there may be something important here about the order in which they are moved? And these will always be controlled from API calls, not through the tiger?  The use cases I can think of just use XY and Z, but maybe there is something I am not anticipating.  I think the only reason to care about the motion order involves the SPIM head optionally being lifted between positions.
Seems like the SPIM head gets lifted up before moving between XY positions and then re-lowered to prevent objective crashing. Is that right?  This is an optional behavior which had good reasons for becoming an option.  This feature could be omitted initially but eventually we would want to be able to do this.  It could be implemented as a runnable between positions I think.
Acquisition order: It seems like the acquisition order is hard-coded to be "xy positions--time points--channels--volumes". Correct? Do we want to expose any other orders as options? Maybe timelapses at each position? (or will playlists handle this?) I believe this is correct, though there may be some corner case where a different order is possible in the existing plugin.  It would be fine to expose other options, but the playlist helps cover a lot of the corner cases.

Thanks! This is really helpful and I think I should able to put together a skeleton of how this should work in AcqEngJ which we can build on from there.

Is there a (software) trigger for each channel always, or sometimes?  It depends on the channel mode.  In "interleave" mode all the channels are done with one software trigger.

Can you set a bit more about interleave mode? What exactly is interleaved? Is it performing successive scans of the same volume in different channels, or something different?

Is there a (software) trigger for each channel always, or sometimes?  It depends on the channel mode.  In "interleave" mode all the channels are done with one software trigger.

Can you set a bit more about interleave mode? What exactly is interleaved? Is it performing successive scans of the same volume in different channels, or something different

Interleaved rotates through the channels within the same timepoint/position.  In essence this does change the acquisition order contrary to my former claim.
For example if you acquiring a single volume of 5 images with 2 channels with interleaved, there would only be one motion but the lasers A and B would fire ABABABABAB instead of one motion with AAAAA and then another with BBBBB.  The enum is MultiChannelMode which becomes field channelMode of the acqusitionSettings structure.  Triggering different lasers sequentially is handled by the Tiger controller; in the above example the Tiger would have been told to acquire 10 images in the volume and the Tiger would have changed the lasers as configured by setupHardwareChannelSwitching.

Thanks! I just completed the first steps of this integration in #9
This adds in the high performance saving in NDTiff with optional display in NDViewer, and it does the beginnings of translating the LSM AcquisitionSettings into AcquisitionEvents and AcquisitonHooks that interact with AcqEngJ. This is using the same system as pycro-manager, so the pycro-manager documentation gives an idea of how the system works. The basic idea is shown in the figure below.
The code is full of TODOs. I think it will be helpful to go through it together at our next meeting


Fix dashboard slicing of compliance data when there are more than 6 standards

Description
As discussed in this Slack thread, the display of compliance data on the dashboard when there are more than six standards is incorrect. The current implementation sorts the list of all standards either ascending or descending, and then takes the first six items. However, since the PF charts display data items from bottom to top this results in the ascending sort showing the top six standards from lowest to highest, and the bottom six standards from highest to lowest.
What makes more sense is effectively the opposite of this:

“Sort by Ascending” shows the six lowest standards by compliance percentage, ordered low to high (this is the default)
“Sort by Descending” shows the six highest standards by compliance percentage, ordered high to low

Follow Up
Add test cases that cover situations where more than six standards are returned via the API. (e.g. when the openshift compliance operator is installed.)
Checklist

[ ] Investigated and inspected CI test results

Testing Performed
Against an OpenShift installation containing the compliance operator, which adds additional compliance standards, the default "ascending" view should show the worst standards by compliance percentage, ordered from lowest to highest.

Sorting the list by "descending" in turn displays the six best standards by compliance percentage, ordered from highest to lowest.

Note that in this instance there are 9 total standards and the middle 3 (ocp4-cis-node, CIS Kubernetes, HIPAA 164) are visible in the appropriate places in each chart.

Note: this is still awaiting approval by PM, but I believe it is the desired behavior so I wanted to get this PR out asap in case we were able to get it in before the release.

@pedrottimark you are absolutely right, this was a bug with the way I was sorting the data and your suggestion is much clearer. This PR didn't sit right with me in the back of my mind last night and the bad sorting is the reason why.


Change commutingzones dependency

move CommutingZones from Imports to Suggests.
new CommutingZones usage guide on website walkthrough
styler whole package

Can I ask you to break this in 2 PR?

One for the lint of the code
One for the actual change regarding CommutingZones
As it is now, it is a bit harder to properly review the code changes due to CommutingZOnes

The second commit is package removal only.
The third is guide.


Can't register at www.readthedocs.io

I have tried with multiple email addresses (gmail based, my mail server based and exchange bases) to register on readthedocs.io and I never get a confirmation email so I can never log in. Asking for a password change works but since the account is probably never set to active this has no real productive result. Anybody who could help with that, I find that a major problem .....

What URL did you register at?

Also what is the account name?

Also, you should be able to login without confirming your email address -- what exactly is the error you're getting?

https://www.readthedocs.io/accounts/signup/
cypromis, cyprolizard is what I tried.
cypromis looks like it registered but login in here: https://www.readthedocs.io/accounts/login/ just gets me back to the login page with an attribute and asks me to log in: https://www.readthedocs.io/accounts/login/?next=/dashboard/
I never get any dashboard or anything, just the login fields again.

Bleh, this is a bug. You should be registering at readthedocs.org -- for some reason that URL isn't redirecting properly. (the same URL at https://readthedocs.io will redirect)

 Fix www.readthedocs.io links working

This should now be fixed.


Uncaught Exception: Command failed:<PHONE_NUMBER>

An uncaught exception was reported.
Info:
OS: win32
Arch: ia32
GPMDP Version: 3.0.0
Time: Sun Jul 29 2018 12:11:30 GMT 0530 (India Standard Time)
Error:
Command failed:<PHONE_NUMBER>
Error: Command failed:<PHONE_NUMBER>
System.AggregateException: One or more errors occurred. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result)
   at System.Net.WebClient.DownloadBitsResponseCallback(IAsyncResult result)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.Utility.<LogIfThrows>d__4d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Squirrel.FileDownloader.<DownloadFile>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwait
...Some of the stack is missing

This issue was created automatically inside the uncaughtException handler

Closing this automatically reported issue as a duplicate of #2799


Missing settings migration: audioCues.chatResponsePending

have the audioCues.chatResponsePending-setting
open settings editor and notice a warning

It seems that we are missing a settings migration. That's something we usually do when "breaking" a setting.

Verifier:
Pls add a bunch of alert and audio cue settings such as:
 "accessibility.alert.clear": false,
 "accessibility.alert.format":"always",
 "accessibility.alert.terminalCommandFailed":true,
 "audioCues.clear":"off",
 "audioCues.format":"always",
  "audioCues.terminalCommandFailed":"off"

in various orders and combinations. Verify that they're transformed into signals settings and the deprecated settings are all removed.

It looks like I have to reload the window for the User settings to be migrated. Is that behaviour expected?

Yes @rzhao271 because that will happen automatically for users when they download the vs code update


Set up tests within the hartree module

Add a tests folder inside the hartree module

Tests were moved inside the tests folder (tests > inference > hartree)


Adjust GHA token permissions in renovate workflow

According to the instructions to run self-hosted Renovate as a GitHub App, renovate.yaml is missing a couple of permissions required by Renovate: metadata:read and members:read. Also, security_vulnerabilties:read isn't listed, so it should be removed.

Closed by #470.


Board Review: Storage Blob Go SDK

Thank you for submitting this review request. Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
To ensure consistency, all Tier-1 languages (C#, TypeScript, Java, Python) will generally be reviewed together.  In expansive libraries, we will pair dynamic languages (Python, TypeScript) together, and strongly typed languages (C#, Java) together in separate meetings.
For Tier-2 languages (C, C++, Go, Android, iOS), the review will be on an as-needed basis.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
Contacts and Timeline

Responsible service team: Storage
Main contacts: zezha
Expected code complete date: 04/30
Expected release date: 05/14

About the Service

Link to documentation introducing/describing the service: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction
Link to the service REST APIs: https://docs.microsoft.com/en-us/rest/api/storageservices/operations-on-blobs
Link to GitHub issue for previous review sessions, if applicable:

About the client library

Name of the client library: azblob
Languages for this review: Golang

Artifacts required (per language)
Please read through “API Review” section here to understand how these artifacts are generated. It is critical that these artifacts are present and are in the right format. If not, the language architects cannot review them with the SDK Team’s API review tool.
Golang

APIView Link: https://apiview.dev/Assemblies/Review/42d4c83ec51242129d9808b39e99732f
Link to Champion Scenarios/Quickstart samples: https://github.com/Azure/azure-sdk-for-go/blob/track2-storage/sdk/storage/azblob/zt_examples_test.go

For all other languages, send a request to the Architecture Board to discuss the best format on individual basis.
Thank you!

scheduled for 4/7

rescheduled to 4/14

Recording[MS INTERNAL ONLY]


Feature: World Clock

I've added a feature to the World Clock app that gives an option to show the temperature for the selected location, either Celsius or Fahrenheit. The registered API can do up to 1 million calls per month
I've never tried to add a feature to an existing app before so hopefully I've done this correctly!
Also, never used secret.decrypt before, again hope that works too!

This is super cool. Excited for this feature! cc @ejb for visibility though.

So great! I've always wanted to add a feature like this. Thank you!
A couple of thoughts on the design:

Is it possible to right-align the temperatures so they line up nicely?
How does it look with long locale names? Do they truncate properly? (I can't even remember if or how that works..)

And what happens if the API is down or over the rate limit?

Note that with 60s TTL on cached records, a single Tidbyt will produce 602430=43200 requests over 30 days. That means 24 Tidbyts using the feature will be sufficient to exhaust the API quota. =(

Note that with 60s TTL on cached records, a single Tidbyt will produce 60_24_30=43200 requests over 30 days. That means 24 Tidbyts using the feature will be sufficient to exhaust the API quota. =(

The weather part has a 30 min cache, could even go to 1hr
I'm hoping to get some time this weekend to review the suggestions - right-align and API error handling

I haven't forgotten about this one, its still on my to do list. Just need to put aside some time to get it fixed up.


Updated with Caltech256

Added a new dataset Caltech 256 to the loaders file and the corresponding function on lenet file.

Merging Vijetha's PR on Caltech 256. - Thanks.


[BUG] SPACE(int2) could not catch invalid result when connector returns space(0) = null

Describe the bug
We noticed a bug that our custom connector (Starburst Enterprise by Starburst) does not return correct value for formula space(0). Instead of empty string (''), it returns null.
However, tdvt test suite could not capture this error.
In test case SPACE(int2), there is a expected value <value>""</value>. But tdvt did not error out when our connector never returned an empty string.
Furthermore, I think only checking the formula output without corresponding input is a bad idea. Instead of checking SPACE(int2) only, we should check int2, SPACE(int2).
Screenshots
The screenshot below shows that our connector did not convert the space(param) correctly and still passed the test.

Desktop (please complete the following information):

OS: macOS
Tableau Version: 2023.3

About you:
Name: Song Gao
Company: Starburst Data

Thanks for raising this issue. The existing string.space tests do have some ambiguity regarding correctness. Based on your suggestion we've added an explicit string.space.empty test case that should catch this issue in the future.


Error popup in Windows: Failed to execute script main_windows

Version 1.15 here, no problems (except with expired cookies, easily fixed), until today.  I have not installed anything new in weeks.
Getting this error popup today and in the log file, no success/fail message is recorded after the line reporting that execution has started.

I've tried it several times and it's consistently failing.
Platform is Windows 10 Pro, version 22H2, OS build 19045.2251.
Python version: Python 3.10.1 (tags/v3.10.1:2cd268a, Dec  6 2021, 19:10:37)

Solved.  I downloaded the source archive and ran main_windows.py manually in a shell, and it reported a missing package, browser_cookie3.  Not sure why it went missing all of a sudden as I don't do any python development, but I installed it and the bot is running correctly again.

Reopening because today the error has returned.  Running the main_windows.py script with the scheduler disabled works fine, no errors this time, it collected today's giveaway fine.  Running the hoyolab_win_hidden.exe causes the popup to show up and no success/fail message in botlog.txt.  Used pip to check the various packages and they seem fine.

Why was this closed without resolution?

Be that as it may, the error does occur despite that.  I fixed it a couple of times through pip updates but now it is asking for the MS Visual Studio to be installed and that is just ridiculous.  I have already given up on this and Python-based utilities in general, based on my experience with this utility.

Do what you like. Python is a powerful scripting tool, suited for automations such as these. It's a shame it's a pain to compile it to a distributable executable easily. I've been doing some work on a fork of this repository, as a python-only (not compiled to exe) commandline tool, if you change your mind: Lordfirespeed/hoyolab-daily-bot

I appreciate that people are writing these things to help others, but when software keeps breaking for no easily apparent reason, it becomes an exercise in frustration.  Thank you for your offer, but I already tried the plain script instead of the compiled executable and got the same result.  I'm just going to take the path of least resistance and revert to doing this task by hand.

I solved the issue by changing the value for BROWSER to "Chromium" instead of the default value "all". I noticed that I uninstalled firefox which is around the time I started getting this error. After the change it runs smoothly again


Add an eq test for bug 858128

The ten year old bug 858128 was recently fixed upstream, see https://bugzilla.mozilla.org/show_bug.cgi?id=858128#c25, and it seems like a good idea for us to add a test-case to help catch any future regressions here.

/botio browsertest

Good idea!
/botio makeref


Custom intro and outro videos

I'm unsure on this one, but it could be easily done by convention without any protocol level changes. E.g if a channel has a video named intro or outro and it's under 30 seconds, play it at the beginning or end of the video.
Suggested by Rhys from Bombard's Body Language.

Or have one called channel_welcome or something and use that as the channel welcome video similar to youtube

I like that idea too but making it be done via name is trickier there, I think we want an is_pinned or equivalent SDK-side to do that.

I guess it's okay by name, if you want to move it you can rename it :thinking:

If it's by name we could have a channel_discovery page that is just https://lbry.tv/$/discover?claim_name=channel_intro

It'd also let us do something interesting things with channel discovery on first run and in general... kinda liking this.

We have a featured which takes a list of claim ids on channel metadata, but that was meant more for a channel page intro vs intro/outro. Can use the first one as intro, 2nd as outtro though, or get first class properties for them.


PyJWT out of date in setup.py

Took me a minute to find, but PyJWT is out of date in setup.py causing a hang in pip when installing all requirements if PyJWT is specified in requirements.txt as 2.1.0.

@tisboyo - currently master version of setup.py specifies PyJWT==2.0.0 but requirements.txt does not provide a version. If dependencies are install via repo clone, users might run into issues, but via PIP this should follow setup.py BASE_REQUIREMENTS which has a static version of 2.0.0.
Will keep this open as a TODO for testing the updated version and determine the failure cause.

[ Test Updated PyJWT version ] - Determine what causes installation to fail via pip if  2.1.0 is used.

Ran into this one again today when rebuilding my containers. It seems related to me having Cryptography pinned to 3.4.7 which should meet the requirements of PyJWT 2.0.0, which was cryptography>=2.6,<4.0.0. PyJWT 2.1.0 has cryptography>=3.3.1,<4.0.0. Also I think all of the hangups in this have to do with the new dependency resolver in pip. So who knows there.. but just wanted to give an update on this one while I was arguing with it.


Use Result instead of GetAwaiter().GetResult when IsCompletetSuccessfully is true

Same as #13614

Why is this change better?

@davidfowl I run a benchmark and saw when ValueTask is completed successfully returning via Result if far better than GetAwaiter().GetResult()

@davidfowl I run a benchmark and saw when ValueTask is completed successfully returning via Result if far better than GetAwaiter().GetResult()

Where's the benchmark? Can you show how it affects the middleware?

Oh I thought you were talking about the ValueTaskExtensions.
The change on the middleware is just to avoid AggregateException in case of exception.
These two has nothing to do with each other. Maybe I should have done these in two separate PRs.

I'm not sure I understand the purpose of this change now. Does using Result change the behavior at all? I know we use it in other places but we also use GetAwaiter().GetResult() in plenty of places too (i.e. we're already inconsistent :))

It doesn't change the behavior, at least in this scenario when the task is completed. Also it saves creation of ValueTaskAwaiter struct.

Also it saves creation of ValueTaskAwaiter struct.

Since it's a struct, that's a pretty minimal impact. Is there a measurable performance change?

[Benchmark]
public bool Result()
{
    ValueTask<bool> task = new ValueTask<bool>(true);
    return task.Result;
}

[Benchmark]
public bool GetAwaiterGetResult()
{
    ValueTask<bool> task = new ValueTask<bool>(true);
    return task.GetAwaiter().GetResult();
}

Method
Mean
Error
StdDev
Median
Rank

Result
0.0129 ns
0.0202 ns
0.0353 ns
0.0000 ns
1

GetAwaiterGetResult
10.6799 ns
0.2601 ns
0.2672 ns
10.7538 ns
2

A super micro benchmark like that isn't terribly useful though since it doesn't really show it in a proper context. A delta of 10ns is extremely small and wouldn't really matter in most scenarios.
I realize this is a bit nitpicky given the tiny size of the change but in general we err on the side of leaving existing code as-is for a scenario like this. The two code paths (.Result and .GetAwaiter().GetResult()) are different, even if they seem to have the same result.
I notice the previous PR linked (https://github.com/aspnet/AspNetCore/pull/13614) was also closed as we intended to use GetAwaiter().GetResult() there. I'm think we'd have the same position on this change. If there's a clear benefit to the product in changing to Result and we understand the costs and changes then we can consider something like this, but it feels like we don't have that here.

I totally understand your point. The difference in performance is very little.
My other goal was to make this code similar to the other parts, that are using Result when there's a check on IsCompleted.

we err on the side of leaving existing code as-is for a scenario like this

Just a question, What about for future codes? which one should be used to scenario like this?
Also #13614 was closed at first but then it got reopened and got merged, so I kept looking for the similar scenarios 😁

Also #13614 was closed at first but then it got reopened and got merged, so I kept looking for the similar scenarios 😁

Ah you're right! I mis-read the status :)

Just a question, What about for future codes? which one should be used to scenario like this?

Honestly, I couldn't say. In reality, I think you are correct that the behavior is the same (or similar enough) in either case. We don't prescribe exactly what to do in every scenario, it's up to the individual contributor (internal or external) and code reviewers to decide on what is appropriate.

Fair enough. I'm ok if you want to close this PR.


Crash when entering unconfigured dimension

Hey! I've been loving the mod so far, it's perfect for what I'm trying to do on my server; however the mod tends to crash the game whenever a player tries to enter an unconfigured dimension.
This tends to happen quite a bit while using replaymod but also happens when I add custom dimensions and attempt to join them without adding them using the /diminv command.
Logs attached, and thanks for creating such a useful mod for fabric!
2023-04-28-7.log.gz

Hello!
I think I've been able to reproduce and fix the crashing. Would you mind trying out the version linked below and letting me know if the issue is resolved?
dimensional-inventories-1.0.2pre1+1.19.4 (UNZIP).zip
Thank you for you kind words :)

Hey! I did a bit of testing and all the cases in which the mod caused a crash seem to be fixed. Love the streamlined implementation as well, it's nice to be able to use the default inventory pool without it automatically being assigned.
Stay safe out there, thanks again for making this mod :)

Nice. I have worked the fix into a new set of releases. The only difference between 1.0.2pre1+1.19.4 and 1.0.2+1.19.4 is a minor formatting fix in some log messages.
Thank you very much for the feedback and kindness, and have a good one :)


rocal_pybind - wheel not reinstalling when there are changes to wheel package

Happens when running run.sh shell script.
It looks at the version installed and won't reinstall if we make changes

@swetha097 : Can you look into this issue

@rrawther ,
I have created a PR as a ix for this.
https://github.com/GPUOpen-ProfessionalCompute-Libraries/MIVisionX/pull/982
This uninstalls the wheel pkg, then installs it.

@kiritigowda This issue can be closed. Fixed in PR982.


Write Rbac Processor Unit Tests

Task
Write Rbac Processor Unit Tests

Task Title
Write Rbac Processor Unit Tests

User Story
#106

T-shirt size default is S(mall)
M

Story Points - Fibonacci (1,2,3,5)
3

Description
Increase unit test coverage of the rbac_processor module

Business Need (the why):
Unit tests facilitate code quality, ability to refactor, and self-documentation. Breaking out tests into smaller pieces increasing maintainability and also self-documentation.

Keith is working on unit testing - RBAC processor - refactoring and will incorporate in pairing. Will share with Richard to also be involved and looped in. @yunhangc

The rbac_processor module will be easier to extend and test once similar features (validation, persistence, models, messages, etc) are logically grouped together. It appears the opposite is happening, likely the result of copy-pasting code. I am refactoring now into a design that should be easier to read/test/comprehend and will include tests in the change.

Replaced by issue #1173 now...


Permission denied while creating kube client

While following the Software Loadbalancer using keepalived and nginx example I find the BindIP never populates in the config map.
Upon inspection the problem is possibly related to needing to make a service account beforehand?
Here's the output of the two relevant containers:
[root@kubebox-node1 vagrant]# kubectl log kube-loadbalancer-rc-orxys
W1206 20:37:58.496741    9760 cmd.go:345] log is DEPRECATED and will be removed in a future version. Use logs instead.
I1206 20:37:42.873660       1 factory.go:59] Registered backend loadbalancer-daemon.
I1206 20:37:42.874149       1 factory.go:59] Registered backend f5.
I1206 20:37:42.874228       1 factory.go:59] Registered backend openstack-lbaasv2.
F1206 20:37:42.874765       1 main.go:71] failed to create client: open /var/run/secrets/kubernetes.io/serviceaccount/token: permission denied

[root@kubebox-node1 vagrant]# kubectl log loadbalancer-daemon-d4u8x
W1206 20:41:05.170089   10809 cmd.go:345] log is DEPRECATED and will be removed in a future version. Use logs instead.
I1206 20:40:47.672500       1 nginx.go:336] executing nginx
I1206 20:40:47.879536       1 utils.go:57] Monitoring proccess /var/run/nginx.pid. PID: 14
I1206 20:40:47.969268       1 keepalived.go:108] Starting keepalived with options [--log-console --vrrp --release-vips]
W1206 20:40:47.994005       1 utils.go:48] Error reading PID file /var/run/keepalived.pid: open /var/run/keepalived.pid: no such file or directory. Trying again...
I1206 20:40:48.999012       1 utils.go:57] Monitoring proccess /var/run/keepalived.pid. PID: 20
[root@kubebox-node1 vagrant]#

Following up this was an issue with Linux itself and was fixed with
sudo chcon -Rt svirt_sandbox_file_t /var/lib/kubelet
References
https://bugzilla.redhat.com/show_bug.cgi?id=1317023
http://stackoverflow.com/questions/35338213/kubernetes-serviceaccounts-and-selinux


stop using South migrations

As of Django 1.8.6, this error will pop up when creating databases / migrating:
django.db.migrations.loader.BadMigrationError: Migrated app 'django_extensions' contains South migrations. Make sure all numbered South migrations are deleted prior to creating Django migrations.

See https://code.djangoproject.com/ticket/25618#comment:7 for further information.

The change seems to be already in master [1]. I think we just need a new pypi release.
[1] https://github.com/django-extensions/django-extensions/tree/master/django_extensions

indeed :)

Cool, thanks! :+1:


DRAFT: Add game loop

Summary by Sourcery
Implement core game mechanics for the Tamagotchi virtual pet, including state management, interaction handling, and game loop infrastructure
New Features:

Add play interaction functionality allowing users to interact with their Tamagotchi
Implement state management system to track and update Tamagotchi's status including happiness, health, and hunger levels
Create game tick system to periodically update Tamagotchi's state based on time and interactions

Enhancements:

Refactor database schema to use JSON columns for flexible status and metadata storage
Update memory management system to work with new database structure

Build:

Set up Inngest for handling scheduled tasks and background processing

Deployment:

Add Supabase database migrations for the new table structure

This is a benchmark review for experiment reviews_for_yhkli.
Run ID: reviews_for_yhkli/benchmark_2024-10-29T11-27-46_v1-23-0-113-g9fada7a5a-dirty.
This pull request was cloned from https://github.com/ykhli/AI-tamago/pull/8. (Note: the URL is not a link to avoid triggering a notification on the original pull request.)

Experiment configuration
review_config:
  # User configuration for the review
  # - benchmark - use the user config from the benchmark reviews
  # - <value> - use the value directly
  user_review_config:
    enable_ai_review: true
    enable_rule_comments: false

    enable_complexity_comments: benchmark
    enable_security_comments: benchmark
    enable_tests_comments: benchmark
    enable_comment_suggestions: benchmark
    enable_functionality_review: benchmark

    enable_pull_request_summary: benchmark
    enable_review_guide: benchmark

    enable_approvals: false

  ai_review_config:
    # The model responses to use for the experiment
    # - benchmark - use the model responses from the benchmark reviews
    # - llm - call the language model to generate responses
    model_responses:
      comments_model: benchmark
      comment_validation_model: benchmark
      comment_suggestion_model: benchmark
      complexity_model: benchmark
      functionality_model: benchmark
      security_model: benchmark
      tests_model: benchmark
      pull_request_summary_model: benchmark
      review_guide_model: benchmark
      overall_comments_model: benchmark

# The pull request dataset to run the experiment on
pull_request_dataset:
- https://github.com/ykhli/AI-tamago/pull/25
- https://github.com/ykhli/AI-tamago/pull/22
- https://github.com/ykhli/AI-tamago/pull/21
- https://github.com/ykhli/AI-tamago/pull/19
- https://github.com/ykhli/AI-tamago/pull/18
- https://github.com/ykhli/AI-tamago/pull/17
- https://github.com/ykhli/AI-tamago/pull/16
- https://github.com/ykhli/AI-tamago/pull/15
- https://github.com/ykhli/AI-tamago/pull/14
- https://github.com/ykhli/AI-tamago/pull/13
- https://github.com/ykhli/AI-tamago/pull/12
- https://github.com/ykhli/AI-tamago/pull/11
- https://github.com/ykhli/AI-tamago/pull/10
- https://github.com/ykhli/AI-tamago/pull/9
- https://github.com/ykhli/AI-tamago/pull/8
- https://github.com/ykhli/AI-tamago/pull/7
- https://github.com/ykhli/AI-tamago/pull/6
- https://github.com/ykhli/AI-tamago/pull/5
- https://github.com/ykhli/AI-tamago/pull/4
- https://github.com/ykhli/AI-tamago/pull/3
- https://github.com/ykhli/AI-tamago/pull/2
- https://github.com/ykhli/AI-tamago/pull/1

# Questions to ask to label the review comments
review_comment_labels: []
# - label: correct
#   question: Is this comment correct?

# Benchmark reviews generated by running
#   python -m scripts.experiment benchmark <experiment_name>
benchmark_reviews:
- dataset_pull_request: https://github.com/sourcery-ai/core/pull/4792
  review_pull_request: https://github.com/sourcery-ai-experiments/core/pull/414
- dataset_pull_request: https://github.com/ykhli/AI-tamago/pull/1
  review_pull_request: https://github.com/sourcery-ai-experiments/AI-tamago/pull/1

Reviewer's Guide by Sourcery
This PR implements a game loop system for a Tamagotchi virtual pet application. The changes include adding a play interaction feature, setting up state management for the Tamagotchi's status, implementing database tables for tracking status and interactions, and establishing a tick system for periodic updates.
Sequence diagram for Tamagotchi play interaction
sequenceDiagram
    actor User
    participant UI as Tamagotchi UI
    participant API as /api/interact
    participant DB as Supabase DB
    User->>UI: Click play button
    UI->>API: POST /api/interact
    Note over API: Process play interaction
    API->>DB: Save interaction
    DB-->>API: Confirm save
    API-->>UI: Return animation & status
    UI->>UI: Display animation
    UI->>UI: Reset to idle state after 9s

Sequence diagram for Tamagotchi state update
sequenceDiagram
    participant Tick as /api/tick
    participant State as StateManager
    participant DB as Supabase DB
    participant LLM as Language Model
    Tick->>State: Update state
    State->>DB: Fetch current status
    State->>DB: Fetch recent interactions
    State->>LLM: Generate new state based on interactions
    LLM-->>State: Return updated status
    State->>DB: Save new status

Entity relationship diagram for Tamagotchi database
erDiagram
    tamagotchi_status ||--o{ tamagotchi_interactions : has
    tamagotchi_status {
        serial id PK
        jsonb status
        timestamp updatedAt
    }
    tamagotchi_interactions {
        serial id PK
        varchar interaction
        jsonb metadata
        timestamp ts
    }

Class diagram for State Management
classDiagram
    class StateManager {
        -SupabaseClient dbClient
        -model
        +init()
        +update()
        +getInstance() StateManager
    }
    class MemoryManager {
        -SupabaseClient dbClient
        -model
        +init()
        +saveInteraction(interaction, metadata)
        +getInstance() MemoryManager
    }
    note for StateManager "Singleton pattern for managing Tamagotchi state"
    note for MemoryManager "Handles interaction persistence"

State diagram for Tamagotchi status
stateDiagram-v2
    [*] --> Idle
    Idle --> Playing: Play interaction
    Playing --> Idle: After 9s
    Idle --> StatusUpdate: Tick event
    StatusUpdate --> Idle: Update complete
    note right of StatusUpdate: Updates hunger,
happiness, and health

File-Level Changes

Change
Details
Files

Added play interaction functionality to the Tamagotchi component
Implemented playWithTamagotchi function with API interactionAdded animation and status state managementUpdated button click handler to use play interaction
src/components/Tamagotchi.tsx

Implemented state management system for Tamagotchi status
Created StateManager class with singleton patternAdded status update logic with LLM-based state determinationImplemented interaction history trackingAdded age progression mechanism
src/app/utils/state.ts

Updated database schema and initialization
Renamed tables from llamagotchi to tamagotchiAdded id fields as primary keysModified status table to use JSONB for flexible state storageUpdated seed data structure
supabase/migrations/20231029050944_init_tables.sqlsupabase/seed.sql

Set up periodic game tick system
Implemented tick route for status updatesAdded Inngest integration for potential scheduled tasksCreated API endpoints for game start and Inngest handler
src/app/api/tick/route.tssrc/app/api/start/route.tssrc/app/api/inngest/route.tssrc/inngest/client.tssrc/inngest/functions.ts

Tips and commands
Interacting with Sourcery

Trigger a new review: Comment @sourcery-ai review on the pull request.
Continue discussions: Reply directly to Sourcery's review comments.
Generate a GitHub issue from a review comment: Ask Sourcery to create an
issue from a review comment by replying to it.
Generate a pull request title: Write @sourcery-ai anywhere in the pull
request title to generate a title at any time.
Generate a pull request summary: Write @sourcery-ai summary anywhere in
the pull request body to generate a PR summary at any time. You can also use
this command to specify where the summary should be inserted.

Customizing Your Experience
Access your dashboard to:

Enable or disable review features such as the Sourcery-generated pull request
summary, the reviewer's guide, and others.
Change the review language.
Add, remove or edit custom review instructions.
Adjust other review settings.

Getting Help

Contact our support team for questions or feedback.
Visit our documentation for detailed guides and information.
Keep in touch with the Sourcery team by following us on X/Twitter, LinkedIn or GitHub.


Add stub functions to practice exercises T-Z

Closes #1893
We would like to add stub functions to the practice exercises so that students know what API they are expected to implement. We would also like to remove any API descriptions from test files as these may go out of sync with the code over time
This PR adds stubs for practice exercises starting with letters T through to Z and updates the associated test files accordingly
The following practice exercises have been omitted because they already have stubs defined:

tree-building
triangle
trinary - this exercise is also deprecated https://github.com/exercism/go/blob/d8d2082055301d6edc2c6040f894111d17e3c1c2/config.json#L1769-L1778
two-fer

FYI I updated the PR description so that the issue will be closed after this is merged. Solving that issue is really a big improvement for the Go track imo. Thanks again @PakkuDon!


Server actions

Is there any way to cache nextjs server actions? I have some forms that make a request via server actions but I can't find a way to cache that.

You have to add a runtimeCaching entry that matches POST requests:
const withPWA = require("@ducanh2912/next-pwa").default({
  runtimeCaching: [
    {
      method: "POST",
      urlPattern({ url, sameOrigin }) {
        return sameOrigin && url.pathname === "/post";
      },
      handler: "NetworkFirst",
    },
    ...defaultCache,
  ],
});

I'd reconsider caching POST requests though. There's not much point in that. You may be thinking of the Background Synchronization API, which helps you defer POST requests until the user is online.


"NameError: name 'Nitro_Diffusion' is not defined"

Please, can somebody help me? I keep getting this error shortly after I run the diffusion in the collab... I have no idea what am I supposed to do, I tried updating to python 3.10 but that didn't help, I also tried running the first command paragraph that says you are supposed to run it if you get any errors, but that didn't help either... it just suddenly stopped working... if someone had an answer it would be most appreciated! Thank you very much!😖☹
Here is a link to the Error Message that I'm getting:

The error has been fixed in the latest commit

Make sure to use the latest version under "File" -> "Revision history"


Profile Image shows blank.png instead of actual image

Plugin works like a charm except that profile images are not loaded. I deactivated caching and other optimizations but still nothing. It loads a blank.png instead.
Example: https://niklasbarning.de/2024/12/18/produktivitat-sinn-und-nachhaltigkeit-im-berufsleben/

Thank you for reporting this, and sorry about the trouble!
I will investigate and follow up.


feat: implement the test suite for 0x52 - MSTORE opcode

### Tasks
- [ ] Create the trait for the MSTORE opcode category
- [ ] Create the MSTORE opcode function, write it only as a panic_with_felt252('MSTORE not implement yet')
- [ ] Create the test suite for MSTORE, taking Geth's examples
- [ ] Create the test suite for MSTORE, taking Kakarot cairo0 examples
- [ ] Create the test suite for MSTORE, taking the evm.codes examples

Can I have this one please ?

Important update: we are gathering some bugs in the Kakarot v0 codebase, we need to make sure each issue and each PR in Kakarot-ssj is aware of the lists of known bugs. Look at this link everytime you take an issue and check your issue isn't targeted by a known bug.

Important update: we are gathering some bugs in the Kakarot v0 codebase, we need to make sure each issue and each PR in Kakarot-ssj is aware of the lists of known bugs. Look at this tracking issue everytime you take an issue and check your issue isn't targeted by a known bug. Will add this reminder in many places to make sure we keep track of known bugs.

Resolved in https://github.com/kkrt-labs/kakarot-ssj/pull/290


no flasher in bone-eMMC-flasher-debian-10.12-console images

The flasher is enabled in uEnv.txt:
debian@beaglebone:~$ tail -3 /boot/uEnv.txt
##enable Generic eMMC Flasher:
cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh

but nothing happens.  Probably because the scripts are missing:
debian@beaglebone:~$ ls /opt/scripts
ls: cannot access 'opt/scripts': No such file or directory

I tried all of these console image snapshots:
bone-eMMC-flasher-debian-10.12-console-armhf-2022-06-02-1gb.img.xz
bone-eMMC-flasher-debian-10.12-console-armhf-2022-07-01-1gb.img.xz
bone-eMMC-flasher-debian-10.12-console-armhf-2022-08-01-1gb.img.xz
all the same, no flasher.
Can I just copy /opt/scripts from the IOT snapshot, or is other stuff also missing?
Thank you!
rix

Sorry, regenerating the console image...  I've been moving things to a non /opt/scripts/ method for flashing, looks like i didn't finish that in buster.
Should have something uploaded in a hour or two.
Regards,

@rickyketch please verfy with:
https://rcn-ee.net/rootfs/bb.org/testing/2022-08-04/buster-console-armhf/
and i'll update the forum post..
thank you!

I tested bone-eMMC-flasher-debian-10.12-console-armhf-2022-08-04-1gb.img.xz.
eMMC flashing worked as expected.
Thank you Robert!


Pixhawk Pro lockup after mag cal

I just flashed latest master on a pixhawk v3 pro and noticed the following behavior:

Selected airframe -> reboot
Calibrated gyro, calibrated accel
Did the mag calibration (internal only) and got a message like "Mag 1 fail: TOUT"
Shortly after the board seemed to lock up (LED was solid red) and QGC lost connection.
When I rebooted the board the sensors were still calibrated but the airframe parameter was set to 0.
The second time I tried it everything was ok.

Can't reproduce on my pixhawk pro

Manually changing the CAL+MAG_XOFF did indeed crash the FC

@klopezal could you have a look

@klopezal Can you re-try this on a current board?

Can't reproduce with V1.3 modifications, but I'd like to instrument to make sure it is not a hidden problem.

Since the HW is not widely deployed and its unclear if this still persists moving out to next release.

Unable to reproduce on V1.2 with jumper, waiting for V1.3 to validate and close.


Fix some bug on GUI

I split the fixes into 3 commits, here the explenations :

https://github.com/boltgolt/howdy/commit/0e4aaa0c47ed0a90831fc071ced6de890128c29c For example, on fedora Howdy is installed in lib64 instead of lib
https://github.com/boltgolt/howdy/commit/2e2c1ac1969e65c6ca992bb43e7233c2733d8d38. On many laptop the camera is split into many /dev/video descriptor. At least 2 for 'gray camera' and 'color camera'. But there may also be others that are "useless", it is impossible to read an image with these file descriptors.
https://github.com/boltgolt/howdy/commit/4f7c65615c4043df2245bd49162fef0e163f7bad Most of the time the camera list is not displayed, I swapped the display instruction order and since then it works in 100% of the cases.

PS: I'll try to start integrating linux-enable-ir-emitter with Howdy. If you're still up for it ?

Amazing, thank you for checking out the GUI! I'm still very much up for integrating linux-enable-ir-emitter cleanly, just a tad busy atm


Sort highlight rules in alphabetical order

Done https://github.com/CherryPerry/Amiami-android-app/commit/a36cd170a32c6a89ae6ca9dfe2924277dbb493d8 https://github.com/CherryPerry/Amiami-android-app/commit/82fc01971cb511a30b656367ac38fb4c10812809


Reaffirm Architecture Decision

Since we have 2 full time frontend engineers and 2 part time + 1 full time backend engineers, I think it makes more sense to make the frontend a single page application, and having the backend engineers write a RESTful API instead of server rendered.
We will disucss this in the first sprint meeting.

Decided to separate front-end to https://github.com/source-academy/cadet-frontend as SPA


Countdown issue

Hello,
Is there any reason why the countdown doesn't work? It works when you set the date as:
<Countdown
  date={Date.now() + 5000}
  renderer={renderCounter}
/>

But not as:
<Countdown
  date={startDate}
  renderer={renderCounter}
/>

the startDate is updated with the candy machine's date, so it's maybe why your value is not right

the startDate is updated with the candy machine's date, so it's maybe why your value is not right

What solution did you implement to fix this? It seems to be the original code

My date is correct and the counter is acting the same way  @richardj97 describes.

add 000 to REACT_APP_CANDY_START_DATE

@the-wuh instead of the UNIX time or before the UNIX time?

add 000 to REACT_APP_CANDY_START_DATE

Wow something as simple as that fixes it haha. Thanks :)

Like prepend 000 to the REACT_APP_CANDY_START_DATE??
so instead of REACT_APP_CANDY_START_DATE=1632355920
do REACT_APP_CANDY_START_DATE=0001632355920??

nevermind its add them ahaha my bad so this
1632355920000

gotcha


Added Yorkie by @carlbutron

Yorkie: This app will help you, in an easy way, taking care of your dog.
https://github.com/carlbutron/YorkieApp
https://itunes.apple.com/en/app/Yorkie/id1000836606

Thanks!


Adjust log messages in testdir

I found some issues with the makefiles in testdir:

messages wasn't shown with Make_dos.mak.
test.log was shown twice with Makefile.

I think similar changes are needed for testdir/Make_ming.mak, but I haven't updated it this time...


Added Decode string.cpp

Please don't forget to star the repository. It would be highly appreciable.


[BUG] -Interactive not working after upgrade to 2.7

Reporting an Issue or Missing Feature
I've just upgraded to 2.7 and when I try Connect-PnPOnline with -Interactive (because we have MFA) I get the following warning:
WARNING: Connecting with -Interactive uses the PnP Management Shell multi-tenant App Id for authentication. It is strongly recommended to register your own EntraID App for authentication. See the documentation for Register-PnPEntraIDApp.
which is fine. The problem is that nothing happens after that - the command just pauses. I have to BREAK to get the console back.
Expected behavior
The command should launch the interactive login console.
Actual behavior
As above, nothing happens after the warning appears.
Steps to reproduce behavior

upgrade to 2.7
try connect with `Connect-PnPOnline "https://[tenant].sharepoint.com/" -Interactive

What is the version of the Cmdlet module you are running?
3.7
Which operating system/environment are you running PnP PowerShell on?

[x] Windows

Thank you for reporting it. We just noticed it ourselves in are debugging the cause as we speak. We noticed it is work as expected on MacOS, so it seems a Windows specific problem.

Thanks Erwin. Will wait to hear from you

We did some testing and can confirm that 2.7.0 does not behave correctly on Windows. However, the latest nightly build does work as expected. You can install this one with
Install-Module -Name PnP.PowerShell -AllowPrerelease
We will work on getting a new release out tomorrow. I will unlist version 2.7.0 from the PowerShell Gallery for now.

@HiltonGiesenow : we released version 2.8.0.

looks good, thank you!


Update .gitignore

Ignore all .pyc files
Switch from specific bazel paths to just /bazel-*. This works better
because the exact name of the bazel directory changes based on the
name of the repo directory. For example, if you clone magenta into a
directory called magenta-work, bazel will create a bazel-magenta-work
directory.

LGTM


chore: Documentation Updates for Performance Manager

Updates to documentation to reflect current status of performance manager.
Asana Task: https://app.asana.com/0/1204727474869601/1204614792357245

LGTM 🍰


add Google to working group members list

Adds Google logo to the working group members page. Logo taken from Eclipse Foundation members page
Checklist

[x] npm test passes
[ ] documentation is changed or added (if applicable)
[ ] permission has been obtained to add new logo (if applicable)
[x] contribution guidelines followed here

Adds Google logo to the working group members page. Logo taken from Eclipse Foundation members page

Specifically this page https://www.eclipse.org/membership/showMember.php?member_id=1592
hence:

[x]  permission has been obtained to add new logo (if applicable)


intro-swivel downloads external code

It looks like the https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/official/matching_engine/intro-swivel.ipynb notebook downloads code from a Cloud Bucket
gsutil cp gs://cloud-samples-data/vertex-ai/matching-engine/swivel/pipeline/* .`
It isn't really standard practice to download external code to run. This means that code might not be tested/reviewed and could change at any time.
Notebooks in this repo must be self-contained notebooks, with all code inside the notebook..
Preferred solution: Rewrite the .sh files as code inside the notebook.
Alternative solution: Move your notebook to "community-content"

notebook no longer exists


npm video

the npm video does not match what you get when you actually go to cloud9 and create account, etc... need to update!

Challenge Name

Issue Description

Browser Information

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

@tspelle, please provide more details on the issue.

Closing as stale. Please reopen if this issue is legitimate!

Look at first npm video and execute actions, you'll see that screens, urls,
actions do not match... Ypu should update. A tutorial video is supposed to
help, but it confused me. Thanks.
On Sep 4, 2016 06:55, "Jonathan"<EMAIL_ADDRESS>wrote:

Closing as stale. Please reopen if this issue is legitimate!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/FreeCodeCamp/FreeCodeCamp/issues/10452#issuecomment-244604671,
or mute the thread
https://github.com/notifications/unsubscribe-auth/APhs0Te-wdFJ6_hTwe8OQZyLd0RmHKqZks5qms3BgaJpZM4J0OTg
.

@tspelle, we will be replacing that challenge with our own challenges very soon!


Eslint integration

Today if we use the hbs strategy, we get eslint issues due to unused variables. The glimmerx project has a eslint-plugin that solves this issue. Should we extend that project to account for ember-template-imports or should we create a new project specifically for this project?
The changes in glimmerx is minimal,
from this: https://github.com/glimmerjs/glimmer-experimental/blob/master/packages/%40glimmerx/eslint-plugin/lib/rules/template-vars.js#L47-L49
to this:
        if (isGlimmerSfc || (node.parent.source.value !== '@glimmerx/component' && node.parent.source.value !== 'ember-template-imports')) {
          return;
        }

@pzuraq I believe you had ESLint stuff working with this at one point?

I have this implemented here: https://github.com/ember-cli/eslint-plugin-ember/pull/1395

gonna close -- this has shipped in ember-cli@beta rn


[PAGOPA-1228] new jdbc string

List of Changes

new jdbc string
Motivation and Context

to resolve the JDCB Connection error
How Has This Been Tested?

Screenshots (if appropriate):
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

applied to DEV  manually


Question: can we do any better on providing start and end ranges for loader errors?

I'm building a Sublime Text plugin to work with the Go langserver, and a feature I'd like is to underline the error causing symbols when you have some code that is broken.
In app.go in sourcegraph/sourcegraph, I added "aaa" to the end of the http.Handler return argument for the first method.
The langserver returned the following (not the same start and end):
{"method":"textDocument/publishDiagnostics","params":{"uri":"file:///Users/mattfs/gopath/src/sourcegraph.com/sourcegraph/sourcegraph/app/app.go","diagnostics":[{"range":{"start":{"line":25,"character":34},"end":{"line":25,"character":34}},"severity":1,"source":"go","message":"Handleraa not declared by package http"}]},"jsonrpc":"2.0"}

The errors are getting created here:
https://sourcegraph.com/github.com/sourcegraph/go-langserver/-/blob/langserver/diagnostics.go#L56-61
And you can see that we are purposefully setting start and end the same.
Maybe this is a limitation of whatever tool is creating the errors to begin with, I added some logging, and the full error text is:
/Users/mattfs/gopath/src/sourcegraph.com/sourcegraph/sourcegraph/app/app.go:26:35: Handleraa not declared by package http

Not urgent at all (the workaround is just to underline the token, in his case that would get us to underline "http," not "http.Handleraaa," but close enough). Was just wondering if there was some obvious verbosity setting we could pass whatever generated the error, and we could get end line number too.

Man sourcegraph is pretty epic, I got an answer for you by just using our features from that link :D
So it seems the only place that generates errors from typechecking is here<EMAIL_ADDRESS>That seems to only send error's with this type https://sourcegraph.com/github.com/golang/go@go1.7.1/-/blob/src/go/types/api.go#L41:6 which includes an FSet and Pos, so we can probably go backwards to a node to get a range :) I'll see how easy that is to do.


pin mux table doesn't show 'a' vs. 'b' on the P8 and P9 header pins.

The following pru pins appear on both the 'a' and 'b' sides of the pin headers, but the table doesn't show which side it's on.  Here are the pins and their bit numbers.
Header  a       b
P8_27   17   16
P8_32   12    0
P8_45   18    13
P8_46   19    20
P9_31   10    7

Can you please link to the table or section the table is in, like https://github.com/beagleboard/beaglebone-ai/wiki/System-Reference-Manual#pru-icss1-pin-access ?
Also, please feel free to edit the wiki page.


S3 Storage Support to deepforge using aws-sdk(Closes #1386)

Add S3 Storage Support to DeepForge using aws-sdk client.

I am getting "Object name contains unsupported characters" when trying to run an execution with this using play.min.io. This is related to https://github.com/minio/minio/issues/5874 and https://github.com/deepforge-dev/deepforge/issues/1438


how to support for harmonyOS ?

how to support for harmonyOS ?

A better place to ask that question would be on the boost developer's mailing list (subscribe here: https://lists.boost.org/mailman/listinfo.cgi/boost
You should probably provide some information about HarmonyOS for people who are not familiar with it.


Shrine: app bar is redraw when item grows to fullscreen

Taking a look at https://material-design.storage.googleapis.com/publish/material_v_8/material_ext_publish/0B14F_FSUCc01emlGOWRnRkpMOVk/GoodTransition_QuickDo-v4.webm
On iOS build of gallery, it looks like the app bar flashes when I tap an item to go fullscreen. You can see the text "SHRINE" flash.
For a slow-mo video of the behavior, see https://drive.google.com/a/google.com/file/d/0B-w2rH1ryIJdVVF4SE5RRkJGVEE/view?usp=sharing
Protip: when viewing that slow-mo video, use playback controls to play it back at .5 speed. The effect is very noticable then.

It looks like, when we tap on an item picture, we create a new app bar and start animating that up. Looking at the video from the material spec, it appears we should only be animating the image itself. The app bar stays in place and no new app bar is created.

Yeah we need an iris wipe effect or some such.
On Tue, Jun 7, 2016 at 5:39 PM Seth Ladd<EMAIL_ADDRESS>wrote:

It looks like, when we tap on an item picture, we create a new app bar and
start animating that up. Looking at the video from the material spec, it
appears we should only be animating the image itself. The app bar stays in
place and no new app bar is created.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/4441#issuecomment-224455541,
or mute the thread
https://github.com/notifications/unsubscribe/AAhpHI2o35PUUAszO8YuS9n9SSlX3loUks5qJg8wgaJpZM4Iwelg
.

Oh actually I see from the first video you posted that there's a defined effect we're supposed to do involving moving the card up.

In the video the product card's text fades out as the card  moves/expands and then the card's new content fades in.  At the same time drawer button morphs into a non-standard back button. There's much to do here.

Related to https://github.com/flutter/flutter/issues/4442, @HansMuller recommends punting this from the first gallery release.

The gallery has this fixed. The app bar is not hero'd when an item transitions up.


PEM_read_bio_PrivateKey_ex() ignores the supplied property query

I'm building 3.0.7 with enable-fips and attempting to use a FIPS configuration as the default via a config file.
The code is attempting to load a private key file encrypted using 'pbeWithSHA1And3-KeyTripleDES-CBC', generated by "openssl genrsa -des3". This requires relaxing the FIPS mode and allowing non-FIPS algorithms for the decrypt. I've tried the following property queries:
"?fips=yes"
"-fips"
"?provider=default"

None of these seem to have any effect.
Alternatively if I run with a non-FIPS configuration file and use "fips=yes" as property query the decode succeeds, which it probably shouldn't!
My repro code is:
#include <stdio.h>
#include <string.h>

#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/core_names.h>
#include <openssl/err.h>
#include <openssl/provider.h>

#define KEY_FILE         "key.pem"
#define PASSWORD_FILE    "pass"
#define PROVIDER_PATH    "openssl-3.0.7/providers"

static EVP_PKEY *privkey = NULL;

int OpenSsl_configure(char* modules_path, char* config_file)
{
    int ret;

    if (modules_path == NULL || config_file == NULL)
        goto err;

    ret = OSSL_PROVIDER_set_default_search_path(NULL, modules_path);
    if (!ret)
        goto err;

    ret = OSSL_LIB_CTX_load_config(NULL, config_file);
    if (!ret)
        goto err;

    if (!EVP_default_properties_is_fips_enabled(NULL)) {
        printf("WARNING: FIPS is not enabled\n");
    } else {
        printf("INFO: FIPS is enabled\n");
    }

    if (!OSSL_PROVIDER_available(NULL, "fips")) {
        printf("WARNING: Failed to retrieve fips provider\n");
    }

    printf("Successfully configured OpenSSL\n");
    return 1;
err:
    return 0;
}

static pem_password_cb pass_pw;
static int pass_pw(char *buf, int size, int rwflag, void *userdata)
{
    int read;
    BIO * pb = BIO_new_file(PASSWORD_FILE, "rb");

    read = BIO_read(pb, buf, size);
    buf[read] = 0;
    return read-1;
}

int main(int argc, char *argv[])
{
    BIO *bio_out = BIO_new_fp(stdout, BIO_NOCLOSE);
    char *privkeyin = KEY_FILE;
    BIO  *privkeybio = NULL;

    printf("Using config file %s\n", argv[1]);
    if (!OpenSsl_configure(PROVIDER_PATH, argv[1])) {
        printf("ERROR: Failed to configure OpenSSL\n");
        goto err;
    }

    privkeybio = BIO_new_file(privkeyin, "r");
    if (!privkeybio) {
        printf("ERROR: Failed to create bio\n");
        goto err;
    }

    char *propq = "?fips=yes";
    printf("Decoding private key with property string '%s'\n", propq);
    if (!PEM_read_bio_PrivateKey_ex(privkeybio, &privkey, &pass_pw, NULL, NULL, propq)) {
        printf("ERROR: Failed to read private key\n");
        BIO_free(privkeybio);
        goto err;
    }

    BIO_free(privkeybio);
    printf("Success!\n");
    return 0;
err:
    ERR_print_errors(bio_out);
    return 1;
}

This is a bug..
Most encoders/decoders do not currently use propq inside their decode functions...
e.g. epki2pki_decode() calls PKCS12_pbe_crypt_ex(...., PROV_LIBCTYX_OF(ctx->provctx), NULL);
where the NULL represents the propq.
Structures such as epki2pki_ctx_st do not contain a propq.
Also the newctx dispatch method does not pass it, and most ctx's dont have a set_ctx_params currently..
The only one that does handle a propq is key2any_set_ctx_params() which handles a cipher and propq via OSSL_ENCODER_CTX_set_cipher().
SO we would need to either handle set_ctx_params for most ctx's or have a new_ctx_ex() that passes the propq.

The workaround is to apply the fips=yes as the default property query instead.

All decoders are FIPS :grin: They might need non-FIPS algorithms to load stuff.
+1 for setting the default property query and disabling it while loading or setting it to fips=?yes (which isn't so safe).
An alternate libctx ought to be workable, although it's going to be messy if you want to move the key between libctxs.
An alternate libctx with a default property query of fips=?yes ought to be workable however.

Swapping the global property to something else and then swapping it back doesnt seem very safe.
Just to reiterate the decoder and encoder dispatch functions sitting inside the ctx objects, are currently passing NULL as the propq internally.

I am not saying not applying the property query isn't a bug. Although I assume the fix will be quite invasive.

To reproduce this problem you can use the script:
#
# Test the pem decoder in fips mode
#

export OPENSSL_DIR="../"
export OPENSSL_MODULES="$OPENSSL_DIR/providers"

set -e

echo "Creating conf files"

echo '''
openssl_conf = openssl_init

config_diagnostics = 1
''' > template.cnf

cat $OPENSSL_MODULES/fipsmodule.cnf >> template.cnf

echo '''
[openssl_init]
providers = provider_sect
alg_section = algorithm_sect

[provider_sect]
default = default_sect
fips = fips_sect

[default_sect]
activate = 1

[algorithm_sect]
''' >> template.cnf

# Create three configs for the tests
cp template.cnf osl-nonfips.cnf
echo "default_properties = " >> osl-nonfips.cnf
cp template.cnf osl-strictfips.cnf
echo "default_properties = fips=yes" >> osl-strictfips.cnf
cp template.cnf osl-preferredfips.cnf
echo "default_properties = ?fips=yes" >> osl-preferredfips.cnf

echo "Generating key"

echo "password" > pass
openssl genrsa -des3 -passout file:pass -out key.pem

echo "Reading key (default)"
openssl pkey -in key.pem -passin file:pass -noout -text

echo "Building test app"
gcc -I $OPENSSL_DIR/include -L $OPENSSL_DIR -lcrypto pkey_read.c -o pkey_read

set +e
echo "Running test app"

LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-nonfips.cnf ""
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-nonfips.cnf "-fips"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-nonfips.cnf "?fips=yes"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-nonfips.cnf "fips=yes"

LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-preferredfips.cnf ""
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-preferredfips.cnf "-fips"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-preferredfips.cnf "?fips=yes"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-preferredfips.cnf "fips=yes"

LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-strictfips.cnf ""
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-strictfips.cnf "-fips"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-strictfips.cnf "?fips=yes"
LD_LIBRARY_PATH=$OPENSSL_DIR ./pkey_read osl-strictfips.cnf "fips=yes"

echo "Done"

And copy this code into a file pkey_read.c:
/**
 * Test app for pem encrypted key decode issue
 *
 * Usage: pkey_read <config-file> <prop-query>
 */

#include <stdio.h>
#include <string.h>

#include <openssl/bio.h>
#include <openssl/pem.h>
#include <openssl/core_names.h>
#include <openssl/err.h>
#include <openssl/provider.h>

#define KEY_FILE         "key.pem"
#define PASSWORD_FILE    "pass"

static EVP_PKEY *privkey = NULL;

int OpenSsl_configure(char* config_file)
{
    if (config_file == NULL)
        goto err;

    if (!OSSL_LIB_CTX_load_config(NULL, config_file))
        goto err;

    if (!EVP_default_properties_is_fips_enabled(NULL)) {
        printf("WARNING: FIPS is not enabled\n");
    } else {
        printf("INFO: FIPS is enabled\n");
    }

    if (!OSSL_PROVIDER_available(NULL, "fips")) {
        printf("WARNING: Failed to retrieve fips provider\n");
    }

    printf("Successfully configured OpenSSL\n");
    return 1;
err:
    return 0;
}

static pem_password_cb pass_pw;
static int pass_pw(char *buf, int size, int rwflag, void *userdata)
{
    int read;
    BIO * pb = BIO_new_file(PASSWORD_FILE, "rb");

    read = BIO_read(pb, buf, size);
    buf[read] = 0;
    return read-1;
}

int main(int argc, char *argv[])
{
    BIO *bio_out = BIO_new_fp(stdout, BIO_NOCLOSE);
    char *privkeyin = KEY_FILE;
    BIO  *privkeybio = NULL;

    if (argc != 3) {
        printf("ERROR: Please supply a config file and query string\n");
        goto err;
    }

    printf("Using config file %s\n", argv[1]);
    if (!OpenSsl_configure(argv[1])) {
        printf("ERROR: Failed to configure OpenSSL\n");
        goto err;
    }

    privkeybio = BIO_new_file(privkeyin, "r");
    if (!privkeybio) {
        printf("ERROR: Failed to create bio\n");
        goto err;
    }

    char *propq = argv[2];
    printf("Decoding private key with property string '%s'\n", propq);
    if (!PEM_read_bio_PrivateKey_ex(privkeybio, &privkey, &pass_pw, NULL, NULL, propq)) {
        printf("ERROR: Failed to read private key\n");
        BIO_free(privkeybio);
        goto err;
    }

    BIO_free(privkeybio);
    printf("Success!\n");
    return 0;
err:
    ERR_print_errors(bio_out);
    return 1;
}

All of the non-FIPS and FIPS-preferred configuration test cases will succeed, whatever the query string.
All strict-FIPS test cases will fail even with a query disabling FIPS.

Thanks team!


Fix u-boot-fw-utils build for mender support

Broken with changes in d377317bfc3bd3e9365602d91e3fdeb5960de07d where
u-boot specific install steps were placed in common file shared with
fw-utils-tegra.  Fix naming of u-boot-common file and add a note that
this is shared with fw-utils.

@madisongh the mender build is working for me on the warrior branch with this commit see this project.  Let me know if you'd like me to test any other branches or would like any changes to the PR.

Thanks.  I tweaked this a bit to remove the gratuitous filename change and merged manually.
And I'll add building u-boot-fw-utils to my tests, which would have caught this sooner.


HBASE-25723 Temporarily remove the trace support for RegionScanner.next

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 27s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  1s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
3m 54s
HBASE-22120 passed

+1 :green_heart:
compile
3m  8s
HBASE-22120 passed

+1 :green_heart:
checkstyle
1m  6s
HBASE-22120 passed

+1 :green_heart:
spotbugs
2m 10s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 37s
the patch passed

+1 :green_heart:
compile
3m  9s
the patch passed

+1 :green_heart:
javac
3m  9s
the patch passed

+1 :green_heart:
checkstyle
1m  3s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
17m 58s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.

+1 :green_heart:
spotbugs
2m 11s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 15s
The patch does not generate ASF License warnings.

46m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux ad07c2e106b1 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-1.8.0_282-b08

Max. process+thread count
96 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
4m 18s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
4m  9s
HBASE-22120 passed

+1 :green_heart:
compile
1m  2s
HBASE-22120 passed

+1 :green_heart:
shadedjars
8m 20s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 40s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 43s
the patch passed

+1 :green_heart:
compile
1m  0s
the patch passed

+1 :green_heart:
javac
1m  0s
the patch passed

+1 :green_heart:
shadedjars
8m  8s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 36s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
149m  2s
hbase-server in the patch passed.

183m 21s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux b7bca75a9819 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-1.8.0_282-b08

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/testReport/

Max. process+thread count
4443 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 17s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
5m  2s
HBASE-22120 passed

+1 :green_heart:
compile
1m 27s
HBASE-22120 passed

+1 :green_heart:
shadedjars
10m  3s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 48s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
5m 43s
the patch passed

+1 :green_heart:
compile
1m 35s
the patch passed

+1 :green_heart:
javac
1m 35s
the patch passed

+1 :green_heart:
shadedjars
9m 50s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 46s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
226m 18s
hbase-server in the patch passed.

264m 56s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux dda5ea8e84b8 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-11.0.10+9

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/testReport/

Max. process+thread count
3085 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/1/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 12s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
4m  1s
HBASE-22120 passed

+1 :green_heart:
compile
3m 12s
HBASE-22120 passed

+1 :green_heart:
checkstyle
1m  3s
HBASE-22120 passed

+1 :green_heart:
spotbugs
2m  4s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 40s
the patch passed

+1 :green_heart:
compile
3m 12s
the patch passed

+1 :green_heart:
javac
3m 12s
the patch passed

+1 :green_heart:
checkstyle
1m  6s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
18m 17s
Patch does not cause any errors with Hadoop 3.1.2 3.2.1 3.3.0.

+1 :green_heart:
spotbugs
2m 15s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 16s
The patch does not generate ASF License warnings.

48m  8s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
dupname asflicense javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux b5984723c1e0 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-1.8.0_282-b08

Max. process+thread count
95 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/console

versions
git=2.17.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 33s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
4m 41s
HBASE-22120 passed

+1 :green_heart:
compile
1m 14s
HBASE-22120 passed

+1 :green_heart:
shadedjars
10m 42s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 41s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 41s
the patch passed

+1 :green_heart:
compile
1m 17s
the patch passed

+1 :green_heart:
javac
1m 17s
the patch passed

+1 :green_heart:
shadedjars
11m 33s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 43s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
157m 58s
hbase-server in the patch passed.

196m 23s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 6d7c958f39f9 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-1.8.0_282-b08

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/testReport/

Max. process+thread count
4623 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
1m 27s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-22120 Compile Tests _

+1 :green_heart:
mvninstall
4m 48s
HBASE-22120 passed

+1 :green_heart:
compile
1m 20s
HBASE-22120 passed

+1 :green_heart:
shadedjars
9m  7s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 45s
HBASE-22120 passed

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
4m 51s
the patch passed

+1 :green_heart:
compile
1m 30s
the patch passed

+1 :green_heart:
javac
1m 30s
the patch passed

+1 :green_heart:
shadedjars
9m 16s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 41s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
208m 50s
hbase-server in the patch passed.

244m 30s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/3119

Optional Tests
javac javadoc unit shadedjars compile

uname
Linux 760a579129d6 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-22120 / 226d1fb61d

Default Java
AdoptOpenJDK-11.0.10+9

Test Results
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/testReport/

Max. process+thread count
2888 (vs. ulimit of 30000)

modules
C: hbase-server U: hbase-server

Console output
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3119/2/console

versions
git=2.17.1 maven=3.6.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


Assignment 1 gkc24

Added profile picture,
Added people file
Updated readme file

Resolved @amfleming , please review again !


burn and mint contract does not work in testnet

Hi guys! I am building a swap NFTs contract: you send a NFT from an old collection and it sends you back a NFT from a new collection. It is working and passing the tests but in a testnet I am not able to send the new NFT (it does not fail or anything but it simply does not send the new NFT)
If you know cosmWASM could you take a look? The specific function is in src/execute.rs and its code is:
use std::marker::PhantomData;
use cosmwasm_std::{from_json, Addr, Empty, MessageInfo, Response};
use cw721::Cw721ReceiveMsg;
use cw721_base::msg::ExecuteMsg as Cw721ExecuteMsg;
use cw721_base::helpers::Cw721Contract;

use crate::{msg::InnerMsg, ContractError};

pub fn receive_nft(info: MessageInfo, receive_msg: Cw721ReceiveMsg) -> Result<Response, ContractError> {
    let token_id = receive_msg.token_id.as_str();
    let recipient = receive_msg.sender.as_str();
    let inner_msg: InnerMsg = from_json(&receive_msg.msg)?;
    let new_collection_addr = inner_msg.new_collection_addr;

    let old_collection_env_addr = info.sender.as_str();
    let old_collection_addr = Addr::unchecked("sei1exm3fjundhdzf6wng3xcny4nhjlawwmztxd286f35zcvx4mav4jqcnese6");
    if old_collection_addr != old_collection_env_addr {
        return Err(ContractError::Unauthorized {});
    }

    let burn_msg: cw721_base::ExecuteMsg<Empty, Empty> = Cw721ExecuteMsg::Burn {
        token_id: token_id.to_string()
    };
    Cw721Contract::<Empty, Empty>(
        old_collection_addr.clone(),
        PhantomData,
        PhantomData
    ).call(burn_msg).unwrap();

    let mint_msg: cw721_base::ExecuteMsg<Empty, Empty> = Cw721ExecuteMsg::TransferNft {
        recipient: recipient.to_string(),
        token_id: token_id.to_string() as String
    };
    Cw721Contract::<Empty, Empty>(
        new_collection_addr.clone(),
        PhantomData,
        PhantomData
    ).call(mint_msg).unwrap();

    let response = Response::new();
    // Return the response
    Ok(
        response
            .add_attribute("action", "burn_to_mint")
            .add_attribute("old_collection", old_collection_addr.to_string())
            .add_attribute("old_collection_env", old_collection_env_addr.to_string())
            .add_attribute("new_collection", new_collection_addr.to_string())
            .add_attribute("recipient", recipient.to_string())
            .add_attribute("token_id", token_id.to_string())
    )
}

old collection:
✔ CW721 Contract deployed to SEI blockchain. Contract Code ID: 6528
✔ Collection registered to Lighthouse
Transaction hash: FBD4A2A8E3D07222B714D09126ABCDBBF85637FE8E0FD70418C14DEDE1177557
Collection address: sei1exm3fjundhdzf6wng3xcny4nhjlawwmztxd286f35zcvx4mav4jqcnese6

new collection:
✔ CW721 Contract deployed to SEI blockchain. Contract Code ID: 6543
✔ Collection registered to Lighthouse
Transaction hash: B86C9E196D28EAE4377E7E00AABFADAA9B0AB7E1573AA451FF9DAC15F82C2FF2
Collection address: sei1hk432lyxulw63utftn8x9wk28pcsrnyva2jnuue7sds85vzdz99st36w3l

Code repository: https://github.com/NicoSerranoP/swap-nft-template
last transaction (didnt work): https://www.seiscan.app/atlantic-2/txs/A7335472CEAC5D455A67A41917D2FD21DA2794276A31A73223755C6CCC30A25B

did you mint the new nft before trying to transfer it? are you calling
the transfer msg from the current nft owner?
let mint_msg: cw721_base::ExecuteMsg<Empty, Empty> =
Cw721ExecuteMsg::TransferNft {
recipient: recipient.to_string(),
token_id: token_id.to_string() as String
};
On Tue, Feb 27, 2024 at 9:48 AM Nico Serrano @.***>
wrote:

Hi guys! I am building a swap NFTs contract: you send a NFT from an old
collection and it sends you back a NFT from a new collection. It is working
and passing the tests but in a testnet I am not able to send the new NFT
(it does not fail or anything but it simply does not send the new NFT)
If you know cosmWASM could you take a look? The specific function is in
src/execute.rs and its code is:
use std::marker::PhantomData;use cosmwasm_std::{from_json, Addr, Empty, MessageInfo, Response};use cw721::Cw721ReceiveMsg;use cw721_base::msg::ExecuteMsg as Cw721ExecuteMsg;use cw721_base::helpers::Cw721Contract;
use crate::{msg::InnerMsg, ContractError};
pub fn receive_nft(info: MessageInfo, receive_msg: Cw721ReceiveMsg) -> Result<Response, ContractError> {
let token_id = receive_msg.token_id.as_str();
let recipient = receive_msg.sender.as_str();
let inner_msg: InnerMsg = from_json(&receive_msg.msg)?;
let new_collection_addr = inner_msg.new_collection_addr;
let old_collection_env_addr = info.sender.as_str();
let old_collection_addr = Addr::unchecked("sei1exm3fjundhdzf6wng3xcny4nhjlawwmztxd286f35zcvx4mav4jqcnese6");
if old_collection_addr != old_collection_env_addr {
    return Err(ContractError::Unauthorized {});
}

let burn_msg: cw721_base::ExecuteMsg<Empty, Empty> = Cw721ExecuteMsg::Burn {
    token_id: token_id.to_string()
};
Cw721Contract::<Empty, Empty>(
    old_collection_addr.clone(),
    PhantomData,
    PhantomData
).call(burn_msg).unwrap();

let mint_msg: cw721_base::ExecuteMsg<Empty, Empty> = Cw721ExecuteMsg::TransferNft {
    recipient: recipient.to_string(),
    token_id: token_id.to_string() as String
};
Cw721Contract::<Empty, Empty>(
    new_collection_addr.clone(),
    PhantomData,
    PhantomData
).call(mint_msg).unwrap();

let response = Response::new();
// Return the response
Ok(
    response
        .add_attribute("action", "burn_to_mint")
        .add_attribute("old_collection", old_collection_addr.to_string())
        .add_attribute("old_collection_env", old_collection_env_addr.to_string())
        .add_attribute("new_collection", new_collection_addr.to_string())
        .add_attribute("recipient", recipient.to_string())
        .add_attribute("token_id", token_id.to_string())
)}

old collection:
✔ CW721 Contract deployed to SEI blockchain. Contract Code ID: 6528
✔ Collection registered to Lighthouse
Transaction hash: FBD4A2A8E3D07222B714D09126ABCDBBF85637FE8E0FD70418C14DEDE1177557
Collection address: sei1exm3fjundhdzf6wng3xcny4nhjlawwmztxd286f35zcvx4mav4jqcnese6
new collection:
✔ CW721 Contract deployed to SEI blockchain. Contract Code ID: 6543
✔ Collection registered to Lighthouse
Transaction hash: B86C9E196D28EAE4377E7E00AABFADAA9B0AB7E1573AA451FF9DAC15F82C2FF2
Collection address: sei1hk432lyxulw63utftn8x9wk28pcsrnyva2jnuue7sds85vzdz99st36w3l
Code repository: https://github.com/NicoSerranoP/swap-nft-template
last transaction (didnt work):
https://www.seiscan.app/atlantic-2/txs/A7335472CEAC5D455A67A41917D2FD21DA2794276A31A73223755C6CCC30A25B
—
Reply to this email directly, view it on GitHub
https://github.com/CosmWasm/cw-nfts/issues/157, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADRXUROQJTHO2E5IP5UVHTYVYE6LAVCNFSM6AAAAABD4OZ3UCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGE2TOMJSGI4DSMA
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Yes! I minted the new NFTs and send them all to the contract address using transfer_nft. The contract is the owner of all the NFTs and only transfer them if it receives the old nft

I solved it by adding the callbacks to the response object:
// ...

let burn_callback = Cw721Contract::<Empty, Empty>(
        old_collection_addr.clone(),
        PhantomData,
        PhantomData
    ).call(burn_msg)?;

    let mint_msg: cw721_base::ExecuteMsg<Empty, Empty> = Cw721ExecuteMsg::TransferNft {
        recipient: recipient.to_string(),
        token_id: token_id.to_string() as String
    };
    let mint_callback = Cw721Contract::<Empty, Empty>(
        new_collection_addr.clone(),
        PhantomData,
        PhantomData
    ).call(mint_msg)?;

    let response = Response::new();
    // Return the response
    Ok(
        response
            .add_message(burn_callback)
            .add_message(mint_callback)

//...