Use pre-commit workflow from python-build

Codecov Report

Merging #185 (93546b2) into main (7718f0e) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##              main      #185   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           21        21
  Lines          714       714
  Branches        82        82
=========================================
  Hits           714       714

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 7718f0e...93546b2. Read the comment docs.


Requests to the Pushover API will fail if the the contents of the user key file or token file end with a newline character

What did you do?
I wrote my Pushover user key and app token to files using vim (which adds a newline to the end of each file by default) and set user_key_file and token_file in alertmanager.yml to point to those files.
What did you expect to see?
Alertmanager should have successfully sent alerts to Pushover, with a notification appearing on my phone.
What did you see instead? Under which circumstances?
When Alertmanager tried sending a notification to Pushover, Pushover returned an HTTP 400 error from its API and said that my application token was invalid.
Workaround
Either write the secrets to each file without any newlines using echo -n secret > secret_file.txt or after writing the files with newlines strip the newline character from each file using truncate --size=-1 secret_file.txt.
Environment

System information:

Linux 6.5.6-4k-00001-g6e5115d7f640 ppc64le

Alertmanager version:

alertmanager, version 0.26.0 (branch: HEAD, revision: d7b4f0c7322e7151d6e3b1e31cbc15361e295d8d)
  build user:       root@9623f4d745ac
  build date:       20230824-11:10:34
  go version:       go1.20.7
  platform:         linux/ppc64le
  tags:             netgo

Prometheus version:

prometheus, version 2.48.1 (branch: HEAD, revision:<PHONE_NUMBER>8f0d6be310c9d16fb48293c45c9310)
  build user:       root@bd93f1a7309d
  build date:       20231208-23:33:20
  go version:       go1.21.5
  platform:         linux/ppc64le
  tags:             netgo,builtinassets,stringlabels

Alertmanager configuration file:

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 1h
  receiver: 'pushover'
receivers:
  - name: 'pushover'
    pushover_configs:
      - user_key_file: 'pushover_user_key.txt'
        token_file: 'pushover_token.txt'
        priority: '0'
inhibit_rules:
  - source_match:
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname', 'dev', 'instance']

Logs:

ts=2023-12-18T04:35:54.049Z caller=dispatch.go:352 level=error component=dispatcher msg="Notify for alerts failed" num_alerts=1 err="pushover/pushover[0]: notify retry canceled due to unrecoverable error after 1 attempts: unexpected status code 400: {\"token\":\"invalid\",\"errors\":[\"application token is invalid, see https://pushover.net/api\"],\"status\":0,\"request\":\"9eaadfe6-562e-4eae-9ed9-979374db4c11\"}"

Is alertmanager unmaintained?
I had the same issue with version="(version=0.26.0, branch=HEAD, revision=d7b4f0c7322e7151d6e3b1e31cbc15361e295d8d)". The workaround mentioned by @cyrozap works but ugh.


[REQ] Change roblox's native FPS cap options

Acknowledgement of preliminary instructions

[X] I have read and acknowledged the preliminary instructions.

What idea do you have?
i'm gonna just say it instead of yapping.
so, bloxstrap can change the framerate and lock it, but you can't change it to a custom fps mid-game
when you use the framerate changer, it changes your default framerate and you can't change it, try to make it work

We can't change the FPS cap options, Sorry about that.


Create a scivision exercise for the REG connections workshop @ Turing

See https://github.com/alan-turing-institute/Hut23/issues/1183#issuecomment-1188866968
This could include/overlap with:

#235
#236
#231

Hi @edwardchalstrey1 - see reply in the hut23 issue (will be private for non-REG people) - we should bring this up next meeting with @scotthosking @quantumjot!

running this week


Always set ResourceVersion="" may make etcd overload

Pre-requisites

[X] I have double-checked my configuration
[X] I have tested with the :latest image tag (i.e. quay.io/argoproj/workflow-controller:latest) and can confirm the issue still exists on :latest. If not, I have explained why, in detail, in my description below.
[X] I have searched existing issues and could not find a match for this bug
[ ] I'd like to contribute the fix myself (see contributing guide)

What happened? What did you expect to happen?
https://github.com/argoproj/argo-workflows/pull/11343
I noticed that in this pr, ResourceVersion= "" is permanently set in wfInformer, and I think this change will cause the etcd load to be too high.
see this part of code below, if  ResourceVersion= "" K8s apiserver will always request etcd directly.
func (c *Cacher) GetToList(ctx context.Context, key string, opts storage.ListOptions, listObj runtime.Object) error {
        resourceVersion := opts.ResourceVersion
	pred := opts.Predicate
	pagingEnabled := utilfeature.DefaultFeatureGate.Enabled(features.APIListChunking)
	hasContinuation := pagingEnabled && len(pred.Continue) > 0
	hasLimit := pagingEnabled && pred.Limit > 0 && resourceVersion != "0"
	if resourceVersion == "" || hasContinuation || hasLimit || opts.ResourceVersionMatch == metav1.ResourceVersionMatchExact {
		// If resourceVersion is not specified, serve it from underlying
		// storage (for backward compatibility). If a continuation is
		// requested, serve it from the underlying storage as well.
		// Limits are only sent to storage when resourceVersion is non-zero
		// since the watch cache isn't able to perform continuations, and
		// limits are ignored when resource version is zero
		return c.storage.GetToList(ctx, key, opts, listObj)
	}

Version(s)
3.4.9
Paste a minimal workflow that reproduces the issue. We must be able to run the workflow; don't enter a workflows that uses private images.
None

Logs from the workflow controller
None

Logs from in your workflow's wait container
None

If relist options , case options.ResourceVersion != "" && options.ResourceVersion != "0": pager.PageSize = 0. It's will set options.Limit=0, and than you will set   ResourceVersion=''. So when do relist, it lists all the etcd data.
go func() {
			defer func() {
				if r := recover(); r != nil {
					panicCh <- r
				}
			}()
			// Attempt to gather list in chunks, if supported by listerWatcher, if not, the first
			// list request will return the full response.
			pager := pager.New(pager.SimplePageFunc(func(opts metav1.ListOptions) (runtime.Object, error) {
				return r.listerWatcher.List(opts)
			}))
			switch {
			case r.WatchListPageSize != 0:
				pager.PageSize = r.WatchListPageSize
			case r.paginatedResult:
				// We got a paginated result initially. Assume this resource and server honor
				// paging requests (i.e. watch cache is probably disabled) and leave the default
				// pager size set.
			case options.ResourceVersion != "" && options.ResourceVersion != "0":
				// User didn't explicitly request pagination.
				//
				// With ResourceVersion != "", we have a possibility to list from watch cache,
				// but we do that (for ResourceVersion != "0") only if Limit is unset.
				// To avoid thundering herd on etcd (e.g. on master upgrades), we explicitly
				// switch off pagination to force listing from watch cache (if enabled).
				// With the existing semantic of RV (result is at least as fresh as provided RV),
				// this is correct and doesn't lead to going back in time.
				//
				// We also don't turn off pagination for ResourceVersion="0", since watch cache
				// is ignoring Limit in that case anyway, and if watch cache is not enabled
				// we don't introduce regression.
				pager.PageSize = 0
			}

			list, paginatedResult, err = pager.List(context.Background(), options)
			if isExpiredError(err) || isTooLargeResourceVersionError(err) {
				r.setIsLastSyncResourceVersionUnavailable(true)
				// Retry immediately if the resource version used to list is unavailable.
				// The pager already falls back to full list if paginated list calls fail due to an "Expired" error on
				// continuation pages, but the pager might not be enabled, the full list might fail because the
				// resource version it is listing at is expired or the cache may not yet be synced to the provided
				// resource version. So we need to fallback to resourceVersion="" in all to recover and ensure
				// the reflector makes forward progress.
				list, paginatedResult, err = pager.List(context.Background(), metav1.ListOptions{ResourceVersion: r.relistResourceVersion()})
			}
			close(listCh)
		}()

What do you think of the following modification
modification
Add Limit=500 when set options.ResourceVersion = ""
if options.Limit == int64(0) {
		options.Limit = int64(500)
	}

After modification
func (wfc *WorkflowController) tweakListRequestListOptions(options *metav1.ListOptions) {
	labelSelector := labels.NewSelector().
		Add(util.InstanceIDRequirement(wfc.Config.InstanceID))
	options.LabelSelector = labelSelector.String()
	// `ResourceVersion=0` does not honor the `limit` in API calls, which results in making significant List calls
	// without `limit`. For details, see https://github.com/argoproj/argo-workflows/pull/11343
	options.ResourceVersion = ""
	if options.Limit == int64(0) {
		options.Limit = int64(500)
	}
}

Could someone help review this? https://github.com/argoproj/argo-workflows/pull/13466 Thanks!

Setting WatchListPageSize can better ensure the use of pagination queries.
Below code is a part of reflector.go.
                        ...
			switch {
			case r.WatchListPageSize != 0:
				pager.PageSize = r.WatchListPageSize
			case r.paginatedResult:
				// We got a paginated result initially. Assume this resource and server honor
				// paging requests (i.e. watch cache is probably disabled) and leave the default
				// pager size set.
			case options.ResourceVersion != "" && options.ResourceVersion != "0":
				// User didn't explicitly request pagination.
				//
				// With ResourceVersion != "", we have a possibility to list from watch cache,
				// but we do that (for ResourceVersion != "0") only if Limit is unset.
				// To avoid thundering herd on etcd (e.g. on master upgrades), we explicitly
				// switch off pagination to force listing from watch cache (if enabled).
				// With the existing semantic of RV (result is at least as fresh as provided RV),
				// this is correct and doesn't lead to going back in time.
				//
				// We also don't turn off pagination for ResourceVersion="0", since watch cache
				// is ignoring Limit in that case anyway, and if watch cache is not enabled
				// we don't introduce regression.
				pager.PageSize = 0
			}

			list, paginatedResult, err = pager.List(context.Background(), options)
			...
		}()


[Accessibility]A11y_VSCode_AddConfiguration_Screenreader: Jaws is not reading the value of expanded "AddConfiguration" option

Environment Details:
VSCode Version : 1.24.0
OS Version : Win10
Additional Details:
Screenreader,JAWS[18.0.5038],MAS1.3.1
Repro Steps:
1.Launch VS Code while JAWS is ON.
2.Navigate to Debug(Alt+D) menu option and select "Add Configuration" from dropdown.
3.Observed that,JAWS is not reading value of expanded "AddConfiguration" option.
Actual:
Instead of reading selected value of expanded "AddConfiguration" JAWS is reading launch.json and "Add configuration" button name.
Expected:
JAWS should reads the selected value of expanded "AddConfiguration" such as "{}Node.js:Attach".
Recommendations:
Refer below link which is repository of bug fixes code snippets:
https://microsoft.sharepoint.com/teams/msenable/mas/Pages/browse-fixes.aspx
User Impact:
User will not able to understand the value of expanded "AddConfiguration" option.
MAS Reference:
https://microsoft.sharepoint.com/:w:/r/teams/msenable/_layouts/15/WopiFrame.aspx?sourcedoc={54f28d1f-a2d1-4dcd-84e1-5c9b87e8aba4}
Attachment For Reference:
[Accessibility]A11y_VSCode_AddConfiguration_ScreenReader.pptx
Does this issue occur when all extensions are disabled?: Yes

Closing this issue as it's only observed in JAWS, and this isn't strictly needed to meet MAS C compliance.


Improve Haunt Instructions Message

Don't display the title of the haunt - instead make the title something like "Traitor" and "Hero."
Make it more clear what your goals are. (Number of keys, what the heroes' are trying to do)
Add images (pictures of keys, of the traitor's forms, etc.)

It still needs to be styled better.


Driver class support

Describe the feature
Since the Driver is an interface, it is almost possible to write a class to extend it, then calling new SomeDriver() instead of invoking the DriverFactory.
The only blocker now is that asyncCall() dropped this for class methods.
TBH, I didn't get the point of asyncCall() here, it wraps a value/function into a Promise, which doesn't seem necessary since await can accept a non-promise?
Additional information

[X] Would you be willing to help implement this feature?

Hi and thanks for suggestion. For now it is non-goal because object syntax allows extending behavior on core-level rather than driver-level.


Unpredictable 'valueBeforeUpDown' when using keyboard + mouse together

Not sure if this is a bug or intended behavior, but it seems odd to me. You can see it in your codepen here: http://codepen.io/moroshko/pen/PZWbzK

Focus on the input field
Type c, and wait for suggestions to appear
ArrowDown to any option
Mouseover/move over the suggestion list

Observed behaviour: You should notice the one you have highlighted has the whole word highlighted now, and the input value change as well (but the suggestions don't update to reflect this).
Expected behaviour: Not quite sure, but I feel like it should behave the same as key up/down and not update the input value. Maybe valueBeforeUpDown should not be updated if it's via mouseevent.
Let me know if you think this is a bug or not, or maybe an unimportant edge case. I am doing some extra stuff on mouseenter/leave of each suggestion, so it's quite noticeable for me.
Caused by a combo of:
onMouseLeave: this.resetFocusedSuggestion,
...
resetFocusedSuggestion = () => {     this.props.updateFocusedSuggestion(null, null);   };
Since it's null now, it grabs the input value instead of the correct previous value.
    const renderSuggestionData = {       query: (valueBeforeUpDown || value).trim()     };
If onSuggestionFocused is implemented, this could be squashed at the same time.

@emersonyu First of all, thanks a lot for a properly submitted issue. This is already a great contribution to this project!
This is clearly a bug. valueBeforeUpDown should not change to null on mouse leave in this case.
I hope to find time to fix this soon.

This is fixed in v7.0.1 now.

Thanks @moroshko! Will test it out this week and let you know if there are any other issues related to this.


feat/hide conf

When passed initialitization parameter, password can now be masked but then recovered  within Protocol module just before the DB connection operation.

please rebase from kobil'

I just hope it will be merged to upstream one day haha, restored the branch. also there is a "kobil" branch for all our stuff, @hauleth 	could you please revert this merge to sessions and merge to kobil instead. What you think about that?

@deadtrickster maybe merge all to kobil branch?

yes that's the idea


feat: add gfm markdown formatter

This is desired to have access to a markdown formatter that can render on both
Github and Backstage.
I have searched for Go based tools but unfortunately couldn't find one that fulfilled the requirements of:

easy to use
can recursively format all .md files in repo.

@DavyJ0nes Did you run into issues with the existing formatter?

@DavyJ0nes Did you run into issues with the existing formatter?

Yeah, mainly with how it renders sublists and handles numbers in headings.
Sublists render fine in Github but in Backstage the nesting is removed.


[chore] Add checkfile to versions.yaml

Why
- go.opentelemetry.io/build-tools/checkfile was missing which is needed during the release process.
What

Update the missing entry in versions.yaml.
Add versions.yaml verification to GH workflow.
Makefile so that it not happens next time even (safe-guard if e.g. CI does not catch the problem).

FYI this will conflict with https://github.com/open-telemetry/opentelemetry-go-build-tools/pull/380


Is there a way to use keybindings with the CMD key?

This is more of a question. Is there a way on a Mac to map the CMD key for saving and quitting etc? I couldn't seem to put CMD-s for example in the keybindings file.

This is not really possible since the terminal uses cmd shortcuts for itself and does not forward those events to applications running within the terminal.

@zyedidia do all terminals do this? I'm also interested in this, as it'd allow me to share some of my keybindings between micro and vscode

I've looked into the settings for iTerm2, and it seems like under Preferences->Keys->Remap Modifiers you can choose to remap left command to left control, essentially giving you the desired effect.


Clean up and unify CI configs

This repo has both Travis and Google Cloud Builds CI configurations, but there are some differences:

Travis uses -race when it runs the tests, cloudbuilds does not.
Cloudbuilds uses a different shell snippet to check for 100% coverage than travis uses. They should use the same.

-race was not used on cloudbuilds because it would fail:
Step #1 - "test": Running: go test -v -race -coverprofile=coverage.out -covermode=atomic ./...
Step #1 - "test": # runtime/race
Step #1 - "test": race_linux_amd64.syso: In function `__sanitizer::GetArgv()':
Step #1 - "test": gotsan.cc:(.text+0x4183): undefined reference to `__libc_stack_end'
Step #1 - "test": race_linux_amd64.syso: In function `__sanitizer::ReExec()':
Step #1 - "test": gotsan.cc:(.text+0x9797): undefined reference to `__libc_stack_end'
Step #1 - "test": race_linux_amd64.syso: In function `__sanitizer::InternalAlloc(unsigned long, __sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator32<__sanitizer::AP32> >*, unsigned long)':
Step #1 - "test": gotsan.cc:(.text+0xaac1): undefined reference to `__libc_malloc'
Step #1 - "test": race_linux_amd64.syso: In function `__sanitizer::InternalRealloc(void*, unsigned long, __sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator32<__sanitizer::AP32> >*)':
Step #1 - "test": gotsan.cc:(.text+0xca20): undefined reference to `__libc_realloc'
Step #1 - "test": race_linux_amd64.syso: In function `__sanitizer::InternalFree(void*, __sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator32<__sanitizer::AP32> >*)':
Step #1 - "test": gotsan.cc:(.text+0x66e8): undefined reference to `__libc_free'
Step #1 - "test": collect2: error: ld returned 1 exit status

That is because the cloud-builder is an alpine image on which the race detector does not work because alpine is not glibc-based.
To make that work, we'll need to switch to a debian-based go cloud-builder.

Well, there's a downside to force pushes. Look at all that noise! Sorry about that folks.


Add options to support xfs and configurable timeout, fix #84, #73, #99

Two commits: one for supporting xfs with newly added option dm.fs, another for making the timeout value for executing commands configurable.

#95

Merged, thanks!


Eager loading and preload! method

Hi!
First of all thank you for providing a fresh approach to exporting data. It's just the kind of thing I was looking for. Though very young, this gem has found a place in our controllers and rake tasks dedicated to output data from our DB.
Still... youngness, while sometimes good for freshness, is also sometimes a pain for documentation and comprehension of intents. I had trouble sorting out the necessity of overriding the object_class method, to let specifying whatever-we-wanted-for-export-class-name.
And now I have another bad time with eager-loading. I want to export customers data with a lot of nested classes, so I naively pass a eager-loaded scope to my exporter:
scope = Customer.where(id: customer_ids).includes(:addresses, :orders => :order_items)
MyCustomerExport.new(scope).to_xlsx.read

but it does not seems to works by looking at my dev logs.
I also noticed an empty preload! method in the export.rb but I don't really know what to do more for the objects to use eager loading when exporter parses the objects. Any tips on that?
Sorry for not being very clear (not english native). I tried to figure out how Xport::Export class works, but it seems to be much more meta than I can't take! ;)

Hi, sorry for the long delay, this project is still young and was extracted from one of our private projects, so there are some undocumented/internal features, like preload!, that could be used like:
class MyCustomerExport < Xport::Export
  def preload!
    @objects = @objects.includes(:addresses, :orders => :order_items)
  end
end

Anyway, your example looks ok and it should have preloaded the objects.
Do you receive an error or the preloading doesn't work?

I'm not quite sure how to describe this but even before passing scop, even within preload! method, my "included" scope requests seems to be un-optimised.
When I call sub-elements inside block (or defined method), eager loading seems to be bypassed. I looked again in the gem's code, that should not be occurring as there's a object.each_with_index involved that should keep eager loading for each elements.
Maybe it's a too complex one (lots of nested elements needed for export calculations). I'll try in another simpler export.


Replace describeCompat functions with describeCompat with compat parameter

Description
In an effort to pave the way for introducing a minimum compatibility version in future changes, this PR refactors existing test suite functions.
Replaced the previous describeFullCompat, describeNoCompat, and describeLoaderCompat with a more unified describeCompat function. This new function takes a compatibility level as a parameter, allowing for more flexibility in specifying the desired level of compatibility.
This change serves as an intermediate step, preparing the ground for enabling the minimum compatibility version to the added parameter in subsequent updates.
Currently, new parameter type is not yet well defined but will be in next update
#AB4597

Awesome work Daniel! This will be much better going forward IMO. Left a couple comments about cleanup/docs but overall looks good 🙂

+1. This is great!


Add new fieldData prop for custom OperatorSelector and ValueEditor components

Fixes #91.

Codecov Report

Merging #107 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #107   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          13     13
  Lines         230    231    +1
  Branches       21     21
=====================================
+ Hits          230    231    +1

Impacted Files
Coverage Δ

src/Rule.jsx
100% <100%> (ø)
: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 7596988...e56954e. Read the comment docs.


Please elaborate what this does.

Hey, I came across this npm module in the react-boilerplate repo. Can someone elaborate on what problem it solves and how it solves them and how things were done before this module. Just a brief explanation. Thank you.

@ax-hd  following stackoverflow question explains what this does:
https://stackoverflow.com/questions/14626636/how-do-i-shutdown-a-node-js-https-server-immediately

@isaacs ☝ good to close?!

In short: it lets you destroy a server and sever all open connections.  server.close() just stops accepting new connections, it doesn't destroy any existing open connections.


Portfolio Website

Portfolio: Mobile-menu
-The mobile menu looks good with all javascript functionality working.
-design for the menu is responsive on all smaller screens.
-Javascript code is well aligned with the help of eslint.
-Links haven't been added to any social media.
😀

I like the approach used by creating a div separate for the mobile menu😎


Severe TPU/CPU behaviour discrepency

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):No
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:No
TensorFlow installed from (source or binary): pip
TensorFlow version (use command below): 2.1.0-dev20191203
Python version: 3.5
GPU model and memory: TPU (nightly-2.x)

Describe the current behavior
When training using a TPU backend, if a @tf.function function code is defined before connecting to a TPU cluster. Calling the function (as Dataset.map(function)) results in a python kernel crash, without any errors or other info.
This is especially severe (IMHO), since, as the training code base grows, more autograph functions are defined in modules instead of on the main program. As it's natural to import modules at the start of the program, if the TPU connection is initiated after the imports, using the @tf.fucntion code defined in the modules results in a kernel crash.
If the same code is, however, being run just on the CPU, it works as expected.
This leads to a somewhat frustrating experience of everything working on a CPU dev env, and then crashing inexplicably when connecting to a TPU.
The unintuitive solution is to run the TPU connection boilerplate before any imports.
Describe the expected behavior

connecting to a TPU shouldn't create an implicit scope, if a scope is required it should be with a with idiom
It should be better documented if all autograph function definitions should be defined after connecting to a TPU
If a code executed within a TPU scope depends on a code defined outside, it should fail gracefully and informatively (not crash the kernel)

Code to reproduce the issue

Fail case:
import tensorflow as tf

@tf.function
def test_func(a):
    return a**3

train, test = tf.keras.datasets.fashion_mnist.load_data()
images, labels = train
images = images/255
ds = tf.data.Dataset.from_tensor_slices((images))

TPU_IP = '<IP_ADDRESS>' #this requires a working nightly-2.x TPU cluster (2v-8)
tpu_address = 'grpc://' + TPU_IP + ':8470'
resolver=tf.distribute.cluster_resolver.TPUClusterResolver(tpu=tpu_address)
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)

dsf=ds.map(test_func)

Working case:
import tensorflow as tf

TPU_IP = '<IP_ADDRESS>' #this requires a working nightly-2.x TPU cluster (2v-8)
tpu_address = 'grpc://' + TPU_IP + ':8470'
resolver=tf.distribute.cluster_resolver.TPUClusterResolver(tpu=tpu_address)
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)

train, test = tf.keras.datasets.fashion_mnist.load_data()
images, labels = train
images = images/255
ds = tf.data.Dataset.from_tensor_slices((images))

@tf.function
def test_func(a):
    return a**3

dsf=ds.map(test_func)

The reproduction code doesn't use imports, but
@tf.function
def test_func(a):
    return a**3

Would typically run as part of the import code, and not the main program.
Other info / logs
No error logs produced

I’m told that this issue will be resolved in a recent release of TF TPU runtime, probably next week.
Get in touch with your GCP solution or technical support team to confirm.

Thank you for the update!
As for myself, I can get by with using the aforementioned solution of initiating connection before imports.
But its good to know that a formal fix is coming soon.
Best regards.

Sorry I did not take a closer look; your problem seems a different one. Btw I’m not related to Google so take my advice at your discretion.

To my knowledge, strategy = tf.distribute.experimental.TPUStrategy(resolver) will help you get into the correct device scope because TPU is always the remote client.
@rxsang as expert on this.
Probably need creating a TPUStrategy at the beginning.

The reason is because in TPU case is a 2VM environment (client + Cloud TPU), there are lots of things happening in the initialization time. E.g. in experimental_connect_to_cluster we will enter into the tpu worker device scope, because we expect everything to happen on the tpu worker rather the coordinator/client, otherwise the performance may be bad. Thus we actually expect user always put the TPUStrategy creation and initialization code in the beginning of the program. I will try to make the documentation better.

@rxsang , Thank you for the information.
I don't doubt that the interaction between the TPU VM and the client VM is very complicated. but that was my meaning of 'implicit' scope.
In this scenario, I believe it would be better to force all commands to run within an explicit scope, with the pythonic with idiom, this greatly reduces the chance for strange errors that fall between the cracks of the 2 VMs.

Your observation is correct. There are two scopes here: the strategy scope and the default device scope. For strategy scope, we expose it to the user and would like user to handle that. For default device scope, currently it is set in tf.config.experimental_connect_to_cluster(resolver), and you can always set tf.config.experimental_connect_to_cluster(resolver, make_master_device_default=False) to disable entering into scope automatically. But that means you may have to put your code in a "with tf.device("/job:worker:1"):" scope, and that has to be after initialization code as well. Because before the experimental_connect_to_cluster, you don't see any remote devices. That's why we handle it for users, because we think it is troublesome for users to handle the default device scope themselves.
I'm still not clear why this is a scope issue, my understanding is that you are trying to build something like dataset/tf.function before TPU initialization, the expectation is users should always do TPUStrategy creation and initialization first.

@rxsang
I think some of it comes down to miscommunication.
I'm a relatively new TF user, joined after 2.0, so I may be unaware of some of the intricacies of TF, especially in distributed settings. I followed the documentation guides, and though I might have missed it, I haven't seen such an expectation ("the expectation is users should always do TPUStrategy creation and initialization first."). I only realized it after encountering these crashes.
While I personally would prefer an explicit scope definition if its required, I can certainly understand the design decision. but it should be better communicated that it should be done first, and before even the imports.
But the other part of the issue is that it crashes (the whole python kernel) ungracefully and without any indication of the reason.
If I had some exception information, indicating the unavailability of certain definitions on the device, it would have been much faster to deal with.
Thanks!


请求新功能 南瓜怪人

左键攻击x几率触发 让目标（僵尸+骷髅）的头部装备变成南瓜 同时附加LVy的凋零效果z秒

The idea is to give zombies/skeletons pumpkin heads when triggered by combat that kill after a set delay as far as I could gather.

Since the wither effect can be achieved with PowerPotionHit. Only the pumpkin head effect was implemented in PowerPumpkin.


Random tiles ignored when rendering

I'm able to replicate this issue in release build of .studio, final rendering.
Attached are project archive and saved image.
Bug doesn't show up on each rendering, but if I render several times I definitely get missing tiles, sometimes more sometimes less.

test_missing_tiles.zip

I don't, I think yours are differente related bug. The bug I refered to is when I get total black tiles, material independant.

@usakhelo When that happens, do you have any particular message in the log panel? Warnings or errors?

Sadly I cannot reproduce either using appleseed.studio from master branch in Release mode.

Nothing unusual in log panel.
I'm getting missing tiles on two different machines. Strange that you can't reproduce. I have to run render several times though.. May be not great way to reproduce something.

This is really weird, I've never seen this problem. Is it only happening with OSL materials? How's the frequency of it happening varying with the number of threads? Does it happen with only 4, 2 or even 1 thread? Does it happen with only 1 spp?
I don't recall if you're building appleseed yourself or not, I think you are. If you are, you could try with a debug build of appleseed. It will be much slower but maybe you'll catch something.

It happens on subsurface osl material, when Profile is Better Dipole. This is how it looks sometimes:

I've tried with one thread (set CPU cores to 1 in max plugin) and I coudn't get missing tiles again.
But I got different look several times, much less frequently:

On debug it happens less frequently, probably never seen on debug build. I can't reproduce it in studio on debug build.

Does it only happen with OSL SSS? What about non-OSL SSS?

But I got different look several times, much less frequently

That looks like it's entirely missing the BSSRDF part of the material. So it would not be missing tiles, it's just that some tiles (in fact, some entire threads) don't consider the BSSRDF at all, or fail to sample it.

I only that bug only with sss materials.

I don't know how to replicate the original general bug. The one when I get totally black tiles, as if it were ditching pixels. It only appears once in a while and it's more frequent on my 12 threads pc than my 4 threads pc work.

Seems like it only happens with the uniform pixel sampler.
With the adaptive tile sampler I haven't seen this bug.

Correct, mango. Even though the bug is still there with the uniform pixel sampler

Frang also found out that the bigger the tile size, the more likely tiles are gonna be missing. Can you guys confirm that?
What I'm planning to do at some point when I have time (but feel free to steal the idea and do it yourself) is to wrap the Max plugin's tile callbacks with try/catch and write a log message if any exception occurs. I have the feeling that there's some kind of exception that kills the tile callback.

I'll try with bigger tile sizes. Remember we are talking about two different bugs in this thread: SSS and general rendering black tiles.


Performance: Checkout

This PR improves the performance of creating checkouts:

Optimize checking stock quantities before creating new checkout
Use bulk inserts to create new checkout lines instead of creating them one by one.
Optimize fields in Checkout type returned as a result of the checkoutCreate operation
Change plugin signatures to receive data from arguments instead of making database queries
Todo:
Optimize is_shipping_required functions
Optimize get_total_weight functions
Optimize completing checkout
Fix all "fixme's" and "todo's" in code
use CheckoutLineInfo in calculate_checkout_line_totals
refactor get_discounted_lines in saleor/checkout/utils.py

Impact

[ ] New migrations
[ ] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations
[ ] Documentation needs to be updated

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[ ] The changes are tested
[ ] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

I would love to test this merge request as early as possible :) tell me, when you are ready for feedback.


Automated cherry pick of #2293: baremetal: raid disk inode inconsistent due to mkfs.ext4 largefile option

Cherry pick of #2293 on release/2.12.
#2293: baremetal: raid disk inode inconsistent due to mkfs.ext4 largefile option

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/2.12@a2e0cd9). Click here to learn what that means.
The diff coverage is 0%.

@@              Coverage Diff               @@
##             release/2.12   #2295   +/-   ##
==============================================
  Coverage                ?   7.07%
==============================================
  Files                   ?     452
  Lines                   ?   71318
  Branches                ?       0
==============================================
  Hits                    ?    5049
  Misses                  ?   65852
  Partials                ?     417

Flag
Coverage Δ

#aFlag
7.07% <0%> (?)

Impacted Files
Coverage Δ

pkg/baremetal/utils/disktool/disktool.go
0% <0%> (ø)

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 a2e0cd9...ac03dc8. Read the comment docs.

/lgtm
/approve


Tooltip + Modal Fixes

Tooltip + Modal Fixes

This update fixes some Tooltip and Modal behaviour and interaction. The common fix for both would be adjustment made to Portal, which controls the mounting mechanism for these components.
Other adjustments were made to Tooltip to ensure the arrow color renders correctly, as well as removing duplication (which only affected React 16 environments).
The Tooltip story was much improved with Artboard and Knobs to provide a better QA environment.

Pull Request Test Coverage Report for Build 1413

3 of 3 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 1409:
0.0%

Covered Lines:
5464

Relevant Lines:
5464

💛  - Coveralls


Option to build "html rendered output" into a json file and store in /data directory (for Svelte and React)

It would be nice to be able to produce the html rendered {{ .Content }} and have it stored in a json file in the /data directory.
It would make it easier for hugo to inject data into client side framework projects (i.e. svelte/react pages that need to pull the data using javascript).
I didn't understand if this page explained if it was able to do it: https://gohugo.io/templates/output-formats/

Does this proposal come from a specific need/use case you have?

yes

I've actually paid a super talented front-end developer to make the most awesome documentations page for a project I'm working on. He is not very familiar with Hugo and is looking for every excuse to not use it.
I am hoping to build the theme and make it publicly available in the themes page because the current documentations themes are getting a bit stale and/or unmaintained.

Infinite scrolling or infinite "next" behavior is typically accomplished by enabling the JSON output format and creating a simple template. The published site would have a structure like this:
public/
├── posts/
│   ├── post-1/
│   │   ├── index.html
│   │   └── index.json
│   ├── post-2/
│   │   ├── index.html
│   │   └── index.json
│   └── index.html
└── index.html

public/posts/post-1/index.json
{
  "content": "\u003cp\u003eHence the scientific conception of the universe repels many people. They are not equal to it. To think of life as involved in the very constitution of matter itself is a much harder proposition than to conceive of it as Bergson and Sir Oliver Lodge do, as an independent reality. The latter view gives the mind something more tangible to lay hold of. Indeed, science gives the mind nothing to take hold of. Does any chemical process give the mind any separate reality to take hold of? Is there a spirit of fire, or of decay, or of disease, or of health?\u003c/p\u003e\n\u003cp\u003eBehold a man with his wonderful body, and still more wonderful mind; try to think of him as being fathered and mothered by the mere mechanical and chemical forces that we see at work in the rocks and soil underfoot, begotten by chemical affinity or the solar energy working as molecular physic, and mothered by the warmth and moisture, by osmosis and the colloid state\u0026ndash;and all through the chance clashings and groupings of the irrational physical forces. Nothing is added to them, nothing guides or inspires them, nothing moves upon the face of the waters, nothing breathes upon the insensate clay. The molecules or corpuscles of the four principal elements\u0026ndash;carbon, hydrogen, nitrogen, and oxygen\u0026ndash;just happened to come together in certain definite numbers, and in a certain definite order, and invented or built up that most marvelous thing in the universe, the cell. The cells put their heads, or bodies, together, and built the tissues, the tissues formed the organs, the organs in convention assembled organized themselves into the body, and behold! a man, a bird, or a tree!\u0026ndash;as chance a happening as the juxtaposition of the grains of sand upon the shore, or the shape of the summer clouds in the sky.\u003c/p\u003e\n\u003cp\u003eAristotle dwells upon the internal necessity. The teeth of an animal arise from necessity, he says; the animal must have them in order to live. Yet it must have lived before it had them, else how would the necessity arise? If the horns of an animal arise from the same necessity, the changing conditions of its life begat the necessity; its life problem became more and more complicated, till new tools arose to meet new wants. But without some indwelling principle of development and progress, how could the new wants arise? Spencer says this progress is the result of the action and reaction between organisms and their changing environment. But you must first get your organism before the environment can work its effects, and you must have something in the organism that organizes and reacts from the environment. We see the agents he names astronomic, geologic, meteorologic, having their effects upon inanimate objects as well, but they do not start the process of development in them; they change a stone, but do not transform it into an organism. The chemist can take the living body apart as surely as the watchmaker can take a watch apart, but he cannot put the parts together again so that life will reappear, as the watchmaker can restore the time-keeping power of the watch. The watch is a mere mechanical contrivance with parts fitted to parts externally, while the living body is a mechanical and chemical contrivance, with parts blended with parts internally, so to speak, and acting together through sympathy, and not merely by mechanical adjustment. Do we not have to think of some organizing agent embracing and controlling all the parts, and integral in each of them, making a vital bond instead of a mechanical one?\u003c/p\u003e\n",
  "date": "2024-12-22T17:26:32-08:00",
  "title": "Post 1"
}

Try it:
git clone --single-branch -b hugo-github-issue-13186 https://github.com/jmooring/hugo-testing hugo-github-issue-13186
cd hugo-github-issue-13186
hugo server

@jmooring Thank you so much. It seems to work beautifully.
I was wondering what the rationale was for this:
[markup.goldmark.renderHooks.link]
enableDefault = true # this must be enabled for infinite scrolling to work properly

[markup.goldmark.renderHooks.image]
enableDefault = true # this must be enabled for infinite scrolling to work properly

Do I have to do that for every potential thing that goldmark renders such as Tables etc?
Also why is this setting required for this particular issue (i.e. json output) but it wasn't required for the normal html files that were generated?

In the generated html file of Post3:

This is a link to Post 1.

This page is a leaf bundle. In addition to the content it contains a photograph.

However in the generated json file of Post3:
{
  "content": "\u003cp\u003eThis is a link to \u003ca href=\"/posts/post-1/\"\u003ePost 1\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis page is a leaf bundle. In addition to the content it contains a photograph.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/posts/post-3/a.jpg\" alt=\"A kitten\" title=\"A kitten!\"\u003e\u003c/p\u003e\n",
  "date": "2024-12-22T17:49:02-08:00",
  "title": "Post 3"
}

Why are < getting encoded as \u003c when < does not need to be escaped? It still seems to work though as required.

Do I have to do that for every potential thing that goldmark renders such as Tables etc?

No.

Also why is this setting required for this particular issue (i.e. json output)

It is not required for any particular output format. It is required if you plan to display page content in a context other that the page itself (e.g., an inifinite scrolling list page). Why?
I've written about this many times in the forum, where we troubleshoot problems and answer questions. Please continue the conversation there if you need additional help.
In the interim, the first two sections of this article explain why render hooks are required to properly resolve Markdown  link and image destinations.


Difference between your paper and source code.

Hi,
During I check your codes, I found some different part between the paper and codes.
your paper mentioned, for the decoder part, output0_cat is applied by 1x1 conv (19,C) and then concat but I can see output0_cat does not pass 1x1 conv (19,C).
Look at this part in your code which is Model.py (the last part of decoder)
self.conv = CBR(19 + classes, classes, 3, 1)
concat_features = self.conv(torch.cat([comb_l2_l3, output0_cat], 1))
This shows that output0_cat + comb_l2_l3 passes CBR (19 + classes, classes, 3, 1) and it means output0_cat does not pass 1x1 conv (19,C).
I would like to know why there is the difference.
Thanks!

See #3

@sacmehta Thank you.


Add Instruction for Making input.prof

Let's make it easy for everyone to use this easily!

merged into #19


[release-1.21] pilot: do not skip creating istio-ca-root-cert in kube-system namespace

This is an automated cherry-pick of #49261

I feel this is needed, as we apply priortyClassName in ztunnel in 1.21 builds, and for GKE that requires us to put ztunnel in kube-system. If we put ztunnel in kube-system to utilize priorityClassName, we get failed mounts:
Events:
  Type     Reason       Age               From               Message
  ----     ------       ----              ----               -------
  Normal   Scheduled    34s               default-scheduler  Successfully assigned kube-system/ztunnel-hv65v to gke-ly-gke-ambient-2-ly-gke-ambient-1-a04b81ca-bttm
  Warning  FailedMount  2s (x7 over 34s)  kubelet            MountVolume.SetUp failed for volume "istiod-ca-cert" : configmap "istio-ca-root-cert" not found

Agreed, we have users hitting this on GKE already.


Matmair/issue4560

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 87.941%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
26428

Relevant Lines:
30052

💛  - Coveralls


Not Showing Delegates Calendars

Hello, today got your app and it's one thing that I really miss on the new Mac OS High Sierra, was hoping to get this feature along some others but it's not.
Google for it and came across your awesome app, just noticed thought that it would not catch my Delegates calendars, do you think it's something possible for next version?
Thank you for the wonderful app and keep up the excellent work.
Kind regards,
Rui M Leal

Thanks for the suggestion. I think this is a duplicate of: https://github.com/sfsam/Itsycal/issues/68


Dropdown content width

Hi,
This is my first issue which is not really one. This is just an UI improvement :).
I think it would be better if the content on the dropdown-menu would be at the same size that the dropdown label. If there are only little words in the dropdown, the result is not really nice :

What do you think?

Hi!
It's one of the only component with the full documentation done. You can see "width" in the API description at the bottom: http://ui.lumapps.com/directives/dropdowns
If you set width to "full", it will take the whole button.


[Proposal] Ability to ignore certain types of commented-out code in ERA001

We have quite a few of these scattered around our codebase. T201 reminds us if we forget to comment them back out after we're done debugging, but I wish I could avoid the warning while they're commented.

I tried task-tags=["TODO", "print"], but this didn't work since there's no space after the print. I'd like to see either parens added to the delimiter for task-tags exclusions, or a separate setting added for allowed functions in commented-out code, please.

Upvoted. PyCharm allows comments like # language=regexp to inject a language into a string in the following line, but this gets detected as commented out code by ruff and it's annoying to have to explicitly append a # noqa: ERA001 each time.
The setting could work exactly like dummy-variable-rgx, meaning a Regex pattern that, if matched, causes the error not to trigger for that particular line (or better yet for it and following lines that would otherwise trigger it).


docs: update release process

Updates to the document used by the release coordinator
to help smooth the process for the next release.
Contributes to: asyncapi/spec#675
Signed-off-by: Dale Lane<EMAIL_ADDRESS>

I think there are more things that we should include for website updates - inspired by https://github.com/asyncapi/website/pull/614 but from a quick search I can see other places that would justify attention, such as the examples in https://github.com/asyncapi/website/blob/master/pages/docs/getting-started/hello-world.md

@dalelane I see you wanted to merge. It could not work as there were no approval. When you are done with updating PR basing on provided feedback remember about hitting the "arrows" icon that rerequests review and triggers notification to reviewers.

anyway, great job and now I approve 🚀
you can try merge again 😄

@fmvilas not sure if you had a chance to see it so pinging you so you can see great job from Dale on improving the release process

/rtm

This is awesome it finally got merged 👏 Awesome stuff @dalelane ! thanks

now with each release goal should be to not add more steps, but remove as many manual steps as possible one by one 😅

Great stuff @dalelane 👏


The method get_model to get the bert model is right?

Describe the Bug
A clear and concise description of what the bug is.
I think the method get_encoders to get transformed feature is not right. The method get_encoders calls  get_encoder_component, but the attention_layer in get_encoder_component doesn't use mask. The attention_layer only use the parameter history_only to control the mask, and it's not right for the self-attention encoder which should not operate on the invalid padding words.
Version Info

[ ] I'm using the latest version

Minimal Codes To Reproduce
import keras_bert

pass

The attention module uses both the history_only parameter and the given mask.
https://github.com/CyberZHG/keras-self-attention/blob/f3341547271068243866b1c0ff2512baddf92068/keras_self_attention/scaled_dot_attention.py#L69-L70

Yes, the attention module in the keras_self_attention has parameter mask. But the _attention_builder returned by attention_builder only receives one parameters x (i.e. the parameter inputs in ScaledDotProductAttention) and the parameter mask is None. So only the history_only parameter controls the self-attention mask in transformer encoder. It's right to only use the history_only parameter in the self-attention of transformer decoder.
Below is the code in keras-transformer/keras_transformer/transformer.py
def attention_builder(name,
head_num,
activation,
history_only,
trainable=True):
"""Get multi-head self-attention builder.
:param name: Prefix of names for internal layers.
:param head_num: Number of heads in multi-head self-attention.
:param activation: Activation for multi-head self-attention.
:param history_only: Only use history data.
:param trainable: Whether the layer is trainable.
:return:
"""
def _attention_builder(x):
return MultiHeadAttention(
head_num=head_num,
activation=activation,
history_only=history_only,
trainable=trainable,
name=name,
)(x)
return _attention_builder

Note that the second () in MultiHeadAttention(...)(x) calls __call__ but not call().

Oh, god, thand you very much. I have read the <Understanding masking & padding> in the keras docs, and understand the _keras_mask. Thank you again taking time out to answer my questions.


add gitflow chapter

fixes #33
Please take a look. Seem good as a separate chapter, or should it live somewhere else? Look at in light and dark mode to make sure the diagram looks ok. Let me know if the diagram could be any better

@seankross @tefirman  Do we want to make gitflow something we use across all WILDS repos or only use for certain  projects? AFAICT we hadn't said we wanted to have a "rule" about this in our set of rules. This decision has a big impact on the wording in this chapter. Based on our past conversations, it seems like we want to have gitflow be optional such that each repo would need to indicate that they are using a gitflow/dev branch model (or let a contributor know if they accidentally submit a PR against main

My feeling is that if a repo has a Stable badge, it has to use gitflow, otherwise it doesn't have to.

Sounds good to have gitflow be a rule for stable

So actually I don't think we need any further changes. we already have rules for this see https://deploy-preview-42--monumental-cassata-2f9bb7.netlify.app/maintenance
Instead of just Stable we already said we want Prototype and Stable to have git flow essentially (main branch protection, only update main via PR from dev, hotfix branches)

Merging now


qemu: uncaught target signal 4 (Illegal instruction) - core dumped

how to solve this issue when running an Emulation Environment?

qemu: uncaught target signal 4 (Illegal instruction) - core dumped


Internal Server Error

Hi,
I want to run the code provided. However, the wget return an "Internal Server Error" when trying to download the file found at "datasets.d2.mpi-inf.mpg.de/xian/xlsa17.zip"
Is there an alternative location to obtain the file in question?
Thanks

Hi Daniel,
I had the file downloaded with me. Let me know if you are able to download from the drive link below.
https://drive.google.com/file/d/1M1vBCh1CjoTpRtqB7-fiyqjPNVyNPHUL/view?usp=sharing

Thank you! This download works just fine 😄
Love the repo, nicely setup! Will try it out soon

It can be found at: http://datasets.d2.mpi-inf.mpg.de/xian/xlsa17.zip

@mvp18
Hi,
I would like to know how the 'att_splits.mat ' and ' res101.mat' file in the xlsa17 file is formed, can you provide the exact code or link?


dri3 and glamor

With DRI3, we can enable hardware OpenGL in xrdp sessions.  DRI3 allows non root access to video hardware through render nodes(/dev/dri/renderD128).
With Glamor, we can use that hardware OpenGL to accelerate the 2D calls with pixels shaders.

Here is a working prototype.  This is Windows 10 mstsc connected to an xrdp ATI GPU server.
Showing the KDE desktop cube affect.

do you need help, maybe in testing this ?

Sure, you can use glamor branch
https://github.com/jsorg71/xorgxrdp/tree/glamor
Make sure your Xorg is 1.19+ (Debian 9 or Ubuntu 18.04)
Should work with NVidia, ATI and Intel graphics as long as the open source drivers are used.
No change to xrdp yet, this is just changes to the Xorg driver.

Finally got around to test on fedora 28 with cinnamon. Basically works great on the first glance. As expected, significant reduction in CPU usage across the board - Thanks for this change!
The only issue connecting from win10 mstsc was blank screen depending on client's "connection type":

my client for xorgxrd-standard+Cinnamon with software rendering worked with: "connection type:i:7" (auto detect network settings).
Connecting to xorgxrdp-glamor with "connection type:i:7" results in black/blank screen in mstsc.
xorgxrdp-glamor+Cinnamon DRI3 requires "connection type:i:6" (LAN 10 Mbps).
xorgxrdp+Cinnamon software rendering works with "connection type:i:6" too. Basically i switched to "connection type:i:6" for xrdp systems

Looks like the glamor branch has been merged into xorgxrdp! That was a lot of work!
Cam this work with Nvidia? I see provisions in the code for EGL streams (Nvidia's tech), but when I tried it, it's still using llvmpipe (software rendering) on Nvidia's binary drivers (Ubuntu 18.04)

Yes, it's merge in devel branch but off by default.  --enable-glamor to turn it on.
The glamor module in Xorg only uses mesa currently.  So it works with the nouveau driver on NVidia hardware.  I know that's not optimal but we'll work on a solution.  Currently have to recommend Intel or AMD hardware.

@jsorg71 That's great that you're working on a solution! Having XRDP work with the Nvidia accelerated ecosystem would unblock remoting scenarios in the Machine Learning Linux world (which is huge).
I am happy to test prototypes when the come out, and I can verify that it is perfectly stable with glamor enabled with Nvidia drivers, it just uses software rendering (which is important, too).
What does libepoxy and the EGL stream portion do?

I see this link about 'PRIME render offloading' that looks interesting.  This is all really new and relies on xserver bits not yet released.
libepoxy is just a helper library for OpenGL.
https://github.com/anholt/libepoxy
rdpEGL.c is the custom pixel shades to do the RGB to YUV, CRC32, and other operations on the GPU.

--enable-glamor doesn't seem to be present in ubuntu 20.04 xrdp (release 0.9.12).
compiled from source... but there's still no --enable-glamor option... have things changed?
also: does it work with xwayland or do i need x11?

Where do you put the --enable-glamor flag?

to configure script of xorgxrdp, when building from source

Sorry if not helpful.. A week or so ago I went to rebuild parts of the xrdp stack to test glamor on ubuntu20.04(pre release).. I then stopped after seeing the xorgxrdp package seemed to include glamoregl in: /etc/X11/xrdp/xorg.conf. After making an xrdp connection and running glxgears (seemed ok).. but that might just be software rendering seeing llvm glxinfo grep | llvmpipe.
Shrug some directions on how to get testing this would be helpful. I help manage some HPCs ~50 nvidia gpus. Would love to give the users hw accelerated glxgears over rdp.

Nice! It works! I can see the GPU usage in intel_gpu_top, and it seems to leverage the GPU really nicely (You can even watch videos and run graphical tasks), while the CPU is completely relaxed (It barely uses 3-5% of CPU on average).
But the frame-rate seems extremely low in XRDP. It looks like it's running at 5 to 10 FPS or so, no matter if moving windows around or watching a video. I had the same issues in software rendering mode previously. Is that normal? (I'm in LAN, tested with Experience "LAN 10Mbps" and all lower options, have set the minimum security to None in XRDP, and also tried with 16bit colors, all with the same result).

@rkkoszewski try changing xrdp.ini settings, specifically bitmap_compression bulk_compression and independently try "Detect automatically" instead of "LAN 10Mbs" in client settings
Disabling all compression and using "Detect automatically" should be best quality, with enormous bandwidth requirements - but i'm curious what will be your experience

@paravz Thank you for the suggestions. I tested every possible combination of bitmap_compression, bulk_compression  and the "Detect automatically"/"LAN 10Mbs", but the results are nearly always the same. It does look that enabling bulk_compression makes it sligthly slower, but it might be placebo. The only difference was in bandwith usage. It still looks like it's running at a static 5 to 10 FPS.
One thing to note is that I'm running the desktop in an LXC container (Glamor is 100% working, as I can see the GPU load change when dragging windows). Tested also with Windows Native RDP client, as also with the open source aRDP client, all with same result. Setting the resolution to 800x600 seems to improve things (Both compressed and uncompressed), but again might be placebo, as the difference is minimal.
Any more ideas? How is it working for you? Is it possible to watch smoothly a video (even if it's just in a small window) trough xrdp?

1080p youtube video in firefox works smoothly for me in cinnamon, it might your hardware, kernel or something else

Seems to have broken xrdp after I rebuilt xorgxrdp with --enable-glamorx
[20200425-14:25:38] [INFO ] Socket 12: AF_INET connection received from <IP_ADDRESS> port 46380
[20200425-14:25:38] [DEBUG] Closed socket 12 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:25:38] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:25:38] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20200425-14:25:38] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20200425-14:25:38] [DEBUG] TLSv1.3 enabled
[20200425-14:25:38] [DEBUG] TLSv1.2 enabled
[20200425-14:25:38] [DEBUG] Security layer: requested 3, selected 1
[20200425-14:25:38] [INFO ] connected client computer name: Chrome
[20200425-14:25:38] [INFO ] adding channel item name rdpdr chan_id 1004 flags 0xc0800000
[20200425-14:25:38] [INFO ] adding channel item name rdpsnd chan_id 1005 flags 0xc0000000
[20200425-14:25:38] [INFO ] adding channel item name cliprdr chan_id 1006 flags 0xc0a00000
[20200425-14:25:38] [INFO ] adding channel item name drdynvc chan_id 1007 flags 0xc0800000
[20200425-14:25:38] [INFO ] TLS connection established from <IP_ADDRESS> port 46380: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384
[20200425-14:25:38] [DEBUG] xrdp_00002639_wm_login_mode_event_00000001
[20200425-14:25:38] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20200425-14:25:38] [WARN ] local keymap file for 0x00000409 found and doesn't match built in keymap, using local keymap file
[20200425-14:25:38] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip <IP_ADDRESS> port 3350
[20200425-14:25:38] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20200425-14:25:38] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20200425-14:25:38] [DEBUG] return value from xrdp_mm_connect 0
[20200425-14:25:38] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20200425-14:25:38] [DEBUG] xrdp_wm_log_msg: started connecting
[20200425-14:25:41] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:25:45] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:25:48] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:25:52] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:25:55] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:25:59] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:02] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:05] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:06] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:06] [DEBUG] xrdp_wm_log_msg: some problem
[20200425-14:26:06] [DEBUG] xrdp_mm_module_cleanup
[20200425-14:26:06] [DEBUG] Closed socket 18 (AF_INET <IP_ADDRESS>:42254)
[20200425-14:26:06] [DEBUG] Closed socket 12 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:06] [DEBUG] xrdp_mm_module_cleanup
[20200425-14:26:06] [INFO ] address [<IP_ADDRESS>] port [3389] mode 1
[20200425-14:26:06] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20200425-14:26:06] [INFO ] xrdp_listen_pp done
[20200425-14:26:06] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:08] [INFO ] starting xrdp with pid 9808
[20200425-14:26:08] [INFO ] address [<IP_ADDRESS>] port [3389] mode 1
[20200425-14:26:08] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20200425-14:26:08] [INFO ] xrdp_listen_pp done
[20200425-14:26:26] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:26] [INFO ] address [<IP_ADDRESS>] port [3389] mode 1
[20200425-14:26:26] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20200425-14:26:26] [INFO ] xrdp_listen_pp done
[20200425-14:26:26] [DEBUG] Closed socket 7 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:28] [INFO ] starting xrdp with pid 9843
[20200425-14:26:28] [INFO ] address [<IP_ADDRESS>] port [3389] mode 1
[20200425-14:26:28] [INFO ] listening to port 3389 on <IP_ADDRESS>
[20200425-14:26:28] [INFO ] xrdp_listen_pp done
[20200425-14:26:42] [INFO ] Socket 12: AF_INET connection received from <IP_ADDRESS> port 46390
[20200425-14:26:42] [DEBUG] Closed socket 12 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:42] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20200425-14:26:42] [INFO ] Using default X.509 certificate: /etc/xrdp/cert.pem
[20200425-14:26:42] [INFO ] Using default X.509 key file: /etc/xrdp/key.pem
[20200425-14:26:42] [DEBUG] TLSv1.3 enabled
[20200425-14:26:42] [DEBUG] TLSv1.2 enabled
[20200425-14:26:42] [DEBUG] Security layer: requested 3, selected 1
[20200425-14:26:42] [INFO ] connected client computer name: Chrome
[20200425-14:26:42] [INFO ] adding channel item name rdpdr chan_id 1004 flags 0xc0800000
[20200425-14:26:42] [INFO ] adding channel item name rdpsnd chan_id 1005 flags 0xc0000000
[20200425-14:26:42] [INFO ] adding channel item name cliprdr chan_id 1006 flags 0xc0a00000
[20200425-14:26:42] [INFO ] adding channel item name drdynvc chan_id 1007 flags 0xc0800000
[20200425-14:26:42] [INFO ] TLS connection established from <IP_ADDRESS> port 46390: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384
[20200425-14:26:42] [DEBUG] xrdp_0000267a_wm_login_mode_event_00000001
[20200425-14:26:42] [INFO ] Loading keymap file /etc/xrdp/km-00000409.ini
[20200425-14:26:42] [WARN ] local keymap file for 0x00000409 found and doesn't match built in keymap, using local keymap file
[20200425-14:26:42] [DEBUG] xrdp_wm_log_msg: connecting to sesman ip <IP_ADDRESS> port 3350
[20200425-14:26:42] [INFO ] xrdp_wm_log_msg: sesman connect ok
[20200425-14:26:42] [DEBUG] xrdp_wm_log_msg: sending login info to session manager, please wait...
[20200425-14:26:42] [DEBUG] return value from xrdp_mm_connect 0
[20200425-14:26:42] [INFO ] xrdp_wm_log_msg: login successful for display 10
[20200425-14:26:42] [DEBUG] xrdp_wm_log_msg: started connecting
[20200425-14:26:45] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:49] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:52] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:56] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:26:59] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:03] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:06] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:10] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:13] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:17] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:20] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:24] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:27] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:31] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:34] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:38] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:41] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:45] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:48] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:52] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:55] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:27:59] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:02] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:06] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:09] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:13] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:16] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:20] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:23] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:27] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:31] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:34] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:38] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:41] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:45] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:48] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:52] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:55] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:28:59] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:02] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:06] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:09] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:13] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:16] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:20] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:23] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:27] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:30] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:34] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:37] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:41] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:44] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:48] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:51] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:55] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:29:58] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:30:02] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:30:05] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:30:09] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:30:12] [DEBUG] xrdp_wm_log_msg: connection problem, giving up
[20200425-14:30:12] [DEBUG] Closed socket 19 (AF_UNIX)
[20200425-14:30:12] [DEBUG] xrdp_wm_log_msg: some problem
[20200425-14:30:12] [DEBUG] xrdp_mm_module_cleanup
[20200425-14:30:12] [DEBUG] Closed socket 18 (AF_INET <IP_ADDRESS>:42256)
[20200425-16:11:34] [DEBUG] Closed socket 12 (AF_INET <IP_ADDRESS>:3389)
[20200425-16:11:34] [DEBUG] xrdp_mm_module_cleanup

Interestingly my system uses different "X" drivers with i915 hardware, especially VDPAU for hardware video acceleration. I have not specifically tuned any of it, comes with 5.4.19 kernel
[925218.683] rdpDri2Init:
[925218.683] (II) XRDPDEV(0): [DRI2] Setup complete
[925218.683] (II) XRDPDEV(0): [DRI2]   DRI driver: i965
[925218.683] (II) XRDPDEV(0): [DRI2]   VDPAU driver: va_gl

@rkkoszewski Have you tried recompiling xrdp with --enable-rfxcodec and enable RemoteFX on the client?

@seamus-x I thought that option was enabled by default. Is there any way to check that it is indeed missing in my setup? I can't see anything rfx related in the logs I posted. Should it be there? Or somewhere else?

Unfortunately this does not work for me on Manjaro. Is it possible that with --enable-glamor option different version of xorg-server is expected?

What is to be to to have NVidia Proprietary driver to works with it?

Nvidia is a bit tricky. @jsorg71 created a prototype branch that allows for direct hardware acceleration with Nvidia: https://github.com/jsorg71/xorgxrdp/tree/nvidia_hack
But it requires some setup:

I couldn't get this to work with Gnome. I recommend using mate.
You'll need to rebuild xorgxrdp and install it first.
Find what PCI address your Nvidia card is on:
lspci | grep NVIDIA
It’ll look something like this:
65:00.0 VGA compatible controller: NVIDIA Corporation GP104GL [Quadro P5000] (rev a1)
That 65 value is the PCI bus address of your card.
Convert that value to hexadecimal (easy to do with a Google search)
Now, edit the new configuration file for the Nvidia specific setup: sudo vim /etc/X11/xrdp/xorg_nvidia.conf
Change Line 38 to replace the ‘2’ with whatever hex value you obtained above
Now, open up /etc/xrdp/sesman.ini and change the line that has param=xrdp/xrdp.conf to param=xorg_nvidia.conf — On my system this line is 89 but YMMV
Restart xrdp: sudo service xrdp restart

Confirm it works by running glxgears.
Also note that this doesn't use virtualgl, it's directly integrated with the drivers!
Right now this is just a prototype and obviously the awkward setup and other issues such as Gnome compatibility need to be addressed, but it's a massive step in the right direction!

Thanks @Nexarian ! Will soon try and let all know.
Also would like to contribute with coding, despite the fact i dont know nothing on this, if manteiners could provide and describs what else is to be done and where to start i could try.
I think this is the only open tech nowadays that enables serius graphics remote working, without goingo to m$ world or online services

If somebody is struggling to install XRDP with GLAMOR enabled here are my notes on how to install it on a Debian 9: https://gist.github.com/rkkoszewski/aa531cee7126edf329b76bdd0546f502
A question for @jsorg71 : Is there any way to make VAAPI with Hardware acceleration to work in a XRDP session with GLAMOR enabled? From my tests and by using "strace" I can see that VAAPI is working, it is able to open the GPU render node, but then it checks for some "MAGIC" number that is different from the one it is expecting, and it defaults to software encoding/decoding. (I'll upload the log once I find it again)

If somebody is struggling to install XRDP with GLAMOR enabled here are my notes on how to install it on a Debian 9: https://gist.github.com/rkkoszewski/aa531cee7126edf329b76bdd0546f502
A question for @jsorg71 : Is there any way to make VAAPI with Hardware acceleration to work in a XRDP session with GLAMOR enabled? From my tests and by using "strace" I can see that VAAPI is working, it is able to open the GPU render node, but then it checks for some "MAGIC" number that is different from the one it is expecting, and it defaults to software encoding/decoding. (I'll upload the log once I find it again)

Is it thr same for Cinnamon (mint)

I'm having difficulty getting this running in Arch.
It compiles okay but then sesman throws an error when trying to create an x server:
[ERROR] X server for display 10 startup timeout [CORE ] waiting for window manager (pid 804) to exit [ERROR] X server for display 10 startup timeout [ERROR] another Xserver might already be active on display 10 - see log [CORE ] window manager (pid 804) did exit, cleaning up session
Any tips on how to debug this?

I see similar errors here:
https://github.com/neutrinolabs/xrdp/issues/1411
https://github.com/neutrinolabs/xrdp/issues/786
So it seems a bit of a hairy one and is now above my paygrade unfortunately.

glamor seems great and I really want to see this feature is enabled by default, or configurable at run time, not build time.

I see similar errors here:
#1411
#786
So it seems a bit of a hairy one and is now above my paygrade unfortunately.
Edit: fixed here: https://bbs.archlinux.org/viewtopic.php?pid=1937867#p1937867 by using the following configure:
CFLAGS+=" $(pkgconf --cflags libdrm)" LDFLAGS+=" -L/usr/lib/xorg/modules -lglamoregl -Wl,-rpath,/usr/lib/xorg/modules" ./configure \
    --prefix="/usr" -enable-glamor

Can this be used to fix something in the source?

After I made a package for xorgxrdp with glamor, I realized it does not work on nvidia gpu. however, feel free to test it.

I see similar errors here:
#1411
#786
So it seems a bit of a hairy one and is now above my paygrade unfortunately.
Edit: fixed here: https://bbs.archlinux.org/viewtopic.php?pid=1937867#p1937867 by using the following configure:
CFLAGS+=" $(pkgconf --cflags libdrm)" LDFLAGS+=" -L/usr/lib/xorg/modules -lglamoregl -Wl,-rpath,/usr/lib/xorg/modules" ./configure \
    --prefix="/usr" -enable-glamor

Can this be used to fix something in the source?

After I made a package for xorgxrdp with glamor, I realized it does not work on nvidia gpu. however, feel free to test it.

I also made a package for xorgxrdp with nvidia and I can confirm that it works.

@jat001 Thanks for this. I've passed some feedback on the aur page for the non nvidia PKGBUILD

I've been trying to get this to work but once I've logged in, the screen remains with the sesman wallpaper and there is nothing in the logs - except a timeout, eventually.
Although I don't think that's necessary, I checked that my user is part of the video group (so I can access /dev/dri).
Anything obvious to look for in the logs, or debugging methods for the .so? If I revert to my distro's xorgxrdp package everything works fine.

I've been trying to get this to work but once I've logged in, the screen remains with the sesman wallpaper and there is nothing in the logs - except a timeout, eventually:
[20221018-17:33:29] [INFO ] sesman connect ok
[20221018-17:33:29] [INFO ] sending login info to session manager. Please wait...
[20221018-17:33:29] [INFO ] xrdp_wm_log_msg: login successful for user me on display 10
[20221018-17:33:29] [INFO ] login successful for user me on display 10
[20221018-17:33:29] [INFO ] loaded module 'libxup.so' ok, interface size 10296, version 4
[20221018-17:33:29] [INFO ] started connecting
[20221018-17:33:29] [INFO ] lib_mod_connect: connecting via UNIX socket

Although I don't think that's necessary, I checked that my user is part of the video group (so I can access /dev/dri).
Anything obvious to look for in the logs, or debugging methods for the .so? If I revert to my distro's xorgxrdp package everything works fine.

Check instructions from https://github.com/neutrinolabs/xrdp/issues/1029#issuecomment-679958758, including X11 setup.
Check your glamor device name and if it's configured and working, ie:
$ lsgpu
card0                    xxxx:xxxx                         drm:/dev/dri/card0
└─renderD128                                               drm:/dev/dri/renderD128

$ cat /etc/X11/xrdp/xorg.conf |grep render
    Option "DRMDevice" "/dev/dri/renderD128"

$ sudo journalctl -l --all -b |grep renderD128
sudo: unable to send audit message: Operation not permitted
Oct 18 22:45:42 dev xrdp-sesman[130071]: rdpProbe: found DRMDevice xorg.conf value [/dev/dri/renderD128]
Oct 18 22:45:42 dev xrdp-sesman[130071]: rdpPreInit: /dev/dri/renderD128 open ok, fd 12

Can this be run headless? I mean with something like the Xvnc backend?

It does run headless with the Xrdp backend. I have been using xorgxrdp-glamor (and equivalent packages shipping in Fedora, Ubuntu, etc.) for a long while now to get GPU-accelerated remote desktops. Sometimes it breaks (because of re-packaging issues, since not many people know about glamor, RFX, etc.), but when things are packaged "right", it is a very smooth experience. I only wish there was better debugging output (not just for glamor not working, but also including negotiated codecs).

Testing the on Arch with AUR package xorgxrdp-glamor now.

Awesome!!! It's working.
I was working with Xvnc before. Now i have fully GPU accelerated RDP. If only I had come across it earlier.

I honestly don't know why Xrdp isn't the default, since it is faster than Xvnc even without glamor...

Actually i noticed Xrdp is slower than Xvnc to me (opening Firefox for example takes longer, no idea why). But i stay on Xorg to have 3D.

I think this can now be closed as we've made it easier to use --enable-glamor.
See neutrinolabs/xorgxrdp#295, which is largely the work of @jat001.


Segmentation Fault while trying to run from command line

I am trying to install and run cellpose on a community cluster of my university. The cluster has pre-installed anaconda with python 3.8. I have followed the local installation guideline described on the Github page.  The installation process does not encounter any errors. I do not want to run the GUI, rather I want to run cellpose on a directory of .jpg images (each of dimension 1384*1036). So, I tried the following commands:
module load anaconda/2020.11-py38
conda create --name cellpose python=3.8
conda activate cellpose
python -m pip install cellpose
python -m cellpose --dir my_absolute_dir_path --pretrained_model nuclei --chan 1 --chan2 1 --diameter 0. --save_png
The previous command starts running like the following...
2021-10-28 19:25:27,908 [INFO] WRITING LOG OUTPUT TO /home/user1/.cellpose/run.log
2021-10-28 19:25:27,945 [INFO] >>>> using CPU
2021-10-28 19:25:27,950 [INFO] >>>> running cellpose on 32 images using chan_to_seg RED and chan (opt) RED
2021-10-28 19:25:27,951 [INFO] >>>> using CPU
2021-10-28 19:25:28,033 [INFO] >>>> estimating diameter for each image
2021-10-28 19:25:28,035 [INFO] 0%|          | 0/32 [00:00<?, ?it/s]
2021-10-28 19:25:28,069 [INFO] ~~~ ESTIMATING CELL DIAMETER(S) ~~~
Then most cases it terminates with Segmentation Fault.
I got it to run only once, where it showed the following run-time warnings and took a lot of time to compute cell diameter and mask for 1 image... Also --save_png did not save the outlines as text file for ImageJ!!
/home/user1/.conda/envs/cent7/2020.11-py38/cellpose/lib/python3.8/site-packages/numpy/core/fromnumeric.py:3419: RuntimeWarning: Mean of empty slice.
return _methods._mean(a, axis=axis, dtype=dtype,
/home/user1/.conda/envs/cent7/2020.11-py38/cellpose/lib/python3.8/site-packages/numpy/core/_methods.py:188: RuntimeWarning: invalid value encountered in double_scalars
ret = ret.dtype.type(ret / rcount)
2021-10-28 19:33:32,337 [INFO] estimated cell diameter(s) in 484.27 sec
2021-10-28 19:33:32,337 [INFO] >>> diameter(s) =
2021-10-28 19:33:32,338 [INFO] [ 17.00 ]
2021-10-28 19:33:32,338 [INFO] ~~~ FINDING MASKS ~~~
What could be the possible reason for Segmentation Fault? Why could be the process so slow?

I've seen segmentation faults occur when numpy or numba is installed incorrectly. Can you try using our environment.yml in the github repo to create the environment? e.g.
conda env create -f environment.yml
conda activate cellpose

I would guess these libraries did not install correctly so things ran extra-slow. Things will also be slower if you don't have a GPU. To use a GPU, you can use the google colab notebooks linked.
To save outlines, please use --save_outlines
Going to close this issue for now, please let us know if you're still having problems


ZITADEL should allow IDP Login from customer portal

At the moment we do have two separat accounts for ZITADEL customer portal and ZITADEL Instance. This makes it confusing for our customers in the onboarding process. The following parts need to be changed to be able to login with an external idp.
Acceptance criteria

[x] #4487
[ ] AddInstance allows to create with an user with an external idp
[ ] ...

@fforootd can we close this? since we have discussed the possibilities we want to add to integrate console into customer portal.

@fforootd can we close this? since we have discussed the possibilities we want to add to integrate console into customer portal.

I think there are multiple steps for this. Let me create an issue for this with  the content of the gdocs we created and outline the options we have


Token acquisition code out of date

There are multiple other issues(#521, #200, #953) on this which have been closed without being resolved. But in .NET Core there is no way to authenticate with a user name and password using ADAL 3.0. The sample should be updated to show authenticating and acquiring a token without user name and password.

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

ID: bef3a0a2-7cc8-136e-eb8e-a80f4cade7d3
Version Independent ID: 20093c04-76cd-9266-e2f1-96c329da93c1
Content: Get an authentication access token - Power BI
Content Source: powerbi-docs/developer/walkthrough-push-data-get-token.md
Service: powerbi
Sub-service: powerbi-developer
GitHub Login: @rkarlin
Microsoft Alias: rkarlin

Thanks for your comment, @stimms. This issue has been assigned to the doc manager for review.

@stimms Thank you for catching this in this article.  This information was updated in another article - https://docs.microsoft.com/en-us/power-bi/developer/get-azuread-access-token#troubleshoot.
However, I also updated the NuGet download link to be more current.
Hope this helps.
Thank you.

We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion, and we will reopen the issue.


[FEATURE REQ] Support overriding the endpoint for NonAzureOpenAIClientService

Is your feature request related to a problem? Please describe.
The current OpenAI API is used by multiple providers, and Azure SDK is the only "official" Java SDK that supports this API. However, the endpoint is hardcoded in this file limiting it's usefulness to be used with other providers.
Describe the solution you'd like
Allow the client to override the endpoint along with other attributes when constructing the NonAzureOpenAIClientImpl object so it can be used internally within companies (if there's an internal gateway that proxies that request), or use this with other providers.
Describe alternatives you've considered
The other option would be for another implementation of the API in java, which is completely needless.
Additional context
NA
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Description Added
[x] Expected solution specified

@mssfang could you follow-up

@viswanathk Recently we get this feature ask and waiting to see if we should support it in the SDK. Will keep you updated.
https://github.com/Azure/azure-sdk-for-java/pull/39659

@mssfang any timeline for this? :)

Unfortunately, we will not support non-OpenAI models in this SDK, azure-ai-openai as per our partnership with OpenAI.
The most major models are available as first-class Azure Host Endpoints, such as Llama2, Cohere and Mistra, via Azure MaaS (Azure AI Studio Model Catalog). They can also host most Hugging Face models or your own models in the future via Azure MaaP(AML) in the future. We will provide an ("OpenAI like") Model Inference API spec for completions to MaaS in the near future.
Worth to mention here that this SDK support proxy feature in case someone not aware it.


[Bug Report] default_camera_config in MujocoEnv seems not working

Describe the bug
I was trying to understand how default_camera_config works via adjusting its values. However, I surprisingly found that no matter how I adjusted its values (at least distance and elevation), it didn't affect the result.

Code example
Import statements:

import gymnasium as gym
import numpy as np
import matplotlib.pyplot as plt

To reproduce the ant-v4 one, install gymnasium-0.29 and run:
distances = [0, 10, 20, 30, 40, 50]
elevations = [0, -10, -20, -30, -40, -50]

results = []

for distance in distances:
    for elevation in elevations:
        gym.envs.mujoco.ant_v4.DEFAULT_CAMERA_CONFIG = \
        {
            "distance" : distance,
            "elevation" : elevation
        }

        env = gym.make('Ant-v4', render_mode='rgb_array')
        env.reset()

        param = env.unwrapped.mujoco_renderer.default_cam_config
        param = (param["distance"], -param["elevation"])

        img = env.render()

        results.append((param, img))

To reproduce the humanoid-v5 one, install gymnasium-1.0.0 and run:
distances = [0, 10, 20, 30, 40, 50]
elevations = [0, -10, -20, -30, -40, -50]

results = []

for distance in distances:
    for elevation in elevations:
        gym.envs.mujoco.humanoid_v5.DEFAULT_CAMERA_CONFIG["distance"] = distance
        gym.envs.mujoco.humanoid_v5.DEFAULT_CAMERA_CONFIG["elevation"] = elevation

        env = gym.make('Humanoid-v5', render_mode='rgb_array')
        env.reset()

        # get distance and elevation from default_cam_config stored in
        # mujoco_renderer to show it does take some effects
        param = env.unwrapped.mujoco_renderer.default_cam_config
        param = (param["distance"], -param["elevation"])

        img = env.render()

        results.append((param, img))

To plot the result, run:
fig, axis = plt.subplots(6, 6)
fig.set_figheight(25)
fig.set_figwidth(25)

for ((i,j), img) in results:
    axis[i//10, j//10].imshow(img)
    axis[i//10, j//10].set_title(f"distance:{i}, elevation:{-j}")

plt.show()

### System info

`gymnasium-0.29` is installed via running `pip install gymnasium`
`gymnasium-1.0.0` is installed via cloning this github repo and running `pip install -e .`

`mujoco` and `mujoco-py` are installed via running `pip install mujoco, mujoco-py`

Other information:

python=3.8
mujoco=3.2.2
mujoco-py=<IP_ADDRESS>

OS:
`Ubuntu 22.04 LTS`

### Additional context

_No response_

### Checklist

- [X] I have checked that there is no similar [issue](https://github.com/Farama-Foundation/Gymnasium/issues) in the repo

have you tried using the default_camera_config argument? (it is included in v5 of the environments)

have you tried using the default_camera_config argument? (it is included in v5 of the environments)

Yes, I did. It doesn't help either. You could modify the code to be
distances = [0, 10, 20, 30, 40, 50]
elevations = [0, -10, -20, -30, -40, -50]

results = []

for distance in distances:
    for elevation in elevations:
        camera_config = {
            "distance": distance,
            "elevation": elevation
        }

        env = gym.make('Humanoid-v5',
                       render_mode='rgb_array',
                       default_camera_config=camera_config
                      )
        env.reset()

        # get distance and elevation from default_cam_config stored in
        # mujoco_renderer to show it does take some effects
        param = env.unwrapped.mujoco_renderer.default_cam_config
        param = (param["distance"], -param["elevation"])

        img = env.render()

        results.append((param, img))

And you will get the same result.

I read the code thoroughly again and I'm suspecting the camera setting itself.
During initialization of MujucoRenderer, it uses the following code to get camera_id when user does not define either camera_id or camera_name:
if camera_id is None:
        self.camera_id = mujoco.mj_name2id(
                self.model,
                mujoco.mjtObj.mjOBJ_CAMERA,
                camera_name,
        )

The result of this code is the MujocoRenderer.camera_id will be set to be 0, which is the same as MjvCamera.fixedcamid. In other words, most likely the camera used by default is the fixed camera and according to Mujoco domumentation

mjCAMERA_FIXED
This refers to a camera explicitly defined in the model, unlike the free and tracking cameras which only exist in the visualizer and are not defined in the model. The id of the model camera is given by mjvCamera.fixedcamid. This camera is fixed in the sense that the visualizer cannot change its pose or any other parameters. However the simulator computes the camera pose at each time step, and if the camera is attached to a moving body or is in tracking or targeting mode, it will move.

And thus makes default_camera_config not working.
However, I have to admit that I'm not familiar with Mujoco nor Gymnasium. I might be wrong but hopefully this provide some insights for you.

is the bug present for render_mode="human"

Update:
Overview
It seems that I might find the problem, partially.
It is caused by MujocoRenderer.camera_id but it is not because MujocoRenderer.camera_id is set to be the same as MjvCamera.fixedcamid ---- MjvCamera.fixedcamid is a property, not a constant.
Here's how things work:
During initialization of MujucoRenderer, the following code will be executed:
no_camera_specified = camera_name is None and camera_id is None
if no_camera_specified:
    camera_name = "track"

if camera_id is None:
    self.camera_id = mujoco.mj_name2id(
        self.model,
        mujoco.mjtObj.mjOBJ_CAMERA,
        camera_name,
    )

The problem is actually caused by this "track" camera.
According to MujocoDocumentaion:

“track” means that the camera position is at a constant offset from the body in world coordinates, while the camera orientation is constant in world coordinates. These constants are determined by applying forward kinematics in qpos0 and treating the camera as fixed.

In other words, the camera obtained in this way is "fixed," relatively, and will not be affected by default_camera_config.
In order to make default_camera_config working, setting MujocoRenderer.camera_id to be -1 works, at least. This can be achieved by assigning a random name to parameter camera_name during initialization. The following code demonstrates this idea:
distances = [0, 10, 20]
elevations = [0, -10, -20]

results = []

for distance in distances:
    for elevation in elevations:
        camera_config = {
            "distance": distance,
            "elevation": elevation
        }

        env = gym.make('Humanoid-v5',
                       render_mode='rgb_array',
                       default_camera_config=camera_config,
                       camera_name='whatever_you_want_:)'
                      )
        env.reset()

        # get distance and elevation from default_cam_config stored in
        # mujoco_renderer to show it does take some effects
        param = env.unwrapped.mujoco_renderer.default_cam_config
        param = (param["distance"], -param["elevation"])

        img = env.render()

        results.append((param, img))

And the result will be:

Possible fix
Quick fix
A really quick fix is to set MujocoRenderer.camera_id to be -1 by default.
Better fix?
As I've mentioned before, I'm not familiar with Mujoco nor Gymnasium, I'm not sure what the side effect is when using the quick fix. According to the documentation, it seems that modifying qpos also helps, but that is far beyond my knowledge.
Something else
At this time I'm not sure if it is actually a bug. It might just need better documentation, maybe. However, I do find a real bug while testing. In MujucoRenderer.__init__(), after the following code:
if camera_id is None:
    self.camera_id = mujoco.mj_name2id(
        self.model,
        mujoco.mjtObj.mjOBJ_CAMERA,
        camera_name,
    )

There should be an else statement:
if camera_id is None:
    self.camera_id = mujoco.mj_name2id(
        self.model,
        mujoco.mjtObj.mjOBJ_CAMERA,
        camera_name,
    )

else:
    self.camera_id = camera_id

Or you will get AttributeError: 'MujocoRenderer' object has no attribute 'camera_id' while calling MujocoEnv.render()
That's all what I can provide, I believe. Hopefully that helps!

is the bug present for render_mode="human"

I haven't tested with render_mode='human' but I believe that is not a problem in that case. The Mujoco visualizer uses a freecamera by default which can be directly adjusted using your mouse.

mjCAMERA_FREE
This is the most commonly used abstract camera. It can be freely moved with the mouse. It has a lookat point, distance to the lookat point, azimuth and elevation; twist around the line of sight is not allowed. The function mjv_moveCamera is a mouse hook for controlling all these camera properties interactively with the mouse. When simulate.cc first starts, it uses the free camera.


linux: use copy_file_range for uv_fs_copyfile when possible

According to the man page:

copy_file_range() gives filesystems an opportunity to implement "copy acceleration" techniques, such as the use of reflinks (i.e., two or more inodes that share pointers to the same copy-on-write disk blocks) or server-side-copy (in the case of NFS).

Thus copy_file_range may provide better performance on certain devices.
Tested on Linux archlinux-pc 5.1.15-arch1-1-ARCH
Ref: https://github.com/libuv/libuv/issues/925#issuecomment-234696227

Fixed, please review @bnoordhuis

CI: https://ci.nodejs.org/view/libuv/job/libuv-test-commit/1528/

CI for merge: https://ci.nodejs.org/job/libuv-test-commit/1960/


PostgreSQL Flexible is NOT free

Created my free trial account in Nov., all postgreSQL are charged now, not 12-months free, to verify I try to create one follow exact steps, you can see it's not free! Feel free for any questions.

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

ID: 467c157b-031f-140a-8020-3f82eddc0489
Version Independent ID: ba42ec8a-9e78-08a2-c1c2-9f11b2cae300
Content: Use an Azure free account to try Azure Database for PostgreSQL - Flexible Server for free
Content Source: articles/postgresql/flexible-server/how-to-deploy-on-azure-free-account.md
Service: postgresql
GitHub Login: @shreyaaithal
Microsoft Alias: shaithal

@TLKG Thank you for the feedback. We are actively investigating and will get back to you soon.

@TLKG Thanks for your patience. You can refer to below link to get more details on Azure Free Services. As per it, Azure PostgreSQL Flexible Server comes under free services for 12 months usage with some capacity.
https://azure.microsoft.com/en-in/free/

However as per the screenshot provided by you, we see some billing costs. These costs are applicable when we go for paid subscription. Although this is shown for free tier as well but it will not be charged to you. This is just to show if we go for particular workload type how much could it cost us.
Please let us know if this helps.

@TLKG We will now proceed to close this thread. If there are further questions regarding this matter, please comment and we will reopen the issue and gladly continue the discussion.


Next.js plugin for including only used icon styles in build

You might want to look into this recent change.
https://github.com/anaclumos/extracranial/blob/main/src/css/external-link.css
It only loads icons with HTTP requests to simpleicons.org instead of embedding them in the codebase.
Not ideal, but better than before.

It only loads icons with HTTP requests to simpleicons.org instead of embedding them in the codebase.

Super, will use that for now.


Styling

Coverage remained the same at 64.73% when pulling 9baddb8abf17a3330d61f2c4d6a698abebb54760 on styling into f78cf8c62827d13d688cd91c94a9141f48112ca6 on development.


Navigate From Screen A to Screen B and dismiss back to Screen A when click back button

Hi, I would like to have this feature by default in which it support navigation screen in compose multi platform which consist of ios, android and wasmJs as fast as possible. Thank you.

Duplicate of https://github.com/JetBrains/compose-multiplatform/issues/85

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.