rEFInd seems to be properly installed, but windows starts insted of rEFInd

when I open the bootloader (minus+power), rEFInd shows up, and when clicked, works normally, it just doesn't boot on default. I'm using steam OS preview, and windows 11.i am using this guide. https://www.youtube.com/watch?v=KaviK55od6Y

Please refer to the SteamOS branch considerations portion of the README. I'm assuming (based on your limited description) that you ran the rEFInd installation script after branching away from the stable branch of SteamOS. This is a known issue that I discuss in the README. Please also clone and use my version of the installation script, as it takes care of potential duplicate rEFInd EFI entries from successive script runs. Thanks.

Hey, swapped to you version, and used stable, but still isnt working. Sorry if my last message came off rude. rEFInd (the original, with grey background) works correctly, but windows is still booting first. any further troubleshooting?

What branch and version of SteamOS are you on? There are issues on non-stable branch versions of SteamOS that prevent the efibootmgr command from properly disabling the Windows EFI entry (which is a necessary step). Whether this is intentional or a bug by Valve is something that I'm still uncertain about. Anyways, others have had success previously by reverting back to stable branch SteamOS, re-running the script and then going back to other non stable SteamOS branches afterwards.

Like I said before, I am using stabe, I reinstalled it on stable, it still does not work.

So in your first post, you clearly state that you were using SteamOS preview (not the stable branch). You clearly ignored or disregarded Valve's disclaimer for the preview build that states, "Testing for new Steam and system-level features. Updates frequently. You may encounter issues." Well, you are encountering an issue that you would not be had you run the script initially from the Stable build like my README clearly (and explicitly) states. I agree that some formatting updates are in order though for the README. I just re-verified that this works even with the latest stable release 3.3.3, so had you followed my instructions, you would not be experiencing this issue. Check your tone when you are asking for help.
With all that being said, you are also not giving me too much information to assist in my debug. Clearly something is messed up in going from Preview back to stable without reimaging the Steam Deck. There are three things that I think you could try to fix your issue.

Go to the Beta branch (boot into beta SteamOS and run all updates) and then go back to the stable branch (get the latest updates) and try re-running the script. You will know if it worked or not from the command line because you won't see an error, and you will see the * next to the Windows EFI entry is gone. If the asterisk is still there next to the Windows EFI entry after running efibootmgr after running the installation script, then something is still interfering with this necessary step.

You can re-image the Steam Deck and stay on the latest stable build (3.3.3, and run all updates), reinstall Windows and the APU driver (at a minimum) and then run the rEFInd installation script. This SHOULD work for you, but I will add the disclaimer that I don't know all that's being changed with the Preview build (BIOS, firmware, etc.) that could still potentially interfere. There is a possibility that this would not work. If going this route, I'd suggest making a backup of your /home directory files in SteamOS and creating a Windows system image of its partition. Restoring Windows from its system image backup would  potentially save you some reinstallation headaches. Even if not restoring from a Windows image backup, I think the Windows setup is fairly easy now with all of the guides and automated installers out there (to get you back up and running quickly).

There is a workaround to force rEFInd to be the next active EFI boot entry from both Windows and SteamOS that requires proper bcdedit and efibootmgr commands from the respective OSes. If you're interested in more information about this method that should work for you, I'd consider writing up a more detailed guide and explanation if you apologize and ask nicely.

First, I'd like to apologize for how rude my previous messages were. I followed that YouTube guy before I had found the official rEFInd page. It was rude of me to behave like that, and for that I am sorry. If I have to fully reimage my steam deck it's not worth it to me at this point, if you're still willing to help me with that third option I'd be very appreciative.

No worries. Apology accepted. Give me a little bit of time to do the write-up for option 3. The process is a bit convoluted.

Can you paste what you see at your SteamOS command line when you run efibootmgr ?

I'm sorry, I'm not the most familiar with Linux or command lines. I can follow a guide pretty well tho. Are you asking me to redo the EFI install I followed from you git page? And copy paste what it responds with?

No, I'm asking for you to run the command efibootmgr from a SteamOS desktop mode command line, and then paste the results here. I need to modify a command that a Reddit user had come up with for the workaround. His workaround was to boot SteamOS (as the next active EFI boot entry) by default though, so I need it to be modified for rEFInd instead. By providing me your results from running efibootmgr , I can ensure that my edits will work for you and your use case.

i'm on the steamos stable channel
just updated to the new steamos 3.4 today
the boot option for steamos disappeared from the boot menu (vol - and power menu), after the update,
it would boot manually by choosing the efi file from the other boot menu, but it would not repopulate it like it used to, it just would show my win10 boot entry
I got your rEFInd installed using the new nopacman install and it works if I pull up the boot menu and select it, but its booting to windows by default
do you know of a fix for this?

by the way, i just got a 2nd 3.4 update and it fixed the boot menu, it put back the steamos entry, so i guess other people reached out to valve and they quickly patched it.
it still boots to windows by default, but now my boot menu has the windows, steamos and refind entries

What I suspect is happening is that the known issue of 3.4 (on preview and beta channels) preventing the efibootmgr step of disabling the Windows EFI boot entry has made it into the stable release. I know of a more complicated workaround for this, but I was holding off on coding it and uploading it until I knew whether this was going to be an issue with the stable release or not. I'd be interested in knowing if they're blocking this on purpose or if it's a bug. Either way, I am home from work now and actually have some free time tonight to look into this. I plan to re-image a fresh Steam Deck to latest stable build 3.4, install Windows and see if the script works or not, or if I experience the same issue. If I encounter the same issue, then I have my answer and I will work on coding the workaround. It will require a script run in SteamOS and Windows, which is partially why I held off. It's more complicated, but it seems to work from what I've read from Reddit. Credit goes to Reddit user lucidludic for the workaround method. Here's to hoping the efibootmgr next boot option is not blocked, or this workaround is DOA for 3.4. Either way, I should know tonight whether it's needed or not and if it actually works.

With the update to 3.4 today on the Stable branch, I am seeing the same issue. The firmware seems to be forcing the Windows EFI entry to supersede all others. I've started working on the workaround.

Alright, I figured out a working "fix." The problem is that with the 3.4 update, the firmware is forcing the Windows EFI file to become active and supersede every other EFI entry. This interferes with rEFInd working properly. since it can't take over the boot priority unless the Windows EFI entry is disabled. Something with system permissions is preventing this from being possible from SteamOS desktop mode, where previously it worked fine. The "fix" is actually quite simple, but requires the SteamOS recovery image or another bootable Linux (from a USB drive). My test case was using the SteamOS recovery image.
Boot from the SteamOS recovery image (or other Linux distro of choice). Run these commands and take note of any Windows EFI boot entry number. It is possible with the 3.4 update that there are multiple Windows EFI entry numbers, so perform the disabling command for all of them. Something funky is up with the 3.4 firmware. I'm not sure if this is a bug or intentional on Valve's behalf. Run this from Konsole.
efibootmgr
Jot down or remember any Windows EFI boot entry numbers. Run the following command for each Windows EFI entry, replacing XXXX with the actual Windows EFI entry numbers (one at a time if multiple, and then run the command multiple times if necessary).
sudo efibootmgr -b XXXX -A
This will successfully disable the Windows EFI entry, the necessary step that is not working for some reason in 3.4. Reboot and rEFInd should be active. You will know the Windows EFI entries are disabled if you see the asterisk disappear from the onscreen efibootmgr printout after running the command(s).
Let me know how it goes. This process was successful for me on my main Steam Deck.

hey thanks buddy il test that out in the morning, thanks for the quick work on a fix
if you need a tester for any further improvements, im game, as im in the it field and beta test stuff a lot

Presumably only folks with Windows are having this issue, so here's a potentially easier solution for those experiencing this problem. Note, I'm not too familiar with Win32, so my solution uses a 3P app that's unfortunately not open source. Pretty sure bcdedit can be used to achieve the same functionality, but here's what I did.

Boot into Windows
Install EasyUEFI Trial

Follow the instructions here

This should basically do the equivalent of sudo efibootmgr -b XXXX -A in the recovery OS. If anyone knows how to do this via command prompt in Windows, let us know!

Alex

Yes, good addition. I can look into figuring out the equivalent bcdedit command and testing it. Over the next few days, I plan to reimage a fresh Steam Deck and test what this experience is like with brand new 3.4 and Windows. I'm assuming that the efibootmgr command will still be blocked, but I will look into it. It's also possible that the sudo steamos-readonly disable command is not setting permissions adequately in 3.4, so there may be a different method needed if that's the case. In any event, I need to do more testing, and I will have time to do so over the next few days / next week.

Just to add more information to this (maybe).
I also had this issue. Attempting to disable the Windows boot entry via SteamOS desktop mode failed. efibootmgr kept complaining "boot entry not found", even though running it without any command line options shows all the expected boot entries. It felt a bit like it was gaslighting me...
I thought I was being super clever, as I actually have a Manjaro installation on my SteamDeck's SD card which I use when I want to do some personal stuff at work. So I booted into that and tried to use efibootmgr again. Based on the comments in this thread, I really thought this would be the solution. But it didn't work. Exact same error.
Then I tried the EasyUEFI solution from Windows. This seems to have worked, so thank you @schiffy91.
I'm documenting all this just for information in case it is helpful.

hey buddy i followed your guide, i used the steamos recovery image, went to konsole and ran those commands
and when i finished i noticed the boot order had refind like 3rd on the list so i fixed that and it now boots directly to refind :)
here is how i changed the order:
sudo efibootmgr -o 000,002,001
the numbers i filled in, inorder are: refind,steamos,windows

hey buddy i followed your guide, i used the steamos recovery image, went to konsole and ran those commands and when i finished i noticed the boot order had refind like 3rd on the list so i fixed that and it now boots directly to refind :)
here is how i changed the order: sudo efibootmgr -o 000,002,001
the numbers i filled in, inorder are: refind,steamos,windows

Sounds good. This is another normally not possible thing to accomplish from the SteamOS desktop mode, as the firmware does not respect manually changing the boot order. The script automatically does this though by "installing" the rEFInd entry last, making it first in the bootorder in the way that the firmware respects and does not block.
Long story short, if re-running the rEFInd installation script from SteamOS desktop mode does not work for people, since the 3.4 updated firmware force reinstalls and re-enables a Windows EFI boot entry (for some users), then just boot from the SteamOS recovery image and run the installation script from there. I think this will be simplest for most people, and have the same effect as what you describe.

hey buddy i followed your guide, i used the steamos recovery image, went to konsole and ran those commands and when i finished i noticed the boot order had refind like 3rd on the list so i fixed that and it now boots directly to refind :)
here is how i changed the order: sudo efibootmgr -o 000,002,001
the numbers i filled in, inorder are: refind,steamos,windows

Sounds good. This is another normally not possible thing to accomplish from the SteamOS desktop mode, as the firmware does not respect manually changing the boot order. The script automatically does this though by "installing" the rEFInd entry last, making it first in the bootorder in a way that the firmware respects and does not block.
Long story short, if re-running the rEFInd installation script from SteamOS desktop mode does not work for people, since the 3.4 updated firmware force reinstalls and re-enables a Windows EFI boot entry (for some users), then just boot from the SteamOS recovery image and run the installation script from there. I think this will be simplest for most people, and have the same effect as what you describe.

thanks for the help buddy,
by the way i got a 2nd patched version of 3.4 this morning, not sure what they changed today, ik the first patch was supposed to revert the sdcard mount point

I think this issue can be closed now. It's clear to me that Valve pushed firmware changes with 3.4 that force Windows to assume boot priority, even when the EFI entry was previously disabled. SteamOS desktop mode cannot successfully disable the Windows EFI entry any more (blocked by firmware or other system permissions). Two workarounds exist, and both are adequate. If you already had a functioning rEFInd installation, just boot into the SteamOS recovery image from USB. Either manually disable the Windows EFI entry (with a proper efibootmgr command) or just re-clone my repository and run the main script one last time. I may consider making a version of the script that can do everything properly when booted from the SteamOS recovery image, but for now I have not done this. This would require some manual partition mounts and edits to some of the commands, so I think a separate script would be justified (if people wanted it).
I'm hoping in a future release that Valve reverses this firmware change. It is obtrusive, and seems completely unnecessary.
The other possible workaround is do to what schiffy91 described up above from Windows with EasyUEFI Trial.
Closed, since two acceptable workarounds exist.

Presumably only folks with Windows are having this issue, so here's a potentially easier solution for those experiencing this problem that requires nothing but Windows and an internet connection. Note, I'm not too familiar with Win32, so my solution uses a freeware 3P app EasyUEFI Trial that's unfortunately not open source.

Boot into Windows
Install EasyUEFI Trial
Follow the instructions here to disable the Windows Boot Loader.
Enjoy SteamDeck_rEFInd

This should basically do the equivalent of sudo efibootmgr -b XXXX -A in the recovery OS. If anyone knows how to do this via command prompt in Windows, let us know! I'm pretty sure you can use bcdedit, but I'm not familiar enough with DOS to take a stab.

Thank you sir, and thanks jlobue10, your way worked as well on my friends steamdeck and Schiffy91 worked as well on mine.
Also with the EASY UEFI Trial, you can also move rEFInd up to be the first boot option just to be safe.


Interpreter fails with float16 atomic_add

Found in https://github.com/triton-lang/triton/pull/4981; likely from here, where only float and double support is added:
https://github.com/triton-lang/triton/blob/152ef2deb8852d5c84f9ffba217b3a7c8f398c5f/python/src/interpreter.cc#L393
Repro: run this with TRITON_INTERPRET=1.
import torch

import triton
import triton.language as tl

@triton.jit
def triton_copy(in_ptr, out_ptr, numel, BLOCK_SIZE: tl.constexpr):
    pid = tl.program_id(0)

    offsets = pid * BLOCK_SIZE + tl.arange(0, BLOCK_SIZE)
    data = tl.load(in_ptr + offsets, mask=(offsets < numel))

    tl.atomic_add(out_ptr + offsets, data, mask=(offsets < numel))

x = torch.randn(256, device="cuda", dtype=torch.float16)
out = torch.zeros_like(x)
BLOCK_SIZE = 256

triton_copy[(1,)](x, out, x.numel(), BLOCK_SIZE)

Stacktrace
Traceback (most recent call last):
  File "/home/dberard/local/triton-env2/triton/python/triton/runtime/interpreter.py", line 1102, in __call__
    self.fn(**args)
  File "/home/dberard/local/triton-env2/scripts/atomic_write_f16.py", line 13, in triton_copy
    tl.atomic_add(out_ptr + offsets, data, mask=(offsets < numel))
  File "/home/dberard/local/triton-env2/triton/python/triton/runtime/interpreter.py", line 682, in <lambda>
    new_member = lambda *args, member=member, **kwargs: (member(*args, **
  File "/home/dberard/local/triton-env2/triton/python/triton/language/core.py", line 35, in wrapper
    return fn(*args, **kwargs)
  File "/home/dberard/local/triton-env2/triton/python/triton/language/core.py", line 1806, in atomic_add
    return semantic.atomic_add(pointer, val, mask, sem, scope, _builder)
  File "/home/dberard/local/triton-env2/triton/python/triton/language/semantic.py", line 1408, in atomic_add
    return tl.tensor(builder.create_atomic_rmw(op, ptr.handle, val.handle, mask.handle, sem, scope), val.type)
  File "/home/dberard/local/triton-env2/triton/python/triton/runtime/interpreter.py", line 624, in create_atomic_rmw
    return TensorHandle(_interpreter.atomic_rmw(rmwOp, ptr.data, val.data, mask.data, sem), val.dtype.scalar)
ValueError: Unsupported data type

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/dberard/local/triton-env2/scripts/atomic_write_f16.py", line 19, in <module>
    triton_copy[(1,)](x, out, x.numel(), BLOCK_SIZE)
  File "/home/dberard/local/triton-env2/triton/python/triton/runtime/interpreter.py", line 1104, in __call__
    raise InterpreterError(repr(e)) from e
triton.runtime.errors.InterpreterError: ValueError('Unsupported data type')

I think we can support it through locks.
Would you or @anmyachev like to contribute?
https://github.com/triton-lang/triton/pull/4976

I don't think I have time at the moment, but I'll reach out in the future if I want to work on a fix!

I can take a look

@Jokeren I can try to do something like the following. However, for this I need to add a dependency on NumPy, to be more precise on npymath m (to reuse https://numpy.org/devdocs/reference/c-api/coremath.html#half-precision-functions). Is adding a dependency acceptable?
template <> npy_half atomic_fadd<npy_half>(npy_half *loc, npy_half value, std::memory_order order) {
  npy_half old_value;
  std::cout << "TEST:\n" << std::flush;

  const std::lock_guard<std::mutex> lock(atomic_op_guard);
  old_value = *loc;
  *loc = npy_float_to_half(npy_half_to_float(old_value) + npy_half_to_float(value));

  return old_value;
}

I see. We actually want as minimum dependency as possible. Can you please copy and paste half to float code?


feat: adding optional name for cbr rule and zone

Description
giving full flexibility on cbr rule description and zone names in fscloud submodule
Issue
https://github.com/terraform-ibm-modules/terraform-ibm-cbr/issues/279
Release required?

[ ] No release
[ ] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

Merge actions for mergers

When merging, use a relevant conventional commit message that is based on the PR contents and any release notes provided by the PR author. The commit message determines whether a new version of the module is needed, and if so, which semver increment to use (major, minor, or patch).
Merge by using "Squash and merge".

/run pipeline

/run pipeline

Also an example snippet for both rules and zones should be added in the fscloud example to demonstrate the customizied name/description.

/run pipeline

/run pipeline

/run pipeline

The test will fail as there are already rules which are created with same attributes and those needs to be deleted first to run this PR test, wait for the nuke to destory the resources.

/run pipeline

/run pipeline

/run pipeline

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


Add a "new lesson incubator"

Prompted by @drjwbaker's comments in #20, I thought it might be good to have a separate "incubator" list of lessons that have been developed and/or taught under the LC banner but aren't yet mature enough to be officially adopted. I'm thinking that these lessons would be good to surface so that they can be taught a few times and given a chance to mature. I feel like this would be a good balance between avoiding good material getting lost and committing to maintaining and promoting every library-related lesson that comes along.
My current thoughts were either a separate section on the home page below the main lesson list, or a separate page entirely (but with a prominent link from the main lesson list).
Does this make sense? Any thoughts as to the best implementation?

@jezcope @drjwbaker Really keen to see this as it shows the dynamism of this space and opens up the opportunity for contributions from all over. I have pinged Tom and Brenda through the chatroom as to whether we can start by forking their existing work on web scraping . It also might lay the groundwork for things that could realistically be done if we run another two-day global sprint in June. I am not sure if MSL are running that again, but if not, we could still do our own sprint anyway - I am sure we would get a lot more particiaption given the vast interest we have had in the past year and the growth and spread of training and support for training. I think it would be good to link to all the the 'back end' repos from librarycarpentry.github.io so people can see what work is in progress and they can start to raise issues or fork and contribute.

@weaverbel Great, thanks! So, potential lessons to include here so far:

Tidy data for librarians
Library web scraping (by @timtomch)

My opinion: put it on the main page under the 'main' lessons; add the repos to 'data-lessons'; move SQL to incubator as - as far a I can see - it still needs some real playtesting to be a lesson proper.
Thanks for taking this forward @jezcope.
And agreed with @weaverbel: these are ideal candidates for the sprint (which we should do regardless of Mozilla - anyone know them enough to find out what is going on?)

@weaverbel @drjwbaker Looks like this year's MSL global sprint is scheduled for 1/2 June: https://science.mozilla.org/programs/events/global-sprint-2017

I look earlier this week but glad it is now there! Let's do it (I'll block out some time..)

Wrt SQL discussion - the folks in Norway who contributed to Unix Shell also did this version of SQL https://scriptotek.github.io/library-sql/. There is this other version as well http://labs.timtom.ch/sql-novice-library/index.html

Yeah.  Good point @ccronje. We have a few versions knocking around. I think we need to tidy this up during the sprint.

Great ! How shall we organise this year's sprint? Etherpad? Google form to sign people up? Zoom for daily catch ups? Happy to sort whatever works best to wrangle teams and do the blurb/paperwork for MSL so we get our project listed early on. I'll also do a blog post for SWC we can all tweet and we should post it on librarycarpentry.github.io as well. I will be in transit most of May (US, Scotland, France) so I would like to get the organising work done before I fly off to Portland on 30 April.

Hi there! Happy to contribute the webscraping lesson. I have now taught it three times, and finally last week at the code4lib conference in LA I was finally happy with it. The text still needs some smoothing over (particularly the XPath section), timing needs to be reworked and the episodes that I have now moved into the "extra" folder as the lesson would be too long otherwise still remain to be rewritten, but I'm finally no longer ashamed of the lesson. How should I proceed, do you want to fork my repo or should I transfer the lesson repo to LC?

Right. I've opened an issue at https://github.com/LibraryCarpentry/librarycarpentry.github.io/issues/23 @weaverbel are you happy to do this initial MSL registration?

Hi @timtomch I think you should keep your own copy and we can fork a version of it into LC as the lessons might end up diverging. What do others think?

I also have a modified version of the SQL workshop that I teach from regularly at https://github.com/amyehodge/amyehodge.github.io/tree/master/Beginning_SQL. I think the biggest modification is that I have attempted to get the queries to build up into a big query over time instead of starting over a lot. Hope that makes sense.

@amyehodge Thanks so much for sharing. This is super helpful.
Who is leading on maintaining/reworking the SQL lesson. @c-martinez?

During the sprint? I don't think anybody has volunteered for it, explicitly.

@c-martinez Both: it isn't clear to me who is maintaining or if anyone is willing to lead on this for the sprint.

@drjwbaker -- @mkuzak and me are maintainers of SQL lesson, but I we are not working on the lesson during the sprint. I'll keep an eye out for PR's but will mainly concentrate on Python new lesson.

my primary target for the sprint was OpenRefine lesson, but may also work on SQL if time allows

Okay. Totally understand. As maintainers perhaps you could coordinate a few simple tasks during the sprint:

moving the lesson to incubator ( @jezcope: are you coordinating space/language around this new designation?)
seeing if there are people who want to work on the lesson
checking back in on their work post-sprint, especially if a potential new maintainer or two emerge

Is that something you can look at?

Close as superseded by https://github.com/data-lessons/librarycarpentry/issues/22


Feat/  UI adjustements

changes added.

added tailwind css support.
replaces some style object values to tailwind CSS classes.
on  home component added responsiveness
refactored large App.jsx file into small components.

extended feat/create2 branch with this  changes.


Added Many Songs

I added the Songs from the Form

Thank you for adding Spotify links and all these songs. It all looks good.


Page 0 when querying empty collections

There is an issue when a collection is empty, the paginable has PageNumber = 0. This is odd... it should show PageNumber = 1, even though no items are being returned.

this this was corrected in v2


Use unique file provider in library code

Fixes #79
Previously, there would be an issue when multiple apps on the same device were using this library, since they would have matching FileProvider authority strings, which need to be unique.
Adding the ${applicationId} variable, as suggested in the issue, wasn't quite enough. This blog post and this StackOverflow post help explain how this solution came about.

Codecov Report

Merging #83 into master will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff          @@
##           master   #83   +/-   ##
====================================
  Coverage       0%    0%
====================================
  Files           1     1
  Lines         173   173
  Branches       11    11
====================================
  Misses        173   173

Continue to review full report at Codecov.

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


call, ret not working

Hello, thanks for fixing the jz problem. Sorry to bother you again, but the call/ret sequence doesn't seem to work either; could you look into this?
Your compiler has quite a good ui and is easy to use, so I dont want to use any other simulator if possible. Thanks again.
Program:
mvi a, 0ah
mvi b, 1ch
call adsbr
sta 0100h
hlt
adsbr: add b
ret

Thanks for reporting these issues. This really helps improve the experience for everyone using this tool. Do not hesitate to file more issues. I may not be able to fix them immediately but it's good to know what is buggy.
This should be fixed now. I have not tested all flavours of CALL instructions, so, please let me know if you find more issues.


Data api impl

data service APIs (unidirectional and bidirectional) can be used to send rpc to the raft peers. The destination can be either a specific peer or based on the role of the peer (leader follower etc)

Codecov Report
Attention: 25 lines in your changes are missing coverage. Please review.

Comparison is base (2268a58) 75.65% compared to head (30bb58e) 74.36%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #40      +/-   ##
==========================================
- Coverage   75.65%   74.36%   -1.29%
==========================================
  Files          20       20
  Lines         768      827      +59
  Branches       79       86       +7
==========================================
+ Hits          581      615      +34
- Misses        134      153      +19
- Partials       53       59       +6

Files
Coverage Δ

src/include/nuraft_mesg/common.hpp
50.00% <ø> (ø)

src/include/nuraft_mesg/mesg_factory.hpp
100.00% <ø> (ø)

src/include/nuraft_mesg/mesg_state_mgr.hpp
100.00% <ø> (ø)

src/lib/manager_impl.hpp
50.00% <ø> (ø)

src/lib/manager_impl.cpp
76.60% <65.21%> (+0.74%)
:arrow_up:

src/lib/mesg_client.cpp
78.04% <65.30%> (-13.21%)
:arrow_down:

... and 2 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Re-authenticate on JWT expiry

After 24 hours, JWTs from Annosaurus expire. In order to avoid closing and reopening VARS GridView once this happens, we should add a system to re-authenticate with the endpoints when the JWT is expired.

Just a note that calling an endpoint with an expired JWT should return a 401 code. No need to check the JWT itself, just re-auth when you get 401s.

That's what I was thinking; I wrote a decorator here that does this:
def reauthenciate(client: M3Client):
    """
    Decorator factory to reauthenticate an M3 client and retry if a request fails due to an expired token.

    Works by intercepting a requests.exceptions.HTTPError with status code 401.

    Args:
        client: The M3 client to reauthenticate. Assumes the API key has already been set.

    Returns:
        A decorator that reauthenticates the client and retries the request if it fails due to an expired token.
    """

    def decorator(f):
        def wrapper(*args, **kwargs):
            try:
                return f(*args, **kwargs)
            except requests.exceptions.HTTPError as e:
                if e.response.status_code == 401:
                    LOGGER.debug(f"Reauthenticating due to error 401: {e}")
                    client.authenticate()
                    return f(*args, **kwargs)
                else:
                    raise e

        return wrapper

    return decorator

@kevinsbarnard This is completed, correct?


Font selection menu does not function on iOS safari

Same with the text input in the font dialog. It just seems to instantly unfocus.

https://apps.apple.com/us/app/ms-paint/id1619725004 unrelated, but just thought I’d put it here. someone’s taken your site and is selling it as a paid app (which I’m pretty darn sure violates the license). you might wanna take some action against that.


Registry not accessible: Image pull back error

Hi Team,
I am using CRC on Windows 10 pro, Whenever i try to run below command we are getting " Image pull error" and not able to do deployment .

Docker build - working fine
Docker Push -- working fine
oc new-app -i iam-mxcomponentapi:1.0 -- ### Getting error (getting imagepullback
error)

Logs:
PS C:\Users\DevOps-Release\kafka> oc describe pod iamapi-1-deploy
Name:         iamapi-1-deploy
Namespace:    axisodc
Priority:     0
Node:         crc-45nsk-master-0/
Start Time:   Fri, 08 May 2020 17:29:26 +0530
Labels:       openshift.io/deployer-pod-for.name=iamapi-1
Annotations:  k8s.v1.cni.cncf.io/networks-status:
openshift.io/deployment-config.name: iamapi
openshift.io/deployment.name: iamapi-1
openshift.io/scc: restricted
Status:       Failed
Reason:       DeadlineExceeded
Message:      Pod was active on the node longer than the specified deadline
IP:           <IP_ADDRESS>
IPs:
IP:  <IP_ADDRESS>
Containers:
deployment:
Container ID:
Image:          quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:07601faa48f9042bb7a7336a8bed5de9249bd3f3d1509c6f4a65b0d
Image ID:
Port:
Host Port:
State:          Waiting
Reason:       ImagePullBackOff
Ready:          False
Restart Count:  0
Environment:
OPENSHIFT_DEPLOYMENT_NAME:       iamapi-1
OPENSHIFT_DEPLOYMENT_NAMESPACE:  axisodc
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from deployer-token-stl7r (ro)
Volumes:
deployer-token-stl7r:
Type:        Secret (a volume populated by a Secret)
SecretName:  deployer-token-stl7r
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
PS C:\Users\DevOps-Release\kafka>
Kindly check and help on this please .
Thanks,
P.Karthikeyan

@devopskarthikeyan check https://github.com/code-ready/crc/issues/821#issuecomment-555862714 one you just can't use the imagestream as it is.

Hi Praveen,
we are running CRC on windows 10 &  whenever we do " crc start " with out "-n <IP_ADDRESS>" getting below issue.
PS C:\Users\Tagitdemo2\DevOps-Release\today\IAM> crc stop
Stopping the OpenShift cluster, this may take a few minutes...
Stopped the OpenShift cluster
PS C:\Users\Tagitdemo2\DevOps-Release\today\IAM> crc setup
INFO Checking if oc binary is cached
INFO Checking if podman remote binary is cached
INFO Checking if CRC bundle is cached in '$HOME/.crc'
INFO Checking if running as normal user
INFO Checking Windows 10 release
INFO Checking if Hyper-V is installed and operational
INFO Checking if user is a member of the Hyper-V Administrators group
INFO Checking if Hyper-V service is enabled
INFO Checking if the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
Setup is complete, you can now run 'crc start' to start the OpenShift cluster
PS C:\Users\Tagitdemo2\DevOps-Release\today\IAM> crc start
WARN A new version (1.10.0) has been published on https://cloud.redhat.com/openshift/install/crc/installer-provisioned
INFO Checking if oc binary is cached
INFO Checking if podman remote binary is cached
INFO Checking if running as normal user
INFO Checking Windows 10 release
INFO Checking if Hyper-V is installed and operational
INFO Checking if user is a member of the Hyper-V Administrators group
INFO Checking if Hyper-V service is enabled
INFO Checking if the Hyper-V virtual switch exist
INFO Found Virtual Switch to use: Default Switch
INFO Starting CodeReady Containers VM for OpenShift 4.3.8...
INFO Verifying validity of the cluster certificates ...
INFO Adding <IP_ADDRESS> as nameserver to the instance ...
INFO Will run as admin: add dns server address to interface vEthernet (Default Switch)
INFO Check internal and public DNS query ...
WARN Failed public DNS query from the cluster: ssh command error:
command : host -R 3 quay.io
err     : Process exited with status 1
output  : ;; connection timed out; no servers could be reached
:
INFO Check DNS query from host ...
============================

Hence we tried the option " crc start -n <IP_ADDRESS>"  now crc statrd with out any issues but we are getting error on deployment . Below are logs.

 All sloution about into Linux.
Please check and help me resolve the above issues.
Thanks,
P.Karthikeyan

Hi Team,
Is there any update on this request please.

@devopskarthikeyan Did you try out what praveen suggested in https://github.com/code-ready/crc/issues/821#issuecomment-555862714 and that solves your issues?
The issue with dns looks like a different one, did you push your image to the internal registry or quay.io?


Error saying tests are not defined on running request

I have checked the following:

[X] I use the newest version of bruno.
[X] I've searched existing issues and found nothing related to my issue.

Describe the bug
I have downloaded the postman collection for commercetools and setup an environment. When I try to run the "Obtain an access token" I get the following error:
Error invoking remote method 'send-http-request': ReferenceError: tests is not defined
Looking in the Tests tab, there is code for tests. If I clear the test scripts tab, the request works.
The same environment/collection works fine in Postman.
.bru file to reproduce the bug
No response
Screenshots/Live demo link

@jonashilmersson It appears the test script needs to be updated to match Bruno's format of writing tests.
We have some basic documentation here on the syntax of the test function - https://docs.usebruno.com/testing/introduction
If you could your share one of the sample tests, I should be able to share you how the Bruno equivalent looks like?
BTW, You can also checkout Bruno SDK of commercetools - https://docs.commercetools.com/sdk/bruno

It's the scripts that are included in the Postman collection from commercetools, for example this for the Obtain access token:
tests["Status code is 200"] = responseCode.code === 200;
var data = JSON.parse(responseBody);
if(data.access_token){
    pm.environment.set("ctp_access_token", data.access_token);
}
if (data.scope) {
    parts = data.scope.split(" ");
    parts = parts.filter(scope => scope.includes(":")).map(scope => scope.split(":"))
    if (parts.length > 0) {
        scopeParts = parts[0];
        pm.environment.set("project-key", scopeParts[1]);
        parts = parts.filter(scope => scope.length >= 3)
        if (parts.length > 0) {
            scopeParts = parts[0];
            pm.environment.set("store-key", scopeParts[2]);
        }
    }
}

But if there are Bruno-specific files I guess I can try these, thanks!

I cloned that repo and just tried to import the bru file at https://github.com/commercetools/commercetools-api-reference/blob/main/bruno/api/auth/clientCredentials.bru as a Bruno collection , but I get an error message saying the import failed.

Hello,
I get the same issue importing a postman collection using the same test format
tests["Status code is 201"] = responseCode.code === 201;

The odd part is that Bruno considers this is a valid code as it's not commented.
So I think the issue is more in the import process

@bhecquet @jonashilmersson
The equivalent of in Bruno is
test("Status code is 201", function() {
  expect(res.getStatus()).to.equal(200);
});

You could also declaratively write status check tests in bruno in Assertions

@jonashilmersson your error should go away once you manually update the line having tests["Status code is 200"] = responseCode.code === 200; using the bruno syntax I shared above.'

I cloned that repo and just tried to import the bru file at https://github.com/commercetools/commercetools-api-reference/blob/main/bruno/api/auth/clientCredentials.bru as a Bruno collection , but I get an error message saying the import failed.

You cannot import a single file. After you clone the repo, You need to click on Open Collection and open the folder at commercetools-api-reference/tree/main/bruno

@Pragadesh-45 please see if we can add a conversion step for lines like - tests["Status code is 201"] = responseCode.code === 201;
I am assuming we can translate test['test description'] = boolean_condition to
test("test description", function() {
  expect(boolean_condition).to.be.true;
});

@helloanoop Sure, I'll start working on this issue and fix this.


update IM to 9.1 to support data types in workspace mapping

https://keboola.atlassian.net/browse/PS-672

replaced by https://github.com/keboola/docker-bundle/pull/484


Create Functor.spawn1() to Functor.spawn8() methods to multiply an element to a Tuple of similar elements

there will be as much spawn methods as Tuples
spawn1() will create one additional element, spawn2() two, and so on.
spawn1() is a shortcut for map(e -> Tuple.of(e, e)).

Example:
List.of(1, 2, 3).spawn1() // = List.of(Tuple2(1, 1), Tuple(2, 2), Tuple(3, 3))

Tested a bit in that direction and saw that map() is sufficient.


fetched testimonials from the DB

What is the change?
I have added a testimonial schema in models folder exported it to the testimonial-router.js .As there were some predefined
testimonials . I have contributed in such a way that new testimonial by a logged in user will be added in addition to predefined rendering of the testimonial.
Related issue?
close: #985
How was it tested?
It was tested locally.
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x] Have you followed the Contribution Guidelines while contributing.
[x] Have you checked there aren't other open Pull Requests for the same update/change?
[x] Did you lint your code before making the Pull Request?
[x] Have you made corresponding changes to the documentation?
[x] Your submission doesn't break any existing feature.
[x] Have you tested the code before submission?

Screenshots or Video:
Add a screenshot or demo video if appropriate.

I have made the necesscary changes . Pls review it accordingly. also contributing as a LGM-SOC participant


Expression identities are not applied to top-level expressions

For technical reasons, we only apply an identity to a sub-expression of an expression.  We do not apply identities to top-level expressions.  In particular this means that we do not apply them to the guards of if statements; we won't transform:
if (e) {  ... }
into:
if (transformed(e) { ... }
(Though we will transform sub-expressions of e.)
We should address this.

Fixed by #261


Cache bound by weighted count

i.e. if we know or approx the memory usage of each entry in Mb and want to bound the cache to X Mb.  I see there's a fixed capacity internally on the concurrent dictionary - so probably not straightforward.
If we picked a suitable N for the capacity bound and did this psuedocode:
onUpdated += x => { total = Interlocked.Increment(x.Size); if(total > limit) lfu.Trim(currentSize*0.7); }
onRemoved += x => total = Interlocked.Decrement(x.Size)

any thoughts on the performance/stability?

I plan to replicate Caffeine's size-based algorithm for ConcurrentLfu, and have this as a built-in option. This would be similar to time-based eviction, but instead of an expiry calculator you would pass in an item gauge to determine size.
Implementing this from the outside presents a few problems:

There is no OnAdded event to hook into
Events are not yet implemented for ConcurrentLfu, so you could only try this with ConcurrentLru. I will add LFU events in the next couple of months.
Trimming 30% by item count doesn't account for weights, so you may trim too many or few items. To make this more accurate, you might instead loop while (total > limit) lfu.Policy.Eviction.Trim(1); , such that you keep deleting the next candidate for removal according to the cache's eviction policy. This would remove the minimum number of items for the cache to fit within the limit.
The interlocked operations on the total size counter don't guard against all races, so for example interleaving two concurrent updates would result in two threads incrementing size yielding total > limit == true. Two threads will now call Trim, removing 30% of the items successively (if you had 100 items cached, this would be 100 * 0.7 * 0.7 = 49 items in the cache, and so on). If there are many concurrent updates this would converge towards an empty cache. The easy way to solve this is with a global lock for all mutate operations, but that will kill throughput and the lock will be contended as the number concurrent threads increases.

In summary I would expect it to be quite fast but unstable in the sense that the cache would be trimmed more than needed, reducing hit rate. In some scenarios adding the global lock to restore stability might not matter, but I wouldn't choose that option without measuring/testing in the context of the real application.

Thanks for the advice. We're having a tough time finding an implementation in .NET!

Since there's locks inside trim, we're thinking something like this will be more appropriate as a workaround: https://gist.github.com/dave-yotta/a3163bb7c81aa5b0d4e2ad4b482ac2aa

I left a comment on your gist - in practice I think it will work but will be subject to incorrect total size due to races between GetOrAdd, Set, TryRemove and time-based expiry. If you don't use any of those things, there are no races. The races will be benign - under some conditions Trim may be off by one or two removing more items than needed which will slightly reduce the efficacy of the cache.
The semaphore inside Set might reduce concurrent throughput or use a lot of CPU due to spinning if called at very high frequency - again not likely to be your primary use case but is a potential failure mode that I wouldn't ship as default behavior in a library.

@bitfaster how would you feel about a PR to make bool TryAdd(K key, V value) public? :D

I left another comment in your gist with a workaround using GetOrAdd - assuming inconsistent size between add/update is the issue you are hitting.
Class methods can be made public, it is more complicated to change interfaces. I didn't do a good job of aligning all the ICache APIs with ConcurrentDictionary. My intent was to fix all of this as part of v3, because it will be a breaking change to make everything consistent across the whole API surface.


About camus dataset split?

Hi, thanks for your work, how is the camus dataset divided into 10 folds? I didn't find any code on the web about this part of the division? Please send it to my email<EMAIL_ADDRESS>if you are willing to share it, thank you very very much!

Hello STHxiao, you can find this information under files/subgroups_CAMUS/

Thank you very much! There is no code related to the dataset division? I'm curious how this division is generated?

I do not have the code that generated the division.
From Leclerc et al:
"The dataset was divided into 10 folds to perform standard
cross-validation for the machine learning methods. Each fold
contains 50 patients with the same distributions in terms of
image quality and LVEF as the full dataset"

Okay, thanks again and good luck with everything!


fix incorrect usage of num_gpus & num_workers (#7312)

Removed unnecessarily restrictive check as discussed in in #7312 and validated the change using 2 single GPU VMs.

Can one of the admins verify this patch?

I have signed CLA

Jenkins, test this please.

Somehow the CLA signing did not trigger. Could you check again?

Jenkins, test this please.

@skaarthik you have to exactly type I signed it! to retrigger cla bot.

I signed it!

Thanks @gunan for letting me know. I have added a new comment that says I signed it!.
Thansk @caisq for approving the PR


afew: git-2017-02-8 -> 1.2.0

Motivation for this change
Update to a more recent version
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] Linux

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[X] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Thanks!


eureka-client to Eureka-servers load-balance?

1.There are 3 Eureka-Servers for the eureka-clients to register.
In the eureka-client properties, how to set the properties, to make the 3 Eureka-servers all available for the eureka-client.(or make the eureka-client use load-balance to register to the 3 Eureka-servers)
2. I know that set 'eureka.shouldUseDns=true' is one of the solution, what is the best practice in production environment(NOT AWS environment)?

Add a comma separated list of the eureka servers to make the clients.

@marcosbarbero, If add a comma separated list, what kind of load-balance strategy does the eureka-client will use to communicate with the eureka-servers?

They won't load balance because the eureka servers are peers so the client will pickup the first available server, if the first is down then it will pickup the next to the list

@marcosbarbero, Thank you for answer,  What is the best practice in production environment? Use 'eureka.shouldUseDns=true' OR comma separated list?

It depends on your environment, if you have an DNS available use it. If not, the comma separated list will work fine.

@marcosbarbero , Got it, thank you.

Np


Fix some mgmt source links

@xiangyan99 yes I was planning to do a check over all of them but fixed these ones manually because of the release notes.


Update GH Actions workflows

Update publish-docs CI step to automate file creation on gh-pages
Fix a command that attempts to remove a non-existent directory, which causes the build step for publishing docs to fail
Update build step to test for Python 3.10
Update master references to main in docs

@forsyth2, you can follow this PR if you need to update zstash workflows and docs to reflect main (no need to tag me for review in that PR). There were additional pieces that missing in #619 to get things working.
I validated this is working by allowing the publish-docs step to run in this PR temporarily: https://e3sm-project.github.io/e3sm_diags/_build/html/main/index.html

Thanks @tomvothecoder!


feat(ModelTheory): Set.Definable is transitive

Upstreamed from the EquationalTheories project.
The main new theorem in this PR is Set.Definable_trans, which is that definability of sets in first order logic is transitive. The other work (in Syntax/Semantics) is pretty much all to facilitate that statement and proof.

[ ] depends on: #19618

Some of the parts are not written in the Mathlib style. Do you want pointers to concrete places that need to be changed?

Some of the parts are not written in the Mathlib style. Do you want pointers to concrete places that need to be changed?

Yes please! I tried to adhere to the style but I'm sure I missed some things.


Where to locate multi-tenancy docs?

Broken down from #2671

@RFMVasconcelos I think there are two options:

Move Multi Tenancy into Components / Central Dashboard:

Pros:

Central Dashboard is closely related to the istio configs which actually do the security for multi-tenancy (that is, mapping web sessions to namespaces/profiles)

Cons:

Multi Tenancy is really a "feature" of every component, and putting it under a single component might hide it from users

As I proposed in https://github.com/kubeflow/website/issues/2671#issuecomment-829723462, create a new Concepts section of the website:

Pros:

"Concepts" is a very common section for docs (like in Kubernetes, Argo, Airflow etc), and usually outlines core principals which are central to the tool
Draws attention to "Multi Tenancy" as a core "feature"/"concept" of Kubeflow

Cons:

Creates a new website section (which will initially only have one page)

Personally I am in favour of option 2.

I am closing this in favour of discussion on the specific proposal of creating a Concepts section under Getting Started:
https://github.com/kubeflow/website/issues/2803
/close


Godot version check + workaround for API generation bug

As mentioned in #833, Godot versions < 3.3.1 were subject to a bug that caused non-deterministic crashes during the command:
godot --gdnative-generate-json-api api.json

For users working with affected Godot versions (e.g. 3.2), this makes the feature flag custom-godot annoying to use, since they can't rely on the API generation to succeed -- let alone use it for automation/CI. This PR works around that by retrying the command up to 10 times (magic number). I changed the minimum supported Godot version in our own CI again to 3.2, meaning that if it doesn't work, we have to suffer, too 😬
Additionally, this PR parses the Godot version and emits a meaningful error message if an unsupported version is detected (3.1 or 4.0).

Where I was unsure: the whole version logic is in a separate file, to prevent build.rs from growing too much. The problem is, there seems to be no agreed-upon best practice regarding build script separation.
Current approach is this (in build.rs):
#[cfg(feature = "custom-godot")]
mod godot_version {
    include!("src/godot_version.rs");
}

I also tried the following, but my build step got stuck in an endless loop:
#[path = "src/godot_version.rs"]
mod godot_version;

Ideas?
Would also be nice if the tests in godot_version.rs would be run during cargo test. I don't want the version logic to be part of the compiled gdnative-bindings crate, so adding the module in lib.rs is not really an option...
bors try

Where I was unsure: the whole version logic is in a separate file, to prevent build.rs from growing too much. The problem is, there seems to be no agreed-upon best practice regarding build script separation.
Current approach is this (in build.rs):
#[cfg(feature = "custom-godot")]
mod godot_version {
    include!("src/godot_version.rs");
}

I also tried the following, but my build step got stuck in an endless loop:
#[path = "src/godot_version.rs"]
mod godot_version;

Ideas?
Would also be nice if the tests in godot_version.rs would be run during cargo test. I don't want the version logic to be part of the compiled gdnative-bindings crate, so adding the module in lib.rs is not really an option...
bors try

Where I was unsure: the whole version logic is in a separate file, to prevent build.rs from growing too much. The problem is, there seems to be no agreed-upon best practice regarding build script separation.

Perhaps the logic can be put into bindings_generator? It's true that version parsing isn't directly related to code generation, but it is the crate that contains "the rest of build.rs".

Where I was unsure: the whole version logic is in a separate file, to prevent build.rs from growing too much. The problem is, there seems to be no agreed-upon best practice regarding build script separation.

Perhaps the logic can be put into bindings_generator? It's true that version parsing isn't directly related to code generation, but it is the crate that contains "the rest of build.rs".

@chitoyuu Great idea, I moved it to bindings_generator.
I also set up a mass CI test for all 3.x versions: https://github.com/Bromeon/godot-rust/actions/runs/1646049051
This shows two things:

it rejects versions < 3.2 with a helpful error message
it works for versions >= 3.2 and < 3.3.1 on first attempt

Godot 4 is not available for download, but I tested it locally, also rejected.

bors r+

bors r+


Feature request: put tabs at top in title bar

Current Windows Terminal (top) has a separate title bar and an address bar. It could be useful to consolidate them like Fluent (bottom) uses:

This would:

Save real estate
Increase signal/noise ratio (name of app pwsh is already in tab)
Be consistent with Edge

This is actually already available, if you set "experimental_showTabsInTitlebar": true in the root of the settings object.
UNFORTUNATELY, there are some real bugs with this solution currently. Notably, you won't be able to drag the entire "tabs" region, only the area that's immediately adjacent to the caption buttons. So beware, here be dragons.

Ah OK. I don't quite understand your caveat, but I can see that dragging tabs (eg, to reorder) definitely doesn't work when using this.
PS. off topic, but vscode keeps minifying the profiles.json on save so I can't read it - there's no extension doing this (I've disabled them). Terminal doesn't have some kind of magic to make VScode do this by chance??

Oh, like, the entire white section of the titlebar in my above screenshot doesn't work to drag the window around currently. This is a bug with XAML islands which we're working on currently.
The profiles.json thing is a temporary thing. Unfortunately, Windows.Data.Json always writes out json as a single line, without the ability to pretty-print it, and we re-write the profiles.json to make sure that it stays up to date with the schema of the app. So currently, it'll keep re-writing it. But that's a huge pain point that we want to fix ASAP.

I'm going to close this one out since it exists, but we just need to make the behaviour better and capture drag events. Thanks for the suggestion!

Sure, thanks @DHowett-MSFT! 🙂


Content Creator: Visual affordance for required fields - R2

As a Content Creator, I want to be able to identify which fields are required so that I know what is expected when creating and editing content.
Feature: Visual affordance for required fields
  As a Content Creator,
  I want to be able to identify which fields are required
  So that I know what is expected when creating and editing content.

  Scenario: Narrow down options for required fields affordance
    Given I will need to gather content to enter into the CMS
      And that certain content is required for the content to be eligible to save
     When I look to create or edit content
     Then I will see a visual affordance for required fields
       And identify which fields I need to complete to save
       And identify which fields I need to complete to publish

Visual affordance for required fields:

[ ] Narrow down options for required fields affordance

Reference #271

Would love to get everyone's feedback here. My preference is v3 or v7. I think spelling out what is required is key and accessible. Add the clear text with some sort of visual indicator will help users see what is required at a glance. cc/ @joshkimmell @poofichu @scottnath @mkiang3051 @SirSpidey
Posting options here as well:
v1

v2

v3

v4

v5

v6

v7

@ineedsubstance I really like v7! I think having text written out, but with an easier (IMO) to see visual cue on the actual input field area is nice.
On a tangent, V5 kind of reminds me of Dragon balls.

@ineedsubstance: As stated in #271, I'm fine with v7, but there needs to be more blatant diff between the 2 required fields and the non-required fields. Also, the teal doesn't have enough color contrast again the background.

Thanks @mkiang3051 + @joshkimmell.
Josh, what do you mean by blatant difference? If you are just talking about which colors to choose for each, then @poofichu should be able to explore that in the visual stage.

I mean other than color, how can the user scan the form and easily differentiate between required to save and required to publish?

Wonder if we could use a different staged treatment:

Never been saved: show only required to save. These are the only required ones to get me started.
Already saved: highlight required to publish, still show (*) required to save.
This would mean errors if you click publish before save. Not sure how often that will happen.

Can't rely only on color alone (accessibility), but I like color diffs
V6: don't like the same treatment on required to save and publish
Older IBM guidelines used an asterisk for required fields and I'm used to scanning for that. So that turns me away from v2, v3, and v7.

@SirSpidey - I think it might be difficult to know the user's intent (if they want to only save not publish) upon first use, especially for all content types. I do think there could be some sort of mechanism, like a link, that would highlight all fields that were required to save or publish so the user could request that information. Also, we discussed having an indicator of how many fields were required to save or publish, and how many user had filed out. Sort of like a progress indicator (e.g. 5 of 10). We could explore both these options, but it would be another story, though.
I think what I can do is narrow this down to 2 versions and we can test this with real users to see which is more clear.

Working on 2 new versions based on v7 as options. Will post those on Monday.

@joshkimmell @poofichu @scottnath @mkiang3051 @SirSpidey: Feedback needed.
I took v7 from above and applied that visual affordance to the API form so we could see how the required and save patterns might look to the user as they land on the page and as they scroll down. I also created 2 other options using the "required to publish" text and different color visual affordance styles.

Keep in mind that @poofichu will still need to make final visual tweaks with regard to color, type, size and placement for whichever option we go with.

v1 - color bar on left side of input + required text highlight

v2 - color border on input + required text highlight

v3 - label + required text underline

I agree with Miranda for v1 as I look at mockups.
@mkiang3051 interesting idea about toggle/hiding fields you don't want to fill out. That might be helpful because the form contains a mix of fields that aren't related to any workflow. So, I'd like to filter by fields needed to create/update an API "landing page" (not the "API reference" fields).

Thanks @SirSpidey + @mkiang3051. I agree that the toggle would be an interesting idea. I think it would still need to be a secondary way of discovering which fields are required for what. I don't like the idea of hiding or abstracting what is required until a user clicks on something, but if we have that as an additional way to clarify or filter the fields required to "save" for example, that could be cool.
Also, thought about the idea of a progress bar of sorts to give a visual reminder to a user how many fields they have left before they can "publish" the content.
I think both these enhancements could be another story to flesh out further.

@ineedsubstance
Yep - toggle would definitely be secondary - and we'd need to test out what filters would be needed/useful.
Progress bar is an interesting idea. I'm thinking if we had a progress bar, it would need to follow the user as they progress down the page, so it would be viewable wherever the user is.
We would also need to state explicitly that the progress bar would display progress for either filling out fields to completion for publishing (or whatever we decide to use it for) - and not have users think it would tell them when their job of filling out the fields they need to is done.
@SirSpidey I like that thought about making it even easier for the user to see the items that may be relevant to the content they are entering. We'll have to vet it out and mock it up and see if it would be helpful, but I think brainstorming up ways to not make the forms look so intimidating (and involve so much scrolling) can definitely help the user!
Yay for possible enhancements! 💃

@joshkimmell @poofichu - can I get some feedback from you 2 please.

V1 is good. We can mess with the styles later if it's not working for peeps. Let's leave the toggle idea for another, less stressful time.
👍

ok, V1 it is.
Implementation story here for next sprint - #404


[Settings] filename input no longer accepts

Microsoft PowerToys version
0.45
Area(s) with issue?
Settings
Steps to reproduce
Open Settings, page Image Resizer.
Try to enter a Space in the filename field.

✔ Expected Behavior
a [space]
❌ Actual Behavior
New style card toggles between collapsed and expanded. No [space] can be inserted.
Note this also applies to [Enter], but that's not so much a problem.
In other words, no interaction may go to the chevron.

ليس انا زوجتي تجسس
في الخميس، ٩ سبتمبر ٢٠٢١ ١١:٣١ م Jay @.***> كتب:

Microsoft PowerToys version
0.45
Running as admin

Yes

Area(s) with issue?
Settings
Steps to reproduce
Open Settings, page Image Resizer.
Try to enter a Space in the filename field.
[image: image]
https://user-images.githubusercontent.com/65828559/132758029-e7440a21-c9f2-4bd9-aa76-23ad63639b42.png
✔ Expected Behavior
a [space]
❌ Actual Behavior
New style card toggles between collapsed and expanded. No [space] can be
inserted.
Note this also applies to [Enter], but that's not so much a problem.
Other Software
No response
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/13139, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AVQJAXULLLY6BFRWIFNLZILUBEKTVANCNFSM5DX5U52A
.

@Jay-o-Way thanks, will look into this!

Looking at Windows 11 Settings, it looks like that we should avoid using TextBoxes in Expander Headers to, among other things, avoid this behavior. Switching to a dedicated 'card' (that is not expandable) is the better approach.

One single (extra) check box does not need to be hidden, so I vote for non-collapsible.

@Jay-o-Way Yeah.. I think in general, it would make more sense to move this entire "setting" to the actually editor at some point (as you suggested: https://github.com/microsoft/PowerToys/issues/1053#issuecomment-763110994).

Shipped with 0.47


[T6A3][F09-C2]Peh Xian Bin, Eugene

Ready for Review

Some comments added. Please close the PR after reading comments. For Parser class, It seems like you move the parsing function to each command classes which violates SRP. One way to enhance Parser class, first  you can have only main parsing idea in the base class, and separate out the parsing logic of individual commands as sub-classes. To make it more OCP,  we can extract out parsing of each command to a separate class and make the Parse class work with an abstract CommandParser.
[Parser] --- > [CommandParser] <|------[AddCommandParser].


Fix #56, Refactor CDS to use generic pool implementation

Describe the contribution
Rather than having a second pool implementation only for CDS, use the generic pool implementation.  This also uses the abstract resource identifiers to identify CDS blocks, rather than a direct reference.
Fixes #56
Testing performed
Build and sanity test CFE
Confirm all unit tests working
Also tested/Confirmed that the CFE TBL critical table registry is correctly restored when booting in a processor reset mode.  In this case the data is successfully restored from CDS.
Expected behavior changes
No impact to behavior.
System(s) tested on
Ubuntu 20.04
Additional context
This consolidates and simplifies a bunch of code in the CDS access area.
Note that previously there was a separate mutex for the CDS pool and CDS registry.  However almost all accesses needed both, because pool access and registry access go together.  So this is simplified to one mutex now.
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.

CCB 2020-10-06 APPROVED

Maybe transform the sample_app table into a critical table for testing and demonstration
Might want to set up CI to do power-on and processor resets


Added name in the maintainers list

Added my name in the maintainers list of pagerduty shortcircuiter

/lgtm
/approve


Akash - No Authz support

Akash bot says No Authz support still? - could this be a similar error to Terra - dose it work for you?

Ok, thanks for confirmation!

just an update, was still using on old restake version because on the Terra bug last time! :)


adding compat_resource

Description
Adding compat_resource for chef 12 support
Issues Resolved
fixes #194
Contribution Check List

[ ] All tests pass.
[ ] New functionality includes testing.
[ ] New functionality has been documented in the README if applicable

   Starting Chef Client, version 12.7.2
   Creating a new client identity for package-centos-73 using the validator key.
   resolving cookbooks for run list: ["test::package"]
   Synchronizing Cookbooks:
     - cpu (1.0.0)
     - build-essential (8.0.1)
     - poise-service (1.4.2)
     - seven_zip (2.0.2)
     - test (0.0.1)
     - haproxy (4.0.0)
     - compat_resource (12.19.0)
     - mingw (2.0.0)
     - poise (2.7.2)
     - windows (3.0.5)
     - ohai (5.0.3)
   Compiling Cookbooks...
   Converging 3 resources
   Recipe: test::package

Running handlers:
Running handlers complete
Chef Client finished, 12/18 resources updated in 42 seconds
Finished converging  (1m17.64s).
-----> Kitchen is finished. (3m6.18s)


Make catalog type builders consistent.

API | Common

@Cybermaxke You should be able to label your PR's workflow status using Limbo: https://github.com/SpongePowered/limbo-config/wiki/Pull-Request-Commands

Is this for bleeding or stable? you have targetted stable, but it was my belief the associated API changes were breaking?


Making a custom Dataset

❓ Questions & Help
Hello all, I am fairly new to pytorch_gemoetric and this might be a noob question.  I have an numpy ndarray of shape [22, 313] and I want to represent it as a graph, with 22 nodes connected to each other correlation between channels as edge weight.
Using networkx, I create the graph and weight matrices and finally-
                data_g = from_networkx(G)                 data_final = Data(x=data, edge_index=data_g.edge_index, edge_attr=data_g.weight)
Is this the correct way to go...
Thanks in Advance

Yes, you can do this :)

@rusty1s thanks a lot for replying, I tried to test this method by only having one data point in the dataloader by a simple convolution as -
conv1 = gnn.GATConv(in_channels=22, out_channels=64, heads=4)
for (data,y) in test_Data:
print(y)
x, edge_index, edge_weight = data.x, data.edge_index, data.weight
print(x)
print(edge_index)
print(edge_weight.shape)
out = conv1(x, edge_index, edge_weight)
print(out.shape)
and run into the following error -
TypeError: 'int' object is not callable`
Here is the stack trace -
File "/home/atharva/PycharmProjects/ResNet for time series/main.py", line 35, in
for (data,y) in test_Data:
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 345, in next
data = self._next_data()
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 385, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
return self.collate_fn(data)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 34, in call
return self.collate(batch)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 29, in collate
return [self.collate(s) for s in zip(*batch)]
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 29, in
return [self.collate(s) for s in zip(*batch)]
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 15, in collate
return Batch.from_data_list(batch, self.follow_batch)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/batch.py", line 54, in from_data_list
cumsum[key] = cumsum[key] + data.inc(key, item)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/data.py", line 171, in inc
return self.num_nodes if bool(re.search('(index|face)', key)) else 0
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/data.py", line 193, in num_nodes
return item.size(self.cat_dim(key, item))
TypeError: 'int' object is not callable
Where could I be going wrong,
TIA

Thanks a lot for replying @rusty1s ...
I have a function that creates such data_final(as mentioned in the question), appends them into an array and created the dataloader calling the dataloader function..
from torch_geometric.data import DataLoader as graph_Dataloader
train_data.append([data_final, torch.tensor(data=numpy.array(classes[folder]), dtype=torch.int64)])
data_loader = graph_Dataloader(train_data, batch_size=batch)
so when I run -
for (x,y) in data_loader:
I get the following error - TypeError: 'int' object is not callable
with the following stack trace-
** File "/home/atharva/PycharmProjects/ResNet for time series/main.py", line 35, in
for (data,y) in test_Data:
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 345, in next
data = self._next_data()
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 385, in _next_data
data = self._dataset_fetcher.fetch(index)  # may raise StopIteration
File "/home/atharva/.local/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
return self.collate_fn(data)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 34, in call
return self.collate(batch)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 29, in collate
return [self.collate(s) for s in zip(batch)]
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 29, in
return [self.collate(s) for s in zip(batch)]
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/dataloader.py", line 15, in collate
return Batch.from_data_list(batch, self.follow_batch)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/batch.py", line 54, in from_data_list
cumsum[key] = cumsum[key] + data.inc(key, item)
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/data.py", line 171, in inc
return self.num_nodes if bool(re.search('(index|face)', key)) else 0
File "/home/atharva/.local/lib/python3.8/site-packages/torch_geometric/data/data.py", line 193, in num_nodes
return item.size(self.cat_dim(key, item))
TypeError: 'int' object is not callable
Where could I be going wrong...
TIA -
PS- When I was inserting the code in between code markup, all newlines were missing... so sorry for that

Just wanted to reply you. Is this resolved? How did you fixed it?

IMO, the main problem is that you are passing in a 2-elemental list, which is interpreted as a dataset with two elements.

I just did  for _, (data,y) in enumerate(dataloader): and it works now.
But, essentially the dataloader should prepare batches from elements in the  train_Data list
So when we iterate through the dataloader, it should return the elements in the list ...
Am I right ?

That's correct. The easiest way to achieve that is to just pass a list of Data objects to the DataLoader (with. data.y set for each).

Hi @rusty1s,
I also faced the same issue. Your solution clarified the problem. So any extra data (like target data, images, etc) should be loaded into the same data-structure Data in-order to use with torch_geometric.data.DataLoader with collates using Batch function for the Data datatype.
Thank you,
Srikanth

Yes, you can certainly do this, but you are not limited to it, so, for example, the following works, too:
def __getitem__(self, ...):
    ...
    return Data(...), img, label

which can be also handled by the PyG DataLoader

Hi @rusty1s ,
I did that (return seperately) in get method, not __getitem__ and I got the error mentioned in the starting of the post. But when I added separate data into Data object using get method, I was not getting any error. May be should also check this __getitem__ method.
Thanks
Srikanth


Network: VLAN regression testing

Create VLAN
Get VLAN
Delete VLAN
Create VLAN and Configure IP
Delete IP from VLAN
Create VLAN, Configure IP then Delete VLAN
Create multiple VLANS
Delete multiple VLANs
e2e VLAN test

Run this once issue openbmc/bmcweb#79 gets fixed


chore(deps): update terraform terraform-ibm-modules/secrets-manager/ibm to v1.16.1

This PR contains the following updates:

Package
Type
Update
Change

terraform-ibm-modules/secrets-manager/ibm (source)
module
minor
1.15.0 -> 1.16.1

Release Notes

terraform-ibm-modules/terraform-ibm-secrets-manager (terraform-ibm-modules/secrets-manager/ibm)
v1.16.1
Compare Source
Bug Fixes

deps: update terraform time to latest for the deployable architecture solution (#165) (d0697af)

v1.16.0
Compare Source
Features

added a new secrets terraform module for adding secrets into secrets groups in an existing Secrets Manager instance (#157) (04c2bc9)

v1.15.2
Compare Source
Bug Fixes

deps: update terraform ibm to latest for the deployable architecture solution (#158) (a858b59)

v1.15.1
Compare Source
Bug Fixes

deps: update terraform time to latest for the deployable architecture solution (#153) (a843adf)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

/run pipeline

Edited/Blocked Notification
Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.
You can manually request rebase by checking the rebase/retry box above.
⚠ Warning: custom changes will be lost.

/run pipeline

/run pipeline

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


Refactor touch input management

This is an overhaul of the code that responds to input events on all platforms, with a particular focus on Android touch input.

Android input is now handled by the new class TouchManager
Gesture exclusivity can be managed at run-time via TouchManager (i.e. we can freely set which gestures are allowed to be recognized while another gesture is in progress)
Callbacks can be set for all available gesture types via MapController
A logic error in the calculation of scaling "fling" has been fixed
Input units for "shove" are now consistent with other input functions
3rd-party gesture recognizer code is now consistently styled
Pan flinging is now handled by an explicit callback at the end of a pan gesture, instead of being inferred
Flings now correctly interpolate with the time step between frames

This touches many lines of code, but the result is quite a major improvement in code quality and input behavior.
The most important feedback for this is comments on "feel". Try out every combination of gestures you can think of and see if there are any edge cases that feel wrong.

@tallytalwar @hjanetzek Please review but do not merge yet!
This is an API-breaking change for eraser-map. I will comment here again after I submit a PR with the necessary changes to the eraser-map repo.

Feels quite good and TouchManager looks well designed!
One thing I've just noticed is that rotation is always around screen center which might not be intended. Though otherwise if the view is tilted the change is a bit abrupt (does too much movement) when rotating in the upper screen area in my opinion.
The conflict between the animated move on tap and input handling needs to be resolved, but this belongs not to this task I guess.

Ah, I see now that rotation is always around the screen center, which is a regression. I'll look into that.
Is the conflict you refer to the fact that animated movement disallows manual map movement? I would agree that addressing this is better left to another PR; it's a more isolated issue with different design implications.

Seems that the rotate-around-center behavior, though indeed undesired, is actually not a regression from the current build. I suggest that this be addressed in a subsequent PR so that this one is not further complicated, let's track it as https://github.com/tangrams/tangram-es/issues/456

https://github.com/mapzen/eraser-map/pull/232 is now ready to update eraser-map for these changes.

I'm ok with merging. @tallytalwar ?

Have not got a chance to check this out. Will try to get to this today.

Seems we never had flinging for rotation gesture, should be good to add, but as part of another PR.

As we're thinking more specifically about the interactions of gestures, another thing to consider is whether simultaneous gesture recognition should be exposed for app developers to configure. Exposing all of TouchManager would probably make it too easy to break things, but exposing just the exclusivity rules might be a nice option for an SDK.

Very nice implementation of TouchManager class. Good to be merged once couple of issues mentioned in the comments are addressed. Good work. Thanks

@blair1618 Agree on exposing simultaneous gesture recognition API, application should be able to override the defaults in the MapController.


[Storage] Support Failover

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
The feature target to release on 10/15. Since the time limitation, send PR directly to public repo. Please help to review it ASAP.
Rest Spec:
Failover: https://microsoft.sharepoint.com/:w:/r/teams/AzureStorage/_layouts/15/Doc.aspx?sourcedoc={77CFF0F4-AFAD-4AC1-B51C-1F17C92E06AF}&file=SRP Customer-controlled failover API.docx&action=default&mobileredirect=true
Get Last Sync Time：https://microsoft.sharepoint.com/:w:/r/teams/AzureStorage/_layouts/15/doc2.aspx?sourcedoc={ad30891d-7c70-4d4f-9b95-046d40fa900d}&action=edit&wdPid=660b6155
PR information

[x] The title of the PR is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[x] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[x] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[x] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[x] The spec conforms to the Swagger 2.0 specification.
[x] The spec follows the guidelines described in the Swagger checklist document.
[x] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

Automation for azure-sdk-for-js

Automation for azure-sdk-for-python

Automation for azure-sdk-for-node

Automation for azure-sdk-for-ruby

Can one of the admins verify this patch?

Automation for azure-sdk-for-java

Adding @ravbhatnagar for ARM feedback

@ravbhatnagar
I have replied all your comments. Please help to review.
Since this feature target to release on 10/15, please help to review it ASAP.

@blueww - I still havent heard back from Daniel on the other open feedback item.

Automation for azure-sdk-for-go

@ravbhatnagar
Daniel will be OOF till 10/29. I have ping Chris for this.
But it seems the release on 10/15 is postponded. So we should not be on hurry for this.

Hi @blueww & @ravbhatnagar - what is the status here?

@annakhach ， @ravbhatnagar
It seems the feature won't release in the recent future.
We might can close this, and resend when the new feature release data is decided.


"open work" and ngo's

“Open work” means that your company or organization makes it easy for any individual to do your work for you without asking you first, and as a result to share in any revenue you generate. Basically you need to have a public issue tracker with documentation for self-onboarding, and be willing to use our payroll feature once we bring it back.

according to that would u accept common ngo's like greenpeace wwf and amnesty international? // - can i tell them if they like to have money from me they should make a team here?

They would probably fit better once we finish the new TOS, which doesn't require revenue sharing.

can i tell them if they like to have money from me they should make a team here?

You can now! 💃


fix(scylla_repository): logic for setup of manager wasn't correct

seems like the fix in 4571bc7c3835e8a1632d571f7beff707c96b4563 wasn't enough
and not accurate, and was breaking the manager dtest jobs
since SCYLLA_EXT_OPTS was defined, while the logic assume it would be defined
only when manger is used locally

Jenkins staging job running with it:
https://jenkins.scylladb.com/job/scylla-staging/job/fruch/job/manager-dtest/3/

Jenkins staging job running with it:
https://jenkins.scylladb.com/job/scylla-staging/job/fruch/job/manager-dtest/3/


DBT operators

One of our customer pointed out that they are using dbt-core using this package, which provides DBT Operators. Anyone has any thoughts about this? Would it be something that we can include in our providers package ?

suggest to use cosmos

@phanikumv do you have a plan to take this forward or investigate further?

no cosmos should handle it


CI: fix the test workflow

[x] More explicit configuration of the channels
[x] Use mamba (the solve was failing on Python 3.6 before that...)
[x] Add Python 3.10 in the matrix

Tests failing on Windows and Python >= 3.8 for reasons unrelated to this PR.


[$250] Web - Attachment - Unable to download a txt attachment until the browser is refreshed

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 9.0.30-7
Reproducible in staging?: Y
Reproducible in production?: Y
Issue reported by: Applause Internal Team
Action Performed:

Log in with a new Gmail account
Navigate to FAB - Start chat
Open a chat with any Gmail account
Send any txt file
Click on the txt file
Refresh the browser
Click on the txt file

Expected Result:
I should be able to download the attachment.
Actual Result:
Unable to download a txt attachment until the browser is refreshed. The download icon and the function itself becomes available again.
Workaround:
Unknown
Platforms:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/eba88040-eed4-4685-b08c-3baebe5dc007

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~021831987490764045084
Upwork Job ID:<PHONE_NUMBER>764045084
Last Price Increase: 2024-09-20

Issue OwnerCurrent Issue Owner: @getusha

@jliexpensify  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

I can reproduce, but I'm only on v9.0.29-12 and I can't actually download the .txt file, even after refreshing multiple times 😡

Proposal
Please re-state the problem that we are trying to solve in this issue.
Can't download a text file while uploading.
What is the root cause of that problem?
When we upload the attachment, the source is still a local file (blob://...), so, the sourceID here is empty.
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx#L35
The sourceID checks for the report action ID from the uploaded attachment source (/chat-attachments/actionID/...). Because the id is empty, the download icon won't be shown and pressing the attachment won't do anything.
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx#L66
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx#L47-L50
What changes do you think we should make in order to solve the problem?

Just want to provide an alternative if we want to allow the user to download the text attachment while still uploading. To do that, instead of finding the action ID from the attachment source, we can find it from the report action itself.
https://github.com/Expensify/App/blob/4af620b439636f714ff72a26320ed57f9d2faac3/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx#L43-L44
We also need to convert the withOnyx with useOnyx.
const { anchor, report, reportNameValuePairs, action, checkIfContextMenuActive } = useContext(ShowContextMenuContext);
const sourceID = action?.reportActionID;

const [download] = useOnyx(`${ONYXKEYS.COLLECTION.DOWNLOAD}${sourceID}`);

Last, we need to update the source so it only append encryptedAuthToken if it's a remote file.
const sourceURLWithAuth = (source.startsWith('blob:') || source.startsWith('file:')) ? source : addEncryptedAuthTokenToURL(source);

Proposal
Please re-state the problem that we are trying to solve in this issue.
Unable to download a txt attachment until the browser is refreshed
What is the root cause of that problem?
The reportAction is not updated in IndexedDB as shown in the image below, even after addAttachment completes successfully.

The condition check for sourceID returns undefined, which prevents the attachment from being downloaded.
https://github.com/Expensify/App/blob/9affb1384815fa8155fe23c523127c1e72b1120d/src/components/AnchorForAttachmentsOnly/BaseAnchorForAttachmentsOnly.tsx#L35-L54
The sourceID returns undefined due to const sourceID = (source.match(CONST.REGEX.ATTACHMENT_ID) ?? [])[1];. This happens because the source value is blob:https://dev.new.expensify.com:8082/7f479bf0-ef65-49f7-8f89-9e1cb1bf2d2f, which is stored in IndexedDB but not updated in reportAction even after addAttachment completes successfully.

What changes do you think we should make in order to solve the problem?
We should update the reportAction data after addAttachment completes successfully. Something like this:
// src/libs/Middleware/SaveResponseInOnyx.ts#L36

+        onyxUpdates.forEach((onyxUpdatesItem) => {
+            const onyxUpdatesKet = onyxUpdatesItem.key;
+            if (onyxUpdatesKet.startsWith(ONYXKEYS.COLLECTION.REPORT_ACTIONS)) {
+                const reportActionId = onyxUpdatesKet.replace(ONYXKEYS.COLLECTION.REPORT_ACTIONS, '');
+
+                if (onyxUpdatesItem.value) {
+                    Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${reportActionId}`, onyxUpdatesItem.value);
+                }
+            }
+        });

POC
https://github.com/user-attachments/assets/0e73fa8f-ef1a-4b0e-8019-521503fdc8c2

Bumping @getusha to test and look at proposals!

I am inclined to @hoangzinh's solution, adding an indicator that the file is still being uploaded sounds good as well.
Probably something like this? (same as when we download after it is uploaded)

cc @Expensify/design

I'm not sure that we need a tooltip on the loading spinner (it's pretty obvious what it means IMO), but I do like the idea of including it until the attachment is ready. That being said, it might make sense to replace the attachment icon with the spinner so that the shape of the attachment doesn't grow/shrink when it loads.

Hi @getusha Can you check again? The issue with this ticket is not uploading the file, but that the user cannot download the file. The problem is that the user cannot download the file even though it has been successfully uploaded.
https://github.com/user-attachments/assets/92cce693-d7f2-4e2e-8612-58d1b2e55089

Hi @huult
I cannot reproduce the issue you mentioned, i tried multiple times and i can download the file after it has been successfully uploaded.
https://github.com/user-attachments/assets/c19ca1b6-fc6f-4ef7-94cc-ef1ff80694b2

Hi @getusha I had the same problem as you when I first reproduced it. Watch my video below to see how to reproduce the issue (using any email and sending an attachment to any email).
https://github.com/user-attachments/assets/2875b92d-13ef-4ce0-b21c-5256aeacc1a8

@getusha bumping this one!

@huult any reason why this is happening on newly created chats?

Bump @getusha for a review of the above comment, thanks!

Bumping @getusha again, and also on Slack

@jliexpensify Is this resolved? I am interested in contributing to more projects. I took a look at this, seems it requires testing on multiple platforms, involves many different files without clear direction as to what those are so the bounty does seem low for this if that is true.

@MelvinBot Is that response completely automated? Jw for appriopriate followup responses.

@llvee all Melvin responses are automated, and it's indicating we don't have your details in our system.
This is still unresolved, we are awaiting a review. if you have a proposal, please follow the proper guidelines in the  Contributing .MD and feel free to post one with the correct format.

@huult I am no longer able to reproduce the issue you mentioned
https://github.com/user-attachments/assets/8d3aac98-d77b-4001-8426-7199f523899a

I think we just need to show an indicator that the file is still uploading. @hoangzinh could you update your proposal to include that? thanks

@getusha , Can you watch my video in this comment? I am still able to reproduce this issue at the moment!

Tested on newly created chat
https://github.com/user-attachments/assets/cce3d617-dbc8-491e-976b-0b90be3e6de3

@huult send an attachment to an account that hasn't been created yet?

@getusha Yes. The same steps as in the video for this task.

@getusha This issue happens with newly registered accounts, and the reason is explained here. The reportAction does not update after calling AddAttachment

Same @huult
https://github.com/user-attachments/assets/68fb994b-1710-48ab-99f3-e9ddae21f620

I was able to reproduce the issue an hour ago, but now I can't reproduce it anymore.

I took a look at this again, while I haven't signed up through the channels mentioned. It did become clear after reading through this more, that this likely requires moving away from using local storage to store relevant values related to registering the upload of the txt attachment to leveraging JS code more resilently in order to store, report values using reportAction.
If this helps out, can I receive a partial bounty if I don't actually create the code before that is completed since others seem to have already been working on this? Since moving away from localstorage & building more resilent JS code is likely a better proposed solution than others.
On that note, those who are already or were already working on this please let me know if you'd like me to contribute a code resolution. I'm interested in helping as mentioned above.

@llvee if you are interested, please review our Contributing .MD and submit a proposal using the correct format.

@jliexpensify I may not be able to use Upwork presently. Is there any alternative contribution strategy or is the team open to discussion around that? If there isn't, seems important in case of more serious potential development delays due to overreliance on a single platform.

@HezekielT's proposal looks good to me. let's make sure to disable the hover effect when it's still uploading as @hoangzinh mentioned.
🎀 👀 🎀 C+ Reviewed

@getusha according to other comments, the sourceID being null is not due to what is stated in @HezekielT's proposal. I took a look at the video, it only shows uploading the file, the file being successfully uploaded & the loading spinner working which doesn't show a resolution for being able to download the txt attachment without refreshing the browser. Just a heads up about that.

@jliexpensify I may not be able to use Upwork presently. Is there any alternative contribution strategy or is the team open to discussion around that? If there isn't, seems important in case of more serious potential development delays due to overreliance on a single platform.

The #expensify-open-source slack channel may be a better place to discuss this

Just a heads up I'm OOO from 3rd to 14th, but I don't think anything is needed from me during this period. Feel free to reassign to another B0 if needed for any payments though!

Bump @getusha - any checklist needed?

Bumping @getusha for the checklist
Payment Summary

C: @HezekielT $250 (to be paid via Upworks) - please accept the offer
C+: @getusha $250 (to be paid via New.Dot)

Upwork job

@HezekielT the job expired, so I had to rehire you here. Please accept.
@getusha - waiting on checklist please.

Paid and job closed.
@getusha please refer to this summary for your payment.

$250 approved for @getusha