Issue details
Hi there. Your wiki has been moved from github wiki to its own page. That is a good step however I cannot seem to find any sort of tutorial or documentation without it being outdated by 10 years, it being an asteroid shooter game (we dont need a million more of those) and not much documentation on the wiki.
I have tried to look on how to do collisions using Tiled. I have also looked up a good platformer tutorial for a beginner, considering I have never used the platform. Instead, I have resorted to using AI instead of spending time writing down the code and tweaking it to however I like. Instead, I am left with a dumpsterfire of code that works with a 50/50 chance.
LibGDX is really great, but there is not enough documentation on how to fix up steps and the tutorials are outdated.
What would liked to happen
What would be best to happen is to update the wiki. The wiki is the first ever place for someone to check out the project, but with such little documentation, you cannot even manage to retain the quality of the code outputted. It would be best if the wiki gets updated and with a starter tutorial being more than a measly water bucket and droplets.
A suggestion is for a platformer to be made. Creating a platformer as the first thing a player makes is great because it means the background music, the sound effects, the Tiled Map (great to go for RPG), the enemy AI, the physics (using Box2D or others), the background, menu, etc. I could go on for more talking about how beneficial a platformer tutorial would be.
Anyways, here is my rant. If you read up to here, I appreciate it and hope you can help towards the cause.
Tyia. -T

Hello, https://github.com/libgdx/libgdx.github.io/issues is the place to complain about the wiki. And yeah, the starter tutorial sucks - it doesn't even use viewports!
You may find the following resources useful for the things you have mentioned:

https://libgdx.com/wiki/audio/streaming-music
https://libgdx.com/wiki/audio/sound-effects
https://libgdx.com/wiki/graphics/2d/tile-maps
https://lyze.dev/2021/03/25/libGDX-Tiled-Box2D-example/
https://libgdx.com/wiki/extensions/physics/box2d#dynamic-bodies
https://github.com/raeleus/skin-composer/wiki/From-the-Ground-Up-00:-Scene2D-Primer
https://libgdx.com/wiki/start/simple-game-extended#the-screen-interface

Combining everything involved for a complete platformer into one tutorial may be out of scope for the wiki.


Fix Redux Form example in Library Code Comparison

This addresses #165. I've also fixed the equality check on the same line - unless I'm misinterpreting the goal of that validation, I believe it should be values.username === "admin" rather than values.username !== "admin", similar to the Formik example.

thank you ❤


UnsupportedGeometryTypeError in Fiona 1.8.22

Expected behavior and actual behavior.
Opening the file. Is working wit some files. Others raises the error below:
Steps to reproduce the problem.
open the file with geopandas' read_file
Operating system
OS Ubuntu 20.04 derivative
Fiona and GDAL version and provenance
installed with mamba 0.27.0:
fiona <IP_ADDRESS>
gdal 3.5.2
Example Shape File: LoD1_23445938.zip
(1/3 of the LoD1 files (by Lower Saxony (open Data)) I tried did not open). But this example opens in QGIS.

  File "fiona/ogrext.pyx", line 1515, in fiona.ogrext.Iterator.__next__
  File "fiona/ogrext.pyx", line 317, in fiona.ogrext.FeatureBuilder.build
  File "fiona/_geometry.pyx", line 187, in fiona._geometry.GeomBuilder.build
  File "fiona/_geometry.pyx", line 168, in fiona._geometry.GeomBuilder._buildGeometryCollection
  File "fiona/_geometry.pyx", line 169, in fiona._geometry.GeomBuilder._buildGeometryCollection
  File "fiona/_geometry.pyx", line 149, in fiona._geometry.GeomBuilder._buildParts
  File "fiona/_geometry.pyx", line 182, in fiona._geometry.GeomBuilder.build
fiona.errors.UnsupportedGeometryTypeError: 16

Do you know what type of geometries you have stored in the file? The error indicates that fiona received a geometry type it doesn't support (16 typically indicates TIN, https://en.wikipedia.org/wiki/Well-known_text_representation_of_geometry#Well-known_binary)

QGIS states MultiPolygonZ, which makes sence for LoD1. I could open about 66 %. (I added an example in my first post)

Using ogrinfo -al LoD1_23445938_2_2021-01-19.shp from the command line, there are indeed TIN geometries included in GeometryCollections (most of the geoemtries are MultiPolygons, a few of those mixed collections):
...
OGRFeature(LoD1_23445938_2_2021-01-19):102
  ALKISOID (String) = http://repository.gdi-de.org/schemas/adv/citygml/fdv/art.htm#_9100$$$DENILD23000004Fa
  GEBID (String) = DENILD1513150232765_22741340
  NAME (String) = (null)
  FUNKTION (String) = 31001_1000
  AGS (String) = 03457002
  ABLDATUM (String) = 2021-01-19
  BPDACH (Integer64) = 0
  DQDACH (Integer64) = 1000
  DQLAGE (Integer64) = 1000
  DQBODEN (Integer64) = 1400
  DACHFORM (Integer64) = 1000
  HOEHEGEB (Real) = 6.62200000000
  HOEHEBD (Real) = 5.01000000000
  HOEHETRAUF (Real) = 11.63200000000
  HOEHEFIRST (Real) = 11.63200000000
  GEMEINDE (String) = (null)
  LAGEHNR (String) = (null)
  GEOMETRYCOLLECTION Z (TIN Z (((345359.106 5939644.725 11.632,345365.457 5939641.258 11.632,345365.433 5939641.213 11.632,345359.106 5939644.725 11.632))),TIN Z (((345365.457 5939641.258 5.01,345359.106 5939644.725 5.01,345365.433 5939641.213 5.01,345365.457 5939641.258 5.01))),MULTIPOLYGON Z (((345365.432999997 5939641.21299999 11.632,345359.106 5939644.725 11.632,345359.106 5939644.725 11.0475,345361.999827903 5939643.11868996 11.0475,345365.432999997 5939641.213 11.0475,345365.432999997 5939641.21299999 11.632)),((345365.457 5939641.258 11.632,345365.457 5939641.258 5.01,345359.106000042 5939644.72500008 5.01,345359.106000042 5939644.72500008 11.632,345365.457 5939641.258 11.632)),((345365.433 5939641.213 11.632,345365.433 5939641.213 5.01,345365.456999999 5939641.258 5.01,345365.456999999 5939641.258 11.632,345365.433 5939641.213 11.632)),((345361.999827903 5939643.11868996 11.0475,345359.106 5939644.725 11.0475,345359.106 5939644.725 5.01,345361.999827903 5939643.11868996 5.01,345361.999827903 5939643.11868996 11.0475)),((345365.432999997 5939641.213 11.0475,345361.999827903 5939643.11868996 11.0475,345361.999827903 5939643.11868996 5.01,345365.432999997 5939641.213 5.01,345365.432999997 5939641.213 11.0475))))
...

QGIS states MultiPolygonZ,

QGIS automatically maps TIN to MultiPolygon (https://gdal.org/development/rfc/rfc64_triangle_polyhedralsurface_tin.html, https://github.com/qgis/QGIS/pull/5298). Something similar could probably be done for Fiona (or optionally)

There should be support for converting TIN's to MultiPolygon:
https://github.com/Toblerity/Fiona/blob/master/tests/test_rfc64_tin.py
Thus, there might be something not working as intended.

Ah, wasn't aware that this was already supported. Indeed I can read the test file that is included in Fiona:
In [1]: geopandas.read_file("Fiona/tests/data/test_tin.shp")
Out[1]:
  id                                           geometry
0  1  MULTIPOLYGON Z (((0.00000 0.00000 0.00000, 0.0...

But so with the same Fiona install, reading the file provided here results in the UnsupportedGeometryTypeError: 16 error. So something else is still going wrong.
Maybe the issue here is that it's actually a GeometryCollection containing a TIN? So the type code of the actual geometry is not 16 for TIN, but 7 for GeometryCollection. For that reason, it's not converted on the GDAL, and then when actually converting the geometry in the GeomBuilder class, it sees TIN as one of the parts (so also in _buildParts, we should again check the type code and potentially convert TIN to MultiPolygon, if we want to support this case)

I will have a look at it probably on Sunday. On first glance it looks strange that if code = 16 on line 296, then  line 317 is executed.

t looks strange that if code = 16 on line 296, then line 317 is executed.

Yes, but so it is not code 16 on line 296, at that point it is a GeometryCollection, so code 7

@jorisvandenbossche thanks, now it makes sense!  It looks as if the code in https://github.com/Toblerity/Fiona/blob/maint-1.8/fiona/ogrext.pyx#L298-L311  needs to be also in https://github.com/Toblerity/Fiona/blob/master/fiona/_geometry.pyx#L148, or better refactored that it is only in one place, e.g. in GeomBuilder.build.

Done!


Wallet Login Query Parameters

Is your feature request related to a problem? Please describe.
I am building a backend app to integrate with Slack.
When I am redirecting an user to login with NEAR or Sign a transaction,
I cant generate the redirect URL using the near-sdk-js and send it to the Slack UI
So I had to compose the URL manually.
But there is no Docs about how to do it, what are the parameters and how it should work.
Describe the solution you'd like
Add a Docs page to show examples of a login URL and a Transaction Sign URL and a FunctionCall w/ deposit.
They should include all available parameters and so basic guidance how the flow should work.
Additional context
Add any other context or screenshots about the feature request here.

This looks more like a wallet specific issue, since each wallet will have a different URL and way to sign messages.
Please reach to each wallet you want to integrate in their respective repos.


Legacy Internet Explorer Support?

With support ended for Internet Explorer 10  I thought I'd open an official issue on our support for old Internet Explorer versions.
It's not a huge issue, but at some point it would be nice to sweep out all the code we have for old IE support. Even if we still support 10 it would be a nice cleanup, and not a huge task.
Comments?
Note: Even in my latest MouseTracker patch (in progress, coming v2.5.0) I'm still testing back to IE 9 (via emulation on IE 11)...I'd go back to 8 but we fail there - could be my test page or OpenSeadragon, but that debugging is a project for after this patch gets in...

As of this moment on https://caniuse.com/usage-table, I'm seeing on desktop browsers:

IE9: 0.24%
Opera: 1%
IE11: 1.38%
Edge: 3%
Firefox: 3%
Safari: 3%
Chrome: 30%

That doesn't include mobile browsers, which is why it doesn't add up to 100%. I didn't include any of the other IE versions, because they are basically rounding errors at this point.
With those numbers, I feel comfortable officially dropping support for IE10 and earlier. IE11 is still hanging on (and has been dropping extremely slowly), so I think we should still retain support for it. Of course we should keep an eye on it; someday its reign will end!

With those numbers, I feel comfortable officially dropping support for IE10 and earlier.

Music to my ears (eyes?)!

@iangilman
What do you think about removing IE<11 support for the 2.5.0 milestone?

Sounds good. Let's make it official :-)

Linking #373 in case it notifies concerned parties

Good thinking, but I don't think linking sends notifications, so I've added an explicit comment there.

Good thinking, but I don't think linking sends notifications, so I've added an explicit comment there.

Gracias!


FINERACT-1200: Route OpenJPA logging to slf4j

Description
Describe the changes made and why they were made.
Ignore if these details are present on the associated Apache Fineract JIRA ticket.
Checklist
Please make sure these boxes are checked before submitting your pull request - thanks!

[ ] Write the commit message as per https://github.com/apache/fineract/#pull-requests

[ ] Acknowledge that we will not review PRs that are not passing the build ("green") - it is your responsibility to get a proposed PR to pass the build, not primarily the project's maintainers.

[ ] Create/update unit or integration tests for verifying the changes made.

[ ] Follow coding conventions at https://cwiki.apache.org/confluence/display/FINERACT/Coding+Conventions.

[ ] Add required Swagger annotation and update API documentation at fineract-provider/src/main/resources/static/api-docs/apiLive.htm with details of any API changes

[ ] Submission is not a "code dump".  (Large changes can be made "in repository" via a branch.  Ask on the developer mailing list for guidance, if required.)

FYI our guidelines for code reviews are at https://cwiki.apache.org/confluence/display/FINERACT/Code+Review+Guide.

FTR: I have locally verified that this indeed fixes FINERACT-1200, and will merge it as soon as I see that it doesn't somehow have unintended side effects on ITs (unlikely).


Possibly virus infected?

My provider informed me about bad scripts in
..tests/test-data/bad.php
./tests/test-data/bad.phtml
which I may have been installed via FTP.
After a short review I found that these files, base64 encoded, reside in the branch I installed bookshelf from, just two day old commited by ssddanbrown.
Is this correct from your side an my provider detected the virus falsely or is there a issue on your side?
By the way - great piece of helpfull software, thanx for that.
Greetings from Germany
Volker

As I can see the problem has already been seen - thats why they got base64 encoded. Thx.


Allow to search multiples keyword at once

Allow combinasion of search ex: if i want to search painting AND drawing i could.

Unfortunately I don't believe this is possible through the Twitch API. If I find a way, that would be great to add.


CombineLatest on observables created with Defer

Describe the bug
When creating an Observable with Defer, every call to Observe restarts the producer and every observer gets the same values.
But this is not the case when the Observable is transformed with operators that itself call Observe on that Observable, like CombineLatest. In contrast to that, the Map operator is respecting the Defer origin of the Observable.
To Reproduce
Steps to reproduce the behavior:
func TestCombineLatest(t *testing.T) {
	o := rxgo.Defer([]rxgo.Producer{func(ctx context.Context, next chan<- rxgo.Item) {
		next <- rxgo.Of(1)
		next <- rxgo.Of(2)
		next <- rxgo.Of(3)
	}})
	co := rxgo.CombineLatest(func(i ...interface{}) interface{} {
		return i[0]
	}, []rxgo.Observable{o})
	ch1 := co.Observe()
	ch2 := co.Observe()
	rr1 := make([]interface{}, 0)
	rr2 := make([]interface{}, 0)
	done1 := make(chan struct{}, 1)
	go func() {
		for i := 0; i < 3; i++ {
			r1 := <-ch1
			rr1 = append(rr1, r1.V)
		}
		close(done1)
	}()
	done2 := make(chan struct{}, 1)
	go func() {
		for i := 0; i < 3; i++ {
			r2 := <-ch2
			rr2 = append(rr2, r2.V)
		}
		close(done2)
	}()
	<-done1
	<-done2
	Expect(rr1).To(Equal(rr2))
}

The Producer is called only once. Depending on the scheduling 1, 2, 3 is distributed on rr1 and rr2, when no more values are available, rr1, rr2 get nils from the closed channels.
Expected behavior
Both observers should get the 1, 2, 3.
Additional context
The same pattern is working with System.Reactive.Linq in dotnet.

Some additional thoughts:

I fear CombineLatest is not the only operator with this behavior.
As a workaround, one can wrap calls to CombineLatest (and perhaps other operators or operator chains) with

func Defer(produceObservable func() rxgo.Observable, opts ...rxgo.Option) rxgo.Observable {
	return rxgo.Defer([]rxgo.Producer{
		func(ctx context.Context, next chan<- rxgo.Item) {
			inCh := produceObservable().Observe(opts...)
		loop:
			for {
				select {
				case item, ok := <-inCh:
					if !ok {
						break loop
					}
					select {
					case next <- item:
					case <-ctx.Done():
						break loop
					}
				case <-ctx.Done():
					break loop
				}
			}
		},
	},
	)
}

but you need to know if it is necessary.

When the workaround is used, the whole operator chain called in the producer, with all its goroutines, is duplicated. It would be better if the multiplexing of the transformed value takes place after the operator chain.


New "Check TX Status" Page

Check Transaction Status (match "Create New Wallet" panel

TX hash -- input form-control

validate # characters, hex

Check TX Status - btn primary
"How does it work?"

If Mined

Pull copy from How to Check The Status # 4 - first 3 bullets.

If not found in TX Pool

Pull copy from How to Check The Status # 4 - 4th bullet.

If found in TX Pool

Pull copy from from How to Check The Status # 4 - 5th bullet.

TX Hash: { Link to Etherscan }
To Address: { }
From Address: { }
Nonce: { }
Gas Limit: { }
Gas Price: { }

"There is a chance you can cancel this transaction or replace it with a new one. If you wish to do so, please unlock the wallet you sent this transaction from".
"How does it work?"

4b. Wallet Decrypt Drtv
4c. Replace TX
- "Warning: This features is in BETA. Use at your own risk."
- "Warning: Do NOT change the value of these fields (unless you know what you are doing). If you do so, it could result in a more complex, expensive situation. These fields have been pre-filled for you & will attempt to effectively "cancel" your transaction."
- "How does it work?"
- To Address field - prefilled with from address of TXHASH
- Amount  - prefilled with 0
- Gas Limit   - prefilled with 21000
- Gas Price - prefilled with gas price from TXHASH + 10 GWEI
- Nonce - prefilled with nonce from TXHASH
- Send Transaction Button
- Confirmation Dialog (match from send transaction but with add'l fields)

Gas Price - prefilled with gas price from TXHASH + 10 GWEI

I think you should make that 10% (and double check this with other client implementations). I know that geth will only overwrite the transaction if the gas price is at least 10% higher than the previous one.

@obscuren THANK YOU! @kvhnuke note this please

v3.9.6


<EMAIL_ADDRESS>create 0 size builds

Bug description
I tried to port my pipeline from v1.5 to v2.0-aplha-5. Now I have empty artefacts.
You can see my changes in https://github.com/kreghek/Zilon_Roguelike/pull/905/files#diff-db640e5698dc2c7d6326459c597f67e80e0d8061bb9e89697b4bf4a1f765568f
Key changes is:
- uses<EMAIL_ADDRESS>
How to reproduce
There is results of Github actions:
https://github.com/kreghek/Zilon_Roguelike/runs/1435830765

Expected behavior
I thought it would be enough to just change the version.
Additional details
I can explain more about my pipeline. But I dont understend which details are significant. Please, ask in comments.

Apart from that, the version tag has a misspelled alpha (aplha)...

Apart from that, the version tag has a misspelled alpha (aplha)...

Yes, I used aplha. Because alpha fail build at all.

I note next line in release notes:

This also means that licenses have to be reactivated when upgrading.

I miss this thing early. Now I used<EMAIL_ADDRESS>How to port activation to new images? Cant find it in the docs.

Apart from that, the version tag has a misspelled alpha (aplha)...

yea my bad, the release is actually named that.

I miss this thing early. Now I used<EMAIL_ADDRESS>How to port activation to new images? Cant find it in the docs.

Also use the alpha version for that action (see releases).

Cool. Activation from 2.0-alpha fixed zero-size build artefacts. Thanks!


Add pwm functionality like Timerone library

Hi! Would it be possible to add the pwm functions to your great library like TimerOne library does?
Like TimerX.setpwmDuty(), TimerX.disablepwm(), TimerX.pwm(pin, duty), TimerX.pwm(pin,duty,freq)
Thanks!!

There is gyverpwm library for this


Refactor documentation round 2

Comments from @cmungall:

[x] full name not just short name
[x] don’t bother including things like Usage
[x] leave off mappings for now - there are no mappings in MIxS (yet)
[x] put descriptions of classes (combos and packages and checklists) on the front page and just include a bit more text to let people know what is going on
[ ] for classes, let’s generate a title that is not camelcase and use that (this is an upstream change though)
maybe show combos as a grid?

eg https://microbiomedata.github.io/mixs/fao_class/#fao_class

[x] hyperlink URLs
[ ] Maybe “Inheritance” is not so useful - we know everything has max one ancestor here?
[ ] it’s not so useful to end up here - maybe exclude abstract classes?

I'm excited that you're working on this @sujaypatil96 !
Here are some additional new notes. I'll try to merge in any other older notes I can find.
I can help with whatever parts you want


Remove extraneous banner from settings tabs

The Bots and Invitations tabs in Organization settings display a banner for non-admins that says: "Only organization administrators can edit these settings." However, it's not really clear what settings that banner is referring to -- there are no settings displayed.
We should remove this banner from these two tabs.
CZO discussion thread

@zulipbot claim

Hi @mharyam! 👋🏻
I have already started working on this issue and here is the link to the pull request https://github.com/zulip/zulip/pull/20050

Hi @mharyam! 👋🏻 I have already started working on this issue and here is the link to the pull request #20050

Hi @edith007
Looks like this is already closed, right ?

No actually, I am still working on this PR, and will push some changes by the end of the week. So it is not closed, the PR is still open against this Issue. 🙇🏻

Okay, no problem 😄
I will unclaim  it

@zulipbot unclaim

@zulipbot claim

Hi @is124! 👋🏻
I am still working on this issue. Here is the link for the PR https://github.com/zulip/zulip/pull/20050

okay, sure. @zulipbot unclaim

@zulipbot claim

Hi @sudhanshu154! 👋🏻
I am still working on this issue. Here is the link for the PR #20050

@zulipbot claim

@alya I've already completed and gotten my pr reviewd for the other issue.
Can I make a pr for this? I think I've fixed this issue.

@SnexusG I've assigned you this issue; please go ahead and submit a PR. Thanks!

@zulipbot claim

@zulipbot abandon

@zulipbot abandon

Hey! may I work on this issue if is not yet fixed?
@zulipbot claim

@alya I submitted a PR 21642 for this issue.


Question - EF Core - AsExpandable & Include

Is AsExpandable working in combination with Include with EF Core 5.0? I'm completely confused, somehow it's working when I call Include before AsExpandable. But is this a known limitation or a bug?
And will this work for all use cases?
Br

Duplicate of https://github.com/scottksmith95/LINQKit/issues/147


brew rm node leaves a ton of manpage symlinks unremoved

[x] Ran brew update and retried your prior step?
[x] Ran brew doctor, fixed as many issues as possible and retried your prior step?
[ ] Confirmed this is a problem with Homebrew/brew and not specific formulae? If it's a formulae-specific problem please file this issue at https://github.com/Homebrew/homebrew-core/issues/new

I don't really use node, but I poured the bottle to play with something briefly.  Then I did brew rm node.  Then I did brew prune, and beheld all this stuff that didn't get removed but sure seems like it should.  Mostly its manpages, but there's a few thinngs in opt too:
rm /usr/local/share/man/man1/npm-README.1
rm /usr/local/share/man/man1/npm-access.1
rm /usr/local/share/man/man1/npm-adduser.1
rm /usr/local/share/man/man1/npm-bin.1
rm /usr/local/share/man/man1/npm-bugs.1
rm /usr/local/share/man/man1/npm-build.1
rm /usr/local/share/man/man1/npm-bundle.1
rm /usr/local/share/man/man1/npm-cache.1
rm /usr/local/share/man/man1/npm-completion.1
rm /usr/local/share/man/man1/npm-config.1
rm /usr/local/share/man/man1/npm-dedupe.1
rm /usr/local/share/man/man1/npm-deprecate.1
rm /usr/local/share/man/man1/npm-dist-tag.1
rm /usr/local/share/man/man1/npm-docs.1
rm /usr/local/share/man/man1/npm-doctor.1
rm /usr/local/share/man/man1/npm-edit.1
rm /usr/local/share/man/man1/npm-explore.1
rm /usr/local/share/man/man1/npm-help-search.1
rm /usr/local/share/man/man1/npm-help.1
rm /usr/local/share/man/man1/npm-init.1
rm /usr/local/share/man/man1/npm-install-test.1
rm /usr/local/share/man/man1/npm-install.1
rm /usr/local/share/man/man1/npm-link.1
rm /usr/local/share/man/man1/npm-logout.1
rm /usr/local/share/man/man1/npm-ls.1
rm /usr/local/share/man/man1/npm-outdated.1
rm /usr/local/share/man/man1/npm-owner.1
rm /usr/local/share/man/man1/npm-pack.1
rm /usr/local/share/man/man1/npm-ping.1
rm /usr/local/share/man/man1/npm-prefix.1
rm /usr/local/share/man/man1/npm-prune.1
rm /usr/local/share/man/man1/npm-publish.1
rm /usr/local/share/man/man1/npm-rebuild.1
rm /usr/local/share/man/man1/npm-repo.1
rm /usr/local/share/man/man1/npm-restart.1
rm /usr/local/share/man/man1/npm-root.1
rm /usr/local/share/man/man1/npm-run-script.1
rm /usr/local/share/man/man1/npm-search.1
rm /usr/local/share/man/man1/npm-shrinkwrap.1
rm /usr/local/share/man/man1/npm-star.1
rm /usr/local/share/man/man1/npm-stars.1
rm /usr/local/share/man/man1/npm-start.1
rm /usr/local/share/man/man1/npm-stop.1
rm /usr/local/share/man/man1/npm-team.1
rm /usr/local/share/man/man1/npm-test.1
rm /usr/local/share/man/man1/npm-uninstall.1
rm /usr/local/share/man/man1/npm-unpublish.1
rm /usr/local/share/man/man1/npm-update.1
rm /usr/local/share/man/man1/npm-version.1
rm /usr/local/share/man/man1/npm-view.1
rm /usr/local/share/man/man1/npm-whoami.1
rm /usr/local/share/man/man1/npm.1
rm /usr/local/share/man/man5/npm-folders.5
rm /usr/local/share/man/man5/npm-global.5
rm /usr/local/share/man/man5/npm-json.5
rm /usr/local/share/man/man5/npmrc.5
rm /usr/local/share/man/man5/package.json.5
rm /usr/local/share/man/man7/npm-coding-style.7
rm /usr/local/share/man/man7/npm-config.7
rm /usr/local/share/man/man7/npm-developers.7
rm /usr/local/share/man/man7/npm-disputes.7
rm /usr/local/share/man/man7/npm-index.7
rm /usr/local/share/man/man7/npm-orgs.7
rm /usr/local/share/man/man7/npm-registry.7
rm /usr/local/share/man/man7/npm-scope.7
rm /usr/local/share/man/man7/npm-scripts.7
rm /usr/local/opt/node@7
rm /usr/local/opt/nodejs
rm /usr/local/opt/npm
Pruned 69 symbolic links from /usr/local
No apps unlinked from /Applications

Note that while the node bottle was installed, I never used npm or anything like that.

rm /usr/local/opt/node@7
rm /usr/local/opt/nodejs
rm /usr/local/opt/npm

These will be addressed by https://github.com/Homebrew/brew/pull/2433.
The rest are manually made in postinstall for Node's formula hence why Homebrew can't "find" them. It should be fixable but may cause unacceptable performance regressions (i.e. a brew prune runtime every brew uninstall but we will try anyway)

These will be addressed by #2433.

I'm confused then.  I thought I had already pulled in #2433 when I tried the node example.

Well, I tried it again and indeed those last three symlinks in opt did get removed.  So it's just the manpages.

It should be fixable but may cause unacceptable performance regressions (i.e. a brew prune runtime every brew uninstall but we will try anyway)

Maybe a kind of "restricted" prune will do the trick.  A regular prune I have found will destroy any dead symlink in /usr/local/the-usual-suspects, even if the symlink's target is not in the Cellar.  (For instance, I have some custom symlinks in /usr/local/bin pointing to the bb* binaries embedded in BBEdit.app.  On occasion,  I temporarily have no BBEdit.app on my machine, and brew prune destroys these, and then when BBEdit.app is back on my machine I have to wonder why bbedit no longer works and then recreate the links.)

Perhaps remove should call prune iff one of the arguments to remove is known to have a postinstall.  Just spitballin'.

This is actually not fixed by Homebrew/homebrew-core/pull/14171, contrary to its commit message.
Today I installed node, then did brew rm --force node.  All the same dead symlinks to npm manpages were present.

It's fixed presuming you upgrade, install, reinstall or postinstall node at least once more before removal. Otherwise just brew prune them as directed, but the actual cause of the problem has been fixed by the commit.

~> brew rm node
~> brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Some installed formula are missing dependencies.
You should `brew install` the missing dependencies:
  brew install node

Run `brew missing` for more details.
~> brew install node
~> brew doctor
Your system is ready to brew.
~> brew rm node
~> brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry and just ignore them. Thanks!

Warning: Some installed formula are missing dependencies.
You should `brew install` the missing dependencies:
  brew install node

Run `brew missing` for more details.

Uh oh!

The warning is expected, I have ios-sim installed locally.

No, I can of course use brew prune (and did this).  It seems totally absurd, however, that one has to do this at all.    Especially since (IIUC) the man pages in /usr/local/share are supposed to be copies and not symlinks.  Probably I just don't UC :)
There is no parallel problem, as far as I know, with dead symlinks from installations of other scripting lanuages with their own package manager---like ruby  or python---for which HB tries to preserve those sub-installations across version bumps.

@chdiza it has to do with our super-cool way of handling npm (you can look at node's post_install method if you're curious).

Yes, npm is a rather special case due to its complex history with Homebrew. We break a fair few of our own rules about how formulae should behave simply because doing so keeps the risk of breakage for Homebrew, users & upstream as minimal as possible.

No, I can of course use brew prune (and did this)

Also just to reiterate, if you'd run brew postinstall node once before removing it you wouldn't need to prune at all. The assumption is that most users who have node installed will not have uninstalled it between that commit & the release ILZ merged the other day.


missing dependency on CQ 6.1

com.adobe.acs.acs-aem-commons-bundle fails to resolve the dependency:
com.day.cq.mailer,version=[5.6,6) -- Cannot be resolved
the package exists within osgi but is version 6.0.0.  this does not happen in CQ 6.0, as that package has a version of 5.8.0

This is a bug in AEM and will be fixed before GA. We can leave this issue open until that point if desired, but this is a no-op for ACS AEM Commons.


Update drone to point to hub.docker.com/grafana/beyla

Update drone to point to hub.docker.com/grafana/beyla
Update module and package names from epbf-autoinstrument to beyla

Codecov Report

Merging #226 (3d15b74) into main (21a294c) will decrease coverage by 0.07%.
Report is 9 commits behind head on main.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #226      +/-   ##
==========================================
- Coverage   80.72%   80.65%   -0.07%
==========================================
  Files          37       37
  Lines        3066     3066
==========================================
- Hits         2475     2473       -2
- Misses        440      442       +2
  Partials      151      151

Flag
Coverage Δ

integration-test
75.36% <ø> (-0.07%)
:arrow_down:

unittests
37.95% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

Probably we should also change the Drone repo from https://drone.grafana.net/grafana/ebpf-autoinstrument to https://drone.grafana.net/grafana/beyla. I think we can just drop a message in #it-help and they will provide us the support. I can do it after holidays.

Drone has been renamed to beyla: https://drone.grafana.net/grafana/beyla
Waiting for the DockerHub repo to be created.

Merging as there is no people availabe to give an approval.


ComponentNotRegisteredException without having IRequestHandler

Hi there,
I am using MediatR (v 3.0) with Autofac in ASP.Net Core project. I have sample code at https://github.com/binoypatel/AutoFac.Mediatr.Lab. In this project I have commented following line in MediatorModule.cs file:
//builder.RegisterGeneric(typeof(GenericQueryRequestHandler<>)).As(typeof(IRequestHandler<,>));
What is interesting is, autofac is throwing ComponentNotRegisteredException when above line is commented. In my real project, I don't have any handler that implements IRequestHandler. This was working in v 2.10. Hitting continue button in debug mode, continue loading the application but is there a better way to deal with this situation?
Thanks,
Binoy

I hit the same issue when upgrading to 3.0, and I'm using LightInject.
I think this is more of a problem with the way we choose to implement SingleInstanceFactory then the way MediatR works.  Since MediatR changed the whole IRequest<> vs IAsyncRequest<> thing - to the better, I must say - it will now first look for a synchronous handler and then for an asynchronous handler.
In my case, I implemented the SingleInstanceFactory as
container.Register<SingleInstanceFactory>(fac => t => fac.GetInstance(t));

Since it in no synchronous handler (as long as the example line is commented out) GetInstance will throw an exception - which MediatR catches and returns null.
If I change my implementation to
container.Register<SingleInstanceFactory>(fac => t => fac.TryGetInstance(t));

LightInject will itself return null instead of throwing exception, and - voila - problem be gone!
I don't know AutoFac, but according to documentation, they too have a TryResolve to match the exception-throwing Resolve.

I updated the examples to use the TryXyz methods as much as possible.


Error: 'decoration' isn't a function or method and can't be invoked.

Hi, this error occurs when I try to use the extra plugin with the form_builder package
.../form_builder_file_picker-1.2.0-nullsafety.3/lib/src/form_builder_file_picker.dart:91:43: Error: 'decoration' isn't a function or method and can't be invoked.
              decoration: state.decoration(),

@jvmdoeng16 did you fixed this issue? I'm also having this issue

Facing the same issue. Any solution for this?

Will the developers fix this issue? It has been a week already and my project strongly depends on this plugin

Same issue!! Any Updates or Work arounds?

The fix is quite simple. The developer should fix the code asap.
just change line number 91 from "decoration: state.decoration()," to "decoration: decoration," in file form_builder_file_picker.dart
as a workaround you can change this is file ".pub-cache\hosted\pub.dartlang.org\form_builder_file_picker-1.2.0-nullsafety.3\lib\src\form_builder_file_picker.dart"
the code shall compile and work successfully,
Do remember that the file may be overwritten when you run "pub get" etc.

I patched the issue and did a version bump on the dependencies in my fork of this plugin. So, in your pubspec.yaml you can add my patched version to get your stuff working for now.
  form_builder_file_picker:
    git: https://github.com/flutterfromscratch/form_builder_file_picker

If there isn't a PR for this I'll put one in as well...

Put in a PR for this, hopefully it gets merged in soon. Until then, feel free to use my fork to get your stuff sorted 😄


Added a notAhead combinator

We needed a combinator that checks whether something is not ahead. We tried to write the tests in the same way as the tests for lookAhead.

Hi Chris,
Would the noOccurence parser work?

Yes, sorry for missing that!


When will this go up on the Terraform Registry?

Hi @NeckBeardPrince, you can start using https://registry.terraform.io/providers/OpenVPN/openvpn-cloud


DBZ-6227 Reduce CPU usage and ensure critical logs have task Uid

Remove Deadlock in BufferedPublisher, increase sleep time in some threads, and ensure critical logs have taskUid.

Hi Jiri, rebased on main.

@nancyxu123 Applied. I've one more hint for improved logging. Please take a look at io.debezium.util.LoggingContext and https://logging.apache.org/log4j/2.x/manual/thread-context.html
I believe it would be even better if you use MDC and properly configure logging as it will give you the important metadata without needing them included in all messages.

Hi Jiri, thank you so much for the hint! I'll open a public issue to track this work.


"docker-compose run compile" doesn't work on Windows 10

When I execute docker-compose run compile, it's error:
[31mERROR
Please pass the -d flag when using `docker-compose run`.

Is my execution way wrong?
Please see the below GIF file for the details:

My environment:

docker version is 1.10.2, build c3959b1
mruby-cli version is 0.0.4

What happens when you try docker-compose run -d compile?

It succeeded. Thank you.

It is a known limitation of docker in the Window shell.
I've just updated the README file to add the flag -d when running on windows. cf #46
I close this issue.


README typo fix

fix: Typo in line 9 of README.md
changes Sate to State

can someone please help me with the issue, the commit lint wont let me commit even when the commit is in accordance to the convention.

can someone please help me with the issue, the commit lint wont let me commit even when the commit is in accordance to the convention.

Welcome to CircuitVerse 🎊
It is because of the commit message, that follow this to make the commit message meaningful!

@vedant-jain03 Hey Vedant, Thank for the prior help.
Can you please resolve one more doubt of mine that whether I need to close this PR and write a new one or is their any mechanism where I can link the PR in this thread only?

@vedant-jain03 Hey Vedant, Thank for the prior help. Can you please resolve one more doubt of mine that whether I need to close this PR and write a new one or is their any mechanism where I can link the PR in this thread only?

You don't need to close or open a new PR. You can add the changes in the current PR branch, add, commit, and push them!

#16 Typo in README.md resolved. Please review.

Thank you @Sarthaknegigit for the fix.

Thank you @Sarthaknegigit for the fix.

Thank you for guiding me through my first PR.


No Package GEOS available

I am installing Unidata AWIPS 17.1 on CentOS 7 using the install script and am met with 2 issues. The first is the installation of netcdf 4.1.2, which is easily remedied by downloading the primary and devel rpms. The other issue is a missing package called GEOS.
---> Package xz-devel.x86_64 0:5.2.2-1.el7 will be installed
---> Package zlib-devel.x86_64 0:1.2.7-17.el7 will be installed
--> Running transaction check
---> Package awips2-postgresql.x86_64 0:9.5.8-1.el7.centos will be installed
--> Processing Dependency: geos for package: awips2-postgresql-9.5.8-1.el7.centos.x86_64
---> Package nss-softokn-freebl.i686 0:3.28.3-8.el7_4 will be installed
--> Finished Dependency Resolution
Error: Package: awips2-postgresql-9.5.8-1.el7.centos.x86_64 (awips2repo)
           Requires: geos
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

This issue was resolved by downloading/installing the package geos-3.4.2-2.el7.x86_64.rpm.


Add a lot of functionality

A lot got added...honestly looked at the development branch
We kinda did not deploy to production on a regular basis...

amazing work, well done peter parker


Improve error handling for snowmachineconfig controller

Issue #, if available:
Description of changes:
Address further comments from https://github.com/aws/eks-anywhere/pull/2724
TODO:

Work on a builder so that we can mock the validator functions instead of the client ones https://github.com/aws/eks-anywhere/pull/2724#discussion_r931324391

Testing (if applicable):
unit test
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


New update and Ninja crit percent

With the new update when I try using the casual meter it counts "Focus" as a move and makes it that it adds extra hits to the count and because it does not crit the overall crit percent goes down. I found it only counts for you if you play ninja and other ninja's in the party are not affected. Here is a flat view of two ninja (one being me), as you can see (do not know if this is why it is affecting it) on one Focus is being counted and on the other it isn't.

Mana over time (as well as DOT and HOT) can be counted only by meter of affected player or player that applied it. That's why you see it only in your meter stats.


Improve error message for mismatched data driven test

Fixes #1049

Tests are still broken, adding this condition is now making some tests being "failed" because the test was not creating a proper setup. I'll fix them next week, sorry for the delay here.

Tests are good, @nohwnd could you please review again?


Blueprint import

Added ability to import blueprints and blueprint books as tasks
Goal
Blueprints and blueprint books can now be imported from the encoded export strings.
This also supports blueprint books containing more blueprint books.
It will add tasks for each blueprint and sub tasks with the count of each entity in the blueprint.
Closes issue #193
Questions/Feedback request
This is my first foray into Lua and Factorio modding, so I'm happy for any feedback on the code changes.
As such, I haven't added any testing, as I don't know how it works (I'm not familiar with faketorio) but I'm happy to work on it with some guidance.

Hello,
thank you for the contribution.
Faketorio is designed to run tests within factorio with the idea to have automated verification for mod behaviour (see the concept of continuous integration).
However I never developed this further and if I remember correctly UI tests where hard to do.
As I am not really playing Factorio anymore there is also no incentive for me to finish faketorio :)
I will take a look at the code here and give feedback.
Again thank you and welcome to the interesting world of lua development.

Thanks for the feedback!
This feature was something I had thought of when using the plug-in and when I saw it had been suggested by others, I thought I may as well give it a go.
I also hope to get to some of the other issues/suggestions left by others when I get time :)


operator expects that ingress name of app is the same as namespace

But not all applications has ingress name the same as namespace. E.g. ArgoCD https://artifacthub.io/packages/helm/argo/argo-cd
It is installed in namespace "hossted-argocd", but ingress is "hossted-argocd-server". We can not override it fulle to be the same as "hossted-argocd". And that's why hossted-operator can not process ingres of such app. It throws the error
2024-10-03T11:32:32Z	ERROR	Reconciler error	{"controller": "hosstedproject", "controllerGroup": "hossted.com", "controllerKind": "Hosstedproject", "Hosstedproject": {"name":"hossted-operator-cr"}, "namespace": "", "name": "hossted-operator-cr", "reconcileID": "40557d6b-e0cf-4dc9-9c6c-39698e3b6920", "error": "Ingress.networking.k8s.io \"hossted-argocd\" not found"}

The same for prometheus - it has specific ingress name, and it's not possible to override it using helm values

Maybe we can add another variable stating exactly what the ingres should be and not let the operator decide based on the namespace convention

@gannulka - Can you republish this. With the new designated variable hosstedCustomIngress=hossted-argocd.
@AdheipSingh will look. for this variable and modify it when instance is activated (after latest chart is applied )

Helm values will send operator the exact value, operator will lookup and check for existence. ```hosstedCustomIngressName:
- hossted-argocd-server

@gannulka please provider override-values to test for argoCD.

@AdheipSingh still doesn't work. Sample
 helm get values hossted-operator -n hossted-platform
USER-SUPPLIED VALUES:
customValuesHolder:
  hosstedCustomIngressName:
  - hossted-argocd-server
cve:
  enable: false
env:
  AWS_REGION: us-east-1
  CLOUD_PROVIDER: placeholder
  CONTEXT_NAME: ""
  EMAIL_ID: ""
  HOSSTED_API_URL: https://api.hossted.com/v1/instances
  HOSSTED_ORG_ID: ""
  HOSSTED_TOKEN: ""
  HOSSTED_USER_ID: ""
  LOKI_PASSWORD: ""
  LOKI_URL: ""
  LOKI_USERNAME: ""
  MARKET_PLACE: enabled
  MIMIR_PASSWORD: ""
  MIMIR_URL: ""
  MIMIR_USERNAME: ""
  PRODUCT_CODE: 5e3lv67alg3wd65pspyfuunxm
  RECONCILE_DURATION: 10s
helm:
- chartName: argo-cd
  namespace: hossted-argocd
  releaseName: hossted-argocd
  repoName: argo
  repoUrl: https://argoproj.github.io/argo-helm
  values:
  - global.domain=argocd.f.hossted.app
  - configs.params.server\.insecure=true
  - server.ingress.enabled=true
  - server.ingress.hostname=argocd.f.hossted.app
  - server.ingress.ingressClassName=hossted-operator
  - server.ingress.tls=false
  - server.ingress.annotations.nginx\.ingress\.kubernetes\.io/backend-protocol=HTTP
ingress:
  enable: false
logging:
  enable: false
monitoring:
  enable: false
nameOverride: hossted
operator:
  image:
    repository: hossted/operator
    tag: edge
primaryCreds:
  namespace: hossted-argocd
  password:
    key: password
    secretName: argocd-initial-admin-secret
replicas: 1
secret:
  HOSSTED_AUTH_TOKEN: notoken
serviceAccount:
  create: true
  name: hossted-argocd
stop: true

error in hossted-manager
"error": "Ingress.networking.k8s.io \"hossted-argocd\" not found"

Ok now works, can be closed


Question: what is the cost of having a low-bit last ciphertext moduli?

I know SEAL implements a CRT decomposition for both moduli, plain and cipher, and that the last of these in our moduli vector is used for key switching:  the benefit being that rotation and relinearization are almost noise-free.
What are the conditions on this last moduli? For example, could I make the last moduli 20 bits instead of 37 per the default values for N=4096 (Of course, 20 bits and congruent to 1 Mod 2N)? What is the cost of doing this? How much would the benefit of reduced noise for rotations/relinearization be impacted by choosing this smaller last moduli for the last prime in the CRT decomposition?  Could I make 1,2,4,6, 8,10, or 12 rotations and keep the noise under control?
Thanks!

The additive noise growth of key switching without a special prime is upper-bounded by noise_ks = sqrt(N) * coeff_modulus.size() * max(coeff_modulus) * a_small_constant where the coeff_modulus excludes the special prime. The noise after key switching is new_noise = old_noise + noise_ks. If old_noise is larger than noise_ns (usually true at a deeper level of circuit), then key switching has almost zero (i.e., less than 1-bit) impact on noise growth. However, if old_noise is less than noise_ks, the size of the latter determines the size of new_noise.
Introducing a special prime helps as such: coeff_modulus in the formula of noise_ks now includes the special prime but noise_ks is divided by the special prime. So when the special prime is the maximum in coeff_modulus, noise_ks only depends on N and coeff_modulus.size() and becomes likely smaller than old_noise in almost all levels. This is why key switching with a special modulus has zero noise growth. If you choose a special prime less than the maximum of the rest of primes, then noise_ks depends on max(coeff_modulus) / special_prime and will likely be larger than old_noise in the first few levels.
Choosing a smaller special prime only makes the noise growth in levels more complicated. It is possible to keep it under control.

Thanks!


Remove autorest core version from build scripts

The code generator MUST be the ONLY source of this value.

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] MIT license headers are included in each file.

IIRC I added this config because of some weird behavior when generation. The autorest have some chances not use the core version config in the codegen readme. I don't know whether the root cause is cache or something else. But anyway, I'm OK with removing it and I'll try to find the root cause if I fall into the problem again.


test_dev_mode_sets_correct_file_handler fails on deploying to beamline

When deploying Artemis to a beamline the unit tests will run. In testing we found that test_dev_mode_sets_correct_file_handler failed.
Acceptance Criteria

test_dev_mode_sets_correct_file_handler does not fail when deployed on a beamline

Just deployed https://github.com/DiamondLightSource/python-artemis/releases/tag/v1.0.2 to the beamline and no longer see this issue, going to close it.


tst_diskless4 runs forever for version 4.9.0

Dear support team,
I am trying to build netcdf 4.9.0. This fails, the test
tst_diskless4 500000000 opendiskless
keeps one core busy with 100% "forever".
Compiler: intel 2022 with "-fPIC -O2 -fp-model precise -static-intel"
../netcdf-c-4.9.0/configure --prefix=$NETCDF_ROOT
--enable-netcdf-4
--enable-cdf5
--enable-dap-long-tests
--enable-large-file-tests
--with-temp-large=$FAST
--enable-mmap
--enable-erange-fill
--disable-dap-remote-tests
--enable-jna
make runs through, make check never ends.
Any suggestion, how to overcome this, would be of great help.
Cheers,
Martin Schmidt

I'm taking a look to see if I can replicate this; unfortunately I don't have access to the intel compilers, but with any luck I'll be able to get enough information from gcc/clang to see what's going on.

I was able to replicate this in v4.9.0, but it appears to be fixed in the v4.9.1-rc1 release.  Can you try this release candidate and let us know if the issue is resolved for you?

Possibly related issues:

https://github.com/Unidata/netcdf-c/issues/2418
https://github.com/Unidata/netcdf-c/issues?q=is%3Aissue+is%3Aopen+diskless

Thanks for the reply. It was of great help. Two comments:

I forgot to mention that the issue was not compiler specific.
For version 4.9.1-rc1 all checks run through now. So the issue should be resolved.
Many thanks again


Passing language codes to model when encoding

I am planning to evaluate a few multilingual encoders with MTEB.
Some of them (SONAR, for example) require explicitly specifying the input language when encoding a text.
For monolingual tasks, this is not a problem: I can specify the language in advance, before running the task.
However, there are cross-lingual tasks, such as BUCC and Tatoeba, which require processing several languages alternatively, so I cannot specify a single language before running a task.
So I wonder: is it possible to pass the language code, along with the other inputs, to the model.encode method?
This would enable evaluating language-dependent models correctly.
I probably could do this on my internal clone of MTEB, but I am hesitating about committing my code to the public version, because the encode method in SentenceTransformer (which is the main type of models evaluated here) does not support extra arguments (https://github.com/UKPLab/sentence-transformers/blob/v2.3-release/sentence_transformers/SentenceTransformer.py#L220). However, for the reproducibility purposes, it would still be nice to have my evaluation working with the public MTEB code.
What would you recommend?

I think it would be great to have that possibility in MTEB! I see three options:

We could use the Python standard library inspect to check the encode signature and if it has a language kwarg provide it
We could have an additional kwarg in the .evaluate func sth like pass_language or so that if activated will pass that kwarg
We could check if the model has a method encode_with_lang or sth and if so use that instead of the regular encode function and pass it the lang kwarg. Similar to how encode_query is detected for retrieval.

If you don't think any of the above is good, feel free to solve it in a different way! I'd be happy to review & merge a PR for this.

@Muennighoff you might be interested in the approach of SEB here, where we allow the model to do dynamic encoding based on the task object (most notably the metadata) e.g. for instruct-type models or for the cohere embedding model.

@Muennighoff you might be interested in the approach of SEB here, where we allow the model to do dynamic encoding based on the task object (most notably the metadata) e.g. for instruct-type models or for the cohere embedding model.

It's a good point. My main worry is that it comes at the cost of simplicity 🤔


use nbgitpuller in for binderhub links

if we can use nbgitpuller in the binderhub launch buttons then it will be easier to ensure people have same environment whether content is launched via binderhub or jupyterhub.
I naively tried this https://github.com/uwhackweek/jupyterbook-template/blob/b8c6246a1957cf6fb50fd82e27033c304ab0e2c4/book/_config.yml#L28 but think we'll need some upstream changes  https://github.com/executablebooks/jupyter-book/issues/1235

We have removed the use of BinderHub with #150


⚠ Bofrost.com has degraded performance

In 6d4c88e, Bofrost.com (https://www.bofrost.com) experienced degraded performance:

HTTP code: 200
Response time: 1249 ms

Resolved: Bofrost.com performance has improved in 2dfe102 after 6 minutes.


Multiple module paths

Looks like only the last path is taken into account by F_Front

Fixed with this: https://github.com/omni-compiler/omni-compiler/pull/50
have to wait until we merge MCH and OMNI implementation of OMNI compiler


Disallow ranges?

Thanks for great library.
I'm not sure if the library support disallow time ranges, so that user couldn't drag to those ranges ?

@revskill10 Unfortunately, this is not currently supported and we do not have plans to implement this feature.


⚠ Bofrost.be has degraded performance

In be8b2fe, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1257 ms

Resolved: Bofrost.be performance has improved in 63e8dd1 after 6 minutes.


Global Reader and OneDrive Admin

It appears Global Reader does not have access to the OneDrive Admin center

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

ID: 0767aac4-fcd9-eaac-2c30-8f17d8eadd92
Version Independent ID: a380a828-03f9-e037-3a62-e4165fda7cb6
Content: Administrator role descriptions and permissions - Azure Active Directory
Content Source: articles/active-directory/users-groups-roles/directory-assign-admin-roles.md
Service: active-directory
Sub-service: users-groups-roles
GitHub Login: @curtand
Microsoft Alias: curtand

@richardpomerleau Thanks for your feedback! We will investigate and update as appropriate.

Hey @richardpomerleau it looks like this is correct, we're currently some more people to look into this issue and to apply the correct text to the documentation.
Thanks for letting us know about this issue!

Hi @richardpomerleau
This is in the docs now. Thank you for your consideration.
#please-close

Changing the documentation does not fix the issue. Global Reader role should be able to sign into OneDrive admin center for audit / assessment purposes. The whole point of "Global Reader" is to have unlimited read access with absolutely no ability to change stuff. Some of the OneDrive settings are only visible through OneDrive Admin...thus Global Reader must have access to perform a full audit.

@inaun totally aggree. Documentation is not a fix. Global reader role must have read only unrestricted access.


Release 0.0.2

Bugfix release

Fix petablint error
Fix minor issues in petab.visualize

Codecov Report

Merging #204 into master will increase coverage by 3.82%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #204      +/-   ##
==========================================
+ Coverage   68.37%   72.19%   +3.82%
==========================================
  Files          18       18
  Lines        1271     1273       +2
  Branches      288      289       +1
==========================================
+ Hits          869      919      +50
+ Misses        354      302      -52
- Partials       48       52       +4

Impacted Files
Coverage Δ

petab/visualize/plotting_config.py
50% <ø> (ø)
:arrow_up:

petab/petablint.py
57.53% <ø> (+57.53%)
:arrow_up:

petab/visualize/helper_functions.py
95.85% <100%> (+0.04%)
:arrow_up:

petab/version.py
100% <100%> (ø)
:arrow_up:

petab/lint.py
52.83% <0%> (+1.41%)
:arrow_up:

petab/problem.py
66.1% <0%> (+2.54%)
:arrow_up:

Continue to review full report at Codecov.

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


dependency issues?

I am running into dependency issues when executing this plugin on our CI platform (see below).
It complains about java dependency issues but I have no clue. Could you comment on this? Is this a configuration issue on my side?
Running with gitlab-runner 12.5.0 (577f813d)
  on GitLab LXFarm05 Docker Runner nzktPVx_
Using Docker executor with image gradle:alpine ...
Pulling docker image gradle:alpine ...
Using docker image sha256:8017d8c2ba74bc79ca45487721a5c39fd903a3bcc52bcb029ad576ce438549cd for gradle:alpine ...
Running on runner-nzktPVx_-project-79-concurrent-0 via lxfarm05.csc.liv.ac.uk...
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /builds/comp122-2021/a1/.git/
From https://gitlab.csc.liv.ac.uk/comp122-2021/a1
 * [new ref]         refs/pipelines/274 -> refs/pipelines/274
   8645b5c..0c7e39f  master             -> origin/master
Checking out 0c7e39f0 as master...
Removing .gradle/
Removing build/

Skipping Git submodules setup
Not downloading cache master due to policy
$ export GRADLE_USER_HOME=`pwd`/.gradle
$ ./gradlew
Downloading https://services.gradle.org/distributions/gradle-6.4.1-bin.zip
.........10%..........20%..........30%..........40%.........50%..........60%..........70%..........80%.........90%..........100%

Welcome to Gradle 6.4.1!

Here are the highlights of this release:
 - Support for building, testing and running Java Modules
 - Precompiled script plugins for Groovy DSL
 - Single dependency lock file per project

For more details see https://docs.gradle.org/6.4.1/release-notes.html

To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/6.4.1/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'a1'.
> Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve com.github.cs125-illinois:gradlegrader:2020.1.3.
     Required by:
         project :
      > No matching variant of com.github.cs125-illinois:gradlegrader:2020.1.3 was found. The consumer was configured to find a runtime of a component compatible with Java 8, packaged as a jar, and its dependencies declared externally but:
          - Variant 'apiElements' capability com.github.cs125-illinois:gradlegrader:2020.1.3 declares a component, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares an API of a component compatible with Java 10 and the consumer needed a runtime of a component compatible with Java 8
          - Variant 'runtimeElements' capability com.github.cs125-illinois:gradlegrader:2020.1.3 declares a runtime of a component, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component compatible with Java 10 and the consumer needed a component compatible with Java 8

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
ERROR: Job failed: exit code 1

my gitlab CI config:
image: gradle:alpine
variables:
  GRADLE_OPTS: "-Dorg.gradle.daemon=false"
before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle
build:
  stage: build
  script: ./gradlew
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: push
    paths:
      - build
      - .gradle
test:
  stage: test
  script: ./gradlew check
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: pull
    paths:
      - build
      - .gradle

grade:
  stage: test
  script: ./gradlew grade
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: pull
    paths:
      - build
      - .gradle

build.gradle
plugins {
    id 'java'
    //id 'application'
    id 'checkstyle'
    id 'edu.illinois.cs.cs125.gradlegrader' version '2020.1.3'
}
repositories {
	mavenCentral()
}
dependencies {
    testImplementation('org.junit.jupiter:junit-jupiter:5.6.2')
    testImplementation('com.github.cs125-illinois:gradlegrader:2020.1.3')
    testImplementation('com.google.guava:guava:16.0')
    testRuntimeOnly('com.github.cs125-illinois:gradlegrader:2020.1.3')
}
test {
	useJUnitPlatform()
	testLogging {
		events "passed", "skipped", "failed"
	}
}
//application {
//    mainClassName = 'uk.ac.liverpool.comp122.ciphers.Encrypt'
//}
checkstyle {
    // assign the latest checkstyle version explicitly to ensure compatibility
    // with recent google_checks.xml
    toolVersion = '8.32'
    showViolations = false
}
tasks.withType(Checkstyle) {
    reports {
        xml.enabled true
        html.enabled false
    }
}
gradlegrader {
    assignment 'COMP122-2021 A1'
    checkstyle {
        points = 10
        configFile = file('config/checkstyle/checkstyle.xml')
        version = '8.32' // use the newest checkstyle version
     }
    //identification {
    //    txtFile = file('email.txt')
    //    validate = { email -><EMAIL_ADDRESS>}
    //}
    reporting {
        jsonFile = file('grade.json')
        post {
            endpoint = "https://example.com/progress"
        }
        printPretty {
            title = "COMP122 A1"
            notes = "Note that the maximum local grade is 90/100. 10 points will be awarded during " +
                    "official grading if you have submitted code that earns at least 40 points."
        }
    }
    //subprojects project(':app'), project(':lib')
    //vcs {
    //    git = true
    //    requireCommit = true
    //}
}

Ah! It seems that the "run with gradle" template I've used to configure gitlab ooints to an outdated docker image, which does not contain an up to date jdk.
I could fix this by simpy changing line 1 in my gitlab config to use gradle:jdk14.
Sorry for the noise.


feat: added formatBytes function

This merge request closes https://github.com/elninotech/uppload/issues/402

@cristianoap nice work!

Thanks!


[Enhancement] use a class loader to bring in dependancy classes for a connector

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
We have talked of creating a fat jar for connectors. We are now not favouring this approach and want the connectors to supply minimal jar files and find the dependant jars in the environment
Expected Behavior
Have a custom class loader that loads the classes for a connector, those classes should be only used by that connector and those classes would not effect any other connector. This seems to be a pattern that has been used successfully in the past.
There still might be a need for shading if the connector classes or its dependancies clash with the Egeria classes, but there would not be a need to resolve dependancies between connectors.
Alternatives
leave asis, shading or fat jars
Any Further Information?
No response
Would you be prepared to be assigned this issue to work on?

[ ] I can work on this

@planetf1 @mandy-chessell  fyi

A 'fat jar' - (a term I've used!) can be a bit of a misnomer in that not necessarily all dependencies are included.
For example we can have the core egeria platform as 'provided' and other dependencies as compile/run. That way anything in the core platform isn't replicated, and we only get the delta - the additional classes unique to the connector in question.
To gain /ISOLATION/ we can shade these additional jars so that they don't clash - at the expense of duplication.
This is an enforced BUILD TIME choice
A custom class loader can make choices at runtime over where to source classes, what to load - so it is a lot more flexible. We would of course still need to decide on the algorithm used. For example just having a connector-local lib path that we pick in preference. We'd also still want to package up dependencies, which can be done with the existing maven/gradle tools.
So classloader = more flexible, but many more choices, alogorithm to be decided (what is the search path). medium-sized shaded jar = build time only, more restrictive, though simple
I do think it's an excellent approach to evaluate

Maybe we first need to be clear on what jars / dependencies we are including under this proposed umbrella?
If we're talking about all of a connector's dependencies, them I'm very much against this approach (if I'm understanding it correctly).  If this means that each dependent jar must separately be placed somewhere on the filesystem, I think it will require those who want to use a connector a significant headache: to go out and determine all the dependent libraries (and versions) themselves, locate where to download them, etc.  For the XT connector (a relatively simple example?) this would mean downloading:

The connector itself
Several XTDB pluggable-interface jar files (that previously were only available on clojars.org, not MC)
The dependent libraries that provide a pluggable back-end (e.g. S3, Kafka, LMDB, RocksDB, etc)
The dependent libraries that are used to interface to a given pluggable back-end (JNI, etc)
The dependent libraries that are used for things like serialization (?) (Cheshire, etc)

It would frankly be easier for someone that wants to use a connector to just build their own "fat jar", particularly as any new release of any of these components would mean that they need to go through the entire investigation loop again to figure out what libraries have changed (if any), which versions are tested to be interoperable, etc, etc.
Having the connector designer make these choices up-front (and "lock-them-in" at build time) means that a connector user will typically just need to go and download a single file -- much, much easier.
(This doesn't prevent someone who wants to go to the trouble of managing all these jar files from doing the other approach, but it makes life easy for simple adopters rather than forcing every adopter to manage the headache of all of this complexity themselves.)
Then again, if we're talking about this classloader approach for only the Egeria dependencies that a connector has, I don't really understand why these are compiled in to the connector in the first place (not simply marked provided)?  The connectors themselves don't really "do" anything without being run through an OMAG Server Platform, which would presumably bring along any of the Egeria dependencies (?), so why build these Egeria dependencies into the jar file of the connector itself?

@cmgrote Thanks for these considerations. I will ask for more details from the people who suggested this.

Hello @cmgrote and @davidradl
We ran into this issue when we were trying to import the client library that is provided by Apache Atlas to be used in a custom Connector that we were trying out with @davidradl.
This Client, provided by the Apache team has about 50 or so dependent jar files.
We tried to take these Atlas related jar files and add them to the connector jar file, making it a medium to fat sized jar.
The trouble starts since Apache is using dependencies that are already present in Egeria base, but in different versions.
So my idea was to have a custom classloader for each Connector in Atlas that would allow to load in external dependencies without interfering with the main Egeria product.
Loading of the non-egeria related dependencies can still happen with a fat jar to make life easy.
Does this make sense ❓

Definitely we should do something to avoid the potential conflicts -- I'm not an expert in this domain, but I would hope that in an ideal world any jar file (whether Apache Atlas or Egeria) that includes dependencies that it doesn't own itself should have some way of making those dependencies within its jar file specific to that jar file.  My impression was that shading is a way to do this (@planetf1 ?)
What seems to be the problem here is that neither Apache Atlas nor Egeria has shaded its non-owned dependencies.  As a result, those that overlap but at different versions are therefore causing a conflict.  While we could therefore split things up so that some jars are included and others not, this doesn't sound very scalable to me: today we know what that is for Apache Atlas, but the overlap could be greater or less for any other technology / connector, and that list of overlap could change for each independently-managed lifecycle of each technology -- trying to keep a handle on all of that over time sounds like it's going to be messy...
I think if either (or in the ideal world, both) were to shade its dependencies then there would no longer be a conflict?
I'd therefore be more in favour of being a "good citizen" ourselves and shading such dependencies -- but I'm not sure what the broader implications of such an approach are...
(I'm mostly pushing in this direction thinking to the world of containers, where each container is intended to be a self-contained atomic "thing" and if you have some overall solution that needs multiple components that say each run on Python you just have Python installed inside each of those containers -- you don't have some "shared" underlying Python installation that each container makes use of, they're entirely independent.  For me these jar files should be managed the same way?)

Thanks @carstenmichel @cmgrote . I am seeing 2 approaches.

Each connector has a custom classloader, so its dependancies are managed in its own isolated 'sandpit'

in theory no dependancy clashes between connectors. For integration connectors this makes sense if we bring in simple 3rd party dependancies like Apache Atlas. I think this approach could be used effectively for 'simple' dependancies.

duplicate code between connectors
may not work for more complex dependancies.

Each connector plays as a good citizen, as Chris talks of

allows us to handle the more complex dependancies

more effort & complexity to document and keep track of the supported 'working set' and having shaded jars for clashes.

I wonder for a connector if we can do approach 1) then we should, if there are more complex considerations, then approach 2) should be used. By using approach 1) as much as we can, we reduce the connectors we need to handle using approach 2.
thoughts @cmgrote @carstenmichel  @planetf1 ?

I don't know enough about shading, but my hopeful assumptions would be that it is a) something decided / designed to be used entirely at build time, and b) uses some kind of "namespace"-like concept to keep the shaded dependencies "unique".
If (a) is correct it has the major advantage of not placing any complexity or additional knowledge / need to download / configure paths / etc on the runtime (operator / user).
If (b) is correct then as long as we use a namespace that matches the connector name itself (or its ConnectorProvider GUID even) then it is pretty well guaranteed to be unique (if not there would be other clashes anyway).
So while the approach places some extra effort on the developer, my sense is that's worth it by removing any extra effort on the operator / user -- again, if my assumptions are correct...

My understanding of shading is the same @cmgrote
The maven docs for the shade plugin at https://maven.apache.org/plugins/maven-shade-plugin/  gives a little info, referring to renaming of some, or all (so it can be partial)
https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html specifically refers to renaming, which 'moves' the packages over to a new, configurable, packagename
We can use shading in part or in full, and alongside other techniques like use of 'provided' for the common egeria dependencies (or anything else critical) to reduce the size of shaded jars. We would need to use shading in our own jars also (such as chassis)
The key issue with shading is it is build-time, not runtime. This IS the biggie. We save on runtime and code complexity, but we will have less ultimate flexibility. Simplicity is appealing though

With a custom class loader we can do something similar to shading, by allowing a dependency to pickup favoured classes from a configurable location - ie further up the search path, or via a new name.
This means:

more complexity in the run-time code
more management/deployment of dependencies (where are they put, what are they called)
search algorithm/classpath search list to be configured (or statically defined)
more code to test/support (classloader)
probably more confusing to debug (mitigated by good logging)

My current feeling is that the additional complexity of the dynamic classloader approach is not yet argued enough to improve on the simplicity of the shading approach.
Note also we didn't initially do shading as we were considering shading all classes. By use of 'provided' we can reduce this to a much smaller scope, meaning duplications are less a concern

Some interesting articles

https://medium.com/@akhaku/java-class-shadowing-and-shading-9439b0eacb13

dynamic class loading using reflection can be broken
debugging can still be tricky with shading
contains a gradle example :-)

I assume we are talking about the connector classloader mentioned here https://docs.oracle.com/cd/E19830-01/819-4721/beade/index.html

Hi @carstenmichel ,
I think your idea is interesting especially for integration connectors. I wonder if you go into more detail on how this would work in gradle / code, if we had a lib folder under an Egeria integration connector containing the 3rd party dependancies (or a jar with them all in) so these dependancies would be loaded only for this connector.

I'm going to reopen this.
In recent months I've hit, and seen others hit, multiple conflicts with connectors.

currently a bad connector can prevent the server from starting, or cause it to malfunction
using compileOnly where possible removes unnecessary classes/duplicates from the runtime classpath
keeping egeria & related libraries (implementation platform) at consistent versions helps - at least duplicates are then the same code
Deployment choices, like placing each connector technology in it's own container helps prevent conflicts between two very different environments
assembly of a chassis from the base jars (not uber) as part of a pre-deployment step can reduce/address some conflicts early on (re: cloud native discussions)

but none of these are complete solutions.
Spring classloading is more complex than base jvm, but does offer customization
(Interestingly an area where spring->microprofile may make a difference)
We need to have improved documentation - for developers, operators, but also I think we need to look again at classpath isolation.
opening and assigning to myself for now

The issue above seems common in application servers, or where plugin technologies are used. This is similar to egeria's use of connectors.
Firstly we need to place plugins out of the normal spring/java class loading path - this way egeria/spring code using the normal classloading approach won't find them.
We need a 'parent-last' classloader. This will load the class required by looking (first) in a custom location (configured by property, ie lib or extralib). If it does not find it, it will delegate up to the parent
When we load a connector we use this new classloader. We also configure the thread classloader to use it. Attempts to resolve a class within the connector resolve 'locally' - ie within the connector's jar, and only for classes that can not be found we defer to the parent & hence default behaviour
Of course if we then have many connectors & place them all in the same location, we'll still could get conflicts between the connectors, but we control that search in our code - so we'll look in an uber jar first. then - a connector specific libpath (by name) before finally delegating to parent.
It doesn't appear that spring will stop us doing this - but the approach needs validation and implementation. It could be local within the connector framework

This may be an opportunity to also add some additional audit logging at the time, depending on what we can see
ref: https://github.com/odpi/egeria-connector-xtdb/issues/472#issuecomment-1503263491


Future of vulnerability scanner....

So.... funny story..... we at 10up were building a wp-cli vulnerability scanner at the same time you were building this.  https://github.com/10up/wp-vulnerability-scanner.  Our tools do pretty much the same thing (I've been using both and like the way yours displays some information, but also like how ours can do checks on specific plugin and theme versions).  We started a conversation with Daniel Bachhuber about adding our vulnerability scanner to the package index and Daniel is preferring having a canonical solution rather than a bunch of different packages solving the same problem https://github.com/wp-cli/package-index/pull/98.  I think that approach makes sense, so I'm wondering if we can collaborate here on a single vulnerability/security wp-cli plugin going forward.  Not sure yet what that looks like, but we're committed to maintaining this and I think a combined wp-cli package with the functionality of both of our tools would be a great thing.
Let me know what you think.  @tott has been working on this with me and will be joining in the conversation as well.

Just wanted to weigh in that I'm happy to help out in any way I can. A couple of ideas I've had include:

Drafting guidelines / best practices for community packages.
Creating an organization (or using the existing WP-CLI organization) for packages maintained by multiple developers.

Open to suggestions!

Thanks @danielbachhuber and nice to get in touch again. Let's see what @markri thinks of this and see how we can best approach this.

@danielbachhuber @TheLastCicada
Definitely interesting! In my opinion this is what open source is all about :-)
I understand the need of a healthy index with some curation, although on the other hand I think it limits creativity. For now it seems that both packages accomplish the same thing, but its hard to say if it will stay that way. If we decide to "kill" one package in favour of the other it might also kill the motivational attitude for creating new features and possibilities of other packages.
I'd like to think big here, Packagist like). There will be many packages and a lot of these have similarities and some of them might be almost identical, but is that a problem? I'd prefer to let the end-user decide which package to choose. Eventually thinks like popular votes, number of downloads, active development and updates will decide which package is preferred by the community. (let it grow organically, but control the outer structure by building a platform that supports the end user in picking a package)
And of course, if a bigger (more automated) platform is the way to go; I would be glad to help out

@markri Thanks for the thoughts.
It might be that we agree to disagree, but I actually see Packagist (and the WordPress.org plugins directory) as hugely problematic from a user's perspective. Sure, there can be lots of options to choose from but, most of the time, the options aren't healthy, actively maintained projects. From a user's perspective, this is a horrible experience — "I have a problem I need a solution for, there are three options, each is in a state of disrepair, and I can even see when each project was created in response to an older one being abandoned".
For the WP-CLI Package Index, I'm actively addressing this problem. My expectation is that the listed packages meet or exceed the standards users have come to expect of WP-CLI. WP-CLI doesn't bundle two slightly differently implementations of the same command because that wouldn't make any sense at all. Similarly, in the package index, it makes more sense to have one actively maintained implementation, than it does two or three partially abandoned implementations. And, by making shared maintenance responsibilities one of the goals, we reduce the likelihood of abandonment through attrition.
With this being said, there are plenty of other distribution means (including installing packages directly from Github) for the bazaar approach to exist too.
At this point, I see some options as:

Pick markri/wp-sec as the canonical implementation of a plugin vulnerability check, and don't list the 10up implementation.
Pick the 10up implementation as the canonical, and delist markri/wp-sec.
Create a new wp-cli/security-command or similar repo for a new canonical implementation.
Start a conversation in wp-cli/wp-cli about drafting a set of package index guidelines, and proceed to a decision from there.

Please understand I don't mean personal offense here. I'm having the same conversation with a few different groups now (https://github.com/wp-cli/package-index/pull/90, https://github.com/wp-cli/package-index/pull/93, https://github.com/wp-cli/package-index/pull/95). Here are some things I've written on the topic in the past:

https://github.com/wp-cli/wp-cli/issues/3197
My condolences, you’re now the maintainer of a popular open source project

While I also see the points @markri outlined in terms of the spirit of open source and heaving a healthy set of choices I also need to agree with @danielbachhuber as I've seen way too many bad options being available in the public repositories making it hard for the average user to decide which option is best. In my opinion for this particular issue the solution seems to be simple to me as we're both trying to cover a pretty defined use-case. I think it would be best to just merge our efforts in a new repository which we all can contribute on. We could easily merge our feature set and code base and given that we're both able to address upcoming issues I also think it would be the best result for the community.

I don't want to offend anyone either and no offense taken :-)
First of all, I'd like to elaborate about my intentions with wp-sec, so we can understand each other better. Wp-sec came with a history (https://markri.nl/wordpress-cve-scanner/) which eventually resulted in wp-sec. So there is already quite some time in it from my side.
By creating this (with the the company I work for in mind), I also wanted it to be open source so others could use it too. Another reason (and I'm trying not be ashamed of it, but I'm confident enough that many people will recognize this) is to take some pride in it having my name mentioned somewhere to build up some authority. I have never seen repository contributions done anonymously, or even the option to do so, and I think that is a humble fee to ask for when publishing free software.
I have read your blog about open source projects and "first class citizens in wp-cli index", which is definitely worth reading and fully understandable. But I think it can also kill motivation for contributing so much needed new ideas to already existing open-source projects, which results in slow growing of the package index (but great quality).
This also results in a tough and sometimes even a rough job to be able to distinguish what's new (and is to be added to the package index) and what not. And what to decide between not so clear cases. Comparing code quality, functionality, intentions/aspirations, active development, maybe even people, etc. Maybe two different packages in the future will collide and things may become not so clear.
Another example; what to do if a new package comes into existence which is more feature rich and better than an existing package, because the new author found it easier to start from scratch than refactor and add features? Would it be "fair" to reject that, or would one kick out the old package in favour of the new one?
That's why I think that regulating is better than dictating (not that anyone is doing that right now, but there will surely be dilemmas in the future where decisions are needed).
For the current situation:
The middle path in this would seemingly be to create a new repository on which both parties work on, just to create equality between both parties. However, this takes a bit out of the fun and motivation for me. First of all the repository is no longer on my Github (which gives  me some authority) and my domain at http://wp-sec.org would also have to go.
Therefore, sorry to say, I choose my side (1st option, hope you all understand). This way we can still address the collaborative growth and the canonical approach. I suggest the native GitHub pull request workflow, in which I can create PR's on my own repo for others to review as well (if wanted).


Visual Studio: Path to debug adapter executable not specified.

Hi,
I am struggeling with Remotely debug Python code on Linux. I am following the instructions on this link:
https://docs.microsoft.com/de-de/visualstudio/python/debugging-python-code-on-remote-linux-machines?view=vs-2019
I have the following setup:

Windows 10 Pro installation with Visual Studio Community 2019, Version 16.8.4
Raspberry Pi 4 8GB - up to date installation running phython3.7 with debugpy version 1.2.1
Samba connection to the Raspberry is working

I followed the instructions on the above web-site. However when I attach to the process and start the debug process I get the following error "Path to debug adapter executable not specified." No additional hints.
I have tried two different Windows 10 systems. One Windows Pro 10 system was installed from scratch. Also I tried two newely installed Raspberry Pi4 installations with the default Raspberry Image (Debian, 2021-01-11). No change.
I am new to Visual Studio Community application. I am sure I am missing something. But I have no idea where to start my process of narrowing down the issue.
Help would be really appreciated.
Best
Juergen

@int19h I think this might be a debugger issue and not PTVS specific. What do you think?

@int19h I think this might be a debugger issue and not PTVS specific. What do you think?

It sounds like it's a problem with VS not properly locating the Python interpreter to spawn debugpy; if so, that would be a VS issue. I can take a look.

It sounds like it's a problem with VS not properly locating the Python interpreter to spawn debugpy; if so, that would be a VS issue. I can take a look.

ok thanks, I'll assign you to it then. Please let me know if you need anything from me on this.

ok thanks, I'll assign you to it then. Please let me know if you need anything from me on this.

hanks for taking a look. I am also thinking that some settings are not right at Visual Studio. Here some more datapoints of what I tried over the last days.
After rebooting all systems (especially the Raspberry) I took a look at what is running as python. So I have not started the actual python3 interpreter. Below the running processes.
pi@Raspb-Pi4-8G:~ $ ps -ef | grep python
pi         657     1  0 09:30 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi        1013  1007  0 09:45 pts/1    00:00:00 grep --color=auto python
However if I attach to the process in Visual Studio i am getting attaxhed process (see screen shot). And it is of course not working.

If I am starting on the Raspberry (python3 code.py) the processes are looking like this:
pi         657     1  0 09:30 ?        00:00:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi        1404  1055  6 10:49 pts/0    00:00:00 python3 RemoteTest.py
pi        1410     1  0 10:49 ?        00:00:00 /usr/bin/python3 /home/pi/.local/lib/python3.7/site-packages/debugpy/adapter --for-server 34341 --host <IP_ADDRESS> --port 5678 --server-access-token dbc5f14e47792d1e8d8eb77f07a78b531e7b72569cad2045fb0db93b7ec90371
pi        1426  1007  0 10:50 pts/1    00:00:00 grep --color=auto python
However there is no change in Visual Studio. This confuses me a bit.
Another datapoint. I have tried Visual Studio Code SSH approach and it works. I know you can't compare these approaches. But I wanted to share this information as well.

hanks for taking a look. I am also thinking that some settings are not right at Visual Studio. Here some more datapoints of what I tried over the last days.
After rebooting all systems (especially the Raspberry) I took a look at what is running as python. So I have not started the actual python3 interpreter. Below the running processes.
pi@Raspb-Pi4-8G:~ $ ps -ef | grep python
pi         657     1  0 09:30 ?        00:00:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi        1013  1007  0 09:45 pts/1    00:00:00 grep --color=auto python
However if I attach to the process in Visual Studio i am getting attaxhed process (see screen shot). And it is of course not working.

If I am starting on the Raspberry (python3 code.py) the processes are looking like this:
pi         657     1  0 09:30 ?        00:00:01 /usr/bin/python3 /usr/share/system-config-printer/applet.py
pi        1404  1055  6 10:49 pts/0    00:00:00 python3 RemoteTest.py
pi        1410     1  0 10:49 ?        00:00:00 /usr/bin/python3 /home/pi/.local/lib/python3.7/site-packages/debugpy/adapter --for-server 34341 --host <IP_ADDRESS> --port 5678 --server-access-token dbc5f14e47792d1e8d8eb77f07a78b531e7b72569cad2045fb0db93b7ec90371
pi        1426  1007  0 10:50 pts/1    00:00:00 grep --color=auto python
However there is no change in Visual Studio. This confuses me a bit.
Another datapoint. I have tried Visual Studio Code SSH approach and it works. I know you can't compare these approaches. But I wanted to share this information as well.

The process list in remote attach case is basically fake - it's something that PTVS needs to do because VS UI requires it, but it doesn't actually enumerate the processes running on the remote machine; it just shows a dummy process corresponding to the address/port being connected to, so that "Attach" can be clicked.

So the most immediate bug here is that the error message is just plain wrong. The real problem is that it couldn't connect to the socket at the specified address; but, instead of properly communicating the error, DebugAdapterRemoteProcess.Attach just returns null, which causes VS to show the message above.

@jschnorr Looking closer at your process list, it sounds like you're telling debugpy to listen on <IP_ADDRESS>. This would prevent connections from other machines.
Most likely, you're only specifying the port and not the host in --listen or debugpy.listen(), whichever one you're using - it defaults to <IP_ADDRESS> for host, for security reasons. To make it listen on all interfaces, do:
debugpy.listen(('<IP_ADDRESS>', 5678))

or via CLI
debugpy --listen <IP_ADDRESS>:5678

@AdamYoblick Looking at this:
https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-code-on-remote-linux-machines?view=vs-2019
It incorrectly suggests debugpy.listen(5678), which won't work for reasons described above. The docs need to be updated to reflect this.
That aside, should we treat this issue as specifically pertaining to the misleading error message in this scenario? Since, aside from the doc bug, that's the only real problem here.

Yeah it sounds like an error handling bug plus a documentation issue. I can try to fix the error handling, but I'm not sure how to update the official docs.

While we're at it - it might be better to tackle this before the "Attach" button is even hit, by making the list of processes not quite fake.
Back when PTVS used ptvsd 3, it wasn't. More specifically, the debug server was able to process an information request and respond with metadata (like process name and PID), which was then displayed in the list. So, if you entered the URL wrong, or if nothing was listening there, you'd get an error message at that point, and "Attach" wouldn't even be enabled because there'd be nothing in the process list.
When PTVS moved to ptvsd 5 / debugpy, this was dropped because there's no way to do a similar thing with them. Also, if I remember correctly, even simple port probing wouldn't work, because the debug adapter would simply stop running after the first connection went away.
But, I don't think that's true anymore. It should be okay to connect and then immediately disconnect now, I think. And debugpy already sends a telemetry message to the client, identifying its version:
D+00000.029: Client[1] <-- {
                 "seq": 2,
                 "type": "event",
                 "event": "output",
                 "body": {
                     "category": "telemetry",
                     "output": "debugpy",
                     "data": {
                         "packageVersion": "1.2.1"
                     }
                 }
             }

So this could be used to re-implement probing similar to how it worked in ptvsd 3 - it just needs some logic to open a DAP connection and parse incoming messages until it receives this one (it does not require any requests).
Furthermore, it would be fairly easy for debugpy to also send a custom event include more information - in particular, if it's running in attach mode managing some processes, it could include information about those processes. Then we could restore the original experience in full. I think this might be less confusing than the current behavior of always showing the dummy process, and then complaining on attach if there's no actual socket there.

This was really helpful. I was able to start the debugger but I ran into another issue. As advised I included the IP of the remote system and the debugger started. However my breakpoints are ignored!?
Maybe I am missing something. My workflow is

starting the actual Python script on the Raspberry. The script stops at the line debugpy.wait_for_client.
I start the debug process on Windows with "Attach to Process".

What happens then is: The Python scripts continues but is ignoring my breakpoints. As you can see in the screendump. If I click on one of the breakpoints the message comes up "The breakpoint will currently not been hit. Breakpoint in file which does not exist."
Well, the source file really exist. I am actually working directly via Samba on that file. Any suggestions?

This usually means that your path mappings aren't set up right - the debugger needs to know which directories on the remote machine correspond to which on local, since filenames alone are not sufficient to map.
I'm not sure how this is properly done in PTVS, though - in VSCode, it's in launch.json.

Well, I tried last night to figure out what the issue might be and where I can change potential mappings. Also tried Dr. Google but had zero luck. Anybody any suggestion what to try - at least try. I am currently 100% lost.

@jschnorr Looking closer at your process list, it sounds like you're telling debugpy to listen on <IP_ADDRESS>. This would prevent connections from other machines.
Most likely, you're only specifying the port and not the host in --listen or debugpy.listen(), whichever one you're using - it defaults to <IP_ADDRESS> for host, for security reasons. To make it listen on all interfaces, do:
debugpy.listen(('<IP_ADDRESS>', 5678))

or via CLI
debugpy --listen <IP_ADDRESS>:5678

But note that this should only be done if your network is secure, because anybody who is able to connect to that port, can effectively run arbitrary code on that machine!

@int19h Thank you so much. I've been looking for a solution to this problem for hours and found nothing useful until I read your suggestion. Thank you very much, I changed my "debugpy.listen(5678)" to "debugpy.listen(('<IP_ADDRESS>', 5678))" and it worked

Hi
Can you please provide more details on how to use breakpoints in this situation ( remote debugging python )
https://docs.microsoft.com/de-de/visualstudio/python/debugging-python-code-on-remote-linux-machines?view=vs-2019
I run the code on my remote machine ( a raspberry pi 4 board)
In Visual Studio 2019 ( on my windows 10 laptop ) it displays my remote entries in the VS Output window, but it does not display any variables in the Locals window.
Can you please provide some examples of how to use breakpoints, watch variables, status, etc.
Many thanks

@agribot2 It really should "just work" when you pause your app, either by using a breakpoint, or manually via the corresponding command on the Debug menu or toolbar. If not, can you please file a separate issue?


Is cesium.usd.plugins still needed as a separate extension?

With the ability to install via the Omniverse extension manager, it's somewhat cumbersome for users to make sure they have the correct version of cesium.usd.plugins installed alongside cesium.omniverse.  Extension manager does not currently support automatically installing the correct version of a depedency that we are aware of.
This begs the quesiton - do we actually need cesium.usd.plugins to be a separate extension?  It would be great if it could be combined from a UX point of view.

After an attempt to fix this, it doesn't seem like this is technically possible. See notes in https://github.com/CesiumGS/cesium-omniverse/pull/685/#issuecomment-1943944367.


Please add BOM entry for the TFT

Thanks for sharing your design.  I couldn't find the TFT you are using in the BOM. Can you please add it with model number or a link to a vendor?
(By TFT I mean the entire TFT subassembly, not just the TFT or touch controller ICs).
Thanks.

The same problem here ... couldnt find the TFT :-(
Could you please add a link, where to find it ?

Hi @zapta and @hagbardZ sorry for the late reaction. The screens are sold under all kinds of part numbers. But I did find them on AliExpress, if you search for "ILI9488 ft6236" you can find them. I wish I could make it easier and give you a part number but it takes some searching.
Make sure the pinout described matches that of the FPC connector of the screen and touch controller:

There are two types. One with a short flex PCB with the touch controller and one with a long one. You will need the one with the SHORT flex PCB: