Assigning user assigned identity to Pool

Problem Description
To be able to user assigned identities to consume resource on Azure, I want to assign such an identity to a pool using ClousPool.Identity property. The Identity property is null and cannot be assigned because BatchPoolIdentity has only internal constructors. Is there another way to achieve this?
Steps to Reproduce
pool = batchClient.PoolOperations.CreatePool(...);
pool.Identity = new BatchPoolIdentity(PoolIdentityType.UserAssigned);
pool.Identity.UserAssignedIdentities = new List<UserAssignedIdentity>()  {   new(....)  };

Expected Results
CloudPool as a assigned managed identity and uses this to consume Azure Resource/Storage Accounts.
Actual Results
CloudPool.Identity cannot be set as BatchPoolIdentity is internal
Additonal Comments

Are you using BatchClient or BatchManagementClient? When assigning identities I believe you need to use the BatchManagementClient, the regular BatchClient will only fill in the identity information on a GET which is why is is unsettable. Identities must be set through the ARM API which is what the BatchManagementClient is using under the hood.

I am using BatchClient and no BatchManagementClient exists in the SDK and don't see the need to prevent setting Identities as the SDK supports to create pools and under the hood it just consumes the Batch Rest Api which supports setting identities. I require to create the pools dynamically on demand.

Sorry for the delayed response, I was out of the office. Give the management SDK a try:
https://www.nuget.org/packages/Microsoft.Azure.Management.Batch/
Under the hood, there are two SDK's available for Batch. The "normal" SDK uses the batch REST API, while the management SDK uses the more generalized ARM sdk. Identities can only be set using the ARM SDK due to underlying Azure Platform features. Using the management SDK will still allow you to create pools dynamically on-demand, it's just hitting a different endpoint within Azure.

Will the ability to specify a user managed identity be added to the Batch SDK?
The Batch Management SDK is not an option for our scenario because according to the documentation, administrator or coadministrator access to the subscription is required. The application that we are building must only have access to create pools (and specify their identity), not subscription-level access.

@martinjoshua As far as I know we are unable to support managed identity assignment through our data plane SDK because managed identities are a feature of Azure Resource Manager (ARM), so API calls must go through an ARM endpoint rather than directly to the Batch service endpoints.
I suspect that documentation is out of date, as "Administrator" and "Co-Administrator" are roles that predate the current Azure Active Directory RBAC system. The SDK will need the permissions required to create a Batch pool through Azure Resource Manager, and also the 'Managed Identity Operator' permission to assign a managed identity, but it shouldn't require any kind of global admin permissions to your subscription. See the list of built-in RBAC roles for more info.
I'll follow up with the team to confirm the docs are incorrect here and make sure we update them. We may just end up removing that section as there isn't any single specific role that the management SDK requires, but rather varying sets of permissions depending on what operations you perform with the SDK.

Thank you @dpwatrous for the clarification! You are correct. Once I went refactored to our code to use the Management SDK and set the appropriate permissions as you suggested, everything worked. Thanks!!
Unfortunately, switching over to the managed identity introduced a new problem: after running for ~10 minutes or so, we started receiving a 429 error when obtaining a managed identity token. This is likely caused by all the ResourceFile.FromStorageContainerUrl(...) and new OutputFileBlobContainerDestination(...) where we now include a ComputeNodeIdentityReference configured to our managed identity. Does batch do any token caching when ResourceFile and OutputFileBlobContainerDestination objects are instantiated in this manner?

@dpwatrous one idea that I had for a potential work-around the 429 issue is to use the JobStartTask to run a series of shell commands to obtain a token, then set an environment variable to a SAS generated from that token. With that, one could embed the environment variable into the containerURL when using ResourceFile.FromStorageContainerUrl(...) and new OutputFileBlobContainerDestination(...)
Unfortunately that did not work, as environment variables do not get expanded in the containerURL (like the path parameter https://github.com/Azure/Batch/issues/130)
Is there a way to force each node to cache managed identity tokens?

@martinjoshua How many files are you downloading? This is an issue that has already been fixed in the batch agent and is pending release. As a workaround for now I would suggest using:
https://docs.microsoft.com/en-us/azure/batch/resource-files#storage-container-url
And downloading files in bulk from a container with a prefix instead of using many resource files. Alternatively, you can fall back on SAS until the release happens. I will update thread when release commences.

Thanks @staer, SAS will work for now. Glad to hear that this has already been addressed!
The number of files that are downloaded varies between 10 - 30, however, there are never more than 5 ResourceFile objects to a single CloudTask; we use a prefix as much as possible. I wonder if we hit the threshold from the output files? Some tasks have a OutputFileBlobContainerDestination(...) that use a filePattern, which will sometimes match around 180 files. If these tasks were running concurrently, I can imagine us hitting the IMDS threshold. When the filePattern is used, does Batch use the same token for each file or obtain a new one every time?

Without disclosing too much about the nature of the bug itself, the batch agent uses a cache for all identity tokens however there was a case where if certain code paths happened at the same time the cache was invalidated and the IMDS endpoint would be hit in error which could cause 429's in some cases.

and yes, i suspect (without going into the code) that a filepattern would cause this bad interaction

Thank you for confirming, I will just hold tight until the next batch agent release!

Hello @staer, I noticed you said in another thread that a new version of the batch agent has been released. Does it include the bug discussed above? Thanks!

@martinjoshua Yes! I knew there is another issue that referenced this, i just couldn't find it because it was already closed :)

Ok awesome - thank you!


Question.get_instructions() still showing comment instruction when include_comment=False

Comment instruction is (correctly) removed from show_prompts() but still appearing in get_instructions:
https://www.expectedparrot.com/content/d0bf4eb4-3d30-4c88-bfd7-c239f8563593

Ah - no, this is right.  get_instructions returns the jinja2 template that has the logic for comment / code.


Whether Google sign is supported？

Whether Google sign is supported？If so, what should we do? Open a web page?

go-flutter doesn't have an implementation for that plugin. You may create one yourself.
And open a PR on https://github.com/go-flutter-desktop/plugins
The go-flutter team doesn't have the resource to implement all plugin, PLEASE help us.

Other plug-ins can also be written down. This login plug-in doesn't know where to start. Do you have an example for reference

I have shared a link in my above comment.

Which example should I look at

The go-flutter doesn't have an implementation for that plugin. You may create one yourself and open a PR on https://github.com/go-flutter-desktop/plugins
The go-flutter team doesn't have the resource to implement all plugins, PLEASE help us.
Wiki:

https://github.com/go-flutter-desktop/go-flutter/wiki/Plugin-info
https://github.com/go-flutter-desktop/go-flutter/wiki/Create-a-hover-compatible-plugin
https://github.com/go-flutter-desktop/go-flutter/wiki/Implement-a-plugin
https://github.com/go-flutter-desktop/go-flutter/wiki/GLFW-Plugin-example

Examples:

https://github.com/go-flutter-desktop/plugins

Tutorial example:

https://github.com/go-flutter-desktop/examples/tree/master/plugin_tutorial

Closing this issue because the go-flutter team will not work on this plugin.
Still,
You can report your advancement/questions in this issue.
We also have a gitter chat: https://gitter.im/go-flutter-desktop/go-flutter .


Remove the term "whitelist" from Securing your Buildkite Agent

Thanks for the suggested fixes @harrietgrace!


Update protobuf to latest version.

With the latest version we can remove clippy warning allowances.

Thanks for the review!

@wally-the-cartographer merge


[DO NOT MERGE] Hackathon: Feat/quicker building blocks experience

Description

[!TIP]
Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).
Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.

Fixes #Issue Number
or
Fixes Issue URL

[!WARNING]
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.

Automation
/ok-to-test tags=""
:mag: Cypress test results

[!CAUTION]
If you modify the content in this section, you are likely to disrupt the CI result for your PR.

Communication
Should the DevRel and Marketing teams inform users about this change?

[ ] Yes
[ ] No

Summary by CodeRabbit

New Features

Introduced a pre-push Git hook to verify changes before pushing.
Added support for creating reusable building blocks with a new UI modal and associated form.
Enabled building block management with backend service and repository support.
Added context menu option to create building blocks in the editor.

Enhancements

Adjusted Cypress Sidebar timeout for better stability.

Infrastructure

Updated GitHub Action to use the latest Ubuntu environment for builds.

/build-deploy-preview skip-tests=true

/build-deploy-preview skip-tests=true


Use new Bitbucket logo

Describe the bug
Atlassian updated their logos last September to be more abstract. The old Bitbucket logo is used for homepage links on PyPI.
To Reproduce

Visit a project whose homepage is on Bitbucket (eg. https://pypi.org/project/pager/)
Check the logo

Actual behavior
The logo is the old Bitbucket logo:

Expected behavior
The logo is the same as the current Bitbucket logo:

Additional context

https://www.atlassian.com/blog/announcements/our-bold-new-brand
https://atlassian.design/guidelines/brand/logos
https://atlassian.design/guidelines/marketing/resources/logo-files

Looks like we need to update to a newer version of "Font Awesome" and we'll get an updated logo.

Resolved.

Thanks, confirmed updated.


Use enum as flag correctly

Check PreserveFileTime when file times are initialized.

ping @vanka78bg @mbektchiev

:+1:

:+1:


Icon request: Blur

URL of the site or app (required): https://dnt.abine.com/#register
Logo resources for the icon (optional, but recommended): https://abine.com/press/

Here you go!
https://github.com/aegis-icons/aegis-icons/blob/master/SVG/Blur.svg
❓ How to add icon(s) to Aegis?


UVI Request

--- UVI JSON ---
{
  "vendor_name": "Linux",
  "product_name": "Kernel",
  "product_version": "versions from  to before v5.4.162",
  "vulnerability_type": "unspecified",
  "affected_component": "unspecified",
  "attack_vector": "unspecified",
  "impact": "unspecified",
  "credit": "",
  "references": [
    "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e5f8c43c854656897def0161ea09fc29bde33a79"
  ],
  "extended_references": [
    {
      "type": "commit",
      "value": "e5f8c43c854656897def0161ea09fc29bde33a79",
      "note": "fixed"
    }
  ],
  "reporter": "joshbressers",
  "reporter_id": 1692786,
  "notes": "",
  "description": "ASoC: SOF: Intel: hda-dai: fix potential locking issue\n\nThis is an automated ID intended to aid in discovery of potential security vulnerabilities. The actual impact and attack plausibility have not yet been proven.\nThis ID is fixed in Linux Kernel version v5.4.162 by commit e5f8c43c854656897def0161ea09fc29bde33a79. For more details please see the references link."
}
--- UVI JSON ---

This issue has been assigned UVI-2021-1002270


⚠ SceneTime has degraded performance

In 72d04c0, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1367 ms

Resolved: SceneTime performance has improved in c710370 after 17 hours, 25 minutes.


When the badge becomes small ( eg 20x20 ) , it doesnt properly display double digit numbers.

Please consider submitting the following information (if relevant):

Library setup method: file, Carthage, CocoaPods or Swift Package Manager.
Version of the library. Example: 8.0.
Xcode version. Example: 8.3.3.
OS version. Example: iOS 10.3.2.

Thanks for reporting. Do you limit the width/height of the badge view in the code to 20x20? If so, this is probably why it misbehaves. The badge view is supposed to set its own width/height based on the font size and width of the border.

Gothca, i ll try doing that.


Migration of falcosidekick into falcosecurity organization

We discussed on Slack with @kris-nova about migrating my falcosidekick into main falcosecurity organization.
For reminder, its a proxy between falco and several outputs (Slack, Teams, Datadog, ...). It's used by falco as a way to manage several outputs in a fan-out mod, each event being nicely formated for the service behind.
It's written in Golang, has a really low overload, and is accessed by http for now. It's planned to implement also a gRPC server for future gRPC client inside falco.
Some prerequisites are missing according to me :

a PR template
an issue template
a contributin guide
more code coverage

Either I migrate into falcosecurity before completing this list, either I try to complete before, tell me what's more relevant.

@Issif: There is not a label identifying the kind of this issue.
Please specify it either using /kind <group> or manually from the side menu.
In case you do not know which kind this proposal is please mention the maintainers using @team/maintainers.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

It's migrated 😄

/close

@fntlnz: Closing this issue.

In response to this:

/close

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Can be used in a findAll and findOne?

I tried something like:
models
    .Person
    .findAll({
       role: 'aRole'
    })

and configured the attribute as:
     aModelAttribute  : {
        type        : global.app.orm.Sequelize.BOOLEAN,
        defaultValue: false,
        roles       : {
          aRole: {
            get: true
          }
        }
      }

but didn't show the attribute in the results.

No, it currently only works for get and set

@mickhansen Good to confirm. There is any recommended way to accomplish that different from iterating over the results and triggering .get()?
Thanks.

Should happen automatically in most cases. JSON.stringify which most http libraries use triggers toJSON which triggers .get()

But how do I pass the role to the inner .get() from the stringify call, or something?
Right now it is not displaying the attribute, and what I need is to show it for several records at a time.
Thanks, and sorry if this is too simple or custom :(

Ah right, my mind blanked on that for a second. You will need to have a map on the array before sending a response.
this.body = results.map(result => result.get({role: 'role'}))

@mickhansen Ok thanks!


support router introduced in tornado 4.5

tornado 4.5 introduces a new routing framework which replaces the handlers stored on the app object. this pr supports both the legacy approach as well as the new router.
ref: http://www.tornadoweb.org/en/stable/routing.html

great point! let me know if that isn't what you're looking for. thanks!

Thanks! Merged + published as 0.0.4: https://pypi.org/project/tornado-transmute/


On-map warnings

It's quite common to see someone accidentally moving a node from a way quite a distance away. Here's an example from a great mapper. It usually happens in iD, and not so often in Potlatch or JOSM. I think the reason people easily miss this, is because it happens as you are moving to lower zoom levels. ID hides loaded objects as you zoom out, I suppose to avoid crashing the browser (good idea). But that also hides an error that would otherwise be quite obvious.
A possible solution: keep hiding loaded objects EXCEPT when the user has unsaved edits on the object / has edideted the object in this session.

Can you repeat the steps and record a screen capture with licecap?  I don't understand what you mean about the hiding loaded objects.

Sure, here's a recording. So i don't know exactly how people do the thing I demonstrate without noticing. My suggested solution is that the road I messed up would remain a visible vector object at the end, when one only sees PNG background layers. Posted to Imgur (it turned out 25 mb)

I took a look.. I don't see why a user would miss that they dragged that node (it seems pretty obvious), but somehow notice only after zooming out?  I think I'd rather hear a report from the user who made the edit than just guess at what they were thinking and start changing things without really understanding the root cause.
We've tried to tackle this problem before, and there's not a great way to solve it and still allow the user to make legitimate edits.   Besides, it's really easy for a user paying attention to just undo the thing they dragged.

As requested by joostschouppe, here's my input on what I believe happened:
If I have to guess, it's due to me not being careful enough when 'panning' the map. rather then 'scroll zoom', I tend to 'drag' the map sideways to move location, much like I do in CAD environments. Often that requires multiple times sliding the map to get where I want. On one of those, rather then putting cursor on a 'blank' spot (or the center or a polygon), I may actually have selected a node, and shifted that around.
Given I slid it around a few times, the obvious goofy mistake may no longer have displayed on my screen at all, thus gone unnoticed. Either way it's an oversight on my part, so I'm to blame rather then the application.
If I were to 'slide just once', I'd have caught it, with a 90% certainty. But given I probably moved 3-4 times, it was a case of 'out of sight, out of mind'.
Possible fixes/prevention, if you ask me would either involve:

Me acquiring more patience when moving around the map
A check on 'obvious outliers' after each line/polygon edit. Not sure how you'd define that (for each node N, check if the distances between nodes (N, N+1) and (N,N-1) do not exceed the distance between nodes (N-1,N+1) by a certain ratio ?)
Before 'committing' a changeset, show a graphical representation of ONLY the altered objects for approval
...

To point out the obvious: the first option seems to require the least community effort, but humans are bound to end up making the occasional mistake.

Just FYI: JOSM solves this by using the left mouse button for moving objects and the right mouse button for panning, which is actually really easy if you're used to it. I can only accidentally move if I press the wrong button, which happens sometimes due to my crappy laptop touchpad.

which is actually really easy if you're used to it

That’s a big if. 😉 At mapathons, I’ve seen new JOSM users accidentally move an entire city’s worth of nodes by panning with the wrong mouse button (or using a touchpad). It’s reasonable that JOSM uses a dedicated gesture for panning the map, given its focus on editing efficiency. By contrast, iD’s gesture handling hews more closely to standard browser/OS behavior in order to be intuitive to casual users.
Potlatch is closer in spirit to iD than JOSM is, and I think it has a sound approach for preventing accidental node moves. Potlatch requires you to click and hold for a split second before dragging a standalone POI. To move a way’s endpoint or an intersection node, you have to first click on the way to select it before you can drag the node. I don’t remember having difficulty with either of these behaviors when I started editing OSM, but of course different users have different expectations.

Before 'committing' a changeset, show a graphical representation of ONLY the altered objects for approval

I really like this idea, independently of whether it helps to avoid accidental node moves. I think an OSMCha-style graphical overview in the save screen would make it much easier to write a good changeset comment. Not sure how feasible it would be, though.

A check on 'obvious outliers' after each line/polygon edit.

I like this idea..
I've been thinking about this a bit today.  We're never going to solve the problem of users doing things without paying much attention, but we should probably find ways to expose warnings as they are editing.
A good example of this is what Excel does.   If a user is not paying attention and they drag some numbers in Excel far away from where they belong, it might show something like this ⚠

So maybe we could detect conditions like this during editing and put ⚠on their map with some hovertext and a dismiss option.
I wonder if Excel were an open source spreadsheet whether their issue tracker would also attract a lot of issues like "Nobody ever drags cell contents to the wrong place in Lotus1-2-3!  You need to prevent users from dragging cell contents!"  🤔

BTW, thanks @timcouwelier for stopping by - I do appreciate it!

And all I had to do was ask @timcouwelier nicely :)

I wonder if Excel were an open source spreadsheet whether their issue tracker would also attract a lot of issues like "Nobody ever drags cell contents to the wrong place in Lotus1-2-3! You need to prevent users from dragging cell contents!"

That's slightly of topic, so allow me to get further off topic. I understand what you're saying, but a comment like this could easily be interpreted as "leave me alone with your suggestions for improvement". For everyone who comes here to say "hmm, maybe this could be improved", there's someone saying "iD's a lost cause anyway". I feel your comment decreases the chance of the former and increases the chance of the latter. But let's not discuss that any further here.

I tend to 'drag' the map sideways to move location, much like I do in CAD environments. Often that requires multiple times sliding the map to get where I want. On one of those, rather then putting cursor on a 'blank' spot (or the center or a polygon), I may actually have selected a node, and shifted that around. Given I slid it around a few times, the obvious goofy mistake may no longer have displayed on my screen at all, thus gone unnoticed.

One of my changesets was reverted because of such a mistake, so i know that i made this mistake at least once. Maybe iD should move nodes when they are selected and moved very fast and more then half a screenfull. The node could simply snap back. Legitimate moving of nodes for half a screenfull do not happen very fast. At least not with a very fast klick and move immediately afterwards.

This comment applies here too
https://github.com/openstreetmap/iD/issues/4787#issuecomment-364979903

@bhousel
If we do it right, on-map warnings seem to have a great improvement potential for iD. Can we have a separate issue for the related discussion and revert the title of this one?
On-map warnings doesn't seem to be the full solution to the original issue. Due to the current drag behaviour, they might be generated out of view. Even if iD forces the user to inspect all warnings before saving, The user might not know where a dragged point comes from (a vertex is easier). We would need a selective undo here.
If we want to generate a warning for long distance drags, a modal one seems to be better.
Especially, because subsequent edits wouldn't be able to eliminate the warning condition, and let the on-map warning disappear automatically. Having to inspect and dismiss a on-map warning would be more overhead than confirming a modal one. And we should not teach user to ignore warnings without knowing the reason.
I have put some more ideas to address the original issue in https://github.com/openstreetmap/iD/issues/4817#issuecomment-366525733 .

I've had it happen again last saturday. This time, fortunately, it caught my eye and I was able to quickly undo it.
Based on recent experiences and working with iD, I would like to reference this part from my earlier post:

A check on 'obvious outliers' after each line/polygon edit. Not sure how you'd define that (for each node N, check if the distances between nodes (N, N+1) and (N,N-1) do not exceed the distance between nodes (N-1,N+1) by a certain ratio ?)

That would work wonders for any point on a line/polygon, except for the obvious single points and the start- and endpoints of line features.
I've done a bit of aligning and editing, and find myself shifting around nodes to reflect where a certain bend / corner / is located based on survey rather then a guesstimate from aerial imagery. While that's sometimes a 'long drag', it doesn't interfere with a rule like the above
It also got me thinking about the other cases:

On point nodes, I would assume (at first glance) a 'movement distance' check could work. Surely we do align stuff and such, but it's probably fairly unusual for point nodes to be moved over 50 (?) meters.

On the start- and end-nodes of a line feature:
If they are connected to other line features at the node, they can be considered equivalent to a 'single node' as far the checking method goes.
For the start/end nodes that aren't connected,  for the most part they'd fit in the 'node' criteria aswell, unless the lines are hugely stretched to reflect the road/path goes on further. But then again, in such cases it could just as well be done by just drawing a new line feature to reflect the extension..

Hey all, I'm actually getting really angry at this issue.   I know you are all trying to help, but none of this is helpful to me.  I'm locking the discussion and will build a warning system someday when time allows.
Until then, please just pay attention to what you are doing when you drag nodes around, and use Undo if you make a mistake.  Thanks.
Also, please don't

compare iD to JOSM and Potlatch
propose modal dialog boxes for confirmation of basic and common editing tasks
tell me how to manage my issue tracker

I opened #5905 to deal with showing on-map warnings for the new validation system. Closing this since the discussion is somewhat dated and unfocused toward the title issue, to say the least.


Upgrade chromedriver to version 98

Upgrade needed due to:
chrome-extension-pack-kogito-kie-editors: FAIL it-tests/tests/BpmnFullScreenTest.ts
chrome-extension-pack-kogito-kie-editors:   ● BpmnFullScreenTest
chrome-extension-pack-kogito-kie-editors:     SessionNotCreatedError: session not created: This version of ChromeDriver only supports Chrome version 96
chrome-extension-pack-kogito-kie-editors:     Current browser version is 98.0.4758.80 with binary path /usr/bin/google-chrome
chrome-extension-pack-kogito-kie-editors:       at Object.throwDecodedError (../../node_modules/selenium-webdriver/lib/error.js:539:15)
chrome-extension-pack-kogito-kie-editors:       at parseHttpResponse (../../node_modules/selenium-webdriver/lib/http.js:647:13)
chrome-extension-pack-kogito-kie-editors:       at Executor.execute (../../node_modules/selenium-webdriver/lib/http.js:573:28)

https://github.com/kiegroup/kie-tools/runs/5126548048?check_suite_focus=true#:~:text=27460-,chrome-extension-pack-kogito-kie-editors%3A FAIL it-tests/tests,pack-kogito-kie-editors%3A Test Suites%3A 7 failed%2C 7 total,-27497
https://github.com/kiegroup/kie-tools/pull/787

@tiagobento can you please review and approve this? This is required to fix other PRs. Thx!


[Alt 1] Flip default of reverse sync to True

While revisiting https://github.com/ansible/eda-server/pull/1061, I realized that RESOURCE_SERVER_SYNC_ENABLED is not set to True.
This will not work to do what we want.
As of https://github.com/ansible/django-ansible-base/pull/603, for any practical system (excluding test_app specifically here), we will be safe to have a True value.
For some reason, we had planned to make this change in apps like AWX / eda-server, but this doesn't make sense to me. Making this change seems like the most reasonable.

First thing I wanted to establish is that

Testing DAB Consumers / AWX (pull_request)
Testing DAB Consumers / eda-server (pull_request)

Are both passing.
We will still need https://github.com/ansible/eda-server/pull/1061 to actually use the feature, but the checks themselves don't have any coverage for it, so that's why they can pass now.

Votes were in favor of the other alternative

Another update - the other alternative is blocked because it requires more installer changes. So this is our only sensible option for now.


ELIFECYCLE error on npm run dev/prod

I came across this issue running (Git) bash and command prompt on Windows 8.1:
0 info it worked if it ends with ok
1 verbose cli [ 'c:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'dev' ]
2 info using<EMAIL_ADDRESS>3 info using<EMAIL_ADDRESS>4 verbose run-script [ 'predev', 'dev', 'postdev' ]
5 info predev<EMAIL_ADDRESS>6 info dev<EMAIL_ADDRESS>7 verbose unsafe-perm in lifecycle true
8 info<EMAIL_ADDRESS>Failed to exec dev script
9 verbose stack Error<EMAIL_ADDRESS>dev: `NODE_ENV=development DEBUG=isomorphic500 node index`
9 verbose stack Exit status 1
9 verbose stack     at EventEmitter.<anonymous> (c:\Program Files\nodejs\node_modules\npm\lib\utils\lifecycle.js:213:16)
9 verbose stack     at EventEmitter.emit (events.js:110:17)
9 verbose stack     at ChildProcess.<anonymous> (c:\Program Files\nodejs\node_modules\npm\lib\utils\spawn.js:14:12)
9 verbose stack     at ChildProcess.emit (events.js:110:17)
9 verbose stack     at maybeClose (child_process.js:1015:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
10 verbose pkgid<EMAIL_ADDRESS>11 verbose cwd c:\dev\isomorphic500
12 error Windows_NT 6.3.9600
13 error argv "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"
14 error node v0.12.2
15 error npm  v2.7.4
16 error code ELIFECYCLE
17 error<EMAIL_ADDRESS>dev: `NODE_ENV=development DEBUG=isomorphic500 node index`
17 error Exit status 1
18 error Failed at the<EMAIL_ADDRESS>dev script 'NODE_ENV=development DEBUG=isomorphic500 node index'.
18 error This is most likely a problem with the isomorphic500 package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     NODE_ENV=development DEBUG=isomorphic500 node index
18 error You can get their info via:
18 error     npm owner ls isomorphic500
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

Excerpt from output when running npm run dev:
> NODE_ENV=development DEBUG=isomorphic500 node index

'NODE_ENV' is not recognized as an internal or external command, operable program or batch file.

It looks like it's a problem with npm on Windows, as just running the intended command (NODE_ENV=development DEBUG=isomorphic500 node index) directly in bash works fine.
Just thought I'd provide some feedback concerning the issue I've encountered and the workaround, for reference purposes.
Thanks for the project, it looks well put together! (P.S. Looking forward to fluxible-router integration)

Hi @shelakel, thanks! Fluxible-router is coming soon :-)
I believe your error is because you can't set on environment variable on windows this way:
NODE_ENV=development DEBUG=isomorphic500 node index

I have no idea how it would work on windows. Maybe this could work:
SET NODE_ENV=development
SET DEBUG=isomorphic500
node index

Please try and comment with the results :+1:

Good stuff.
It seems that using Command Prompt (cmd.exe) fails to start the webpack development server.
Run: cmd.exe /C "set NODE_ENV=development && set DEBUG=isomorphic500 && node index"
Only bash works on Windows. I think opting for the webpack/react-starter scripts approach is more feasible in the long run.

@shelakel seconded. I think setting environment vars in the JS is more OS agnostic.
NODE_ENV=development DEBUG=isomorphic500 node index directly in bash did the trick for me, thanks! And thanks @gpbl for the awesome reference!

If you're interested, the following works for me (Windows 8.1). In package.json:
"dev": "node index --dev --DEBUG=isomorphic500"
Then in index.js I catch/store any flags:
var args = require('yargs').argv;

if (args.dev) process.env.NODE_ENV = 'development'; // either catch flags specifically

if (args.DEBUG) {
    process.env.DEBUG = args.DEBUG; // or just set whatever's passed in to some flag
}

// Start the server app
require("./src/server");

Thanks @davidgilbertson for the suggestion. However i'd go for setting the env vars out of the npm script.

https://www.npmjs.com/package/cross-env


Fix check indices Argsort(), Sort_values()

Hello @1e-to! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file hpat/tests/test_series.py:

Line 138:1: E265 block comment should start with '# '

@1e-to @akharche I see all tests passes. If something else needs to be done in this PR - please make a new one to address these, I hope, minor issues.
Thank you


Sub domain with trailing . fails

Great tool! One small thing...
If there is a sub domain in the input file that ends with a dot . then it gives the error File contains invalid input.
Some tools may have output with a trailing dot (something in my tool chain must have) so maybe you could strip a trailing .? Or give a more specific error in that case so the user knows what the issue couid be?

Thank you for the heads-up mate @xnl-h4ck3r !
I've fixed the issue by stripping trailing dots from subdomains in the input.


Delay after faulty login

Just out of security measures: wouldn't it be a good idea to have a 3 sec. delay after a wrong login in the backend to prevent brute force attacks?

There is an extension to do this: http://symphony-cms.com/download/extensions/view/72904/

I Never noticed this extension. Which rises the question for me: should security be handled by an extension?
Having these kind of things depend on an extension would mean that Symphony is vulnerable for these kind attacks out-of-the-box.
I see how extensions could add new functionality to Symphony, but things as security and vulnerability should in my opinion be baked into the core, just like the 'forgot password'-function is part of the core. Any thoughts on this?

Anyone? Please comment?

Which rises the question for me: should security be handled by an extension?

I don't see why not :) The level of security required for projects always varies and while I definitely agree that Symphony should be secure out of the box, additional measures like adding a delay, or forcing a certain style of password are subjective. #796 is time better spent IMO


Keys Bug +Arrow Key Support

So One Day I Install It And Ye And I Put Thee Keybind And Yea And Then i press the a and isnt work But if i press CapsLock It Says The CapsLock Is The A keybind And I Try It With The Arrow Keys And isnt work but if i write right isnt work too so Can U add Arrow Key Support And Key Fix

just press the key you want while the key selection, but dont do the text thing. Alr? If it works, say thanks.
Posted by: Cheeselma
😃


[App]: Images not appearing as a possible media key.

Current Behavior
When trying to add a panel with images across epochs, the following appears:

I'm not sure why this would be since the image files are appearing in the media folder on the web app:

Expected Behavior
Ability to add the media key (here it would be a list of images titled "prediction_visualizations"
Steps To Reproduce
No response
Screenshots
No response
Environment
OS: Windows 10
Browsers: Chrome
Additional Context
No response

@joseph-bae ,
We will take a look at this for you. Can you please provide a link to the workspace you are experiencing this issue.

Hi @joseph-bae ,
Since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!
Regards,
Mohammad


Update scio-core, scio-test to 0.11.10

Updates

com.spotify:scio-core
com.spotify:scio-test

from 0.10.4 to 0.11.10.
GitHub Release Notes - Version Diff
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.spotify" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "com.spotify" }
}]

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

Superseded by #200.


Ability to update the visibility timeout on a message.

It would be very convenient to have a method similar to consume, that allows the visibility timeout of a message to be extended. I'm imagining something like:
SQSMessage[T].extendLock(timeout: FiniteDuration): Future[Unit]

Is there a work around for this currently?

Fixed by #57  :-)


Add support for experimental classProperties Babel plugin

closes #64

thanks @jmonster!
can you add a test case for this so that we don't regress on this issue? 🙏

@Turbo87 I don't mean to neglect this PR but I had a difficult time coming up with a simple way to test this change. Could you offer any guidance for how you imagine this property being tested?
I attempted to simply use the new class syntax in a test but I believe it passed with and without the change from this PR 🤷♂

I attempted to simply use the new class syntax in a test but I believe it passed with and without the change from this PR

that would have been my idea. seems surprising that it doesn't work. do you have any idea why it works without the change?

@Turbo87 I updated this PR to have a test, but note as long as the file contains this.intl.t('js-translation'); -- even if I precede it with throw new Error("anything") or return false -- the tests pass. Removing that line, however, yields test failures.
Adding classProperties (the original change in this PR) has no effect on these tests passing/failing
Any advice how to proceed?


Fix check for internet-enable support

(The old check failed because of the -e flag)

Way better script. Don't know why /dev/null was failing for me in Catalina.


gce: add support for a premium instance type

With this, the vm_type field on the payload we get from AMQP can be set to premium to get an n1-standard-4 instead of n1-standard-2.

LGTM :sheep: :it:

@henrikhodne still look right?


🤖 Improve the alert tiles

Prompt
I am trying to prototype an Android app.
The idea of this app is simple. I want a noticeable alert from the app when a configured weather alert is triggered. For example, if there will be over 5 centimeter of snow next day, show me an alert so that I can make sure my snow blower batteries are charged, and I put the cars inside the garage so that driveway is clear for cleaning the snow next day.
Similar concept could be applied to other weather condition, however for now this is the primary use case for this app.
So, to achieve this, the app needs to allow users configure following:
Snow fall: minimum threshold to trigger the alert. for example: 3 cm.
Rain fall: minimum threshold to trigger the alert. for example: 5mm
Once these are configured use OpenWeatherMap retrofit API to periodically check using Android work manager and notify user about the alerts that catches their eye. That means the notification has to be rich notification.
In the app, for now, we can have simple tile based preview of each configured items, and it's corresponding alert status. For example, the tile (eg. Material Card) will have the following:
Alert Category - For example: Snow Fall, Rain Fall
Alert Threshold - For example: 5cm, 10mm
Current Status - Show forecast for tomorrow for respective configuration
The attached screenshot contains alert items added to the app.
Now I want to enhance this screen and make the alert item rich UX. How can I improve it using Jetpack compose?

Gemini
It's awesome you're building a weather alert app with Jetpack Compose! Here's how to enhance your alert item UX and make it more informative and engaging:
1. Visual Hierarchy and Grouping

Cards: Enclose each alert item within a Card composable. This provides visual separation and a subtle elevation, making each alert distinct.
Color: Use color to indicate alert severity. For example:

Green: No alert
Yellow: Approaching threshold
Orange: Alert active

Icons: Include icons representing the alert type (snowflake for snow, raindrop for rain). Place them prominently within the card for quick identification.

2. Detailed Information

Expandability: Make cards expandable to reveal more details when tapped. You can use AnimatedVisibility to smoothly reveal/hide the extra information.

Expanded state could show:

Forecast details (e.g., "Snow starting tomorrow afternoon, continuing through the night")
Time of alert trigger (e.g., "Expected to exceed 5cm at 6:00 PM")
Link to more detailed weather information (OpenWeatherMap or another source)

Progress Indicators: Consider using a LinearProgressIndicator to visually represent how close the current forecast is to the threshold. This gives users a quick sense of urgency.

3. Customization Options

Threshold Sliders: Replace simple text input with sliders for setting thresholds. This allows for more intuitive and interactive adjustment.
Alert Tone Selection:  Let users choose specific notification sounds for each alert type.
Quiet Hours: Implement "Do Not Disturb" periods to silence alerts during specified times.

4. Animations and Micro-interactions

Ripple Effect: Add a ripple effect (Modifier.clickable) to the cards to provide visual feedback on touch.
Transition Animations: Use AnimatedContent to smoothly transition between the collapsed and expanded states of the card.

Example Code Snippet (Illustrative)
@Composable
fun AlertItem(alert: AlertData) {
    var expanded by remember { mutableStateOf(false) }
    Card(
        modifier = Modifier
            .fillMaxWidth()
            .padding(8.dp)
            .clickable { expanded = !expanded },
        elevation = CardDefaults.cardElevation(defaultElevation = 2.dp)
    ) {
        Column(modifier = Modifier.padding(16.dp)) {
            Row(verticalAlignment = Alignment.CenterVertically) {
                Icon(
                    imageVector = if (alert.type == AlertType.SNOW) Icons.Filled.Snowflake else Icons.Filled.WaterDrop,
                    contentDescription = null,
                    tint = alert.color // Color based on severity
                )
                Spacer(modifier = Modifier.width(8.dp))
                Text(
                    text = "${alert.type.name}: ${alert.threshold} ${alert.unit}",
                    style = MaterialTheme.typography.headlineSmall
                )
            }
            AnimatedVisibility(visible = expanded) {
                Column {
                    // ... More details like forecast, time, link, etc.
                }
            }
        }
    }
}

Important Considerations

Accessibility: Ensure your UI elements have proper content descriptions and are usable with screen readers.
Testing: Thoroughly test your UI on different screen sizes and devices.

By incorporating these Jetpack Compose features and UX best practices, you'll create a weather alert app that is not only functional but also visually appealing and user-friendly. Good luck!

ChatGPT Free
To improve the UX of the alert item tiles in your app using Jetpack Compose, you can focus on better visual hierarchy, interactivity, and data clarity. Below are some suggestions and their implementation ideas:

1. Enhance Visual Hierarchy

Typography: Use different font sizes, weights, and colors to distinguish the alert category, threshold, and forecast.
Icons: Add category-specific icons (e.g., snowflake for Snow Fall, raindrop for Rain Fall) for better recognition.

Example
@Composable
fun AlertItem(
    icon: ImageVector,
    category: String,
    threshold: String,
    currentStatus: String
) {
    Card(
        modifier = Modifier
            .fillMaxWidth()
            .padding(8.dp),
        elevation = 4.dp,
        shape = RoundedCornerShape(12.dp)
    ) {
        Row(
            modifier = Modifier
                .padding(16.dp)
                .fillMaxWidth(),
            verticalAlignment = Alignment.CenterVertically
        ) {
            Icon(
                imageVector = icon,
                contentDescription = null,
                tint = MaterialTheme.colorScheme.primary,
                modifier = Modifier.size(48.dp)
            )
            Spacer(modifier = Modifier.width(16.dp))
            Column(
                modifier = Modifier.weight(1f)
            ) {
                Text(
                    text = category,
                    style = MaterialTheme.typography.titleMedium,
                    color = MaterialTheme.colorScheme.onSurface
                )
                Text(
                    text = "Threshold: $threshold",
                    style = MaterialTheme.typography.bodySmall,
                    color = MaterialTheme.colorScheme.onSurfaceVariant
                )
                Text(
                    text = "Tomorrow: $currentStatus",
                    style = MaterialTheme.typography.bodyLarge,
                    color = MaterialTheme.colorScheme.secondary
                )
            }
            Icon(
                imageVector = Icons.Default.ArrowForward,
                contentDescription = null,
                tint = MaterialTheme.colorScheme.onSurface
            )
        }
    }
}

2. Add Color Coding for Alerts

Use color to visually differentiate between statuses (e.g., green for no alert, red for alert triggered).
Apply subtle gradients or shadows to make tiles more engaging.

3. Interactive Features

Add a details button or swipe gestures to configure or delete an alert directly from the card.
Include toggle switches or chip-style options for quick actions (e.g., enable/disable alerts).

4. Use Animations

Animate changes in forecast or alert status (e.g., subtle color transition for background when an alert is triggered).
Add a ripple effect for tile clicks.

Example
@Composable
fun AnimatedAlertItemBackground(isAlertActive: Boolean) {
    val backgroundColor by animateColorAsState(
        targetValue = if (isAlertActive) Color.Red else Color.White,
        animationSpec = tween(durationMillis = 500)
    )
    Box(
        modifier = Modifier
            .fillMaxWidth()
            .background(backgroundColor)
    ) {
        // Content here
    }
}

5. Enrich Data Presentation

Show additional information, such as the day and time of the alert, in a visually compact way.
Use a progress bar or a graph to show trends (e.g., expected snowfall over the next 3 days).

6. Material 3 Design Enhancements

Leverage Material Design 3 components like Card, Icon, and Chip.
Make use of Material's light and dark themes to improve readability and accessibility.

Updated Preview Design
You can integrate all of these into the main screen for a richer layout:
@Composable
fun WeatherAlertsScreen(alerts: List<AlertItemData>) {
    LazyColumn(
        modifier = Modifier
            .fillMaxSize()
            .background(MaterialTheme.colorScheme.background)
            .padding(16.dp)
    ) {
        items(alerts) { alert ->
            AlertItem(
                icon = alert.icon,
                category = alert.category,
                threshold = alert.threshold,
                currentStatus = alert.currentStatus
            )
        }
    }
}

Would you like a detailed implementation or more ideas?

Used combination of things to get it https://github.com/hossain-khan/android-weather-alert/pull/36


[BUG] The Prometheus monitoring chart become empty after staying on dashboard page for a period of time

Describe the bug

This issue originate and continue the tracking in #1531
After staying on the dashboard page for a period of time (e.g 20 minutes)

The Prometheus monitoring chart become empty

Click the Reload can't recover it back

The only workaround is to refresh the page, but put it to idle for another period of time, the monitoring chart become empty again

To Reproduce
Steps to reproduce the behavior:

Prepare a one v1.0.1 harvester cluster
Open the Dashboard page
Create a virtual machine
Put the VM metrics page to monitor the chart display status
Put the dashboard page to monitoring the chart display status

Expected behavior

Prometheus monitoring chart on dashboard page should always keep display the change without becoming empty.
Support bundle

supportbundle_e54fcdb3-17f5-42ad-a748-3d51e3afc40a_2022-03-14T06-38-28Z.zip
Environment:

Harvester ISO version: v1.0.1
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630): 1 node harvester on local kvm

Additional context
Add any other context about the problem here.

The Prometheus pod running as expected, the node-exporter pod did not restart
rancher@harvester-node-2:~> sudo -i kubectl get pods -n cattle-monitoring-system
NAME                                                     READY   STATUS    RESTARTS   AGE
prometheus-rancher-monitoring-prometheus-0               3/3     Running   0          4h52m
rancher-monitoring-grafana-d9c56d79b-kcjwh               3/3     Running   0          4h52m
rancher-monitoring-kube-state-metrics-5bc8bb48bd-49l2q   1/1     Running   0          4h52m
rancher-monitoring-operator-559767d69b-sq58h             1/1     Running   0          4h52m
rancher-monitoring-prometheus-adapter-8846d4757-d65xh    1/1     Running   0          4h52m
rancher-monitoring-prometheus-node-exporter-d7xsn        1/1     Running   0          4h52m
rancher-monitoring-prometheus-node-exporter-lxrrv        1/1     Running   0          4h24m
rancher-monitoring-prometheus-node-exporter-pspnn        1/1     Running   0          4h39m

Use the default monitoring setting

The VM metrics display correctly without empty

Thanks for the reproduced information, I can reproduce it by the following steps:
To Reproduce

Prepare a harvester
Go to the dashboard page, and observe the metircs, it will work as expected.
Scale-down cattle-monitoring-system/rancher-monitoring-grafana of deployment to 0.
Failed to load graph banner will show in metrics tab.
Scale-up cattle-monitoring-system/rancher-monitoring-grafana of deployment to 0.
Click reload button

Expected behavior
The metrics graph should reload and work as expected.
Additional context
https://<IP_ADDRESS>:8005/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/dashboards/uid/rancher-cluster-nodes-1 throw an error: Dashboard not found

#2043 may be related too, please take a look, thanks.

The fresh failed bug have been fixed in the latest harvester UI.

While we put harvester cluster idle for about 30 minutes, the Prometheus monitoring chart still become empty.
Since the original symptom still exits thus I would suggest moving to implement for further investigation

A good news is we can use Reload button to recover it back.
Support Bundle
supportbundle_e31ad37b-b0e3-4404-97ac-febf66b6ac2f_2022-04-27T14-27-43Z.zip

While checking the support-bundle, I reproduced this issue:
Env: single-node harvester, one guest VM (simplest cirros, webVNC in command: top)
1. The metrics
One web-page in VM- VM Metrics, it became blank in about 30 minutes

One web-page in Cluster-metrics

2. nginx log
except http code 200, 304, there are only code 499
for  d/harvester-vm-detail-1

<IP_ADDRESS> - - [28/Apr/2022:09:10:00 +0000] "GET /api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/datasources/proxy/1/api/v1/query_range?query=irate(kubevirt_vmi_storage_iops_read_total%7Bnamespace%3D%22default%22%2C%20name%3D%22vm2%22%7D%5B5m%5D)&start=1651133400&end=1651137000&step=60 HTTP/2.0" 499 0 "https://<IP_ADDRESS>/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/harvester-vm-detail-1/harvester-vm-info-detail?orgId=1&kiosk&from=now-1h&to=now&refresh=10s&var-namespace=default&var-vm=vm2&theme=light" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" 234 0.008 [cattle-system-rancher-80] [] <IP_ADDRESS>:80 0 0.008 - ba442fb2d0b57903d2da104441b389bd

for  d/rancher-cluster-nodes-1

<IP_ADDRESS> - - [28/Apr/2022:09:33:23 +0000] "GET /api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/datasources/proxy/1/api/v1/query_range?query=1%20-%20sum(node_memory_MemAvailable_bytes%20OR%20windows_os_physical_memory_free_bytes)%20by%20(instance)%20%2F%20sum(node_memory_MemTotal_bytes%20OR%20windows_cs_physical_memory_bytes)%20by%20(instance)%20&start=1651134780&end=1651138380&step=60 HTTP/2.0" 499 0 "https://<IP_ADDRESS>/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-nodes-1/rancher-cluster-nodes?orgId=1&kiosk&from=now-1h&to=now&refresh=30s&theme=light" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" 311 0.008 [cattle-system-rancher-80] [] <IP_ADDRESS>:80 0 0.008 - d7a6c8cbea43fb3b35d4c807e64b4c93

3. Prometheus/Grafana: only grafana-sc-dashboard  report: Reason: Expired: too old resource version: 3949 (482030)
$ kubectl logs -n cattle-monitoring-system rancher-monitoring-grafana-d9c56d79b-zqgjb grafana-sc-dashboard

[2022-04-28 08:23:48] Starting collector

[2022-04-28 08:23:53] Working on ADDED configmap cattle-dashboards/rancher-monitoring-persistentvolumesusage
[2022-04-28 09:22:14] ApiException when calling kubernetes: (410)

Reason: Expired: too old resource version: 3949 (482030)

[2022-04-28 09:22:20] Working on ADDED configmap cattle-dashboards/rancher-monitoring-apiserver
[2022-04-28 09:22:20] Contents of apiserver.json haven't changed. Not overwriting existing file

Summary: Need to continue investigate those 2 directions:

Both cluster-metrics and vm-metrics logged http code 499 (client shut off in the middle of processing), but cluster-metrics was alive, vm-metrics was broken.  (The "Reload" can solve it)

grafana-sc-dashboard reported "too old resource version: 3949 (482030)"

@n313893254 @WuJun2016
abstracted logs:
2150-recheck-2804.txt

Another point needs to be checked:
When "Reload" vm metrics, and select range "1h", the "network traffic" has history data, but IO does not.

Coparing: force-refresh cluster metrics, it has all history data.

Is it possible:
Front VM metrics encountered error in "IO" related part, and actively closed the VM metrics? @n313893254

cluster-metrics also became blank,  but the "reloaded" vm-metrics keeps working

the  grafana-sc-dashboard reported a new Expired: too old resource version: 3967 (515909)
 kk logs -n cm rancher-monitoring-grafana-d9c56d79b-zqgjb grafana-sc-dashboard:

[2022-04-28 10:18:49] ApiException when calling kubernetes: (410)
Reason: Expired: too old resource version: 3967 (515909)

[2022-04-28 10:18:54] Working on ADDED configmap cattle-dashboards/rancher-monitoring-k8s-resources-cluster
[2022-04-28 10:18:54] Contents of k8s-resources-cluster.json haven't changed. Not overwriting existing file

2150-recheck-2804-2.txt
There are tens of http 499 code,  with both vm-metrics and cluster-metrics.
most closing to 10:18:
<IP_ADDRESS> - - [28/Apr/2022:10:10:36 +0000] "GET /api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/datasources/proxy/1/api/v1/query_range?query=sum(rate(node_network_transmit_errs_total%7Bdevice!~%22lo%7Cveth.*%7Cdocker.*%7Cflannel.*%7Ccali.*%7Ccbr.*%22%7D%5B240s%5D))%20by%20(instance)%20OR%20sum(rate(windows_net_packets_outbound_errors_total%7Bnic!~%27.*isatap.*%7C.*VPN.*%7C.*Pseudo.*%7C.*tunneling.*%27%7D%5B240s%5D))%20by%20(instance)&start=1651137000&end=1651140600&step=60 HTTP/2.0" 499 0 "https://<IP_ADDRESS>/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-nodes-1/rancher-cluster-nodes?orgId=1&kiosk&from=now-1h&to=now&refresh=30s&theme=light" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" 381 0.012 [cattle-system-rancher-80] [] <IP_ADDRESS>:80 0 0.012 - 6fa41c7c46fde829170ba23bc687cad9

<IP_ADDRESS> - - [28/Apr/2022:10:25:34 +0000] "GET /api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/api/datasources/proxy/1/api/v1/query_range?query=1%20-%20(sum(node_filesystem_free_bytes%7Bdevice!~%22rootfs%7CHarddiskVolume.%2B%22%7D%20OR%20windows_logical_disk_free_bytes%7Bvolume!~%22(HarddiskVolume.%2B%7C%5BA-Z%5D%3A.%2B)%22%7D)%20by%20(instance)%20%2F%20sum(node_filesystem_size_bytes%7Bdevice!~%22rootfs%7CHarddiskVolume.%2B%22%7D%20OR%20windows_logical_disk_size_bytes%7Bvolume!~%22(HarddiskVolume.%2B%7C%5BA-Z%5D%3A.%2B)%22%7D)%20by%20(instance))&start=1651137900&end=1651141500&step=60 HTTP/2.0" 499 0 "https://<IP_ADDRESS>/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/d/rancher-cluster-nodes-1/rancher-cluster-nodes?orgId=1&kiosk&from=now-1h&to=now&refresh=10s&theme=light" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36" 465 0.037 [cattle-system-rancher-80] [] <IP_ADDRESS>:80 0 0.036 - 979bc2daee2259b16c73db8be9826c7f

It looks following logs need to be analyzed first.
grafana-sc-dashboard
...
[2022-04-28 10:18:49] ApiException when calling kubernetes: (410)
Reason: Expired: too old resource version: 3967 (515909)

maybe related:
https://github.com/kiwigrid/k8s-sidecar/issues/85
The version used in Harvester:
                "image": "rancher/mirrored-kiwigrid-k8s-sidecar:1.12.3",
                "imagePullPolicy": "IfNotPresent",
                "name": "grafana-sc-dashboard",

Analysis of ApiException when calling kubernetes: (410):
grafana-sc-dashboard ( rancher/mirrored-kiwigrid-k8s-sidecar:1.12.3 ) watches configmap in namespace cattle-dashboards, when content is changed, it writes to files in /tmp/dashboards, which are further fetched by grafana.
ApiException when calling kubernetes: (410) Reason: Expired: too old resource version: 3967 (515909)  means the time out of watching API Server,  happens every 30~60 minutes. The sidecar re-watch after time out. Following logs showes that, it gets new data from API Server, but after comparing data, it assumes same and Not overwriting existing file.
https://github.com/kiwigrid/k8s-sidecar/blob/master/src/helpers.py#L68
[2022-04-28 10:18:54] Working on ADDED configmap cattle-dashboards/rancher-monitoring-k8s-resources-cluster
[2022-04-28 10:18:54] Contents of k8s-resources-cluster.json haven't changed. Not overwriting existing file

For now, ApiException when calling kubernetes: (410) looks not bringing harm. @n313893254

A further test with  screen recording.
22:40 started with 3 web-page: Harvester cluster metrics, Harvester VM metrics,  Grafana VM metrics

all good

22:57  Harvester VM metrics suddenly disappeared

remaing 2:

23:03 Harvester cluster metrics suddenly disappeared

Summary:
Grafana direct UI of VM metrics worked all the time.
The "embedded?" metrics in Harvester cluster and Harveter VM, disappeared suddenly in different time, and did not reload back automatically.  Need further investigation.   cc @n313893254

Another detail:
In the screening, at 23:30,  Grafana "memory" reported "no data"

After only about 8 secods, it recovered.

Hi， @w13915984028  I solved part of the problem by fixing the frontend, which tries to reload the chart when it fails to load.
There is no way to consistently reproduce the causes of this problem.  I found that the frontend charts failed to load because the requests sent all failed and did not return any http status codes or error messages.
a similar situation can be reproduced as follows:

kubectl -n cattle-monitoring-system edit deploy rancher-monitoring-grafana
change spec.replicas: 0
when the chart load fails,  change spec.replicas: 1 ,  the chart will load automatically after a while.

Hi， @w13915984028  Can you help to try to find the reason why api requests may fail at intervals and without any hint?
I think an issue can be recreated to track api request failures if needed。


Updated Readme based on Chris feedback

https://trello.com/c/DO5Cyc2A/92-readme-changes-based-on-chris-feedback

Thanks @diana-lakatos


@orta => [Fair Map] Fix disappearing callout view on iOS 8.

Separate the various map subviews that use a mix of frame
and Auto Layout code from the scroll view, by moving them
all into a single container view, as per:
https://developer.apple.com/library/ios/releasenotes/General/RN-iOSSDK-6_0/index.html
Fixes #40.

Because I’m not sure if it makes sense to always use a container view and because it would break the API, I did not yet move this into NAMapKit. Any thoughts on this?

:+1:

great investigative work!

@orta Thanks! :bow:


fix(bridge-ui-v2): facilitate reset of recipient address back to sender address

Hey :)
I just changed the bridge interface a bit. You know how sometimes you set a custom recipient address for your tokens and then want to switch back to your sender address? Before, you'd have to copy and paste your own sender address back in which is a bit of a hassle.
Now with this fix if you want to reset the recipient address to your own, just hit the little 'x' in the address field to clear it out, and then click 'Confirm'. It'll automatically set the recipient address back to the default, which is your sender address.

Click the 'x' to clear the custom address:

Then hit 'Confirm' to reset to your default address:

And now you recipient address gets reset!

@shak58 valid point regarding the "reset", but "confirming" an empty input to reset something is not the correct behaviour. Also cancelling a modal should not "confirm" it.
Please create an issue describing your feature and we might look into adding a "reset" functionality in the future, but this is just a workaround.


Remove unncessary doubled map check

These double checks can usually be simplified by removing the explicit check, as the contains check is nothing but a get() != null check.
... If accepted and plausable, I could also go over the other double checks

Good catch, thanks :)


Use dedicated names per Maven Module

This eases debugging as otherwise something like this is emitted in the log
[INFO] Reactor Summary for Context-Aware Configuration Editor 1.15.9-SNAPSHOT:
[INFO]
[INFO] Context-Aware Configuration Editor ................. SUCCESS [ 3.475 s]
[INFO] Context-Aware Configuration Editor ................. FAILURE [ 0.815 s]
[INFO] io.wcm.caconfig.editor.package ..................... SKIPPED [INFO] Context-Aware Configuration Editor ................. SKIPPED

thx - i've adapted the names a bit:

use no suffix for main bundle artifact (the name is also visible in osgi console, artifact managers etc.)
adapt the other names for consistency with the other repos


Create more tests with exernal crates

Problem
Currently there are no tests for intercrate functionality. So we don't know what would happen for example, if a user implements a method on a foreign type.
Solution
Add more tests for intercrate functionality.
Alternatives considered

Additional context

@f01dab1e Feel free to take this on

@kevaundray, #2216 did not add tests for this, does it make sense to add?


[WFRP4e System] Maximum Depth Error on Rerolls

Characters seem only able to reroll once using fortune (fine) and once using a dark deal before getting a maximum depth reached error.  If I reroll with just a dark deal I can reroll twice and then I hit the error.  If rerolling using a dark deal it adds the corruption even if the error occurs - but fails to reroll.
Once the error has happened I can't even roll a d100 and edit the roll or the SL level.
In opposed test I will occasionally get the error after 1 reroll from any source.
I have tested this on a test world with only the wfrp system loaded & on a test world with the wfrp system, core, TEW 1&2, Archives, & middenhiem modules loaded and initialised - it makes no difference.
From: Fliptop_23#5121 or<EMAIL_ADDRESS>3.6.1wfrp4e-archives1: 1.0.1wfrp4e-core: 1.3.5wfrp4e-dotr: 1.0.1wfrp4e-eis: 1.2.4wfrp4e-middenheim: 1.0.1wfrp4e-rnhd: 1.4.3

Maximum Depth Error.log
Attached Log

localhost-1622177258101.log
Attached a second log from an event tonight during testing (of something different) where maximum depth was reached on the first reroll of the session

Also ran on the same issue today


How to split ttc to ttf

Hello forks.
How to use this tool to convert ttc into ttf ?
There's an online tool at https://transfonter.org/ttc-unpack that can split ttc into multiple ttf.

you can use ttx command line tool with the -y option for each sub-font in the ttc file to extract .ttx (XML) files for each of the sub-fonts, then again the ttx tool to recompile the .ttx files to individual binary font files.
Or you could use a script like this one:
from fontTools.ttLib.ttCollection import TTCollection
import os
import sys

filename = sys.args[1]
ttc = TTCollection(filename)
basename = os.path.basename(filename)
for i, font in enumerate(ttc):
    font.save(f"{basename}#{i}.ttf")

next time please use https://github.com/fonttools/fonttools/discussions to ask questions instead of filing an issue.


experiment with CI to fix #249

🤔 What's changed?
Changed .NET SDK being used.
⚡ What's your motivation?
Try to find a fix for #249
🏷 What kind of change is this?

:book: Documentation (improvements without changing code)
:bank: Refactoring/debt/DX (improvement to code design, tooling, etc. without changing behaviour)
:bug: Bug fix (non-breaking change which fixes a defect)
:zap: New feature (non-breaking change which adds new behaviour)
:boom: Breaking change (incompatible changes to the API)

♻ Anything particular you want feedback on?

📋 Checklist:

[ ] I've changed the behaviour of the code

[ ] I have added/updated tests to cover my changes.

[ ] My change requires a change to the documentation.

[ ] I have updated the documentation accordingly.

[ ] Users should know about my change

[ ] I have added an entry to the "[vNext]" section of the CHANGELOG, linking to this pull request & included my GitHub handle to the release contributors list.

This text was originally taken from the template of the Cucumber project, then edited by hand. You can modify the template here.

this does not seem to work... closing it


benchmark sendToChannel vs emit

Do we have benchmarks of sendToChannel vs emit?  I see a huge performance penalty while running a load test. with emit I can ingest and emit around 14K messages/sec, while with sendToChannel, I can send about 300 messages/sec. I am using with context. This seems to be a very drastic difference...

Ok, I am tweaking some code, but emit is still way faster than sendToChannel

Thanks for the link! I didn’t notice it. I will compare the numbers. I’ll close this for now.


fix: Fix Importance.Max

Importance.max is not defined.
Correct way is Importance.Max
Description
This pull request fixes sample code for setting importance level in Android Notification Channel
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]).
This will ensure a smooth and quick review process. Updating the pubspec.yaml and changelogs is not required.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[ ] My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
[ ] All existing and new tests are passing.
[x] I updated/added relevant documentation (doc comments with ///).
[ ] The analyzer (flutter analyze) does not report any problems on my PR.
[ ] I read and followed the Flutter Style Guide.
[ ] I signed the CLA.
[ ] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Does your PR require plugin users to manually update their apps to accommodate your change?

[ ] Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
[x] No, this is not a breaking change.

@googlebot I signed it!


Remove backwards compatibility for interaction kind and interaction_type

The front end has been updated now.

Codecov Report

Merging #544 into develop will decrease coverage by <.01%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop     #544      +/-   ##
===========================================
- Coverage    96.53%   96.53%   -0.01%
===========================================
  Files          130      130
  Lines         3894     3893       -1
  Branches       353      353
===========================================
- Hits          3759     3758       -1
  Misses          92       92
  Partials        43       43

Impacted Files
Coverage Δ

datahub/search/interaction/serializers.py
100% <0%> (ø)
:arrow_up:

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 ae52b65...b533e01. Read the comment docs.


EXC_BAD_ACCESS

OS
sw_vers
Mac OS X
ProductVersion:	10.12.6
BuildVersion:	16G29
pod --version
1.2.0
Hi, I get the following error messages when I build and run gRPC in XCode.
Wuld you guys know how to fix this?
Thanks

I am also experiencing this when running on actual iOS device.

Sorry for missing this issue. I am closing the issue since it is so stale, but do let us know if it still happens and we will help.


systemd-memcached-wrapper spamming syslog, and high CPU

I noticed suddenly that my /var/log/syslog got massive.
This is what I saw:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 Read binary protocol data:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x80 0x00 0x00 0x19
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x19
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ <35    0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 GET episodecalendar:top_shows
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35 Writing bin response:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x81 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x04 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x02 0xf2
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ >35   0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 Read binary protocol data:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x80 0x00 0x00 0x22
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x22
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ <35    0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 GET episodecalendar:recently_favorited
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35 Writing bin response:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x81 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x04 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x0f 0x01
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ >35   0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 Read binary protocol data:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x80 0x00 0x00 0x21
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x21
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ <35    0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <35 GET episodecalendar:system_message/v2
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35 Writing bin response:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x81 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x04 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x03 0xe6
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >35   0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ >35   0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33 Read binary protocol data:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33    0x80 0x00 0x00 0x2a
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33    0x00 0x00 0x00 0x2a
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33    0x00 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: message repeated 2 times: [ <33    0x00 0x00 0x00 0x00]
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: <33 GET episodecalendar:user_49379_unwatched_count
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >33 Writing bin response:
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >33   0x81 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >33   0x04 0x00 0x00 0x00
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >33   0x00 0x00 0x00 0x09
Apr  6 13:25:41 episodecalendar systemd-memcached-wrapper[27413]: >33   0x00 0x00 0x00 0x00

Writing about this many messages per second.
Is this intended behaviour? The syslog grows a few gigabyte every hour :O
I don't have a big site, about 50 online users on average. Restarting memcached didn't help.
Here's the current stats after 1 hour of running:
STAT pid 27413
STAT uptime 2489
STAT time<PHONE_NUMBER>
STAT version 1.4.25 Ubuntu
STAT libevent 2.0.21-stable
STAT pointer_size 64
STAT rusage_user 90.780000
STAT rusage_system 398.720000
STAT curr_connections 10
STAT total_connections 1149
STAT connection_structures 11
STAT reserved_fds 20
STAT cmd_get 111725
STAT cmd_set 18436
STAT cmd_flush 1
STAT cmd_touch 0
STAT get_hits 94354
STAT get_misses 17371
STAT delete_misses 4869940
STAT delete_hits 230
STAT incr_misses 0
STAT incr_hits 0
STAT decr_misses 0
STAT decr_hits 0
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 428749210
STAT bytes_written 235427481
STAT limit_maxbytes<PHONE_NUMBER>
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT time_in_listen_disabled_us 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT malloc_fails 0
STAT bytes 8869096
STAT curr_items 11874
STAT total_items 18436
STAT expired_unfetched 3583
STAT evicted_unfetched 0
STAT evictions 0
STAT reclaimed 4818
STAT crawler_reclaimed 0
STAT crawler_items_checked 0
STAT lrutail_reflocked 0
END

As far as I know systemd-memcached-wrapper is not shipped by this project, but it is probably something from your distribution. Can you check its content? It seems like memcached is started with -vv or similar (forcing it to log everything it does basically).

Oh I see. Sorry about that :) I'll try to find the correct distribution. And thanks for the verbose tip.

@kg-currenxie I am not authoritative to provide answers in this repo, was only trying to help :) Please check the content of the systemd-memcached-wrapper file (you probably will find the path doing systemctl cat memcached or similar) and then you can probably see if a -vv is there and remove it. It is a bit weird that these are the default settings for a start script though..

Had the same issue and the culprit was the -vv line. It outputs all the binary data from memcached. Comment that line out and that's all. It's such a relief!


Move all tests to pytest style, extract datastore storage and broadcast queue

@waprin do you mind reviewing?

Coverage remained the same at 100.0% when pulling<PHONE_NUMBER>88e055a1d2683b3b21ba3ffa65df6b on pytest into 3fdbf7453cd5587505ce27b00022e69a3fb49721 on master.

LGTM

WIll address remaining comments tomorrow before merging. Thanks. :)

Coverage remained the same at 100.0% when pulling 396c031c09f78c18894c35e2514c29301cd3d53d on pytest into 3fdbf7453cd5587505ce27b00022e69a3fb49721 on master.


OSD device formatting fails randomly

When launching an OSD container the ceph-disk prepare is failing (randomly it seems). This requires that the OSD is stopped, the disk zapped and then prepared outside of the container

what do you think of a script that does zap and ceph-disk prepare repeated on the devices until they are properly prepared? we do this before running the ceph-osd container. Or would it make sense to add it to the container's script to zap and retry if prepare failed?

The latter feels a bit like a nasty hack to work around a bug.
Could try a small script that runs and tests the prep though. Perhaps it could be run as an init-container before the OSD starts?

Would be interested to see if 10.2.3 fixes this...

This is a peculiar behaviour really. On ubuntu, it never fails, but once ceph-disk is ran in a container (CoreOS), that's when we get the issue. Yeah, maybe 10.2.3 might have a fix.

An interesting experiment... instead of using the latest "Ubuntu 14.04" image could try Fedora or Ubuntu 16.04 images (ideally we'd use the same one across all containers... just to avoid any weirdness)

@darkcrux if you get a chance, can you post the logs from when a format fails?

oh I lost the logs. but from what I've read, sometimes one of the partitions (the data partition) doesn't get created.

Will get logs again when I get the chance.

@dexter, shall we try turning the formatting into an init-container that won't launch the pod until init is complete.

how do we do it? my initial thought was having the formatting done by a k8s job.

The problem with a k8s job is that it won't stop the OSD container from launching when the container is half formatted. Adding an init-container (running a small bash script) to the OSD pod which loops through formatting, zapping on any error until the drive is formatted should handle launch order better

yeah. my initial thought was to format everything with a job. just read about init-containers. are they in 1.4?

We actually part of 1.3 :)
I think they graduated from alpha to beta between 1.3 and 1.4

oh. cool. init-container it is then. :)

This is ready. just need one final testing (the ceph-daemon container one)


[release/3.0] Issue #780 UserManagedCache docs improvements

test this please

From the remarks made by @GaryWKeim I ended up expanding the cache event listeners section.


Heat wave magnitude indicator

Closes #994
Pull Request Checklist:

[x] This PR addresses an already opened issue (for bug fixes / features)

This PR fixes #994

[x] Tests for the changes have been added (for bug fixes / features)

[ ] (If applicable) Documentation has been added / updated (for bug fixes / features)

[x] CHANGELOG.rst has been updated (with summary of main changes)

[x] Link to issue (:issue:number) and pull request (:pull:number) has been added

What kind of change does this PR introduce?

Adds a heat_wave_magnitude indicator based on a variable definition on heat waves (consecutive days of maximum temperature above a given threshold), which yields the highest magnitude in the form of accumulated maximum temperature differences above a threshold along a consecutive heat wave
Adds a windowed_max_run_sum function to indices.run_length which yields the maximum accumulated values of runs per freq period
Adds a rse (termed run sum encoding) function which sums positive values for runs

Does this PR introduce a breaking change?
No
TODO:

[x] one of the test doesn't convert units properly
[x] french translation (need help with that one)

Regarding the last test that fails, the problem arises because to_agg_unit converts the values from Kelvin to deg C, even though the input array already had Kelvin as unit. Maybe I am misunderstanding something.
The original data as per the following test is in Kelvin:
def test_simple(self, tasmax_series):
        tx = np.zeros(366)
        tx[:5] = np.array([30, 30, 30, 30, 30])
        tx = tasmax_series(tx + K2C, start="1/1/2000")
        hwm = atmos.heat_wave_magnitude(tx, freq="YS")
        np.testing.assert_array_equal(hwm, [25])

Printing the threshold (default deg C) before and after the conversion:
print(thresh)
thresh = convert_units_to(thresh, tasmax)
print(thresh)

yields first 25.0 degC and second 298.15. So the threshold values are correctly converted to Kelvin, which is correct since the input was also provided in Kelvin. So far so good.
Printing the output before the heat_wave_magnitude function returns, like so:
    ...
    print(out)
    return to_agg_units(out, tasmax, op="max")

yields an array containing 25, which is the expected and correct output.
However, when the results are returned, to_agg_units converts the result to deg C, subtracts 273.15 and hence provides the wrong output. What I don't understand is, why is the output converted, when the input was Kelvin and not deg C? Or is this expected behaviour that the output is converted to deg C in this case?

I changed the unit handling to
    out.attrs["units"] = tasmax.attrs["units"]
    return out

which seems more approriate compared to how other functions handle comparable output.
However, the output is still falsely converted. I suppose declare_units in that case modifies the output. What would the the prefered xclim way to handle the unit conversion properly in this case?

@aulemahal I'm now wondering if having the float option in rle might cause problems with rle_1d, I will think about this

coverage: 89.383% (+0.009%) from 89.374%
when pulling a1480270693c27418711457a16c2b42e33c22274 on seblehner:heat-wave-magnitude-indicator
into<PHONE_NUMBER>64ddfecf71fb2b81828dcc64987719 on Ouranosinc:main.

I think we could simply explain the nuance in the docstring ? Like explain what happens when a bool / int / float is passed in the input of either functions. In most cases,  rle is not used by itself, but called from within one of the functions like rle_statistics or windowed_max_run_sum, and I would expect that function to choose the right function.
I can push such a commit.

That looks good to me. Thanks for this nice work!

Thank you (and everyone else) also for helping! Happy to contribute 🙌

On a final note, do you have a specific paper in mind on which you base this indicator? I had a discussion on various papers I can't find it now. The indicator in the paper cited in the original issue is a bit different, it has a standardization aspect with a calibration period, so I would not cite this paper, or close the issue yet, the implementation is a bit different to what is done here.

A colleague cited this paper: https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2022EF002833 for the indicator. The paper is about a compound indicator for drought and heat, but the heatwave part follows the definition here (and is in turn referencing the Russo et al., 2014 paper, among others).
If I didn't miss anything, there are 2 points in particular about the Russo et al., 2014 definition:

Reference period for threshold calculation: 1981--2010.
Threshold calculated on a 31 day centered window.

The first point is already captured in the current implementation, because you can calculate the threshold for any reference period and supply the xr.DataArray as input for thresh (instead of specifying a static threshold like 25 degC).
The second point however can not as easily be rebuilt I think. I don't know how much functionality under the xclim hood already exists for such operations and haven't looked into that yet to be honest. I think it boils down to something comparable to the following two indicators:

atmos.fraction_over_precip_doy_thresh
atmos.fraction_over_precip_thresh

Those two do in principle something similar, but the former calculates the threshold over doy, while the latter can have a static one. That would essentially be the same missing part (together with the added window around doy) to exactly capture the Russo et al., 2014 indicator.

Thanks! I just wanted to know which references should be cited, I've added both. I'll merge your PR as soon as the tests have re-passed

@seblehner Thanks so much for your work on this! xclim v0.53 will be released with your changes either this or next week. Have a good day!


can't install.

I have an issue with Bloxshade being stuck on the installation screen and I keep getting a warning saying "Roblox installation was not found. Do you want to download it?" it pops up every time I try to install Bloxshade. I already have RobloxPlayerInstaller.exe, which installs another Roblox player installer. Here are some screenshots.

run it as admin under your own user account your user account on windows cannot be a standard user and must be an admin user

uh i have a problem like my roblox runs fine whenever i install bloxshade in my roblox it doesnt run even as a admin whenever i reinstall roblox its good its only a problem whenever i download bloxshade and install.


type error when using 'render:html' hook in nitro plugin

Environment

Operating System: Windows_NT
Node Version:     v18.12.1
Nuxt Version:     3.5.3
Nitro Version:    2.5.0
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      ssr, telemetry, runtimeConfig, app, typescript, build, alias, vite, nitro, hooks, modules, routeRules, css, devtools, devServer
Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
Reproduction
Use the render:html hook from Nuxt inside a nitro plugin hook (like described in https://nuxt.com/docs/guide/going-further/hooks#usage-within-a-nitro-plugin) by creating a file with:
server/plugins/xyz.ts
export default defineNitroPlugin((nitroApp) => {
    nitroApp.hooks.hook('render:html', (html: NuxtRenderHTMLContext, { event }: { event: H3Event }) => {
                         ^^^^^^^^^^^
     ...
});

Describe the bug
After updating from Nuxt 3.5.1 to 3.5.3 TS is throwing:
error TS2345: Argument of type '"render:html"' is not assignable to parameter of type 'HookKeys<NitroRuntimeHooks>'.

This is caused by the newly introduced typing with https://github.com/unjs/nitro/pull/1316/files#r1233083925
Nuxt is using custom hooks (like render:html) but there are not part of the typing (it is not extensible).
Additional context
https://github.com/nuxt/nuxt/blob/71ef8bd3ff207fd51c2ca18d5a8c7140476780c7/packages/nuxt/src/core/runtime/nitro/renderer.ts#L228
Logs
No response

This is pending a Nitro patch release 👍

This should be resolved in the edge channel, or in the next release.
Let me know if not and I'll reopen.

Fixed with Nuxt 3.6.
Thank you @danielroe !


support datatype properties

Homepage, repository, firstAuthor, pmid and publishedInYear are all in the diagram but paths including them (necessarily as first or last node) are not yet supported.

We also need to take care that the auto generated datatype node IDs do not overlap with the edge IDs.
For example, there are currently both a node and an edge in diagram.svg with ID "pmid".
We could fix that at the source level of the diagram in yEd and convert the box names to UpperCamelCase for consistency and to get rid of those conflicts.


Add fzy alternative in lua

Now clap already supports fzy in pure Python, Python dynamic module in Rust and pure Rust, but none of them is native to neovim. And lua is generally much faster than Python, especically neovim uses luajit. There is already a fzy implementation in lua https://github.com/swarn/fzy-lua, related telescope.nvim PR, I think it's great to also support it in clap. We merely need some glue code like https://github.com/liuchengxu/vim-clap/blob/master/autoload/clap/filter/sync/python.vim for this task.

I've implemented luajit-ffi bindings for lua. This repo contains telescope's port of lua as well as bindings to a modified C fzy version: https://github.com/romgrk/fzy-lua-native
For more context: https://github.com/nvim-lua/telescope.nvim/issues/215#issuecomment-720888143
(I'm not planning on switching fuzzy-finder don't worry, I was just reading their code :laughing: )

Update: the implementation doesn't choke on utf8 more-than-one-byte character, but it does consider those bytes as single characters and returns, eg 2 positions if those bytes match.
local native = require'native'

local positions = native.positions('pé', 'spécial')

for i, p in ipairs(positions) do
  print(p)
end

-- Outputs: (zero-indexed)
--  1 (p)
--  2 (é first byte)
--  3 (é second byte)

That seems similar to lua's string:sub that will substring by byte (from what I can see) rather than by character.

:eyes:


Support purs executable

This is changes to support 0.11, not to build under 0.11. Was probably just going to put up a follow-up commit on this branch that does the latter.

Support new imports list format with module name
Retaining support for psc-ide-server and old imports list format

@kRITZCREEK I notice that compiler PROTOCOL.md shows  import list result as

"moduleName": "MyModule"

but I see

"moduleName": [ "MyModule" ]


coap-tests: no reason to link against sol-socket.o [v2]

sol-coap.o is there because that API is not exported on the final lib.
Signed-off-by: Gustavo Lima Chaves<EMAIL_ADDRESS>

+1

Thanks, merging


Adding support for Scala enums in SwaggerParameterMapper

Hey @kailuowang
finally found some time to start integrating the plugin :)
Here's a PR to add support for scala enumerations as well. Hope that's fine...
Btw, really like  the swagger-custom-mappings.yml!
Best, Moritz

Coverage increased (+1.0%) to 90.809% when pulling c02e59443f7171c7671e8821c20b1234591f1abf on mosche:ScalaEnumSupport into 45145f14a3f52537cc99d01521339c6dab55c459 on iheartradio:master.

LGTM, thanks very much!

Shall I release with this change now? Just want to double check with you to see if you plan to add any other change.

Great, thanks for the quick response :)
I have currently no rush for a release, so whatever is convenient for you.

Thanks @mosche for this PR ;)
Could you please add a few lines about it in the documentation because I could not figure out how to make it work. I defined the following enum in my Scala code :
object Mode extends Enumeration {
    type Mode = Value
    val MODE1, MODE2, MODE3 = Value
}

And using it like this in my routes file :
#      schema:
#        $ref: '#/definitions/models.Protocol.Mode'
#      default: MODE1

throws the big scala.ScalaReflectionException: class models.Protocol.Mode in JavaMirror with URLClassLoader with NativeCopyLoader with RawResources(...
Is the EnumContainer used in your tests mandatory to wrap the enum ?
Thanks again.

@chafikhnini Unfortunately scala enums are really tricky outside of any "container" due to type erasure :/
play-swagger attempts to dealias all members of a case class. An enumeration type alias is de-aliased into a Value that way. To avoid unnecessary checks, I only checked for scala enumerations if their canonical path is ending with .Value
Unfortunately, after dealiasing an unnested enumeration the required context is lost due to type erasure and the result seems to be just Enumeration.Value :/
Fixing this would unfortunately require fundamental changes how de-aliasing is done in the plugin.
Could you give it a quick try using the de-aliased version (ending with Mode.Value in your case), please. But I suspect it'll run into exactly the problem described above...
$ref: '#/definitions/canoncial.path.Mode.Value'

You were right, it throws the same error even when I add .Value. So the enum would work only if used in a case class for the moment ?

Yes, unfortunately :( Actually could you provide the full stacktrace


Fix MS A11y UserVoice entry in Most Wanted Features list

Errata from #21089.
CC: @patrickhlauke

sorry about the original mess-up :(