Proposed reformat of *cause CSRs

From John Hauser, 14 March 2019:
The overloading of the '*cause' CSRs with new fields has always felt
awkward to me, even though I accept it was well motivated by a desire
to keep the instruction counts to a minimum.  Fortunately, I believe
I've found a different arrangement, just as good, that avoids CLIC mode
needing to modify the '*cause' registers.
In my new proposal, the complete set of CSRs that would be added with
CLIC are these:
0xm07   *tvt           Trap-handler vector table base address
0xm45   *istatus       Interrupt status
0xm46   *maskil        Masked interrupt level
0xm47   *nexti         Interrupt handler address and enable modifier
0xm48   *scratchcsw    Conditional scratch swap on priv mode change
0xm49   *scratchcswl   Conditional scratch swap on level change
The '*tvt', '*nexti', '*scratchcsw', and '*scratchcswl' CSRs are all
unchanged from before (aside from my adjusting the name and encoding of
'*nxti').  I'm not sure about the exact encodings, but I've mostly kept
them the same as before.  The real changes are all in '*istatus', which
coalesces fields that were previously in '*cause' and '*intstatus'.
I also went ahead and added '*maskil' for setting an interrupt mask
level, something that was already on the group's agenda.
To keep it simple, I'll usually just use M mode as an example.  Here is
the proposed format for 'mistatus':
mistatus
XLEN-1   TT              trap type: 0 = exception, 1 = interrupt
27:26   MPP             alias of mstatus.MPP
25   MPIE            alias of mstatus.MPIE
24   PTT             previous trap type
23:16   PIL             previous interrupt level
15:8   IL (read-only)  current interrupt level
7:5   (reserved)
4   HV              1 = reading trap vector table (was 'inhv')
3:0   (reserved)
You'll recognize most of these fields from the earlier 'mcause'.
The new 'mmaskil' is a read-write 8-bit register.  New interrupts
can be taken in M mode only for an interrupt level greater than
max('mistatus.IL', 'mmaskil').  There are no limitations on writing
'mmaskil' from M mode.  On initial entry to an interrupt trap, it
is guaranteed that 'mmaskil' < 'mistatus.IL', because otherwise the
interrupt couldn't have been taken.  Code that wants to raise the mask
level (typically an interrupt handler, but could be anything) should
usually save the old value first and then later restore it.
In CLIC mode, the hardware performs these extra actions on any trap
entry in M mode:
mistatus.PTT = mistatus.TT
if (trap is an interrupt) {
    mistatus.TT = 1
    mistatus.PIL = mistatus.IL
    mistatus.IL = new interrupt level
} else {
    // trap is a synchronous exception
    mistatus.TT = 0
}

These actions are added on MRET:
if (mistatus.TT) {
    mistatus.IL = mistatus.PIL
}
mistatus.TT = mistatus.PTT
mistatus.PTT = 0

An interrupt handler that enables nested interrupts needs to save and
restore 'mistatus' instead of 'mcause'.  Note that on entry to a trap
in M mode, the sign bits of 'mcause' and 'mistatus' will be the same
(although this relationship does not maintain forever).
One advantage of the new scheme is that, because the '*cause' registers
are left unchanged, synchronous exception handlers can be far more
oblivious to CLIC mode than with the current specification.  I've
arranged things so that, if an exception handler wants to save state
and re-enable interrupts to allow for nested traps, it can do so in
the same way it would without any knowledge of CLIC mode.  (Why it
would want to do so is a valid question, but I see no reason to exclude
the possibility gratuitously.)
I believe all the code examples in the CLIC document work the same in
the new scheme, assuming 'mcause' is replaced by 'mistatus'.  For the
interrupt-driven C-ABI example, the sequence
li a0, (MMODE)<<PP|(0)<<PIL|(1)<<PIE
csrw mcause, a0      # Initialize mcause to have pp=M, pil=0, pie=1
must be replaced by this equivalent code:
li a0, (1)<<TT|(MMODE)<<PP|(1)<<PIE|(0)<<PIL
csrw mistatus, a0    # Init mistatus to have TT=1, MPP=M, MPIE=1, PIL=0

From Kevin Chen:
Please note that the LSB of "mcause" contains the interrupt ID (12-bit
exccode) which is automatically updated by HW when a new interrupt is taken.
If you don't back up mcause, this interrupt ID will be overwritten by more
critical interrupts in the case of nesting interrupts. Once it is overwritten
(and gone) without backup, the ISR will miss this piece of information and may
not be able to complete successfully.

From John Hauser:
Except that none of the examples in the CLIC document actually looks at
the bottom 12 bits of *cause for handling interrupts.  When interrupts
are hardware-vectored, there is usually no need for an interrupt
handler to look at the interrupt number in *cause.  But even when
interrupts are not hardware-vectored, so long as we set up a table of
interrupt handlers pointed to by *tvt, the special *nexti CSR gives
us a pointer into this table without making any use of the interrupt
number in *cause.  If I'm not mistaken, all the examples in the
CLIC document use one of these two methods, which is why I'm able to
say that moving the fields out of *cause hasn't changed any of the
examples, other than replacing *cause with my new *istatus.
Futhermore, let's not lose sight of the fact that the current CLIC
already proposes techniques using *nexti that don't reliably maintain
the interrupt number in *cause.  I call your attention to the "Example
Unix C ABI interrupt trampoline" in section 7.1.  That code has two
instances of
csrrsi a0,mnxti,MIE

which may claim a new pending interrupt, causing the interrupt number
in mcause to be updated.  But in each case, the updated value of mcause
could be wiped out immediately afterward by a higher-level interrupt,
because interrupts are enabled.  So the value that was stored in mcause
can't be relied on by an interrupt handler.  The only reliable
indication of the interrupt identity is the value written to register
a0.  My proposal wouldn't change that.
The same thing happens again with the example for the "interrupt-driven
C-ABI model" in section 8.  A higher-level interrupt that occurs
immediately after the access to mnexti will wipe out the information in
mcause.  (Of course, it also happens again when the trampoline example
from above gets expanded in sections 9.2 and 10.1.)
If interrupt handlers don't use the special methods supported by CLIC
for vectoring interrupts and instead depend on the interrupt number in
*cause, they will be a little slower.  But even then, it's not clear to
me that my proposal changes things by much.  Can you provide example
code for the sort of situation you're concerned about?

From John Hauser, 19 March 2019:
I've realized I can make my proposal a bit simpler.  And by "a bit"
in this case I literally mean one flip-flop.  The *istatus CSR in my
earlier proposal has a bit "PTT" for "previous trap type".  I once had
a reason for needing this bit, but the reason went away; it's no longer
needed.  So here's the new proposed format for mistatus without PTT:
mistatus
XLEN-1   TT              trap type: 0 = exception, 1 = interrupt
26:25   MPP             alias of mstatus.MPP
24   MPIE            alias of mstatus.MPIE
23:16   PIL             previous interrupt level
15:8   IL (read-only)  current interrupt level
7:5   (reserved)
4   HV              1 = reading trap vector table (was 'inhv')
3:0   (reserved)
On a trap entry to M mode, when CLIC mode is enabled:
if (trap is an interrupt) {
    mistatus.TT = 1
    mistatus.PIL = mistatus.IL
    mistatus.IL = new interrupt level
} else {
    // trap is a synchronous exception
    mistatus.TT = 0
}

On MRET:
if (mistatus.TT) {
    mistatus.IL = mistatus.PIL
}
mistatus.TT = 0

Naturally, S mode and U mode would have their own sistatus and
uistatus, with equivalent behavior.
As before, if an interrupt handler wants to re-enable interrupts to
allow nested higher-level interrupts, it must save and restore *istatus.
However, synchronous exception handlers generally do not need to know
about *istatus, and they also see no change in the *cause CSR, because
my proposal leaves it the same whether CLIC mode is enabled or not.

Related to #82

Whether or not we use this proposed structure, we should seriously consider leaving *cause alone and a new register designation be used.
the privileged 1.1 was ratified with a definition of *cause that is not extensible.
Had it defined a range of bits from 30 through 12 as reserved (tactically WPRI) we could have used that space without (meaningful) controversy..
However, it did not and at best we can argue that the single field Exception Code is sufficiently under defined to allow our extended use.
This position is clearly challenged by the ratified definition:

The mcause register is an MXLEN-bit read-write register formatted as shown in Figure 3.25. When
a trap is taken into M-mode, mcause is written with a code indicating the event that caused the
trap. Otherwise, mcause is never written by the implementation, though it may be explicitly
written by software.
The Interrupt bit in the mcause register is set if the trap was caused by an interrupt. The Exception
Code field contains a code identifying the last exception. Table 3.6 lists the possible machine-level
exception codes. The Exception Code is a WLRL field, so is only guaranteed to hold supported
exception codes.

I believe it possible to extend the allowed exception codes. It appears implicit that more codes may need to be added.
But I do not believe subdividing the field can be done with integrity of the implicit guarantee that the Foundation holds backward compatibility as an extremely high goal, breaching only when failing to do so would be irresponsible to the ecosystem, not solely to our members.
There is a lesson to be learned here, that appears to be applied to our current definitions of reserving unused space.
However, equally important is attempting to leave this reserved space usable. e.g. although mintstatus reserves space, the prime real estate of bit 31 (sign) is not available for expanding to a significant signal for state information, rather it is used by an 8 bit field that has no special significance for its sign bit.

In TG meeting, 9/22/2020 - adding these fields to mcause does not  really affect backwards-compatibility, as the upper bits of the interrupt cause values were designated for platform use.  The higher values of exception cause were also reserved.  The text of the privileged ISA document should be clarified.

Several comments on this thread:

There seems to be the assumption that enabling interrupts during an exception handler (and maybe even during an interrupt handler) would be a somewhat unusual situation.  In the embedded world, for which this spec is written, the number of cycles for which interrupts are disabled is an important parameter.  Less than 10 cycles is desirable.  That means interrupts are re-enabled almost immediately on every exception.
There also seems to be an assumption that, when hardware vectoring is used, the interrupt number is clear simply from the handler that is running.  But it is common to have multiple interrupts have identical entries in the vector table and then, in a small number of locations, do different things depending on which interrupt was taken.
Perhaps a0 can be used to determine the interrupt number by subtracting xtvt and shifting right 2 or 3 bits as the standard mechanism, but I'm not at all sure that's the current expectation.
I think that the spec has the assumption that the low bits of xcause can be used to determine the interrupt being processed.  But there seems to be a hole in this in that, when hardware sets the interrupt number at the time an interrupt is taken, xIE is always cleared.  And the code saves xcause before setting xIE again.  On the other hand, when xnxti is used for a very similar purpose, xIE is usually set - leaving, as John Hauser points out, a cause value that can be overwritten.  I think we do need to decide which set of assumptions is correct from the point of view of the handler.

I think in the cases that John Houser points out, level interrupts work fine, but not edge interrupts.  With level interrupts, the interrupt source isn't cleared with xnxti and the lower priority interrupt is still pending.  So it's okay for xcause to be overwritten because the interrupt will just be handled later when it is the highest priority.  It is a good point so that should be clarified in the doc.  I think the key usage for using  edge triggered clearing with xnxti would be later in the example where MIE is cleared instead of enabled to allow SW tailchaining.
csrrci a0, mnxti, MIE   # Claim highest current interrupt. (16)

Discussed in TG meeting.  It is not clear that exception handlers can be oblivious to CLIC and work correctly in CLIC mode.  Providing a separate xcliccause CSR that shadows xcause and xstatus CSR was discussed but it wasn't clear what advantage this provides over current scheme.   The xintstatus fields are read-only, primarily for debug, so do not need to be included there.

Closing.


Fix example_async_file_sensor

We have an issue in example_async_file_sensor due to a recent merged PR: https://github.com/astronomer/astronomer-providers/pull/489.

Duplicate of #499


Mask signal discordance

There is a significant discordance between visually what I am seeing for marker expression in the raw data (ie using MCD viewer) and the expression mapped onto masks using imcRtools -- not just for one marker but for many. Can you help me understand why this is?  Is this expected or a sign something is incorrect?

Hi @megleila
Could you please explain what you have done to process the data? Could you also potentially share the data and the scripts with me (nils.eling@uzh.ch).

So I'm seeing that for "Batch1_002" there are 6808 cells in the corresponding intensities CSV. However there are only 6299 cells in the cell mask TIFF. Something didn't work right when you applied steinbock to the data. Please redo the processing and test this again. My assumption is that you calculated the intensities, etc on different masks.

It can also help to open the CSV files in Excel and the masks in FIJI (click Image > Adjust > Brightness and Contrast to observe the maximum cell ID) and compare.

That's weird.  I'll definitely re-process it and try again.  Thank you so much!

From: Nils Eling @.>
Sent: Friday, September 8, 2023 12:20 PM
To: BodenmillerGroup/steinbock @.>
Cc: Baker, Megan @.>; Mention @.>
Subject: Re: [BodenmillerGroup/steinbock] Mask signal discordance (Issue #223)
It can also help to open the CSV files in Excel and the masks in FIJI (click Image > Adjust > Brightness and Contrast to observe the maximum cell ID) and compare.
—
Reply to this email directly, view it on GitHubhttps://github.com/BodenmillerGroup/steinbock/issues/223#issuecomment-1711925498, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BAH2R6LAMY7OJ53V2GC7MQDXZNAVZANCNFSM6AAAAAA4QN2I7E.
You are receiving this because you were mentioned.Message ID: @.***>

This fixed it - not sure what happened before.  Thanks for that catch and for your help!

That's great, I'm glad it worked. I'm closing this now.


Image uploaded to Nut Cloud is broken

I can backup this image locally but it is broken when uploaded to Nut Cloud

Here is my config and log
"picgo-plugin-autobackup": {
"space": "NutStore",
"markFilepath": "E:/BackUpWin10/PicGo/Autobackup/mark.json"
},
"picgo-plugin-autobackup-settings": {
"local": {
"imagePath": "E:/BackUpWin10/PicGo/Autobackup/image"
},
"nutstore": {
"username": "",
"password": "",
"imagePath": "image"
}
},
2023-02-02 16:12:22 [PicGo INFO] Before transform
2023-02-02 16:12:22 [PicGo INFO] Transforming...  Current uploader is [imgur]
2023-02-02 16:12:24 [PicGo INFO] afterUploadPlugins: autobackup running
2023-02-02 16:12:24 [PicGo SUCCESS]
https://i.imgur.com/zxok9zF.png
2023-02-02 16:13:11 [PicGo INFO] Before transform
2023-02-02 16:13:11 [PicGo INFO] Transforming...  Current uploader is [imgur]
2023-02-02 16:14:32 [PicGo SUCCESS] autobackup加载成功!

问题已修复，请将插件更新至 v1.4.14+


HDDS-8418. Lease Manager unsafe method fix

What changes were proposed in this pull request?
unsafe method was present where callback can be missed, is fixed by changing order of release and synchronization of method
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8418
How was this patch tested?
UT case and IT for checking any impact

@sumitagrawl there are multiple test failures, please check

The bug is the acquire methods returning a Lease and then registerCallBack later.  It seems the current change does not prevent that.  We should pass the callbacks to acquire at the same time in order to fix the bug.

Thanks @sumitagrawl for the fix, @adoroszlai @szetszwo for reviewing.


Auto-populate seed words

like other apps, the seed words should be auto-suggested when you key in a few letters

@antuz123

@antuz123 @cakesoft-shashank

Completed


Flutter app not running on ios14 , on macos Catalina, Xcode Version 12.2

App runs in xcode but not running in android studio with flutter.
Launching lib/main.dart on Root’s iPhone in debug mode...
Automatically signing iOS for device deployment using specified development team in Xcode project: VYG4PPPOI
Running pod install...
Running Xcode build...
Xcode build done.                                           61.2s
Installing and launching...
Could not run build/ios/iphoneos/Runner.app on 1033f7da16cab0196779877eff0dd2c4e01.
Try launching Xcode and selecting "Product > Run" to fix the problem:
  open ios/Runner.xcworkspace

Error launching application on Root’s iPhone.

flutter doctor -v
root@Roots-MacBook-Pro ~ % flutter doctor -v
[✓] Flutter (Channel master, 1.24.0-8.0.pre.304, on Mac OS X 10.15.7 19H15 darwin-x64, locale en-US)
    • Flutter version 1.24.0-8.0.pre.304 at /Users/root/flutter
    • Framework revision c6290500f8 (7 hours ago), 2020-11-18 17:29:28 -0800
    • Engine revision 35a0b9fe68
    • Dart version 2.12.0 (build 2.12.0-50.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/root/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[✓] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] Connected device (1 available)
    • Root’s iPhone (mobile) • 1033f7da16cab0196779877eff0dd2c4e01 • ios • iOS 14.2

• No issues found!

Hi @cmdrootaccess
Can you please try this:

Try launching Xcode and selecting "Product > Run" to fix the problem:
open ios/Runner.xcworkspace

If the issue persists provide your flutter run --verbose and your pubspec.yaml.
Thank you

flutter run --verbose
log.txt
pubspec.yaml
name: birdapp
description: Flutter Application

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.3+4

environment:
#  sdk: ">=2.1.0 <3.0.0"
   sdk: ">=2.6.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  page_transition: ^1.1.4
  simple_animations: ^1.3.3
#  rxdart: 0.22.2

  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^0.1.2
  provider: 4.3.2
  transparent_image: 1.0.0
  google_fonts: ^0.3.9
  http: ^0.12.0+4
#  flutter_cache_manager: 1.2.2
  cached_network_image: 2.1.0+1
  flushbar: ^1.10.2
#  flutter_svg: ^0.14.1
  url_launcher: ^5.4.5
  image_picker: 0.6.6+1
  flutter_settings: ^1.0.2
  device_info: 0.4.2+4
  crypto: 2.1.5
  sqflite: 1.3.0+2
  path_provider: 1.6.10
  searchable_dropdown: 1.1.3
#  google_maps_flutter: 0.5.28+1
  firebase_messaging: 6.0.16
  shared_preferences: 0.5.7+3
  flutter_webview_plugin: 0.3.11
  webview_flutter: ^0.1.1
  flutter_staggered_grid_view: 0.3.2
#  google_maps_place_picker: 0.9.5
#  frideos: 1.0.1
  font_awesome_flutter: ^8.0.1
  flutter_facebook_login: 3.0.0
  dio: 3.0.10
  html: ^0.14.0+3

dev_dependencies:
  flutter_automation: 1.3.3

# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec

# The following section is specific to Flutter.
flutter:

  # The following line ensures that the Material Icons font is
  # included with your application, so that you can use the icons in
  # the material Icons class.
  uses-material-design: true

  assets:
    - assets/images/

  # To add assets to your application, add an assets section, like this:
  # assets:
  #  - images/a_dot_burr.jpeg
  #  - images/a_dot_ham.jpeg

  # An image asset can refer to one or more resolution-specific "variants", see
  # https://flutter.dev/assets-and-images/#resolution-aware.

  # For details regarding adding assets from package dependencies, see
  # https://flutter.dev/assets-and-images/#from-packages

  # To add custom fonts to your application, add a fonts section here,
  # in this "flutter" section. Each entry in this list should have a
  # "family" key with the font family name, and a "fonts" key with a
  # list giving the asset and other descriptors for the font. For
  # example:
  # fonts:
  #   - family: Schyler
  #     fonts:
  #       - asset: fonts/Schyler-Regular.ttf
  #       - asset: fonts/Schyler-Italic.ttf
  #         style: italic
  #   - family: Trajan Pro
  #     fonts:
  #       - asset: fonts/TrajanPro.ttf
  #       - asset: fonts/TrajanPro_Bold.ttf
  #         weight: 700
  #
  # For details regarding fonts from package dependencies,
  # see https://flutter.dev/custom-fonts/#from-packages

[ +627 ms] 2020-11-22 12:10:12.679 ios-deploy[6544:54582] [ !! ] Error 0xe8008018: The identity used to sign the executable is no
longer valid. AMDeviceSecureInstallApplication(0, device, url, options, install_callback, 0)
[   +2 ms] Script started, output file is /dev/null
[        ] Script done, output file is /dev/null
[   +1 ms] ios-deploy exited with code 0

Looks like your identity to sign the executable is no longer valid. Please follow the suggestion given by the tool:
[   +5 ms] Could not run build/ios/iphoneos/Runner.app on 3283f7da16cab019677b4567eff0dd2c4e0aece1.
[   +2 ms] Try launching Xcode and selecting "Product > Run" to fix the problem:
[        ]   open ios/Runner.xcworkspace
[        ] Installing and launching... (completed in 12.9s)
[        ] Error launching application on Root’s iPhone.
[   +4 ms] "flutter run" took 85,889ms.

Closing as this is not an issue with Flutter itself.


Changes done

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

server-2013-tools/configure-lync-server-2013-scenarios.md
:white_check_mark:Succeeded
View

server-2013-tools/configure-user-profile.md
:white_check_mark:Succeeded
View

server-2013-tools/configuring-the-various-policies.md
:white_check_mark:Succeeded
View

server-2013-tools/create-users-and-contacts.md
:white_check_mark:Succeeded
View

server-2013-tools/introduction.md
:white_check_mark:Succeeded
View

server-2013-tools/lync-server-2013-persistent-chat-resource-kit-tools.md
:white_check_mark:Succeeded
View

server-2013-tools/lync-server-2013-resource-kit-tools-documentation.md
:white_check_mark:Succeeded
View

server-2013-tools/prerequisites.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Massive slowdown with 0.4

Sorry to say that although 0.4 fixes a bunch of issues, it is causing massive slowdowns on every layer operation I perform in Sketch. I'm regularly getting the beachball. I can send my file privately if you want to try yourself.

Seems it had nothing to do with Paddy, Sketch was slowing down horribly without it. Sorry for the noise and keep up the great work!

Can you please let us know what was causing the issue so we can be aware of the known problem?

Not sure, could be memory issues. After a reboot Sketch was fast again.


Feature request: add forgot-your-password option

Right now if you forget your password there seems to be no other option then asking the admin to reset it for you and mail you the new password. It would be convenient to have a 'Forgot your password?' link on the login page which would result in sending a link (by email) to the user with the option to reset the password. (Just like most site have, basically.)

Sure, I just wanted to put it on the radar!

you could consider offloading auth to a service like keycloak, or providing it as an option.

keycloak has its uses but its an independent running service with some kind of HTTP interface. To keep installation and administration of JATOS simple I'd prefer to have authentication part of the application. There are libraries like pac4j or Spring Security that do this in the Java world.
Right now I'm looking into this topic again. The planned public API for JATOS needs some kind of authentication. Maybe now it's time to switch to one of the libraries.

yeah, my bad. i'd gotten the impression that keycloak was entirely client-side (the same way firebase can be) ... but you're right, it requires you to deploy something server side.


Nodes in IDE get blurry for unclear reasons

When working in the IDE, some nodes get blurry, like out-of-focus, making it harder to read the text on them.

I'm not sure when exactly this happens - for example when I add a new node below a current one, the current one got blurry. Hovering on them by mouse seems to make them sharp again.
https://github.com/user-attachments/assets/f849dd90-a892-4434-9559-1740b3f62f9b
It is especially visible when zoomed in:
https://github.com/user-attachments/assets/e4e85f4f-d3f0-416f-bf4c-0117e096184b

What's your system? Do you have fractional scaling?

What's your system? Do you have fractional scaling?

Windows 11 23H2 22631.3958
And yes I do have scaling set up.

Refinement notes:

Probably this is just how the browser optimizes transformed elements (they are rendered to a texture). It does it for a reason, though. Perhaps we could mitigate it by some CSS rules (or force re-layout when user stops zooming in/out).


Make Registry fulfil Interface

Towards https://github.com/giantswarm/giantswarm/issues/12061

This isn't controversial so I'm going with it.


User interface: "Advanced" menu tooltips

Added tooltips to the "Remove" and "Uninstall" options in the advanced menu. As a new user, I had to revisit the documentation to distinguish between the two.
The tooltips are passed as "iv_title" parameters to ZCL_ABAPGIT_HTML_TOOLBAR->add, I am not sure if the parameters are intended for this (but they did produce tooltips)

thanks 👍


Remove openvino-extensions package

openvino-extensions is a custom package designed for https://github.com/openvinotoolkit/openvino_notebooks/pull/46/. As the demo reverted, do not install it.

Thanks @dkurt. We hope to host the facies notebook when the model weights have a reliable storage location, like Amazon S3. For now we can remove openvino-extensions dependency though.

Hi! I have issues with using pipenv (it hangs without response). So if you are able, feel free to reopen a PR.

I locked the Pipfile, but it seems there is an unrelated upstream issue with the Docker image now. I'll keep an eye on it. Once the tests pass I'll merge the PR (and if there is still an issue I'll fix it).
I'm sad that we cannot have the facies notebook at the moment. I still hope we can add it soon.


Installer issues both Aut and Man

Both Manual and Auto install has issues and will fail.
Manual has database errors to copy
Auto has issues generating the dbconf.php file.
To fix I had to run first manual but did not manually copy the database. I ran the composer though.
I copied and created the dbconf.php
then I went back and ran the Auto installer and let it fail with a warning that something had already been initiated.
Then I went to index.php and all was then good.
the installers have issues that need to be addressed.

Then on top of that
editconfigajax.php is missing but required to make any edits..

Yeah, I know they have issues. I need to overhaul the installation process, and I'm working on a cleaner way of handling database migrations/seeding at the moment. That doesn't explain why you're even seeing a reference to editconfigajax.php though. Where did you download this from? That's an old name for the config_updatesettings.php ajax page.

Yeah, sorry the Ajax error was only down to cache. Did not have time to update to let you know was my end not the script. Once cleared cache all was good. But the installer has a lot of errors. My work around works for now as I did not have the time to update your script I tried that solution and thankfully worked.

I already have a decent installer script that I created, would work well for this. Could implement and give an update if you like but won't be able to for around a week as chaos here

@Matthuffy That would be amazing, honestly. I'm crazy busy here as well, and definitely want to revamp the install process, but I have a bunch of other things I'm working on on top of this, so I don't have tons of time. I'm currently playing around with integrating proper database migrations using Phinx in the dev branch, to sort of unify the database creation process and eliminate all of the gross procedural crap code I have in the installer currently. That would also make things easier with updating as well, I'm thinking, as they could just use the migrations to bring their databases into the current state as changes to the db roll in. Just a thought. Thanks man

@Matthuffy Do you have the installer script on github? I'd love to poke around and see how it works

No, but will put it on in the next couple of days. Actually will be included in a script I will add tomorrow but will put the installer as stand alone so you can see it.

Never bothered to make it useful for others as a plug and play of sorts so never bothered to add here, I just use for things I create for others

Well that's awesome. It would be greatly appreciated. I'm wrestling right now with getting migrations to work properly, but hopefully that will help add some consistency to the process as well. There really should be a standardized method of doing installers/updaters for web applications. I haven't been able to find much of anything about it. It seems kind of ad-hoc, in general.


LokiPushApiProvider does not update url in pebble_ready

We use host names now, so this shouldn't be needed anymore


After upgrading to v4 functions do not work on Azure

After I followed your guide I have v4 running locally with no problems.
I ran my azure pipeline (succesfully) but all functions are gone. As in there are NO functions on azure. The function app is running.
This is my deployment task (for staging slot) that worked prior to upgrading:
task: AzureFunctionApp@1
displayName: 'Deploying to api to proxy on staging'
condition: eq(variables['Build.SourceBranchName'], 'staging')
inputs:
azureSubscription: Portal
resourceGroupName: Portal
appName: easyspect-proxy
appType: functionApp
package: $(Agent.BuildDirectory)/s/api
runtimeStack: 'NODE|18'
deployToSlotOrASE: true
slotName: staging
This is the folder structure on the build agent:
/home/vsts/work/1
├── TestResults
├── a
├── b
└── s
├── README.md
├── api
│ ├── functions
│ │ ├── api.js
│ │ ├── dataAccessFunctions.js
│ │ ├── identityFunctions.js
│ │ └── pdfServiceFunctions.js
│ ├── host.json
│ ├── package-lock.json
│ ├── package.json
│ └── swa-local-develop.pfx
functions are in the functions folder
package.json
{
"main": "functions/*.js",
"name": "api",
"version": "1.0.0",
"description": "",
"scripts": {},
"dependencies": {
"@azure/functions": "^4.1.0"
}
}
On azure this is the settings:
FUNCTIONS_EXTENSION_VERSION : ~4
FUNCTIONS_WORKER_RUNTIME : node
Stack settings: Node.js / Node.js 18 LTS
There is no documentation how to deploy to azure without breaking everything!

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

ID: b47363e3-c36f-0755-819c-26946013d673
Version Independent ID: 197c63a1-9f72-1049-f27e-8c9c672ec472
Content: Node.js developer reference for Azure Functions
Content Source: articles/azure-functions/functions-reference-node.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

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

@noontz
Thank you for bringing this to our attention.
I've delegated this to content author @ggailey777, who will review it and offer their insightful opinions.
@ggailey777
Could you please review add comments on this, update as appropriate.

It is kind of implied in the example on this page. But the documentation is very poor.
...
    npm install
    npm run build --if-present
    npm prune --production
...


Mismatch between exercise code and docs - hashes

The first code block in the docs here,
#[derive(Serialize, Deserialize, Clone, Debug)]
pub struct SomeExternalInput {
    title: String,
    content: String,
}

pub fn add_book(input: SomeExternalInput) -> ExternResult<EntryHash> {
    unimplemented!();
}

pub fn get_book(hash: String) -> ExternResult<Book> {
    unimplemented()
}

provides SomeExternalInput whereas the developer exercises repo here provides Book which we are told to implement:
entry_defs![Book::entry_def()];

#[hdk_entry(id = "book")]
pub struct Book {
    title: String,
    content: String,
}

PR https://github.com/holochain-gym/developer-exercises/pull/50


Windows Clustering link 404

🛑 IMPORTANT: You can get your feedback addressed faster if you use the comment section for the article in which you encountered a problem.
Link to article: https://docs.microsoft.com/en-us/windows/desktop/api/_mscs/
For programming guidance for this technology, see:
  Windows Clustering

Problem:
Windows Clustering link https://docs.microsoft.com/en-us/windows/desktop/mscs is 404

@wesinator That link opens https://docs.microsoft.com/en-us/previous-versions/windows/desktop/mscs/windows-clustering


Add inherited constructors: ContextLoaderListener

Added missing inherited constructors to enable no-xml configuration through AnnotationConfigWebApplicationContext.

Why was it reverted?

Now reintroduced by RESTEASY-1519 https://github.com/resteasy/Resteasy/pull/956


Slider is not operatable with the keyboard

The sliders in this project are not controllable with a keyboard.
This is very bad for accessibility. Mozilla says about sliders:

The slider should be keyboard focusable and operable. When the user tabs focus to the slider, it should land on the thumb: the control a mouse user would drag. Arrow keys should operate as follows (localization for right-to-left languages should reverse the direction of the arrows):

Key(s)
Action

Right and Up arrows
Increase the selected value

Left and Down arrows
Decrease the selected value

Page Up and Page Down
Optionally increase and decrease the value by a set amount (e.g. by 10 on a range from 0 to 100)

But this is not possible with your slider elements. (Source)

I was able to fix this for my own site: I added tabindex=" 0" on the Slider handle which made it possible to select it with the tab key. The left/right/up/down arrow keys are already supported by the JQuery UI slider.

Although I fixed this for myself: I think this should be added to the Flat-UI kit aswell. What do you think @StefanYohansson ?

yeah, accessibility is a great idea. I suggest that if you are able to help Flat UI project, you should email @MonsterCritic


ENH: add option on invalid="fix" to from wkb and from wkt

Add the option to "fix" invalid input geometries for from_wkt and from_wkb.
closes #1342
References:

#1570
https://github.com/geopandas/pyogrio/issues/423
https://github.com/geopandas/geopandas/issues/2791
https://github.com/geopandas/geopandas/discussions/3336

Pull Request Test Coverage Report for Build<PHONE_NUMBER>0
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.3%) to 88.158%

Totals

Change from base Build<PHONE_NUMBER>:
0.3%

Covered Lines:
2628

Relevant Lines:
2981

💛  - Coveralls

Didn't think about it before, but rereading the docstring for the new option: "If this is not possible, they are returned as None without a warning.".
We could also opt for still raising an error or issuing a warning in that case. Of course we don't want to add all possible combinations as options for this keyword, but I do wonder what generally would be the most desirable behaviour if you want things to get fixed automatically (because now with silent ignoring, you're still not sure that the invalid geometries were fixed without checking for Nones)

It is kind of complicated. There are two main cases:

the geometry could not be fixed: None result, and data is lost. For a WKT in this situation we could still log the coordinates in a warning, so the user can still salvage something manually, for a WKB this is not as easy...
the geometry was fixed: in many (most) cases this will lead to an "invalid geometry". If make_valid is applied in many cases the result will be of a lower dimensionality than the original geometry, so a polygon becomes a line, a line becomes a point.

So, even if the geometry was fixed, it will still often need some manual further treatment to get to a usable result...
I also did some extra tests, and e.g. a multipolygon with one valid ring, and one ring with only one point will not be fixed, so will be entirely lost... (=None), so there is still quite some significant data loss possible.
All this doesn't mean that raising warnings is not useful... maybe rather that when warnings are given, they are probably just as useful for the fixed geometries...

Not sure what you mean with fancy... but indeed, it is a native GEOS feature from the C API being exposed, so I don't think there are alternatives to shapely to expose this functionality.
It is also just an extra option for an existing parameter, so the shapely API didn't become that much more complicated to support this.

@theroggy my quibble is really with the GEOS C API design. I'm sorry about aiming my comment at you.


Using DialogFlow facebook responses, not default responses for testing

Hi!
I used this article to set up tests https://chatbotsmagazine.com/3-steps-setup-automated-testing-for-google-assistant-and-dialogflow-de42937e57c6
Most of the tests fail because of Botium is waiting for DialogFlow default answers, not facebook answers. How can I configure Botium to use facebook answers?

The dialogflow connector currently doesn't support this. But I agree that this is more than useful. I am tracking this topic, hopefully we will be able to provide a solution soon.

@codeforequity-at cool!
I checked out the connector code. Looks like know what to do. Could you please help me? I can't find the place where to choose facebook response in dialogflow API https://github.com/googleapis/nodejs?

The latest build includes this feature. The new capability is named "DIALOGFLOW_OUTPUT_PLATFORM", set it to "FACEBOOK"

@codeforequity-at thanks!
I'm getting undefined on
  .UserSaysText('hi')   .WaitBotSaysText(console.log)   .WaitBotSays(console.log)
buy console.log(response.queryResult.fulfillmentMessages) in connector code returns
`
[ { platform: 'FACEBOOK',
card:
{ buttons: [Array],
title: '',
subtitle: ',
imageUri: '' },
message: 'card' },
{ platform: 'PLATFORM_UNSPECIFIED',
text: { text: [Array] },
message: 'text' } ]
` (I deleted the values from object). Will try to fix this

@codeforequity-at any ideas on why this happens?

Hi, we are working hard to not only support text messages, but also the rich messages and custom payload.  So the cards you are obviously using can now be asserted in Botium scripts with some simple tags in the convo files.


Issue with f-string

Get a JS error when try to run code:
rx.code_block(f"{category["name"]}", can_copy=True, language="python")
error:
./pages/docs/gallery.js
Error:
  x Expected unicode escape
     ,-[/Users/tomgotsman/projects/reflex/examples/reflex-web/.web/pages/docs/gallery.js:101:1]
 101 |   <Spacer/>
 102 |   <Box sx={{"position": "relative"}}>
 103 |   <SyntaxHighlighter customStyle={{"padding": "1em 3.2em 1em 1em"}} language={`python`} style={isTrue(((colorMode) === (`light`))) ? oneLight : oneDark} children={`${category["name"]}`}/>
 104 |   <Button onClick={(_e) => addEvents([Event("_set_clipboard", {content:`${category[\"name\"]}`})], (_e), {})} sx={{"position": "absolute", "top": "0.5em", "right": "0"}}>
     :                                                                                ^
 105 |   <CopyIcon/>
 106 | </Button>
 107 | </Box>
     `----

Could you please share the complete reproducible  example

@tgberkeley What version of python are you using? I know using the same types of quotes twice within an f-string (once for defining it, another for some sort of operation inside) was only recently added in 3.12. Using 3.12 this works for me. If you want to use a lesser version, you'd need to use single quotes inside the f-string, or a variable with whatever expression you need and just pass that into the f-string.

Looks like a reproducible code I could try is below:

def index() -> rx.Component:
    category = {"name": "random"}
    cat = rx.Var.create(category, _var_is_string=True)
    return rx.center(
        rx.code_block(f'{category["name"]}', can_copy=True, language="python"),
        rx.button("copy", on_click=rx.set_clipboard(f'{cat["name"]}')),
        height="100vh",
    )

But this is by syntax is wrong, category is a dict and the only way this error shows up is if it is created as a var with the _var_is_string set to True which shouldn't be the case


Onclick method

hello how i open pdf when i click on button , if i add all the code in onclickmethod app crashes ?

create a pdf view activity and simply pass the pdf path to the activity, or follow the read me.


[Containerapp] Fix #29238: az containerapp secret set: Add description about identityref for parameter --secrets

Related command

Fix: https://github.com/Azure/azure-cli/issues/29238
Refine the description for argument --secrets
Test:

Description

Testing Guide

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change
[Component Name 2] az command b: Add some customer-facing feature

This checklist is used to make sure that common guidelines for a pull request are followed.

[ ] The PR title and description has followed the guideline in Submitting Pull Requests.

[ ] I adhere to the Command Guidelines.

[ ] I adhere to the Error Handling Guidelines.

Thank you for your contribution! We will review the pull request and get back to you soon.

/azp run


error with wxpython installation

I tried to install xraylarch on Ubuntu20.04 using "sh GetLarch.sh".
I think everything worked except for installing wxpython (see attached GetLarch.log).
I tried to run larch by "~/xraylarch/bin/larch", and saw that it tries to install wxpython again; there was an error, but larch started.
I tried to start larch again; this time output was different; i saved it in output2 (attached); larch didn't start.
GetLarch.log
output2.txt

@newville thanks for the answer! I don't know why it didn't try to download wxpython from conda forge, unfortunately.
I did /home/naumom/xraylarch/bin/conda install --force-reinstall -yc conda-forge   wxpython
It took a while - i think it was trying "solving environment" at several different places. Finally it worked; if I repeat the command, I get a much shorter output than the first time, which I attach as "wxpython_install.txt".
wxpython_install.txt
It has this line: "environment location: /home/naumom/anaconda3" Does it mean that instead of installing wxpython to xraylarch conda, it instead installs it into my general anaconda3 folder?
When I start larch, it still tries to install wxpython (see attached output in running_larch.txt). Larch starts.
When I start xas_viewer, it fails (see running_xasviewer.txt).

Oh, if you also have an anaconda3 environment on your system, you may need
to ensure that the conda environment and PATH variables point to the
"xraylarch" versions of Python/conda.
Generally (or generally for me) when installing anaconda environments on
Linux, the install process will write a "conda_setup" paragraph to your
shell initialization script (probably to the end of .bashrc).  If you log
out or start a new Terminal shell, you should get

which python
~/xraylarch/bin/python
which conda
~/xraylarch/bin/conda

or,  you could copy that paragraph to  a shell script (maybe calling it
use_xraylarch.sh) and then execute source use_xraylarch.sh when you
want to use that Python environment.
With those steps to ensure that Python and conda are consistent and from
xraylarch, then
~/xraylarch/bin/conda install --force-reinstall -yc conda-forge wxpython
should really work (and it should not be too slow if xraylarch was actually
installed recently -- you have Python 3.9.13 so that seems likely), and
then   ~/xraylarch/bin/larch   and   ~/xraylarch/bin/xas_viewer should
really run.
In principle, you should be able to install larch into an existing conda
environment with
/bin/conda install --force-reinstall -yc conda-forge
numpy=>1.18 scipy=>1.6 matplotlib=>3.3 scikit-image scikit-learn pymatgen
pycifrw wxpython tomopy pip
/bin/pip install wxmplot wxutils lmfit asteval pyshortcuts
pyfai epicsapps xraylarch
that should work, but it is harder for me to support.
On Wed, Jul 20, 2022 at 11:25 AM maschined @.***> wrote:

@newville https://github.com/newville thanks for the answer! I don't
know why it didn't try to download wxpython from conda forge, unfortunately.
I did /home/naumom/xraylarch/bin/conda install --force-reinstall -yc
conda-forge wxpython
It took a while - i think it was trying "solving environment" at several
different places. Finally it worked; if I repeat the command, I get a much
shorter output than the first time, which I attach as
"wxpython_install.txt".
wxpython_install.txt
https://github.com/xraypy/xraylarch/files/9151902/wxpython_install.txt
It has this line: "environment location: /home/naumom/anaconda3" Does it
mean that instead of installing wxpython to xraylarch conda, it instead
installs it into my general anaconda3 folder?
When I start larch, it still tries to install wxpython (see attached
output in running_larch.txt). Larch starts.
When I start xas_viewer, it fails (see running_xasviewer.txt).
—
Reply to this email directly, view it on GitHub
https://github.com/xraypy/xraylarch/issues/395#issuecomment-1190493914,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AACKI64KMGUL3ASS6OVTQLTVVASAVANCNFSM54C767UA
.
You are receiving this because you were mentioned.Message ID:
@.***>

--
--Matt Newville<PHONE_NUMBER>

@maschined  We probably need to update those instructions!
If you use the "GetLarch.sh" script, that should currently install Python 3.10.10, and everything work.  I don't have an Ubuntu machine in front of me, but this works on other Linuxes.
If you are using Anaconda Python, then I am not sure that Python 3.10 or Python3.11 are well-supported (but, maybe I am not up-to-date on that) unless you use conda-forge.  But, if you do, I think that Python 3.11 should work.
In fact, installing with GetLarch.sh, I could then do
 mamba create -yn py311 python=3.11 scipy matplotlib h5py wxpython
 mamba init    # may not need
 source ~/.bashrc     # may not need
 mamba activate py311
 pip install xraylarch
 larch -m

worked for me (Python 3.11.3).


refactor: use "zod" for input validations

We want to use zod in order to do validations for input fields.

[ ] Post create
[ ] Post edit
[ ] Comment create
[ ] Comment edit
[x] Settings page

Closing this as we will be using gql/relay for this.


Can I have multiple instances in parallel?

Describe the feature
Very useful project, tough but running successfully.
Can I have multiple instances in parallel? Because it takes more than 1 minute for the server to complete the response.

I suddenly realized that using two accounts shouldn't conflict, right?

U can use proxies and different accounts at once.
Just init them with new ChatGPTAPIBrowser() and put all instances in one array.

Yes; I'm currently running a large pool of accounts using https://github.com/transitive-bullshit/chatgpt-twitter-bot/blob/main/src/chatgpt-api-pool.ts
Also note that I would recommend initializing the session once and then using that session for as long as possible to respond to messages, instead of re-initializing the session every time.

Yes; I'm currently running a large pool of accounts using https://github.com/transitive-bullshit/chatgpt-twitter-bot/blob/main/src/chatgpt-api-pool.ts
Also note that I would recommend initializing the session once and then using that session for as long as possible to respond to messages, instead of re-initializing the session every time.

Great, I saw that you used 'p-map' to return an array of account instances, I tried similarly with two accounts and it worked.


[DRAFT] try to get cassandra to get distinct tags

potential alternative to #133

doesn't work
[info]   The future returned an exception of type: com.datastax.oss.driver.api.core.servererrors.InvalidQueryException, with message: SELECT DISTINCT queries must only request partition key columns and/or static columns (not tag). (TagQuerySpec.scala:32)


Doc: Remove origin KA note from removed setting

This note was originally from the setting
proxy.config.http.send_http11_requests
but was incorrectly moved to the chunking setting.  So, this note should have been killed off too.

Cherry picked to 8.0.x


Knowledgebase ID is not valid

Hi there,
Working with an organisation to get this deployed and we're getting Knowledgebase ID is not valid on the config site per the image.

It looks as though the ConfigurationItems table hasn't populated during the deployment.

Hi @Koxzi95 have you published the knowledge base correctly? Also can you double check your QnA Maker API Endpoint URL in the Configuration settings on the Azure portal please?

Hi there @coderkrishna92 everything was deployed and published correctly as far as I could see when reviewing the deployment. We deleted and redeployed all components and it worked fine. Apologies I can't provide much more info or root cause.


Add QUIC support?

I am currently developing a extension which relies on low latency. One nice addition to see would be to enable QUIC support for the editor. It provides much lower setup latency and around 7% of all traffic on the Internet today consists of QUIC traffic.

I thought that VS Code doesn't provide any API to perform network requests from extension host.
Extension author can use any Node.js network client they want: default http/http2/https or something else. Am I missing something?

@mrconter1 can you please be a little bit more specific were you think QUIC support should be used.

If would nice to be able to have an extension being compatible with a QUIC server. If I fetch an JSON from a URL on my website it should be able to do it with QUIC.

It is still not clear to me what you are looking for. Our description sounds more like a npm node module that an extension author can use? Can you provide me with a concrete example.


bitpay is currently now accepting any ssl certificates

Right now, it should only accept InstaWallet.org certificate, which could be hardcoded.
If anyone knows how to fix this, please reply!

Asap let me know what you need I possibly have a solution


⚠ Adacta-fintech.com has degraded performance

In dbdc49e, Adacta-fintech.com (https://www.adacta-fintech.com) experienced degraded performance:

HTTP code: 200
Response time: 1483 ms

Resolved: Adacta-fintech.com performance has improved in 7ac9e85 after 7 minutes.


Issue with Authentication and Bot Channels Registration

Just wanted to state (in case someone else is running into this) that I was not able to get authentication working in Teams using an existing bot created using the old Bot Channels Registration Azure resource.
The behavior I was seeing was that the OAuthPrompt card would trigger and the sign in button would appear, but clicking on the sign in button did nothing. No matter what I did, I was not able to get the sign in / consent page to pop.
I created a new Multi Tenant bot using the new Azure Bot resource type. Everything works perfectly now. So I guess I'm saying that, if you need authentication within your bot, take the time to switch from the Bot Channels Registration to the Azure Bot resource type.

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

ID: a9a43e68-83a3-1adc-0c55-e277ddb98c6b
Version Independent ID: 5c46848d-bc20-480e-4571-00a283d930a2
Content: Add authentication to a bot in Bot Framework SDK - Bot Service
Content Source: articles/v4sdk/bot-builder-authentication.md
Service: bot-service
GitHub Login: @JonathanFingold
Microsoft Alias: iawilt

@jcbartle - thanks for reporting. I'm trying to track down an answer. Will let you know when I have more information.

Morning, @JonathanFingold. I won't be able to test this going forward, as I'm converting all of my bots to the new Azure Bot resource. This was more for anyone else who is running into this issue. If Microsoft can confirm / deny and update documentation as needed, that would be greatly appreciated.

@jcbartle, thank you for bringing this to our attention. I'll look closer at the docs and sample and see what can needs to be updated.

Aspects of Azure that bots rely on, such as the Bot resource, app services, app registrations, and auth support keep getting updated, and there is no guarantee that new configurations of these features will work with deprecated resources. The note in the documentation specify that "existing resources" will continue to work, but we'll see about rephrasing this to clarify that we mean resources that have already been configured and deployed prior to deprecation.

Fix should be live by tomorrow.


Make DedicatedHostGroup.properties.supportAutomaticPlacement default to false

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[x] Other, please clarify (Change the description for an existing property)

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
The feature is currently in a limited private preview, available in a few regions for whitelisted subscriptions. It is planned to be GA'ed in more regions in December.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
The Swagger should be published soon to have the correct information reflected.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[x] I commit to follow the Breaking Change Policy of “no breaking changes
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

Dedicated host group automatic placement feature is currently in a limited public preview, available in a few regions for whitelisted subscriptions. It is planned to be GA'ed in some public regions in December. The initial plan was to default DedicatedHostGroup.properties.supportAutomaticPlacement to true, but recently we have agreed to default the value to false as we GA.
The description has already been updated for API version 2020-06-01 in the PR (https://github.com/Azure/azure-rest-api-specs/pull/11697). The current PR is for making the same change for API version 2020-12-01.

hi @dochung4 is the change applied to Prod at service side? I'll merge the PR when backend change ready.

hi @dochung4 is the change applied to Prod at service side? I'll merge the PR when backend change ready.

Yes the backend is already ready, so please merge the PR.


applivery-ios 0.3.1

Added

Support to BITRISE_CERTIFICATE_URL
Support to BITRISE_CERTIFICATE_PASSPHRASE

Fixed

Wrong BITRISE_IPA_PATH making it impossible to find a valid .ipa file to deploy

New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I read and accept the Abandoned Step policy

Hi @BirmacherAkos
We've been forced to submit new versions of our steps due to a recent change in the new version of our platform. We also have taken the opportunity to fine tune based on your suggested and updated both icons.
Related PR are:

iOS Step v0.3.1
Android Step  v0.3.1
New icons

Any possibility to speed up the validation / merge will be more than welcome
Best,
C.

Hi
I checked your changes in your step, and have some questions:

You want to upload the provisioning profiles, certificates and it's passphrases to Applivery. Can I ask why?
This could be a little risky. I would suggest adding another step input with a default false value which could enable the upload.
So if the user wants to upload their code signing files, they could enable it.
Something like this:

- upload_code_signing: "false"
    opts:
      title: Enable to upload certificates and provisioning profiles to Applivery.
      summary: Applivery will use these files to...
      description: |
	If you enable this option the step will download your code signing files from Bitrise Code Signing Tab and it will upload it to...
      is_required: true
      value_options:
        - "true"
        - "false"

Hi @BirmacherAkos,
Thank you for your review, comments and suggestions.
I do agree with you that it would be better to not upload them directly but ask the user first. While we adapt the integration to do so. I'll close this PR and perform a new one without including BITRISE_CERTIFICATE_URL  and BITRISE_CERTIFICATE_PASSPHRASE .
The reason is because we are enabling a new feature en in the platform to detect most common installation issues and as you probably know, most of them are related with the signing certificate and/or provisioning profiles.
Please expect it in a few minutes.


Add task to check if WordPress is installed otherwise install

fixes #29

I have changed the code and tested it again


Bank account - App does not trigger required field validation when no state is selected

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: v9.0.78-2
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Email or phone of affected tester (no customers): N/A
Issue reported by: Applause Internal Team
Action Performed:

Open the app
Open settings->workspaces->any workspace->workflows->connect bank account->connect manually
Go to company information page and check each field shows error when we focus away without making a selection
Open the state field
Without making any selection go back

Expected Result:
App should trigger required field validation when we focus / open state field and focus away (as in PR #33926)
Actual Result:
App does not trigger required field validation when we focus / open state field and focus away.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/8c6d1de8-0e01-4f85-8c2d-602a2a075682
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Bank account - App does not trigger required field validation when no state is selected
What is the root cause of that problem?
We run validate onBlur but we are not bluring on modal close here
https://github.com/Expensify/App/blob/12e0941f859c61385baa4b05e7513b0bd04b1d1f/src/components/PushRowWithModal/index.tsx#L52-L57
What changes do you think we should make in order to solve the problem?

We can apply similar fix as we did in here by blurring on modal close

    onBlur,
}: PushRowWithModalProps) {
    const [isModalVisible, setIsModalVisible] = useState(false);

    const handleModalClose = () => {
        onBlur?.();
        setIsModalVisible(false);
    };

What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
App does not trigger required field validation when no state is selected
What is the root cause of that problem?
We are missing the addition of onBlur to validate the form when the modal is closed or when navigating back to trigger form validation
https://github.com/Expensify/App/blob/3ae86bc3b0e878af605f60ab2446a2358357bbf8/src/components/PushRowWithModal/index.tsx#L54
onBlur to trigger onValidate:
https://github.com/Expensify/App/blob/08f83144bcb0cd3a52e27c7a2c3afb8f06e109ae/src/components/Form/FormProvider.tsx#L349-L374
What changes do you think we should make in order to solve the problem?

To resolve this issue, we applied the previous solution. In this solution, onBlur is called to trigger form validation when the value is empty or has changed. If the value has not changed, onBlur does not need to be called.
1 Create new state
https://github.com/Expensify/App/blob/3ae86bc3b0e878af605f60ab2446a2358357bbf8/src/components/PushRowWithModal/index.tsx#L52
  const [valueChanged, setValueChanged] = useState(false);

When the modal is closed, we need to check if the value is empty or has changed, and then trigger the onBlur call.

https://github.com/Expensify/App/blob/3ae86bc3b0e878af605f60ab2446a2358357bbf8/src/components/PushRowWithModal/index.tsx#L53
Update to:
    const handleModalClose = () => {
        if (!value || valueChanged) { // add this line
            onBlur?.(); // add this line
        } // add this line
        setIsModalVisible(false);
    };

Update valueChanged state

https://github.com/Expensify/App/blob/3ae86bc3b0e878af605f60ab2446a2358357bbf8/src/components/PushRowWithModal/index.tsx#L61
Update to:
    const handleOptionChange = (optionValue: string) => {
        onInputChange(optionValue);
        setValueChanged(optionValue !== value); // add this line

        if (stateInputIDToReset) {
            onInputChange('', stateInputIDToReset);
        }
    };

POC
https://github.com/user-attachments/assets/93ef71c4-8290-4347-b7fc-75ff0ea5dd9c

Test branch
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?

What alternative solutions did you explore? (Optional)
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.


Preload chunked data sources

This addresses issue #240, though it only implements step 2 in a generic way that applies to both XRootD and HTTP. It has only been tested on HTTP, and there might be a more specific function to call to do background-loading in XRootD.
The test_tree.Test.test_hist_in_tree function was particularly slow using HTTP: 25 seconds. Preloading reduces this time to 5 seconds.

Testing this branch, but run into issue as below
  File "test.py", line 73, in <module>
    tt = next(it)
  File "uproot240/uproot/tree.py", line 116, in iterate
    for start, stop, arrays in tree.iterate(branches=newbranches, entrysteps=entrysteps, outputtype=outputtype, namedecode=namedecode, reportentries=True, entrystart=0, entrystop=tree.numentries, flatten=flatten, flatname=flatname, awkwardlib=awkward, cache=cache, basketcache=basketcache, keycache=keycache, executor=executor, blocking=blocking):
  File "uproot240/uproot/tree.py", line 606, in iterate
    future = branch._step_array(interpretation, basket_itemoffset, basket_entryoffset, start, stop, awkward, basketcache, keycache, executor, explicit_basketcache)
  File "uproot240/uproot/tree.py", line 1417, in _step_array
    _delayedraise(fill(j))
  File "uproot240/uproot/tree.py", line 75, in _delayedraise
    exec("raise cls, err, trc")
  File "uproot240/uproot/tree.py", line 1385, in fill
    source = self._basket(i, interpretation, local_entrystart, local_entrystop, awkward, basketcache, keycache)
  File "uproot240/uproot/tree.py", line 1090, in _basket
    basketdata = key.basketdata()
  File "uproot240/uproot/tree.py", line 1501, in basketdata
    return self.cursor.copied().bytes(datasource, self._fObjlen)
  File "uproot240/uproot/source/cursor.py", line 78, in bytes
    return source.data(start, stop)
  File "uproot240/uproot/source/chunked.py", line 120, in data
    if self._futures is not None:
AttributeError: 'XRootDSource' object has no attribute '_futures'

Thanks! I just committed a fix (and I've been trying to get a real XRootD test in the suite, but as you can see from the history, it's hard).

It doesn't seem much improvement for this PR. Below is the average time running over two files via xrootd.
Version 3.4.9 'Average loading time', 27.485920828580856
Version 3.4.10 'Average loading time', 26.598708748817444

Sorry for the delay: I was working with someone and couldn't come back to this until now.
Your tests and the continuous integration tests are failing the same way—just another small error that would be fixed in a minute if I could test locally.  :)
I've submitted another fix. The tests are now working well enough that in 10 minutes or so I'll know if I've got another shallow bug to fix. I'll let you know when that happens.
Meanwhile, you're either not seeing the improvement because it's not working yet or because your suspicion is right and the time is really being spent in decompressing LZMA. Actually, there's another way to test that hypothesis: look at top or htop in another window as your script runs. I/O bottlenecks don't use much CPU; decompressing LZMA uses a lot of CPU.

No problem, I am also just out of a meeting.
Here we go. This is from v3.4.9. Memory seems stable most of time so in view of CPU.

From this branch, it seems my node is getting busy. Can not see much change.
For the average 27 section of loading, it seems both xrootd cache and decompress taking half and half of the CPU time. I will try the ThreadPoolExecutor later on.

The high CPU values suggest that more time is spent decompressing than waiting for the network, but I'm going to see this update through because it will stop wasting network time, even if that's not your problem.
But also note that the fix has not run successfully once. There's no fair performance comparison when one version hasn't really been run.
This is a recipe for parallel processing, to spread the decompression load.

@zhenbinwu It should be ready now; my XRootD test is finally passing. (But I think I'm going to remove that test from production: installing prerequisites multiplies testing time by 10×.)
Could you check your case to be sure that it works for you? It might not speed anything up because the real bottleneck is in LZMA decompression, but I want to be sure that it doesn't break your workflow.

Indeed, the decompression of NanoAOD is the bottleneck. I got similar result with this branch:
('Average loading time', 26.41544744372368)


New Component: MudFileUpload

Description

This PR wraps the built in <InputFile> component in the standard MudBlazor InputControl. It allows the user to bind a IReadonlyList<IBrowserFile> or IBrowserFile to a MudForm and receive the files on upload. For can be used to supply validation parameters.
Alternatively, an OnFilesChanged event is also provided to give you full control over the file event.
A screenshot from the docs:

I have added this tile to the docs overview:

Other features include:

ButtonTemplate: controls the rendered button/label
SelectedTemplate: renders details on the current File(s) (optional)
Accept: Limits valid file types
Multiple: if true, multiple files may be uploaded at once

How Has This Been Tested?

A new unit test file has been added. I also updated a Form test to ensure the FormFieldChanged event fires correctly when uploading files.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] The PR is submitted to the correct branch (dev).
[x] My code follows the code style of this project.
[x] I've added relevant tests.

Is it possible to wrap an upload file input component like the one below

Remaining item: The Drag and Drop file example either needs to be removed entirely or replaced with an updated version. I have started working on this.

Waiting on #5549 to add alerts for mismatched T values.

From MudLogging PR regarding making this component non generic.  Posting here as don't want to take that too far off topic.

I considered this, but it would undermine the experience of binding to a model class that expects a single file of type IBrowserFile.

Can you explain this a bit more with a very short example
I am also thinking along the same lines as @ScarletKuro.  Make MudFileUpload non generic IReadOnlyList<IBrowserFile>.  You can Use the Multiple parameter for logic inside the component.
Having 2 types for MudUploadFile seems a bit confusing to me.  Especially since you have a Multiple parameter which you could theoretically set in conjunction with T=IBrowserFile which would be a conflict.

Oops, I forgot why I deemed it an undesirable solution when I thought of it. I think using IReadOnlyList<IBrowserFile> works for everything except For, which must be an Expression<Func<T>>. Without it, there is no way to attach the component to a Form using the standard validation means.
@mikes-gh Here's an example using a MudForm:
<MudForm Model="@model" @ref="@form" Validation="@(ValidationRules.ValidateValue)">
            <MudTextField @bind-Value="model.Name"
                          For="@(() => model.Name)"
                          Immediate="true"
                          Label="Name" />
            <MudFileUpload T="IBrowserFile" For="@(() => model.File)" @bind-Files="model.File">
                <ButtonTemplate>
                    <MudButton HtmlTag="label"
                               Variant="Variant.Filled"
                               Color="Color.Primary"
<EMAIL_ADDRESS>                               for="@context">
                        Upload Files
                    </MudButton>
                </ButtonTemplate>
            </MudFileUpload>
    </MudForm>

What about having parameters IReadOnlyList<IBrowserFile> Files as well as IBrowserFile File => Files.FirstOrDefault()?

Hehe, so to sum up, this discussion is exactly rotating around the decision to make the component generic where the type parameter T only allows either IBrowserFile or IReadonlyCollection<IBrowserFile> or similar. The issue is that T suggests to the user that they can supply any type they want, which is not true. Hence the need for the warning / error messages. If we don't make the component generic we don't need the warnings but we have problems with validation in the multi-file scenario. Looks like the warning messages are the easier solution and a Debug.WriteLine should suffice in this case.

If you want to use T isn't Multiple just confusing/defunct?
BTW the the reflection For.GetLabelString function is trim incompatible at the moment. So it might need rethinking.

@mikes-gh I'm torn between keeping Multiple and removing it. I agree that it is potentially confusing to need to set both T and Multiple, but Multiple matches the internal API of the InputFile. But yes, it could be removed and the logic of setting multiple on the InputFile could come from the value of T.

BTW the the reflection For.GetLabelString function is trim incompatible at the moment. So it might need rethinking.

Can you make an issue on this, please?

Can you make an issue on this, please?

Will do 👍

Waiting on #5549, then I will add logging using ILogger and test using the MockLoggingProvider included in #5549.

A really fine PR, thanks for all the work that went into it.


Windows 8 installation

I'm trying to install Fabric3, install miss some dependencies on windows machine and when I try to install them I found error:
C:\projects\testfab>C:\Users\user.virtualenvs\test\Scripts\fab.exe fabfile.
py
Traceback (most recent call last):
File "c:\users\user.virtualenvs\test\lib\site-packages\fabric\network.py",
line 21, in
import paramiko as ssh
File "c:\users\user.virtualenvs\test\lib\site-packages\paramiko_init_.p
y", line 30, in
from paramiko.transport import SecurityOptions, Transport
File "c:\users\user.virtualenvs\test\lib\site-packages\paramiko\transport.
py", line 50, in
from paramiko.dsskey import DSSKey
File "c:\users\user.virtualenvs\test\lib\site-packages\paramiko\dsskey.py"
, line 26, in
from Crypto.PublicKey import DSA
File "c:\users\user.virtualenvs\test\lib\site-packages\Crypto\PublicKey\DS
A.py", line 89, in
from Crypto import Random
File "c:\users\user.virtualenvs\test\lib\site-packages\Crypto\Random_ini
t_.py", line 28, in
from Crypto.Random import OSRNG
File "c:\users\user.virtualenvs\test\lib\site-packages\Crypto\Random\OSRNG
_init_.py", line 34, in
from Crypto.Random.OSRNG.nt import new
File "c:\users\user.virtualenvs\test\lib\site-packages\Crypto\Random\OSRNG
\nt.py", line 28, in
import winrandom
ImportError: No module named 'winrandom'
There was a problem importing our SSH library (see traceback above).
Please make sure all dependencies are installed and importable.
I tryied to install win
C:\projects\generali>C:\Users\user.virtualenvs\test\Scripts\pip3.5.exe insta
ll winrandom  --proxy=http://localhost:8124 --no-cache
Collecting winrandom
Downloading winrandom-1.2.zip
Installing collected packages: winrandom
Running setup.py install for winrandom ... error
Complete output from command c:\users\user.virtualenvs\test\scripts\pyth
on.exe -u -c "import setuptools, tokenize;file='C:\Users\user\AppData\Lo
cal\Temp\pip-build-pc86pxzj\winrandom\setup.py';exec(compile(getattr(tokeniz
e, 'open', open)(file).read().replace('\r\n', '\n'), file, 'exec'))" ins
tall --record C:\Users\user\AppData\Local\Temp\pip-06lbc65m-record\install-recor
d.txt --single-version-externally-managed --compile --install-headers c:\users\u
ser.virtualenvs\test\include\site\python3.5\winrandom:
running install
running build
running build_ext
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\user\AppData\Local\Temp\pip-build-pc86pxzj\winrandom\setup.
py", line 43, in
ext_modules=[winrandom1])
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ore.py", line 148, in setup
dist.run_commands()
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\d
ist.py", line 955, in run_commands
self.run_command(cmd)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\d
ist.py", line 974, in run_command
cmd_obj.run()
File "c:\users\user.virtualenvs\test\lib\site-packages\setuptools\comm
and\install.py", line 61, in run
return orig.install.run(self)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ommand\install.py", line 539, in run
self.run_command('build')
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
md.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\d
ist.py", line 974, in run_command
cmd_obj.run()
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ommand\build.py", line 135, in run
self.run_command(cmd_name)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
md.py", line 313, in run_command
self.distribution.run_command(command)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\d
ist.py", line 974, in run_command
cmd_obj.run()
File "c:\users\user.virtualenvs\test\lib\site-packages\setuptools\comm
and\build_ext.py", line 49, in run
_build_ext.run(self)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ommand\build_ext.py", line 307, in run
force=self.force)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
compiler.py", line 1031, in new_compiler
return klass(None, dry_run, force)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ygwinccompiler.py", line 282, in init
CygwinCCompiler.init (self, verbose, dry_run, force)
File "c:\users\user\appdata\local\programs\python\python35\Lib\distutils\c
ygwinccompiler.py", line 126, in init
if self.ld_version >= "2.10.90":
TypeError: unorderable types: NoneType() >= str()
----------------------------------------

Command "c:\users\user.virtualenvs\test\scripts\python.exe -u -c "import set
uptools, tokenize;file='C:\Users\user\AppData\Local\Temp\pip-build-pc8
6pxzj\winrandom\setup.py';exec(compile(getattr(tokenize, 'open', open)(_file
_).read().replace('\r\n', '\n'), file, 'exec'))" install --record C:\Users\u
ser\AppData\Local\Temp\pip-06lbc65m-record\install-record.txt --single-version-e
xternally-managed --compile --install-headers c:\users\user.virtualenvs\test
\include\site\python3.5\winrandom" failed with error code 1 in C:\Users\user\App
Data\Local\Temp\pip-build-pc86pxzj\winrandom\

The import error implies that the problem lies with the pycrypto library. With google I found this issue. Can you try that and tell me if it works?
If it does, I can update the documentation ;-).

I faced that issue too on Windows 10 and Python 3.5. After some research I found out that this issue was actually fixed and fix is merged in pycrypto (see pull request #46. PyPi has old version of pycrypto so I installed fixed version from repo like this:
pip install git+https://github.com/dlitz/pycrypto.git@10abfc8#egg=pycrypto
With this version installed I don't get winrandom import error anymore.

OK, great. This means that the issue will resolve itself in the near-future (that is, when a pycrypto update is released). I'm closing the ticket now, since it's not a fabric issue.


build: fix start scripts for mediators

the start scripts used in the docker-compose setup do not match with the actual name of the start scripts that are defined in the package.json

Codecov Report

Merging #410 (0e00755) into main (d7389a3) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 0e00755 differs from pull request most recent head 72f8333. Consider uploading reports for the commit 72f8333 to get more accurate results

@@           Coverage Diff           @@
##             main     #410   +/-   ##
=======================================
  Coverage   86.62%   86.62%
=======================================
  Files         248      248
  Lines        5198     5198
  Branches      827      827
=======================================
  Hits         4503     4503
  Misses        695      695

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 d7389a3...72f8333. Read the comment docs.


Restore RootFS

I did a restore RootFS on A8 device 11.4.1 but after doing it Cydia is still there so I reenabled restore RootFS but then once I did it somehow it started jail breaking please help

Also, btw here’s the download link https://www.dropbox.com/s/pdieedjagyvnkth/diagnostics-7.plist?dl=0 to my diagnostics and lastly what I mean is that after Restore RootFSing I have a snapshot after I try to do it again it says now creating system Snapchat and then it restarted BUT CYDIA IS STILL HERE!! Have a nice reading this btw and ya I’m kind of pancing also since I launched this application multiple times the diagnostics are going to be filled with a mess

Cydia being there isn’t an issue. After restoring successfully, jailbreak again.

Cydia and all apps will still show up dont worry about it. just restore rootfs and then jailbreak. itll be fine.

No doesn’t restore RootFS Restore the root filesystem and isn’t Cydia part of it sorry for my issue very unclear but I’m asking why after doing restore RootFS Cydia is still there

@CoolPersonMaam that's just the icon, it is actually gone.


build(email-validator): move email-validator package to dependency

BREAKING CHANGE: Move the email-validator package to dependency. rollup.js will automatically not bundle email-validator. However, by adding the email-validator as a direct dependency, the email-validator package will be automatically installed when email-prop-type is installed.
Resolves #41

:tada: This PR is included in version 3.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


How to reset filter state?

For example, I need to reset state filter after closing search form.

Hey , can be little more descriptive about what are you trying to achieve .

Hi @studenttsu I add an example to show you how to clear the filter state, check this commit.
Basically you need to set the filter value to ''.


Added Zendesk plugin

Community plugin as part of plugin bounty.

Going to need a page here, too: https://posthog.com/integrations

@andyvan-ph should be automatic


UI/UX - Tabular model

Some user stories:

User

As a user navigating the application for the first time, I would like to have a concise view for every aspect that the application can affect on my machine, so I can navigate the application with ease.

Dev

As a developer, I would like to be able to add new commands, install application with ease so I can participate.
As a developer, I would like to be able to participate, without having to understand the whole application, to limit the time spent on adding simple stuff.

Propositions
The application could use multiple tabular views to segregate abilities, show a welcome message and a help section.
This would allow for more clarity for the end user, while also allowing the code to be easily separated by context.
The idea is to separate every context and its commands to their own domain. That way, every tab can become their own crate that is responsible for rendering, the list of commands, description, names, icons.
Visual example  (dont pay attention to the colors, I made this with defaults):

This looks amazing forget about it being just a model or feature/option this has potential to be a new tiling WM or even a new Desktop enviroment. Anyone who likes working with tabs is gonna love this.

It looks good, but what if the number of tabs is just too big though, and this also makes nesting tabs kinda impossible, rn you can nest directories as deep as you want, but nesting and managing tabs would be much harder. But if Titus likes it I will implement that no questions asked :)

Another concern I see, is it would be hard to handle resizing terminal to be much smaller, so that would seriously reduce compatibility. But this can be solved by writing the tab widget from scratch or using some widget library for rattatui

To answer your concern about easily adding new commands as a developer. The file list.rs has a variable called tree. When you look at it a little it is very easy to add new stuff to it, it uses a JSONish syntax, so you can easily make PRs by changing that variable. If you need further help after looking at it, you tag me in this issue again and I will write a detailed explination on how to make changes to that variable. Good luck :) and I am impressed that you managed to create that interface as a prototype

Hello,
Thanks for the feedback @bungadrum , @JustLinuxUser .

For the first concern, its real, but I would suggest that within a tab, you can still create a nesting list or subcategories.

For the amount of tabs, I think this should always be kept in check to avoid over specificity. Large broad category at the top and specific action within, like on Winutil.

The resizing issue is also real. Ratatui as an overflow-hidden strategy, but a wrapping one could be more effective in this case.

For the developper concern, to me, its more about how the list is one single entity that is tangled with the concerns of the application logic, rather than its own separate thing. Many dev/sys admin might not be familiar with Rust. I think it would be beneficial to aim to remove any  applicative logic from their sight to avoid leaving any talent at the door :)

Here is the resulting setup I came to, its far from perfect, and the list could go into its own file, but I find it quite clean.

Thanks for your time!

Honestly I love this idea, I prefer horizontal tabbed navigation over vertical
One idea to get past the issue of too many tabs without going crazy nested would be to add a forward and backward button to the far right after the search icon. Then in code check for say 10 tabs and any others would be hidden unless forward is pressed.
Does this make sense?

@ASWeiler86, if I understand well your idea :
A tabular view that is cantered on the selected tab by default, with two carousel like button that offset the view by x amount of tabs?
This would be custom stuff, but it would work in theory and could be quite nice. For now I did add a first/last binding, but I can see how an offset would be possible.

I will start working on a proof of concept PR as soon as @ChrisTitusTech shows any interest in this idea, also if he does, I will wait for my other PR to get merged / rejected, so I can be sure what to base this PR on

How about going the Whisker menu route and adding tabs with these categories:
Favorites, All Applications, Accessories, Games, Graphics, Internet, Multimedia, Office, Settings, System and Wine if you are a gamer that's 10-11 tabs with Rofi added.

@SoapyDev - Yeah that pretty much covers the idea.  For whatever reason I read faster left to right vs up to down.
I also find it better support for smaller screens as you can likely set it to respond to touch where you can drag through the tabs and it stops on the center as the "active" tab, hell even mouse wheel too just to be fancy. That is to me faster than scroll up and down.

Very Cool @SoapyDev - The main concern is how fast the project moves and PRs are accepted. I'd wait or coordinate with me before dumping a ton of time into this. Right now we are changing and adding menu items, so be careful during the UI and overhaul. If you can isolate and make a lot of this module so we don't have too many conflicts on the final PR that would be ideal.

@ChrisTitusTech , thanks :)
Yeah, I knew this would not be merged.  But I had a few hours and was happy to learn the basics of Ratatui. Plus I had to get it out of my head.
I think @JustLinuxUser has an idea about how to implement this without making any serious change to the code base. If he finds it to not be possible, then I will be happy to help and coordinate.
Here are some tabs category ideas:

Welcome
Applications
Security
System
Audio
Visuals
Terminal
Theming
Help

For theming, a cool idea, might be to have multiple themes (Catpuccin, Nord, etc...) and setups.

I made adding multiple themes very easy, but haven't implemented any switching for themes in runtime, so if you want to add some themes, I can add clap flags to switch in between them. I am not really a theming person, but if someone will do that part for me, I can't complain :)

Oh, I might have been unclear. I meant theming script for the distro. But I still added a theme for colorblind users :) I will expand on the inner themes next week!

@JustLinuxUser, @ChrisTitusTech , here are some layout idea that might be doable for the TUI, with corresponding navigation options. I also added a few idea in there that are not necessary, but I think are cool :), hope you do too.
1 - Two column tabs
Optimal width

Reduced size

Navigation

2 - Carousel - Harder
Optimal width

Reduced size

Navigation

3 - Columnar
I leave a comment on that one. Its by look my preferred one, but I did not find an intuitive way to navigate from tabs to commands.
Optimal width

Reduced size

Navigation

I hope one of them will be to your fancy.
As always, I am open to feedback.
Thanks for your time!

The third one looks really nice, almost like how you'd design a GUI. I don't think it's too difficult to make that intuitive. It's going from left to right, so just areas of focus. Left from the main page focuses the tablist (some indication that it's focused would be necessary), right from the tablist focuses the main page, and right/enter from the main page executes the command or enters the directory.

@SoapyDev I want to +1 this idea. The column layout looks awesome. For navigation, what do you think about doing something similar to what LazyGit does? Each panel has a number and you just press the number to focus it and navigate that way.

I have a draft of the UI nearly ready. Just need to fix up a few major issues & render a new design.


Remove tare during start up.

Hi,
Firstly, the library is amazing. Things are really simple and makes much sense to me after using this lib. So I'm stuck with an issue here. I'm using the example code to read the data continuity from hx711. Each time the micro controller is restarted the value is tared and starts from zero and that does not correspond to my input mv(obviousily).
In my application, i have to read and record the data every hour( the weight may increase or decrease). And during the process if the microcontroller is restarted, the value i'm reading starts from zero(which should not happen). I tried to solve this by making the Boolean_tare = false in the example, but the value reading is very high. i have tried figuring out the reason for it but i might be wrong about it.
boolean _tare = false;
LoadCell.start(stabilizingtime, _tare);
Any help would be greatly appreciated.
Thanks & Regards
Karthik

Hi,
I'm also running into this issue. I have a microcontroller with an HX711 loadcell amp which is connected to 4 load cells on an agricultural feeding wagon. It happens quite often that after unloading not all feed is unloaded and the scale is switched off for the night. Then when the scale is switched back on again the existing weight still in the wagon should be displayed, and not the "tared" zero weight.
I also really like this library, so it would be super nice if the tare at startup could be removed/changed so the HX711 could provide the actual weight which is on the scale at startup. (after calibration obviously).
Thanks and regards,
Jean

Hi (both of you)!
If you use LoadCell.start(stabilizingtime, false);,  the tare function will not run. However, the zero-offset value must be known to get correct output. So, you need to first run the tare function and save the zero-offset value to eeprom. Then restore this value from eeprom after a each reset/restart.
I have demonstrated how to do this in example file Persistent_zero_offset.ino. Please try out the example and let me know if it solved the issue or if you still have trouble. (Note that the example will not work as it is on Arduino Due and Zero boards due to lack of eeprom and non-standard eeprom emulation on these boards).
BTW: after a reset/reset the data set will be emty, so you need to let it fill up before you can take a representative reading. The functions refreshDataSet(); or getDataSetStatus(); can be used.

Hi Olav,
Thanks for the info.
I did take a look at the Persistent_zero_offset sketch, but it didn't work for me. Whenever I do the refreshOffsetValueAndSaveToEEprom function I get a calculated offset value of +- 8557599. When I restart the controller the value read from EEPROM is only 1178. After spending some time I realised that in your refreshOffsetValueAndSaveToEEprom function there is no commit after EEPROM.put if ESP8266 or ESP32 is defined. I added the "if defined" check and the commit and now the correct value is saved to EEPROM for offset and I can restart my controller and the current weight on the scale is still displayed correctly.
I'm not a C++ expert so I will leave it to you to see if this might have been the issue for me.
My next problem is going to be that whenever a re-calibration is performed, then I will have to recalculate the offset again. It would be nice if I can perform all of this in one go.
So my question is whether it will be possible to perform a calibration with a known weight and then before rebooting use the newly calculated CalFactor and then also perform the refreshOffset taking into account that the calibration weight is still going to be on the scale? I need to make it as easy as possible for the end-user so a single-step calibration and offset calc would be very nice.
Thanks for spending the time to assist with this.
Regards,
Jean

Hi, yes I seem to have forgot to include the commit part in the example, I will make an update on that.
Regarding your question: You must first have the correct zero-offset value before you can do a calibration, so I don't understand why you need to recalculate the offset after the calibration?
Also keep in mind that re-calibration is normally not needed, but the zero-offset will drift with temperature variations and is the value you normally want to re-set.

Hi, thanks for the info.
I just made the assumption that the zero-offset value will not be calculated correctly without calibrating first. I will try it as suggested and see if I can get it to work in this manner.
Thanks again.
Jean

Yeah, it's the oher way around: calibration will not be calculated correct unless zero-offset is set first. You're welcome.

I’m closing this issue because it has been inactive for some time.
Please reopen if you still encounter this issue with the latest version.
Thank you!


Create another nudge package with just the app and agent

Nudge Essentials

https://github.com/macadmins/nudge/releases/tag/v<IP_ADDRESS>555 available here


fix: legacy fromFlux translation

Closes #16474
Closes #17262
Closes influxdata/idpe#6772
replaces the flux parser that lives in giraffe with one that lives in influxdb. it closes the issue because it more closely follows the spec (throws an error during parsing). This PR is a weird side effect of a migration strategy and is wasteful of resources, but i wanted to merge it in while taking care of the todos, as i have no idea what the ramifications of changing that stuff is and this has a nice little bow on it.

@Asalem1 i can't break this locally, but that doesn't mean it's good
@TCL735 this is the kicking off of a talk about the interface between giraffe and influxdb