proposal(ui): allow Freight to be clickable to select Stage (subscribers) to promote to

At present, to initialize the promotion of Freight to (subscribers of) a Stage a user has to click on an icon on the left or right side of the applicable Stage. Once they do this, they can select the Freight which should be promoted. As @krancour describes it, this makes sense for an ops person, as:

stages might be your babies and you think "oh, i want to put this stage in a certain state"

However, as a developer this may actually feel counter-intuitive, as:

a piece of freight with changes you worked hard on might be your baby and you think, "oh, i want to move this state to a certain stage"

To provide a better and more intuitive user-experience for the second persona. My proposal is to see if we can introduce a flow in which clicking on a Freight in the freightline of a Project initializes the promotion process, allowing you to select the (subscribers of) the Stage you want the Freight to be promoted to.
Optionally, we could also allow the "hover" state which changes the color of the Stages where the Freight is already current to remain active once clicked, to provide additional visual guidance around potential Stages of interest for promotion.

@hiddeco How about we add a "Promote" action to this dropdown to trigger the mode you're describing?

While this would absolutely be a step in the right direction, I feel this would not nail the user-experience as it's not as obvious as just clicking the Freight box itself.
But I do understand there may be technical challenges in making that happen, or it conflicting with and/or complicating the "copy alias" feature.

as it's not as obvious as just clicking the Freight box itself

Clicking the freight box now opens an expanded Freight view with live state and such, so that particular trigger is taken.

I had missed this recent enhancement, then I guess the next best thing is indeed the dropdown menu.


chore(helm): To default PullPolicy as IfNotPresent

The current PullPolicy in for cilium is Always. This will cause some
leap time if there is re-create/restart cilium pods. Even this can be
overridden in helm, but most likely is overlooked.
This will make default value consistent to hubble related pull policies
as well.
Signed-off-by: Tam Mach<EMAIL_ADDRESS>Please ensure your pull request adheres to the following guidelines:
helm: Default PullPolicy to IfNotPresent

Coverage increased (+0.02%) to 36.94% when pulling 17a6b8f0a85350769cda86eaf7ac6f81f4e9dff1 on sayboras:feature/pull-policy into b5ed91d924304acc7d07069bc3d11f91706302c7 on cilium:master.

Closed this PR, as I just figured out the below logic in install/kubernestes/Makefile. Release branches are already with IfNotPresent policy.
update-versions:
	$(ECHO_GEN) " -> Updating version to $(VERSION)"
	@# Update chart versions to point to the current version.
	$(QUIET)grep -lRZ -e "version:" -e "appVersion:" $(CILIUM_CHARTS) | \
		xargs -0 -l sed -i -e 's/'$(CILIUM_CHART_REGEX)'/\1 $(VERSION)/g'
	@# Fix up the cilium tag
	$(QUIET)if echo $(VERSION) | grep -q $(LATEST_VERSION_REGEX); then				\
			sed -i 's/'$(CILIUM_TAG_REGEX)'/\1 latest/' $(CILIUM_VALUES);			\
			sed -i 's/'$(CILIUM_PULLPOLICY_REGEX)'/\1 IfNotPresent/' $(CILIUM_VALUES);		\
		elif echo $(VERSION) | grep -q $(DEV_VERSION_REGEX); then				\
			DEV_BRANCH=$$(echo $(VERSION) | sed 's/-dev//')					\
			sed -i 's/'$(CILIUM_TAG_REGEX)'/\1 $(DEV_BRANCH)/' $(CILIUM_VALUES);		\
			sed -i 's/'$(CILIUM_PULLPOLICY_REGEX)'/\1 Always/' $(CILIUM_VALUES);		\
		else											\
			sed -i 's/'$(CILIUM_TAG_REGEX)'/\1 v$(VERSION)/' $(CILIUM_VALUES);		\
			sed -i 's/'$(CILIUM_PULLPOLICY_REGEX)'/\1 IfNotPresent/' $(CILIUM_VALUES);	\
		fi
	@# Fix up the managed etcd version, as that has its own scheme
	$(QUIET)sed -i 's/'$(VERSION)'/'$(MANAGED_ETCD_VERSION)'/' $(MANAGED_ETCD_PATH)


There is no event handler with ID '' associated with the 'onclick' event in the current render tree

Similar to #517
I am working on upgrading a WASM project and I am running into this problem with the latest packages.
bUnit: 1.4.15
MIcrosoft.NET.Test.Sdk 17.0.0
Blazorise <IP_ADDRESS>
.NET6
I've put together a small sample application to demo my problem.
https://github.com/AndrewStrickland/bUnitBugHunt
It has a DataGrid. Each entry has a button that allows a user to remove that entry. If this button is clicked, the entry is removed, but any WaitForState that might follow will throw the 'onclick' error. The ID it lists in the error is the onclick handler for the that contains the element that was just removed.

  First Entry

      <button id="0HMEKFEA8IFAF" type="button" class="btn btn-primary" blazor:onclick="150" aria-label="RemoveButton" blazor:elementReference="">Remove</button>

Shows:

Now when that Remove button is clicked (blazor:onclick="150") the First Entry is removed from the Data Bound list. If a WaitForState is performed it will throw the missing onclick error and report with ID 70 which is the <tr class="table-row-selectable"... that was just removed.

Changed the title since bUnit tests doesnt care about the environment you will ultimately run the code in. bUnit tests runs under the .NET runtime on your machine.

I tried to have a look at this and as discussed it seems close to #517
You can steam down the code to the following:
CrashComponent

	@foreach (var item in entryList)
	{

			 { }">

					<button aria-label="@item" @onclick="() => DeleteButton(item)">@item</button>

	}

@code {
	private readonly List<string> entryList = new()
	{
		"First", "Second"
	};

	private void DeleteButton(string toRemove)
	{
		entryList.Remove(toRemove);
	}
}

Test.cs
[Fact]
public void LetItCrash()
{
	var cut = RenderComponent<CrashComponent>();

	cut.Find("[aria-label='Second']").Click();
	cut.WaitForState(() => cut.FindAll("[aria-label='First']").Count == 1);
}

Now interesting is that cut.Find("[aria-label='Second']").Click(); will throw the exception. But due to the way the exception is handled it will be raised only in the next call. Mainly WaitForState. To be more precise int the ctor of WaitForHelper. The var renderException = renderer.UnhandledException part will retrieve this exact exception.
So there is always an exception but only the WaitForXXX will show it.

I did some more investigation and found the culprit:
Let's take the example from above:
Before the click we have the following html:

                    <button aria-label="First" blazor:onclick="2">First</button>

                    <button aria-label="Second" blazor:onclick="4">Second</button>

After the click (so we force a re-render) we have this:

                    <button aria-label="First" blazor:onclick="5">First</button>

We see that the id's change. Now that shouldn't be a problem for itself, but let's have a closer look at GetDispatchEventTasks.
The inner loop: foreach (var candidate in element.GetParentsAndSelf()) has practicly speaken two elements. The button and the  (as the onclick element is bubbling)
In the first cycle we hit the button and invoke the event. Therefore we delete our button and force a new render-cycle which leads to the updated markup shown above.
Now we enter the second cycle, so our  element: For some weird reason we still have the old blazor-eventid on the  element. So element.GetAttribute(blazorEventName); in TryGetEventId still returns the wrong/old id.

Edit: Ah yes that makes obvious sense. As the renderer creates completely new elements in the point of view of our "original" button (with the id 3) the parent is still the  with the id 4. But the "real" rendered, which gets invoked a bit later in the chain has the "real" state where those elements are not existing anymore. I hope that makes sense*. If not I can also give a small showcase and try to re-order my thoughts.

Thanks for taking a lookg @linkdotnet . This is exactly it, and the error handling in the trigger method is build such that it only allows the UnknownEventHandlerIdException to bubble up is if the first triggered element throws, otherwise it is swallowed.
When I debug @AndrewStrickland's test project locally, it seems the problem is actually related to his use of WaitForState, and in relation to that, the WaitForHelper. The WaitForHelper checks for unhandled exceptions in the renderer, waiting for either an unhandled exception to show up or the timeout to be reached. The reason it looks for unhandled exception is (was) because you would sometimes not see exceptions when you were waiting for something.
There have been recent changes that better surfaces unhandled exceptions caught by the renderer, so maybe this check is not needed any more in WaitForHelper. If it is, it could be that it should simply be checked for when the timeout happens, and not break the waiting period.

I guess I get your point @egil .
My question is whether or not WaitForHelper is the problem or just "showing the symptoms" but the root cause is in GetDispatchEventTasks? And consequently what would be a fix allowing the test to pass?
The use case / test itself seems valid on first look.

I guess I get your point @egil .
My question is whether or not WaitForHelper is the problem or just "showing the symptoms" but the root cause is in GetDispatchEventTasks? And consequently what would be a fix allowing the test to pass?
The use case / test itself seems valid on first look.

My current take is that it's something related to WaitForHelper, since that is what is causing the problem. The exception it trips on comes from the Blazor renderer originally. However, I don't have time to probably dig into this before later next week, so welcome all suggestions or input you might have.

I'll just lay down the stuff I found out, obviously you have a way deeper knowledge than I do, so if I jump to (false) conclusions too fast please correct me. This might be a bit longer thread ;)
Let's take my test from here which gives us the output of here.
Now everything I'll explain below is triggered only by cut.Find("[aria-label='Second']").Click();. Meaning WaitForXXX will not be hit here.

The Click event will call the GetDispatchEventTasks method. The function gets passed the original element. In my case this is the <button onclick="4"> from which we originally invoked our click.
Part of the GetDispatchEventTasks is to get the element and all its parents via foreach (var candidate in element.GetParentsAndSelf()). Now keep in mind we are iterating through the DOM always via this Element and it's parents as we passed the element to the function. This will be critical later.
Now we found the button and we want to dispatch the event and put the Task into the eventlist via eventTasks.Add(renderer.DispatchEventAsync(id, info, eventArgs));. So the event will get already triggered! Which means we delete the <button> and the parent
.
As we are done with the button. We go to the next parent which also has a onclick handler. Remember inside GetDispatchEventTasks our element is still the (now non-existing) button with its (now non-existing)
 parent. But of course the function doesn't know that. We pass the "initial state" to the function and only if the references are directly changed we would notice that. But exactly in our case we wouldn't notice that, because blazor "detached" us and created new elements in the original DOM. Here the first screenshot. We can see that we are still in the Click event and we're getting id 4 from the table row element even though it doesn't exist anymore.

We can check also the whole Markup. Kind of the same picture. In the markup we already deleted the
<button></button>
 construct. But inside GetDispatchEventTasks we are still using them.

All "good" and fine as the element-references are still availble.. just not really part of our current DOM anymore. So we continue until we hit the base.DispatchEventAsync(eventHandlerId, fieldInfo, eventArgs); in TestRenderer. The real renderer just has different information than GetDispatchEventTasks had.
Now we get the exception. The real renderer throws an ArgumentException. You can see in the stacktrace that we are still in the Click event and nowhere near WaitForXXX.

We return the exception from the TestRenderer via return Task.FromException(betterExceptionMsg);
Now your behavior from top kicks in. The exception is not thrown right away. Only the next invocation of the renderer in WaitForXXX will give us the exception.

So the whole problem is that we as Child delete also our parent so we are completely detached from the renderer.
Personally I wouldn't expect anything to crash here as this is a valid use case.
I am not sure how to fix this easily. If my assumptions are right and the root cause is in GetDispatchEventTasks I'd argue we would need there always the latest state instead of passing the element reference once. But this would also mean we do the render later or we re-render smaller parts inside this method.
I hope I could make my point a bit clearer and apologize for the rather long thread.

I appreciate your effort to understand the problem here @linkdotnet. Thanks.
When I tried the sample project, what I saw was that if the WaitForState call was not in the sample test, the test behaved as expected.
What causes the WaitForState call to fail was that it checks the renderers unhanded exception task, which is still set/being set by the renderer during the click handler invocation. However, in this case, the exception is actually not unhandled, and is ignored, so WaitForState shouldn't fail due to the exception.
Might be as simple as not setting the unhandled exception in the dispatch event method in TestRenderer.
Re. the rebuilding of the DOM tree: whenever the TestRenderer produces a new render batch, the old DOM tree is discarded and a new one is generated using Htmlizer, which is a copy of Blazors pretender logic. I hope to at some point create a C# implementation of Blazors BrowserRenderer (written in typescript), that Blazor uses to update the browser DOM. However, it's a pretty big undertaking, but will likely improve perf, and much more. It would update the AngleSharp DOM we have now instead of throwing the current one away after every render.
However, besides the complexity, it also means tracking and keeping in sync with blazors renderer whenever that changes, so I've been cautious about going down that path.

Hi @AndrewStrickland, we just merged a fix for this by @linkdotnet. There should be a nightly release dropping shorting on GitHub Package Repository. It would be fantastic if you can try it out on your code and verify that it fixes the issue. Here is how to do so: https://github.com/bUnit-dev/bUnit/discussions/209

I had exactly the same issue, blazorise grid with a delete button that could not be tested. After installing the preview version, the tests worked.

Ahh very nice to here @robalexclark and thanks for reporting back


We show all users on the system, which is probably not good

Discovered when using lynx on qiita.microbio.me. If you navigate to view my studies, you see a list of all users that have accounts on qiita. Not sure why, seems... not good.

My guess is that JS/jquery is not working well and is showing all the
emails (not all info) as it is used for the display of studies. Not
sure if there is a work around this.

This is a byproduct of the sharing code autocomplete feature. Do we want to remove the autocomplete and instead have them type in the full email, then give a yes/no indication on the user existing and sharing working?

I think its low prio right now, but websockets?
On Apr 24, 2015 6:31 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

This is a byproduct of the sharing code autocomplete feature. Do we want
to remove the autocomplete and instead have them type in the full email,
then give a yes/no indication on the user existing and sharing working?
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-96108764.

What method does google use when typing in a search bar?
On Apr 24, 2015 6:36 PM, "Daniel T. McDonald"<EMAIL_ADDRESS>wrote:

I think its low prio right now, but websockets?
On Apr 24, 2015 6:31 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

This is a byproduct of the sharing code autocomplete feature. Do we want
to remove the autocomplete and instead have them type in the full email,
then give a yes/no indication on the user existing and sharing working?
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-96108764.

I don't know, but we apparently may be able to ajax this:
https://rvieiraweb.wordpress.com/2013/04/20/jquery-ajax-chosen-simple-demo-tutorial/
On Fri, Apr 24, 2015 at 5:37 PM, Daniel McDonald<EMAIL_ADDRESS>wrote:

What method does google use when typing in a search bar?
On Apr 24, 2015 6:36 PM, "Daniel T. McDonald" <
<EMAIL_ADDRESS>wrote:

I think its low prio right now, but websockets?
On Apr 24, 2015 6:31 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

This is a byproduct of the sharing code autocomplete feature. Do we want
to remove the autocomplete and instead have them type in the full email,
then give a yes/no indication on the user existing and sharing working?
—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-96108764.

—
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-96109294.

This is going to be slow unless we cache those values at some place, so we don't have to go to the database that many times.

Redis to the rescue :D!
On (Apr-24-15|17:47), josenavas wrote:

This is going to be slow unless we cache those values at some place, so we don't have to go to the database that many times.

Reply to this email directly or view it on GitHub:
https://github.com/biocore/qiita/issues/1092#issuecomment-96111401

While looking into #1730 I realized this is still open. I want to close this as part of the share changes, but there is one sticking point: Do we want to keep the autocomplete functionality at all? It looks to me like it would be just as not good, since someone could easily type 'a', get all emails, then 'b', get all emails, etc and quickly have the emails of everyone on the system.
The safer way is to have a text box for entering a user email that, when you hit share, says 'successful' or 'user does not exist' depending on the outcome. This removes the security concern completely, and presumably you would have the email of your collaborator you are sharing a study with.
There are ways to make redis autocomplete happen (http://stackoverflow.com/a/24425711 and https://www.devbridge.com/sourcery/components/jquery-autocomplete/#) but I would like people's input before going that route.

Not sure why we would hide users.
On Apr 6, 2016 4:43 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

While looking into #1730 https://github.com/biocore/qiita/issues/1730 I
realized this is still open. I want to close this as part of the share
changes, but there is one sticking point: Do we want to keep the
autocomplete functionality at all? It looks to me like it would be just as
not good, since someone could easily type 'a', get all emails, then 'b',
get all emails, etc and quickly have the emails of everyone on the system.
The safer way is to have a text box for entering a user email that, when
you hit share, says 'successful' or 'user does not exist' depending on the
outcome. This removes the security concern completely, and presumably you
would have the email of your collaborator you are sharing a study with.
There are ways to make redis autocomplete happen (
http://stackoverflow.com/a/24425711 and
https://www.devbridge.com/sourcery/components/jquery-autocomplete/#) but
I would like people's input before going that route.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-206622892

The major concern is that anyone with an account on the system would be able to access everyone else’s email address, opening users up to spamming.

On Apr 6, 2016, at 16:51, Gail Ackermann<EMAIL_ADDRESS>wrote:
Not sure why we would hide users.
On Apr 6, 2016 4:43 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

While looking into #1730 https://github.com/biocore/qiita/issues/1730 I
realized this is still open. I want to close this as part of the share
changes, but there is one sticking point: Do we want to keep the
autocomplete functionality at all? It looks to me like it would be just as
not good, since someone could easily type 'a', get all emails, then 'b',
get all emails, etc and quickly have the emails of everyone on the system.
The safer way is to have a text box for entering a user email that, when
you hit share, says 'successful' or 'user does not exist' depending on the
outcome. This removes the security concern completely, and presumably you
would have the email of your collaborator you are sharing a study with.
There are ways to make redis autocomplete happen (
http://stackoverflow.com/a/24425711 and
https://www.devbridge.com/sourcery/components/jquery-autocomplete/#) but
I would like people's input before going that route.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-206622892

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub https://github.com/biocore/qiita/issues/1092#issuecomment-206624852

This seems like a theoretical rather than practical concern surely?

On Apr 6, 2016, at 4:53 PM, Joshua Shorenstein<EMAIL_ADDRESS>wrote:
The major concern is that anyone with an account on the system would be able to access everyone else’s email address, opening users up to spamming.

On Apr 6, 2016, at 16:51, Gail Ackermann<EMAIL_ADDRESS>wrote:
Not sure why we would hide users.
On Apr 6, 2016 4:43 PM, "Joshua Shorenstein"<EMAIL_ADDRESS>wrote:

While looking into #1730 https://github.com/biocore/qiita/issues/1730 I
realized this is still open. I want to close this as part of the share
changes, but there is one sticking point: Do we want to keep the
autocomplete functionality at all? It looks to me like it would be just as
not good, since someone could easily type 'a', get all emails, then 'b',
get all emails, etc and quickly have the emails of everyone on the system.
The safer way is to have a text box for entering a user email that, when
you hit share, says 'successful' or 'user does not exist' depending on the
outcome. This removes the security concern completely, and presumably you
would have the email of your collaborator you are sharing a study with.
There are ways to make redis autocomplete happen (
http://stackoverflow.com/a/24425711 and
https://www.devbridge.com/sourcery/components/jquery-autocomplete/#) but
I would like people's input before going that route.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/biocore/qiita/issues/1092#issuecomment-206622892

—
You are receiving this because you commented.
Reply to this email directly or view it on GitHub https://github.com/biocore/qiita/issues/1092#issuecomment-206624852

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub https://github.com/biocore/qiita/issues/1092#issuecomment-206625194

Agree with @rob-knight comment, it's possible but not sure if it will actually happen. My suggestion will be not to reduce functionality ... should we close this issue?

This issue deals with the fact that emails are directly in the HTML we send, which is really bad for security. I'm moving all autocomplete calculations server-side to fix this issue, so it is still open.

OK, thanks.


correct the  comments description

Signed-off-by: Leilei Hu<EMAIL_ADDRESS>@qiujian16 , Correct the comments description, Thanks

/approve
/lgtm

Thanks @qiujian16


Registry Redesign

Description

Revert the "biomes/dimensions as entities" idea since it caused too many problems without much to show for it.
Make use of valence_nbt's serde support in valence_biome and valence_dimension.
Reduce boilerplate, reorganize valence_registry a bit.
Tweak default biome registry such that BiomeId::default always corresponds to "minecraft:plains".
Add Option and unit variant support to valence_nbt's serde impl.

That would be necessary if we plan to support modded. In that case, we should distinguish between static and dynamic registries. I'm assuming static registries should be append-only and get one global variable per default entry.


Make UpdateVisibleTrack run only in the main thread

We had sometimes a crash when starting a capture because
multi-threading (http://b/185459021). This only happened when
we had at least one FrameTrack enabled.
In this PR, instead of calling UpdateVisibleTrack when adding/removing a
FrameTrack we set a flag, so the main thread could update them.
For that, we also force SortTracks when we finish to process the
capture. This simplifies a little the logic of SortTracks, and we can
only actually sorting when the sorting is invalidated or when the
capture is running and we didn't make it in the last second.

I guess that as you are discussing it in person with Henning and Florian then I'll leave it to them.


Does this package support Angular Universal?

I am getting the following error when I try to serve the app with angular universal.
I have tried many ways to reach the location of the file with http client and it seems that not the route is the problem.
Is that possible that it is not working because of http client on serverside. I have seen other libaries using fs for loading static files on the server side.
Error message:
Could not find translation file: xyz

I never tried it with angular universal. I think it should work when ngx-translate works with angular universal. Did you try using ngx-translate with only one translation file and angular universal?

I found the solution. So this will not work because with universal you should use the filesystem to read in the translations.

Okay so I can close this?

Yes, the verdict is that it is not supported currently.Would you accept a pull request with a new module for Angular universal support?

You can create a pull request for https://github.com/ngx-translate/http-loader which I forked this repo from. Then I can pull the changes from there.


IncrementalBar has unprintable characters on Windows on Python 3.6

Python 3.6 has updated the console on Windows to print Unicode characters correctly and always use UTF-8 for sys.std[in|out|err].encoding. Unfortunately, 6 of the characters in IncrementalBar.phases do not have glyphs in the default console fonts, so the bar displays the missing glyph image (question mark in a box) while incrementing.
Programs (like pip) that check stdout.encoding is Unicode before using IncrementalBar will now use it instead of the non-incremental variety. I made the tweak below in my copy of pip and the result was acceptable, if not especially "incremental" anymore. Considering the extra glyphs are probably not going to be added anytime soon, and are unlikely to make it onto existing versions of Windows anyway, I'd like to propose this change (with appropriate comments as you wish) to avoid an ugly bar.
class IncrementalBar(Bar):
    if sys.platform.startswith('win'):
        phases = (u' ', u'▌', u'█')
    else:
        phases = (u' ', u'▏', u'▎', u'▍', u'▌', u'▋', u'▊', u'▉', u'█')

Thanks for the ping!

Thanks for the fix! :)
Do you have a timeline in mind for when you'll be releasing a version with this fix?

There's not a lot of stuff comitted since the last release but I could do a new one if nothing breaks. I'll wait at least a couple weeks to make sure nobody complains and if you are still interested then, you can ping me again to do a release.

Sure thing. No hurries. Thanks! :)

Hey @verigak!
Are you fine doing a new release now?

Released v1.4


3.0 version of "Social without Identity".

Fixes #14578.
Internal review URL

@HaoK  please review

@Rick-Anderson Looks fine. I couldn't get the xref approach to link to the specific overload being discussed, which is why I had that ugly URL in there. I guess it's not really an issue...


Go live service

Type: Performance Issue
I can no longer see my live server to displace my code in the browser.
VS Code version: Code 1.81.1 (6c3e3dba23e8fadc360aed75ce363ba185c49794, 2023-08-09T22:18:39.991Z)
OS version: Linux x64 5.15.124-20273-g4bee82191fda
Modes:

System Info

Item
Value

CPUs
Intel(R) Celeron(R) N4000 CPU @ 1.10GHz (2 x 1094)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: disabled_offopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: disabled_softwarevulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
0, 1, 0

Memory (System)
2.71GB (2.30GB free)

Process Argv
--unity-launch /mnt/chromeos/MyFiles/My  Udemy Projects --crash-reporter-id f0871d5f-09a2-4768-864d-fbc4f01073ae

Screen Reader
no

VM
100%

DESKTOP_SESSION
undefined

XDG_CURRENT_DESKTOP
X-Generic

XDG_SESSION_DESKTOP
undefined

XDG_SESSION_TYPE
undefined

Process Info
CPU %	Mem MB	   PID	Process
    4	   175	   269	code main
    0	    44	   292	   zygote
    1	   103	   323	     gpu-process
    0	    44	   293	   zygote
    0	     8	   296	     zygote
    0	   175	   354	window [1] (index.html - My Udemy Projects - Visual Studio Code)
    6	    97	   752	window [2] (Issue Reporter)
    0	    61	   331	   utility-network-service
    0	    92	   386	shared-process
    0	     0	  1347	     /bin/sh -c /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	     0	  1348	       /usr/bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	    78	   387	fileWatcher [1]
    0	   108	   415	extensionHost [1]
    0	    89	   469	     electron-nodejs (/usr/share/code/code --ms-enable-electron-run-as-node /usr/share/code/resources/app/extensions/html-language-features/server/dist/node/htmlServerMain --node-ipc --clientProcessId=415)

Workspace Info
|  Window (index.html - My Udemy Projects - Visual Studio Code)
|    Folder (My  Udemy Projects): 5 files
|      File types: png(4) html(1)
|      Conf files:;

Extensions (2)

Extension
Author (truncated)
Version

emojisense
bie
0.10.0

open-in-browser
tec
2.0.0

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263:30335439
vscoreces:30445986
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593:30376534
pythonvs932:30410667
py29gd2263cf:30792227
vsclangdf:30486550
c4g48928:30535728
dsvsc012cf:30540253
pynewext54:30695312
azure-dev_surveyone:30548225
282f8724:30602487
89544117:30613380
showlangstatbar:30737416
03d35959:30757346
pythonfmttext:30731395
fixshowwlkth:30771522
showindicator:30805244
pythongtdpath:30769146
i26e3531:30792625
pythonnosmt12:30797651
pythonidxpt:30805730
pythonnoceb:30805159
copilotsettingc:30839828
dsvsc013:30795093
dsvsc014:30804076
diffeditorv1:30821571
dsvsc015:30845448

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.82.2. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

I did it at first and I was told that it cannot be used on my Chromebook. so now I don't know what to do again, but let me give it a try again.

I think it is because I am using Chromebook that has some conflicting issue with windows operating.

This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the marketplace for VS Code. See also our issue reporting guidelines. If you don't know which extension is causing the problem, you can run Help: Start extension bisect from the command palette (F1) to help identify the problem extension.
Happy Coding!


Create nodes to make speech output data queryable

It would be great to be able to query the generated speech output data, meaning:

relative path to the generated MP3 audio file
speech marks

In addition to better aligning with the way Gatsby is built, we would also no longer need to have two files in the public folder, one being the mp3 file and one being the JSON file containing the speech marks.
I have created the create-nodes branch to play around with this.
Unfortunately, I ran into some obstacles, as creating nodes seems to be not so easy from inside a sub-plugin. I opened up those two issues containing the detailed information:

https://github.com/gatsbyjs/gatsby/issues/21804
https://github.com/gatsbyjs/gatsby/issues/21818

This issue is therefore on hold until those issues are cleared and we have a stable way to create nodes.

Maybe we can implement it as a transformer plugin that transforms Mdx nodes to Polly nodes as used in https://github.com/flogy/gatsby-transformer-polly? Like that we must not parse the props of the <SpeechOutput> comonents in MDX but only get the id and query the rest using static queries where you could add query params for voiceId etc.


Change the first letter to uppercase

Why are the changes needed?

Change the first letter to uppercase.
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

are there any other places to fix together?

Or let me do it in this PR ? #3288

Thanks, you can do it in a new pr if you like, we can check the typo in the other docs, the pr can be closed.

I am fine with it. #3288 is also fixing some parts in docs of authenticaion. Will let you know if the PR3288 merged.

Thanks, closed it.


checkNotice tasks failing

On running gradle check on windows, we see the below group of failures for checkNotice tasks. We need to modify these checkNotice tasks so they get skipped on windows as these distributions aren't built on windows platform.
Task :distribution:archives:linux-arm64-tar:checkNotice FAILED
Task :distribution:archives:darwin-arm64-tar:checkNotice FAILED
Task :distribution:archives:freebsd-tar:checkNotice FAILED
Task :distribution:archives:linux-s390x-tar:checkNotice FAILED
Task :distribution:archives:darwin-tar:checkNotice FAILED
Task :distribution:archives:no-jdk-darwin-arm64-tar:checkNotice FAILED
Task :distribution:archives:no-jdk-darwin-tar:checkNotice FAILED
Task :distribution:archives:no-jdk-linux-tar:checkNotice FAILED
Task :distribution:archives:no-jdk-freebsd-tar:checkNotice FAILED
Task :distribution:archives:linux-tar:checkNotice FAILED

Task :distribution:archives:no-jdk-freebsd-tar:checkNotice FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':distribution:archives:no-jdk-freebsd-tar:checkNotice'.

Unable to read from file C:\Users\Pooj\OpenSearch\distribution\archives\no-jdk-freebsd-tar\build\tar-extracted\opensearch-3.0.0-SNAPSHOT\NOTICE.txt

Task :distribution:archives:linux-tar:checkNotice FAILED

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':distribution:archives:linux-tar:checkNotice'.

Unable to read from file C:\Users\Pooj\OpenSearch\distribution\archives\linux-tar\build\tar-extracted\opensearch-3.0.0-SNAPSHOT\NOTICE.txt

Issue is resolved.


Move to Rollup + swc

So we are consistent with rspc.

 We removed the runtime package.


Displaying messages without calling the controller

Hi
Newbie here...
Is it possible to display(in view) the messages of  a certain thread number without calling the controller function using the below.
@each('messenger.partials.messages', $thread->messages , 'message')
Thanks

Hi @jomayan, sorry, I'm not sure what you mean. The $thread object is getting pushed to the view from the controller, but you aren't using anything in the controller after that.

Hi Chris,
Sorry about my question for not being clear enough.
Anyways, here's what I want to achieve.
In the screenshot, the red box is achieved with this command.
@each('messenger.partials.thread', $threads , 'thread', 'messenger.partials.no-threads')
What I want to achieve is the blue box during the page loads. I was able to achieve it but I was using javascript (below).
**function loadfirstmessage(){
var thread_id = {{ $threads->first()->id }} ;
var getmessages_url = "/messages/";
$.get(getmessages_url + thread_id, function (itemdata2) {
document.getElementById("conversation_window").innerHTML = itemdata2;
});
}
function get_messages(thread_id) {
var getmessages_url = "/messages/";
$.get(getmessages_url + thread_id, function (itemdata) {
document.getElementById("conversation_window").innerHTML = itemdata;
});
};**
Is there a way to load it like the way the threads being loaded ?

There are multiple ways.

You can render all messages onload in different <div> with IDs and show/hide the right one. This will result in a massive amount of html and pageload-time.
You can put all messages as json in a data attribute on the thread and load the messages via javascript from there.
Do it the right way and load them async from the backend.

Why is Nr.3 right!? Cause all other solutions will result in a massive amount of html and pageload-time. Also they will not allow to do pagination - so you will have to load/display all messages. With an async solution you can load everytime just 20 messages and if the user scrolls you load the next one (infinity scroll).
So yes - there are ways to avoid calling the controller but if your users will write some more messages it will affect the UX and also your server performance.

@jomayan is your question/problem solved? Or do you need more hints?

Thanks @Gummibeer ...
We can close this issue :)


Correction Workflow

@PhilippBach
just a small correction to this sentance is necessery at the end. "our the"
"Add the notebook to doubleml-docs/doc/examples/index.rst in order to have it listed in the Sandbox section of our the gallery."

thanks @gzhelev2020  . I just fixed it and close this issue!


Same issue as https://github.com/Franticware/SGDK_wine/issues/1#issue-797766868

#1 I have the same issue as this person.

Additional info is needed.

What is your SGDK version?

What linux distro are you using? I have tested it only on Manjaro.

What is the output of:

cd /home/gustavo/apps/sgdk/bin
sh generate_wine.sh

?

Have you tried building an existing sample, e.g.:

cd /home/gustavo/apps/sgdk/bin/sample/sprite
make GDK=/home/gustavo/apps/sgdk -f /home/gustavo/apps/sgdk/makefile_wine.gen

?

Originally posted by @Franticware in https://github.com/Franticware/SGDK_wine/issues/1#issuecomment-770425302
Hi, I'm having the exact same issue.
I'm on Linux Mint 20.2, with SGDK-1.62.
sh generate_wine.sh spits out:
ar as bintos cc1 cp cpp gcc gdb ld lto1 lto-wrapper mac68k make mkdir nm2wch nm objcopy objdump pcmtoraw rm sh sizebnd size sjasm xgmtool
And I can't find bin/sample/sprite.
Any ideas?

What is the output of
make GDK=/path/to/sgdk -f /path/to/sgdk/makefile_wine.gen
?

that tells me
/opt/SGDK-1.62/bin# make GDK=/opt/SGDK-1.62 -f /opt/SGDK-1.62/makefile_wine.gen mkdir -p src/boot mkdir -p out /opt/SGDK-1.62/bin/gcc -m68000 -Wall -Wextra -Wno-shift-negative-value -Wno-main -Wno-unused-parameter -fno-builtin -Iinc -Isrc -Ires -I/opt/SGDK-1.62/inc -I/opt/SGDK-1.62/res -B/opt/SGDK-1.62/bin -c src/boot/rom_head.c -o out/rom_head.o wine: '/opt/SGDK-1.62/bin' is not owned by you, refusing to create a configuration directory there make: *** [/opt/SGDK-1.62/makefile_wine.gen:166: out/rom_head.o] Error 1 root@ME_USER:/opt/SGDK-1.62/bin#

That happened btw in the "elevated" Terminal.

I figured out how to change ownership of the directory and am now waiting for WINE to finish updating. (a little WINE window is telling me The Wine configuration in /path/to/SGDK/bin/.wineconf is being updated, please wait...

I'm trying to follow along this tutorial by the way, though obviously I haven't gotten very far, since I can't even get anything to compile/make.
I just tried ./bin/make -f makelib.gen as per that tutirial, and got the (repeating) error message wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
This is probably related to the above error, so I'm just going to wait for your reply. Thanks for your help already!!

Ok, thanks to somone on reddit, I've solved it. I think the issue was that I hadn't "cd"-ed to the game directory. I got the "hello world" to work now :)
Thanks


Testsuite tweaks: separate websockets, organize directories...

separate websocket test from maintest
move testapp into shared include folder
drop "PREFIX functionality"

the idea was to permit execution from the main test directory and the individual test directories as well, but it was never used and I don't see any use for it (and it is not in a fully working state anyway)

Thanks for the review. Merged.


Support GIF from Plots in markdown? with a scratch[FR]

If I save a gif in the folder or path
the file goes

/```julia

p2 = Plots.plot!(xlim = (-2,2))
anm = @animate for i in 1:25
    Plots.plot!(x->x^2/i,key = false)
    Plots.title!("x-> (1/ $i) *(x^2)",key = false)
end

gif(anm,"xSqrDivByi.gif")
\```

\```
Plots.AnimatedGif("D:\\animated-adventure-in-mathematics\\ElementaryFnTrans
\\xSqrDivByi.gif")
\```

It seems possible to detect pwd(), which is
Plots.AnimatedGif("D:\\animated-adventure-in-mathematics\\ElementaryFnTrans
\

and just substitute it with
![](

and then check and match fig_path
and finally get
![](xSqrDivByi.gif)

so that we can get support for gif
link to this relev proj.

Just realized that the hard part is the line folds when it is too long. Maybe if we detect gif() usage it would be better

Btw, if you really need this, this hack ought to do (am currently using it myself):
using Plots

function Weave.WeavePlots.add_plots_figure(report::Weave.Report, plot::Plots.AnimatedGif, ext)
    chunk = report.cur_chunk
    full_name, rel_name = Weave.get_figname(report, chunk, ext = ext)

    # A `AnimatedGif` has been saved somewhere temporarily, so make a copy to `full_name`.
    cp(plot.filename, full_name; force = true)
    push!(report.figures, rel_name)
    report.fignum += 1
    return full_name
end

function Base.display(report::Weave.Report, m::MIME"text/plain", plot::Plots.AnimatedGif)
    Weave.WeavePlots.add_plots_figure(report, plot, ".gif")
end

or if you have a package which uses Weave.jl, in which you need the following:
using Requires, Plots
function __init__()
    @require Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" begin
        # HACK
        function Weave.WeavePlots.add_plots_figure(report::Weave.Report, plot::Plots.AnimatedGif, ext)
            chunk = report.cur_chunk
            full_name, rel_name = Weave.get_figname(report, chunk, ext = ext)

            # A `AnimatedGif` has been saved somewhere temporarily, so make a copy to `full_name`.
            cp(plot.filename, full_name; force = true)
            push!(report.figures, rel_name)
            report.fignum += 1
            return full_name
        end

        function Base.display(report::Weave.Report, m::MIME"text/plain", plot::Plots.AnimatedGif)
            Weave.WeavePlots.add_plots_figure(report, plot, ".gif")
        end
    end
end


iRODS: can't create/delete account

HS v 2.6.1
Not sure if these are the same issues that @martinseul encountered... but making a note of them.
Seems I can't delete my account because I have a CAT_INVALID_USER but I can't create a new account because CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME ...
Attempting account delete on beta

Nov 17 10:11:56 pid:28265 NOTICE: chlDelCollByAdmin delete access failure -819000
Nov 17 10:11:56 pid:28265 NOTICE: chlDelCollByAdmin cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:11:56 pid:28265 NOTICE: db_del_coll_by_admin_op cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:11:56 pid:28265 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for msiDeleteUser status = -827000 CAT_INVALID_USER
Nov 17 10:11:56 pid:28265 NOTICE: executeRuleBody: Microservice or Action msiDeleteUser Failed with status -827000
Nov 17 10:11:56 pid:28265 NOTICE: execRuleNodeRes: applyRule Failed: acDeleteUserF1 with status -827000
Nov 17 10:11:56 pid:28265 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for acDeleteUserF1 status = -827000 CAT_INVALID_USER
Nov 17 10:11:56 pid:28265 NOTICE: executeRuleBody: Microservice or Action acDeleteUserF1 Failed with status -827000
Nov 17 10:11:56 pid:28265 NOTICE: execRuleNodeRes: applyRule Failed: acDeleteUser with status -827000
Nov 17 10:11:56 pid:28265 DEBUG:
Nov 17 10:11:56 pid:28265 remote addresses: <IP_ADDRESS>, ::1 ERROR: applyRuleArg: -827000, [-]	/repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] :  status [CAT_INVALID_USER]  errno [] -- message [applyRuleUpdateParams failed for rule acDeleteUser]
	[-]	/repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) :  status [CAT_INVALID_USER]  errno [] -- message [applyRuleUpdateParams failed for rule acDeleteUser]

Nov 17 10:11:56 pid:28265 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000

So try to manually delete it from a shell:
$ iadmin rmuser dcowan
remote addresses: <IP_ADDRESS> ERROR: rcGeneralAdmin failed with error -827000 CAT_INVALID_USER
Level 0: Invalid user
Level 1: DEBUG:

Attempting account create on beta

[dcowan@usersdev log]$ tail -f rodsLog.2022.11.16
Nov 17 10:40:17 pid:28920 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUser with status -809000
Nov 17 10:40:17 pid:28920 DEBUG:
Nov 17 10:40:17 pid:28920 remote addresses: <IP_ADDRESS>, ::1 ERROR: applyRuleArg: -809000, [-]	/repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] :  status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME]  errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
	[-]	/repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) :  status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME]  errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]

Nov 17 10:40:17 pid:28920 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -809000
Nov 17 10:40:17 pid:28923 remote addresses: <IP_ADDRESS>, ::1 ERROR: [_rsGeneralAdmin:836] - [CAT_INVALID_USER: user does not exist

]
Nov 17 10:40:17 pid:28923 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[1]=/hydroshareuserdevZone/home
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[2]=/hydroshareuserdevZone/home/dcowan
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[3]=dcowan
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[4]=hydroshareuserdevZone
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[5]=
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[6]=
Nov 17 10:41:27 pid:28982 NOTICE: bindVar[7]=
Nov 17 10:41:27 pid:28982 NOTICE: _cllExecSqlNoResult: SQLExecDirect error: -1 sql:insert into R_COLL_MAIN (coll_id, parent_coll_name, coll_name, coll_owner_name, coll_owner_zone, coll_type, coll_info1, coll_info2, create_ts, modify_ts) values (nextval('R_ObjectID'), ?, ?, ?, ?, ?, ?, ?, ?, ?)
Nov 17 10:41:27 pid:28982 NOTICE: SQLSTATE: S1010
Nov 17 10:41:27 pid:28982 NOTICE: SQLCODE: 0
Nov 17 10:41:27 pid:28982 NOTICE: SQL Error message: [unixODBC][Driver Manager]Function sequence error
Nov 17 10:41:27 pid:28982 NOTICE: SQLSTATE: 23505
Nov 17 10:41:27 pid:28982 NOTICE: SQLCODE: 1
Nov 17 10:41:27 pid:28982 NOTICE: SQL Error message: ERROR: duplicate key value violates unique constraint "idx_coll_main3";
Error while executing the query
Nov 17 10:41:27 pid:28982 NOTICE: chlRegCollByAdmin cmlExecuteNoAnswerSQL(insert) failure -809000
Nov 17 10:41:27 pid:28982 NOTICE: chlRegCollByAdmin cmlExecuteNoAnswerSql(rollback) succeeded
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for msiCreateCollByAdmin status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action msiCreateCollByAdmin Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateCollByAdmin with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for acCreateCollByAdmin status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateCollByAdmin Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUserZoneCollections with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for acCreateUserZoneCollections status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateUserZoneCollections Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateDefaultCollections with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for acCreateDefaultCollections status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateDefaultCollections Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUserF1 with status -809000
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: executeRuleAction Failed for acCreateUserF1 status = -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Nov 17 10:41:27 pid:28982 NOTICE: executeRuleBody: Microservice or Action acCreateUserF1 Failed with status -809000
Nov 17 10:41:27 pid:28982 NOTICE: execRuleNodeRes: applyRule Failed: acCreateUser with status -809000
Nov 17 10:41:27 pid:28982 DEBUG:
Nov 17 10:41:27 pid:28982 remote addresses: <IP_ADDRESS>, ::1 ERROR: applyRuleArg: -809000, [-]	/repos/irods/server/re/include/irods_re_plugin.hpp:326:irods::error irods::dynamic_operation_execution_manager<std::__1::tuple<>, RuleExecInfo *, irods::DONT_AUDIT_RULE>::call(std::string, std::string, OP, As &&...) [T = std::__1::tuple<>, C = RuleExecInfo *, Audit = irods::DONT_AUDIT_RULE, OP = std::__1::function<irods::error (const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack &&)>, As = <const std::__1::basic_string<char> &, irods::re_pack_inp<std::__1::tuple<> > &, irods::unpack>] :  status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME]  errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]
	[-]	/repos/irods/plugins/rule_engines/irods_rule_engine_plugin-irods_rule_language/libirods_rule_engine_plugin-irods_rule_language.cpp:348:irods::error exec_rule(irods::default_re_ctx &, const std::string &, std::list<boost::any> &, irods::callback) :  status [CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME]  errno [] -- message [applyRuleUpdateParams failed for rule acCreateUser]

Nov 17 10:41:27 pid:28982 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -809000
Nov 17 10:41:27 pid:28985 remote addresses: <IP_ADDRESS>, ::1 ERROR: [_rsGeneralAdmin:836] - [CAT_INVALID_USER: user does not exist

]
Nov 17 10:41:27 pid:28985 NOTICE: rsGeneralAdmin: rcGeneralAdmin error -827000

Attempt manually create in shell:
iadmin mkuser dcowan rodsuser
remote addresses: <IP_ADDRESS> ERROR: rcGeneralAdmin failed with error -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Level 0: Error -809000 CATALOG_ALREADY_HAS_ITEM_BY_THAT_NAME
Level 1: DEBUG:

Originally posted by @devincowan in https://github.com/hydroshare/hydroshare/issues/3056#issuecomment-1318882643

Seems like my inability do remove/add iRods account is perhaps related to https://github.com/irods/irods/issues/3931.
Or perhaps https://github.com/irods/irods/issues/3798 or https://github.com/irods/irods/issues/1976

Wondering if my inability do remove/add iRods account is due to https://github.com/irods/irods/issues/3931.
(Or perhaps https://github.com/irods/irods/issues/1976)
...but both of those issues were resolved after iRODS 4.2.5 and we still see this bug when using iRods 4.2.10
@cbcunc does anything stand out to you?

It seems like the user exists on irods but the django database does not have a record of the user.  I could imagine a scenario where a user attempts to deletes an irods account and the process updates the django database but fails to update irods.

Thanks @sblack-usu I was thinking perhaps that was the problem too, but if the user exists in iRods (and no in django), shouldn't I be able to iadmin rmuser dcowan successfully in the UserZone?

Touche, you are well on your way to figuring this out.


loop example videos

I propose playing the example videos on the landing page on loop.
This might come down to personal preference, but I did not find anything about it using blame or GitHub's search, so I went ahead and created this PR.
Note: Not really tested.

Note: Not really tested.

It would have been quicker if you have tested it before. I will test it in some time and them merge if this works.


Move emote parsing to API load

Rather than parsing emote data (regex, or any other stuff), parse at the initial API load point. This should be a huge performance boost as it wouldn't need to be reparsed every time the menu is refreshed/sorted.

This should be closed by 8641b600555e5262c4dfad6f7be05b9bf8920b2f and will close this once I merge to master.


Darkmode

Could you please add darkmode for the argdown canvas? :D

I resolved this by adding this snippet to my css:
:root
{
	--argdown-bg-color: #000000;
}

Great thanks -- I added a link to this to the readme for others to find.

It will look a bit more neat if you use the primary color of Obsidians dark mode #202020 (see: Default Obsidian Theme Colors)
:root
{
	--argdown-bg-color: #202020;
}


Implement payments for NetherPortals

Allow a payment to create/use a netherportal in a given world.

Someone had asked for this a while ago.
Creation won't be implemented until a hook is available. Use, maybe... but not 2.1 like I'd said...

Pushing to 2.3.


Dynamic Service Sublayer Visibility

From Barnaby:
Ok, I think I have discovered what is preventing sublayers of dynamic layers being turned on and off individually, AND what is preventing legends of dynamic layers from displaying.
Case 1:  A service is published in which the top layer is On in ArcMap:
toplayeron-nolegend_arcmap.jpg
Note that the top-most "Landsat 7 ETM+..." layer is On.  When this service is added as a dynamic layer using widget 1.2, its legend will NOT display in the WAB app, and its sublayers CANNOT be turned on and off individually.  All sublayers are always on, and can only be turned off when the entire layer is turned of in WAB layer menu.  Since multiple sublayers are on, WAB doesn't know which sublayer to display a legend for:
toplayeron-nolegend_wab.jpg
Case 2:  A service is published in which the top layer is Off in ArcMap:
toplayeroff-legend_arcmap.jpg
Note that the top-most "Landsat 7 ETM+..." layer is Off.  When this service is added as a dynamic layer using widget 1.2, its legend WILL display in the WAB app, and its sublayers CAN be turned on and off individually:
toplayeroff-legend_wab.jpg
Is there a way to fix this so that sublayers of dynamic layers can be toggled on and off normally whether the top-most layer in the service is on or off when published?

Addressed in v.1.5.


Check Ingresses incompatibilities when setting KongUpstreamPolicy status

Problem Statement
#4932 populates the kongUpstreamPolicy status and checks conflicts on HTTPRoutes. Conflicts on Ingress references must be checked as well, and the proper reason must be set in the Ancestor Accepted condition.
Acceptance Criteria

[ ] All services referenced by an Ingress must be checked. If there is conflict on the policies referenced, the Conflicted Reason must be used in the Accepted condition of the Ancestor status.

Removing the blocked label as #4932 is done

Because there's no scenario in which we could have a conflict in Ingress (there's no concept of multiple backend references in a single Ingress rule), this can be closed as not needed.


Add Python 3.11 to CI

Rebased. BTW you can simply switch the merge button here to "Rebase and merge" if you want to avoid merge commits.


.pick() mask allowing non-present props when present props are defined

Example

// Original schema
const FooSchema = z.object({
  foo: z.string(),
  bar: z.string()
})

const CorrectlyFailingSchema = FooSchema.pick({
  notARealProperty: true // This causes TypeScript error as expected.
})

const IncorrectlyPassingSchema = FooSchema.pick({
  foo: true,
  notARealProperty: true // Once an existing property is added to the mask, any non-defined props can pass as well.
})

This became an issue today where after passing through a bundler (esbuild), a non-descriptive error started throwing on e.t._parse:
TypeError: Cannot read properties of undefined

The issue occurred because I had removed a property "title" from the original schema, but not from the pick() mask, so title._parse() was throwing as title was now undefined.

Ideally typescript should cause an error.
I implemented to show a helpful error message.
Example schema:
const fish = z.object({
  name: z.string(),
  age: z.number(),
  nested: z.object({}),
});

And then:
fish.pick({ name: true, color: true })

Doing this should show color key does not exist in object schema. Available keys: name,age,nested

Additional context:

This seems answered, may I close this?

This seems answered, may I close this?

Is there an associated PR? I haven't see anything as yet, so best to keep it alive until merged imo.

Ok sounds good. Just doing a little house keeping. It's hard sometimes to tell if an issue is done or not.


[Feature]: API Client can list service bindings via GET /v3/service_credential_bindings

Blockers/Dependencies
No response
Background
As a client of the API Shim
I want to be able to list service bindings
So that I can discover which service instances are bound to which apps
The CF CLI makes the following request as part of cf services:
GET /v3/service_credential_bindings?include=app&service_instance_guids=0c024675-7e0b-475c-8332-74986b5001a2%2C896fd3fa-28ec-42ff-b846-531e2ecabdaa

Acceptance Criteria

No Filters
GIVEN <>
WHEN I
THEN I

Filtering by service_instance_guids
GIVEN <>
WHEN I
THEN I

Include App
GIVEN <>
WHEN I
THEN I

No Visible Service Bindings
GIVEN <>
WHEN I
THEN I

Dev Notes

Remember to handle authentication as part of this story
API docs: https://v3-apidocs.cloudfoundry.org/version/3.113.0/index.html#list-service-credential-bindings
This story may be the first story that introduces the include parameter. It's a way to include related resources in the response so that clients can minimize the number of API calls they have to make.
This story + https://github.com/cloudfoundry/cf-k8s-controllers/issues/599 should be sufficient to get the cf services CLI command working

For reference, here are three CFServiceInstance YAMLs that cover these A/Cs.
Binding from App A to Service A
Binding from App A to Service B
Binding from App B to Service B
---
apiVersion: services.cloudfoundry.org/v1alpha1
kind: CFServiceBinding
metadata:
  name: cb90b250-68b8-499b-9667-99cc47419c9b
  namespace: 458d35bd-4c9b-4fd2-bf2d-f0deb162a33b
  labels:
    servicebinding.io/provisioned-service: "true"
    workloads.cloudfoundry.org/app-guid: "70fd71af-a2bb-4aea-b060-86f2c51f6588"
spec:
  name: dora-binding-service-one
  service:
    apiVersion: services.cloudfoundry.org/v1alpha1
    kind: CFServiceInstance
    name: 7219f578-bbf9-47ba-97c0-09cdecd2713a
  secretName: 7219f578-bbf9-47ba-97c0-09cdecd2713a
  appRef:
    name: 70fd71af-a2bb-4aea-b060-86f2c51f6588

---
apiVersion: services.cloudfoundry.org/v1alpha1
kind: CFServiceBinding
metadata:
  name: a438ffa5-c779-49d2-8158-2f43b771a0f4
  namespace: 458d35bd-4c9b-4fd2-bf2d-f0deb162a33b
  labels:
    servicebinding.io/provisioned-service: "true"
    workloads.cloudfoundry.org/app-guid: "70fd71af-a2bb-4aea-b060-86f2c51f6588"
spec:
  name: dora-binding-service-two
  service:
    apiVersion: services.cloudfoundry.org/v1alpha1
    kind: CFServiceInstance
    name: 9d56fbb7-7011-4c78-a27f-027e07423f56
  secretName: 9d56fbb7-7011-4c78-a27f-027e07423f56
  appRef:
    name: 70fd71af-a2bb-4aea-b060-86f2c51f6588

---
apiVersion: services.cloudfoundry.org/v1alpha1
kind: CFServiceBinding
metadata:
  name: 4dea6adb-47ad-449b-83b3-c2ddc79afcf4
  namespace: 458d35bd-4c9b-4fd2-bf2d-f0deb162a33b
  labels:
    servicebinding.io/provisioned-service: "true"
    workloads.cloudfoundry.org/app-guid: "996c85f3-996c-4b88-9c7d-1b9ed9729ce7"
spec:
  name: node-binding-service-two
  service:
    apiVersion: services.cloudfoundry.org/v1alpha1
    kind: CFServiceInstance
    name: 9d56fbb7-7011-4c78-a27f-027e07423f56
  secretName: 9d56fbb7-7011-4c78-a27f-027e07423f56
  appRef:
    name: 996c85f3-996c-4b88-9c7d-1b9ed9729ce7

Closing: This was completed by https://github.com/cloudfoundry/cf-k8s-controllers/pull/682 and passes acceptance.


Universidad de Málaga

University of Malaga

@anlli I am sorry, the domain uma.es is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


spa mode 3

how can I change the spi mode to 3?
it's mentions that it was verify on Micron N25Q, but it required spi mode = 3
I see any option to change the spi mode

It's been a very long time since I've used N25Q, but it used to support mode = 0:

It's been a very long time since I've used N25Q, but it used to support mode = 0:

actually, I'm using MT25QL128ABA8ESF, which has the same JEDEC ID ads the N25Q.
in mode=0 I'm getting bit shift. if I change the script to mode=3 it work perfectly fine.
since I don't want to change the original script I wonder if there is a way to set this mode without editing.

actually, I'm using MT25QL128ABA8ESF, which has the same JEDEC ID ads the N25Q.
in mode=0 I'm getting bit shift. if I change the script to mode=3 it work perfectly fine.
since I don't want to change the original script I wonder if there is a way to set this mode without editing.

I can think of two hack-ish fully untested ways (there may be more):

Use your pre-instantiated SpiPortfrom pyftdi.spi import SpiController
from spiflash.serialflash import SerialFlashManager
cs = 1
frequency = 6E6
spi = SpiController(url)
# instantiate the port, with the proper mode
_ = spi.get_port(cs, freq= frequency, mode=3)
# instantiate the flash device, should use the existing port, w/ changing its mode
flash = SerialFlashManager.get_from_controller(spi, cs, frequency)

This one is fragile, as it relies on the fact that PyFtdi does not cross check a pre-existing setting, so it may break in the future...
Change the mode once the flash is discoveredfrom spiflash.serialflash import SerialFlashManager
cs = 1
frequency = 6E6
flash = SerialFlashManager.get_flash_device(url, cs, frequency)
flash._spi.set_mode(3)

This one would only work if the flash is properly discovered in mode 0, the bit shifting you are observing is only seen during data transfer
Re-implement SerialFlashManager.get_flash_device()from spiflash.serialflash import SerialFlashManager
class MySerialFlashManager(SerialFlashManager):
    def get_flash_device(url: str, cs: int = 0, mode: int = 0, freq: Optional[float] = None) \
            -> '_SpiFlashDevice':
        ctrl = SpiController(cs_count=cs+1)
        ctrl.configure(url)
        spi = ctrl.get_port(cs, freq, mode)
        jedec = SerialFlashManager.read_jedec_id(spi)
        if not jedec:
            # it is likely that the latency setting is too low if this
            # condition is encountered
            raise SerialFlashUnknownJedec("Unable to read JEDEC Id")
        flash = SerialFlashManager._get_flash(spi, jedec)
        flash.set_spi_frequency(freq)
        return flash
cs = 1
frequency = 6E6
flash = MySerialFlashManager.get_flash_device(url, cs, 3, frequency)

This one may also break with a future update of SpiFlash.

In any case, please do not close this ticket, as SpiFlash definitely needs a way to set the mode.

I can think of two hack-ish fully untested ways (there may be more):

Use your pre-instantiated SpiPortfrom pyftdi.spi import SpiController
from spiflash.serialflash import SerialFlashManager
cs = 1
frequency = 6E6
spi = SpiController(url)
# instantiate the port, with the proper mode
_ = spi.get_port(cs, freq= frequency, mode=3)
# instantiate the flash device, should use the existing port, w/ changing its mode
flash = SerialFlashManager.get_from_controller(spi, cs, frequency)

This one is fragile, as it relies on the fact that PyFtdi does not cross check a pre-existing setting, so it may break in the future...
Change the mode once the flash is discoveredfrom spiflash.serialflash import SerialFlashManager
cs = 1
frequency = 6E6
flash = SerialFlashManager.get_flash_device(url, cs, frequency)
flash._spi.set_mode(3)

This one would only work if the flash is properly discovered in mode 0, the bit shifting you are observing is only seen during data transfer
Re-implement SerialFlashManager.get_flash_device()from spiflash.serialflash import SerialFlashManager
class MySerialFlashManager(SerialFlashManager):
    def get_flash_device(url: str, cs: int = 0, mode: int = 0, freq: Optional[float] = None) \
            -> '_SpiFlashDevice':
        ctrl = SpiController(cs_count=cs+1)
        ctrl.configure(url)
        spi = ctrl.get_port(cs, freq, mode)
        jedec = SerialFlashManager.read_jedec_id(spi)
        if not jedec:
            # it is likely that the latency setting is too low if this
            # condition is encountered
            raise SerialFlashUnknownJedec("Unable to read JEDEC Id")
        flash = SerialFlashManager._get_flash(spi, jedec)
        flash.set_spi_frequency(freq)
        return flash
cs = 1
frequency = 6E6
flash = MySerialFlashManager.get_flash_device(url, cs, 3, frequency)

This one may also break with a future update of SpiFlash.

In any case, please do not close this ticket, as SpiFlash definitely needs a way to set the mode.


Speech Command Recognition With Tensorflow.js and React.js

Article checklist
NOTE: (Please ensure that you have only one open issue + linked pull request at a time. This will ensure that we complete the article in a timely manner from inception to publishing.)
Preliminary Checks - Formatting and Structure

[x] Does your article follow any of the suggested structure formats? - see example formats
[x] Is your article properly formatted in Markdown? - see Github Markdown guide
[x] Have you used the correct folder and file structure? - see Contribution Guidelines
[x] Is your article over 750 words? - Tool: Wordcounter.net
[x] Have you used our preferred heading structure? - H3 (###) and up
[x] Does your article provide enough value and detail about your topic? - Articles should be clear, accurate, and fully explained.
[x] Can your article be understood by beginners? - Assume the audience is smart but has no prior exposure to the common terminology in your article.
[x] Have you included a hero image that is 600x400 pixels and have the copyright to use it? - Tools: Pixlr Image Editor for resizing and Unsplash for Creative Commons images
[x] In your PR - add a comment that states "This fixes #(enter your Idea Content Form #)" to link and close your Idea Content (issue) when the PR is merged.

This fixes #1693
Grammar & plagiarism checks

[x] Have you spellchecked and grammar checked your article? - Tools: Write&Improve - ProWritingAid -  Grammarly
[x] Have you placed your article through a 3rd party plagiarism checker? We suggest using Quetext, this tool is free and has a daily limit. We typically accept articles with 10% or less.
[x] Have you checked your article for readability? - Tool: Hemmingway
[x] Have you added sources for quotes and images that aren't yours?

Technical checks

[x] Are your code snippets properly formatted for syntax highlighting - see Syntax guide

Contribution guidelines
For first-time contributors and for more details, see Contributing Guidelines

@cyberShaw I already fixed all your comment

@cyberShaw I already fixed all your comment

Great work, I'll do a review.

@cyberShaw hi I wundering if your help me win this week with complete this task

Thank you for making the changes, @Worawat101!
This article is ready for final review.

plagiarism check done


Invalid memory address or nil pointer dereference

A user reported the following issue:
gotten error: Put "https://till.datahen.com/api/v1/instances/default/stats": read tcp <IP_ADDRESS>:54493-><IP_ADDRESS>:443: read: connection reset by peer
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x1028d8244]

goroutine 76 [running]:
github.com/DataHenHQ/till/server.startRecurringStatUpdate()
	/__w/till/till/server/stats.go:51 +0x194
created by github.com/DataHenHQ/till/server.Serve
	/__w/till/till/server/server.go:108 +0x3a8

After looking deeper into this, I realized that this happened during the time of deployment to the Till cloud's stats endpoint API. And when the Till instance tries to update the stats data to the endpoint, it crashes due to the stats endpoint being unavailable.
I've since fixed both things:

Make the local Till instance to be more resilient to the unavailability of the Till cloud's endpoint APIs
Changed Till cloud's Kubernetes' configuration so that rolling deployment would not cause a downtime


Artisan commands declared in modules not working

Hi,
I trying to create a custom artisan command inside a module, first of all I try using:
php artisan module:make-command TestCommand MyModule.
Inside the generated file I change the protected $name property in "test:test"
class TestCommand extends Command
{
    /**
     * The console command name.
     *
     * @var string
     */
    protected $name = 'test:test';

but when I try to exec it I receiving an error:
There are no commands defined in the "test" namespace.
I also try to clear the composer autoload and laravel cache but I still receive the same errore, seems the commands are not loaded.
I noticed that the laravel artisan make:command create a different property name:
class TestCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'command:name';

using signature instead of name it does not give results.
Am I doing something wrong?
Thank you.

Hello,
You're on a good path, but just forgot to register this command with laravel.
Use $this->commands([TestCommand::class]) inside your service provider.

Hi, many thanks for the prompt reply,
so the commands are not registered automatically from the path?
Registering it "manual" in the service provider, like this:
   /**
     * Register commands.
     *
     * @return void
     */
    protected function registerCommands()
    {
        $this->commands([
            \Modules\MyModule\Console\TestCommand::class
        ]);
    }

and adding on boot the function $this->registerCommands(); it works, thx.

Not automatic is a choice of laravel sadly: https://twitter.com/themsaid/status/888041249780924416

I use a similar solution adding this method in the service provider:
   /**
     * Register commands
     *
     * @param string $namespace
     */
    protected function registerCommands($namespace = '')
    {
        $finder = new Finder(); // from Symfony\Component\Finder;
        $finder->files()->name('*Command.php')->in(__DIR__ . '/../Console');

        $classes = [];
        foreach ($finder as $file) {
            $class = $namespace.'\\'.$file->getBasename('.php');
            array_push($classes, $class);
        }

        $this->commands($classes);
    }

and in boot method adding:
  $this->registerCommands('\My\Module\Console');

this seems working, even if is little bit "quick and dirty".

yeah why no 👍
(I'll close this issue as it has been resolved :) )

Thanks for the support.

In Laravel 5.6 Registering Commands section:

Because of the load method call in your console kernel's commands method, all commands within the app/Console/Commands directory will automatically be registered with Artisan. In fact, you are free to make additional calls to the load method to scan other directories for Artisan commands:

/**
 * Register the commands for the application.
 *
 * @return void
 */
protected function commands()
{
    $this->load(__DIR__.'/Commands');
    $this->load(__DIR__.'/MoreCommands');

    // ...
}

@ahlechandre @daaru00  @nWidart
``    /**
* Register commands.
*
* @return void
/
protected function registerCommands()
{
$commands = collect(glob(base_path('Modules//Console/.php')))
->map(function ($item) {
preg_match(sprintf("/%s./", config('modules.namespace')), $item, $matches);
return str_replace(['/', '.php'], ["\", ''], $matches[0]);
})->toArray();
    $this->commands($commands);
}``

On this way i have all commands from my modules registreds


v1.119

BUILD_NUMBER:String = "7cb313c7be";
BUILD_TIME:String = "05.02.2018 11:12";
VERSION_SECRET:String = "6q01Zd9YKTSEVjhtqqGEYjBGr3pUTRFojYL+m2/6GorQ892bVcY4QMoqLbc6A+DhXQEaMtZfkczMgiHt3tVJ4w==";
VERSION:String = "1.119";

Thanks for the info @VividWombat, could you submit a PR please?

PR added


Credit Transfer | Adjust error message when failing to select a reason for a zero dollar credit transfer |2|

https://trello.com/c/TF9DyMUL/861-credit-transfer-adjust-error-message-when-failing-to-select-a-reason-for-a-zero-dollar-credit-transfer-2
Current message:
Error! Zero Dollar Reason is required for Credit Transfers with 0 Dollar per Credit
Revised message:
Error! Please select a reason as to why the Credit Transfer Proposal has a fair market value of zero dollars per credit.

 Credit Transfer | Adjust error message when failing to select a reason for a zero dollar credit transfer |2|


.NET 8 zero overhead private member mapping

Previously, Mapperly hasn't had the option to access or set private members. Although private/hidden members have always been visible to source generators, there hasn't been a suitable way of accessing them. While workarounds such as Reflection.Emit, Linq.Expressions and reflection are available, upon closer inspection, they are insufficient for our needs due to poor performance and incompatibilities in AOT usage. For these reasons, Mapperly has never added private member mapping.
With the release of .NET 8, the UnsafeAccessorAttribute will be added. This supports code that accesses internal methods, constructors, fields, and properties with zero overhead while being AOT compatible. By applying it to an extern static method and configuring it, the runtime will attempt to find the corresponding field or method, to which the call will be forwarded.
Using the new attribute, Mapperly could add support for private member mapping, init-only/private setter mapping, and support private constructors.
Private member mapping
Enabling
Private member mapping could be enabled by default, although this would likely lead to nasty unexpected behaviour while breaking backwards compatibility. Instead I suggest that a property EnablePrivateMapping be added to [Mapper] and a method attribute [EnablePrivateMapping] be added. Alternatively private member mapping could always be enabled but only for explicit MapProperty mappings.
Generated code
The private access methods can be added as additional methods to the mapping class. These could be implemented like a MethodMapping and used like so: SetId(target, GetId(source)).
Alternatively, to make the code easier to read, the private accessors could be added to a file scoped static accessor class. This class way the methods could be implemented as extensions methods, with the resulting code reading left to right. target.SetId(source.GetId()).
target.Tires.SetSpareWheel(source.Tires.GetSpareWheel()) vs SetSpareWheel(target.Tires, GetSpareWheel(source.Tires))
Example
Mapper
public class Car
{
    private Tire _spareWheel { get; set; }
    // ...
}

public class CarDto
{
    private TireDto _spareWheel { get; set; }
    // ...
}

[Mapper(EnumMappingStrategy = EnumMappingStrategy.ByName)]
public static partial class CarMapper
{
    [MapProperty("_spareWheel", "_spareWheel")]
    [MapProperty(nameof(Car.Manufacturer), nameof(CarDto.Producer))] // Map property with a different name in the target type
    public static partial CarDto MapCarToDto(Car car);
}

Generated Code
static file class
{
    [UnsafeAccessor(UnsafeAccessorKind.Method, Name="set__spareWheel")]
    public static extern Tire GetSpareWheel(this Car source)

    [UnsafeAccessor(UnsafeAccessorKind.Method, Name="set__spareWheel")]
    public static extern void SetSpareWheel(this CarDto target, TireDto tireDto)
}

public static partial class CarMapper
{
    public static partial CarDto MapCarToDto(Car car)
    {
        target.SetSpareWheel(MapToTireDto(car.GetSpareWheel()));
        // ...
    }
}

Related #599, #531

Relates https://github.com/riok/mapperly/discussions/529
I like the idea 😊 Before this can be implemented we need to add support for Roslyn 4.7.
Since https://github.com/riok/mapperly/pull/597 Mapperly maps all fields and properties the mapper has access to. This can include private members.
Instead of [EnablePrivateMapping] i like a flags idea more:
public sealed class MapperAttribute
{
+    public MemberVisibility IncludedMembers { get; set; } = MemberVisibility.Accessible;
}

+[Flags]
+public enum MemberVisibility
+{
+    /// <summary>
+    /// Maps all accessible members.
+    /// </summary>
+    Accessible = 1 << 0 | All,

+    /// <summary>
+    /// Maps all members. Generates accessors for not directly accessible members (<seealso cref="UnsafeAccessorAttribute" />).
+    /// </summary>
+    All = Public | Internal | Protected | Private,

+    Public = 1 << 1,
+    Internal = 1 << 2,
+    Protected = 1 << 3,
+    Private = 1 << 4,
+}

Accessible should replicate the current behaviour (mainly introduced by #597) which maps all members accessible by the mapper.
For the accessors, to keep it simple, I'd reuse the same class and just append them at the end of the class.

public MemberVisibility IncludedMembers { get; set; } = MemberVisibility.AllAccessible;

You think that private/internal mapping should be enabled by default?

I would enable private/internal fields by default, but also set the Accessible flag by default. This by default only maps members which are accessible by the mapper which I think is what most people expect. https://github.com/riok/mapperly/pull/597 will introduce exactly this behaviour (therefore this won't be breaking, but #597 is).
https://github.com/riok/mapperly/pull/597 maps all members which are accessible by the mapper instead of only public and internal members. This is a breaking change for members in assemblies with the InternalsVisibleToAttribute set for the assembly of the mapper and it is a breaking change for private members if the mapper has access to them (eg. the mapper class itself is mapped or the mapper is contained in another class with private members). At the time of implementing #597 I thought #354 was only implemented in 2.9.0-next.* and therefore mapping private members won't touch anyone with 2.8.0, but I just realised that #354 was already released in 2.8.0. I still think it wont touch many users, but I'm unsure whether we should release #597 as breaking change 🤔

I would enable private/internal fields by default, but also set the Accessible flag by default. This by default only maps members which are accessible by the mapper which I think is what most people expect. https://github.com/riok/mapperly/pull/597 will introduce exactly this behaviour (therefore this won't be breaking, but https://github.com/riok/mapperly/pull/597 is).

I think I misunderstood you earlier. When you say private do you mean map any private members or just private members that are in the scope of the mapper (aka nested mappers, I'd assume this would fall under Accessible)? i.e.
[Mapper]
public statiic partial Mapper
{
    // would _value be mapped by default?
    public static partial B Map(A src);
}

public class A { private int _value { get; set; } }
public class B { private int _value { get; set; } }

https://github.com/riok/mapperly/pull/597 maps all members which are accessible by the mapper instead of only public and internal members. This is a breaking change for members in assemblies with the InternalsVisibleToAttribute set for the assembly of the mapper and it is a breaking change for private members if the mapper has access to them (eg. the mapper class itself is mapped or the mapper is contained in another class with private members).

Do other mapping libraries do this? I can't remember if reflection can use InternalsVisbleTo. I wonder if it would be worth introducing this enum/config so users can enable this.

At the time of implementing https://github.com/riok/mapperly/pull/597 I thought https://github.com/riok/mapperly/pull/354 was only implemented in 2.9.0-next.* and therefore mapping private members won't touch anyone with 2.8.0, but I just realised that https://github.com/riok/mapperly/pull/354 was already released in 2.8.0. I still think it wont touch many users, but I'm unsure whether we should release https://github.com/riok/mapperly/pull/597 as breaking change 🤔

I don't think its a massive problem. tbh I was suprised at how many people were using nested classes and wanted to map private properties. I have no idea what they are using it for

@TimothyMakkison the idea of the Accessible flag is to control whether UnsafeAccessorAttribute s are used or only members which are accessible by the mapper are considered.
I don't think InternalsVisibleTo affects a lot of people and there is an easy workaround with ignore attributes.
IMO the enum would help for sure... We could introduce it and just report a diagnostic if the Accessible flag is not set until Mapperly supports the new Roslyn version and UnsafeAccessorAttribute.
We'll release #597 as breaking change as it is actually a breaking change and we want to conform to the semantic release specification. I prepared #611 and #612 for this. The upgrade procedere for most of the users should be just as simple as upgrading to a new feature release.

Blocked by https://github.com/riok/mapperly/issues/682

@TimothyMakkison have you already started working on this? Otherwise I'd probably start working on this in the upcoming weeks 😊

Yeah I prototyped it a month ago. I have a working prototype but it needs revasing. Might need some help coming up with a nice abstraction to the changes I made to MemberPath, it now needs to support normal assignments and invoking a setter method.

Oh yeah, should Mapperly let individual mapping methods set its visibility mapping? Or should it be configured in the MapperAttribute

A quick thought: Couldn't this be abstracted by introducing a new MethodAccessorMember' which implements IMappableMember' and simply delegates almost everything to a delegate field which is again an IMappableMember' (the actual member).  Then the MemberPath.BuildAccesscould be split intoBuildSetValueandBuildGetValue(for the whole path) and a similar method added toIMappableMember(for each individual member). Each time aMethodAccessorMemberis instantiated, an accessor to be generated is added to the descriptor. InSourceEmitter.Build' these accessors could then be converted to members similar to the mappings themselves.
I'd probably have to experiment a bit too, to get a good solution.
I think this might be helpful on method level, but IMO in a first version it is ok only on mapper level.

Iirc I added MemberPathSetter and MemberPathGetter and updated all users of MemberPath to use them. I had a reason why I didn't add BuildSetValue  or BuildGetValue  but I can't remember why 😆 (might be something to do with equality 🤷).
I think I kept MemberPath as a placeholder which, after validation, could be built into the Getter/Setter version using UnsafeAccessor to generate or resue methods.


Updated: readme list of components

Toast checkbox now checked

Please don't remove the white spaces. they're necessary for making new lines on markdown.

Owner

Done 😊 should be good now

Thank you 🙌


Parameter comments are not shown in tooltips

For the function declaration:
###
# Wait for an input signal to change state on a Modbus/TCP server
# @param input string the name of the created signal to use as an input
# @param timeout_delay float seconds to wait for signal before return, default 4.0
# @param invert_input bool whether to watch for a falling edge, default False
# @returns bool whether the signal succeeded or timed out
###
def modbus_wait(input, timeout_delay = 4.0, invert_input = False):

I would expect the tool tip to show the comments for the params like the following:

Wait for an input signal to change state on a Modbus/TCP server

Parameters

input (string): the name of the created signal to use as an input
timeout_delay (float): seconds to wait for signal before return, default 4.0
invert_input (bool): whether to watch for a falling edge, default False

Return
whether the signal succeeded or timed out

Instead, the extension produces this:

Wait for an input signal to change state on a Modbus/TCP server

Return
whether the signal succeeded or timed out

I release the version v0.1.12 to add this feature.
In early stage, I want to keep tooltip cleanly and I make signature for more information. But back to present, I agree you idea for display details on tooltip 😄


Getting UnmodifiableIterator exception

Expected behavior
I should be able to run the specifications without an exception.
Actual behavior
Getting the following exception
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
	at org.reflections.Reflections.expandSuperTypes(Reflections.java:380)
	at org.reflections.Reflections.<init>(Reflections.java:126)
	at com.thoughtworks.gauge.scan.ClasspathScanner.createReflections(ClasspathScanner.java:60)
	at com.thoughtworks.gauge.scan.ClasspathScanner.scan(ClasspathScanner.java:37)
	at com.thoughtworks.gauge.GaugeRuntime.connectSynchronously(GaugeRuntime.java:81)
	at com.thoughtworks.gauge.GaugeRuntime.main(GaugeRuntime.java:53)
[ValidationError] /Users/sswaroop/work/gauge-gradle-sample/specs/main.spec:10 Connection closed [<IP_ADDRESS>:55993] cause: EOF => 'A context step which gets executed before every scenario'
[ValidationError] /Users/sswaroop/work/gauge-gradle-sample/specs/main.spec:17 write tcp <IP_ADDRESS>:55989-><IP_ADDRESS>:55993: use of closed network connection => 'Say "hello (from main)" to "gauge"'
process /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre/bin/java with pid 3773 quit unexpectedly. exit status 1
  Failed to initialize suite datastore. Error: write tcp <IP_ADDRESS>:55989-><IP_ADDRESS>:55993: use of closed network connection

Step to replicate

Project
Update the gradle version to 4.0 in the gradle-wrapper.properties
rename the highest spec folder to specs
run the project from IDE/commandline

Version
Gauge version: 0.9.0.nightly-2017-07-06

Plugins
-------
html-report (4.0.1)
java (0.6.5.nightly-2017-07-03)

I had the same issue.
>gauge -v
Gauge version: 0.8.5

Plugins
-------
html-report (4.0.1)
java (0.6.4)
spectacle (0.1.2)

I have solved it by downgrading to 0.6.2 java plugin version (install plugin and point pom.xml use it). Seems like this issue is present since 0.6.3.

i cannot reproduce this anymore - so either it is obsolete or I do something wrong....
I checked out the project, changed to gradle-4.0 and ran gradlew gauge with success
$ gauge -v
Gauge version: 0.9.7
Commit Hash: bc9784c

Plugins
-------
html-report (4.0.3)
java (0.6.7)
screenshot (0.0.1)
spectacle (0.1.2)

Closing this as an old issue. This may be fixed in the newer releases.
Will reopen if it still needs fixing.


[KYUUBI #1531] Add kyuubi version in engineSpace

Why are the changes needed?
#1531
Add kyuubi version in engineSpace
How was this patch tested?

[ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

[ ] Add screenshots for manual tests if appropriate

[ ] Run test locally before make a pull request

cc @pan3793 @yaooqinn

Thanks, merging to master


Exposed parameter 'UnregisterUnusedVersions'

Upgrade Parameter UnregisterUnusedVersions exposed in this commit.

@sidharthmittal,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@sidharthmittal,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@sidharthmittal, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot

This is exactly what we need, so we can retain older versions for potential rollback. Good job, @sidharthmittal

@MikkelHegn, @bishal-pdMSFT any objections to merging?

@NCarlsonMSFT In my opinion, this parameter should not be first in "upgrade" group.

@bishal-pdMSFT  Have made the change you suggested. Moved it to an apt position.
Please merge as soon as possible. We are waiting for this property to be exposed


Update index.vue

Update Discord Link and Icon () in index.vue
Ref.

@tenphi Plz. review this PR. I think Ionicons Icons are not working by default.

@tenphi Plz. review this PR. I think Ionicons Icons are not working by default.

Thanks for the PR. I will add it manually.
Ionicons won't be used on the website cause they don't fit its design system which is different from Numl Default.
I'm not sure how to fix this issue right now.

Thanks for the PR. I will add it manually.
Ionicons won't be used on the website cause they don't fit its design system which is different from Numl Default.
I'm not sure how to fix this issue right now.


New Integration Event in Codeunit 12

Raised from here in codeunit 12 (Line 4208)

Hi Stanislaw,
We cannot find the event. Do you know what version of NAV did you include it?

It was included in the February 2018 Developer Preview release which means that it is currently available in Business Central. To get this event for NAV 2018 you can either log a support request or add it manually (because you have the guarantee that the event will be present in the latest official codebase).
Please see the FAQ section about NAV 2018 issues.


[FLINK-33507][json]Support zero-timestamp.behavior option for JSON fo…

What is the purpose of the change
This pull requests support a new json-format option:zero-timestamp.behavior when we deserialize a json string to RowData.
In MySQL, there is a special type of datetime data, which is zero datatime, such as "0000-00-00 00:00:00". This kind of datetime is illegal in Java, so MySQL JDBC provides a parameter to convert zero datetime to null. However, currently this kind of data cannot be parsed normally by flink json in the timestamp format, so I hope to add an option to handle zero datetime to ensure that MySQL will not report errors in data migration scenarios.
Brief change log

*Support a new json-format option:zero-timestamp.behavior when we deserialize a json string to RowData. *

Verifying this change
This change is already covered by existing tests, such as JsonRowDataSerDeSchemaTest.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (yes)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (docs)

run azure re-run the last Azure build

2023年11月23日 01:21，flinkbot @.***> 写道：
CI report:
2cff58f https://github.com/apache/flink/commit/2cff58f1a6cd2ddea1e31dbe382f1abc1d5c8ac8 UNKNOWN
Bot commands
https://github.com/flinkbot
—
Reply to this email directly, view it on GitHub https://github.com/apache/flink/pull/23774#issuecomment-1823186964, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANSJ3KLVSR2FHSDZ7YOGFR3YFYYCFAVCNFSM6AAAAAA7WSO5ZWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRTGE4DMOJWGQ.
You are receiving this because you are subscribed to this thread.


Bumped dysonAirPurifier to V0.9.5

RE-CHECK!

Automated adapter checker
ioBroker.dysonairpurifier

[ ] :heavy_exclamation_mark: [E301] Tests on Travis-ci.com are broken. Please fix.

ioBroker.mielecloudservice

[ ] :heavy_exclamation_mark: [E504] "main.js found in package.json, but not found as file
[ ] :heavy_exclamation_mark: [E301] Tests on Travis-ci.com are broken. Please fix.
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E815] file .travis.yml found in repository, but not found in .npmignore

ioBroker.alias-manager

:thumbsup: No errors found
ioBroker.maxcube

:thumbsup: No errors found

[ ] :eyes: [W113] Adapter should support compact mode

ioBroker.easee

[ ] :heavy_exclamation_mark: [E145] No news found for actual version 1.0.4
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E816] file tsconfig.json found in repository, but not found in .npmignore

ioBroker.cul

[ ] :heavy_exclamation_mark: [E150] No common.connectionType found in io-package.json
[ ] :heavy_exclamation_mark: [E152] No common.dataSource found in io-package.json
[ ] :heavy_exclamation_mark: [E605] No actual year found in copyright. Please add "Copyright (c) 2014-2021 hobbyquaker<EMAIL_ADDRESS>at the end of README.md
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E814] file appveyor.yml found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E815] file .travis.yml found in repository, but not found in .npmignore

ioBroker.digitalstrom

:thumbsup: No errors found
ioBroker.influxdb

[ ] :heavy_exclamation_mark: [E152] common.dataSource type has an invalid type none
[ ] :heavy_exclamation_mark: [E140] width and height of logo are not equal

ioBroker.netatmo-crawler

[ ] :heavy_exclamation_mark: [E130] Too many news found in io-package.json. Mast be less than 21. Please remove old news.
[ ] :heavy_exclamation_mark: [E605] No actual year found in copyright. Please add "Copyright (c) 2021 Bart19<EMAIL_ADDRESS>at the end of README.md
[ ] :heavy_exclamation_mark: [E701] No actual year found in LICENSE. Please add "Copyright (c) 2021 Bart19<EMAIL_ADDRESS>at the start of LICENSE
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E815] file .travis.yml found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E816] file tsconfig.json found in repository, but not found in .npmignore

ioBroker.node-red

[ ] :heavy_exclamation_mark: [E151] common.connectionType type has an invalid type none
[ ] :heavy_exclamation_mark: [E152] common.dataSource type has an invalid type none
[ ] :heavy_exclamation_mark: [E504] "main.js found in package.json, but not found as file
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore

ioBroker.s7

[ ] :heavy_exclamation_mark: [E112] extIcon must be the same as an icon but with github path
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E813] file src/ found in repository, but not found in .npmignore

ioBroker.telegram

:thumbsup: No errors found
ioBroker.tr-064

:thumbsup: No errors found
ioBroker.tradfri

:thumbsup: No errors found

[ ] :eyes: [W801] .npmignore not found

ioBroker.web

[ ] :heavy_exclamation_mark: [E104] No common.title found in io-package.json
[ ] :heavy_exclamation_mark: [E151] common.connectionType type has an invalid type none
[ ] :heavy_exclamation_mark: [E152] common.dataSource type has an invalid type none
[ ] :heavy_exclamation_mark: [E812] file test/ found in repository, but not found in .npmignore
[ ] :heavy_exclamation_mark: [E813] file src/ found in repository, but not found in .npmignore

ioBroker.awattar

[ ] :heavy_exclamation_mark: [E145] No news found for actual version 1.0.6
[ ] :heavy_exclamation_mark: [E701] No actual year found in LICENSE. Please add "Copyright (c) 2021 SirJojo69<EMAIL_ADDRESS>at the start of LICENSE

ioBroker.bring

:thumbsup: No errors found
ioBroker.time-switch

:thumbsup: No errors found
ioBroker.canbus

:thumbsup: No errors found
io-package.json

[ ] :heavy_exclamation_mark: 404

ioBroker.epson_ecotank_et_2750

:thumbsup: No errors found
io-package.json

[ ] :heavy_exclamation_mark: 404

ioBroker.meteoalarm

:thumbsup: No errors found
ioBroker.traccar

:thumbsup: No errors found
Add comment "RE-CHECK!" to start check anew