Files with names starting with "." cannot be compiled

When trying to compile a file with name starting with ".", it fails with "Invalid extension" error while it should not.
Example: trying to compile file .j.jp leads to "Can't build .j.jp. Invalid extension."

When trying to compile a file with name starting with ".", it fails with "Invalid extension" error while it should not.
Unfortunately that is a restriction with the build intrinsic itself. It does not allow .j to be built. While you can easily do it with the "Code Editor" it is not possible via the intrinsic. Of course I could implement a work around and have a temporary name and then rename it but I am not sure that is worth the effort as it seems very much an edge case.

Anyway you can try it yourself buy just creating a script file with the name .j ingame and then run build .j /root it will throw the same error.

Example: trying to compile file .j.jp leads to "Can't build .j.jp. Invalid extension."
I've tried this as well and it compiled .j.jp just fine for me. Therefore I could not replicate the issue for this case.

Anyway you can try it yourself by just creating a script file with the name .j ingame and then run build .j /root it will throw the same error.

Yea, looks like it is caused by https://github.com/ayecue/greybel-gh-mock-intrinsics/blob/7d34c25d3ff4945176d8fd03d302560b772a6e03/src/shell.ts#L315

Found it in the game, the check is analogous to the following miniscript code:
array = sourceFileName.split("\.")
if array.len == 1 or (array.len == 2 and array[0] == "") then ... // return the error

Should be fixed now with 2.5.19 released. Thanks for reporting the issue. I'll close the issue for now.


SAK-49597 Kernel allowAccessSite should consider if user is role swapped

https://sakaiproject.atlassian.net/browse/SAK-49597

You've used the wrong SAK number in the commit log

I've approved it, but you should update that SAK number in the commit message

Thank you :+1:

@kunaljaykam You're welcome :)


Requirement: Never call InstallationArguments environment variable

Suggest using package parameters instead.
Had a package once that removed install args and put them back once it was done.

@ferventcoder I am going to work on the assumption that it is all three of these:
https://github.com/chocolatey/choco/blob/0ec22c8cfa5d71933fc2a378ddee62d195f8199b/src/chocolatey/infrastructure.app/services/PowershellService.cs#L179-L181


[policy] When to use jQuery or native DOM element properties

Following my realization in https://github.com/dreditor/dreditor/issues/172#issuecomment-44144774, I'd like to make a decision about this and remain consistent.
The outcome of this will need to be stated clearly in https://github.com/dreditor/dreditor/blob/1.x/CONTRIBUTING.md#coding-standards

Dreditor is being decommissioned due to the lack of availability of current maintainers and the fact that Drupal.org is becoming more feature rich at a much faster rate than Dreditor itself now.
This decision was also partially made due to the amount of work (complete rewrite) it would take to create an "official" Firefox extension (#256).
If you already have the extension installed, it should continue working for a while until, inevitably,  the markup on Drupal.org changes. It will no longer be updated.
We understand that many of you love this extension, as do we. This isn't the end, in fact, it's a much brighter beginning. All the things we love about Dreditor can, and should, be moved into Drupal.org natively.
For more information, please follow: https://www.drupal.org/node/2779729

This issue was moved to dreditor/dreditor#22


[Impeller] impeller_debug always on in Flutter debug and profile modes.

This introduces overhead due to pipelines for checkerboarding and such as well as emitting validation logs. This does not currently enable Vulkan validation via layers though.
The action item here is to investigate if the overhead reasonable or whether it needs to be trimmed down somehow.

cc @bdero. Low priority. Just creating an action item from the weekly notes.

Fwiw, as a contributor, I find it really confusing when "debug" means "debug some things".
Profiling mode aside (I know less about that), it would be nice to have debug mode just mean "debug all things".

Triage: We should rename the thing thats guarding performance overlay and checkerboarding behing explicit flags. Everyone was confused about what was being debugged with this.


Treat service directory as single scope

Relates to #14969
Also write error output as red for easy identification in development environment.

/azp run net - keyvault - ci

This is blocking use in writing a MigrationGuide.md for Key Vault secrets, pull snippets from track 1 and track 2 to verify code correctness (and caught a couple typos, so there is value).

/azr run net - storage - ci

/azp run net - storage - ci

I'll push my actual work that necessitated this to a new PR, which includes sdk/keyvault so the pipeline will trigger.

Talked to @pakrym offline and he believes this is an adequate fix to #14969 so I'll close that when I merged this PR.

I'll wait to merge until after both this PR and #15118 pass.

The other PR had only 1 random test failure with Service Bus (on MacOS, which all passed here) so I'm going to merge.


[DOC][NFC] Batchnorm inference API documentation update

Batchnorm inference API documentation is updated with more details

http://micimaster.amd.com/blue/organizations/jenkins/MLLibs%2FMIOpen/detail/batch_norm_api_doc_update/1/pipeline
this PR not passed CI, now it becomes a blocker for our CI process. #1452

http://micimaster.amd.com/blue/organizations/jenkins/MLLibs%2FMIOpen/detail/batch_norm_api_doc_update/1/pipeline
this PR not passed CI, now it becomes a blocker for our CI process. #1452

Thank you for the hotfix!
I skipped CI since it is doc-only change, did not know that clang will check comments' format too. Will be more careful next time.
CC: @atamazov  @JehandadKhan

@junliume Yes. We can run NOGPU-only tests on CI to quickly check formatting (and, IIRC doxygen-related problems, which are quite possible when documentation is changed).


Missing @hashgraph/hedera-custodians-integration

Describe the bug
A user from Discord reported that when installing dependencies, he got the following error
Module not found: Error: Can't resolve '@hashgraph/hedera-custodians-integration' in '/workspace/stablecoin-studio/sdk/build/esm/src/port/out/hs/hts/custodial'
ERROR in ../sdk/build/esm/src/port/out/hs/hts/custodial/CustodialTransactionAdapter.js 39:0-76
Module not found: Error: Can't resolve '@hashgraph/hedera-custodians-integration' in '/workspace/stablecoin-studio/sdk/build/esm/src/port/out/hs/hts/custodial'

ERROR in ../sdk/build/esm/src/port/out/hs/hts/custodial/DFNSTransactionAdapter.js 29:0-94
Module not found: Error: Can't resolve '@hashgraph/hedera-custodians-integration' in '/workspace/stablecoin-studio/sdk/build/esm/src/port/out/hs/hts/custodial'

ERROR in ../sdk/build/esm/src/port/out/hs/hts/custodial/FireblocksTransactionAdapter.js 29:0-100
Module not found: Error: Can't resolve '@hashgraph/hedera-custodians-integration' in '/workspace/stablecoin-studio/sdk/build/esm/src/port/out/hs/hts/custodial'

To Reproduce
Steps to reproduce the behavior:

Clone the repo
Run npm install
You will see the custodian wallet error.

Expected behavior
The NPM should be able to install all the dependencies successfully
Screenshots

It was fixed already ✅


pull request for e2e test at 12/16/2016 00:56:34

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


[BugFix][Cherry-pick][Branch-2.4] data error after reload persistent index (#12620)

We should take care of calling emplace_back after initializing the capacity of the vector because this may not be your expected behavior. And the first n elements are null but not the data we want, that is why cause the inconsistent of persistent index.
What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] I have added user document for my new feature or new function

starrocks_be_unittest succeeded.


mscs map updates only update after backup

I perform a mscs map <world> command and can see that the file date and time update in the shared nginx <-> mscs map folder. The overviewer map produces no visual changes. I can run the command multiple times, I can remove all the data out of the shared nginx/mscs map folder. I confirmed there are no additional versions as per previous mscs bug reports.
I perform a mscs backup <world> followed by a mscs map <world> and the map renders the new modified blocks.
I would like to know what steps I can do to successfully update the map without performing backups.

It was a conscious choice to require a backup prior to mapping to avoid running the server in "save-off" mode for an extended period of time (PR #119, and later amended in PR #127).
I would however be happy to accept patches to make this a user configurable option via the mscs.properties or server.properties files instead.

I'll take a look. It's been a while since I've programmed in Perl.

Let me know if you have any questions or need pointers.
Take a look at the getServerLocation() method for an example if you need the option to have access to variables -- this would be the only Perl you would have to touch.
If you don't need access to variables, and you wouldn't if you use a boolean value (e.g., something like mscs-maps-from-backup=true), you would just need to call getDefaultsValue() and getMSCSValue(). E.g., something like (completely untested):
  # Make sure that the backup of the world files are there before mapping.
  USE_BACKUP_LOCATION=$(getMSCSValue $1 'mscs-maps-from-backup' $(getDefaultsValue 'mscs-maps-from-backup' 'true'))
  if [ $USE_BACKUP_LOCATION eq 'true' ] && [ ! -e "$BACKUP_LOCATION/$1/server.properties" ]; then
    printf "\nError finding the backup for world $1.  To save server "
    printf "down time, mapping is run from the backup location.\n"
    printf "Run '$PROG backup $1' before mapping.\n"
    return
  fi

and a bit later ...
if [ $USE_BACKUP_LOCATION eq 'true' ]; then
    printf "worlds['$1'] = '$BACKUP_LOCATION/$1/$1-original' if os.path.exists('$BACKUP_LOCATION/$1/$1-original') else '$BACKUP_LOCATION/$1/$1'\n\n" >>$SETTINGS_FILE
else
    printf "worlds['$1'] = '$WORLDS_LOCATION/$1/$1'\n\n" >> $SETTINGS_FILE
fi

The statement "To save server down time, mapping is run from the backup location." is returned as an error if a backup doesn't exist. My question is, if I run overviewer directly on a running map, would there be downtime associated?
If yes:

I think running a backup and running the overviewer software on the backup is best choice.
A backup could be ran in a unique directory. Overviewer would perform its mapping on the freshly backed up files. When complete, the backup files/dir would be cleaned up afterwords.

If no, the server will not experience a minor or major outage.

Has the user stated they want to run overviewer on a live world, yes? then run on the live server.
Has the user recently backed up the world in the last $X days? No? Inform the user to perform a backup.

Generating an Overviewer map disables world updates and saves, however the server will still run so it's not actually downtime per se. You just run the risk of losing any progress in the world while the map is generated.
Running Overviewer can take a long time, a backup usually takes a fraction of the time.
So we determined in order to prevent world updates from being lost, backups would be made and mapping would be generated from the latest backup.


TestSetReleasedOk fixes

Hey @rafaelbreno - sorry, by merging, I ended up closing the issue. If you don't mind, I'll just open a few new small issues that we can review some of the feedback from the tests you created? They look great by the way - thanks so much!
For the TestSetReleasedOk test, I believe the issue is that you're comparing the value from newReleased := time.Now(), which is a full time.Time with nanosecond precision. The SetReleased method expects a string in the RFC3339 format and parses as such:
func (m *Movie) SetReleased(r string) (*Movie, error) {
	t, err := time.Parse(time.RFC3339, r)
	if err != nil {
		return nil, errs.E(errs.Validation,
			errs.Code("invalid_date_format"),
			errs.Parameter("release_date"),
			errors.WithStack(err))
	}
	m.Released = t
	return m, nil
}

RFC3339     = "2006-01-02T15:04:05Z07:00"
RFC3339 does not have nanosecond precision, so when you send through the time.Time and format it, it's going to remove that precision.
gotMovie, _ = gotMovie.SetReleased(newReleased.Format(time.RFC3339))
and when you compare it again, you're comparing the original (newReleased) with nanosecond precision, with the return from the method without it.
	if gotMovie.Released != newReleased {
		t.Errorf("Want: %v\nGot: %v\n\n", newReleased, gotMovie.Released)
	}

Rather than use the time.Now() helper, I would send in a string as if you were receiving it from an API request in RFC3339 format. Parse that string in the test and then compare... Make sense?

A couple minor things - I typically like to use table-driven tests and subtests as much as possible, so for instance, for the IsValid method, something like this (I only put 2 test cases as an example):
func TestMovie_IsValid(t *testing.T) {
	// Valid movie
	_, m1 := NewValidUserMovie()
	m1.SetTitle("Movie Title").
		SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	// Missing Title
	_, m2 := NewValidUserMovie()
	m1.SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	tests := []struct {
		name    string
		m       *movie.Movie
		wantErr bool
	}{
		{"Valid Movie", m1, false},
		{"Missing Title", m2, true},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if err := tt.m.IsValid(); (err != nil) != tt.wantErr {
				t.Errorf("IsValid() error = %v, wantErr %v", err, tt.wantErr)
			}
		})
	}
}

instead of adding a function for each test case as you had done. Although, I really like the way that you are testing the error return though in each of your test cases to ensure that the error is formed properly. It'd be neat if we could incorporate that into the table driven test as well.

A couple minor things - I typically like to use table-driven tests and subtests as much as possible, so for instance, for the IsValid method, something like this (I only put 2 test cases as an example):
func TestMovie_IsValid(t *testing.T) {
	// Valid movie
	_, m1 := NewValidUserMovie()
	m1.SetTitle("Movie Title").
		SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	// Missing Title
	_, m2 := NewValidUserMovie()
	m1.SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	tests := []struct {
		name    string
		m       *movie.Movie
		wantErr bool
	}{
		{"Valid Movie", m1, false},
		{"Missing Title", m2, true},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if err := tt.m.IsValid(); (err != nil) != tt.wantErr {
				t.Errorf("IsValid() error = %v, wantErr %v", err, tt.wantErr)
			}
		})
	}
}

instead of adding a function for each test case as you had done. Although, I really like the way that you are testing the error return though in each of your test cases to ensure that the error is formed properly. It'd be neat if we could incorporate that into the table driven test as well.

ok @rafaelbreno - what do you think about this?
func TestMovie_IsValid(t *testing.T) {
	// Valid movie
	_, m1 := NewValidUserMovie()
	m1.SetTitle("Movie Title").
		SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	// Missing Title
	_, m2 := NewValidUserMovie()
	m2.SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")
	missingTitleErr := errs.E(errs.Validation, errs.Parameter("title"), errs.MissingField("title"))

	tests := []struct {
		name    string
		m       *movie.Movie
		wantErr error
	}{
		{"Valid Movie", m1, nil},
		{"Missing Title", m2, missingTitleErr},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			err := tt.m.IsValid()
			if (err != nil) && (tt.wantErr != nil) {
				c := qt.New(t)
				c.Assert(errs.Match(err, tt.wantErr), qt.Equals, true)
			}
		})
	}
}

This way we can table drive the tests and test each errs.Error struct as well. You'll notice qt.New and c.Assert - I decided to use quicktest after some research. It's built by the Canonical / Hugo guys and has hooks into gp-cmp, which I really like for equality. I'm aliasing the import, same as they do in their docs, so my import looks like:
	qt "github.com/frankban/quicktest"
Let me know if you like it - do you want to refactor this method and check-in? You did most of the work on this, so think you should check-in the changes? One other thing - NewValidUserMovie - I think this should not be exported, unless you think it needs to for some reason?
Thanks again!
Dan

ok @rafaelbreno - what do you think about this?
func TestMovie_IsValid(t *testing.T) {
	// Valid movie
	_, m1 := NewValidUserMovie()
	m1.SetTitle("Movie Title").
		SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")

	// Missing Title
	_, m2 := NewValidUserMovie()
	m2.SetRated("R").
		SetRunTime(19).
		SetDirector("Movie Director").
		SetWriter("Movie Writer").
		SetReleased("1996-12-19T16:39:57-08:00")
	missingTitleErr := errs.E(errs.Validation, errs.Parameter("title"), errs.MissingField("title"))

	tests := []struct {
		name    string
		m       *movie.Movie
		wantErr error
	}{
		{"Valid Movie", m1, nil},
		{"Missing Title", m2, missingTitleErr},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			err := tt.m.IsValid()
			if (err != nil) && (tt.wantErr != nil) {
				c := qt.New(t)
				c.Assert(errs.Match(err, tt.wantErr), qt.Equals, true)
			}
		})
	}
}

This way we can table drive the tests and test each errs.Error struct as well. You'll notice qt.New and c.Assert - I decided to use quicktest after some research. It's built by the Canonical / Hugo guys and has hooks into gp-cmp, which I really like for equality. I'm aliasing the import, same as they do in their docs, so my import looks like:
	qt "github.com/frankban/quicktest"
Let me know if you like it - do you want to refactor this method and check-in? You did most of the work on this, so think you should check-in the changes? One other thing - NewValidUserMovie - I think this should not be exported, unless you think it needs to for some reason?
Thanks again!
Dan

Hello @gilcrest , it's totally fine, feel free to open issues and assign it to me, I'm happy to help with this project :D . I'm new to Go, and helping with the development of this project is being a great experience.

About the TestSetReleasedOk I do understand, and makes sense receiving a timestamp string instead of using time.Now(), parse it and then compare.

I do liked the way of Table driven tests, and I think it would be neat to combine it with the way I'm testing, I'm not sure how I would achieve that, but It would be really nice and more organized and "readable".

I'm gonna give quicktest a whirl and try it a little, I think that If we find a great model of testing, would be nice to standardize and apply it to all tests, or even apply something like Laravel, both Unit and Feature tests, something to mind later on.

To be honest I kinda don't remember why I wrote the NewValidUserMovie to return both User and Movie, instead of only a Movie, and a wrote this method to standardize the Movie instances, because before it, each Test block had its own:
	uid := uuid.New()
	externalID := "ExternalID"

	u := newValidUser()

	m, _ := movie.NewMovie(uid, externalID, &u)

So if for some reason in the future you decide or it's needed to modify the NewMovie method, It would only need to  modify that one method instead of all tests blocks.
With that in mind, I will be refactoring some parts of my code, and because you already merged it to master, I just created a new branch, that's updated with master and to test it locally, just switch branches and it'll be good to go!

Hello @gilcrest , it's totally fine, feel free to open issues and assign it to me, I'm happy to help with this project :D . I'm new to Go, and helping with the development of this project is being a great experience.

About the TestSetReleasedOk I do understand, and makes sense receiving a timestamp string instead of using time.Now(), parse it and then compare.

I do liked the way of Table driven tests, and I think it would be neat to combine it with the way I'm testing, I'm not sure how I would achieve that, but It would be really nice and more organized and "readable".

I'm gonna give quicktest a whirl and try it a little, I think that If we find a great model of testing, would be nice to standardize and apply it to all tests, or even apply something like Laravel, both Unit and Feature tests, something to mind later on.

To be honest I kinda don't remember why I wrote the NewValidUserMovie to return both User and Movie, instead of only a Movie, and a wrote this method to standardize the Movie instances, because before it, each Test block had its own:
	uid := uuid.New()
	externalID := "ExternalID"

	u := newValidUser()

	m, _ := movie.NewMovie(uid, externalID, &u)

So if for some reason in the future you decide or it's needed to modify the NewMovie method, It would only need to  modify that one method instead of all tests blocks.
With that in mind, I will be refactoring some parts of my code, and because you already merged it to master, I just created a new branch, that's updated with master and to test it locally, just switch branches and it'll be good to go!

Fixed with PR


[Macros] Add a library to make simple executable plugins for testing

Add _swiftMockPlugin library.
Usage:
 #include "swift/swift-c/MockPlugin/MockPlugin.h"

 MOCK_PLUGIN([
   {"expect": {...},
    "response: {...}},
   ...
 ])

Replaces utils/mock_plugin.py

@swift-ci Please smoke test

@swift-ci Please smoke test

@bnbarham wdyt?
I hoped to make it a static library, but it made the clang invocation in the test file long (i.e. specify all dependent libs -lLLVMSupport etc.) and made it non-portable. Do we have a way to archive multiple static libs into one, and strip dead code?

@swift-ci Please smoke test

@swift-ci Please smoke test Linux


Fix tray signals

What kind of change does this PR introduce?
This PR fixes the issues with signals not being passed around properly on windows

Summary
This PR replaces the QSocketNotifier with a QThread and a worker that uses a signal in addition to a parent/child pipe because in windows to pass data around. This additional maneouver was needed because windows wasn't triggered the activated signal of the qsocketnotifier object.
The current data flow is: child_conn -> parent_conn -> signal emit -> signal emit listener.
The signal emit listener is needed, because processing things in the Qthread object is not possible because of how Qt restricts updates from amywhere else other than the main thread. The signal emit listener is executed on the main thread, so the signal is used as a connection to send the data back to the main thread.

Checklist

[x] My code follows the style guidelines of OpenAdapt
[x] I have performed a self-review of my code
[ ] If applicable, I have added tests to prove my fix is functional/effective
[x] I have linted my code locally prior to submission
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation (e.g. README.md, requirements.txt)
[x] New and existing unit tests pass locally with my changes

How can your code be run and tested?
Run the code (in development mode) in windows, and ensure that you see the notifications and the tray text changes.

Other information

Thank you @KIRA009 ! Please address the build issues when you get a chance so we can get this merged.
Also I noticed this includes the changes from https://github.com/OpenAdaptAI/OpenAdapt/pull/810/files, which itself has outstanding comments. How do you suggest we proceed?


Annotate based on SpaGCN

Hello, during my process of identifying SVGs and meta genes through SpaGCN, I encountered the following problems:

In the process of identifying SVGs, some domains cannot identify a gene. How can I adjust the parameters more appropriately?
Cluster 2 has neighbors:
Dmain  6 :  149
Dmain  1 :  140
Dmain  5 :  136
[6, 1, 5]
SVGs for domain  2 : []

In the process of identifying meta genes, is the start gene we input the gene with the highest in_group_fraction value obtained in the process of identifying SVGs?

In the process of identifying meta genes, sometimes the meta genes obtained are in the following situations, what should I do?
SVGs for domain  5 : ['Mlc2']
Meta gene is:  Mlc2+CG15282-Mlc2

If I want to annotate domains with genes obtained by SpaGCN, should I choose SVGs or meta genes?

You can try:

min_in_group_fraction=0.8 #(can be changed to 0.5 or lower)
min_in_out_group_ratio=1  #(can be changed to 0.5 or lower)
min_fold_change=1.5 #(can be changed to 1.2 or lower)

It depends on what pattern you want. Usually, you can use the gene with the highest "in_group_fraction" or highest "fold change".
You can try a different start gene or plot Mlc2+CG15282 to see if it is a good meta marker.
I would suggest you plot the SVG first. If SVGs already have clear patterns, then no need for meta gene.


added an attribute to fix error on mac catalyst

Hello. I have the bug on Mac catalyst. Added a little bit fix

@kvyatkovskys Thanks for this. May I know the Xcode version you are using? I guess it is more likely a compiler version issue and I want to reproduce it.

@kvyatkovskys Thanks for this. May I know the Xcode version you are using? I guess it is more likely a compiler version issue and I want to reproduce it.

sure, we use Xcode Version 12.0 (12A7209) for our Mac catalyst project

Umm, I guess it is a change in Swift 5.3.1 (Xcode 12.2). I guess it should be no harm to add the tag explicitly,. I will download an older version of Xcode and verify the fix. Stay tuned!

I tried Xcode 12.0 and 12.1, but without reproducing this issue. That is weird.
I guess it should be no harm to add the @ViewBuilder annotation here, but I am really curious on what is going on.
Do you have any chance to try clean the project and build again?

Very strange 🤔
Yep, cleaned the project... Reproduced every time for me 😕

Anyway, let's merge it and see what could happen. Thanks!


Error: after is undefined

When doing this:
    // Move the element to the right location in the DOM
    $animate.move(iElem, growlNotifications.element);

You are actually not specifiying "after" according to the Angular v1.4.4 documentation for $animate, this will give an error.
See: https://docs.angularjs.org/api/ng/service/$animate

Thank you @eduardoinnorway!
Are you interested in creating a PR for this?

@eduardoinnorway — According to the $animate documentation, the after argument is optional:
move(element, parent, [after], [options]);
Are you experiencing error(s)? If so, can you provide an error log?
Thanks in advance!

Closed due to lack of response.


tippy: Enable Tippies to scale with UI.

This PR sets Tippies to scale with the UI, including initializing Tippies with em values for maxWidth. Additionally, a small commit here ensures that bold font-weights don't make their way into a Tippy when it's attached to a parent (as is the case in the Notifications UI.
Fixes part of #30476

CZO discussion

Screenshots and screen captures:

16/140 Tippies, before
16/140 Tippies, after

Legacy Tippies, before
Legacy Tippies, after (no apparent change)

Bold-context Tippy, before
Bold-context Tippy, after

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Looks great, merged, thanks @karlstolley!


return a Plottable when it is created

When I need to modify the properties or data of a plottable after it's been created, I usually pull it with something like:
plt.PlotScatter(xs, ys);
var scatterPlot = plt.GetPlottables().Last();

Let's make this easier by changing the return types of plot methods from void to Plottable to allow the newly created plottables to be placed in memory when they're created. In cases where the user knows they want to modify a plot's properties or access its methods later they could keep it around with:
var scatterPlot = plt.PlotScatter(xs, ys);

Edit: Another use case is situations like #78 where a Plottable's methods need to be easily accessible.

More better then returning void and brings nothing negative.

Done! 96f7a757ac39fb6053e9ca4c1f29b285b800563c
Note that PlotSignalConst() returns a PlottableSignalConst now (not a PlottableSignal)
note to self: create cookbook examples demonstrating several ways this can be used, then close this issue.

https://github.com/swharden/ScottPlot/tree/master/cookbook#modify-styles-after-plotting


Battery: "Plugged" status for TLP settings

When using TLP for threshold, "Not charging" is still being shown, instead of "Plugged".
I don't think it was fixed as mentioned in https://github.com/Alexays/Waybar/issues/1560#issuecomment-1293083222
This should cover:
https://github.com/Alexays/Waybar/issues/253
https://github.com/Alexays/Waybar/issues/1560
Side note: my adapter does not have /status, so current_status on L477 will always be empty. This logic is also present at two other places, so I'm not sure if I understand it.I can open a separate issue if it's relevant (Lenovo laptop, Arch).
std::getline(std::ifstream(adapter_ / "status"), current_status);

Thanks, and yes go open another issue :)


Fix "Show More..." twice in system prompt

Explanation
Update isLongMessage when message is system prompt.
Get rid of the system prompt "Show More..." logic and merge the "Edit to customize" logic.
Result
long message chat
general chat
Fixes #621

@humphd updated again as the bug below if short message


[AutoRest] Modernize Existing Pipelines - Build and Release

They're currently defined in the devdiv org.

Not yml
Not under our org to make them visible

Link to Existing Definition

I would assume @daviwil is interested too :)


Adding a text field to the Application Pop up form.

Hello,
I am trying to add a new text field to the Application pop up form when a user clicks "Apply Now". I have tried  uploading the "referredBy" field to the app.json in several spots but no luck and the app breaks. Does anyone have any info on how to properly add a text field to the application form below the Veteran and Disability Status dropdowns?

There is not a straightforward way to do this as it would require conversion from the public api endpoint to one that requires authentication. The public api only handles basic fields.  Please let me know if you have any more questions

Hi @CIBRW
If you are on a WordPress site (or can use one) The matador jobs Plugin can do this out of the box
Reach out to me for a demo/more info
<EMAIL_ADDRESS>


Problems with admin.macaroon for LNbits 0.9.4 with LND 0.15.2 on myNodeBTC 0.3.03

Introduction
There are two problems notified in this report, with a workaround for one.  It seems there is an issue for LNbits presenting admin.macaroon information to lnd, sometimes, for some users, that can be worked around.  The problem is attributed to LNbits as the same information can be manually presented to lnd and it responds with success.
And, perhaps related, I have a rendering issue which I suspect is obvious to someone with more experience.
This repository seems the appropriate primary location as the issue is reported on distributions other than  @tehelsper's myNodeBTC, though it maybe of interest to that project as well.
Description
After suffering a bit of difficulty (some due to my own actions) upgrading LNbits on myNodeBTC, the migration to a Dockerised version was complete but LNbits reported:
Oct 11 15:22:11 myNode lnbits[12816]: 2022-10-11 02:22:11.69 | INFO | Retrying connection to backend in 5 seconds...
While at the same time lnd reported:
Oct 11 15:21:36 myNode lnd[27369]: 2022-10-11 15:21:36.484 [ERR] RPCS: [/lnrpc.Lightning/ChannelBalance]: cannot determine data format of binary-encoded macaroon
Examining the .env configuration file showed no issues with the LND_REST_MACAROON value (which is regenerated every time the lnbits.service is invoked by a script at /usr/bin/service_scripts/pre_lnbits.sh.  It hex-encodes the value at /mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon and the value was confirmed correct by hand on the cli)
Further confirmation of the correctness of the admin.macaroon encoding was obtained by performing, from within the Docker container:
$ MACAROON_HEADER="Grpc-Metadata-macaroon: $LND_REST_MACAROON"
$ curl -X GET --cacert /app/tls.cert --header "$MACAROON_HEADER" https://<IP_ADDRESS>:10080/v1/balance/channels

{"balance":"4198", "pending_open_balance":"0", "local_balance":{"sat":"4198", "msat":"4198182"}, "remote_balance":{"sat":"1327", "msat":"1327818"}, "unsettled_local_balance":{"sat":"0", "msat":"0"}, "unsettled_remote_balance":{"sat":"0", "msat":"0"}, "pending_open_local_balance":{"sat":"0", "msat":"0"}, "pending_open_remote_balance":{"sat":"0", "msat":"0"}}

A workaround was offered on Telegram by Axel Hamburch, https://t.me/lnbits/48152 to replace the hex-encoded macaroon string with a path to the admin.macaroon file in .env
LND_REST_MACAROON="/app/admin.macaroon"
[Due to the operation of myNodeBTC and Docker, was necessary to modify the lnbits.service unit:
Comment out the call to insert the hex-encoded admin.macaroon in .env
# Use path to admin.macaroon and prevent pre_lnbits.sh from replacing it
# /mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon
# ExecStartPre=/usr/bin/service_scripts/pre_lnbits.sh

And make the admin.macaroon file available in the Docker container by adding this --volume option:
--volume /mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon:/app/admin.macaroon
]
This resulted in LNbits successfully connecting with the funding backend.
Unfortunately, one problem remains, the rendering of LNbits is very wrong:

After discovering that http://<IP_ADDRESS>:5000 worked correctly and some painstaking testing of schema, domains, and public and private IP addresses, I've discovered that https_lnbits.conf, or at least my modified version of it, is the culprit.  Mea culpa.
Having corrected that file to nearer match https://github.com/mynodebtc/mynode/blob/master/rootfs/standard/etc/nginx/sites-enabled/https_lnbits.conf the rendering problem has been eliminated.
I note though that two "quirks" remain:

The issue with hex-encoded macaroon
The host name used in the curl API examples.  Despite the invoking URL being https://, the examples are:

Hi @HamishMacEwan, can we still do anything about this?

Quirk 2 has been resolved by setting
FORWARDED_ALLOW_IPS="*"
in .env.  The default was fine when the app wasn't inside a container, because the default was <IP_ADDRESS>.  Once inside the container and in a Docker network, this failed and so forwarded headers from the reverse proxy weren't trusted and were ignored.
Or at least I think that's what was happening.
Quirk 1, the failure of hex encoded admin.macaroon remains, and I wonder, given how odd the error message is, if it isn't somehow related to containers and addressing, but no idea how.  Hex encoding seems like a solution which allows the requester to be on a different host from lnd, and that is essentially what the Docker container is, so how come the file path works and the hex version of its contents doesn't.

Sorry, but I'm having trouble with the same thing, and I'm also having trouble following your advice.
What I did was (according to what you mentioned above),

In the  /usr/bin/service_scripts/pre_lnbits.sh file, I added a '#' before the part under the #Update env file so that it didn't do that any longer
In the .env file in /opt/mynode/lnbits/.env I changed the
LND_REST_MACAROON="/app/admin.macaroon"
to
LND_REST_MACAROON="/mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon"
The part about the dynode needing to add some volume code to the lnbits.service I have no idea what to do there.

Now it went from
Oct 11 15:22:11 myNode lnbits[12816]: 2022-10-11 02:22:11.69 | INFO | Retrying connection to backend in 5 seconds...
to a boat load of errors, primarily that it cannot find /mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon.
If you can help me with this, as I can no longer use lnbits with mynode

@muaawiyahtucker Can you try upgrading to the latest version? It has applied the workaround that avoid the issue with hex macaroons and sets up the docker volume mount to access the macaroon directly.

Also, there is a small chance the hardcoded docker gateway IP address to access LND is not set properly. You may be running into this issue https://github.com/lnbits/lnbits/issues/1070 but it doesn't have a fix yet. It would be ideal to be able to specify the Docker gateway as a hostname so it automatically resolves.

@tehelsper
I am on the latest version of mynode and in that it's running 0.9.4 version of lnbits. I still get the error
Oct 11 15:22:11 myNode lnbits[12816]: 2022-10-11 02:22:11.69 | INFO | Retrying connection to backend in 5 seconds...
When I try to access the lnbits via direct IP address, ie by clicking on the lnbits icon, the web browser says:
"Safari can't connect to the server. Safari can't open the page "[node IP]:5000" because Safari can't connect to their server "[node IP]"."
But when I change the port to 5001 (which is what the port should be from this https://github.com/mynodebtc/mynode/blob/master/rootfs/standard/etc/nginx/sites-enabled/https_lnbits.conf
I get this error
400 Bad Request

The plain HTTP request was sent to HTTPS port
nginx/1.14.2

Then I try it with https:// and then I get a warning that the connection is not private, that its not happy with the ssl certificate (which is just the mynode self signed one), and asking me if I want to proceed, which I do and then it says:
502 Bad Gateway

nginx/1.14.2

I'm at a loss here. Any help to get lnbits working on mynode would be really useful. It works fine on my Umbrel by the way.

Yeah, when I referred to the IP I was talking about within the lnbits config file. I'm not yet sure why the connections are failing  on a number of systems.

@tehelsper
MyNode recently updated their node, but this issue still persists. Any ideas so far since we last spoke?

The rendering issue is probably unrelated and might be because mynode didn't build the static files upon Installation. Can you run build.py in your lnbits folder to see if it fixes your issue?

The rendering issue is probably unrelated and might be because mynode didn't build the static files upon Installation. Can you run build.py in your lnbits folder to see if it fixes your issue?

Sorry to be thick, but there is no such file in the lnbits folder. There are only files that begin with 'ext' and end with '.sqlite3'.
I think lnbits is running on a docker.

It does run in an LND container. The errors you saw are from NGINX in myNode and not LNBits. Those appear for any app is the backend app is not running properly.
You could try re-installing lnbits. Do you have a custom lnd config?

It does run in an LND container. The errors you saw are from NGINX in myNode and not LNBits. Those appear for any app is the backend app is not running properly.
You could try re-installing lnbits. Do you have a custom lnd config?

No, I don't. I have nothing custom about my node besides adding tailscale. Everything is as it was 'out of the box'. I've tried reinstalling lnBits. But I don't think I've totally deleted it and re-added it...as I wasn't sure what would happen to the accounts I currently have on them.

It does run in an LND container. The errors you saw are from NGINX in myNode and not LNBits. Those appear for any app is the backend app is not running properly.
You could try re-installing lnbits. Do you have a custom lnd config?

I've kinda found something interesting.
I loaded up LNBits on a VPS using docker, and when I tried to connect it to my MyNode, the exact same error above occurs with the exact same error message of
Retrying connection to backend in 5 seconds...
I put the macaroon and IP to my Umbrel and it worked fine. So for some reason, the macaroon and IP address:port to myNode just doesn't work even from an external source...BUT...My Zeus wallet connects fine to it. I put the exact same port, IP and macaroon into Zeus and it works but just not on LNBits. Any ideas?

Zeus does allow you to skip certificate verification. Could it be that LNBits is trying to validate the certificate and that's stopping the connection?
You could try to regenerate the TLS cert in mynode and re-attempt the connection.

Zeus does allow you to skip certificate verification. Could it be that LNBits is trying to validate the certificate and that's stopping the connection?
You could try to regenerate the TLS cert in mynode and re-attempt the connection.

Tried that, put the .cert onto the server, pointed it to the certificate on LNBits and still I just get
2022-12-29 14:11:23.03 | INFO | Retrying connection to backend in 5 seconds...

Zeus does allow you to skip certificate verification. Could it be that LNBits is trying to validate the certificate and that's stopping the connection?
You could try to regenerate the TLS cert in mynode and re-attempt the connection.

FINALLY!!!!!!
SOLVED IT!!
Phew!! I was going mad with this one.
So here's what I did.
Step 1: Downloaded the TLS certificate and admin Macaroon
Step 2: Uploaded both on my VPS server in a given location
Step 3: As I was using LNBits as a docker image, I had to map the location of the two files to their location on the VPS. I initially just put the location of the files in the .env file but then I kept on getting the error that the files didn't exist. I never got that error when I just pointed to the TLS certificate, but when I did the same with the macaroon i did.
Step 4: Re-create the docker image with that mapping in the .env. The .env pointed to the location inside the docker, and the then the docker itself mapped to the external location. It's very important not to confuse the two locations. I used a simple /app/tls.cert and /app/admin.macaroon as the location in the .env and the mapping to the external in the initial build. So the instructions on https://github.com/lnbits/lnbits/blob/main/docs/guide/installation.md on option 4, it has:
docker run --detach --publish 5000:5000 --name lnbits-legend --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data lnbits-legend
so I guess you could adjust it to the following:
docker run --detach --publish 5000:5000 --name lnbits-legend --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data --volume [location on your system of certificate]/tls.cert:/app/tls.cert [location on your system of certificate]/admin.macaroon:/app/admin.macaroon lnbits-legend
I'm guessing thats the code, I built it using a docker management software so I haven't verified this via command line.
Then everything should work
Summary and Conclusion
The reason why it worked on my umbrel is because i didn't use a tls certificate and because I literally pasted the HEX of the macaroon into the .env file. The reason why MyNode also works on Zeus is because of the same reason, thats what gave me the hint.
So the error is caused by lnbits unable to find the TLS and macaroon from within the docker (which was the issue I had). As for why it's not working on MyNode itself, I don't know. I've only managed to get it working from my VPS. I'm not sure how it all works on MyNode, so not sure if anyone could give me the heads up on how to fix it there, if they know how LNBits works on mynode.

The rendering issue is probably unrelated and might be because mynode didn't build the static files upon Installation. Can you run build.py in your lnbits folder to see if it fixes your issue?

Can you help me run the lnbits docker image with the parameters as stated in the first post. I know how to do it on my VPS, but I don't know how to do it on the MyNode. I think if I could do that I would be able to fix this persistent problem

It should do that automatically. It volume-mounts the tls cert and admin macaroon files

--volume /mnt/hdd/mynode/lnd/tls.cert:/app/tls.cert
--volume /mnt/hdd/mynode/lnd/data/chain/bitcoin/mainnet/admin.macaroon:/app/admin.macaroon \

Whatever the problem was, it has since been fixed by the latest update for mynode...Thank you all for your help.

closing this, we are at lnbits 0.10.9 now.


Not available in Google Play

I've just noticed the app is not available in Google Play anymore. Do you have any intention add it again?
Also, since it is all open source, I think it could be made available in the f-droid store as well?

Also, since it is all open source, I think it could be made available in the f-droid store as well?

Repay (Keep track of lended money) - https://f-droid.org/app/com.repay.android


suggestion

please add progress bar when downloading torrent file.

please add a box to add magnetic link instead of "pasting inside this"

@FKLC

you can add 1 of the following code from https://stackoverflow.com/questions/3160699/python-progress-bar

i dont know how to make a box but you can make it input command i think


reload models after training

Proposed changes:

https://github.com/golastmile/rasa_nlu/issues/342

Status:

[ ] ready for code review
[ ] there are tests for the functionality
[ ] documentation updated
[ ] changelog updated

Sorry it's my first public pull request, so may be in the wrong format etc. Basically I'm passing a data router to the model and reload models on successful model creation.

Thank you a lot for your contribution @sergmetelin :1st_place_medal:. However, I made a mistake thinking that this functionality wasn't there yet, but it actually is. The data router checks the model store for aliases before parsing. Sorry for that, your effort is really appreciated! Looking forward to seeing more from you in the future :+1:


gpslogger device tracker state no longer persisted across restart

Home Assistant release with the issue:
0.94.1
Last working Home Assistant release (if known):
0.93.x
Operating environment (Hass.io/Docker/Windows/etc.):
Arch Linux ARM / python3.7 venv
Component/platform:
https://www.home-assistant.io/components/gpslogger/
Description of problem:
After the upgrade to 0.94.x the device tracker state is no longer persisted across restarts of home assistant. The tracker entity does not exist and the state of the associated person is then unknown until the client sends it's next location update

Hi,
I had the same problem.
Delete gpslogger from your configuration.yaml. It's not longer need to be there as it's part of integration.
Hope that help.

Didn't help for me.
grep -r gpslogger .
Binary file ./home-assistant_v2.db matches
./.storage/core.device_registry:                        "gpslogger",
./.storage/core.entity_registry:                "platform": "gpslogger",
./.storage/core.config_entries:                "domain": "gpslogger",

I just tried a setup from scratch to make sure no old config can interfere, but the result is the same - as soon as I click restart the tracker entity is gone and the location of person is unknown

I have the same problem:
https://community.home-assistant.io/t/google-travel-time-no-longer-works-with-0-94/120885

Tested @andkit 's fix.   Works well!  Thanks!

Will be part of 94.2


#100 inner scrolling doesnt respect container border width

(take 2) for test case: http://mkoryak.github.io/floatThead/tests/issue-100/

looks good


Channel sequencing does not work

PM does not properly handle channel sequencing.
Using this simple extension of the demo config:
MMConfig_demo_ChannelSeq.txt (please rename to .cfg)
and the following example code:
from pycromanager import Core, Acquisition, multi_d_acquisition_events

mmc = Core()

def print_acq_event(event):
    print(event)

    return event

#%% Test sequenced channel acquisition
mmc.set_property('DAC', 'UseSequences', 'Yes')

events = multi_d_acquisition_events(channel_group='DAC-Channel', channels=[f'State{i}' for i in range(5)])

print('Testing sequenced channel acquisition \n')
with Acquisition(directory=r'D:\temp', name='PM_test2', pre_hardware_hook_fn=print_acq_event) as acq:
    acq.acquire(events)

the pre_hardware_hook_fn prints individual acquisition events rather than a list of events for sequenced acquisition.

took a look. The reason sequencing doesnt happen in this case is because the Position property of the DAC device is not sequencable. This would need to be fixed in the device adapter

That's strange. The DAC device is really a DStage, and I know that the DStage position property can be sequenced. mmc.set_property('DAC', 'UseSequences', 'Yes') turns on the sequencing of that property. How come it's off by the time it reaches the acquisition engine?

P.S. I'm pretty sure that I tested that this runs as a sequenced acquisition in the MM MDA

Hey @henrypinkard could you reopen this issue?
Now that micro-manager/mmCoreAndDevices#307 and micro-manager/micro-manager#1582 are merged, we should be able to make the test_channel_seq_acq, test_channel_z_seq_acq, and test_time_channel_z_seq_acq tests run
I'll have to redo my setup for troubleshooting AcqEngJ, it would be great if you could also take a look at this.

Thank you!

I think I found the source of this bug - some device properties in a given config group can be the same between channels and don't need to be sequencable for the acquisition to be sequencable as a whole. For example in
# Preset: DAPI
ConfigGroup,Channel-Multiband,DAPI,Dichroic,Label,89402bs
ConfigGroup,Channel-Multiband,DAPI,Emission,Label,89402m
ConfigGroup,Channel-Multiband,DAPI,Excitation,Label,Empty
ConfigGroup,Channel-Multiband,DAPI,LED,Label,385nm
ConfigGroup,Channel-Multiband,DAPI,Core,Shutter,LED Shutter

# Preset: FITC
ConfigGroup,Channel-Multiband,FITC,Dichroic,Label,89402bs
ConfigGroup,Channel-Multiband,FITC,Emission,Label,89402m
ConfigGroup,Channel-Multiband,FITC,Excitation,Label,Empty
ConfigGroup,Channel-Multiband,FITC,LED,Label,470nm
ConfigGroup,Channel-Multiband,FITC,Core,Shutter,LED Shutter

All device properties between the DAPI and FITC channels are the same except for LED Label. Since all other properties between the two channels are the same only LED Label needs to be sequencable for this acquisition to be sequencable.
I started addressing this in micro-manager/AcqEngJ#59. I modified isSequencable to
//check all properties in the channel
Configuration config1 = core_.getConfigData(e1.getConfigGroup(), e1.getConfigPreset());
Configuration config2 = core_.getConfigData(e2.getConfigGroup(), e2.getConfigPreset());
for (int i = 0; i < config1.size(); i++) {
   PropertySetting ps1 = config1.getSetting(i);
   String deviceName = ps1.getDeviceLabel();
   String propName = ps1.getPropertyName();
   String propValue1 = ps1.getPropertyValue();
   PropertySetting ps2 = config2.getSetting(i);
   String propValue2 = ps2.getPropertyValue();
   if (!propValue1.equals(propValue2)) {
      if (!core_.isPropertySequenceable(deviceName, propName)) {
         return false;
      }
      if (core_.getPropertySequenceMaxLength(deviceName, propName) < newSeqLength) {
         return false;
      }
   }
}

to get the right behavior, but then also had to make changes in prepareHardware, which I'm less certain about. Let me know what you think @henrypinkard. I think the current implementation is a bit inefficient in that we check multiple times which channel properties are sequencable and which are not. In prepareHardware we should set the non-sequencable properties and then start sequence for the sequencable properties. Not too sure how to implement that properly.

Nice detective work! That seems correct to me. I think a good test of this is if it passes the pycro-manager checks, since it should be easier to describe it in tests than code.
As for the multiple checks for whether a property is sequencable, I dont think this is unique to these changes, and Ive been considering implementing a caching mechanism in the acquisition engine whether particular properties/devices are sequencable. But I'm unsure as to whether the API intends for these to be static properties of a particular device. @nicost and @marktsuchida do you have any idea?

Most sequenceable devices have a property that switches sequencing on and off, so no, the sequenceability is not static.


Errors when accepting several dialogs followed in the same web page

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
    for (var i = 0; i < myArray; i++) {
    	await page.click('myArray[i]')  //My array contains several links and each link shows me a warning alert that I want to ignore
	     page.on('dialog', async dialog => {

	     	await dialog.dismiss();

	     });
    }

  await browser.close();
})();

The dialog event, it increases as an array and it is when I throw errors, what could I do? Is it possible to delete the dialog object or reinitialize it when await dialog.dismiss () ;?

(node:10276) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 12): AssertionError [ERR_ASSERTION]: Cannot dismiss dialog which is already handled!

@fran0254 you should move page.on('dialog') line out from the loop. Otherwise you end up with dozens of listeners, each trying to dismiss the same dialog.

Ok, and is it possible to check if there is a dialog or not before loading the event?

@fran0254 no, you need to subscribe to the event and track the state of the dialog

I've put the call to the event outside the loop but I'm not doing it right, if you can help me. Thank you
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
page.on('dialog', async dialog => {
console.log('Load dialog...');
});
for (var i = 0; i < myArray; i++) {
await page.click('myArray[i]')  //My array contains several links and each link shows me a warning alert that I want to ignore
     	**await dialog.dismiss();  // if  alert or dialog I accept or ignore**

}

await browser.close();
})();``
OUT ERROR ..
(node:29793) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: dialog is not defined
(node:29793) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@fran0254 the following works just fine for me:
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

  // Dismiss every dialog on a page
  page.on('dialog', dialog => {
    console.log('Dismissing a dialog.');
    dialog.dismiss();
  });

  // Navigate and do any clicking
  await page.goto('https://example.com');
  await page.click('selector-1');
  await page.click('selector-2');

  // ...

  await page.close();
  await browser.close();
})();

I want to return dialog.message();
based on the message I want to return the response

hi @stephenjesus did you find a solution ?

@vAugagneur  yes I found the solution
Create a separate async function and
Use promise to resolve message


tdweb.js cann't get worker.js in new Worker()

I use tdweb in my new react project, but when I run start my project, I got two error in my console:
Manifest: Line: 1, column: 1, Syntax error.
d41e7771ff6b84fd3441.worker.js:1 Uncaught SyntaxError: Unexpected token '<'
And I find out it is because the tdweb.js line 231:
module.exports = function() { return new Worker(webpack_require.p + "d41e7771ff6b84fd3441.worker.js"); };
and the new Wroker cann't find d41e7771ff6b84fd3441.worker.js;
I have no idea how to fix it, is there something I need to config ?
Thanks for your time!

I use tdweb in my new react project, but when I run start my project, I got two error in my console:
Manifest: Line: 1, column: 1, Syntax error.
d41e7771ff6b84fd3441.worker.js:1 Uncaught SyntaxError: Unexpected token '<'
And I find out it is because the tdweb.js line 231:
module.exports = function() {   return new Worker(__webpack_require__.p + "d41e7771ff6b84fd3441.worker.js"); };
and the new Wroker cann't find d41e7771ff6b84fd3441.worker.js;
I have no idea how to fix it, is there something I need to config ?
Thanks for your time!

Does https://www.npmjs.com/package/tdweb#installation help?
Also ensure that your web-server serves files with correct MIME types.

是否https://www.npmjs.com/package/tdweb#installation帮助？
另外，请确保您的网络服务器提供具有正确MIME类型的文件。

No it not help me :(
I just use tdweb like https://github.com/evgeny-nadymov/telegram-react and my code in this project can run, but in my project cann't import worker.js and .wasm file,because my webpack config?

Have you copied files from node_modules/tdweb/dist/ and made them accessible using your web server as written in https://www.npmjs.com/package/tdweb#installation?

Have you copied files from node_modules/tdweb/dist/ and made them accessible using your web server as written in https://www.npmjs.com/package/tdweb#installation?

I already copy files from node_modules to pubilc folder just like telegram-react, but I didn't find where I used it.

You also must set up web server to serve them with a correct MIME type.

emm the project right now is run in my local serve, is there problem?

You also must set up web server to serve them with a correct MIME type.

emm the project right now is run in my local serve, is there problem?

@levlam I think I did not describe clearly...
I create-react-app my react project and install teweb and use it like telegram-react, but when I run start my project,I got two error in my console:
130f0ecf36ff90c87239.worker.js:1 Uncaught SyntaxError: Unexpected token '<'
manifest.json:1 Manifest: Line: 1, column: 1, Syntax error.
And I find out the "Unexpected token '<'" means like https://idiallo.com/javascript/uncaught-syntaxerror-unexpected-token#n.
Any idea？I have been tormented by this problem for three days:(

And I told you that the error is caused by web server not returning the files or returning them with wrong MIME type. You can check what exactly happens on Network tab in Developer tools in the browser.

And I told you that the error is caused by web server not returning the files or returning them with wrong MIME type. You can check what exactly happens on Network tab in Developer tools in the browser.

I think I got it!

And I told you that the error is caused by web server not returning the files or returning them with wrong MIME type. You can check what exactly happens on Network tab in Developer tools in the browser.

Finally! I solved it..
But maby it not because web server not returning the files or returnning wrong type.I think it is because my project use n nesting router config, So when the router /tg/chat, the file path is wrong so cann't get the worker.js.But when the router /tg, the file path is right.I think it is maby casue by I copy the file to public folder to resolve the new worker problem?
So I finally added a judgment on how many layers of router:
`
const route =  window.location.pathname;
const routeArr = route.split('/');
const path = routeArr.reduce((target, item, index) => {
target = index >= routeArr.length - 2 ? target : target += '../';
return target;
}, '')
return new Worker(path + "d41e7771ff6b84fd3441.worker.js");
`

@theChengundertheQun @levlam
Hi.
I have also encountered this problem in my Ionic Angular app, the webserver just can't load the worker.js.
Do you think the router solution can be applied everywhere as well including my project? I am not sure how it works though.
The project in https://github.com/evgeny-nadymov/telegram-react does not have this approach so I am really curious what is the root problem here.

@theChengundertheQun @levlam
Hi.
I have also encountered this problem in my Ionic Angular app, the webserver just can't load the worker.js.
Do you think the router solution can be applied everywhere as well including my project? I am not sure how it works though.
The project in https://github.com/evgeny-nadymov/telegram-react does not have this approach so I am really curious what is the root problem here.

emmm my English is not very well, so I am not sure you can understand what I said. I think it is because it import the xxx.worker.js in the same path with index.html, for example, in router localhost:8080/home, it is ok, but in localhost:8080/home/test, it will try to find the ./test/xxx.worker.js, so it is not found, so I add the code
`
module.exports = function() {
const route =  window.location.pathname;
const routeArr = route.split('/');
const path = routeArr.reduce((target, item, index) => {
target = index >= routeArr.length - 2 ? target : target += '../';
return target;
}, '')
return new Worker(path + "aac44a7e9648482a56f9.worker.js");
};
`
in the tdweb.js line 230.
I don't know if I made it clear, Hope it can help you

emmm my English is not very well, so I am not sure you can understand what I said. I think it is because it import the xxx.worker.js in the same path with index.html, for example, in router localhost:8080/home, it is ok, but in localhost:8080/home/test, it will try to find the ./test/xxx.worker.js, so it is not found, so I add the code
`
module.exports = function() {
const route = window.location.pathname;
const routeArr = route.split('/');
const path = routeArr.reduce((target, item, index) => {
target = index >= routeArr.length - 2 ? target : target += '../';
return target;
}, '')
return new Worker(path + "aac44a7e9648482a56f9.worker.js");
};
`
in the tdweb.js line 230.
I don't know if I made it clear, Hope it can help you

Well I have added the code to tdweb.js and the problem still occurs. The route simply returns "/" and the file path for the worker.js seems normal to me.
Looks like I still need to investigate more.

emmm my English is not very well, so I am not sure you can understand what I said. I think it is because it import the xxx.worker.js in the same path with index.html, for example, in router localhost:8080/home, it is ok, but in localhost:8080/home/test, it will try to find the ./test/xxx.worker.js, so it is not found, so I add the code
module.exports = function() { const route = window.location.pathname; const routeArr = route.split('/'); const path = routeArr.reduce((target, item, index) => { target = index >= routeArr.length - 2 ? target : target += '../'; return target; }, '') return new Worker(path + "aac44a7e9648482a56f9.worker.js"); };
in the tdweb.js line 230.
I don't know if I made it clear, Hope it can help you

Well I have added the code to tdweb.js and the problem still occurs. The route simply returns "/" and the file path for the worker.js seems normal to me.
Looks like I still need to investigate more.

Did you copy the six files from node_modules to your public folder? The tdweb.js import xxx.work.js will find in the same path with index.html, in my project is public folder.

emmm my English is not very well, so I am not sure you can understand what I said. I think it is because it import the xxx.worker.js in the same path with index.html, for example, in router localhost:8080/home, it is ok, but in localhost:8080/home/test, it will try to find the ./test/xxx.worker.js, so it is not found, so I add the code
module.exports = function() { const route = window.location.pathname; const routeArr = route.split('/'); const path = routeArr.reduce((target, item, index) => { target = index >= routeArr.length - 2 ? target : target += '../'; return target; }, '') return new Worker(path + "aac44a7e9648482a56f9.worker.js"); };
in the tdweb.js line 230.
I don't know if I made it clear, Hope it can help you

Well I have added the code to tdweb.js and the problem still occurs. The route simply returns "/" and the file path for the worker.js seems normal to me.
Looks like I still need to investigate more.

In https://www.npmjs.com/package/tdweb#installation帮助？ , it said: All files will be installed into node_modules/tdweb/dist/ folder. For now, it is your responsibility to make those files loadable from your server. For example, telegram-react manually copies these files into the public folder. If you know how to avoid this problem, please tell us.

emmm my English is not very well, so I am not sure you can understand what I said. I think it is because it import the xxx.worker.js in the same path with index.html, for example, in router localhost:8080/home, it is ok, but in localhost:8080/home/test, it will try to find the ./test/xxx.worker.js, so it is not found, so I add the code
module.exports = function() { const route = window.location.pathname; const routeArr = route.split('/'); const path = routeArr.reduce((target, item, index) => { target = index >= routeArr.length - 2 ? target : target += '../'; return target; }, '') return new Worker(path + "aac44a7e9648482a56f9.worker.js"); };
in the tdweb.js line 230.
I don't know if I made it clear, Hope it can help you

Well I have added the code to tdweb.js and the problem still occurs. The route simply returns "/" and the file path for the worker.js seems normal to me.
Looks like I still need to investigate more.

Did you copy the six files from node_modules to your public folder? The tdweb.js import xxx.work.js will find in the same path with index.html, in my project is public folder.

There is no public folder in my project. The index.html is simply under src folder so I copy the files to there.
After running ionic serve to run on browser, the console in firefox still shows Cannot GET /130f0ecf36ff90c87239.worker.js
The url is http://localhost:8100/130f0ecf36ff90c87239.worker.js

There is no public folder in my project. The index.html is simply under src folder so I copy the files to there.
After running ionic serve to run on browser, the console in firefox still shows Cannot GET /130f0ecf36ff90c87239.worker.js
The url is http://localhost:8100/130f0ecf36ff90c87239.worker.js

Hi! Have you solved this problem? If so, how?


Integrate with Quasar?

Quasar's approach to asynchronous computations is more general than ours: it allows suspending calls from methods several stack frames below the coroutine. This requires some extra runtime work, but can be very convenient.
Question: can we (optionally) integrate with Quasar?
This would require us to handle Quasar's @Suspendable calls as suspension points, and probably require a compiler plugin or something similar.
Incremental compilation may also be a challenge

What can be checked statically:

fiber-blocking APIs must be called from a @Suspendable function only

are such APIs always annotated accordingly?

What, apparently, can't be checked statically:

every call that eventually fiber-blocks, is called from an appropriate context (that supports resumption)

Once Java 9 is out, I guess some Quasar-using code won't use annotations any more. They're kind of a pain to be honest. It's easy to miss one by accident.

Without annotations it's all left to runtime magic, which I'm afraid, may scare off many users.
But maybe the whole point is that what such users want is no annotations and entirely dynamic behavior of this feature?

Without annotations it's all left to runtime magic, which I'm afraid, may scare off many users.

I agree that this is a real concern, although personally I find it a bit ironic, as all of HotSpot is based around "runtime magic". Pretty much everything HotSpot does is generate machine code on the fly, and then re-generate it again. :)

Well, in my view it actually reduces the amount of runtime magic. Here's how Quasar works today, briefly:

A JVMTI agent intercepts every class load request, finds all suspendable methods and rewrites them so whenever they put something on the real JVM stack, they also push them onto a shadow fiber stack.
When suspension occurs, this stack is stored, the real stack is unwound with an exception
On resume, the rewritten code skips to the right place in the state machine, reloading things from the fiber stack

That's a lot of magic that can go wrong. In Java 9 the JVM exposes the contents of the actual VM stack to user code. So the magic is now like this:

There is no longer any need to intercept and scan every single loaded class. This is a performance win.
There is no longer any need for fibers to push things onto a shadow stack. This is also a performance win.
When a suspension point is hit, the engine can walk the stack and locate any uninstrumented methods, then in collaboration with the JVMTI agent, rewrite them to only contain the resume code. The suspended fiber contains the stack variables as provided by the JVM.

At least, that's my understanding of it. So it's not just a convenience thing where annotations are awkward, it's actually a performance win and the rewritten bytecode is simpler too. It relies on the fact that the JVM will happily let you rewrite method bytecode on the fly and swap it in to a running program. Now that really is magic :-)

There is no longer any need for fibers to push things onto a shadow stack. This is also a performance win.

@pron Can this really be so?

I should note here an important caveat: support for accessing the stack variables is currently exposed only in HotSpot 9 and only via a HotSpot specific API. It's not currently targeted to be a part of the standard Java SE platform, as far as I'm aware (unsure why not).

Not quite :)
First, Quasar does not make use of a JVMTI agent but a plain Java agent (it's just a plain Java library).
With the stack-walker API the there would still be pushing to the shadow stack in transformed methods for two reasons: 1/ the API does not help with restoring the values, and 2/ the instrumented code is (currently) much faster than the stack-walker. The plan is to use the stack-walker only the first time a method is blocked, but we'll experiment more. Things are in flux.
We have this JMH benchmark that tests the instrumentation overhead. Feel free to try it.
@mikehearn

unsure why not

Because it's still experimental and basically meant as a testing bed for fibers, with the intention of natively supporting fibers on the JVM in the future

Alright so I think I've got enough information to make a useful contribution here:
My use case is elaborated on stackoverflow here.
Specifically this would require this kotlin code: and support for stackful-coroutines. Given that Kotlin has made the executive decision not to support stack-ful co-routines (for perfectly valid reasons), integration with Quasar would be a nice addition for me as it would allow me to write ~idiomatic kotlin instead of Quasar-dependant kotlin.

@Groostav when depending on Quasar integration, you'll still be writing Quasar-dependent Kotlin

With the revised coroutines in implementation in 1.1-M04 the stack-full coroutines in Kotlin are around the corner (you can already do them with just a simple helper function).
Having said, there is a lot of value in Quasar integration, because Quasar works with Java code. Quasar integration would let users to seamlessly combine Kotlin suspending functions with Java @Suspendable methods in Quasar.
We'll need an adapter from one world to another and back. However, as I see it, that will need an introduction of an additional abstraction into Quasar core. In particular, one would need to extract a suspendable runnable interface from Quasar's Fiber class:
interface SuspendableRunnable {
    void run() throws SuspnendExecution
}

With this kind of interface in hand, one can define a helper function to call suspenedable Java code that was instrumented by Quasar from a Kotlin suspending function:
suspend operator fun SuspendableRunnable.invoke()

The implementation, that would necessarily have to use Quasar internals (and will not instrumented by Quasar itself), would catch Quasar's SuspendExecution  and transform the suspension to the Kotlin's CPS convention (return SUSPNEDED token when the execution was suspended)
The inverse transformation to allow calls from Java suspendable method to Kotlin's suspending functions would need the adapter like this:
@Throws(SuspendExecution::class)
fun <T> suspending(block: suspend () -> T): T

That would adapt Kotlin's CPS transformation to Quasar's convention of throwing SuspendExecution exception on suspension. Note, that this suspending function would have to be excluded from bytecode transformation by Quasar, but other functions invoking this function will be transformed by Quasar as usual.

This branch of Quasar contains a Continuation class. We weren't planning to merge it into master until Java 9, which would hopefully make all annotations redundant, but something could be done for Kotlin. Quasar's continuation class is quite sophisticated, implementing what I call scoped continuations, and is sometimes referred to in the literature as "delimited continuations with multiple named prompts", but doing something simpler is certainly possible.
P.S.
While I'm glad Kotlin is adopting delimited continuations (over stackless), experience shows that even that is not the best user-facing abstraction, and fibers (i.e., scheduled continuations) is the best way to integrate continuations into a language. It gives you 99% of the benefit for the simplest API possible. Exposing continuations directly, while sometimes useful (generators, nondeterminism), results in people doing things that are often too clever for their own good.

Too bad we don't have UMS (user mode scheduling) for linux.

Integration with Quasar is now available in kotlinx.coroutines version 0.18. See https://github.com/Kotlin/kotlinx.coroutines/tree/0.18/integration/kotlinx-coroutines-quasar


Library is not compatible with storybook

Version
@nuxthq/ui: v2.4.0
nuxt: v3.6.1
storybook: v7.0.24

Steps to reproduce

Install the component library
Install Storybook along with the Nuxt plugin for Storybook
Attempt to utilize the components from the library
Notice missing styles
Observe that dependencies such as NuxtLink, which are imported from the UI library, are not found
(Note: NuxtLink works as expected when used within a standard component)

What is Expected?
The UI Library should seamlessly integrate with Storybook, allowing developers to extend and build custom applications effectively.
What is actually happening?
An error is encountered while trying to install the UI library into Storybook.

Could you please provide a reproduction?

I can confirm too that the library does not work with storybook..

It would be helpful to know what is your issue with Storybook, are you using https://github.com/storybook-vue/storybook-nuxt or https://github.com/nuxt-modules/storybook?

Same here using https://storybook.nuxtjs.org/

The @nuxtjs/storybook module is a Nuxt 2 module, it is not compatible with Nuxt 3. I guess you should use https://github.com/storybook-vue/storybook-nuxt but its quite new.

will be really nice if we take the time and solve this issue of storybook and @nuxt/ui and @nuxt/ui-pro
for the moment none of the storybook modules is working with @nuxt/ui*

Yet no one has provided a reproduction or an actual error of what is not working exactly.

I will prepare later a reproduction repo

@benjamincanac I have prepared the reproduction repo for you to test
Please read the Readme

@benjamincanac we have any news, from where the issue is coming?

This is indeed not working at all, there are errors about:

At least one <template> or <script> is required in a single file component. on nuxt-icon/dist/runtime/IconCSS.vue
NuxtLink not being defined in the Link component
A default value needs to be a function when your type is an object or array on every component with class and ui props defaulting to undefined (thrown by vue-docgen-plugin)

Are we sure this module is done?

Any updates?  I still can't use it with storybook..

I'm still experiencing this issue as well

any chance someone able to get this working now? there's been updates with storybook and nuxtui but none of it seem to have fix this issue?

Still having this issue