Doesn't center view around cursor at the top of a file

If the cursor is in the top view of the file but within this view at the bottom than opening this file doesn't center the view around the cursor. Instead the top view of the file is seen and the cursor at the bottom.

Open long file
gg to move cursor to top view of the file
L to move cursor to the bottom of the view
Close and reopen file

It can be seen that the cursor is at the bottom of the view. The view is not centered around the cursor.
vim-lastplace doesn't has this issue.

I tried to test it locally and do not have the same issue. What version of neovim are you running? We have been having a few issues with updates to updates to neovim.

I'm on NVIM v0.5.1

@astier  It seems to be an issue with how the BufReadPost autocmd is run. I have submitted a change on the testing branch. Please try the following with paq config:

Change the paq line to: lua require 'paq'{}
Reopen nvim and run :PaqSync. This should clear out plugin. This is a known issue of paq.
Change paq line to lua require'paq{{'ethanholz/nvim-lastplace', branch='testing'}}. Source the file and run :PaqSync to install the testing version.
Verify the test case you noted above.

Just seems a little bit inefficient to trigger lastplace every time a window is entered. By the way is there a reason why n/vim-lastplace don't use mkview and loadview to save and restore the cursor position? I am just curious what the benefits of both approaches are. The way my little lastplace-script handled this is as following:
au! vimenter,bufread * if index(ignore_ft, &ft) < 0 | sil! loadview | exe 'norm zz' | en
au! vimleave,bufleave * if index(ignore_ft, &ft) < 0 | sil! mkview | en
let ignore_ft = ['diff', 'gitcommit', 'gitrebase']
se viewoptions=cursor

As for mkview... I am not certain. When I originally ported this plugin, I did so to try and build a one-to-one port of vim-lastplace. As far as I can tell, the advantage to not using mvkiew is that it won't store the script file used when you run mkview.

@astier your change seems like a solid fix. Would you mind submitting a PR with your changes? Once you do, @cryptomilk would you mind taking a look at it to verify that works with some of the issues you experienced before? These changes proposed rescind the changes made before. Due to the uncertain nature of this problem, I would I appreciate another set of eyes here.

Closing due to inactivity. Related to #13


⚠ Bofrost.de has degraded performance

In 67bd859, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1117 ms

Resolved: Bofrost.de performance has improved in 2865a49 after 11 minutes.


How avoid showing historical tokens?

My preference would be to not see historical token markers when viewing a process definition in the cockpit as shown below. Is there an a way to turn these off? Thanks

@ChuckIrvine You might want to remove line with definition-historic-activities.js from config.js. That would remove tokens and “Statistics” tab (which are questionable anyway because the query for those is not yet configurable).

Thanks. That got it for me. Thanks for the great tool.


Lean on Starlette.

Opening this issue first for discussion rather than just jumping in, because I want to understand where @kennethreitz would like to draw the boundaries on this.
There's currently quite a lot of duplication between Starlette and Responder. Starting with one class to consider there's responder.Response...

headers - Exposes a case-insensitive dict. Starlette already has a request.headers which is a case-insensitive multidict.
method - Exposes the request method, lowercased. Starlette already exposes this, uppercased, as request.method.
.full_url, .url - Exposes the str-URL and parsed URL. Starlette already exposes a str-like interface that also allows accessing parsed components on it. request.url, request.url.path, etc...
.params - Exposes a QueryDict. Starlette already exposes a query param multidict, as request.query_params.

(For reference here's Starlette's request docs... https://www.starlette.io/requests/)
Ideally we'd try to minimize reproducing too much stuff in differing interfaces. Or at least work towards having the data-structures be Starlette's low-level stuff, while Responder uses whatever high-level request interface it wants to stitch those together. (Ie. try to ensure that Starlette is to Responder as Werkzeug is to Flask.)
Initial thoughts?

I want the coupling to be loose, unlike that of flask/werkzeug.


Bug when assigning oci_core_cross_connect to a oci_core_cross_connect_group

Hello 👋
We are using the oracle oci-landing-zones/terraform-oci-modules-orchestrator to setup our OCI LZ. We've run into a problem when trying to create cross connects as part of cross connect groups, an example of our configuration:
...
"cross_connect_groups": {
  "FC-UK3-Equinix-LD6": {
    "compartment_id": "CMP-LZP-NETWORK-KEY",
    "cross_connects": {
      "FC-UK3-Equinix-LD6-1": {
        "compartment_id": "CMP-LZP-NETWORK-KEY",
        "location_name": "Equinix LD6",
        "port_speed_shape_name": "10 Gbps"
      }
    }
  }
}
...

This gets sent to the networking module https://github.com/oci-landing-zones/terraform-oci-modules-orchestrator/blob/17f621d5efb08577cd105859fbf05d4cdeac9376/networking.tf#L8
We have no problem when creating just the cross connect groups, the issue comes when the oci_core_cross_connect is created and assigned to a oci_core_cross_connect_group here which results in the error:
│ Error: Invalid index
│
│   on .terraform/modules/oci_lz_network/cross-connects.tf line 54, in resource "oci_core_cross_connect" "these":
│   54:   cross_connect_group_id                       = oci_core_cross_connect_group.these[each.key].id
│     ├────────────────
│     │ each.key is "FC-UK3-Equinix-LD6-1"
│     │ oci_core_cross_connect_group.these is object with 1 attributes

Which makes sense, because the cross connect group attribute will be oci_core_cross_connect_group.these[FC-UK3-Equinix-LD6] but the code on line 54 of cross-connects.tf is looking for oci_core_cross_connect_group.these[FC-UK3-Equinix-LD6-1] which doesn't exist because that is the unique key of the cross connect. I think line 54 needs to be updated from:
cross_connect_group_id                       = oci_core_cross_connect_group.these[each.key].id

to:
cross_connect_group_id                       = oci_core_cross_connect_group.these[each.value.cross_connect_group_id].id

Hello brodster2, thanks for reporting. I agree there's a bug and we'll have this fixed in the next release.

Hi brodster2, can you please test https://github.com/oci-landing-zones/terraform-oci-modules-orchestrator/tree/release-2.0.4? It has the fix. In a few day we'll be merging this release candidate into main.

Fix available in v0.6.9.

Hi brodster2, can you please test https://github.com/oci-landing-zones/terraform-oci-modules-orchestrator/tree/release-2.0.4? It has the fix. In a few days we'll be merging this candidate release into main.

Hi @andrecorreaneto, thanks for the quick response, we attempted to test that branch but ran across this error:
│ Error: Experiment has concluded
│
│   on providers.tf line 58, in terraform:
│   58:   experiments = [module_variable_optional_attrs]
│
│ Experiment "module_variable_optional_attrs" is no longer available. The
│ final feature corresponding to this experiment differs from the
│ experimental form and is available in the Terraform language from Terraform
│ v1.3.0 onwards.

since that branch requires terraform versions >=1.3.0 but still has the module_variable_optional_attrs experiment set. We tried with Terraform versions 1.3.x and 1.5.x

https://github.com/hashicorp/terraform/issues/31931 has some details on it

Please retry, just pushed the fix. Sorry about that.

Hi @andrecorreaneto, we had to create the cross connects manually to get the LOAs to our provider. But using the branch https://github.com/oci-landing-zones/terraform-oci-modules-orchestrator/tree/release-2.0.4 we had no issues importing them into state with no changes shown. So I'm happy to call this issue closed. Thanks for your quick fix.


Git code builds error

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
In the Git Project (Beta) module, Git code builds pass empty build parameters to the build command, causing Maven to find the corresponding command and unable to package it

What you expected to happen
When executing the Maven command, parameter validation was not performed on the execution command. If it is an empty string, it should not be added to the Maven packaged command
How to reproduce
According to the description, it can be reproduced
Anything else
No response
Version
dev
Are you willing to submit PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

This problem is very simple, welcome to fix it

I can fix it, please give it to me


Add Host management for headless RPIs

Please add host management to the hamburger menu so that we could restart/shutdown the Raspberry Pi.

I've started a fork / branch that is focused on process control, and inter-client communication when process changes happen.  Needed to make things a bit more robust, in support of my end-goal, which is Alexa control of patiobar/pianobar.
Still a work in progress, and first focus is on managing the pianobar process (which works). That can certainly be extended to (optional) control of restart/shutdown. Some users may not want to give guests that much power...
Expect I'll be able to create a pull-request focused on this feature area, and hopefully it will be accepted.
~paul

Good to hear. Where are we on this update?

I've pushed the changes in over in my fork of @kylejohnson's work that includes the ability to stop or reboot the host running pianobar.  It is on a branch 'process-control'.  The changes are fairly substantial, so I still need to talk with Kyle to see how much of this he is interested in taking.  The UI side is fairly ugly , but functional - I just added some buttons down at the bottom, rather than a menu system.


Add Code of Conduct based on Contributor Covenant

This is almost verbatim a copy of the Contributor Covenant v1.4 except that I've made the following replacements:

contributors -> members
maintainers -> community administrators
project -> community

I've specifically avoided any additional language about academic dishonesty as we're still hashing that out as administrators.
To see exactly what I've changed compared to the Contributor Covenant feel free to review this diff:
--- content/code-of-conduct.md	2017-11-13 19:10:17.507813055 -0800
+++ /home/tucker/Downloads/code-of-conduct.md	2017-11-13 18:01:42.990923567 -0800
@@ -1,17 +1,11 @@
-+++
-title = "WWU CS Slack Code of Conduct"
-description = "WWU CS Slack Community Code of Conduct"
-template = "base.html"
-+++
-
-# WWU CS Slack Community Code of Conduct
+# Contributor Covenant Code of Conduct

 ## Our Pledge

 In the interest of fostering an open and welcoming environment, we as
-members and administrators pledge to making participation in our community a
-harassment-free experience for everyone, regardless of age, body size,
-disability, ethnicity, gender identity and expression, level of experience,
+contributors and maintainers pledge to making participation in our project and
+our community a harassment-free experience for everyone, regardless of age, body
+size, disability, ethnicity, gender identity and expression, level of experience,
 nationality, personal appearance, race, religion, or sexual identity and
 orientation.

@@ -39,44 +33,42 @@

 ## Our Responsibilities

-Community administrators are responsible for clarifying the standards of acceptable
+Project maintainers are responsible for clarifying the standards of acceptable
 behavior and are expected to take appropriate and fair corrective action in
 response to any instances of unacceptable behavior.

-Community administrators have the right and responsibility to remove, edit, or
+Project maintainers have the right and responsibility to remove, edit, or
 reject comments, commits, code, wiki edits, issues, and other contributions
 that are not aligned to this Code of Conduct, or to ban temporarily or
-permanently any member for other behaviors that they deem inappropriate,
+permanently any contributor for other behaviors that they deem inappropriate,
 threatening, offensive, or harmful.

 ## Scope

-This Code of Conduct applies both within community spaces and in public spaces
-when an individual is representing the community. Examples of representing the
-community include using an official community e-mail address, posting via an
-official social media account, or acting as an appointed representative
-at an online or offline event. Representation of the community may be further
-defined and clarified by community administrators.
+This Code of Conduct applies both within project spaces and in public spaces
+when an individual is representing the project or its community. Examples of
+representing a project or community include using an official project e-mail
+address, posting via an official social media account, or acting as an appointed
+representative at an online or offline event. Representation of a project may be
+further defined and clarified by project maintainers.

 ## Enforcement

 Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported by contacting the [administrators][community-admins]. All complaints
-will be reviewed and investigated and will result in a response that is deemed
-necessary and appropriate to the circumstances. The administrators are
-obligated to maintain confidentiality with regard to the reporter of an
-incident. Further details of specific enforcement policies may be posted
-separately.
+reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
+complaints will be reviewed and investigated and will result in a response that
+is deemed necessary and appropriate to the circumstances. The project team is
+obligated to maintain confidentiality with regard to the reporter of an incident.
+Further details of specific enforcement policies may be posted separately.

-Community administrators who do not follow or enforce the Code of Conduct in good
+Project maintainers who do not follow or enforce the Code of Conduct in good
 faith may face temporary or permanent repercussions as determined by other
-members of the community's leadership.
+members of the project's leadership.

 ## Attribution

 This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
-available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html][document]
+available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

-[community-admins]: https://wwucs.slack.com/account/team
 [homepage]: https://www.contributor-covenant.org
-[document]: https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
+

I think it looks great and I like the adjustments you made from the original. My only question is how the "Scope" section applies in a practical setting. Is this Code of Conduct specifically for this Slack team? In that case, I don't know how one would represent the community in any other setting, as we're a pretty isolated subset of the greater WWUCS community.

With regard to the scope, the code of conduct is specifically for this Slack team, but I suppose that would extend to the website/GitHub now too. The notion of an ordinary member representing the community doesn't make as much sense as it does for us admins. I fully trust the other admins, but I figure it also sets the tone so that everyone else knows what they can expect of us and of each other.
Say, for example, that a new student was promoted because one of the Slack admins left. That new admin is given ownership over the GitHub org as well and subsequently uses those permissions to force push commits to master that are unkind to another student. That's super far-farfetched, but the scope section of the Code of Conduct makes it very explicit that just because actions are taken on another site doesn't mean there won't be repercussions within the community, so we'd have recourse to deal with that and we'd be expected to. Essentially, it allows us to cover our bases and hold everyone responsible for their actions.


Remove action manager, question mark

Description
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes # (issue)
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update
[ ] Code quality improvements

How to Test
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist
Please delete options that are not relevant.

[ ] I have tested this code
[ ] I have updated the documentation

Pull Request Test Coverage Report for Build 5963

1 of 317 (0.32%)  changed or added relevant lines in 34 files are covered.
186 unchanged lines in 20 files lost coverage.
Overall coverage increased (+0.3%) to 26.975%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/features/game/save/GameSaveManager.ts
0
1
0.0%

src/features/game/state/GameUserStateManager.ts
0
1
0.0%

src/features/storySimulator/boundingBoxes/SSBBoxManager.ts
0
1
0.0%

src/features/storySimulator/objects/SSObjectManager.ts
0
1
0.0%

src/features/storySimulator/transform/SSTransformManager.ts
0
1
0.0%

src/features/game/effects/FadeEffect.ts
0
2
0.0%

src/features/game/utils/GameUtils.ts
0
2
0.0%

src/features/storySimulator/background/SSBackgroundManager.ts
0
2
0.0%

src/features/game/effects/Notification.ts
0
3
0.0%

src/features/game/save/GameSaveHelper.ts
0
3
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/features/game/effects/Notification.ts
1
0%

src/features/game/objects/GameObjectManager.ts
1
0%

src/features/game/phase/GamePhaseManager.ts
1
0%

src/features/game/popUp/GamePopUpManager.ts
1
0%

src/features/game/scenes/mainMenu/MainMenu.ts
1
0%

src/features/game/background/GameBackgroundManager.ts
2
0%

src/features/game/state/GameStateManager.ts
2
0%

src/features/game/escape/GameEscapeManager.ts
3
0%

src/features/game/mode/menu/GameModeMenu.ts
3
0%

src/features/game/mode/talk/GameModeTalk.ts
3
0%

Totals

Change from base Build 5959:
0.3%

Covered Lines:
2148

Relevant Lines:
7379

💛  - Coveralls


Add --per-paragraph

This would be basically a shortcut to --per-line=.split("\n\n"), but then reporting the original line number of the paragraph start, rather then the ordinal number of the paragraph.
Reason: for regexes that could potentially span multiple lines, but not span across paragraphs.   And having the line number would allow it to work with --edit-files

Implemented with 0.3.6


Move plutus-example to plutus-apps

In order to avoid cyclic dependencies between cardano-node and plutus-apps, we must move plutus-example to plutus-apps.

Move PR has been merged: https://github.com/input-output-hk/plutus-apps/pull/322
plutus-apps needs to be bumped to latest cardano-node: In Progress (Blocked, waiting on Plutus team to bump to latest cardano-node in plutus-apps)
plutus-example needs to re-enable tests (depends on dep bump above)
cardano-testnet may need to be updated to re-enable tests in plutus-example

Windows syncing issue needs to be resolved in order to unblock this issue: https://input-output-rnd.slack.com/archives/C819S481Y/p1646315099045919


VaultSession parameter

I am having trouble using this client. Can someone please let me know what is the vault session parameter and how the value would be constructed.

A VaultSession is an object that has connected-state information already in it, such as the network endpoint and an authentication token.  It is primarily for advanced usage scenarios where you need to establish a connection to a Vault server endpoint in some unique or special way outside of what is supported by this module, and most users will not need to worry about it.
Can you tell me what issues you are having using this client?
Do you have a Vault server instance up and running?  Have you been able to successfully access it using the native vault CLI client?

Hi Eugene,
Thanks for your response. I am trying to use this client to set app-role on the avult server and authenticate using app-role. However I am unable to use the cmdlets. I am getting these errors with most of the cmdlets:
PS C:\Users****> Write-VltData
cmdlet Write-VltData at command pipeline position 1
Supply values for the following parameters:
Path: secret/hello
Key[0]: value
Key[1]: vaule1
Key[2]:
Value[0]: hello
Value[1]: hello1
Value[2]:
Write-VltData : Method not found: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object, System.Object, System.Object)'.At line:1 char:1

Write-VltData

  + CategoryInfo          : NotSpecified: (:) [Write-VltData], MissingMethodException
  + FullyQualifiedErrorId : System.MissingMethodException,Zyborg.Vault.POSH.WriteData

Can you give me some details about your environment?

.NET Platform (Core vs Framework)
.NET Version
OS

The error seems to indicate that a very basic method is missing from your environment context, which is strange.

It is .NET Framework 4.5.2
OS: Windows7 64bit

I am able to run the command now. You were right. There was some issue with the package installation on my system. I tried on AWS instance and it worked like a charm :)
Thanks for your help!

Glad it worked out.


OLS-506: Move testing script ot tests

Description
Move validation script to tests. It is only used there. It is causing some problems with imports.
Type of change

[x] Refactor

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.38%. Comparing base (18aabca) to head (ea92d47).
Report is 24 commits behind head on main.

Additional details and impacted files

@@           Coverage Diff           @@
##             main     #825   +/-   ##
=======================================
  Coverage   94.38%   94.38%
=======================================
  Files          55       55
  Lines        2012     2014    +2
=======================================
+ Hits         1899     1901    +2
  Misses        113      113

see 3 files with indirect coverage changes

/retest

/approve

@asamal4 Path import removed and makefile updated.


Unable to download YouTube videos in 2021.1.8 version

Checklist

[x] I've verified that I'm running youtube-dl version 2021.01.08
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose Log
$ youtube-dl -v https://www.youtube.com/watch?v=07wC3HWkaZs
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['-v', 'https://www.youtube.com/watch?v=07wC3HWkaZs']
[debug] Encodings: locale cp1252, fs mbcs, out cp437, pref cp1252
[debug] youtube-dl version 2019.06.08
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 4.1.3, ffprobe 4.1.3
[debug] Proxy map: {}
[youtube] 07wC3HWkaZs: Downloading webpage
[youtube] 07wC3HWkaZs: Downloading video info webpage
WARNING: Unable to extract video title
ERROR: no conn, hlsvp, hlsManifestUrl or url_encoded_fmt_stream_map information found in video info; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp3esl0iyj\build\youtube_dl\YoutubeDL.py", line 796, in extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp3esl0iyj\build\youtube_dl\extractor\common.py", line 530, in extract
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmp3esl0iyj\build\youtube_dl\extractor\youtube.py", line 2078, in _real_extract
youtube_dl.utils.ExtractorError: no conn, hlsvp, hlsManifestUrl or url_encoded_fmt_stream_map information found in video info; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

According to that log you are running youtube-dl version 2019.06.08.

According to that log you are running youtube-dl version 2019.06.08.


Show Hidden Files Setting Doesn't Work

It just doesn't work. I have "Show Hidden Files" off for both computer and phone and I see the hidden "Icon" file on my Mac. That is a hidden file.
 I feel bad I sent you money once.

Hidden files usually starts with a "." on unix machines.
If you feel that you made a mistake donating, send me the paypal payment reference id. I will refund your amount.

I'm also having an issue where I have hidden files showing on my computer and I have it turned off and set not to show them in OpenMTP settings. Not happy! OpenMTP version: 3.2.10 - macOS version: 14.1.1


Greyed, non functioning, "ghost" LookingForGroup channel

While using the french client, the addon makes me join a LookingForGroup channel that takes the /1 slot. Every other channels are then shifted (General is now /2, Trade becomes /3 etc...)
Also this new channel is greyed in the chat settings and not useable: typing /1+space doesn't do anything.
I can't tick it neither.
If I delete it, it comes back immediately as /5 which at least brings back the right order to the other channels.
Beside that the addon works just fine and get the LFG spam right.

What version of the addon are you running?
As a short term fix go to "Settings" -> "Localization" scroll down until you see "lfg_channel". It most likely has the value of "LookingForGroup" change it to whatever the german lfg channel is and then do a /reload

I'm using the latest one 2.55. Changing the value in the Localization settings doesn't seem to have any effect.
Actually, changing any value in the Localization settings doesn't have any effect despite /reload. The new text stays white but is not used by the addon.

Thanks for bringing this to my attention, this is only an issue on non English clients hence why I didn’t catch this before.
While I work on a fix I suggest moving the channel to be the last one on the list (so you can just ignore it exists). You can move it just  by clicking and dragging channel name in the WoW chat settings you posted

Temp fix for this is: Go into the Addon Folder "X:\World of Warcraft_classic_\Interface\AddOns\LFGBulletinBoard"->Localization ->
"GBB.locales = {
enGB = {
["lfg_channel"]="LookingForGroup", -- must be the default chat-name!"
and change the "LookingForGroup" part to your loca equivalent.
e.g. for german:
"GBB.locales = {
enGB = {
["lfg_channel"]="SucheNachGruppe", -- must be the default chat-name!"
Working for me.

Working for me too, thanks!


Visual fix for landing page not spanning full height on large views

What does this PR do?
Landing page was not stretching the full width of the page on large view, causing a white box to appear after the page content. This is now fixed.
(fixes #114 )

Thank you for fixing this!


how to use getDocuments?

Hi,
super useful library! I'm trying to get a list of documents.
Looks like there is  a getDocuments() function, but
`
environment.service.collection("collections").whereField("userId", isEqualTo: userId)
.getDocuments()
.sink(receiveCompletion: { completion in
switch completion {
case .finished: print("🏁 finished")
case .failure(let error): print("❗ failure: (error)")
}
}) { snapshot in
doSomething(snapshot)
}.store(in: &cancelBag)
`
but sink and doSomething are never called even when get
public func getDocuments(source: FirestoreSource = .default) -> AnyPublisher<QuerySnapshot, Error>
returns a successful promise. What am I doing wrong?

Actually managed to make this work =)


Adding contact form in eduhub winter camp page

Eduhub winter camp page lacks a contact form. It also has a broken link for the contact form in NavBar

Please assign this issue to me under GSSoC'23. I will add the contact form with the help of HTML and CSS and will also fix the broken link of contact form.


I am not able to swipe last two items.

i want video to be played inside each card, i am able to achieve this using TextureView to play the Video. and Fortunately it works well,
But results in slower performance. There might be a reason of the views not getting recycled.

final View child = getChildAt(getChildCount() - childOffset);
replace with
final View child = getChildAt(0);


pg_activity total memory usage.

Hi,
Could anyone explains to me what is the MEM% displayed in pg_activity?
In my case, MEM shows 4G of postgres memory usage. However, when i stop postgres, i don t get this total of memory freed when i run free command. Besides that, the RSS in top command shows different number than pg_activity.
Thanks,

Hi,
I also interested in this question


feat: Allow uv pip install to fetch requirements files from a remote URL.

Summary
Fixes #1481
Allow uv pip install to fetch requirements files from a remote URL.
Questions
Apologies for the questions; this is my first Rust code in a long time.

Using reqwest like this feels wrong and it doesn't work: ::blocking complains about dropping the current runtime, and I'm not inclined to change the function and all of its calling functions to async. Is there a better way?
Is it OK to use String type for "something that can be a PathBuf or URL"? Is there a better type to use?

TODO

[ ] add tests

[ ] mock HTTP calls in tests

Test Plan

Add unit tests.
Smoke test in CLI with uv pip install -r <valid_url/to/requirements.txt>

Thank you for the PR -- unfortunately I didn't get to this one, and another contributor came in with an async version that was merged: https://github.com/astral-sh/uv/pull/2081. I really apologize that I wasn't able to get you feedback in a sufficiently prompt manner.

@charliermarsh No problem! I've got a lot to learn with Rust. I'll check out the other PR and see how it should have been done 😅


Collector Infusion Enchantment

I have a modpack with Thaumcraft 6 and Ex Nihilio Creatio, and I've discovered some wonkiness when using the Collector Infusion Enchantment on the hammers.
The hammer uses a fallback code in case it breaks something that it has no transformation recipe on.  It seems that trigger gets called by Collector even if it breaks something that it transforms, and the collector infusion collects the original block drop even if the block gets successfully destroyed.  I'm pretty sure this is due to how Thaumcraft intercepts item drops- you can see that a zombie that drops zombie brains will not collect the zombie brains if one were to drop from a zombie after killing one, but all the other drops will be collected, including essences that are dropped and rare drops like iron ingots.
TL;DR: hammers with Collector duplicate the broken block while also dropping the transformed item.  Do you think there is anything you could do on your end to help?

Hey, I tried to fix the dupe and I would like you to test it to confirm that everything is ok.
Here is the new version:
DupeFix Project 1.5.zip

Singleplayer seems to work fine.  I tested on a test server instance, and after realizing my scripts were out of sync with my actual server, it seems that it works on my test server as well.  Guess it's time to take it live and see if it works there too.
Additionally, I took it for a spin in a test pack where Ex Nihilio Creatio wasn't present to make sure it didn't throw issues there.  Seems like it works to me!

Great!
So I'll upload the new version to CurseForge.
Thanks for your report and testing!

It turns out this is more of a problem with Collector on anything that transforms an item after the fact, meaning axes with Collector infusion and Scorching Heat enchantment from Astral Sorcery will also duplicate the log being smelted.  I presume pickaxes with Collector that have Scorching Heat will also collect a block that isn't transformed and drop a transformed version of the block, although I haven't tried it yet.
In addition, this fix interferes with the gauntlet's harvesting when it's used from the off hand while an item with collector is held.  I have to remember not to break blocks with my breaking focus while holding my hammer or I don't collect any drops.  This occurs only for blocks that get transformed after the fact.

It turns out this is more of a problem with Collector on anything that transforms an item after the fact, meaning axes with Collector infusion and Scorching Heat enchantment from Astral Sorcery will also duplicate the log being smelted. I presume pickaxes with Collector that have Scorching Heat will also collect a block that isn't transformed and drop a transformed version of the block, although I haven't tried it yet.
Hmm.. So I'll need to make a check to any tool with Collector enchantment, but I'm not sure how to do it.
I think Thaumcraft is collecting the loot before others mods can edit it. In ExNihilo Fix I used exnihilocreatio.registries.manager.ExNihiloRegistryManager.HAMMER_REGISTRY.isRegistered(event.getState()) to check if there is any recipe using the breaked block, if true, I remove all the drops from the block(first than thaumcraft) and ExNihilo just add the new drops.
I don't know how to do it with other tools, maybe checking if exists a furnace recipe using the block? It will fix issues with Scorching Heat enchantment or Auto-Smelt enchantments, but I'm not sure if it's the best way to fix it.

In addition, this fix interferes with the gauntlet's harvesting when it's used from the off hand while an item with collector is held. I have to remember not to break blocks with my breaking focus while holding my hammer or I don't collect any drops. This occurs only for blocks that get transformed after the fact.
My mistake. I'm always checking the main hand in code, but I forgot the offhand can break blocks too.

Short of making Collector wait to grab all the modified drops and then apply the collection affect to them, that might be the way to go.  A big thank you for continuing to take a look into it!

Yeah, it would be the best way, but I'm not sure how to "delay" a event from another mod, since I never did it before and Thaumcraft isn't open source.

Hey, I changed several things in the fix, and now instead of checking the block for conflicting things, I'm overriding the Collector Enchantment with my own version.
Every time you use a tool containing the Thaumcraft Collector's Enchantment, the enchantment will be removed and my version will be added to the item.
It is the same as the normal enchantment, but it is executed at the right times.
I believe that this can also fix problems with items not being collected by the enchantment.
If possible, can you test the new version for me?
DupeFix Project 1.6.zip

I've started initial testing.  So far, I am noticing that zombie brains are being collected, which is quite nice.  But that is a single player test in my testing modpack.  Next, to test in my main modpack, both singleplayer and server...  I must say I am super excited to see how Collector works.
Unfortunately, when I got to my world test, which has previously infusion enchanted tools, I was still able to collect dupliated items with a hammer.  I attempted to make a new hammer with collector which appears to work, even when I give it similar enchantments.  I think I'm the only player on the server with these sorts of godlike tools, so I can just remake them, but something about the Collector replacement isn't quite working.

This is strange, because even in the newly created tools I am making the same replacement.

Sorry for taking so long to get back to here.  I think I see the problem:
https://github.com/Focamacho/DupeFix-Project/blob/a40501a6c5bc64fe614cd892bafc2b63cdac2647/src/main/java/com/focamacho/dupefixproject/fixes/ThaumcraftFixes.java#L67
You loop through all the tags but only ever check the first entry.  The items that never got replaced all have Collector as their last infusion enchantment.

Ohhhh, my mistake, sorry. I'll fix it now. Thanks for pointing that.

It'll work now.
DupeFix Project 1.6.zip

Just confirmed the collector replacement correctly replaced on all my tools the moment they broke something.


Feature/v1.4.2

this update supports the mouse manifest with CHR (chromosome) column, so methylcheck.get_sex() will work

incorporated into feature/v1.4.2-huber-debug


Output: "Still Gathering Statistics..."

Hi, I am recently trying to use your project to get a waka-box in my README in Github profile. But when I finish every step in your introduction, I just get the "Still Gathering Statistics...", but when I check my WAKATIME dashboard, there are a lot of data in it, and I do enable the Display code time publicly and Display languages, editors, os, categories publicly.
The output in my README:

The Raw file:

But I am sure I set the secret token and other parameters right. And the GitHub action runs well.
My workflow config file:
name: Update wakatime stats

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  schedule:
    - cron: "5 0 * * *"

jobs:
  build:
    name: Update-waka-stats
    runs-on: ubuntu-latest
    env:
      WAKATIME_API_KEY: ${{ secrets.WAKATIME_API_KEY }}
      GH_TOKEN: ${{ secrets.GH_TOKEN }}
      UPDATE_OPTION: GIST_AND_MARKDOWN
      MARKDOWN_FILE: README.md
      GIST_ID: ce41b***********************997b48
      GIST_BARSTYLE: SOLIDLT
      GIST_BARLENGTH: -1
      GIST_TIMESTYLE: SHORT

    steps:
      - name: Set up Go 1.x
        uses: actions/setup-go@v2
        with:
          go-version: ^1.14
        id: go
      - name: Check out repo
        uses: actions/checkout@v2
      - uses: actions/setup-go@v2
      - name: Clone and run waka-box
        run: |-
          git clone https://github.com/YouEclipse/waka-box-go.git
          cd waka-box-go && go build -o waka ./cmd/box/main.go
          mv ./waka ../ && cd .. && rm -rf waka-box-go/
      - name: Commit and push
        run: |-
          ./waka
          git config --global user.email<EMAIL_ADDRESS>&& git config --global user.name "Waka-Bot"
          git diff
          git add README.md && git commit -m ":memo: update profile" || exit 0
          git pull && git push

Ok, it works well now... But still don't know the reason. 😢


Can you support storyboard ?

I need to add the framework in between my storyboard,how can i achieve that.

Yes, you can also use implementation code didFinishLaunchingWithOptions: in AppDelegate to put in your same method or willFinishLaunchingWithOptions in AppDelegate


feat(storybook): Add typescript configuration for storybook

Checklist:

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Included in this PR:

Added TS configuration for storybook as per official docs.
Added components and types folder and moved related files to them.
Migrated sample Button component to TS.

How I verified the configurations

Created a customKey in button.types.ts and it automatically reflected under storybook UI.
Created type ButtonSize in button.types.ts and it's also reflecting storybook UI.

Thanks for putting together this pr quickly.
Just a few clarifications:

What is the main benefit of the new folder structure?
The 'Const declarations' require an initialization value Error might be caused by complier, let me know if you need help figuring it out.
We could get rid of props that are internal to the components all together in favor of types. Here is the guide for our TS migration.
It would be great if we could convert all possible files ( including tests and stories ) to TS/TSX on this iteration. Feel free to review a few of the open source TS storybook projects for reference.
Based on your research, what is the difference between compilerOptions in main.js and tscofig.json?

@ahmadabdolsaheb Thanks for sharing the insights.

Previously there was no directory structure. Stories, tests, components and css were in the root directory. I thought its a good idea to move them to respective folders. Proposed one is like:

 /components
        /button
           button.styles.css
           button.tests.css
           button.stories.css
 /types
        button.types.ts

Maybe we can create separate directory for styles and stories as well?

I'm struggling with configuring TS with jest: when I configure TS for jest, babel breaks, when babel works TS breaks. Something needs to be done with jest.config.js. I'll try to fix this along with the other pending stuff otherwise I might need a helping hand.

Thanks for sharing TS Migration guidelines, I'll go through them and will get rid of proptypes

Yes, I'm targeting to convert all related files to TS/TSX. We're on same page.

I'll get back to you on this but I guess we can get rid of one of these:  compilerOptions OR tscofig.json. Thanks for highlighting.

Thanks a ton for looking into this - the more TS, the better it get!

I'm struggling with configuring TS with jest

That has been my experience, too.  If it's just refusing to play ball, give me a shout and I'll see if I can wrangle it.

Thanks @ojeytonwilliams. I've seen previous contributions in this.  Really appreciate that 🎉 💯
I'm able to fix the TS stuff, lets see if I can cope up with CI tests as well.

There have been a discussion about the folder structure in the past where we decided to keep it as simple as possible and avoid nesting.
Since this pr is focused on the migration, I would rather discuss  the directory structure on the main issue and implemented it in a separated pr if necessary.
Great progress on this pr 🙏
Let us if those errors are giving you a hard time.

@ojeytonwilliams Thanks for the deep insight, it worked 🎉

Solid work here.


feat(client): implement

Implement basic client generated from OAS.

done https://github.com/ogen-go/ogen/commit/0c2673acded853e42ec09a2349f7ce588066c24b


The add to cart button should be disabled if the quantity is invalid

Bagisto Version: Master
Steps To reproduce--
1. Login as a customer
2. Click on any product.
3. Enter quantity in decimal value
4. Click on add to cart buton
Expected result: The add to cart button should be disabled if the quantity is invalid
Actual result: The add to cart button is not disabled if the quantity is invalid.  Here.

@jitendra-webkul
As we discuss this is an invalid enhancement. so i am closing this enhancement


[Enhancement] SnackBar dismissal enhancements

Hi.
I was really looking forward to the snackbar component as I've tried many of them and they all are lacking in some fundamental aspect.
My use case is really simple; I want to display chat messages as some kind of toasts/snackbars/notifications/whatever to the user if he is currently not on the chat page. The toast position should preferably be configurable (top or bottom) so as not to obscure UI navigation elements and/or the notifications should support 'swipe to dismiss' (or other means of closing them).
Unfortunately the snackbar in XCT can't be dismissed, so I thought I'd add two actions to it: 'Hide' and 'Open'. Unfortunately it seems as XCT's snackbar can display one action only (not sure if it's a bug as it accepts an enumeration of actions).
So is there any way this could be addressed in some way? I'd really like to use it, but unfortunately I can't as the user experience would be bad as the user would have to wait out all of the toasts that currently block him from using the app if I were to use it.
Suggestions:

Make the position configurable (top or bottom)
Add swipe to dismiss, an 'X' close button or something, to allow hiding them prematurely
ACT.UserDialogs animates the toasts in/out via a slide instead of a fade, which I strongly prefer. It would also be more natural to swipe away sliding notifications. Any chance of changing this or at least making it configurable?

Thanks.

A Snackbar has a clear semantic that you can find here:
https://material.io/components/snackbars
None of the enhancement you list is part of this semantic unfortunately.
Your behavior is very specific and should be easily done with a simple custom view like a Grid with 3 column *,60,60 for your 2 actions and a SwipeGesture :)

A Snackbar has a clear semantic that you can find here:
https://material.io/components/snackbars
None of the enhancement you list is part of this semantic unfortunately.
Your behavior is very specific and should be easily done with a simple custom view like a Grid with 3 column *,60,60 for your 2 actions and a SwipeGesture :)

Was not aware this was following material design. Almost every platform has a completely different definition for for example what a toast message is. Where is it stated this follows material design?

Was not aware this was following material design

Well a Snackbar is a material design component, so yes :)
It is implemented with a native snackbar on Android, and the others implementations are just following those specs.

Was not aware this was following material design

Well a Snackbar is a material design component, so yes :)
It is implemented with a native snackbar on Android, and the others implementations are just following those specs.

Thank you for the reply. The terminology gets a bit muddled as there's the ShowToastAsync etc methods, where 'toast' can mean anything from push notifications to a snackbar:esque brief notification, where the position (top/bottom) is configurable in lots of existing APIs. But thank you for the clarification.

Yeah well that happens when you want to please to many people ;)

I'm up for the position configurable. According to the placement design, we need a way to make the position configurable (only an absolute position perhaps ?), so we can handle the case when we have important content/action button under the snackbar.

@roubachof I checked out the native Android component and it does seem to support swipe to dismiss and positioning, unless I'm terribly mistaken.
So in that regard I think my enhancement ticket is still valid, no? Swipe to dimiss is great as the user can get rid of a notification that may obscure some UI elements without having to wait for it to disappear, which may be the most frustrating thing in the world. And by being able to control at least top/bottom placement would allow the app designer to select a position where it least obscures UI elements.
Thanks again for considering!

It's true that you can add an action or swipe to dismiss a snackbar. A "top" snackbar that close only on the user action is called a banner: https://material.io/components/banners
A snackbar is a low priority UI, putting it at the top of the screen would make it a high priority.
I would keep a clear UI semantic for component here.

It's true that you can add an action or swipe to dismiss a snackbar. A "top" snackbar that close only on the user action is called a banner: https://material.io/components/banners
A snackbar is a low priority UI, putting it at the top of the screen would make it a high priority.
I would keep a clear UI semantic for component here.

Thank you for the reply. So the 'swipe to dismiss' functionality is on the table then? :)

I would suggest to close this one as and open an issue to add a swipe to dismiss feature.

I checked out the native Android component and it does seem to support swipe to dismiss and positioning, unless I'm terribly mistaken.

could you please share the documentation link where it is described

I checked out the native Android component and it does seem to support swipe to dismiss and positioning, unless I'm terribly mistaken.

could you please share the documentation link where it is described. I found only Behavior but not the position

It's in the Android developer reference at
https://developer.android.com/reference/com/google/android/material/snackbar/Snackbar

I see that it can be swiped to dismiss, but as for your suggestion 1: They show a brief message at the bottom of the screen on mobile and lower left on larger devices.
Snackbar is not displayed at the top of the screen

I see that it can be swiped to dismiss, but as for your suggestion 1: They show a brief message at the bottom of the screen on mobile and lower left on larger devices.
Snackbar is not displayed at the top of the screen

Ah sorry. Yeah doesn't seem like snackbars' position can be changed on Android.

as for the dismissal swipe action. what do you think if we add a cancellation token? it will be a better way to cancel the task and will work on all platforms

as for the dismissal swipe action. what do you think if we add a cancellation token? it will be a better way to cancel the task and will work on all platforms

Sounds like a fair way to go about it. Of course the native swipe animation won't trigger on Android in that case, but one would have to implement one anyway for iOS.

as for the dismissal swipe action. what do you think if we add a cancellation token? it will be a better way to cancel the task and will work on all platforms

as for the dismissal swipe action. what do you think if we add a cancellation token? it will be a better way to cancel the task and will work on all platforms

Sounds like a fair way to go about it. Of course the native swipe animation won't trigger on Android in that case, but one would have to implement one anyway for iOS.
This of course as long as there is enough control to bind some kind of event listener to the snackbar element, that is.
If this can be implemented straight into the control will of course be easier and saves everyone the effort of doing all of the above.

Maybe I am wrong, but I think the XTC should look at concepts and semantics and be inspired by those, but a community toolkit should always be about the community and less about specific concepts. I think from a usability point of view the requested behaviors/actions/animations are not just valid but necessary. Every user today expects for banners/toast/Snackbar to be dismissable. I can't count the times where I was just frustrated as a user because I couldn't dismiss it and it was hiding important information. And it can also be configurable, so if really needed it can be set to not-dismissable.
Having said that, I understand, why the toolkit would try to stick to semantics and concepts, but I think there should really be a discussion on to what point will the toolkit comply with these rules. Also I am "pretty new" to this repo and maybe it's not my place to critize decisions made by the contributors. If so please let me know 😊

I've now been testing the XCT snackbar and it's shaping up really nicely, but I just can't live without ability to dismiss it or placing it at the top of the screen instead.
The problem is that I have the app's main buttons at the bottom of the screen and the snackbar obscures them completely, so every time a notification is shown the user has to stop using the app for a few seconds. This just isn't an acceptable user experience.
For what it's worth, I have seen apps that display notifications at the top. If they are called banners and are meant for 'high prio' notifications, so be it -- all the users care about is that it doesn't prevent them from using the app, and if the only place where they can be shown at is the top, then that's where they have to go.
Thanks.

I've now been testing the XCT snackbar and it's shaping up really nicely, but I just can't use it without the ability to dismiss it or place it at the top of the screen instead.
The problem is that I have the app's main buttons at the bottom of the screen and the snackbar obscures them completely, so every time a notification is shown the user has to stop using the app for a few seconds. This just isn't an acceptable user experience.
For what it's worth, I have seen apps that display notifications at the top. If they are called banners and meant for 'high prio' notifications, so be it -- all the users care about is that it doesn't prevent them from using the app, and if the only place where they can be shown at is the top, then that's where they have to go. The users really don't care about UI paradigms if they can't interact with the app.
Thanks.

@Tommigun1980 I'm currently facing the same problem (positioning).
Did you find a solution to this? I'm kinda at my witts end :D

In order for Swipe dismiss to work:

Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets.

Source

In order for Swipe dismiss to work:

Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets.

Source
@VladislavAntonyuk can we do something about that ?

As for Android as it was mentioned it is possible with native implementation. As for other platforms I think we can use gesture recognizes.

In order for Swipe dismiss to work:

Having a CoordinatorLayout in your view hierarchy allows Snackbar to enable certain features, such as swipe-to-dismiss and automatically moving of widgets.

Source
@VladislavAntonyuk can we do something about that ?

As for Android as it was mentioned it is possible with native implementation. As for other platforms I think we can use gesture recognizes.

@VladislavAntonyuk  I meant that even if that the feature already exist in native Android, it is not working in the sample probably we don't have a CoordinatorLayout in the tree, hence was my question "can we do something about that ?", should we wrap somehow inside a CoordinatorLayout?

This feature needs to be enabled in Snackbar. It is disabled by default. I used the base call to show Snackbar.

@VladislavAntonyuk I was searching on Android official documentation I didn't find anything regarding explicitly enabling/disabling it (or disabled by default)  also was and playing with setBehavior() without success, I think it can be a matter of missing CoordinatorLayout in our tree structure (additional: https://stackoverflow.com/questions/38823767/snackbar-is-not-dismissing-on-swipe).

@VladislavAntonyuk is this task closed by https://github.com/xamarin/XamarinCommunityToolkit/pull/1005 ?

@AndreiMisiukevich The discussion describes 2 issues. The first issue is about Swipe to dismiss. I think it is not implemented.
The second issue is about position of the Snackbar. And it is fixed by the PR

@Tommigun1980 could you please fill the separate ticket? It will be more convenient to follow the discussion :)
Thanks

@Tommigun1980 could you please fill the separate ticket? It will be more convenient to follow the discussion :)
Thanks

https://github.com/xamarin/XamarinCommunityToolkit/issues/1225


Assets: Running non-generation tasks currently regenerates the site assets

This causes nasty repercussions like causing the site to lose stylesheets when cronjobs run tasks.

Resolved and merged in #410


Rename executable and proto files

In order to improve the automatic startup of Inexor Core instances I would suggest to rename the resulting binaries and proto files according to this schema:

Filename schema
Example
Description

inexor-core-{type}.exe1
inexor-core-server.exe
The executable2

inexor-core-{type}.proto3, 4
inexor-core-server.proto
The protobuf descriptor file

Lowercase filenames are more portable
On linux it's unusual to use the .exe file extension but it's not forbidden. But as regular users doesn't start the executable by himself it's better to have the same filename.
The same base name for the executable and the proto file
Use the same filenames for all platforms

Type
Description

client
The game client

server
The game server

bot
(Optional) A bot

...
more types are possible

Could this conflict with Wine setups which are trying to execute the .exe file as a Windows binary?

Linux executables have an ELF header and can be identified as linux binary. Windows executables have an PE header. I haven't tested it, but I suppose wine is checking this first.

naming the file "..client.exe" would also cut the amount of people trying to click on "inexor.exe"

https://www.howtogeek.com/192628/mime-types-explained-why-linux-and-mac-os-x-dont-need-file-extensions/ -> .exe is no problem for linux

:+1:


[XCUITests] Add iOS XCUITests to CI

Platforms Impacted

[x] iOS
[ ] macOS

Description of changes
Binary change:

File
Before
After
Delta

libFluentUI.a
55,562,128 bytes
55,562,128 bytes
0 bytes

Updated CI to run iOS XCUITests every PR.
Changed tests to run in series. Initially, tests were executed in parallel. However, this caused nondeterministic failures.
Added a tearDownWithError() in BaseTest that deletes the demo app after every test. This ensures that each test starts with a clean state and removes the need to figure out what page the demo app is on since all tests will start on the home page (page with all controls). This was necessary because certain tests were navigating to the wrong page.

Verification

Pull request checklist
This PR has considered:

[ ] Light and Dark appearances
[ ] iOS supported versions (all major versions greater than or equal current target deployment version)
[ ] VoiceOver and Keyboard Accessibility
[ ] Internationalization and Right to Left layouts
[ ] Different resolutions (1x, 2x, 3x)
[ ] Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
[ ] iPad Pointer interaction
[ ] SwiftUI consumption (validation or new demo scenarios needed)
[ ] Objective-C exposure (provide it only if needed)

Microsoft Reviewers: Open in CodeFlow

your command line, are we building (again) and then testing per target? once we have the build ready, can we just run test without building? or are you just building the test code of fluent demo app?

your command line, are we building (again) and then testing per target? once we have the build ready, can we just run test without building? or are you just building the test code of fluent demo app?

Going through the logs, I only see one build succeeded so I believe it's building once and then testing each target. I noticed that it's testing the tests in FluentUITests target and then the ui tests in the FluentUIDemoTests target.


HDDS-7830. SCM API for OM and Datanode to get secret keys

What changes were proposed in this pull request?
SCM API to expose SecretKeys to OM and Datanodes. The APIs are implemented in the same SCMSecurityProtocol that is used by OM & Datanodes today to fetch Certificates. List of new APIs:

getCurrentSecretKey: used by OM to fetch the current key to sign block tokens.
getSecretKey: used by Datanodes to fetch a secret key with a given key id (encoded in the tokens sent to datanodes).
getAllSecretKeys: allow Datanodes to proactively prefetch secret keys from SCM.

These APIs will be used by OM and DN to sign and verify tokens. An early code review for that is here: https://github.com/duongkame/ozone/pull/3.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-7830
How was this patch tested?
Integration test.
https://github.com/duongkame/ozone/actions/runs/4326226681

It would be good to capture the security model expected for which principals can make the API calls.

Merging this in since this is a dev branch, and we can refactor the code as needed.
This change looks.

Thanks @duongkame for working on this! I started running the new tests and after running them 30 times both testSecretKeyAfterSCMFailover and testSecretKeyApiNotEnabled failed at least once. Could they be flaky, or is this something that comes necessarily with MiniOzoneCluster tests?
Overall the change looks good, I have left 2 suggestions for white space changes.

Thanks, @Galsza for the review. I could actually reproduce the failure after running the tests continuously multiple times. Think I found the problem with a short waiting time in testSecretKeySuccess that causes flakiness. Fixed.

It would be good to capture the security model expected for which principals can make the API calls.

Thanks for the review @kerneltime. I created HDDS-8164 to address the authorization model for secret key APIs.


Automatically run npm run link

I would like to figure out how to automatically run npm run link when the user does an npm install. It was causing infinite loops for me though.

I don't think this will be necessary anymore since we are using bare specifiers


Ranking pages v0

Adds basic ranking pages, supporting rankings of stat vars from the chart config, grouped by place type and optionally scoped by a containing place. There is support for multiple stat vars as well, though we won't use it for now.

added sort, ptal (i wished it kept the approval for small changes...)

added sort, ptal (i wished it kept the approval for small changes...)

yeah, not sure a good way to adjust this.


s/ "Dependencies installing..." / "Installing dependencies..."

This reads a little better imo.
(Not a docs change, but I didn't test it because it's just a wording change)

Thanks!  Do you mind rebasing this onto dev and pointing to the dev branch since it touches source code?  I tried a simple repoint but it picks up other docs commits already on main and not in dev so it needs the rebase :/


pyproject.toml: fix installation using pip by adding authors

Pip installation, at least in non-editable mode, requires the authors section. Otherwise there is an error:
RuntimeError: The Poetry configuration is invalid:

The fields ['authors'] are required in package mode.

Thanks for raising this issue.


Update Tetragon Clusterrole

Tetragon daemonset should be only allowed to get/list/watch TracingPolicy objects
Tetragon daemonset should be only allowed to create/update the TracingPolicy CRD definition
Signed-off-by: Natalia Reka Ivanko<EMAIL_ADDRESS>

Thanks!


[Feature Request] Add extensions for Possibly* types

In general, the idea is to add extensions with nullable values for Possibly* types.
For example, it would be nice to write val user: User? = message.user instead of val user: User? = message.asFromUser().user.
When there will be a subtype with user member in a code, the extension will be just ignored.
There is an another way, to make this without extensions, just using member functions/properties. It may be better since the highlighting works faster for member functions. And they do not require imports.
So the functions like as... may become less useful and may be even removed in the future.
This allows users to use two patterns for this cases: fast access to nullable properties whenever the user needs it, and the old good one way - strong types with not null properties.
I saw that the unability to use the first way leads newbies to migrate to libraries like kotlin-telegram-bot where this way is the only one available, but when theirs bots become a bit complex, they have to migrate again to this lib in case they want to avoid nulls.

[x] Message
[ ] InlineQuery
[ ] ChosenInlineResult
[ ] CallbackQuery
[x] ShippingQuery (class as is)
[x] PreCheckoutQuery (class as is)
[ ] Poll
[x] PollAnswer (class as is)
[x] ChatMemberUpdated (class as is)
[x] ChatJoinRequest (class as is)


Grafana ui doesn't work

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind feature

What happened:
Tarmak cluster was brought up with Grafana. After that a port-forward was opened to the pod but the ui is broken.

What you expected to happen:
Working ui.
How to reproduce it (as minimally and precisely as possible):
Bring up a Tarmak cluster with Grafana enabled
Anything else we need to know?:
Some extra docs on how to access Grafana would be nice.
Environment:

Kubernetes version (use kubectl version):
Cloud provider or hardware configuration**:
Install tools:
Others:

/assign


bug: add proxy support for oci getter

What this PR does / why we need it:
OCI getter does not seem to be taking into account the proxy settings. See this example:
var getters = getter.Providers{
        getter.Provider{
                Schemes: []string{"http", "https"},
                New:     getter.NewHTTPGetter,
        },
        getter.Provider{
                Schemes: []string{"oci"},
                New:     getter.NewOCIGetter,
        },
}

func main() {
        dl := downloader.ChartDownloader{
                Out:              os.Stdout,
                Getters:          getters,
                Options:          []getter.Option{},
                RepositoryConfig: "/tmp/doesntexist",
                RepositoryCache:  "/tmp",
        }
        if _, _, err := dl.DownloadTo(
                "oci://registry-1.docker.io/bitnamicharts/memcached",
                "6.6.2",
                "/tmp",
        ); err != nil {
                log.Fatal(err)
        }
        log.Println("done")
}

When running with http proxy env set this is the output (without the patch):
$ go build -o downloader main.go
$ http_proxy=$p https_proxy=$p ./downloader
2024/01/31 11:54:22 failed to do request: Head "https://registry-1.docker.io/v2/bitnamicharts/memcached/manifests/6.6.2": dial tcp <IP_ADDRESS>:443: i/o timeout
$

When running with the patch:
$ go build -o downloader main.go
$ http_proxy=$p https_proxy=$p ./downloader
2024/01/31 11:56:04 done
$

Special notes for your reviewer:
If applicable:

[ ] this PR contains documentation
[ ] this PR contains unit tests
[ ] this PR has been tested for backwards compatibility

For sake of completeness this are extra tests I just conducted:
root@node-3bf7f-00:~# http_proxy=$p https_proxy=$p HTTP_PROXY=$p HTTPS_PROXY=$p downloader
2024/02/02 19:45:25 failed to do request: Head "https://registry-1.docker.io/v2/bitnamicharts/memcached/manifests/6.6.2": dial tcp <IP_ADDRESS>:443: i/o timeout
root@node-3bf7f-00:~# http_proxy=$p https_proxy=$p HTTP_PROXY=$p HTTPS_PROXY=$p downloader-patched
2024/02/02 19:45:30 done
root@node-3bf7f-00:~#

@joejulian Can we have your review here as well ?

Any news on this ?

@joejulian Any news on this ?

This can be merged with a single approver as it is XS.


fix(input): remove IE clear icon

Removes IE's native clear icon from inputs, because it makes them inconsistent between browsers.
Fixes #8076.

@crisbeto shouldn't you add the feature to all browsers, instead of removing it from IE?