[8pt] Possible bug in Sierra test / rating_curve_comparion

A PR (1301 is pending merging for rating_curve_comparison which simply add a duration system.
During testing for that change, a possible bug was detected in the logic.
A large number of HUCs were processing well, but also a very large amount of both warnings and errors.
Below is a copy/paste from the log outputs:
doesn't seem like any 15050302 made it through
missing USGS rating curve data for usgs station 09484500 in huc 15050302
missing USGS rating curve data for usgs station 09484000 in huc 15050302
missing USGS rating curve data for usgs station 09485000 in huc 15050302
missing USGS rating curve data for usgs station 09484580 in huc 15050302

	  WARNING: missing USGS elevation data for usgs station 01487000 in huc 02080109
	  WARNING: missing USGS elevation data for usgs station 01487000 in huc 02080109
	  WARNING: nwm_recurr_data_table is missing location_id column for gage ['01488110', '01487000'] in huc 02080109
	  WARNING: rating curve dataframe not processed correctly...
	  Summary: [<FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 645 in generate_facet_plot>, <FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 381 in generate_rating_curve_metrics>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 48 in mapstar>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 125 in worker>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 108 in run>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 314 in _bootstrap>, <FrameSummary file /usr/lib/python3.10/multiprocessing/popen_fork.py, line 71 in _launch>, <FrameSummary file /usr/lib/python3.10/multiprocessing/popen_fork.py, line 19 in __init__>, <FrameSummary file /usr/lib/python3.10/multiprocessing/context.py, line 281 in _Popen>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 121 in start>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 329 in _repopulate_pool_static>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 306 in _repopulate_pool>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 215 in __init__>, <FrameSummary file /usr/lib/python3.10/multiprocessing/context.py, line 119 in Pool>, <FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 1370 in <module>>]
	 Exception:
	 AttributeError("'DataFrame' object has no attribute 'location_id'")
	  WARNING: rating curve dataframe not processed correctly...
	  Summary: [<FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 645 in generate_facet_plot>, <FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 381 in generate_rating_curve_metrics>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 48 in mapstar>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 125 in worker>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 108 in run>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 314 in _bootstrap>, <FrameSummary file /usr/lib/python3.10/multiprocessing/popen_fork.py, line 71 in _launch>, <FrameSummary file /usr/lib/python3.10/multiprocessing/popen_fork.py, line 19 in __init__>, <FrameSummary file /usr/lib/python3.10/multiprocessing/context.py, line 281 in _Popen>, <FrameSummary file /usr/lib/python3.10/multiprocessing/process.py, line 121 in start>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 329 in _repopulate_pool_static>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 306 in _repopulate_pool>, <FrameSummary file /usr/lib/python3.10/multiprocessing/pool.py, line 215 in __init__>, <FrameSummary file /usr/lib/python3.10/multiprocessing/context.py, line 119 in Pool>, <FrameSummary file /foss_fim/tools/rating_curve_comparison.py, line 1370 in <module>>]

As mentioned, this might not be a problem. If not, maybe we can add some notes to the file to help manage expectations.
This review / possible change will be needed in the next four weeks appx, as we are preparing for another BED/production run.

Update: Nov 13, 2024
We need to create the output folder earlier in the stack:
Traceback (most recent call last):
File "//foss_fim/tools/rating_curve_comparison.py", line 1303, in
logging.FileHandler(os.path.join(output_dir, f'rating_curve_comparison_{log_dt_string}.log')),
File "/usr/lib/python3.10/logging/init.py", line 1169, in init
StreamHandler.init(self, self._open())
File "/usr/lib/python3.10/logging/init.py", line 1201, in _open
return open_func(self.baseFilename, self.mode,
FileNotFoundError: [Errno 2] No such file or directory: '/data/fim_performance/hand_4_5_11_1/rating_curve_comparison/rating_curve_comparison_2024_11_13-18_27_46.log'
Wed Nov 13 18:27:46 UTC 2024

Duration system added with 1301, but this other part could still be a bug,

Here are some examples comparing the new results with the old results.
The vertical lines appear in the new plots. Some locations still do not have any vertical lines because they lack USGS rating curve data (e.g., missing USGS rating curve data for USGS station 09484500 in HUC 15050302). Therefore, this is not a problem. However, the vertical lines were not plotted previously for some location_ids with more than one feature_id. The script will always use the first feature_id in the new feature branch unless its flow is significantly lower than the USGS maximum flow (see figure below).


fix a broken link

Please use just /docs/controls/shadermask#blend_mode (without domain), so it works on staging site as well.


Remaining glitches with QtCreator AppImage

[ ] User needs to install compiler and libgl in order to be able to compile a Qt app
[ ] Qt Creator crashes when trying to edit a GUI file, Could not find QtWebEngineProcess, try setting QTWEBENGINEPROCESS_PATH environment variable

Qt WebEngine ICU data not found at /tmp/.mount_QN5fNm/Tools/QtCreator/lib/Qt/resources. Trying parent directory...
Qt WebEngine ICU data not found at /tmp/.mount_QN5fNm/Tools/QtCreator/lib/Qt. Trying application directory...
Qt WebEngine ICU data not found at /tmp/.mount_QN5fNm/Tools/QtCreator/bin. Trying fallback directory... The application MAY NOT work.
Installed Qt WebEngine locales directory not found at location /tmp/.mount_QN5fNm/Tools/QtCreator/lib/Qt/translations/qtwebengine_locales. Trying application directory...
Qt WebEngine locales directory not found at location /tmp/.mount_QN5fNm/Tools/QtCreator/bin/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
[0907/092334:ERROR:icu_util.cc(162)] Invalid file descriptor to ICU data received.
[0907/092334:FATAL:content_main_runner.cc(714)] Check failed: base::i18n::InitializeICU().
#0 0x7fce88bdaaee <unknown>
#1 0x7fce88bef40e <unknown>
(...)
/tmp/.mount_QN5fNm/AppRun: line 40:  1394 Aborted                 "$LINK"/usr/bin/qtcreator.wrapper "$@"


disablescroll() -> undo -> disablescroll() does not work

disablescroll-Method does not work again after "undo" is called.
Here's my fiddle:
http://jsfiddle.net/akhaak0g/3/
Please see JS-part:
$(window).disablescroll({ handleWheel: false }); $(window).disablescroll("undo"); $(window).disablescroll({ handleWheel: false });

Hi @MKahmen, I've had a look into it.
Just make sure you only pass the options on first use. So this should work as expected:
$(window).disablescroll({ handleWheel: false });
$(window).disablescroll("undo");
$(window).disablescroll();

Perhaps I will alter this in the future, so that different options can be passed in at any time. Fairly sure that wouldn't be standard jQuery plugin behaviour though.


"TypeError: isinstance() arg 2 must be a type or tuple of types" error

I am trying to run this code in a raspberry 4.b. But it gives this error

pi@raspberrypi:~/python_video_stab-master/vidstab $ python3 videocap.py
Traceback (most recent call last):
File "videocap.py", line 6, in
max_frames=1000
File "/home/pi/.local/lib/python3.7/site-packages/vidstab/VidStab.py", line 551, in stabilize
self.frame_queue.set_frame_source(cv2.VideoCapture(input_path))
File "/home/pi/.local/lib/python3.7/site-packages/vidstab/frame_queue.py", line 36, in set_frame_source
if isinstance(source, cv2.VideoCapture):
TypeError: isinstance() arg 2 must be a type or tuple of types

Hey,Rothax. I just solved this problem by changing the two isinstance()functions in  /home/pi/.local/lib/python3.7/site-packages/vidstab/frame_queue.py from
isinstance(source, cv2.VideoCapture):

to
  isinstance(source, type(cv2.VideoCapture())):

Then it works. Hope that helps you.

Sorry for the lack of any development on this project.  I didn't even see this issue was opened until @yzn9961's comment.
I'll implement the change shown above.  Thanks for the solve.


Remove warning that qpsolvers-eigen is not available on conda-forge

As it is now available: https://github.com/conda-forge/qpsolvers-eigen-feedstock .

Windows failure is unrelated (https://github.com/ami-iit/qpsolvers-eigen/issues/19).


Install commands shouldn't be multiline

AFAIK these doesn't work when being multiline

Agreed, and thanks - merging in to update.


[Policy]: Encryption at Host resources still marked as unhealthy

Policy Definition or Initiative
Definition
Built-in/Custom
Built-in
Built-in policy definition or initiative ID
/providers/Microsoft.Authorization/policyDefinitions/0961003e-5a0a-4549-abde-af6a37f2724d
Custom policy definition or initiative description
A policy that does ...
Scope
Intermediate Root
Default Assignment

[ ] Yes

Comments/thoughts
The policy 0961003e-5a0a-4549-abde-af6a37f2724d for "Virtual machines should encrypt temp disks, caches, and data flows between Compute and Storage resources" only detects Azure Disk Encryption. However, Encryption at Host (at least my understanding) meets the requirment of the policy as it encrypts temp disks, caches and data between compute and storage. I've been recommended to switch from using this policy, with two others that detect both ADE and EAH, the policies are:
/providers/Microsoft.Authorization/policyDefinitions/3dc5edcd-002d-444c-b216-e123bbfa37c0
/providers/Microsoft.Authorization/policyDefinitions/ca88aadc-6e2b-416c-9de2-5a0f01d1693f
Both policies are marked as being in preview and therefore I'm not sure on their suitability as a direct replacement yet until they become GA. I'm raising this here as the policy 0961003e-5a0a-4549-abde-af6a37f2724d appears in at least one initiative within this repo, and also in the ALZ Bicep repo which we consume. I suspect it appears in multiple initiatives/policy sets, though the example I've found is:
/providers/Microsoft.Authorization/policySetDefinitions/1f3afdf9-d0c9-4c3d-847f-89da613e70a8

Hi @brotheroneill! Thanks for reaching out!
For the policy you're referring to "Virtual machines should encrypt temp disks, caches, and data flows between Compute and Storage resources", if you read the description of the policy, it answers part of your question:
"By default, a virtual machine's OS and data disks are encrypted-at-rest using platform-managed keys. Temp disks, data caches and data flowing between compute and storage aren't encrypted. Disregard this recommendation if: 1. using encryption-at-host, or 2. server-side encryption on Managed Disks meets your security requirements. Learn more in: Server-side encryption of Azure Disk Storage: https://aka.ms/disksse, Different disk encryption offerings: https://aka.ms/diskencryptioncomparison"

Hi @Springstone, thanks for such a prompt response. I knew we could disregard/exempt resources from the policy, but it felt like we weren't really addressing the problem, hence raising it here. My concern was that we become complacent with the recommendation, and one day miss a genuine issue because we assume "that policy is old, it's always a false positive because we're using EAH".
I guess I'm thinking that my organisation and I can't be the only customers having this challenge with this policy, and because we're assigning this policy as part of a policy set within this repo, it felt appropriate to raise it here to see if something needs to be done centrally within that policy set, i.e. swap the policy in question out for the two recommended.

Hi @brotheroneill. Many thanks for the quick reply. You are 100% correct, and as you kind of highlight it is a bit of a balancing act. Most customers aren't using EAH yet, or have various combinations that make it difficult to make everyone happy. At some point, you will always end up with "non-compliant" policies (even if part of an initiative) because you may have made some different choices. In this case, we could add the two new policies, but that doesn't change that the original one will always be non-compliant for you.
I'll add it to our backlog to be included in our initiative, but in the meantime, you could delete our default assignment, edit the initiative (it is a custom) to remove the old policy and include the new ones, and re-assign. You should be in a good state then (green :))
Let me know if this makes sense, or if you have any additional thoughts.

We're on a roll! :) that's fair, perhaps I was being naïve but I was thinking that the two proposed policies mean irrespective of what method you're using, everyone is happy.
We're consuming the policy set via the ALZ-Bicep repo, specifically within infra-as-code\bicep\modules\policy\assignments\alzDefaults\alzDefaultPolicyAssignments.bicep. There's guidance here on how to exclude specific policy if it doesn't fit your organisations needs, but because this is included as part of a policy set, if we exclude it we're disabling a whole stack of policy.
If it's on the backlog I guess we'll just sit tight until it's look at.

@brotheroneill you are not wrong. The two policies do cover all scenarios, however, with a caveat being that guest configuration is deployed and configured properly, and this is rarely the case (https://aka.ms/gcpol). All of that with firewall rules, etc needs to be in place, with additional configurations required when using private endpoints (link), it's not trivial. We do need to make careful considerations in what we propose for all customers that use ALZ.
All the reference implementations (including ALZ-Bicep) use the policies and initiatives from this repo, btw, so you raised your issue in the right place.
Again, don't sit tight. Don't exclude either. Modify our custom initiative, remove the original policy and add the two previews, if this meets your requirements. You will need to delete the original assignment, and re-assign the updated initiative, but this should address your immediate requirement.
Let us know if this works. There is no silver bullet that works for everyone unfortunately, hopefully this helps you achieve your objectives.

As there has been no follow up on last post, closing this issue. If you feel this needs more attention feel free to reopen and provide additional context.


Angular support

Any plan to make angular library/integration?

https://github.com/matheusdavidson/angular-cropperjs


docs: add hugo documents framework

Signed-off-by: lowzj<EMAIL_ADDRESS>Ⅰ. Describe what this PR did
Just add hugo templates and all other js/html/css are generated in CI flow.
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

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

@@           Coverage Diff           @@
##           master     #180   +/-   ##
=======================================
  Coverage   81.43%   81.43%
=======================================
  Files          28       28
  Lines        1282     1282
=======================================
  Hits         1044     1044
  Misses        207      207
  Partials       31       31

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 e6e875e...3c1ded8. Read the comment docs.


post and compare benchmark result on PR

https://github.com/openmaptiles/openmaptiles/blob/master/.github/workflows/performance.yml

in https://github.com/developmentseed/timvt/pull/89 I've added pytest-benchmark tests to check uniq tile's call. By using benchmark-action/github-action-benchmark we also get a nice html page + error if the performance decrease.
Now we have 2 benchmark suites:

Siege: https://github.com/developmentseed/timvt/blob/master/.github/workflows/benchmark.yml
pytest-benchmark: https://github.com/developmentseed/timvt/blob/master/.github/workflows/ci.yml#L66-L105

one (siege) is strictly informative while the other can compare results and create web page but for uniq tile requests.
I'm not sure where we want to go with both.


set repeating on animations

how can i set repeat() to loop animation until cancel repeating ?

Do you mean to have it looping endlessly? I think that you've to pass -1 to repeat call.

It's pretty obviously no one read the demo code.
Check here: https://github.com/daimajia/AndroidViewAnimations/blob/master/demo/src/main/java/com/daimajia/androidanimations/MyActivity.java#L45
You can pass YoYo.INFINITE as the repeat parameter. Then it will repeat forever.
BTW. Thanks @Eylen for the answer.


Fix server crash due to referencing client classes

Fixes #23 for 1.20.1
Should be able to cherrypick it forward to 1.20.4 if you decide to merge it.
Summary of changes:

Moved everything from WickedGuiDescription to WickedPaintingScreen as the description is referenced by server code. All the gui stuff should only happen on the client.
Marked ImageUtils#getOrLoadImage and WickedPaintingItem#appendTooltip as client-only methods. I think only the first one is necessary, but I figured it wouldn't hurt to cover both bases.

I considered moving the method to a client package but the annotation worked and this resulted in fewer changes, so figured I'd stick with it. You can make up your mind whether you want to refactor things more.

kinda forgot about #23 thanks


Fix mipmap demo

In the 'mipmap' example, Fix so that the min filter is linear mipmap linear' instead of 'nearest mipmap linear', because it looks much better.

This change is

This resolves issue #313.

Reviewed 4 of 4 files at r1.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


PLAT-10710: Implement the retry mechanism

Ticket
PLAT-10710
Description
Please put here the intent of your pull request.
Dependencies
List the other pull requests that should be merged before/along this one.
Checklist

[x] Referenced a ticket in the PR title and in the corresponding section
[x] Filled properly the description and dependencies, if any
[x] Unit tests updated or added
[x] Docstrings added or updated
[ ] Updated the documentation in docs folder

Please mind the markdown documentation, esp. the configuration part (retry at global level and under datafeed field).


exporter throwing error when turning code to json

I have not been successful building multiple widgets. Is this package made for only single widgets or can you wrap multiple widgets into one and export them? I am using version 3.0.5. Also I noticed that not all properties export into the json. For example, when I exported just the container that had decoration, it wasn't passed into the json.
Build Component
Widget _buildComponent(GlobalKey key, Widget component) {
    return Padding(
    padding: const EdgeInsets.all(8.0),
    child: DynamicWidgetJsonExportor(key: key, child: component),
  );
}

Component:
Container(
              height: 200,
              margin: EdgeInsets.symmetric(horizontal: 15.0),
              decoration: BoxDecoration(
                borderRadius: BorderRadius.all(Radius.circular(20.0)),
                image: DecorationImage(
                  image: AssetImage('assets/weather/clear-day/bg.jpg'),
                  colorFilter: ColorFilter.mode(
                      Colors.black.withOpacity(0.75), BlendMode.dstATop),
                  fit: BoxFit.cover,
                ),
              ),
              child: Stack(
                children: [],
              ),

Function:
var exportor = key.currentWidget as DynamicWidgetJsonExportor;
                var exportJsonString = exportor.exportJsonString();
                setState(() {
                  json = exportJsonString;
                  debugPrint('the widget json: $json');
                });

Log:
E/flutter ( 7669): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'AlignmentDirectional' is not a subtype of type 'Alignment'
E/flutter ( 7669): #0      StackWidgetParser.export
package:dynamic_widget/…/basic/stack_positioned_widgets_parser.dart:71
E/flutter ( 7669): #1      DynamicWidgetBuilder.export
package:dynamic_widget/dynamic_widget.dart:140
E/flutter ( 7669): #2      ContainerWidgetParser.export
package:dynamic_widget/…/basic/container_widget_parser.dart:71
E/flutter ( 7669): #3      DynamicWidgetBuilder.export
package:dynamic_widget/dynamic_widget.dart:140
E/flutter ( 7669): #4      DynamicWidgetJsonExportor.exportJsonString.<anonymous closure>
package:dynamic_widget/…/basic/dynamic_widget_json_exportor.dart:27
E/flutter ( 7669): #5      ComponentElement.visitChildren
package:flutter/…/widgets/framework.dart:4681
E/flutter ( 7669): #6      Element.visitChildElements
package:flutter/…/widgets/framework.dart:3241
E/flutter ( 7669): #7      DynamicWidgetJsonExportor.exportJsonString
package:dynamic_widget/…/basic/dynamic_widget_json_exportor.dart:26
E/flutter ( 7669): #8      _DynamicExporterPageState.build.<anonymous closure>
package:kai_mobile/…/dynamic_widget/dynamic_widget_exporter_screen.dart:33
E/flutter ( 7669): #9      _InkResponseState._handleTap
package:flutter/…/material/ink_well.dart:993
E/flutter ( 7669): #10     _InkResponseState.build.<anonymous closure>
package:flutter/…/material/ink_well.dart:1111
E/flutter ( 7669): #11     GestureRecognizer.invokeCallback
package:flutter/…/gestures/recognizer.dart:183
E/flutter ( 7669): #12     TapGestureRecognizer.handleTapUp
package:flutter/…/gestures/tap.dart:598
E/flutter ( 7669): #13     BaseTapGestureRecognizer._checkUp
package:flutter/…/gestures/tap.dart:287
E/flutter ( 7669): #14     BaseTapGestureRecognizer.acceptGesture
package:flutter/…/gestures/tap.dart:259
E/flutter ( 7669): #15     GestureArenaManager.sweep
package:flutter/…/gestures/arena.dart:157
E/flutter ( 7669): #16     GestureBinding.handleEvent
package:flutter/…/gestures/binding.dart:362
E/flutter ( 7669): #17     GestureBinding.dispatchEvent
package:flutter/…/gestures/binding.dart:338
E/flutter ( 7669): #18     RendererBinding.dispatchEvent
package:flutter/…/rendering/binding.dart:267
E/flutter ( 7669): #19     GestureBinding._handlePointerEvent
package:flutter/…/gestures/binding.dart:295
E/flutter ( 7669): #20     GestureBinding._flushPointerEventQueue
package:flutter/…/gestures/binding.dart:240
E/flutter ( 7669): #21     GestureBinding._handlePointerDataPacket
package:flutter/…/gestures/binding.dart:213
E/flutter ( 7669): #22     _rootRunUnary (dart:async/zone.dart:1206:13)
E/flutter ( 7669): #23     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
E/flutter ( 7669): #24     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
E/flutter ( 7669): #25     _invoke1 (dart:ui/hooks.dart:265:10)
E/flutter ( 7669): #26     _dispatchPointerDataPacket (dart:ui/hooks.dart:174:5)

can you post all your code here? I will check it out. it seems that StackWidgetParser's export method has some bugs.

@mikeyyg96 please try the latest version 3.0.6

Updating to latest version 3.0.6 works for me :)


Problems with shader uniform

Hi,
I've ported some OpenGL code I had over to Veldrid - it's a great library! (demo code at https://github.com/taumuon/VeldridRayCastPickingDemo) , but had some weird behaviour with one of the shader uniforms.
The main shader, ColorShader, has a uniform, DirectionalLightUniform, but if I try to use the ambient and diffuse fields from that uniform nothing is drawn (instead, the ambient and diffuse values are hardcoded in the fragment shader). Also, I had problems with the ShadowMatrix - it works if it's the first field in the DirectionalLight struct, but drawing is corrupt if it's moved to the last field.
I think it's related, but I had issues with the size of the directional light buffer size to set in the BufferDescription - it feels related. Can you see what's wrong with my code, and are there any guidelines on the structs to use in the shaders (padding/alignment?)
Thanks,
gary

I've ported some OpenGL code I had over to Veldrid - it's a great library!

Thanks!
I ran your program under RenderDoc to figure out what the problem was.

The frame capture indicates that the DirectionalLightBuffer resource isn't being bound at all in the fragment shader, so blank data is being read back. The root cause is this:
new ResourceLayoutElementDescription("DirectionalLight", ResourceKind.UniformBuffer, ShaderStages.Vertex),
This line indicates that the resource only applies to the Vertex stage. You can change it to:
new ResourceLayoutElementDescription("DirectionalLight", ResourceKind.UniformBuffer, ShaderStages.Vertex | ShaderStages.Fragment),
and it should fix that problem. Let me know if you hit any other snags, I'm happy to help.

Perfect, that worked :) Thanks for your help!


Does not respect alternate keyboard layouts?

I'm trying out the Brave browser and I noticed that it doesn't currently register its keyboard shortcuts correctly. I assume they're busy with all sorts of other things and don't have time to help a picky Dvorak user such as me, so I figured I'd help them out. I'm new to electron but familiar with JS & React & webpack, etc.
The issue
I use the Dvorak keyboard layout. When I press cmdshift] to try to switch tabs, Brave-via-electronlocalshortcut looks at the key position rather than the character typed, and instead sends cmdshift+. I zoom in instead of switching tabs.
The code
Here's how they define their shortcuts. Essentially:
const electronLocalshortcut = require('electron-localshortcut')

module.exports.register = win => {
  electronLocalshortcut.register(win, 'CmdOrCtrl+Shift+]', () => {...})
}

What's wrong?
Is there something that they did wrong, or is this an error in electron-localshortcut? Point me in the right direction and I can help fix the issue.
Thanks!

Hi @chadoh, thank you for your detailed issue...

Is there something that they did wrong, or is this an error in electron-localshortcut?

Neither... they're using this module right well, and no there's no bug on electron-localshortcut side:
I simply pass the shortcut Accelerator parameter to electron globalShortcuts methods, I don't do any changes or traslation to the keycode you passes.
So I guess you'll have to repost this issue to Electron repo: it's should be his responsibility to interpret keycode Accelerator used.


Cleanup client.crt

At the moment when we generate client config the cert section contains additional information, that makes it invalid. We need to remove it.

https://github.com/Mehonoshin/smartvpn-billing/pull/106


How do you export application.yml to env vars

I'm noticing a command, figaro heroku:set which looks awesome, but I can't use it with dokku apparently.  If there's nothing set up to do it with dokku, I'd appreciate a command that's something like figaro vars:dump that outputs something like this:
export AWS_PASS='blahblah'

So I can easily redirect that into my clipboard and then paste it into /home/dokku/app_name/ENV to get a new server setup and inline with my local dev/staging env.

The file ~ figaro-1.1.1/lib/figaro/cli/heroku_set.rb is responsible for the heroku:set command.  If you hack the first private method named run to be the below, you get a pretty nice command:
      def command
        # "heroku config:set #{vars} #{for_app} #{for_remote}"
        "echo dokku config:set APP_NAME #{vars} #{for_app} #{for_remote}"
      end

There's still a problem, that you need to manually replace APP_NAME in the output string.
Does anyone else want a figaro config:print or something?


Sorting option suggestions.

[Copy and pasted from the Discord, so sorry if it's a little rambly]:
some of the neat sorting stuff [the theme] D3NEX_MAXIMUM does that I'd love to see: you can set what order the Groups appear in, so I could do say: All the DDR Arcade releases in order, then the home releases, then all the packs from one author/site in release order; so that way, it doesn't get jumbled up by weird alphabetical namings. (actually, I think D3 does this instead by, sorting them in alphabetical order, but then you can rename them whatever you want, so it doesn't have to match the folder name). You can also put in a text document in each group to sort all the songs in a specific order, and then color their names specific colors (as a way of grouping songs, or dividing up the Dancemania songs from the Konami originals, etc.) I'd love to see the latter as an option somehow.
EDIT: Here's actually a page with a bunch of, how these themes (waiei-based themes) do it: https://sm.waiei.net/other/group.html

could you take a moment to edit this so it's in the proper [feature request] format for me?


[Request] Recognise arbitrary hashtags in template

Thank you for your work on this! I think ActivityPub is very important, and I'm stoked to see it starting to be integrated with WordPress.
I run a few different sites for specialty interests, and I'm noticing that the tags I use to organise content in the context of the site, are different to how I'd want to hashtag things on the fediverse in general.
For example, for my D&D4e homebrew site: within the site I use tags like "character building" and "errata" and "theme", which are pretty useless as, say, Mastodon hashtags. And if people looked for this kind of content on a service like Mastodon, they'd probably be searching for something like #DnD4e or #DnD4eHomebrew—which would of course be useless as WP tags, since every post on my site would have them.
I thought, why not just add hashtags to the output template? So I did. Unfortunately they don't seem to be converted to actual hashtags by the time they reach my feed—just plain text. It's a bit hard to tell on dark theme, but below you can see an example with two WP tags (which became links as expected) and then two arbitrary hashtags (which didn't).

(I suspect I could use an  tag if I knew the right way to express the URI, but of course I don't! If that's simple to do I'd much appreciate anybody who can tell me.)
Anyway, any chance we could get the plugin to recognise arbitrary hashtags used in the template, and output them as such?

Can you share a sample post? so I can have a look?

You mean like a link to a live post? Sure, here's the example from my original post, as published on the site: https://squarefireballs.invincible.ink/how-to-be-inu-yasha/
My template is currently set up like this, so you can see what I was trying to do.

New post: [ap_title]

[ap_excerpt]

[ap_permalink]

#DnD4e #DnD4eHomebrew

(I took out the WP hashtags from the template after the post above was published.)

should be fixed now, please re-open if not!

Unfortunately, it looks like it still not happening. I gave it a bit of time to be sure, but tags in the template are still just plain text when viewed from my Mastodon account.
In case it helps, here's the latest post that went up just now: https://squarefireballs.invincible.ink/the-vampire-sucks/
Federated as a blog<EMAIL_ADDRESS>using this template:

New post: [ap_title]

[ap_excerpt]

[ap_permalink]

#DnD4e #DnD4eHomebrew

Screenshot from Mastodon:

I don't suppose there has been any further progress on this? If there's anything I can do to help test I'm very willing.

I would prefer to do away with the templates altogether... They are far too complicated and don't offer as many functions as they should...

I sure hope not, since I rely on them to present articles the way I prefer :\ That would be a big downgrade for me. What would be the alternative/default behaviour?

You could create a Synced Pattern (reusable block), and either add it to your posts manually, or create a to a Block Template to auto insert it to every post.

Wouldn't that change the post content though? That would defeat the point. The goal is to provide information that would be useless to people viewing the post on the actual website, but is useful to people viewing the post from a difference fediverse context, like Mastodon.

The idea of hashtags is, that the posts will be found under that hashtag and not every app/platform handles hashtags the same way, mastodon does, so there might be apps that link to the tag page of your site which would show a 404 in that case.

You could hook into activitypub_the_content filter and markup the hashtags, but I agree with Matthias this would be hacky and not necessarily supported by all mastodon clients, or other ActivityPub servers.

The idea of hashtags is, that the posts will be found under that hashtag and not every app/platform handles hashtags the same way, mastodon does, so there might be apps that link to the tag page of your site which would show a 404 in that case.

Ahh, I see why that would be so much more difficult than it appears on the surface.
Really I guess it's part of a larger conflict, where by nature ActivityPub wants share the actual content, but something like Mastodon doesn't really use that well, so it wants more of a "summary" format. Which leads to a situation like this, where I'm effectively trying to replace a Twitter update auto-poster, and it has me thinking about AP in a way it isn't really meant for. Still a real shame—the first bit of advice to new Masto users is typically "follow hashtags to build a feed you enjoy", so not being able to handle them within context is super frustrating—but now it's clear that this is a property of AP at large, rather than this project.
Okay, so, a potentially useful compromise; what about letting [ap_hashtags] take an argument to use any taxonomy, instead of working only with tags? The terms would have to exist on the site, so that should do away with the question of how to handle arbitrary hashtags., but allow you to choose a custom taxonomy if you want to keep actual tags relevant to local browsing.


add a date filter: "look for carbon data from 2012-2016"

Description
add a filter to lower the number of hits by date

Seems the sorting is by metadata date (updated) and the display is the dataset date


[Things I Learned] I learned GitHub issues

I learned how to make Github issues and basic PM today

trying again


Error in console when searching phone number

Uncaught TypeError: (0 , f.getApi)(...).WLAPStore.PresenceCollection is not a constructor

Hi,
I have the same problem. How can I resolve it?

WhatsApp has changed their API. I will have to reserve some time in my schedule. As it stands this will be somewhere next january.


Sample Lambda custom runtime integration

I've scoured the interwebs for an example of integrating the .Net Generic Host with a lambda using a 3.1 custom runtime. I haven't found one - all the examples assume that MVC is being used.
As the lambda bootstrap doesn't seem to work natively with the generic host interface, I'm using Host.CreateDefaultBuilder to build the appropriate host and then setting the IHost.Services up as a static field to access in the Lambda Handler. This all seems awful and if there's a better way to do it it's not documented anywhere.
Is there a better way to get Config into a simple lambda without MVC?

I'll work on getting you a sample soon.

If it will help, I can create a gist of what I currently have.

PR https://github.com/aws/aws-dotnet-extensions-configuration/pull/84 closed due to lack of activity. Closing the issue.


WIP: Pull SampleID from Thermo RAW files as annotation in Skyline

added RawFile::getSampleID(), which is added to the MSData model as the MS_sample_name of a Sample element
added MsDataFileImpl::GetSampleId(), which gets a nullable string from that MS_sample_name value

This is reference to issue 628:

Jaffe lab has requested the ability to automatically set replicate attribute based on some properties in the Thermo RAW file header. ProteoWizard can write these properties to the MSData fileContent section as userParams if they are present and/or non-empty, where Skyline can look for them and use them appropriately.

The current branch has the requested property in the MSData model and an easy getter function in MSDataFileImpl.
@brendanx67 / @nickshulman Do you want me to go ahead and try to do the annotation part too?

@nickshulman does approval mean you want to handle the Skyline side of this?

@nickshulman does approval mean you want to handle the Skyline side of this?

Yes, I should do the Skyline side of this. It will probably require changing our .skyd file format a little bit, since the easiest way to remember the value of this attribute that we read during chromatogram extraction is to store it in the .skyd file before eventually copying it into the .sky file.


[Question] Paging with Result

How can I use a PagedList with your library?
public class PagedList<T> : List<T>
{
    public int CurrentPage { get; private set; }
    public int TotalPages { get; private set; }
    public int PageSize { get; private set; }
    public int TotalCount { get; private set; }

    public bool HasPrevious => CurrentPage > 1;
    public bool HasNext => CurrentPage < TotalPages;

    public PagedList(List<T> items, int count, int pageNumber, int pageSize)
    {
        TotalCount = count;
        PageSize = pageSize;
        CurrentPage = pageNumber;
        TotalPages = (int)Math.Ceiling(count / (double)pageSize);

        AddRange(items);
    }

    public static PagedList<T> ToPagedList(IQueryable<T> source, int pageNumber, int pageSize)
    {
        var count = source.Count();
        var items = source.Skip((pageNumber - 1) * pageSize).Take(pageSize).ToList();

        return new PagedList<T>(items, count, pageNumber, pageSize);
    }
}

Is this Ok?
var obj = myList.AsQueryable().ToPagedList(4, 1);
Result<PagedList<MyCustomObject>> x = Result.Ok(obj); // HERE

Thanks for your question. The code looks good to me. If you give me more context or the purpose why you want to use the result pattern then I can give you probably more suggestions for improvements.
Also see

https://github.com/altmann/FluentResults#samplesbest-practices
https://github.com/altmann/FluentResults#interesting-resources-about-result-pattern

Thanks for your question. The code looks good to me. If you give me more context or the purpose why you want to use the result pattern then I can give you probably more suggestions for improvements.
Also see

https://github.com/altmann/FluentResults#samplesbest-practices
https://github.com/altmann/FluentResults#interesting-resources-about-result-pattern


Create a patch/content/secondary  branch based on the feature/body branch

Merge branch patch/content/secondary into feature/body using pull request

Mission accomplished.


Interventions in the model

We do simulations of pupils' progress (math score) on different values of teacher_quality_mean (=tq_m) and teacher_control_mean (=tc_m) while keeping the best found values for the rest of parameters. We will change tq_m and tc_m by incrementing each of their values by 0.2*(tq_sd) or 0.2*(tc_sd) (increasing by a factor of their corresponding standard deviations) while keeping one of them constant and testing each combination of values 5 times (NUM_REPEATS=5). We will do every batch of incrementation (first, for one parameter, then for the other parameter, interchangeably) for 5 iterations (NUM_ITERATIONS=5) and see what happens with the math score of pupils at the end of a school year.

So, our first intervention in the model will be modification of tq_m and tc_m as described in the beginning to see what happens with pupils' math score.

Peter: "For the interventions, the outcome that we are interested in is the average maths score for the whole dataset. If you could include that in the table of parameters or some other way that would be great."


Typescript version 4.6.2 is not supported by @typescript-eslint/typescript-estree which is a dependency of eslint-config-react-app

Describe the bug
I am using eslint-config-react-app which uses @typescript-eslint/parser which then uses @typescript-eslint/typescript-estree under the hood.
eslint-config-react-app is using version 5.5.0 of @typescript-eslint/parser which supports the following TS versions
>=3.3.1 <4.6.0

If I use the latest TS version, it throws this warning
=============

WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.

You may find that it works just fine, or you may not.

SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <4.6.0

YOUR TYPESCRIPT VERSION: 4.6.2

Please only submit bug reports when using the officially supported version.

=============

Steps to reproduce
Using eslint-config-react-app outside of create-react-app
Suggested Solution
@typescript-eslint/typescript-estree already fixed this issue in this PR with version 5.14.0
Updating @typescript-eslint/parser in eslint-config-react-app to the latest version will fix this.

+1 any idea when this fix will be available?


Cannot use the intersection Obeserver Api in the remix app

What is the location of your example repository?
No response
Which package or tool is having this issue?
Hydrogen
What version of that package or tool are you using?
4.0.4
What version of Remix are you using?
1.19.1
Steps to Reproduce
I have used many packages like react-intersection-observer and @shopify/react-intersection-observer but it does not obeserve the element
I have also created a component that still would not work
import React, {useEffect, useRef, useState} from 'react';

function InView(props) {
  const ref = useRef();
  const observerRef = useRef(null);
  const [isInView, setIsInView] = useState(false);

  const handleIntersection = (entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        setIsInView(true);
        observerRef.current.unobserve(entry.target);
      }
    });
  };

  useEffect(() => {
    if (typeof window !== 'undefined') {
      // Check if running on the client
      observerRef.current = new IntersectionObserver(handleIntersection, {
        threshold: 0.5,
      });

      // Start observing the element when it's available on the client side
      if (ref.current) {
        observerRef.current.observe(ref.current);
      }

      return () => {
        if (observerRef.current) {
          observerRef.current.disconnect();
        }
      };
    }
  }, []);

  return (
    <div ref={(node) => (ref.current = node)}>
      {props.children({
        isInView,
      })}
    </div>
  );
}

export default InView;

Expected Behavior
Should observe the element that I want to observe
Actual Behavior
Does not Observe the element

We use the same react-intersection-observer package in our own demo-store example and it works.
https://github.com/Shopify/hydrogen/blob/main/templates/demo-store/app/routes/(%24locale).collections.%24collectionHandle.tsx#L4

Closing for lack of response. Please re-open if still a problem.


calico-bpf  Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/bird/bird.ctl: connect: no such file or directory

Expected Behavior

Current Behavior

kubectl describe pod/$(kubectl get po -o jsonpath={.items[0].metadata.name} -l k8s-app=calico-node -n kube-system) -n kube-system

Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  24m                default-scheduler  Successfully assigned kube-system/calico-node-9vpng to master3
  Normal   Pulling    24m                kubelet            Pulling image "docker.io/calico/cni:v3.28.0"
  Normal   Pulled     24m                kubelet            Successfully pulled image "docker.io/calico/cni:v3.28.0" in 14.98s (35.738s including waiting). Image size: 94536228 bytes.
  Normal   Created    24m                kubelet            Created container upgrade-ipam
  Normal   Started    24m                kubelet            Started container upgrade-ipam
  Normal   Pulled     24m                kubelet            Container image "docker.io/calico/cni:v3.28.0" already present on machine
  Normal   Created    24m                kubelet            Created container install-cni
  Normal   Started    24m                kubelet            Started container install-cni
  Normal   Pulling    24m                kubelet            Pulling image "docker.io/calico/node:v3.28.0"
  Normal   Pulled     23m                kubelet            Successfully pulled image "docker.io/calico/node:v3.28.0" in 14.495s (14.495s including waiting). Image size: 115239232 bytes.
  Normal   Created    23m                kubelet            Created container mount-bpffs
  Normal   Started    23m                kubelet            Started container mount-bpffs
  Normal   Pulled     23m                kubelet            Container image "docker.io/calico/node:v3.28.0" already present on machine
  Normal   Created    23m                kubelet            Created container calico-node
  Normal   Started    23m                kubelet            Started container calico-node
  Warning  Unhealthy  23m                kubelet            Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/bird/bird.ctl: connect: no such file or directory
  Warning  Unhealthy  23m (x2 over 23m)  kubelet            Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refused
  Warning  Unhealthy  23m                kubelet            Readiness probe failed: 2024-06-19 01:57:27.880 [INFO][305] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503
  Warning  Unhealthy  23m  kubelet  Readiness probe failed: 2024-06-19 01:57:37.868 [INFO][470] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503
  Warning  Unhealthy  23m  kubelet  Readiness probe failed: 2024-06-19 01:57:47.885 [INFO][630] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503
  Warning  Unhealthy  23m  kubelet  Liveness probe failed: calico/node is not ready: Felix is not live: Get "http://localhost:9099/liveness": dial tcp <IP_ADDRESS>:9099: connect: connection refused
  Warning  Unhealthy  23m  kubelet  Readiness probe failed: 2024-06-19 01:57:57.880 [INFO][767] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503
  Warning  Unhealthy  22m  kubelet  Readiness probe failed: 2024-06-19 01:58:07.866 [INFO][928] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503
  Warning  Unhealthy  22m  kubelet  Readiness probe failed: 2024-06-19 01:58:17.849 [INFO][1063] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: Get "http://localhost:9099/readiness": dial tcp <IP_ADDRESS>:9099: connect: connection refused
  Warning  Unhealthy  4m32s (x125 over 22m)  kubelet  (combined from similar events): Readiness probe failed: 2024-06-19 02:16:27.866 [INFO][17959] confd/health.go 202: Number of node(s) with BGP peering established = 2
calico/node is not ready: felix is not ready: readiness probe reporting 503

Possible Solution

kubectl get no,pod -o wide -A
NAME           STATUS   ROLES           AGE     VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
node/master1   Ready    control-plane   10m     v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-173-generic   containerd://1.6.33
node/master2   Ready    control-plane   9m36s   v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-173-generic   containerd://1.6.33
node/master3   Ready    control-plane   9m41s   v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-173-generic   containerd://1.6.33

NAMESPACE              NAME                                             READY   STATUS      RESTARTS        AGE     IP               NODE      NOMINATED NODE   READINESS GATES
ingress-nginx          pod/ingress-nginx-admission-create-k2gxl         0/1     Completed   0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
ingress-nginx          pod/ingress-nginx-admission-patch-b22ph          0/1     Completed   0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
ingress-nginx          pod/ingress-nginx-controller-6f848d7788-cdjg6    1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
ingress-nginx          pod/ingress-nginx-controller-6f848d7788-mmvns    1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/calico-kube-controllers-564985c589-5jrwl     1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/calico-node-9vpng                            0/1     Running     0               9m41s   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/calico-node-h6z47                            0/1     Running     0               9m36s   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/calico-node-pltbx                            0/1     Running     0               9m42s   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/coredns-7db6d8ff4d-k2q6c                     1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/coredns-7db6d8ff4d-nkfrs                     1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/kube-apiserver-master1                       1/1     Running     0               9m59s   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-apiserver-master2                       1/1     Running     0               9m21s   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-apiserver-master3                       1/1     Running     0               9m22s   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kube-controller-manager-master1              1/1     Running     1 (9m59s ago)   9m59s   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-controller-manager-master2              1/1     Running     0               9m16s   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-controller-manager-master3              1/1     Running     0               9m27s   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kube-proxy-8mkb8                             1/1     Running     0               9m41s   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kube-proxy-g6nxf                             1/1     Running     0               9m36s   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-proxy-z5gj7                             1/1     Running     0               9m42s   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-scheduler-master1                       1/1     Running     0               9m59s   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-scheduler-master2                       1/1     Running     0               9m27s   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-scheduler-master3                       1/1     Running     0               9m33s   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kubelet-csr-approver-6df44c648f-cn5q7        1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/metrics-server-758fd799ff-dvtz6              1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kubernetes-dashboard   pod/dashboard-metrics-scraper-795895d745-vhz8l   1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>
kubernetes-dashboard   pod/kubernetes-dashboard-697d5b47c4-vtgf7        1/1     Running     0               9m42s   <IP_ADDRESS>    master1   <none>           <none>

Steps to Reproduce (for bugs)

install 3 master
deploy https://github.com/projectcalico/calico/blob/v3.28.0/manifests/calico-bpf.yaml
kubectl patch felixconfiguration default --type merge --patch='{"spec":{"logSeverityScreen":"Debug"}}'

kubectl get felixconfiguration default -o yaml
apiVersion: crd.projectcalico.org/v1
kind: FelixConfiguration
metadata:
  annotations:
    projectcalico.org/metadata: '{"creationTimestamp":"2024-06-19T01:57:00Z"}'
  creationTimestamp: "2024-06-19T01:57:00Z"
  generation: 2
  name: default
  resourceVersion: "2038"
  uid: 21df6527-8d87-442d-84b8-263b17186e37
spec:
  bpfConnectTimeLoadBalancing: TCP
  bpfHostNetworkedNATWithoutCTLB: Enabled
  bpfLogLevel: ""
  floatingIPs: Disabled
  logSeverityScreen: Debug
  reportingInterval: 0s

kubectl get -n kube-system ds calico-node -o yaml | grep -A1 -E "BPF|POOL_VXLAN|IPIP" |grep -v -E "{|Time"

--
        - name: FELIX_BPFENABLED
          value: "true"
--
        - name: CALICO_IPV4POOL_IPIP
          value: Never
        - name: CALICO_IPV4POOL_VXLAN
          value: Never
        - name: CALICO_IPV6POOL_VXLAN
          value: Never

(
calicoctl get nodes -o wide --allow-version-mismatch
calicoctl get felixconfiguration default -o yaml --allow-version-mismatch
)

NAME      ASN       IPV4                IPV6
master1   (64512)   <IP_ADDRESS>/24
master2   (64512)   <IP_ADDRESS>/24
master3   (64512)   <IP_ADDRESS>/24

apiVersion: projectcalico.org/v3
kind: FelixConfiguration
metadata:
  creationTimestamp: "2024-06-19T01:57:00Z"
  name: default
  resourceVersion: "2038"
  uid: 84fba6e4-b1e1-44b4-841d-64dce81876ec
spec:
  bpfConnectTimeLoadBalancing: TCP
  bpfHostNetworkedNATWithoutCTLB: Enabled
  bpfLogLevel: ""
  floatingIPs: Disabled
  logSeverityScreen: Debug
  reportingInterval: 0s

ls -l /var/run/calico
total 0
srw-rw---- 1 root root  0 Jun 19 09:57 bird.ctl
srw-rw---- 1 root root  0 Jun 19 09:57 bird6.ctl
drw------- 3 root root 60 Jun 19 09:57 bpf
dr-xr-xr-x 6 root root  0 Jun 19 09:55 cgroup
-rw------- 1 root root  0 Jun 19 09:57 ipam.lock

Context

Your Environment

Calico version v1.28.0
Orchestrator version (e.g. kubernetes, mesos, rkt):kubernetes(1.30.1)
Operating System and version:

cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

Linux master1 5.4.0-173-generic #191-Ubuntu SMP Fri Feb 2 13:55:07 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Link to your project (optional):

2024-06-19 02:12:07.863 [DEBUG][13926] felix/health.go 331: Calculated health summary: live=true ready=false
+---------------------------+---------+----------------+---------------------+-----------------+
|         COMPONENT         | TIMEOUT |    LIVENESS    |      READINESS      |     DETAIL      |
+---------------------------+---------+----------------+---------------------+-----------------+
| BPFEndpointManager        | -       | -              | reporting non-ready | Not yet synced. |
| CalculationGraph          | 30s     | reporting live | reporting ready     |                 |
| FelixStartup              | -       | reporting live | reporting ready     |                 |
| InternalDataplaneMainLoop | 1m30s   | reporting live | reporting non-ready |                 |
+---------------------------+---------+----------------+---------------------+-----------------+
2024-06-19 02:12:07.863 [INFO][13926] felix/health.go 336: Overall health status changed: live=true ready=false
+---------------------------+---------+----------------+---------------------+-----------------+
|         COMPONENT         | TIMEOUT |    LIVENESS    |      READINESS      |     DETAIL      |
+---------------------------+---------+----------------+---------------------+-----------------+
| BPFEndpointManager        | -       | -              | reporting non-ready | Not yet synced. |
| CalculationGraph          | 30s     | reporting live | reporting ready     |                 |
| FelixStartup              | -       | reporting live | reporting ready     |                 |
| InternalDataplaneMainLoop | 1m30s   | reporting live | reporting non-ready |                 |
+---------------------------+---------+----------------+---------------------+-----------------+

calico-node.log

calico-node-describe.log

I see that kube-proxy is running. It needs to be disabled. Can you confirm if you followed the steps in https://docs.tigera.io/calico/latest/operations/ebpf/enabling-ebpf

Felix in noe is restarting a lot due to kube-proxy in ipvs mode.
2024-06-19 02:12:07.689 [INFO][13926] felix/int_dataplane.go 1347: kube-proxy mode changed. Restart felix. ipvsIfaceState="down" ipvsSupport=false

Pls,make sure that you follow all steps when enabling ebpf including setting the config map etc.

Felix in node is restarting a lot due to kube-proxy in ipvs mode.
2024-06-19 02:12:07.689 [INFO][13926] felix/int_dataplane.go 1347: kube-proxy mode changed. Restart felix. ipvsIfaceState="down" ipvsSupport=false

Pls,make sure that you follow all steps when enabling ebpf including setting the config map etc.

@sridhartigera @tomastigera TKS, it`s working fine
after
kubectl patch ds -n kube-system kube-proxy -p '{"spec":{"template":{"spec":{"nodeSelector":{"non-calico": "true"}}}}}'

AND must reboot node, Maybe there is another better way（non-restart)?
At the beginning, I only executed kubectl patch ds -n kube-system kube-proxy -p '{"spec":{"template":{"spec":{"nodeSelector":{"non-calico": "true"}}}}}' and did not restart
working result
NAME           STATUS   ROLES           AGE   VERSION   INTERNAL-IP      EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
node/master1   Ready    control-plane   21h   v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-186-generic   containerd://1.6.33
node/master2   Ready    control-plane   21h   v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-186-generic   containerd://1.6.33
node/master3   Ready    control-plane   21h   v1.30.1   <IP_ADDRESS>   <none>        Ubuntu 20.04.6 LTS   5.4.0-186-generic   containerd://1.6.33

NAMESPACE              NAME                                             READY   STATUS    RESTARTS         AGE   IP               NODE      NOMINATED NODE   READINESS GATES
ingress-nginx          pod/ingress-nginx-controller-6f848d7788-dg7mp    1/1     Running   1 (4m16s ago)    18h   <IP_ADDRESS>    master1   <none>           <none>
ingress-nginx          pod/ingress-nginx-controller-6f848d7788-z5gz7    1/1     Running   1 (4m16s ago)    18h   <IP_ADDRESS>    master1   <none>           <none>
kube-system            pod/calico-kube-controllers-564985c589-krlm5     1/1     Running   18 (6m44s ago)   18h   <IP_ADDRESS>     master2   <none>           <none>
kube-system            pod/calico-node-9vpng                            1/1     Running   20 (3m55s ago)   21h   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/calico-node-h6z47                            1/1     Running   26 (6m44s ago)   21h   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/calico-node-pltbx                            1/1     Running   8 (4m16s ago)    21h   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/coredns-7db6d8ff4d-c26pp                     1/1     Running   3 (6m44s ago)    18h   <IP_ADDRESS>     master2   <none>           <none>
kube-system            pod/coredns-7db6d8ff4d-zqmwt                     1/1     Running   4 (3m55s ago)    18h   <IP_ADDRESS>     master3   <none>           <none>
kube-system            pod/kube-apiserver-master1                       1/1     Running   8 (4m16s ago)    21h   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-apiserver-master2                       1/1     Running   17 (6m44s ago)   21h   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-apiserver-master3                       1/1     Running   12 (3m55s ago)   21h   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kube-controller-manager-master1              1/1     Running   6 (4m16s ago)    21h   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-controller-manager-master2              1/1     Running   30 (6m44s ago)   21h   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-controller-manager-master3              1/1     Running   29 (3m55s ago)   21h   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kube-scheduler-master1                       1/1     Running   6 (4m16s ago)    21h   <IP_ADDRESS>   master1   <none>           <none>
kube-system            pod/kube-scheduler-master2                       1/1     Running   28 (6m44s ago)   21h   <IP_ADDRESS>   master2   <none>           <none>
kube-system            pod/kube-scheduler-master3                       1/1     Running   27 (3m55s ago)   21h   <IP_ADDRESS>   master3   <none>           <none>
kube-system            pod/kubelet-csr-approver-6df44c648f-kkhn7        1/1     Running   20 (3m55s ago)   18h   <IP_ADDRESS>     master3   <none>           <none>
kube-system            pod/metrics-server-758fd799ff-p6txd              1/1     Running   2 (3m55s ago)    18h   <IP_ADDRESS>    master1   <none>           <none>
kubernetes-dashboard   pod/dashboard-metrics-scraper-795895d745-vfcgj   1/1     Running   1 (4m16s ago)    18h   <IP_ADDRESS>    master1   <none>           <none>
kubernetes-dashboard   pod/kubernetes-dashboard-697d5b47c4-p9hz6        1/1     Running   2 (3m30s ago)    18h   <IP_ADDRESS>    master1   <none>           <none>

I also tried
I
kubectl -n kube-system delete ds kube-proxy  and kubectl -n kube-system delete cm kube-proxy
II
kubectl apply -f https://github.com/projectcalico/calico/blob/v3.28.0/manifests/calico-bpf.yaml
The result is the same，Maybe MUST init cluster with kubeadm init --skip-phases=addon/kube-proxy?
curl http://localhost:9099/liveness
+---------------------------+---------+----------------+---------------------+-----------------+
|         COMPONENT         | TIMEOUT |    LIVENESS    |      READINESS      |     DETAIL      |
+---------------------------+---------+----------------+---------------------+-----------------+
| BPFEndpointManager        | -       | -              | reporting non-ready | Not yet synced. |
| CalculationGraph          | 30s     | reporting live | reporting ready     |                 |
| FelixStartup              | -       | reporting live | reporting ready     |                 |
| InternalDataplaneMainLoop | 1m30s   | reporting live | reporting non-ready |                 |
+---------------------------+---------+----------------+---------------------+-----------------+

finally
I tried kubeadm init --skip-phases=addon/kube-proxy， It is indeed the most perfect, everything goes well

finally I found the way without reboot
ip link delete kube-ipvs0 :)

were you running kube-proxy in ipvs mode before switching to ebpf? If so, we don't support ipvs mode-> ebpf. Better to switch to iptables mode before moving to ebpf.

were you running kube-proxy in ipvs mode before switching to ebpf? If so, we don't support ipvs mode-> ebpf. Better to switch to iptables mode before moving to ebpf.

Got it, thanks for the reply

Closing this issue.

finally I found the way without reboot
ip link delete kube-ipvs0 :)

Thanks!!! I switched from kube-proxy with ipvs (kubekey deployed) to calico ebpf, and all of calico was going nuts, until I ran ip link delete kube-ipvs0! Reboot would also do it, true


Fix readme duplication

Removed duplicated parts of readme, also simplified some formatting.

Thanks for catching this, didn't even realize there was duplication.


[Android] setup-gradle: After canceling build - Could not read workspace metadata from C:\Users\runneradmin\.gradle\caches\transforms-4\0e69aaacf4af78f6c6c3f80936fa8b36\metadata.bin

Description
main branch: After cancelling a workflow, we encountered the following error on our next CI run
Execution failed for task ':AnkiDroid:checkPlayDebugAarMetadata'.
> A build operation failed.
      Could not read workspace metadata from C:\Users\runneradmin\.gradle\caches\transforms-4\0e69aaacf4af78f6c6c3f80936fa8b36\metadata.bin
   > Could not read workspace metadata from C:\Users\runneradmin\.gradle\caches\transforms-4\0e69aaacf4af78f6c6c3f80936fa8b36\metadata.bin

I suspect that this is an instance of https://github.com/gradle/actions/issues/71. I have done no further diagnostics and this may be related to another part of our CI

https://github.com/gradle/actions/issues/71

Workaround
We used cache-disabled: true as a temporary workaround

https://github.com/ankidroid/Anki-Android/commit/f9b7ee6818b680e9a97fd57c01e25626520578e0

Additional information
gradle/actions/setup-gradle@v3 on GitHub Actions (windows-latest).

<EMAIL_ADDRESS>(SHA:1168cd3d07c1876a65e1724114de42ccbdfa7b78)
gradle-wrapper: 8.7
gradle-home-cache-cleanup: true

setup-gradle@v3 YML
      - name: Setup Gradle
        uses: gradle/actions/setup-gradle@v3
        timeout-minutes: 5
        with:
          # Only write to the cache for builds on the 'main' branches, stops branches evicting main cache
          # Builds on other branches will only read from main branch cache writes
          # Comment this and the with: above out for performance testing on a branch
          cache-read-only: ${{ github.ref != 'refs/heads/main' }}
          gradle-home-cache-cleanup: true

The workflow on main was cancelled due to another pull request being merged

@bogdanzurac has also reported this is occurring on private repos on their company's CI [Linux]

@david-allison We've been experiencing this issue on some of our internal projects as well. While searching for this issue online, this is the only other reference I could find.
From what I can see, you're using Windows CI + updated recently to Gradle 8.7. Our CI runs Linux and Gradle 8.6/8.7 and we're also encountering the same problem. When have you first started seeing this? Does it only happen on CI or locally as well? Does it only happen when running unit tests?

https://github.com/ankidroid/Anki-Android/issues/16161#issuecomment-2051171431

Links

https://github.com/ankidroid/Anki-Android/commits/main/.github/workflows/tests_unit.yml

Workflow history (main):  https://github.com/ankidroid/Anki-Android/actions?query=branch%3Amain

Last success
Cancelled workflow
First failure

Issue

https://github.com/ankidroid/Anki-Android/issues/16161

We previously had an issue with the transform cache

https://github.com/gradle/actions/issues/47

@david-allison I'm pretty sure that cache-cleanup cannot be responsible here, since Gradle 8.7 doesn't perform any cleanup of the caches/transforms-4 directory (#47).
But to be certain, can you please remove gradle-home-cache-cleanup from your workflows, and re-enable the cache?
You may need to remove the offending cache entries, which you can see if you inspect the Job Summary here. In essence, you need to purge any entries starting with v9-gradle|Windows|unit[b9fd878989bfb04c13e5cd621616f3df].
You can delete these easily via the UI.

Thanks for the response. gradle-home-cache-cleanup disabled: https://github.com/ankidroid/Anki-Android/pull/16165.
Cache already appeared to be empty of Windows-related entries. Will let you know if there are additional failures
I mostly added this issue for documentation. Obviously happy to close if my assertions are incorrect. Thanks for your time!

Thanks for the report. This actually came up internally at Gradle today, where this error was encountered outside of the context of GitHub Actions. So your report was timely and useful.

@david-allison I'll close this issue for now. Please let us know if you see further failures with gradle-home-cache-cleanup disabled, and we can re-open it.

No failures since (thank you!), but will keep you informed and am happy to close
We'll move back to gradle-home-cache-cleanup when it's no longer experimental


Transaction verifier/validator should be generic over proof verification implementation.

Notes:

Generating proofs takes a bit of time, ideally we shouldn't have to generate proofs for most of the block producer tests
Tests should not only validate the happy path, but also the unhappy path

To support the above a test like the one bellow:
https://github.com/0xPolygonMiden/miden-node/blob/db51f392257abcf2fd5a703a15b830e4d8a5f7ab/block-producer/src/state_view/tests/verify_tx.rs#L66
Needs the ability to inject the proof verification implementation.

One approach is to change TransactionVerifier to:
/// Implementations are responsible validate a transactions' proof.
#[async_trait]
pub trait ProofValidator: Send + Sync + 'static {
    /// Method to receive a `tx` and verify its proof.
    async fn verify_tx(
        &self,
        tx: &ProvenTransaction,
    ) -> Result<(), VerifyTxError>;
}

And make DefaultStateView generic over the above (instead of implementing it itself):
pub struct DefaultStateView<S, V> {
    store: Arc<S>,
    verifier: Arc<T>,
    accounts_in_flight: Arc<RwLock<BTreeSet<AccountId>>>,
    nullifiers_in_flight: Arc<RwLock<BTreeSet<Digest>>>,
}

#[async_trait]
impl<S, T> DefaultStateView<S, T>
where
    S: Store,
    T: TransactionValidator
{
    #[allow(clippy::blocks_in_conditions)] // Workaround of `instrument` issue
    #[instrument(skip_all, err)]
    async fn verify_tx(
        &self,
        candidate_tx: &ProvenTransaction,
    ) -> Result<(), VerifyTxError> {
        self.verifier.verify(candidate_tx)?;

        /// ...
    }
}

To clarify the proposal above. I believe the initial version of the TransactionValidator trait had the purpose I'm suggesting above, but the trait's use changed when in-flight tracking was added. My proposal is to change the trait to its original use case.
The above means the in-flight changes are unit tested (which is great), and that we can inject a mock of the verifier to save on unit test time.


CMake: Build LuaJIT: use copy_if_different

Use copy_if_different to move luajit products in the post build step to
avoid relinking of projects depending on sol2/luagit.
This is mostly relevant when building sol2 and luajit as subprojects.

Good idea: thanks for submitting this!


[incubator/solr] initContainers cant resolve domain due to an issue in busybox:latest

Describe the bug
Due to an issue related to nslookup (cf. https://github.com/docker-library/busybox/issues/75 /https://github.com/docker-library/busybox/issues/48) of busybox:latest the init phase cannot resolve the zookepper adresses. According to https://github.com/docker-library/busybox/issues/48 busybox:1.28 does not include the issue. Therefore, I reckon to change the lines 70 and 97 of the statefulset.yaml to busybox:1.28
Version of Helm and Kubernetes:
Kubernetes:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T23:35:15Z", GoVersion:"go1.14.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:02:58Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
Helm:
version.BuildInfo{Version:"v3.2.1", GitCommit:"fe51cd1e31e6a202cba7dead9552a6d418ded79a", GitTreeState:"clean", GoVersion:"go1.13.10"}
Which chart:
incubator/solr
What you expected to happen:
Correct address resolution during init of containers.
How to reproduce it (as minimally and precisely as possible):
Install the helm chart
Try to resolve the zookeeper headless service.
kubectl run -i --tty busybox --image=busybox:latest -- nslookup -type=a {{ include "solr.zookeeper-service-name" . }}

I've changed the init container to this and its working like charm:
        - name: check-zk
          image: busybox:1.28
          command:
            - 'sh'
            - '-c'
            - |
                echo "Check zookeeper"
                COUNTER=0;
                while [  $COUNTER -lt 120 ]; do
                  addr=$(nslookup {{ include "solr.zookeeper-service-name" . }} | grep "Address" | awk 'NR>1 {print $3}')
                  if [ ! -z "$addr" ]; then
                    for line in $addr;
                    do
                      mode=$(echo srvr | nc $line 2181 | grep "Mode");
                      echo $mode;
                      if [ "$mode" = "Mode: leader" ] || [ "$mode" = "Mode: standalone" ]; then
                          echo "Found a leader!";
                          exit 0;
                      fi;
                    done
                fi;
                let COUNTER=COUNTER+1;
                sleep 2;
                done;
                echo "Did NOT see a ZK leader after 240 secs!";
                exit 1;


README.md: test CI, try 2

@patrickt I just made a new PR, and the appveyor and travis-ci webhooks are still there, still blocking.

Woohoo, I think I fixed this!  I had to go into the branch protection settings for the master branch and explicitly mark that the Travis and Appveyor tests are no longer required.  This now has a :heavy_check_mark:.  I'll go through the other language repos and make similar changes.

This is great! Thanks a lot! Note that it seems you also disable branch protection ... it seems I can merge this PR even though nobody approved it. Not sure we want that in the general case (or maybe it's because I'm in the 'maintainer' category?)


Updated link in line 33

Based on feedback, removed this old link and statement - (https://blogs.technet.com/b/onthewire/archive/2014/06/18/top-10-tips-for-optimising-amp-troubleshooting-your-office-365-network-connectivity.aspx) by Paul Collinge
Then, replaced the old link with this working updated link (removed the "en-us" locale) - https://docs.microsoft.com/archive/blogs/onthewire/top-10-tips-for-optimising-troubleshooting-your-office-365-network-connectivity
Resolves #694

@kelleyvice-msft - PR is ready for final review based on #694.
Thank you.
cc: @kenwith


Failed to recognize Emacs Lisp repo

Reproduce step
git clone https://github.com/emacs-elsa/Elsa
cd Elsa
ls *.el
onefetch

Show repo as Markdown repo but expect Elisp repo.

Hi @cireu,
I've just pushed a new release which added support for Elisp.
Plz try again :+1:

Nice job! :+1:


Problem with LBU instruction

Hello,
The problem appears during the lbu instruction.
With the new code ( ibex_load_store_unit.sv ) , the address is not correct.
Files provided:
Archive:  problem_with_lbu.zip
bootloader_ibex.objdump            dump of the elf file
cmd_AES_CBC_zero_riscy.log       results generated by the tracer module , for the zero_riscy
cmd_AES_CBC_ibex.log                results generated by the tracer module , for the new ibex
cmd_AES_CBC_ibex_old.log         results generated by the tracer module , for the old ibex
In the objdump file, we have:
 e60:       4741                    li      a4,16
 e62:       d43e                    sw      a5,40(sp)
 e64:       07b1                    addi    a5,a5,12
 e66:       993e                    add     s2,s2,a5
 e68:       1001f7b7                lui     a5,0x1001f
 e6c:       84f7c783                lbu     a5,-1969(a5) # 1001e84f <__bss_start+0x7>
 e70:       00b4                    addi    a3,sp,72
 e72:       c83a                    sw      a4,16(sp)
 e74:       ca02                    sw      zero,20(sp)

a5 (x15) = 0x1001f000
0x1001f000 - d1969 = 0x1001e84f
In the cmd_AES_CBC_zero_riscy.log and cmd_AES_CBC_ibex_old.log files (from the tracer module), we have:
00000e62 02f12423 sw               x15, 40(x2)         x15:00000078  x2:1001f600  PA:1001f628
00000e64 00c78793 addi             x15, x15, 12        x15=00000084 x15:00000078
00000e66 00f90933 add              x18, x18, x15       x18=1001f6c0 x18:1001f63c x15:00000084
00000e68 1001f7b7 lui              x15, 0x1001f000     x15=1001f000
00000e6c 84f7c783 lbu              x15, -1969(x15)     x15=00000001 x15:1001f000  **_PA:1001e84f_**
00000e70 04810693 addi             x13, x2, 72         x13=1001f648  x2:1001f600
00000e72 00e12823 sw               x14, 16(x2)         x14:00000010  x2:1001f600  PA:1001f610
00000e74 00012a23 sw               x0, 20(x2)           x2:1001f600  PA:1001f614

x15:1001f000 - 1969 = PA:1001e84f     =>   OK
In the cmd_AES_CBC_ibex.log, we have :
 00000e64 00c78793 addi             x15, x15, 12        x15=000000f4 x15:000000e8
 00000e66 00f90933 add              x18, x18, x15       x18=1001f730 x18:1001f63c x15:000000f4
 00000e68 1001f7b7 lui              x15, 0x1001f000     x15=1001f000
 00000e6c 84f7c783 lbu              x15, -1969(x15)     x15=00000000 x15:1001f000  PA:1001e84c
 00000e70 04810693 addi             x13, x2, 72         x13=1001f648  x2:1001f600
 00000e72 00e12823 sw               x14, 16(x2)         x14:00000010  x2:1001f600  PA:1001f610
 00000e74 00012a23 sw               x0, 20(x2)           x2:1001f600  PA:1001f614
 00000e76 02012023 sw               x0, 32(x2)           x2:1001f600  PA:1001f620

x15:1001f000 - 1969 = PA:1001e84c     =>   Error
Workaround, in the  ibex_load_store_unit.sv:
// output data address must be word aligned
// assign data_addr_w_aligned = {data_addr[31:2], 2'b00};
assign data_addr_w_aligned = {data_addr[31:0]};
// output to data interface
assign data_addr_o   = data_addr_w_aligned;
With this modification, my simulation is successful.
Remark:
I've a LSU2AHB module that can manage access bytes.
Addresses do not need to be aligned word by word.
Best regards,
jean-Louis
problem_with_lbu.zip

Hi Jean-Louis, thanks for opening this issue, could you clarify what you mean by old and new ibex?

Thanks for reporting this bug @jeanlouismaquet .
There is obviously a problem in the read data alignment for byte accesses. I will have a look and work out a fix that also works when the memory only supports word-aligned accesses. I will get back to you.

Hi @jeanlouismaquet ,
I had a look and I cannot produce this behavior with the current version of Ibex. Can you please confirm the commit ID with which you experience this behavior?

I could not reproduce the reported behavior with the current version of Ibex. I am thus closing the issue for now.


Update aws-java-sdk-dynamodb to 1.12.592

About this PR
📦 Updates com.amazonaws:aws-java-sdk-dynamodb from 1.11.1034 to 1.12.592
Usage
✅ Please merge!
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.amazonaws", artifactId = "aws-java-sdk-dynamodb" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.amazonaws", artifactId = "aws-java-sdk-dynamodb" }
}]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #516.


api_docs: Fix missing content from API documentation.

This PR fixes the missing content from API documentation. There are some places in the documentation where the content present in zulip.yaml does not appear on the page. I have posted screenshots of some of the places where I found this bug. There might be other places too.

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Awesome, thanks for working on this! @laurynmm can you review this one?

@Vector73 - Thanks for working on this issue! From the screenshots, I can see that this isn't quite what we want for a few of these missing objects in the API docs.
I've got a script I run that I use to compare the current API docs on main with changes to how the API docs are rendered in a separate branch. Here's the diff for your changes here:

Diff from main - API docs
diff -r -B -u current_api_html/create-user-group.html new_api_html/create-user-group.html
--- current_api_html/create-user-group.html	2024-06-11 15:07:58.404784132 +0200
+++ new_api_html/create-user-group.html	2024-06-11 15:08:46.748221537 +0200
@@ -373,7 +373,15 @@

Changes: Before Zulip 8.0 (feature level 198),
 the can_mention_group setting was named can_mention_group_id.

New in Zulip 8.0 (feature level 191). Previously, groups
-could be mentioned if and only if they were not system groups.

+could be mentioned if and only if they were not system groups.

can_mention_group object details:

+

+

+direct_members: (integer)[]
The list of IDs of individual users in the collection of users with this permission.

+

+

+direct_subgroups: (integer)[]
The list of IDs of the groups in the collection of users with this permission.

+

+

The ID of the user group with this permission.

diff -r -B -u current_api_html/get-events.html new_api_html/get-events.html
--- current_api_html/get-events.html	2024-06-11 15:08:05.145834509 +0200
+++ new_api_html/get-events.html	2024-06-11 15:08:52.363283126 +0200
@@ -4469,7 +4469,17 @@

New in Zulip 8.0 (feature level 191). Previously, groups
 could be mentioned if and only if they were not system groups.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

@@ -4535,7 +4545,17 @@

New in Zulip 8.0 (feature level 191). Previously, groups
 could be mentioned if and only if they were not system groups.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

@@ -5225,6 +5245,47 @@
 array.

We consider this part of the Zulip API to be unstable; it is used only for
 UI elements for administering bots and is likely to change.

+

+

+
When the bot is an outgoing webhook bot.

+

+

+
base_url: string

+
The URL the outgoing webhook is configured to post to.

+

+

+
token: string

+
A unique token that the third-party service can use to confirm
+that the request is indeed coming from Zulip.

+

+

+
interface: integer

+
Integer indicating what format requests are posted in:

+

+
1 = Zulip's native outgoing webhook format.

+
2 = Emulate the Slack outgoing webhook format.

+

+

+

+

+

+
When the bot is an embedded bot.

+

+

+
service_name: string

+
The name of the bot.

+

+

+
config_data: object

+
A "string: string" dictionary which describes the configuration
+for the embedded bot (usually details like API keys).

+

+
String describing the config data.

+

+

+

+

+

email: string

@@ -5336,6 +5397,47 @@
 array.

We consider this part of the Zulip API to be unstable; it is used only for
 UI elements for administering bots and is likely to change.

+

+

+
When the bot is an outgoing webhook bot.

+

+

+
base_url: string

+
The URL the outgoing webhook is configured to post to.

+

+

+
token: string

+
A unique token that the third-party service can use to confirm
+that the request is indeed coming from Zulip.

+

+

+
interface: integer

+
Integer indicating what format requests are posted in:

+

+
1 = Zulip's native outgoing webhook format.

+
2 = Emulate the Slack outgoing webhook format.

+

+

+

+

+

+
When the bot is an embedded bot.

+

+

+
service_name: string

+
The name of the bot.

+

+

+
config_data: object

+
A "string: string" dictionary which describes the configuration
+for the embedded bot (usually details like API keys).

+

+
String describing the config data.

+

+

+

+

+

is_active: boolean

@@ -5756,7 +5858,17 @@
 realm_create_public_stream_policy field used to control the
 permission to create public channels.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

diff -r -B -u current_api_html/get-user-groups.html new_api_html/get-user-groups.html
--- current_api_html/get-user-groups.html	2024-06-11 15:07:58.263783116 +0200
+++ new_api_html/get-user-groups.html	2024-06-11 15:08:46.605219998 +0200
@@ -380,7 +380,17 @@

New in Zulip 8.0 (feature level 191). Previously, groups
 could be mentioned if and only if they were not system groups.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

diff -r -B -u current_api_html/register-queue.html new_api_html/register-queue.html
--- current_api_html/register-queue.html	2024-06-11 15:08:04.557829975 +0200
+++ new_api_html/register-queue.html	2024-06-11 15:08:51.789276732 +0200
@@ -1335,7 +1335,17 @@

New in Zulip 8.0 (feature level 191). Previously, groups
 could be mentioned if and only if they were not system groups.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

@@ -1391,6 +1401,47 @@
 array.

We consider this part of the Zulip API to be unstable; it is used only for
 UI elements for administering bots and is likely to change.

+

+

+
When the bot is an outgoing webhook bot.

+

+

+
base_url: string

+
The URL the outgoing webhook is configured to post to.

+

+

+
token: string

+
A unique token that the third-party service can use to confirm
+that the request is indeed coming from Zulip.

+

+

+
interface: integer

+
Integer indicating what format requests are posted in:

+

+
1 = Zulip's native outgoing webhook format.

+
2 = Emulate the Slack outgoing webhook format.

+

+

+

+

+

+
When the bot is an embedded bot.

+

+

+
service_name: string

+
The name of the bot.

+

+

+
config_data: object

+
A "string: string" dictionary which describes the configuration
+for the embedded bot (usually details like API keys).

+

+
String describing the config data.

+

+

+

+

+

email: string

@@ -3584,7 +3635,17 @@
 realm_create_public_stream_policy field used to control the
 permission to create public channels.

-
The ID of the user group with this permission.

+

+
direct_members: (integer)[]

+
The list of IDs of individual users in the collection of users with this permission.

+

+

+
direct_subgroups: (integer)[]

+
The list of IDs of the groups in the collection of users with this permission.

+

+

+
The ID of the user group with this permission.

+

diff -r -B -u current_api_html/update-presence.html new_api_html/update-presence.html
--- current_api_html/update-presence.html	2024-06-11 15:07:57.613778462 +0200
+++ new_api_html/update-presence.html	2024-06-11 15:08:46.053214056 +0200
@@ -487,6 +487,70 @@

Note: The old legacy format should only be used when
 interacting with old servers. It will be removed as soon as
 doing so is practical.

+

+

+
{client_name} or "aggregated": object

+
Object containing the details of the user's
+presence.

+
Changes: Starting with Zulip 7.0 (feature level 178), this will always
+contain two keys, "website" and "aggregated", with identical data. The
+server no longer stores which client submitted presence updates.

+
Previously, the {client_name} keys for these objects were the names of the
+different clients where the user was logged in, for example website or
+ZulipDesktop.

+

+

+
client: string

+
The client's platform name.

+
Changes: Starting with Zulip 7.0 (feature level 178), this will
+always be "website" as the server no longer stores which client
+submitted presence data.

+

+

+
status: string

+
The status of the user on this client. Will be either "idle"
+or "active".

+

+

+
timestamp: integer

+
The UNIX timestamp of when this client sent the user's presence
+to the server with the precision of a second.

+

+

+
pushable: boolean

+
Whether the client is capable of showing mobile/push notifications
+to the user.

+
Not present in objects with the "aggregated" key.

+
Changes: Starting with Zulip 7.0 (feature level 178), always
+false when present as the server no longer stores which client
+submitted presence data.

+

+

+

+

+
active_timestamp: integer

+
The UNIX timestamp of the last time a client connected
+to Zulip reported that the user was actually present
+(e.g. via focusing a browser window or interacting
+with a computer running the desktop app).

+
Clients should display users with a current
+active_timestamp as fully present.

+

+

+
idle_timestamp: integer

+
The UNIX timestamp of the last time the user had a
+client connected to Zulip, including idle clients
+where the user hasn't interacted with the system
+recently.

+
The Zulip server has no way of distinguishing whether
+an idle web app user is at their computer, but hasn't
+interacted with the Zulip tab recently, or simply left
+their desktop computer on when they left.

+
Thus, clients should display users with a current
+idle_timestamp but no current active_timestamp as
+potentially present.

+

+

diff -r -B -u current_api_html/update-user-group.html new_api_html/update-user-group.html
--- current_api_html/update-user-group.html	2024-06-11 15:07:58.547785164 +0200
+++ new_api_html/update-user-group.html	2024-06-11 15:08:46.898223152 +0200
@@ -382,11 +382,27 @@

 new: object | integer required
The new group-setting value for who would
-have the permission to mention the group.

+have the permission to mention the group.

new object details:

+

+

+direct_members: (integer)[]
The list of IDs of individual users in the collection of users with this permission.

+

+

+direct_subgroups: (integer)[]
The list of IDs of the groups in the collection of users with this permission.

+

+

The ID of the user group with this permission.

 old: object | integer optional
The expected current group-setting value
-for who has the permission to mention the group.

+for who has the permission to mention the group.

old object details:

+

+

+direct_members: (integer)[]
The list of IDs of individual users in the collection of users with this permission.

+

+

+direct_subgroups: (integer)[]
The list of IDs of the groups in the collection of users with this permission.

+

+

The ID of the user group with this permission.

From that diff, it looks like there are 6 endpoints that are changed and 3 objects that are now being rendered in the docs:

get-user-groups

The rendered object description for can_mention_group makes it look like the ID of the user group is a field of the object and not an alternative to the object.

create-user-group

The rendered can_mention_group parameter description is unclear in a similar way to above in that this is either the object or the integer (both of which are described). The linked documentation page for describing the group-setting values is much clearer.

update-user-group

same issue as the create-user-group endpoint

get-events

same issue with can_mention_group as get-user-groups
the bot object services array looks okay as rendered, but could use some descriptive text adjustments for some inconsistencies. I'll put up a separate PR for that.

register-queue

same issue with can_mention_group as get-user-groups
same issue with services array as get-events

update-presence

The presences boject for this one may just need some descriptive text adjustments? From the example, it looks like the {client_name} or "aggregate" object may not be present? Does this depend on the value of slim_presence? I haven't looked at the code, so I'm not sure. Have the timestamps always been present in these objects or are they part of a API feature level change?

So the biggest issue is the can_mention_group as when it's rendered the text (both as a parameter and as a return value) is not clear in that it is either the ID integer or the object. I'd focus on making that look good in this PR, as the other two objects noted above probably need some revision of the text to fix them, and I can work on that while you're working on this.
Adding a description to the object in the GroupSettingValue schema looks like it could fix the can_mention_group return value issue:

Test of adding a description to GroupSettingValue schema

Maybe for the can_mention_group parameters, you could do something with a list template similar to the object details template:

Where the template would go

Yeah, the can_mention_group docs both as parameter and response looked really weird to me when I was working on this. So, I actually fixed it in my initial changes. I removed it from this PR because I want to discuss this issue first. Here is that screenshot:

I should have uploaded this after opening this PR. Does this look good?
Also, for response one it would be great if we could add a description to the object or we can add object: and integer: in place of the description but that might look odd?

Probably best to open discussion in #api documentation on CZO to get other folks' feedback. I think the screenshot is a bit better, but still not great. I'll note that the object template I added a few years ago with the {name} objedt details: isn't that great either.
It'd be nice to have something like the following ...
This parameter must be one of the following:

- The integer ID of the group ...

- An object with the following fields:

  - `members`: (integer)[]
     List of IDs of users ...

  - `direct`: (integer)[]
     List of IDs of users ...

OK, I have opened a discussion - https://chat.zulip.org/#narrow/stream/412-api-documentation/topic/can_mention_group.20missing.20docs/near/1823873.

@laurynmm I have fixed the rendering of can_mention_group as the parameter in:
update-user-group

create-user-group

I added a bonus commit to reorder the oneOf clause in the documentation. But generally this looks clear and complete to me; I've marked to merge once CI passes.
It's not unlikely we'll want to do some visual follow-ups on this, but I think we can do that as motivated by further feedback, as this fixes the actual bug where these key details weren't being displayed at all.

One of the backend tests failed - zerver.tests.test_openapi.OpenAPIArgumentsTest. It was due to the incorrect schema type validation in test_openapi.py:
def schema_type(
    schema: Dict[str, Any], defs: Mapping[str, Any] = {}
) -> Union[type, Tuple[type, object]]:
    if "oneOf" in schema:
        # Hack: Just use the type of the first value
        # Ideally, we'd turn this into a Union type.
        return schema_type(schema["oneOf"][0], defs)
    elif "anyOf" in schema:
        return schema_type(schema["anyOf"][0], defs)
    elif schema.get("contentMediaType") == "application/json":
        return schema_type(schema["contentSchema"], defs)
    elif "$ref" in schema:
        return schema_type(defs[schema["$ref"]], defs)
    elif schema["type"] == "array":
        return (list, schema_type(schema["items"], defs))
    else:
        return VARMAP[schema["type"]]

Only the type of the first element inside oneOf is returned in the above function - this needs a fix. For now, I have reordered the type of can_mention_group parameter in zerver/views/user_groups.py to pass the tests.

Sure, we can fix that in a folllow-up over the next week, thanks!