One Drive Android app Api

I am not sure if it's the best place to ask for such kind of issues, but since all ...-android repos are dead for some years already on GitHub - I don't see any better place either.
Briefly: when OneDrive app is installed it support  ACTION_OPEN_DOCUMENT  Intent (Android Storage Access Framework (SAF)), but unfortunately it does not support ACTION_CREATE_DOCUMENT intent from the same SAF. The same time document creation is supported by old ACTION_SEND Intent.
Thus we can implement work-around:  1st invoke ACTION_SEND and latter ACTION_OPEN_DOCUMENT.
But this means bad user experience for end user when interacting with OneDrive comparing to doing same action with Google Drive (which support both open and create intents.) As result user would need to select file twice using OneDrive and only once if he use GDrive.
I am wondered if there is any particular reason why ACTION_CREATE_DOCUMENT Intent is not supported ? If it was simply not implemented yet - is there any chance that it will be implemented relatively soon?
Just in case: these two "new" intents belongs to Storage Access Framework  and it was added in Android 4.4 several years ago. Nowadays these means, that almost all devices do support these API.
Additionally now Google make using SAF API mandatory starting from Android 10. You may expect much more apps to implement interaction using these API starting from now. As result when these API will be fully supported you may expect growing number of users, which is also beneficial for OneDrive.
Lastly, in order to emphasize how standard these Storage Access Framework API are, I will link documentation from Microsoft Office for Android:

Implement a document provider
If you're developing an app that provides storage services for documents, you can make your files available through the SAF by writing a custom document provider. Office apps can then invoke the ACTION_OPEN_DOCUMENT and/or ACTION_CREATE_DOCUMENT intent to receive the files returned by your document provider. Note that the intent might include filters to further refine the criteria.
https://docs.microsoft.com/en-us/office/client-developer/integration/office-for-android-support-for-the-android-storage-access-framework

Thanks for your feedback.  Could you please clarify whether your question which application or SDK you are talking about - the OneDrive app on Android, a particular SDK, or something else?

Hello @chackman thanks for your prompt reply. I am referring to Microsoft OneDrive Android app, which is publicly available via store.

@chackman  may I possibly ask you if you received all the required information?
If it's the case - could you please advice when I should expect to receive feedback on this issue?

I'm following up with a partner team to see what the appropriate channel would be for this request.

@chackman  thanks for your help and feedback, please keep me posted.

This would be a feature request for the OneDrive app on Android.  The appropriate channel to make this feature request is UserVoice.
Here is a link to the "OneDrive on Android" UserVoice forum to suggest this feature: https://onedrive.uservoice.com/forums/913516

@chackman  thank you for investigation. I will report this feature request via UserVoice.

I didn’t find anything about this on UserVoice, so I created this:
https://onedrive.uservoice.com/forums/913516-onedrive-on-android/suggestions/44130834-add-support-for-creating-files-via-storage-access

Is there any update on this.
No support for Intent.ACTION_CREATE_DOCUMENT is a bit perplexing.

Four years have passed, still not implemented and Android is forcing developers to SAF now. Is this coming anytime soon? If not, I will have to recommend my users to migrate to Dropbox since they did their homework.

I understand that this issue is closed, but I am posting about this topic because I believe many people searching for information on the internet end up on this page.
I truly cannot comprehend why OneDrive does not fully support the Storage Access Framework (SAF).
I assume the issue does not surface because regular Android users are not aware that apps utilize the SAF API. So, when they encounter a problem, they mistakenly assume that the app is at fault, not OneDrive.
In fact, we continuously receive support requests from users who are experiencing issues with our app, even though the problem lies with OneDrive.
Therefore, I have created a feature request on the support page of the Microsoft portal.
Kindly vote for the issue.
https://feedbackportal.microsoft.com/feedback/idea/4d345f68-c5cf-ee11-92be-000d3a0e6cad

I imagine that the decision to not fully support SAF relate to political reasons, to prevent programs from competing with Excel, Word or others.
From a technical point of view, it is completely incomprehensible that Microsoft does not complete the Storage Access Framework (SAF) driver for Onedrive so that files can be saved and created.


[fixit] wrong results link

What this PR does / why we need it:
A page in the readme sends to a 404
Which issue(s) this PR fixes

Fixes #1035

Special notes for your reviewer:
Release note:
release-note

What this actually needs is to have the results page added to the shortlinks document.
https://github.com/vmware-tanzu/sonobuoy/blob/master/site/_data/shortlinks.yml
That is why things like sonobuoy.io/docs/faq redirects automatically to the last released version of that doc.
Want to swap out your change for that?

Also, if you update your PR, please squash your commits and then amend it with --signoff to sign your commit to pass the DCO signoff checker.

feel free to fix it yourself and discard this PR, I won't be able to get to this until tomorrow at best.
thanks for checking it

@sebgoa OK will do; thanks for bringing it to our attention!


Random fixes from the edit version page

Small fixes :

edit dependencies work fine now, by using state for dependencie search
useless console.log when editing
if the same url was tested twice it would fail (JS is weird, see : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test )

Thanks Airdox, that regex thing is so stupid lol
I'll approve the workflow and assuming all is well (it should be), it'll get upstreamed


VuPlayer always creating a "Ephemera" playlist

Hi,
Not sure it's an issue or should be considered as a request.
When VuPlayer is set as default player for some file type, after a double-clic on a song file (.mp3 or whatever) from Windows Explorer, VuPlayer always creates a new playlist, called "Ephemera". Other files of the same location are not displayed so cannot be selected without browsing "Computer view" (to find again same directory, which requests several clics).
By default, why not open the "Computer view" and show all file at same location, instead of forcing a playlist creation ?
Or would it be possible to allow this behaviour as an option ?

I'll have a think about where to move this default playlist. It's used when launching or calling the app with any files.
The other possibility is 'now playing' playlist to show the current queue, with maybe some 'play next', 'queue song' options, etc.

For version 4.13, I've just renamed the 'ephemera' playlist to 'Default Playlist', which hopefully is a bit more generic.
I couldn't find anywhere better to put it, so it will still appear in the playlists node.

Hi and thx for the answers.
In my case, 4.13 still creates ephemera list, but it's not really important. My opinion remains that it'd have been more logical to open VuPlayer "Computer" view (expanded to the current directory) when no playlist is active. In that way, other songs could have been selected immediatly from VuPlayer. For now, you have to go out of VuPlayer to select another song, even if it was simply the next one of the same directory (or try to locate yourself the same directory from the collapsed Computer" view...)
Well, maybe it's not possible or everyone is using playlists all the time but me ?...
Great soft anyway.


[BUG] Could not find fastjson2-parent:2.0.21.android

问题描述
Gradle Build
Could not find com.alibaba.fastjson2:fastjson2-parent:2.0.21.android
环境信息

版本信息：Fastjson2 2.x.x

相关日志输出
      > Could not resolve com.alibaba.fastjson2:fastjson2:2.0.21.android.
         > Could not parse POM https://repo.maven.apache.org/maven2/com/alibaba/fastjson2/fastjson2/2.0.21.android/fastjson2-2.0.21.android.pom
            > Could not find com.alibaba.fastjson2:fastjson2-parent:2.0.21.android.
              Searched in the following locations:
                - https://dl.google.com/dl/android/maven2/com/alibaba/fastjson2/fastjson2-parent/2.0.21.android/fastjson2-parent-2.0.21.android.pom
                - https://repo.maven.apache.org/maven2/com/alibaba/fastjson2/fastjson2-parent/2.0.21.android/fastjson2-parent-2.0.21.android.pom

问题已修复，帮忙再验证下


replaced underscores with dashes in cli options

underscored options left as aliases for backward compatibility
this should fix https://github.com/xiph/rav1e/issues/1376 (assuming dashes is decided to be the spacing style)

Coverage remained the same at 80.575% when pulling 550170dd06933705c4a80ff0c8b6b2ab8e4eb180 on khodzha:master into 6de19f85cd2c26c36231f2af164ccd48e31b62e8 on xiph:master.

thank you!


Increase accessibility by providing visual change in interface elements on keyboard focus

Hi Matt.  Can the user interface elements that can receive keyboard focus, be highlighted on focus?
I noticed the controls are not highlighted on focus when using the tab key on my keyboard.
To provide accessibility with keyboard navigation it is important that the focused component can be visually identified. If the focused component is not somehow highlighted, the user cannot be sure which component has focus.
Thanks,
Russell

The controls don't have a tab index, so they don't receive focus (as far as I know). Since they don't receive focus, they aren't highlighted.

Is it possible to give them a tab index?

Looking at various web maps, e.g. Google Maps, Leaflet, Mapbox GL, etc., most don't use tab indicies for the zoom controls, or the ones that do don't show a visual indication, so Pannellum is by no means the exception in this regard. I experimented with adding a visual indicator to the buttons, but I find it quite distracting. I could add tab indicies without a highlight?

One of the most significant things you can do to improve the accessibility of your work is to create highly visible focus indicators.

-Derek Featherstone
There's also an article from The Paciello Group about creating accessible digital map experiences.. Not a lot online about accessible maps, but that article has a few tips and links to a few decent resources. Pannellum does pretty well here with arrow and +/- keys.


Run python file in pipenv environment fails

Use pipenv for current environment
Run python file in terminal

Open python file , right click and use the menu option Run Python file in terminal
The terminal will now open automatically
Python Extension will send the text pipenv shell to activate the environment in the terminal
The python extension will send the text <python interpreter> <file name> to the terminal
Unfortunately there's a race condition here, pipenv shell has not yet completed, and the commands sent later get swallowed up

End result, file doesn't run in terminal

Causes:

There's no way to determine when terminal has completed processing previously sent commands.
VSC is sending messages to the terminal, when its busy

Solutions:

Python extension adds a delay between the two commands being sent to the terminal (this is what we do today). However pipenv shell takes longer than other activation routines, hence we need a much longer delay (i.e. a bigger magic number), a work around.
Or, VSC provides some api to let us know the terminal is ready to accept input.

https://github.com/Microsoft/vscode/issues/67693

I believe I'm stuck on this.  In the terminal I see this:
~/om/github.ibm.com/pquiring/vpcibm$ pipenv shell
Launching subshell in virtual environment…
 . /Users/pquiring/Envs/vpcibm-spz4F-UA/bin/activate
~/om/github.ibm.com/pquiring/vpcibm$  . /Users/pquiring/Envs/vpcibm-spz4F-UA/bin/activate
(vpcibm) ~/om/github.ibm.com/pquiring/vpcibm$

How do I work around this?  Is it possible to just hard code the python environment?  I've had things set up with a specific python and it worked in the past few weeks, but this no longer works:
    {
      "name": "Python vpcibm.py",
      "type": "python",
      "request": "launch",
      "program": "vpcibm.py",
      "console": "integratedTerminal",
      "pythonPath": "/Users/pquiring/Envs/vpcibm-spz4F-UA/bin/python"
    }

The terminal window displays:
 . /Users/pquiring/Envs/jupyter-f2acqZjX/bin/activate
~/om/github.ibm.com/pquiring/portfolio-inbound/scenarios/roadmap/vpc/jupyter$  . /Users/pquiring/Envs/jupyter-f2acqZjX/bin/activate
(jupyter) ~/om/github.ibm.com/pquiring/portfolio-inbound/scenarios/roadmap/vpc/jupyter$

Solution: Use new VSC API (proposed API at the time of writing this) to check what information has been written out into terminal before sending other commands.

Closing in favor of https://github.com/microsoft/vscode-python/issues/16988, we also are no longer using pipenv shell command.


fix: allow option to handle deep link yourself

Complete each step to get your pull request merged in. Learn more about the workflow this project uses.

[ ] Assign members of your team to review the pull request.
[ ] Wait for pull request status checks to complete. If there are problems, fix them until you see that all status checks are passing.
[ ] Wait until the pull request has been reviewed and approved by a teammate
[ ] After pull request is approved, and you determine it's ready add the label "Ready to merge" to the pull request. A bot will squash and merge the pull request for you after the label is added.

Pull request title looks good 👍. If this pull request gets merged, it will cause a new release of the software.
Example: If this project's latest release version is 1.0.0. If this pull request gets merged in, the next release of this project will be 1.0.1.
To merge this pull request, add the label Ready to merge to this pull request and I'll merge it for you.

Warnings

:warning:

I noticed file Tests/MessagingPushFCM/APITest.swift was modified. That could mean that this pull request is introducing a breaking change to the SDK.
If this pull request does introduce a breaking change, make sure the pull request title is in the format:
<type>!: description of breaking change
// Example:
refactor!: remove onComplete callback from async functions

:warning:

I noticed file Tests/MessagingPushAPN/APITest.swift was modified. That could mean that this pull request is introducing a breaking change to the SDK.
If this pull request does introduce a breaking change, make sure the pull request title is in the format:
<type>!: description of breaking change
// Example:
refactor!: remove onComplete callback from async functions

  Generated by :no_entry_sign: dangerJS against 6737db98a409a1e9116c33b442507637bf338c46

We may want to wait on this bug fix to look at this feature request. Since it is very much related, we may want to add it here?
We don't want to introduce a breaking change to the SDK's API but I think we can add optional parameters or add a new method to the SDK to stay backwards compatible while still satisfying this problem of manually handling push notifications.

Hey, there @levibostian 👋🤖. I'm a bot here to help you.
⚠ Pull requests into the branch main typically only allows changes with the types: fix. From the pull request title, the type of change this pull request is trying to complete is: feat. ⚠
This pull request might still be allowed to be merged. However, you might want to consider make this pull request merge into a different branch other then main.

This PR's lint rules may be broken. Merge this pr into this one after a PR review has been done.
I made 2 PRs to make this one's review easier to do.

:tada: This PR is included in version 1.2.0-alpha.2 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

:tada: This PR is included in version 1.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


fix select when change theme

Hello, I am done fixing bug select from this issue #1406. Thank you

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[FEA] Implement cupy.cuda.set_allocator to allow share memory allocator between different libraries

Hi,
GPU-accelerated libraries usually pre-allocate an amount of GPU memory in order to increase their performance.
That is great if those libraries are used in isolation, but when we need to combine different  libraries, chances are that we get an OOM because different memory managers are fighting for the available GPU memory.
In order to solve the issue described above, some libraries have adopted a mechanism to share a unique memory manager among them.
For instance, CuPy and RAPIDS cuDF provides set_allocator()  method to specify which memory manager is being used by these libraries. Numba also supports it.
It would be great if you could provide the same mechanism in JAX. I am aware you already provide a to_dlpack() method, which will present the data in a format familiar to many libraries, like cuDF and CuPy. I think that being able to share a memory manager would facilitate JAX integration with other GPU-Accelerated libraries.
Thanks for considering the above.
Regards,
Miguel

I support this request

I support this request

+1 support this request as well

+1 support this request as well

+1

+1

For my understanding, what other GPU libraries would you like to run with JAX?
One way I can think to implement this would be to provide a way to pass in a custom allocator instead of using the hardcoded one here: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/xla/pjrt/gpu_device.cc#L323. Then we could plumb through a user-defined Python function (?) from JAX that defines how to allocate/deallocate, and wrap that in the interface the C++ code expects.
This sounds doable but a decent-sized project, so I can't commit to any timeline for implementing this unfortunately. @hawkinsp do you have any further thoughts or ideas?

For my understanding, what other GPU libraries would you like to run with JAX?
One way I can think to implement this would be to provide a way to pass in a custom allocator instead of using the hardcoded one here: https://github.com/tensorflow/tensorflow/blob/master/tensorflow/compiler/xla/pjrt/gpu_device.cc#L323. Then we could plumb through a user-defined Python function (?) from JAX that defines how to allocate/deallocate, and wrap that in the interface the C++ code expects.
This sounds doable but a decent-sized project, so I can't commit to any timeline for implementing this unfortunately. @hawkinsp do you have any further thoughts or ideas?

Hi @skye ,
Thank you for considering this Feature Request.
I think we might find multiple workloads that might benefit from the integration with RAPIDS libraries (cudf, cuml, cugraph...).
For instance, NLP workloads like the following would benefit from GPU accelerated preprocessing and tokenization, provided by cudf and cuml (https://medium.com/rapids-ai/state-of-the-art-nlp-at-scale-with-rapids-huggingface-and-dask-a885c19ce87b).
Regards,
Miguel

Hi @skye ,
Thank you for considering this Feature Request.
I think we might find multiple workloads that might benefit from the integration with RAPIDS libraries (cudf, cuml, cugraph...).
For instance, NLP workloads like the following would benefit from GPU accelerated preprocessing and tokenization, provided by cudf and cuml (https://medium.com/rapids-ai/state-of-the-art-nlp-at-scale-with-rapids-huggingface-and-dask-a885c19ce87b).
Regards,
Miguel

Hi @skye

For my understanding, what other GPU libraries would you like to run with JAX?

I'm also using a combination of Cuda libraries like Numba, CuPy and TensorRT, wondering if it's possible to fit Jax into the mix. Sharing device arrays is pretty easy thanks to CUDA Array Interface. But being able to coordinate memory allocations is an important aspect when memory pooling libraries like CuPy or Jax are involved.
Luckily, user defined memory allocators are somewhat of a reoccurring pattern with basically the same mechanics. For reference:

TensorRT, GPU Allocator
CuPy, Changing Memory Pool
Numba, External Memory Management

TL;DR: +1 :)

Hi all, btw, please let me mention that PyTorch has recently added support to RMM.
Therefore, IIRC, so far RMM is supported by Dask, RAPIDS libraries (cuDF, cuML, cuGraph...), PyTorch, Numba and CuPy.
It would be great to add JAX (and TensorFlow) to the list! :-)

For my understanding, what other GPU libraries would you like to run with JAX?

I'm also using a combination of Cuda libraries like Numba, CuPy and TensorRT, wondering if it's possible to fit Jax into the mix. Sharing device arrays is pretty easy thanks to CUDA Array Interface. But being able to coordinate memory allocations is an important aspect when memory pooling libraries like CuPy or Jax are involved.

Also worth noting issue ( https://github.com/google/jax/issues/1100 ) where some additional functionality is still needed for __cuda_array_interface__ support

If the implementation of custom memory allocators in XLA is indeed a decent-sized project as @skye mentioned and won't be happening in the foreseeable future, maybe jax could allow limited access to the existing XLA allocator via python?
If we can't adapt memory management in jax, this would give us the option to use the fixed xla allocator within other libraries, and thus enabling some basic coexistence.
I was thinking about some proof of principle by just using jnp.empty as an allocator, but according to the docs, jax doesn't support uninitialized arrays and is always going to zero-initialize them.. which is of course highly undesirable for an allocator :/
So basically, a feature request for "np.empty" and/or "low level access to xla allocator". Would this be easier to do in xla?

Hi not sure if will help but also I think this issue is highly related with #11056 .  As stated, some of the problems of OOM in gpu is due to problems of data swap between memories, clear memory data , and memory managment using jax.While manual memory managment is an important feature, I think these issue boilds down into how can I fit my models in memory for computation. Thus, allwing Cuda Unified memory as feature will solve automatically (but not in an  necesarylly efficient) this OOM issues . For the typical joe jax user (that doesn't want to meddle with mannual memory managment, and prefer to focus on testing if the model works) that would be a hugh help.


Linux version 5.3.0-kali3-amd64   support

please any update information about the support of
Linux version 5.3.0-kali3-amd64 ?

Hi @mohlondon
Thanks for reaching out.
Latest ROCm 4.1 supports 5.8 and 5.6 kernels officially and request you to try the same.
Thank you.


remove ovirt / redhat settings

corresponding PR https://github.com/ManageIQ/manageiq-providers-ovirt/pull/99
whats still missing is event_handling settings. This would involve identifying the redhat events in the core settings and moving them here.
merge this in favour of https://github.com/ManageIQ/manageiq/pull/15601
@miq-bot assign @blomquisg
@miq-bot add_labels providers/rhevm, refactoring

travis fails because https://github.com/ManageIQ/manageiq-providers-ovirt/pull/99 is not merged yet


confusing sentence

"When an endpoint resource is defined in the service manifest, Service Fabric assigns ports from the reserved application port range when a port isn't specified explicitly"  So when a port is defined it can be outside the application port range? then why the port range in the first place? port range is on 20000 while manifest it is like 8444. So much difference

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

ID: 94aa1985-f344-537c-ba38-d5a9a1626a4d
Version Independent ID: 5d685dd3-dc6b-879c-202c-c20d1fe21066
Content: Specifying Service Fabric service endpoints
Content Source: articles/service-fabric/service-fabric-service-manifest-resources.md
Service: service-fabric
GitHub Login: @mani-ramaswamy
Microsoft Alias: subramar

@theBlueclouds Thank you for taking the time to ask this question and seek clarification. Did you include a specific port number or did you leave it blank, wishing to be provisioned a port number within the range specified in the manifest file but, in fact, have been provisioned a port number outside that range in the manifest file? Please clarify, as we are actively looking into your query,

@theBlueclouds Any updates? Can you please clarify on the question above. Thanks.

@theBlueclouds Any updates?

@theBlueclouds We will now close this issue. Please come back whenever you are ready. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Size of frame video was change and appear effect stretch when change poster and source url

Version plyr use is 3.5.2
When I click a image on right panel, source and poster of plyr video will change but size of frame video also change and appear effect stretch image to height (see gif was attached)
I only use this code to change source and poster, and don't use css.
initPlayer: function (data) {
	this.player.source = {
		type: 'video',
		title: 'Example title',
		sources: [
			{
				src: data.googleVideoUrl,
				type: 'video/mp4',
				size: 480,
			},
			{
				src: data.googleVideoUrl,
				type: 'video/mp4',
				size: 720,
			}
		],
		poster: data.googleVideoThumbnail,
		hideControls: true,
		blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
		quality: { default: 480, options: [720, 480] },
		loop:{ active: false },
		ads: { enabled: false, publisherId: '' }
	};
},

html code
<video id="player" playsinline controls>
</video>

code to init player plyr run once
this.player = new Plyr('#player', {});

You can now fix the ratio of the player which should solve this.
https://github.com/sampotts/plyr/#options
There's also a getter (and setter) which means you can update the ratio after the initial setup.


Control plane not suspended or stopped when cluster is hibernated

When we hibernate a cluster the control plane is not shut down. This produces many errors (in fact I have been hunting them until I realised that the cluster was hibernated) and consumes resources. Can we please scale the deployments to 0 or delete the pods in the control plane when the cluster is hibernated.

Can you be more specific? The control plane is shut down to some extent (e.g. monitoring stack), but not completely for technical reasons. Maybe we can improve hibernation further, but what are those errors?

@rfranzke mentioned that the control plane is not shut down. Anyway, we see several megabytes (I guess to the extend of the log rotation) of garbage logs from the vpn pods (number of api servers plus 1). It appears that the api server pods and prometheus pods remain up.

etcd, kube-apiserver, kube-controller-manager, kube-scheduler(, aws-lb-readvertiser), and machine-controller-manager are not shut down. The rest including the entire monitoring stack and autoscaler is shut down.
I can't remember anymore why we kept the above mentioned pods. I guess it should be also fine to shut them down as well. @vlerenc, do you maybe remember the reason?

No @rfranzke, that's why I wrote "Maybe we can improve hibernation further". I can't recall any good reason anymore. Gardener has control and can resurrect at will, so let's try. Will reduce costs even more and of course get rid of the seed VPNs/logging that their shoot counterpart is long gone.

I wanted to implement it, but then I remembered why we might have decided to not scale down everything entirely: If a shoot is hibernated and shall be deleted then no etcd,apiserver,controller-manager will be running. However, the deletion flow needs to talk to the apiserver to ensure a proper cleanup.
We have three options:

We disallow shoot deletion when a cluster is hibernated: A user would have to wake up the cluster in a first step, and then delete it in another one. The overall deletion process will take much longer as the cluster needs to be woken up first.
We redeploy the needed components for the deletion process in the shoot deletion flow: Drastic code change, probably very ugly, and I'm not even sure if it can be done without complicating the whole code tremendously.
We scale down everything other than etcd, apiserver, kube-controller-manager, cloud-controller-managers: No special handling needed, but aws-lb-readvertiser, kube-scheduler, and machine-controller-manager are scaled down (which are currently not).

I heavily vote for option 3 as it can be achieved very fast, and does neither complicate/uglify the deletion process for the user nor for us (implementation-wise).
Would you agree?

Just had a chat with @dguendisch: When talking about the second approach I was assuming that the deployments have already been deleted, however, in fact they would have been only scaled down to zero. There might be an easy way to wake them up again when deleting a shoot. I will explore it and come back.

I explored this path a little bit. It is too complicated to really shut down everything entirely without modifying the codes in too many places. Lots of steps are depending on a running/available Shoot API server. We need at least

etcd-events
etcd-main
kube-apiserver

Theoretically, we could scale down the remaining deployments and wake them up in the deletion flow.
I have done the implementation for this behaviour, however, the machine-controller-manager seems to delete Machine objects although the VMs are not yet gone:
$ kubectl -n shoot--dev--aws get mach
No resources found.

$ kubectl get no
NAME                                          STATUS                     ROLES   AGE     VERSION
ip-10-250-18-145.eu-west-1.compute.internal   Ready,SchedulingDisabled   node    8m31s   v1.9.10
ip-10-250-25-166.eu-west-1.compute.internal   Ready,SchedulingDisabled   node    8m3s    v1.9.10
ip-10-250-3-226.eu-west-1.compute.internal    Ready,SchedulingDisabled   node    8m43s   v1.9.10

I informated @prashanth26 and @hardikdr to further investigate. I paused this one now as the implementation depends on a correct behaviour when scaling down the machine deployment to 0.

AWS takes a while (up to a few minutes) to terminate VMs. During this phase, the node object is stuck in   Ready,SchedulingDisabled. Eventually, these objects get deleted.

@rfranzke Perhaps we can shutdown kube-controller-manager after it has deleted the nodes? Is that a possibility?

We could shut it down in a later reconciliation, but not in the same reconciliation that hibernates a cluster (too complicated code-wise).

Opened PR #477. As described before we will end up with etcd and the kube-apiserver (and the kube-controller-manager if there are still nodes, however, it would be scaled down in a further reconciliation step).
@marwinski As we keep the kube-apiserver for now we will also keep the vpn-seed (same pod). If you want to get rid of the error messages produced by VPN you add a check whether nodes exist (or better, whether a vpn-shoot pod exists and runs), and only try establishing the connection if this succeeds (call against apiserver similar to https://github.com/gardener/vpn/blob/master/seed/network-connection.sh#L46-L53).

I had no chance to read through the stream of messages yesterday, but my take would have been clearly #1, but the following comments shed some more light on the matter: internal dependencies to a running API server. What exactly are these dependencies, e.g. care controller?
Reasoning: #1 or rather a total shutdown of the control plane is the right thing to do, because:

It basically relieves the seed of all responsibility and will later fit nicely into relocating shoots to other seeds (hibernation is the time window the customer gives us to rebalance the seeds without having to pay for it with a lower availability).
All our efforts to reduce costs, e.g. cron-based hibernation, pay off more if the control plane is gone.
We plan to have a large number of hibernated clusters with our output qualification process (pool of hibernated seeds, hibernated shoots after PR testing), so every core we do not burn/memory we release, saves money.
In summary, costs, costs, costs. Especially ETCD will consume a lot of resources in larger clusters (vertically scaled with the number of max nodes and who would scale it down, if not we again in additional code) and I am not sure how the API servers will react/when they will scale-down (in productive clusters not below 2 anyways and the vertical scaling is static in relation to the number of max nodes also here, but of course we can change that behaviour in the case of hibernation, but that's even more code).
VPN issues (another motivation, though I agree, that hopefully there is also another solution)
All in all, the issues with MCM above already indicate dangerous complexity (not even sure I would have scaled it down, if the rest of the control plane still runs anyway), maybe we will have more issues with total shutdown, maybe less/some things will become easier (e.g. scale-in/down mentioned in the lines above).

OK, we will do whatever you decide for practical reasons, but my goal is clearly total shutdown and nothing else. Only then we will have peace with this topic and really save money for our community.

Fully agreed, my goal is the same - I just don't want to spend this time right now implementing it because it is not straight-forward.
I have opened a PR that only keeps etcd+apiserver which should be fine for time being (at least it improves a lot in contrast to how it was before (all controllers still running). We will certainly address the topic again after the extensibility epic.


Mapping file descriptors of pwsh process to Powershell streams

Summary
I need a way to specify (using command line arguments to pwsh) a mapping between Powershell streams and process file descriptors . Right now I can't see a way to prevent warnings, progress information, and debug messages from being munged together on stdout alongside data that needs to be in a particular format (e.g. JSON).
Steps to reproduce
Put the following code into a file test:
#!/usr/bin/env pwsh
Write-Warning "test"
Write-Output "[{ foo: 1 }]"

In some shell of your choosing, run the equivalent of:
chmod +x ./test
./test 1>output 2>error

Expected behavior
The file output should contain:
[{ foo: 1 }]

Actual behavior
The file output contains:
WARNING: test
[{ foo: 1 }]

Environment data
> $PSVersionTable
Name                           Value
----                           -----
PSVersion                      6.1.0
PSEdition                      Core
GitCommitId                    6.1.0
OS                             Linux 4.18.9-arch1-1-ARCH #1 SMP PREEMPT Wed Sep 19 21:19:17 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Alternately, the streams should just be serialized to the file descriptor corresponding to the stream numbers documented here, and anyone who wants to see progress, warning etc. output on stdout can just manually redirect all of those file descriptors into 1.

PowerShell can redirect streams https://blogs.technet.microsoft.com/heyscriptingguy/2014/03/30/understanding-streams-redirection-and-write-host-in-powershell/

@vexx32 I don't always have access to the script though (nor to the scripts that it transitively calls). From my perspective I'm just trying to evaluate some black box binary which emits data to a variety of output streams, and I only care about retrieving one of them, which is trivial with other shells and script interpreters.
If some functions somewhere do Write-Warning or Write-Debug or whatever, I want to be able to retrieve the output sans that content.

@SteveL-MSFT Processes also have more file descriptors than just 1 and 2, so maybe the output for each Powershell stream >2 could go to the corresponding file descriptors.
The use case is to have a script that uses various modules (e.g. PowerCLI) and emits a fixed format. It's going to live alongside a variety of other scripts (most of which are not implemented in Powershell) that emit an identical format.
Right now the script pollutes stdout with warning/progress/debug information emitted by the various modules it uses. If this was instead a bash script, stuff that is emitted on fd 3 by a dependent script would not contaminate the output of fd 1 (i.e. stdout).

@SteveL-MSFT

Are you asking for something like:
pwsh -warning warning.txt

Yes, something like that would be very useful, provided it can be specified exhaustively for all Powershell streams.

Arguably, what PowerShell should always have done is to map all streams other than the success stream to stderr (this is basically what native shells / utilities are forced to do: anything that's not data must go to stderr) - throwing everything into stdout was never a good idea.
It is another unfortunate example of PowerShell treating the outside world as an afterthought - which was less of a problem on Windows, but Unix users will expect conformant behavior.
It would be a breaking change, @SteveL-MSFT, but perhaps it's not too late for Core?
+1  for the option to capture streams individually.

P.S.:
While everything currently goes to stdout in the absence of redirections or only  stdout redirection, at least with an  2> redirection it is currently possible to capture the error stream separately - but only the error stream: streams 3 - 6 invariably go to stdout.
Here are variations of a simple test command that exercises all streams:
# From Bash:
$ pwsh -nop -command "write-output 1; write-error 2; write-warning 3; write-verbose -vb 4; \$DebugPreference = 'Continue'; Write-Debug 5; Write-Host 6"

# From cmd.exe
C:> pwsh -nop -command "write-output 1; write-error 2; write-warning 3; write-verbose -vb 4; $DebugPreference = 'Continue'; Write-Debug 5; Write-Host 6"
# Windows PowerShell
C:> powershell -nop -command "write-output 1; write-error 2; write-warning 3; write-verbose -vb 4; $DebugPreference = 'Continue'; Write-Debug 5; Write-Host 6"

@mklement0 changing from STDOUT to STDERR is probably too big a breaking change to take at this point, adding a switch to pwsh to enable this is doable if people will actually use it.

@SteveL-MSFT, I just remembered the discussion about providing a separate pwsh-np binary for starting PowerShell without loading $PROFILE, for use in shebang lines (see #992).
Perhaps we should consider fixing all the broken things there, to provide a CLI that fits better into the Unix world and has saner defaults overall (perhaps with a different name than pwsh-np).
Aside from not loading $PROFILE, this could include:

Sending PS streams 2 - 6 to stderr by default, as discussed here.
Fixing the CLI issues listed in #3743

@mklement0 that may be a good solution as it wouldn't be a breaking change, but then pwsh-np may not be a good name to capture the differences to pwsh

I just came across this thread as I wanted to capture warning/debug/verbose streams separately too. Turns out you can run pwsh with `pwsh -o XML -c "Write-Verbose 123" which pipes XML based messages to stdout and stderr with all of the information (and more) that you can use to capture all output. I have almost managed to make it work properly, my current problem is incorrect order of incoming data e.g. from below script:
$ErrorActionPreference = "Continue"
$DebugPreference = "Continue"
$VerbosePreference = "Continue"

$PSVersionTable | Out-Host

Write-Debug "Hello DEBUG"
Write-Verbose "Hello VERBOSE"
Write-Output "Hello OUTPUT"
Write-Host "Hello HOST"
Write-Information "Hello INFORMATION"
Write-Warning "Hello WARNING"
Write-Error "Hello ERROR"
throw "Hello THROW"

I see Hello DEBUG and Hello VERBOSE before $PSVersionTable output.
I am using node.js to process the output:
const child_process = require('child_process');
const fs = require('fs');
const path = require('path');
const util = require('util');
const Saxophone = require('saxophone');

const cp = child_process.spawn(
  'pwsh',
  ['-NoProfile', '-NoLogo', '-NonInteractive', '-OutputFormat', 'XML', '-File', path.join(__dirname, 'script.ps1')],
  );

new CliXMLParser(cp.stdout, 'stdout');
new CliXMLParser(cp.stderr, 'stderr');

function CliXMLParser(stream, name) {
  this.stream = stream;
  this.name = name;
  this.currentTag = null;
  this.debugOut = fs.createWriteStream(util.format('%s.xml', name), 'utf-8')
  const self = this;

  this.stream.on('data', (chunk) => {
    const text = chunk.toString('utf-8');
    console.log('chunk received', text.slice(0, 100));
    if (text.indexOf('#< CLIXML') === 0) {

      self.parser = new Saxophone();

      self.parser.on('tagopen', tag => {
        self.currentTag = tag;
      })

      self.parser.on('tagclosed', () => {
        self.currentTag = null;
      })

      self.parser.on('text', (text) => {
        if (!self.currentTag) {
          return;
        }

        const attributes = Saxophone.parseAttrs(self.currentTag.attrs);

        if (text.contents === '_x000A_') {
          return; // process.stdout.write("\n");
        }

        if(self.currentTag.name === 'ToString') {
          console.log(text.contents)
        }

        if(attributes.S && attributes.S !== "Output") {
          process.stdout.write(util.format('##%s ', attributes.S.toLowerCase()))
        }

        if(self.currentTag.name === 'S') {
          console.log(text.contents)
        }
      })

      self.parser.on('finish', () => {
        console.log('Parsing finished.');
      });

      self.parser.on('error', (err) => {
        console.error(err);
      });
    } else {
      self.debugOut.write(chunk);

      if (self.parser){
        self.parser.write(chunk);
      }
    }
  })

  this.stream.on('error', err => {
    console.error(err);
  })

  this.stream.on('end', () => {
    console.log("Closing debug out")
    self.debugOut.close();
  })
}

cp.on('exit', (code) => {
  console.log("Pwsh exited with code %d", code);
})

console.log("Started pwsh process: %s", cp.pid);

You may have hit a bug, which I've just reported in #12489.
Also, it seems that host output is captured as success-stream output (S="Output") rather than information-stream output (S="information") - but that may
be by (historical) design and is probably retained for backward compatibility (the information stream, to which Write-Host (but not Out-Host) now writes, wasn't introduced until v5).


Support for Java

Can we add an LSP for Java to support this language as well?

We definitely can. It'll probably take a bit more time than usual because last time I played with jdtls in neovim it took me quite a while to make it work. I'll start looking into it.

Thank you!

Hello, do we have any updates on adding supports for Java?


Enforce integrity of secure channel after remote attestation

The remote_attestation sample implements a "proprietary" secure channel (as mentioned in #1325). The algorithm exchanges public keys for both the enclaves and uses these public keys to encrypt the messages to each other.
But the public keys are visible to the external world including the host. This compromises the integrity of the messages sent over the channel. The host can fake messages on behalf of the enclaves.
As a fix, the enclaves should use the established ephemeral private keys to perform a signed Diffie-Hellman key exchange and use symmetric key cryptography to communicate after that point. This will also improve the communication overhead.
Diffie-Hellman key exchange would be the ideal implementation. But an alternate implementation could just generate an ephemeral symmetric key in one of the enclave, sign it with its own private key and then encrypt it with the public key of the other enclave to be sent to the other enclave. This will ensure that the symmetric key is known only to the two enclaves and the root of trust is in the remote attestation.

Ajay, thanks for pointing out this issue.
What you pointed out is correct that the channel established in the existing remote attestation sample is susceptible to fake messages originated by any untrusted hosts that have access to the public key.
Given the attested tls feature (#1325) is coming in a couple weeks, what I am going to do is to update the remote attestation to limit it to mutual attestation and point out additional session exchange logics (such as Diffie-Hellman algorithm) in order to establish a really "secure" channel, instead of adding session exchange logics there, which will be soon replaced by the Attested TLS feature.
Let me know what you think

Hi Cheng,
When you say point out additional session exchange logics do you mean you would add instructions to the README? Also does this mean you will remove the ecall_dispatcher::generate_encrypted_message function and the corresponding ecall_dispatcher::process_encrypted_msg function from the sample?
I agree, Attested TLS would solve this completely. Looking forward to that feature.
Thanks

@soccerGB - Can you please clarify if you want to go ahead with the plan of action that you mentioned here.

Reassigned to @anitagov to implement the reduced scope fix

My PR #1944 addresses this and modifies the remote attestation to remove claims of having a secure channel. The additional session exchange routines after mutual attestation has been completed have been removed.
There will be other issues/PRs for samples with TLS, etc.
Closing t his as #1944 has been merged to master.

@AjayBrahmakshatriya
Thanks for your great feedback.
Based on your feedback, we updated the remote attestation sample to make it focus only on demonstrating how to conduct remote attestation itself by removing the "secure channel" part of implementation and documentation.  We will have separate sample the need for A future separate sample will have proprietary
And the Attested TLS channel feature (tracked by https://github.com/openenclave/openenclave/issues/1325) has been merged into the master branch. You can find SDK samples in https://github.com/openenclave/openenclave/blob/master/samples/attested_tls/README.md
Any feedback will be great appreciated.


Update django.md

Proposed changes

Unreleased project version (optional)

Related issues (optional)

Please also change the section "9" of https://github.com/docker/docker.github.io/blob/master/compose/django.md#define-the-project-components to also mention the password in the docker-compose.yml.
Like:
version: '3'

services:
  db:
    image: postgres
    restart: always
    environment:
      POSTGRES_PASSWORD: postgres
  web:
    build: .
    command: python manage.py runserver <IP_ADDRESS>:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

What for? It will work without environment block, but password in the settings.py is important parameter without which it will not work.

To make it explicit. That says:
"We set the password in the container, then we use the same password in the settings.py"

@simbirsky Hi Mihail, how do you think can we close this PR? In master branch of this repo password postgres is used: https://github.com/docker/docker.github.io/blob/master/compose/django.md


save RASA model in bucket s3 AWS

Hi all, I have try different approach to SAVE automatically rasa model in aws s3 bucket but any of solution work for me
if any one can help for this case and thanks
P.s : i have read the doc but nothing about to save in s3 only about [rasa run remote-storage ...] https://rasa.com/docs/rasa/user-guide/cloud-storage/

Have any code we can see？

Thanks for raising this issue, @tttthomasssss will get back to you about it soon✨
Please also check out the docs and the forum in case your issue was raised there too 🤗

so my probleme is : i wanna save model rasa automatically in s3 after the training like : rasa train --out [BUCKET S3] (i dont do that is only to explain)
i have set credentials in ~/.aws/ and in the config.yml (rasa config) […] bucket_name: “XXX” aws_region: “eu-west-1” storage: “aws” […] but i m not enbale to save model directly in s3 :/
@Dustyposa no cuz it s only a config file so i don t know how can i solve this probleme if anyone can help :/
And for the doc nothing about this

I see the source code. That's look like don't support save model on remote storage. But you can load or use remote storage model to run server.
@kchahid
And this feature sounds good.

i have set a model in s3 and run it .... when i use the endpoint model/train the model save in the container and not in s3 !!


"[ERROR] Two output files share the same path but have different contents" when building native federation cache

I'm trying to migrate from webpack to native federation...
I've managed to make it work with one of my mfe, but I've another that is failing to generate the native federation cache bundle throwing the error: [ERROR] Two output files share the same path but have different contents when building native federation cache

The full console output:
error.txt
I'm not sure if the problem comes from the compatibility of fullcalendar library (I may try to get feedbackfrom them) with esbuild or with the native federation plugin itself.
I've tried to skip fullcalendar libraries in the federation.config.js

But I get the same error, for some reason it seems that is included inthe bundle.
Any idea of how can I workround this issue?
Thanks and best regards.

Can you please try to skip full calender via a RegExp:
skip:[
/^@fullcalendar//
]
This includes everything starting with fullcalender.
I will have a closer look soon to find out why fullcalender is causing this issue.

After adding the skip with the regexp as you said it worked.

Thank you for your support.
I thought it worked at library level, The regexp works in the same way in the "share" settings?

Glad to hear that it works now. The RegExp only works in skip.


Configuration parameter to prevent reduction in font size of left sidebar in docs layout

Prerequisites

[X] I have searched for duplicate or closed feature requests

Proposal
Add a configuration parameter to prevent reduction in font size in the left sidebar of the docs layout. For example, something like
docs:
  reduceFontSize: false

Alternatively, just remove the font size reduction entirely.
Motivation and context
The navigation sidebar (left sidebar) in docs layout keeps reducing the font size as you go deeper into the hierarchy. At deeper levels in the hierarchy, the font size becomes too small to easily read. For example, in the image below, the font size has become very small for text like 'add-backlinks'

In the older version of the theme I am currently using, there is no font size reduction and all the text is readable even if it is deep in the hierarchy. See below the same example, but with older version of the theme.

I have very deep hierarchies in my docs layout.. so I would like to prevent font size reduction to keep the text readable.

Alternatively, just remove the font size reduction entirely.

Removing fontSize block from params.yaml may help, I'm not quite sure.

@razonyang Removing fontSize block from params.yaml does not help. That just removes the option to change font sizes from the top bar.

I see, I'm misundertanding this request, will create a parameter for this.

To do this, please upgrade to v1.6.0, and configure the following parameter.
// params.yaml
docsNav:
  reduceFontSize: false

@razonyang Thanks. This works perfectly.
Just a minor comment. My config/_default/params.yaml looks like this right now
#docs:
  # nav:
    # expand: true # Expand docs navigations.

docsNav:
  reduceFontSize: false

Since there is already a top level section named docs in the params.yaml file, it might have been more logical to make this configuration under the existing docs. For example, something like
docs:
  nav:
    expand: false
    reduceFontSize: false

@sagarbehere thanks for pointing it out, I don't remmember there is, I'm renaming it to docs.nav.reduceFontSize, and draft a new release later.

Renamed since v1.6.1.

I just tested with v1.6.1. It works. Thank you for the quick fix.


Step-by-step navigation does not convey all of the information for screen reader users when viewing them as forms

This issue is from May 2023 external accessibility audit report.
Usability issue
Issue ID:
DAC_Usability_Step_By_Step_01
URLs:
https://www.gov.uk/visit-uk-business-trip
Screen shots

The step by step navigation page consists of headings containing buttons as the components used to expand the content. However, the step number content is not included within the button elements. This means that the step information is only conveyed when viewing them as headings and not as forms.
Current code ref(s)
#apply-for-a-family-permit
Screen reader comments

“I found that there were multiple steps in the process with both the step number and accordion buttons marked-up as headings.

JAWS and NVDA:
With the desktop screen reader software, I found that when using headings shortcut commands such as the ‘h’ key both the step and the accordion appeared within the same heading announcing as a single item. In context, however, these items appeared to be separated on different lines, although the content was clear when using the headings. When using form element shortcuts, however, the step did not announce within the label of the accordion announcing only the category. While situated out of context I was not able to easily understand the order of the steps and could only view the category. I would have found it easier if the content located within the heading text could also be found within the label of the accordion as this would enable me to immediately understand what is occurring both in and out of context.

VoiceOver:
When I moved in context, I found that the ‘Step’ heading appeared over two separate lines. I needed to swipe three times past each category to move to the next category with two swipes needed to move past the heading and then the third to move past the category. This content made the structure more difficult to understand although I was not prevented from understanding the content as a highly experienced screen reader user. When using the forms rotor like desktop screen reader software I was not able to locate the step number with only the category announcing therefore making the order more problematic to understand.

TalkBack: With TalkBack I found that the step and category announced over multiple lines. When using the ‘Controls’ menu I was only able to locate the name of the category meaning the order was not clear. I also found that the headings relating to the step and accordion were not detected when swiping in context. Instead, I needed to use the headings rotor to locate the headings meaning that in a non-testing environment some screen reader users may not locate the headings and could become confused.”

Solution
Consider incorporating all of the content and information into the  element, allowing for users of screen reading assistive technologies to have that information announced and conveyed with the label of the form, and not just the heading.

It would be pretty difficult to move the existing number to the same inner element as the heading without dramatically changing the appearance of the component. It would seem that it would instead need to be duplicated, with the duplicate made visible to screenreaders only and the visible number being [aria-hidden]. That way, the visible number will be ignored and the duplicate announced.
Doing this will end up showing two numbers in cases where CSS doesn't load, so applying [hidden] to one of the above may also need doing.
I'm also not sure how much this sits within our remit given this isn't a component currently shipped with Frontend, instead being part of GOV.UK Publishing Components.

@davidc-gds In experimenting quickly, it seems like that is certainly possible. Each 'step' and 'title' will need ids that they don't currently have, but in my brief local mockup and VO testing, it seems like aria-labelledby mostly does the trick.
The markup potentially is making this messier than it needs to be. Currently each heading is constructed of a <h2>, within which some of the content (the heading text and show/hide label) is contained within a <button>.
In VoiceOver, if you're navigating one element at a time or using the 'Headings' section of the rotor, upon landing on the header you get this overly-verbose readout of the contents. Interesting how our visually-hidden text in 'Show this section' is getting crunched up into one word, whereas the visually hidden text in 'Step 2:' is being split apart.
heading level 2, 3 items, Step, clickable, 2, clickable, Check if you need a visa, ShowThis Section, collapsed, button, group, 2 of 7

When navigating in VoiceOver by tabbing through interactive elements or using the 'Form Controls' section of the rotor, you receive a readback that omits the step number:
Check if you need a visa, ShowThis section, collapsed, button, group

I had to apply aria-labelledby to both elements, and whilst I still didn't get complete consistency between them, the output generally seemed to be improved. Navigating manually or Headings rotor now resulted in the below, where all mentions of the heading being interactable have seemingly been purged. (Good?)
heading level 2, 3 items, Step 2: Check if you need a visa, Show this section

Whereas navigating by tabbing or with the Form Controls rotor resulted in this, crunching the output a little and omitting the "show this section" instruction. (Arguably it isn't needed as the state of aria-expanded is being reported instead?)
Step2 Check if you need a visa, collapsed, button, group

Thanks for the quick experiment @querkmachine! So it sounds like it's certainly doable with aria-labelledby it would just be a matter of tweaking the actual implementation until the readouts with various screen readers are adequate.
Perhaps a rough protoype would be the next step, and we can run it through JAWS or NVDA to make sure there's no major egregious blockers?

I've made a branch that adds the step by step to the review app with the changes I mentioned implemented:
https://github.com/alphagov/govuk-frontend/pull/3901

It seems to work with VoiceOver pretty well. I won't have time to check with NVDA or JAWS until after Wednesday though, if you or someone else wants to.
https://github.com/alphagov/govuk-frontend/assets/98318778/a6d8844d-c201-4c8f-bba2-e79fd7077ed0
Video description
A screen recording of an example step-by-step navigation pattern, with the following pieces of text.
Focusable area 1:

Show all steps

Focusable area 2:

1
Do a thing
Show

Focusable area 3:

and
Do another thing
Show

Focusable area 4:

2
Do something else
Show

When tabbing between the different elements during the video, portions of the visible text is highlighted with a yellow focus indicator.
When tabbing between each focusable area, the following audio can be heard, in this sequence and at these tab locations:
(The video starts with focus on focusable area 1)
Tab to focusable area 2:
"Step 1 do a thing. List 3 items."
Tab to focusable area 3:
"And do another thing. You are currently on a button. Group."
Tab to focusable area 4:
"Step 2 do something else. You are currently on a button. Group. Inside a heading level 2. To click this button, click control, option, space."
Tab back to focusable area 3:
"And do another thing."
Tab back to focusable area 2:
"Step 1 do a thing. You are currently on a button. Group. Inside a heading level 2."
(And then the video ends, with focus on focusable area 2)

Comment from @davidc-gds on Slack, copied here for posterity:

Maybe we cen just add guidance saying that ideally the number gets read out with the label. Then like you said, it’s up to the teams actually making the code to determine how that works :shrug: Seems like a cop-out, but it would also help us remember to add in the number for the label if we ever code an example step-by-step nav for the design system.

@davidc-gds Go for it!


[SPARK-39719][R] Implement databaseExists/getDatabase in SparkR support 3L namespace

What changes were proposed in this pull request?
1, add databaseExists/getDatabase
2, make sure listTables support 3L namespace
3, modify sparkR-specific catalog method tables and tableNames to support 3L namespace
Why are the changes needed?
to support 3L namespace in SparkR
Does this PR introduce any user-facing change?
Yes
How was this patch tested?
updated UT and manual check

merged to master, thank you @HyukjinKwon


Show prefix text in TextField even when it is not in focus and empty

Currently there is no way to force prefix text defined in the InputDecoration to stay shown if text field is not in focus and text is empty.
https://github.com/flutter/flutter/blob/master/packages/flutter/lib/src/material/input_decorator.dart#L1669
Is there a way to extend InputDecorator to allow that behavior.

We've spoken with Design.
tl:dr Let's allow this functionality with caveats.
Details
This is partially tested and partially untested behavior so the informal guidance will be as follows:

Text-based prefixes are best when no wider than an icon.

When they are wider than an icon, the animation and the x value of the floating placeholder is undefined. The animation could end up crossing the prefix or the placeholder could end up too far trailing if it pins to the trailing of the prefix for its floating x.

Text-based suffixes are untested and can't have any guidance right now. It could end up being confusing to have<EMAIL_ADDRESS>as a suffix.
Currency symbols are probably the best use case at the moment.
Any text-based prefix or suffix should be 1 line and baseline aligned to the input text.
Use all this at your own risk until formal testing has been carried out. It's not at all known when that could happen.

So if I'm understanding the above correctly, we should have a flag on text fields that says whether or not the prefix and suffix should be included even when not focused and with no text.
cc @HansMuller

@HansMuller could you please let us know if the decorator is capable of doing what Mulligan is asking? If not, could we add this functionality as it is a launch blocker.

@willlarche is working on this. He will have an update in the week of August 13.

@shujames I just wanna make sure I understand the original request.
The prefix text is inline with the floating label when the label is down. If it's always showing, it will overlap:

If you want prefix text that is laid out to the leading of the label, that already exists with the prefixIcon field on InputDecoration. It takes any Widget. If you pass it a Text widget in a Center widget in a SizedBox widget, you'll get a layout that's pleasing:

Closing for now as it's not possible to keep the prefix text visible in all states with a floating placeholder which is the main usage of this widget.

Maybe this should be a separate issue, but the problem with using prefixIcon is that it has a minimum size of 48x48 as can be seen in input_decorator.dart:
final Widget prefixIcon = decoration.prefixIcon == null ? null :
Center(
  widthFactor: 1.0,
  heightFactor: 1.0,
  child: ConstrainedBox(
    constraints: const BoxConstraints(minWidth: 48.0, minHeight: 48.0),
    child: IconTheme.merge(
      data: IconThemeData(
        color: iconColor,
        size: iconSize,
      ),
      child: decoration.prefixIcon,
    ),
  ),
);

This results in something like this:

Whereas prefixText result in something that aligns much better:

prefixIcon code for reference:
TextField(
  decoration: InputDecoration(
    prefixIcon: SizedBox(
      child: Center(
        widthFactor: 0.0,
        child: Text('\$', style: Theme.of(context).textTheme.display1),
      ),
    ),
  ),
  style: Theme.of(context).textTheme.display1,
)

prefixText code:
TextField(
  decoration: InputDecoration(
    prefixText: '\$',
  ),
  style: Theme.of(context).textTheme.display1,
);

If prefixIcon is the approach to take, there should be a way to override the 48x48 constraint.

prefixIcon size must be changeable!
Our designers will hate us if we can't change expected in the design...

I for example, need prefix text for the '+' in dial code.
If look at whatsapp registration page, you'll see that the plus is shown even when the field isn't in focus..

@willlarche what about making an option for always prefix text, but that it'll depend on null label?
That should bypass the problem of prefix text and label at the same time. because, icon is not applicable always, like the '+' in the dial code.

well, maybe #30664 can be the solution.

A workaround:
TextStyle _decorationStyleOf(BuildContext context) {
  final theme = Theme.of(context);
  return theme.textTheme.subhead
      .copyWith(color: theme.hintColor);
}

Stack(
  alignment: Alignment.centerLeft,
  children: <Widget>[
    Builder(
      builder: (context) {
        return Text(
          'prefix',
          style: _decorationStyleOf(context),
        );
      }
    ),
    TextField(
      decoration: InputDecoration(
        prefixText: 'prefix',
        prefixStyle: TextStyle(color: Colors.transparent),
      ),
    ),
  ],
)

@PiN73 thanks for the workaround

Very Similar To How to add clear button to TextField Widget

I found a workaround for this, which is to set the prefixIcon (which is always shown) to a Text widget wrapped by a padding (because of alignment issues).
prefixIcon: Padding(padding: EdgeInsets.all(15), child: Text('$prefixTextStr')),


assert error in convert from yaml to xml

Hi, I am trying to convert from yaml to xml but I am getting this error, any idea how to find the source of error?
  File "...\lib\site-packages\xmlplain.py", line 523, in generate_from
    assert(len(root.items()) == 1)

AssertionError

This is the function I am using:
import xmlplain

def yaml_to_xml(yaml_fname, xml_fname):
    # Read the YAML file
    with open(yaml_fname) as inf:
        root = xmlplain.obj_from_yaml(inf)

    # Output back XML
    with open(xml_fname, "w") as outf:
        xmlplain.xml_from_obj(root, outf, pretty=True, indent='    ',)

In my case, the root has 13 items, so I am not sure what is wrong here.

XML can has only one root element. Scope your current map under a new root.

How to do that nicely? Can't change the yaml-file

Hi,
actually xmlplain is not suited for converting arbitrary yaml to xml.
The intent of this library is the reverse: converting an arbitrary xml document to a yaml representation, and then optionally converting this yaml representation or a conformant one back to xml.
The yaml representation used is not arbitrary and there are constraints on its topology such that it can be converted back to xml.
Hence to summarize, if your use case is to convert arbitrary yaml to xml, it is not the rigth tool. Sorry for this.


Backport "HBASE-28696 Partition BackupSystemTable queries (#6067)" to branch-2.6

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 58s

Docker mode activated.

-0 :warning:
yetus
0m  6s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2.6 Compile Tests _

+1 :green_heart:
mvninstall
3m 24s

branch-2.6 passed

+1 :green_heart:
compile
0m 21s

branch-2.6 passed

+1 :green_heart:
javadoc
0m 18s

branch-2.6 passed

+1 :green_heart:
shadedjars
6m 12s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m  8s

the patch passed

+1 :green_heart:
compile
0m 22s

the patch passed

+1 :green_heart:
javac
0m 22s

the patch passed

+1 :green_heart:
javadoc
0m 17s

the patch passed

+1 :green_heart:
shadedjars
6m  5s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
12m 33s

hbase-backup in the patch passed.

34m 58s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

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

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux 1eca7b5a582b 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.6 / 29d3ba311888d4bc02d3ff604ab5584c1b0e9969

Default Java
Temurin-1.8.0_412-b08

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

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

modules
C: hbase-backup U: hbase-backup

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

versions
git=2.34.1 maven=3.9.8

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

This message was automatically generated.

I'm not exactly sure what the jenkins failure here was.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m  5s

the patch passed

+1 :green_heart:
compile
0m 20s

the patch passed

+1 :green_heart:
javac
0m 20s

the patch passed

+1 :green_heart:
javadoc
0m 16s

the patch passed

+1 :green_heart:
shadedjars
5m 27s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
12m 20s

hbase-backup in the patch passed.

32m 30s

Subsystem
Report/Notes

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

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

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux cf7ec64d8d0d 5.4.0-186-generic #206-Ubuntu SMP Fri Apr 26 12:31:10 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.6 / 29d3ba311888d4bc02d3ff604ab5584c1b0e9969

Default Java
Eclipse Adoptium-11.0.23+9

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

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

modules
C: hbase-backup U: hbase-backup

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

versions
git=2.34.1 maven=3.9.8

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

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 41s

Docker mode activated.

-0 :warning:
yetus
0m  5s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2.6 Compile Tests _

+1 :green_heart:
mvninstall
3m 19s

branch-2.6 passed

+1 :green_heart:
compile
0m 18s

branch-2.6 passed

+1 :green_heart:
javadoc
0m 14s

branch-2.6 passed

+1 :green_heart:
shadedjars
6m  5s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
3m 10s

the patch passed

+1 :green_heart:
compile
0m 20s

the patch passed

+1 :green_heart:
javac
0m 20s

the patch passed

+1 :green_heart:
javadoc
0m 15s

the patch passed

+1 :green_heart:
shadedjars
5m 41s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
14m 40s

hbase-backup in the patch passed.

35m 57s

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/2/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

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

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux 049b3fe59c33 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.6 / 29d3ba311888d4bc02d3ff604ab5584c1b0e9969

Default Java
Temurin-1.8.0_412-b08

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

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

modules
C: hbase-backup U: hbase-backup

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

versions
git=2.34.1 maven=3.9.8

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

This message was automatically generated.

Now an error connecting to maven central. Once more.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 43s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  0s

codespell was not available.

+0 :ok:
detsecrets
0m  0s

detect-secrets was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
hbaseanti
0m  0s

Patch does not have any anti-patterns.

_ branch-2.6 Compile Tests _

+1 :green_heart:
mvninstall
3m  6s

branch-2.6 passed

+1 :green_heart:
compile
0m 26s

branch-2.6 passed

+1 :green_heart:
checkstyle
0m 10s

branch-2.6 passed

+1 :green_heart:
spotbugs
0m 29s

branch-2.6 passed

+1 :green_heart:
spotless
0m 49s

branch has no errors when running spotless:check.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 56s

the patch passed

+1 :green_heart:
compile
0m 25s

the patch passed

+1 :green_heart:
javac
0m 25s

the patch passed

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
0m  9s

the patch passed

+1 :green_heart:
spotbugs
0m 35s

the patch passed

+1 :green_heart:
hadoopcheck
15m 49s

Patch does not cause any errors with Hadoop 2.10.2 or 3.3.6 3.4.0.

+1 :green_heart:
spotless
0m 43s

patch has no errors when running spotless:check.

_ Other Tests _

+1 :green_heart:
asflicense
0m 10s

The patch does not generate ASF License warnings.

28m  6s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/3/artifact/yetus-general-check/output/Dockerfile

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

Optional Tests
dupname asflicense javac spotbugs checkstyle codespell detsecrets compile hadoopcheck hbaseanti spotless

uname
Linux 6e6c3e108644 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.6 / 29d3ba311888d4bc02d3ff604ab5584c1b0e9969

Default Java
Eclipse Adoptium-11.0.23+9

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

modules
C: hbase-backup U: hbase-backup

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/3/console

versions
git=2.34.1 maven=3.9.8 spotbugs=4.7.3

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

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
0m 38s

Docker mode activated.

-0 :warning:
yetus
0m  5s

Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck

_ Prechecks _

_ branch-2.6 Compile Tests _

+1 :green_heart:
mvninstall
2m 24s

branch-2.6 passed

+1 :green_heart:
compile
0m 19s

branch-2.6 passed

+1 :green_heart:
javadoc
0m 15s

branch-2.6 passed

+1 :green_heart:
shadedjars
4m 52s

branch has no errors when building our shaded downstream artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
2m 31s

the patch passed

+1 :green_heart:
compile
0m 18s

the patch passed

+1 :green_heart:
javac
0m 18s

the patch passed

+1 :green_heart:
javadoc
0m 14s

the patch passed

+1 :green_heart:
shadedjars
4m 51s

patch has no errors when building our shaded downstream artifacts.

_ Other Tests _

+1 :green_heart:
unit
11m 28s

hbase-backup in the patch passed.

28m 43s

Subsystem
Report/Notes

Docker
ClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/3/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile

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

Optional Tests
javac javadoc unit compile shadedjars

uname
Linux cb2b76e4df83 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
branch-2.6 / 29d3ba311888d4bc02d3ff604ab5584c1b0e9969

Default Java
Temurin-1.8.0_412-b08

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/3/testReport/

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

modules
C: hbase-backup U: hbase-backup

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6225/3/console

versions
git=2.34.1 maven=3.9.8

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

This message was automatically generated.


NullPointerException occurs when accessing WorkflowItem after deleting the Submitter

Describe the bug
Discovered in testing of https://github.com/DSpace/DSpace/pull/2928#pullrequestreview-502244452
If I delete a submitter while they have an item in Workflow, the deletion correctly succeeds & the Item is correctly kept in Workflow. However, from the UI, the Item in Workflow is no longer accessible (it throws a NullPointerException as the submitter is now null).  The MyDSpace UI "hangs" indefinitely when this error occurs.
This error appears in the dspace.log when this problem occurs:
2020-10-05 16:38:57,968 ERROR org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice @ An exception has occurred (status:500)
java.lang.NullPointerException: null
        at org.dspace.app.rest.converter.ConverterService.toRest(ConverterService.java:110) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.AInprogressItemConverter.fillFromModel(AInprogressItemConverter.java:70) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.WorkflowItemConverter.convert(WorkflowItemConverter.java:36) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.WorkflowItemConverter.convert(WorkflowItemConverter.java:24) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.ConverterService.toRest(ConverterService.java:111) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.PoolTaskConverter.convert(PoolTaskConverter.java:38) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.PoolTaskConverter.convert(PoolTaskConverter.java:24) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.DiscoverResultConverter.convertDSpaceObject(DiscoverResultConverter.java:98) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.DiscoverResultConverter.addSearchResults(DiscoverResultConverter.java:78) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.converter.DiscoverResultConverter.convert(DiscoverResultConverter.java:57) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.repository.DiscoveryRestRepository.getSearchObjects(DiscoveryRestRepository.java:115) ~[classes/:7.0-beta4-SNAPSHOT]
        at org.dspace.app.rest.DiscoveryRestController.getSearchObjects(DiscoveryRestController.java:153) ~[classes/:7.0-beta4-SNAPSHOT]

Based on the stacktrace, the error appears to be here: https://github.com/DSpace/DSpace/blob/main/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/AInprogressItemConverter.java#L70  That fillFromModel() method should likely be verifying that the submitter is not null before using it.
To Reproduce
Steps to reproduce the behavior:

Create a new EPerson (as needed) who is an Administrator
Find a Collection that has workflow approval enabled. Submit to it.
 The Workflow item list in that person's MyDSpace will "hang" indefinitely...in the dspace.log you'll see the above NullPointerException.

Expected behavior
Obviously, the expected behavior is that no error should appear in this scenario & the Item in Workflow should still be reviewable even though the submitter is set to null.
Additionally, this change should come with a test to prove that it works.  The current test related to this action (DeleteEpersonSubmitterIT.testWorkflowItemSubmitterDelete()) was set to @Ignored as can be seen here https://github.com/DSpace/DSpace/pull/2928#discussion_r500444894   Therefore, this test should no longer be Ignored, and should prove that a NPE will not occur in this scenario.
Related work
Related to the code in https://github.com/DSpace/DSpace/pull/2928

I've verified the issues mentioned above, and it seems changing https://github.com/DSpace/DSpace/blob/main/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/AInprogressItemConverter.java#L70 doesn't fix DeleteEpersonSubmitterIT.testWorkflowItemSubmitterDelete()
So for this ticket we'll need to:

Create a test for the issue in https://github.com/DSpace/DSpace/blob/main/dspace-server-webapp/src/main/java/org/dspace/app/rest/converter/AInprogressItemConverter.java#L70, it should fail
Fix this issue, and verify the test now succeeds
Re-enable DeleteEpersonSubmitterIT.testWorkflowItemSubmitterDelete(), it should fail
Identify the issue with DeleteEpersonSubmitterIT.testWorkflowItemSubmitterDelete(), and fix it. Verify the test now succeeds

Thanks for the summary, @benbosman .  The approach suggested & estimate sounds good to me.

This is something we can work on since we've worked on https://github.com/DSpace/DSpace/pull/2928 as well

Sounds good @benbosman . I've assigned to you & moved to "in progress"


about the fft implementation algorithm

hi~,
i'm currently reading the code of the FFT part in nnpack. it seems that the ifft algorithm used by nnpack is DIF-IFFT, which is not consistent with what the poster ATIP2015 says. just want to confirm this difference. thanks!

@Maratyszcza although FFT and IFFT are independent from each other, i'd still like to make sure i did not mistake this. many thanks for your reply!


Trello PowerUps Platform

Trello introduced a way for people to create their own power ups.
https://developers.trello.com/power-ups/intro
Should probably look into it.

Looks like power-ups are now available for free users!
https://blog.trello.com/trello-power-ups-for-all/?utm_source=inapp&utm_medium=link&utm_campaign=powerupsforall

Looking at the implementation, this may have to be another library (or series of libraries) that expose and disseminate each plug-in.
This is related to #38.

See branch feature/power-ups.

@gregsdennis - In reference to #38 on the main branch...
I'm curious if you'll need to implement the entire PowerUps Platform before access to Custom Fields will be available.  Is there a ballpark ETA on these features?  The ability to programmatically access the new Custom Fields would be gigantic for me, so I'm excited you're doing it!

@ronwarner I'm currently trying to determine a reasonable implementation that's easy to use and works well with the current object model.
There have been some other complications for implementing power-ups in general in that the creator of the power-up can use the fields in the API as they see fit, which means there's no consistency.  I'm leaning toward enabling power-up data access available through the main Nuget pkg, then each power-up will be its own pkg.
I've also been in communication with the Trello API devs, and they're still working on how to implement power-up data through the API properly.  It seems it's still beta-ish.
I don't have an ETA, but I'm continuing to work on it as I have time.

Copying Trello support email regarding Power-Ups data

Hey Greg,

We have a bit more information about data storage for Power-Ups here, under the "Data Storage" section: https://developers.trello.com/power-ups/topics.

What we currently expose via the API, though readonly at this moment, is:

/1/boards/[id]/pluginData /1/cards/[id]/pluginData

Those both allow access to the shared visibility data at that scope (boards or cards). Power-Ups can store data on cards at the 'card' scope, or boards, or orgs (teams). Where they choose to store what data is entirely up to the Power-Ups themselves, so accessing the data via the API does require an understanding of how the Power-Up is working.

I know this may be less than ideal. Data storage for Power-Ups is something that we are currently looking into exposing a bit more of via the API, so hopefully in the future we will be able to standardize this a bit more.

All the best,

Mercer
The Trello Team

Awesome approach!

@ronwarner, please check out Manatee.Trello 1.13.0 and Manatee.Trello.CustomFields.  That should give you read access to the custom field data.