Provide command decorator for blocking duplicated command output

In certain situations, multiple users invoking the same command with static output is common, resulting in duplicate messages from the bot, for example linking the same doc page.
The bot currently handles a per channel cooldown on tags, but commands always run.
I propose adding a decorator that can be applied to static output commands (e.g. doc, rules etc.) which will cause a cooldown to be applied depending on the command arguments, or maybe some output method that returns equal objects for equal output.

@Numerlor I've assigned you and transferred it to bot-core.

Where would we want this? A messages module under utils? I'll also need to port over command_wraps, that'll probably best be under a function module like it's now in bot

If the implementation is closely tied to discord.py commands extension then maybe it should be in botcore.utils.command module (I think singular tense is more appropriate).


Support detailed query logging

This is another troubleshooting story.
We want to provide a configurable feature that gives a detailed log of how the queries are treated by heroic.
Suggestion
The user can provide the system with additional clientContext which will be included in each log step.
The system can either be provided, or will generate an id when the query has been received that can be used to group or correlate individual queries.
Each log line has the following structure:
{
  "component": "com.spotify.heroic.query.CoreQueryManager",
  "queryId": "ed6fe51c-afba-4320-a859-a88795c15175",
  "clientContext": {
    "dashboardId": "my-system-metrics",
    "user": "udoprog"
  },
  "type": "Received",
  "data": {}
}

data would be specific to the type being logged.
In all relevant stages of query processing, a call to the query logging framework is done, which results in logging of json describing the exact structure of the query in that stage.
Suggested relevant stages and data to log:

api Query as received from the user, also includes relevant HTTP-based information.
api Query as received by ClusterManager.
api FullQuery.Request which fans out to all data nodes.
data FullQuery.Request when received by data node.
data FullQuery as it goes back to the API node (excluding data).
api FullQuery as received from data node (excluding data).
api QueryTrace with timing information for the whole query
api QueryMetricsResponse being sent to the user (excluding data).

Note: All response paths excludes samples (time series data) to reduce the size of the log. This would be represented as the size of the data being returned instead.
Requirements

Query logging framework is isolated from critical path of query processing in a way so that failure in the query logger doesn't affect query processing.

Extension to Query API
The following field would be added to the query API.
{
  "features": ["com.spotify.heroic.query_logging"],
  "queryLogging": {
    "queryId": "my-query-id",
    "clientContext": {
      "dashboardId": "my-system-metrics",
      "user": "udoprog"
    }
  }
}

This is completely optional, and query logging can be enabled globally by setting the feature flag com.spotify.heroic.query_logging.
Configuration
Query logging is configured in the configuration file under the queryLogging section, like the following:
queryLogging:
  type: file
  path: /path/to/query.log
  rotationPeriod: 1d

Or with a logger facility:
queryLogging:
  type: logger
  name: com.spotify.heroic.query_logging

I'd suggest that we use the explicit key queryId rather than just id to make it clear that each log entry is part of a bigger piece of information. id could be interpreted as meaning that the entry is uniquely identified by that.
Another reason for queryId is that the entries will contain multiple IDs, e.g. dashboardId so being explicit can avoid some mixups.

@udoprog : When we talk about "traces" in the context of this issue, do we mean traces that end up in the logs, traces that are returned to the user as part of the result, or both?

@parmus this feature is currently named "log tracing" (as per logTracing parameter above to enable it), while the timings are just returned as "tracing".

Would it make sense to have all of this as a part of the current query tracing functionality? The code paths and functionality seem to be very related.
Perhaps with knobs to decide how detailed tracing we want:

Written to logs
Returned in query response

In other words, I'm thinking that this is not a new feature but added functionality and configurability of query tracing. What do you guys think?

Could the following be clarified?

Note: All response paths excludes data to reduce the size of the log. This would be represented as the size of the data being returned instead.

+1 on the addition of allowing user to provide metadata that would be included in trace. Would it make sense to name it something more specific than "metadata"? Suggestions:

queryMetadata
contextualMetadata

Would it make sense to have all of this as a part of the current query tracing functionality? The code paths and functionality seem to be very related.

It is interesting, but maybe as a future improvement?
Tracing measures timings in a tree and returns it along with the response of the query. It's not inconceivable that we could attach these things to the existing tracing framework as additional information on each tree node, but the way that it is currently done would require a fair bit of refactoring to make it work.
The tracing framework could at least be unified (a little) internally to avoid duplication.

Returned in query response

This is interesting. Maybe add it as a secondary objective.

Could the following be clarified?

It simply means that the return path contains a lot of samples - time series data that should be shipped to the user. This is too much to include when logging information to a third party system.
I've added more clarification for it.

+1 on the addition of allowing user to provide metadata that would be included in trace. Would it make sense to name it something more specific than "metadata"? Suggestions:

I think it is implied by the context since it's part of logTracing.metadata and more information would seem redundant. Is this fine for you?

It is interesting, but maybe as a future improvement?
Tracing measures timings in a tree and returns it along with the response of the query. It's not inconceivable that we could attach these things to the existing tracing framework as additional information on each tree node, but the way that it is currently done would require a fair bit of refactoring to make it work.
The tracing framework could at least be unified (a little) internally to avoid duplication.

Ok!

Returned in query response
This is interesting. Maybe add it as a secondary objective.

Cool

It simply means that the return path contains a lot of samples - time series data that should be shipped to the user. This is too much to include when logging information to a third party system.
I've added more clarification for it.
Ah yes, totally :)

+1 on the addition of allowing user to provide metadata that would be included in trace. Would it make sense to name it something more specific than "metadata"? Suggestions:
I think it is implied by the context since it's part of logTracing.metadata and more information would seem redundant. Is this fine for you?
Ok, yep I'm fine with that.

Closing due to age, feel free to re-open if this is still an issue.


fix(clustering/rpc): fix incorrect is_timeout() call introduced during

review address and adds tests for concentrator. This fixes error like:
concentrator.lua:237: [rpc] concentrator event loop error: wait_for_notification error: receive_message: failed to get type: timeout, reconnecting in 8 seconds, context: ngx.timer

Note: the reuseport change for testing fixture is needed in order to run two CP at the same time in our testing suite.
KAG-623

Unreleased feature, skipping changelog.

I will manually cherry pick this PR as the original feature hasn't been cherry picked yet due to build issue.


Add Czech laguage translate

Add Czech laguage translate

@codeofsumit ready to merge

thx, when is this language version available on CDN?

We want to make the next release in May but I can't say a date.


Type Utilities and Critical classComponent fixes

This PR adds a new function createTyped which respects the type safety of Components passed in, as well as the type ComponentTyped<P> which allows components to be typed by the props expected.
This PR also adds crucial fixes to classComponent and deferredState that were not working as intended and causing errors/undefined behavior.

The classComponent fixes should be urgently released; the type utilities are sound in the current version of Luau, but are super helpful for writing any new typed Pract code.


Modifed masking before pooling - Fixes issue in ONNX conversion

Issue:
In class INSTRUCTOR_Transformer, inside def forward(), the attention mask corresponding to the instruction tokens are
set to 0 in the following manner:
if context_masks is not None:
            import torch
            assert len(context_masks) == len(attention_mask)
            n = len(attention_mask)
            # print('n ',n)
            for local_idx in range(n):
                assert torch.sum(attention_mask[local_idx]).item() >= context_masks[local_idx].item(),\
                    f'{attention_mask[local_idx]}, {context_masks[local_idx]}, ' \
                    f'{torch.sum(attention_mask[local_idx]).item()}, {context_masks[local_idx].item()}'
                attention_mask[local_idx][:context_masks[local_idx]] = 0

I want to draw attention to the line n = len(attention_mask). This int variable will be treated as a constant during onnx conversion, which will lead to incorrect inference when the instruction token length changes.
Solution:
Instead of geting the instruction token length and manually iterating the attention_mask to set the value as 0,
I have introduced def prepare_input_features() function under class Instructor that carries out the same task using tensor manipulations.
By this way performing inference using the onnx model works as expected for any instruction.
Other change set:
There are many other diff in the pull request, those are a result of adhering to formatting/linting standards.

@Harry-hash @hongjin-su
Looking forward to your inputs...

@hongjin-su @Harry-hash
Just a gentle reminder..

Following up on this.

@hongjin-su @Harry-hash
just a reminder


Smarter WhoAmI + Dedupe default setup for tests

Desired Outcome
Please describe the desired outcome for this PR.  Said another way, what was
the original request that resulted in these code changes?  Feel free to copy
this information from the connected issue.
Implemented Changes
Describe how the desired outcome above has been achieved with this PR. In
particular, consider:

What's changed? Why were these changes made?
How should the reviewer approach this PR, especially if manual tests are required?
Are there relevant screenshots you can add to the PR description?

Connected Issue/Story
Resolves #[relevant GitHub issue(s), e.g. 76]
CyberArk internal issue ID: [insert issue ID]
Definition of Done
At least 1 todo must be completed in the sections below for the PR to be
merged.
Changelog

[ ] The CHANGELOG has been updated, or
[ ] This PR does not include user-facing changes and doesn't require a
CHANGELOG update

Test coverage

[ ] This PR includes new unit and integration tests to go with the code
changes, or
[ ] The changes in this PR do not require tests

Documentation

[ ] Docs (e.g. READMEs) were updated in this PR
[ ] A follow-up issue to update official docs has been filed here: [insert issue ID]
[ ] This PR does not require updating any documentation

Behavior

[ ] This PR changes product behavior and has been reviewed by a PO, or
[ ] These changes are part of a larger initiative that will be reviewed later, or
[ ] No behavior was changed with this PR

Security

[ ] Security architect has reviewed the changes in this PR,
[ ] These changes are part of a larger initiative with a separate security review, or
[ ] There are no security aspects to these changes

I'm closing this as out of date


[bug]  logotype font-family not working due to typo

As seen on the demo page (and in the code) the font stack for the logotype in the Secondary Nav has a typo, which causes the logotype to use the wrong font in the stack:
https://github.com/RedHat-UX/red-hat-design-system/blob/dddfba1de9daa9936e9993cf8fb7f5ab07b32af4/elements/rh-secondary-nav/rh-secondary-nav-lightdom.css#L61

Instead of "RedHatDisplay" it should be "Red Hat Display" (with spaces)
Use 1.5em line-height instead of 1.6875em

Current:

Expected:

Original mockup:
https://xd.adobe.com/view/cc81c902-f053-4350-b443-0e4dc4ad0ab7-99d2/screen/07708659-5741-4654-87d8-1b18085ec341/

we need to fix this in tokens, as well

Secondary nav was referencing the font stacks provided by the red-hat-design-tokens project.
I created an issue: https://github.com/RedHat-UX/red-hat-design-tokens/issues/17 and am referencing that here as well.
For the main text in the secondary-nav I was using the following stack:
https://github.com/RedHat-UX/red-hat-design-system/blob/dddfba1de9daa9936e9993cf8fb7f5ab07b32af4/elements/rh-secondary-nav/rh-secondary-nav-lightdom.css#L10
Red Hat Text, and RedHatText are listed for that stack.  Not sure that is appropriate, but again should fix that in the tokens repo so we have a single source of truth.
I also believe I originally cribbed these stacks from footer:
https://github.com/RedHat-UX/red-hat-design-system/blob/dddfba1de9daa9936e9993cf8fb7f5ab07b32af4/elements/rh-footer/rh-footer-block.css#L31
@markcaron we should go back and make sure that all new components are using the correct stacks.

@zeroedin sounds good. Let's fix it at the source.

You mean this?:
--rh-font-family-body-text: 'Red Hat Text', 'RedHatText', 'Overpass', Overpass, Arial, sans-serif;
If so yes.

@zeroedin yes! IMO, I think that gives us greater control over how the stack is passed through the system.

@markcaron that's the intention, just need to fix the source of truth and we should be good :)

This is fixed in tokens. #500 should fix this issue, too


Change icon color according to Keep Awake state

Description of the new feature / enhancement
Mode -> Keep Awake Indefinitely
(Icon color changes according to what color user has selected in predefined sub menu)

Accessing the Sub Menu
Mode --> Choose Color --> Color Palette or Text Based (RGB HEX)
Scenario when this would be used?
Assists in visibility of active status, particularly helpful for laptop users.
Supporting information
No response

Duplicate of #11996


False negative with \ArrayIterator (PhanParamTooFewInternal)

test.php
<?php
$iterator = new \ArrayIterator();

Result:
test.php:2 PhanParamTooFewInternal Call with 0 arg(s) to \arrayiterator::__construct() which requires 1 arg(s)

Tested with 0.4 and dev-master 2f15743 on Windows env with PHP 7.0.5 (cli) (built: Mar 30 2016 10:15:34) ( NTS ).

Similar issue with \CachingIterator:
<?php
$iterator = new \CachingIterator(new \ArrayIterator());

Result:
test.php:2 PhanParamTooFewInternal Call with 1 arg(s) to \cachingiterator::__construct() which requires 2 arg(s)


feat: rewrite using marked

Closes #9
This PR is a rewrite of the library using marked instead of unified, remark, rehype and turndown.
I've also added an XML parser to keep parsing <img> tags, since marked parses them as HTML (which we ignore)
Support for tables and blockquotes has been removed: the docs said that we didn't support it but the package was still parsing them.

Sure 👍🏻

All right, I've added tables and blockquotes too 👍🏻


auth_token Config Value and Config Extensions

Adds a config value of
[general]
auth_token = xyz987

which gets loaded on BaseClient initialization. That value can, at present, be a GOAuth token, and everything works there.
I also made some more extensive changes to the config module to support two use cases which we discussed or mentioned in #4.
The first is an override to the ordinary ConfigParser behavior when it sees a file with no section heading before its first value, as in
auth_token = abc123

or
auth_token = def456
[general]
...

This makes ConfigParser fail hard with an error because it's insisting on every value being in a section, but I think this is unnecessarily harsh. More notes in the commit message, but I added a class that overrides this behavior to just insert [general]\n at the start of any files that trigger that exception.
ConfigParser already handles multiple instances of the same section (and loads them in order, overriding values), so there's no real danger here, and it makes smaller and simpler configs possible.
I especially like the possibility of
echo "auth_token = $(globus nexus get-goauth-token -F text)" > ~/.globus.cfg

or similar as a future recommendation, and this only works so cleanly if we remove the section header constraint.
The other change is less controversial -- the addition of an optional load-from-environment behavior.
It's controlled by a kwarg to config.py's _get() with a default value of False.
Environment values are always named as GLOBUS_{uppercase_option_name}, with their config section omitted.
I think that leads to the easiest to understand behavior, without having to stick GENERAL_ in every single name.
Environment variables have (as you would expect) higher precedence than any config files.
@bd4, I want to make sure I'm not going overboard with the modification of ConfigParser. I like it (a lot, actually), but I recognize the flaws and arguments against it. I would very much appreciate your input on it.

After an inspection of the GT env vars, and the sprawling landscape that presents, I agree that GLOBUS_SDK_ is acceptable.
I wish we could have the GLOBUS_ namespace to ourselves, but, alas, it was not meant to be.

@bd4 Per our discussion, I've rebuilt the GlobusConfigParser to wrap SafeConfigParser, rather than being part of the ConfigParser class hierarchy.
I'm pretty happy with what I have so far -- I don't think it's too complicated, but I think it's sufficiently much better than the base ConfigParser behaviors to serve our needs.
For now I don't think that we need a top-level get() which wraps up
p = _get_parser()
p.get(*args, **kwargs)

but that would be an easy way to extend this in the future.


License ?

Hi. I was looking for a Qt based alternative to Postman and came across your work here. I've found it useful as a starting point and forked it to add some ( in my opinion ) improvements. Could you please add a license to your work ?
The less restrictive the better of course but any open source license will do for me.

Sure, I added the MIT license. Go to town :)

I would prefer if you didn't use that name for any software that you decide to release though, especially if it is a rest client because I was planning on using the name.

Sure, no issues. The name is yours, I'll rename everything.
Thanks a lot for your work, I think this can be a good alternative to the bloated Postman.

Sounds good, I'll keep an eye on your fork :)


Reset msys2 ci, when openfhe-development v1.2.1 gets posted

From https://github.com/openfheorg/openfhe-development/issues/825#issuecomment-2228993252, issue with compiler should be solved, when v1.2.1 gets posted
To do:
https://github.com/hpsc-lab/openfhe-julia/blob/9fd2a7d7dd7eeefd36e89be19eb44f968095dff4/.github/workflows/ci.yml#L66
And
https://github.com/hpsc-lab/openfhe-julia/blob/9fd2a7d7dd7eeefd36e89be19eb44f968095dff4/.github/workflows/ci.yml#L70

@ArseniyKholod With v1.2.1 being released, it would be great if you could start updating our toolchain as well (but no rush, this is not high priority)


Tier the Examples: Basic and Advanced

Create 2 complexity tiers (Basic and Advanced):

Basic: Single app like @fredhsu example with iperf.md (Single Process)
Advanced: Client/Server, Docker Compose stack, Docker Machine, Vagrant config, etc.
Update the README with links to a splash page for each directory (Basic/Advanced)

@fredhsu that seem reasonable to you?

Yup, do you think just a simple example is good or should it be more verbose like a blog entry?  I'm torn between just keeping the repo simple and blogging on our normal blogs, or putting all the content in one place.

What about spliting the difference. Blogging out usage examples on a personal blog and leaving the URL in the GIT repo as a pointer?

I vote simple examples/usage in the subdir readme and links to any site with a deeper dive in the subdir readme. I liked how @fredhsu did it. My ADD screams simple example in one place. Next thing I know I would be on Youtube watching pictures of kitten.
@netmanchris if you want to review +/-1 or merge https://github.com/gopher-net/dockerized-net-tools/pull/7 I would apprec.

Closing out.


Added Dark Mode support for Yosemite

This adds support for dark mode on Yosemite to Thyme, to resolve #22
Xcode also demanded several changes to the build settings, but I don't know whether those are actually needed.

Thanks! :beer:


NIFI-3454 Tests should consistently use the FileNameFilter when reading file names from directories

Tests that work with getting files from directories ( either doing listings or building URLs for the classloader ) should use the FileNameFilter to ensure unwanted files don't fowl the tests.
As an example, on Mac OS .DS_Store files will break some tests if present
Thank you for submitting a contribution to Apache NiFi.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ x] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[ x] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[x ] Has your PR been rebased against the latest commit within the target branch (typically master)?

[x ] Is your initial contribution a single, squashed commit?

For code changes:

[ x] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@ottobackwards Reviewed the changes. Confirmed that both test runs successfully even if there's a .DS_Store file in the test input directory. +1
Please note that when you submit a PR for a JIRA, push the "submit patch" button to move JIRA status forward to "Patch Available". This ensure other developers to know it's ready for PR.

https://cwiki.apache.org/confluence/display/NIFI/Contributor+Guide#ContributorGuide-CodeReviewProcess
I'm going to merge this. Thank you for you contributing!

@ottobackwards Sorry, I forgot to add "This closes #xxxx. " in the commit message. Would you please close this PR? It's already merged in the master branch. Thanks!

Sorry, will do next time. Your Jira is different from my other apache
project
On February 10, 2017 at 19:10:28, Koji Kawamura<EMAIL_ADDRESS>wrote:

@ottobackwards https://github.com/ottobackwards Sorry, I forgot to add
"This closes #xxxx. " in the commit message. Would you please close this
PR? It's already merged in the master branch. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/nifi/pull/1497#issuecomment-279100701, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABD1_wgtI6tQQ5Y4XZ5h5UyTS9k_2C3Yks5rbPx0gaJpZM4L9fY2
.

Will do later tonight
On February 10, 2017 at 19:10:28, Koji Kawamura<EMAIL_ADDRESS>wrote:

@ottobackwards https://github.com/ottobackwards Sorry, I forgot to add
"This closes #xxxx. " in the commit message. Would you please close this
PR? It's already merged in the master branch. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/nifi/pull/1497#issuecomment-279100701, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABD1_wgtI6tQQ5Y4XZ5h5UyTS9k_2C3Yks5rbPx0gaJpZM4L9fY2
.


Update the build instructions to match the new version

Please update the build instructions (https://github.com/kalvn/Shaarli-Material/tree/support-v012#build-for-production) as it seems outdated since https://github.com/kalvn/Shaarli-Material/commit/da29c7c0e5db2e8a70a781fbc93b58ff10757d3b
At first, I was not aware of the change, so I tried to install the missing gulp locally but then it said no gulpfile, so I checked the commits, and it seems there was a change with the build tool.

I managed to build it with npm run-script build instead of the gulp build command.

I managed to build it with npm run-script build instead of the gulp build command.

Thanks for the notice.
I insist on the fact that what's not on the master branch is currently in dev and is not meant to be used for production. I worked quite a lot yesterday on splitting the huge unique JS file into modules and indeed I didn't update yet the build instructions. But the change of build tools appears in the commit message.
I just updated the README and the CHANGELOG.

Thanks for the notice.
I insist on the fact that what's not on the master branch is currently in dev and is not meant to be used for production. I worked quite a lot yesterday on splitting the huge unique JS file into modules and indeed I didn't update yet the build instructions. But the change of build tools appears in the commit message.
I just updated the README and the CHANGELOG.

Since I do a lot of testing lately with Shaarli, my CI is building the latest commits. I only build manually when either Arthur or you fix one of the relevant issues, so athough I'm on bleeding edge, my Shaarli is fairly stable until some new fix comes out that I'm interested in. This morning, I reconfigured something else in my CI that involved a rerun of the pipeline, and so I observed it broke. I'm not familiar with rollup and their docs seemed to be extensive, and they have lots of command line flags, that's why I reported it. Then I got the idea, maybe you also use some flags that you don't want to forget, and maybe created a build script for that, that's when I found the npm script later. So I accidentally found this change, and not by following all commits all the time 😃

Since I do a lot of testing lately with Shaarli, my CI is building the latest commits. I only build manually when either Arthur or you fix one of the relevant issues, so athough I'm on bleeding edge, my Shaarli is fairly stable until some new fix comes out that I'm interested in. This morning, I reconfigured something else in my CI that involved a rerun of the pipeline, and so I observed it broke. I'm not familiar with rollup and their docs seemed to be extensive, and they have lots of command line flags, that's why I reported it. Then I got the idea, maybe you also use some flags that you don't want to forget, and maybe created a build script for that, that's when I found the npm script later. So I accidentally found this change, and not by following all commits all the time 😃

No worries and again, thanks for your strong testing, you're helping me a lot :)
I just want to ensure you know that I sometimes don't push everything at the same time and that branches other than master remain somehow experimental. When working on a big feature that I need to split over several days, I still prefer to push at least once a day even if things aren't perfect.

No worries and again, thanks for your strong testing, you're helping me a lot :)
I just want to ensure you know that I sometimes don't push everything at the same time and that branches other than master remain somehow experimental. When working on a big feature that I need to split over several days, I still prefer to push at least once a day even if things aren't perfect.


Curl error while recording cassette with PHP 8

Using PHP 8.1.19.
In Utils/HttpClient class send method there is assertion for resource.
curl_init returns CurlHandle class object.
So the resource check condition will always fail.
Worth to mention that initially it was used to make the soap request witch used the HttpClient for the actual request send.
Commenting that line out helped as the main purpose was to record the request for test cases.
I am not that advanced to be sure about why that assert was there in the first place. (feel free to prove me wrong if it is expected behaviour)
The fix could be the adding the  early return instance of CurlHandle check right before the  is_resource check

Cannot find the resource check in the latest master. Which version do you use?


Limit the maximum visible buttons for pagination

Hi,
firstable thanks for this plugin, it's very usefull for ou project.
We wanted to know if it's possible to make an improvement to limit the number of visible buttons like in angular bootstrap pagination:

Because we have a table with a lot of entries and we have like 50 pages so it's not very beautiful to have 50 buttons.
Thank you

Yes it is possible, please check out the demo.

indeed, RTFM @crashbtz :)
thanks


After update got an error

What's wrong? Everything was working fine until the update.

The error states that inherit is not a valid key in your custom highlight groups. I will look into it but remove that in the meantime and it should work


Jump to test source through double-click on test in test results

Is possible to do when i do double-click in test result on some item so i get right into test source code? Idealy into test method which failed.

Sure, only not now yet :/ It's one part of #18
(Closing as duplicate)


Rewrite backend in typescript

This is still not finished ... finish asap

[ ] implement spotify web api sdk functionality. Which is spotify.py
[ ] translate app.py functionality to ts
[ ] translate cli_main.py functionality to ts
[ ] Then translate server.py functionality to ts
[ ] Make sure it is being saved appropriately

Although it would be really nice to have both the frontend and backend be the same language, I think it would take too long right now. I rather build more than spend time on transferring over


Track Scroll Opening - Dust, Rank, Result

Let's start (or resume) tracking scroll openings again.
Discord Chat has some json results. The resulting message model has an item when there's dust, no item when there's no dust.
We can submit an entry when a scroll is opened that has no dust two ways:

a dummy item ("no dust") so our existing queries will work as-is
no convertible_item and we have to use outer joins and change convertible_intake.php on the back-end

We do not currently track rank of the hunter when anything is opened. We would have to add this to all pieces and can create a column in the entries table. It is uninteresting for most convertibles. Alternatively we can ignore it and instead find their rank in the hunts table (user_id = hunter_id?)
We do not track the type of map that is opened. This could be accomplished by submitting the types of maps in whichever of the three map slots are populated when any convertible is opened - or only when _scroll convertibles are opened. This would require a change to convertible_intake.php and a new table.
Goals:

determine chance of dust for scrolls (again)
determine chance of map rank based on hunter rank opening it

The "best" option for dust tracking is to change the convertible aggregation to use outer joins. This will require a change to intake that allows it to get an empty convertible.
Scroll open triggers a convertible submission:

If the scroll drops dust the submissions looks normal with convertible being a scroll type and item being a dust. 1 of each.
If the scroll does not drop dust the submission would be a convertible being opened with an empty item. This would populate the entries table only.

Piggybacking on this with rank tracking (maybe deserves its own issue?):

New table, scroll_rank?, that gets an entry for every scroll opened even if no dust. It only tracks the hunter's rank at the time of submission and the type of map opened.
Some area maps are not tied to ranks. We can decide to clean these out later.


Custom serde implementation and TypeUuid for InputMap

Bring changes from #282 into main
Add TypeUuid for InputMap to be able use it as asset without wrapper

Thanks a ton for doing this! Sorry for messing up my merge 😅


Dynamic loading dropdown filter

I've found a need for a more user friendly filter option, so that there is less risk of a user mistyping what it is they're looking for.  I've managed to write a rather rough dropdown filter that uses Ajax to populate the dropdown as soon as the popup loads.  It works rather well with EF and .net core.  If that's a worthwhile feature, I can submit it for review.

Hows does it know what and how to load it? The problem I saw with dropdowns is that they have to introduce a lot of new API and code surface to the code base, which is why I didn't do them.
But yes, would be great if you could share your project if it's public, maybe it's I didn't thought of.

It's nothing so fancy as a project; I just used your filter as an example.  Here's what I came up with:
var MvcGridDropdownFilter = (function () {
    function MvcGridDropdownFilter(name, func) { this.name = name; this.func = func; }
    MvcGridDropdownFilter.prototype = {
        render: function (grid, popup, filter) {
            popup.html(
                '

' +
                '
' +
                '
' +
                'Choose category: ' +
                '<select id="' + this.name + '" class="form-control"></select>' +
                '
' +
                '
' +
                '<button class="btn btn-success mvc-grid-apply" type="button">✔</button>' +
                '<button class="btn btn-danger mvc-grid-cancel" type="button">✘</button>' +
                '
' +
                '
');

            var x = eval(this.func);
            if (typeof x == 'function') {
                x();
            }
        },

        init: function (grid, column, popup) {
            this.bindApply(grid, column, popup);
            this.bindCancel(grid, column, popup);
        },
        bindApply: function (grid, column, popup) {
            var apply = popup.find('.mvc-grid-apply');
            apply.on('click.mvcgrid', function () {
                popup.removeClass('open');
                column.filter.first.val = popup.find('.first-filter select')[0].value;
                column.filter.first.type = 'Equals';

                grid.applyFilter(column);
                grid.reload();
            });
        },
        bindCancel: function (grid, column, popup) {
            var cancel = popup.find('.mvc-grid-cancel');
            cancel.on('click.mvcgrid', function () {
                popup.removeClass('open');

                if (column.filter.first.type) {
                    grid.cancelFilter(column);
                    grid.reload();
                }
            });
        }
    };;;

    return MvcGridDropdownFilter;
})();

The filter is activated with  'filter': new MvcGridDropdownFilter('filter', 'populateFilter')
And the populateCategories function is:

function populateCategories() {
        $.ajax({
            url: '@Url.Action("populateFilter", "modelController")'
        }).done(function (result) {
            $.each(result, function (i, item) {
                $("#filter").append($('<option value="' + item.text + '">' + item.text + '</option>'));
            })
        })
    };

I ran into the same issue; how do you know what to populate it with?  For that, take a look at the end of the render event; I pass it a function name, which then runs after the popup finishes showing.  This is probably an extremely insecure way of going about it; passing function names seems like a code smell to me, but it does work.  Could definitely use some polishing, as it currently needs a hardcoded select name, and it doesn't choose selected value after filtering.

@Muchiachio Hey, just following up on this.  Is this something you'd want to include? I can submit a pull request if you'd like to go through that route.

No, not yet. Source url could be saved on the filter, but I still didn't figure out how would generic implementation look like, as we would still have to add events for long/failed requests and so on.
So I'm debating if it's worth adding at all.

Finally got time to dig into this and tried implementing and as I was afraid it got over-complicated to a point it was not worth adding. Thank you for a suggestion and a code sample though, it helped me find pain points in current grid design. So I can make incremental changes in the future major released to make these things more accessible.


Remove --nodiscover from non bootnodes

Currently when starting multiple members Quorum network, there is an error being thrown when trying to register organization and nodes for members whom are not part of the bootnode (i.e. bootnodes are used for auto discovery of peers).
Removing --nodiscover flag from all members prevent nodes from being discovered by the bootnode. This PR is raised to retain the --nodiscover flag on the bootnode itself, while removing the flag on the remaining nodes so that they can be connected in the same network.

Will merge these changes, and @jimthematrix will include his proposed changes in a new PR. I believe getting this working for v1.3.1 is critical so going ahead and merging

@jimthematrix, apologies for the late reply, the original PR that I raised for adding Quorum/Tessera support is in line with your suggested changes. I kept --no-discover due to this commit that was added by Peter https://github.com/hyperledger/firefly-cli/commit/e1707eaabff8190afe5abdd959993301795c085a, I wasn't sure if no-discover was added due to unwanted connections from people outside the network. I tested your changes, it worked fine on our environments.


V1.3 Backport PR-7054

Due the pkg/datapath/maps does not exists on 1.3 branch, I need to
manually backport this PR.
Commits backported:
19767816a9a8573bce1860d774c3ad7bdb1348b2
3adbd7f5e95f4c5e18eaf29aff454a4146017fd2
PR #7054
@joestringer please review.
Signed-off-by: Eloy Coto<EMAIL_ADDRESS>

This change is

test-me-please

test-me-please

Build failure:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-Validated/9912/
JoinEP found in logs.
Should be unrelated - trying again.

test-me-please

test-missed-k8s

test-docs-please

Doc test failed due to failure to check out from version control:  https://jenkins.cilium.io/job/Cilium-PR-Doc-Tests/917/flowGraphTable/

test-docs-please

So did K8s tests, sigh: https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-K8s/1679/flowGraphTable/

test-missed-k8s

Issues on getting cilium ready, does not looks related:
https://jenkins.cilium.io/job/Cilium-PR-Ginkgo-Tests-K8s/1681/testReport/junit/k8s-1/8/K8sChaosTest_Connectivity_demo_application_Endpoint_can_still_connect_while_Cilium_is_not_running/

test-missed-k8s


Display Banners in Live Preview

What

If in Preview Mode, Banners are displayed perfectly
I look forward to seeing Banners also displayed during Live Preview mode.

No rush! But thanks for your awesome plugin!

Just found this plugin, this would be a great feature to have.

Love this plugin 💖and looking forward to seeing this in action in live preview mode. Thanks.

Hey there! Pardon the late check on this, but I wanna say that this is like high priority on the roadmap, & I'm currently looking into it (it's just been a challenge to figure out how CM6 Extensions as a whole personally, ahah).
There's a release later coming today that doesn't include this, 'cause I wanted to get through some older issues/suggestions first, but this is being worked on (or rather, being figured out. If anyone has references of other plugins that uses this type of stuff, feel free to throw me any, haha)

Hi @noatpad, thanks for the update! Unfortunately I haven't got any programming background and haven't ever stepped into the obsidian plugin developer discord channel, so I can't contribute any knowledge here. Best best best of luck!

I'm using this with a few plugins - specifically Folder Note and Admonitions come to mind. Both of those plugins use codeblocks to generate their features, which I believe would then be passed to Obsidian itself for Live Preview. So I doubt that helps much, but it's what I could think of.

@noatpad i think nothingislost from discord can help you since he has banners working with codemirroroptions. after you figure how he did it then you can make it work with cm6 for livepreview

If I can chime in, I would definitely like to see this working in LP too :)

I just found this plugin today, and I'm now super excited to see it working in live preview 🙂 Thanks for all your hard work! ❤

+1 for making this available in live preview

About time I got this working. Should be able to get preliminary support for live preview later today or tomorrow

Awesome, really excited to see banners in live preview. Testament to how great the plugin is that I've been hungering so much for it to work in editing mode!

Preliminary support's up and ready to go! Pardon me that this took way longer than I'd like to admit, ahah.
Go wild, fellas. https://github.com/noatpad/obsidian-banners/releases/tag/1.3.0

@noatpad thank you so much! It looks great! Even if it did take you longer than you had planned, was it difficult? Would any of the code be relevant for the metatable plugin, because they [might be interested] (https://github.com/arnau/obsidian-metatable/issues/25#issuecomment-1033750276) in any tips and tricks you've learned along the way getting YAML to play with live preview.
Thanks again 👌💪👊

This is fantastic -- thank you so much for your hard work!!!

Hi @noatpad, I had a few style problems that I wanted to iron out so the Banners looked nicer, and I think I have good functional solutions for each of them.  Could I ask you to have a quick look at the code below and make sure it's OK? Thanks!
Before (problems):

large space before the beginning of the text
YAML takes up a large amount of space
The embedded note titles plugin is completely covered over by the banner

After (looking good!):

thoughts and questions

Remove YAML in live preview - SOLVED ✔ see snippet below
Move the beginning of my editable text up - ✔ I targetted the banner spacer and turned it off (display: none). Is that OK or is it used for something important?
Using the plugin embedded note title, I wanted to move the embedded note title to the lower edge of the banner, so that it overlaps with the gradient of the banner. ✔ - I think it is a neat little calculation, and it looks good.

the snippets
/* ====== Hide YAML in LP ======== */
.is-live-preview .cm-hmd-frontmatter {
    display: none;
}

/* ====== Make the start of the text editor immediately after the banner by not displaying the banner spacer ======== */
.is-live-preview .obsidian-banner-spacer {
    display: none;
}

/* ====== Move the Embedded Note Title down to the lower portion of the banner, overlying the banner faded gradient ======== */
.is-live-preview h1.cm-line.embedded-note-title{
  margin-top: calc(var(--banner-height) - 50px);
}

Unfortunately, the big space came back when I tried inserting icons.

I'll try finding the solution for this later.

@DryIce1 , how do you edit your YAML frontmatter if it's set to display: none?

Hi @megclaypool, good question! Snippets Commands plugin to assign hotkey and hide/reveal YAML. I've edited my post above to include this step, thanks.

Unfortunately, the big space came back when I tried inserting icons.  I'll try finding the solution for this later.
Edit: fixed this with the banner icon adjustment mentioned in above post.

wow, looks so beautiful

I have the same problem here !!


Conditionally load Valuesets from VSAC

This change allows someone using Measures::CqlLoader to indicate whether or not to store the valuesets.  By default, this parameter is set as true.  When true, Measures::CqlLoader runs as it has always. When set as false, Valueset logic is bypassed.
Submitter:

[ ] This pull request describes why these changes were made.
[ ] Internal ticket for this PR:
[ ] Internal ticket links to this PR
[ ] Code diff has been done and been reviewed
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Codecov Report

Merging #31 into master will decrease coverage by <.01%.
The diff coverage is 95.23%.

@@            Coverage Diff             @@
##           master      #31      +/-   ##
==========================================
- Coverage   85.68%   85.67%   -0.01%
==========================================
  Files          69       69
  Lines        4331     4335       +4
==========================================
+ Hits         3711     3714       +3
- Misses        620      621       +1

Impacted Files
Coverage Δ

lib/measure-loader/value_set_helpers.rb
100% <100%> (ø)
:arrow_up:

lib/measure-loader/cql_loader.rb
98.96% <90.9%> (-1.04%)
:arrow_down:

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 75c910a...b9adfeb. Read the comment docs.


kubelet cannot be installed

from E1104, k8s stores containers under /, where you mount it using /deb/sda1 and it has only 7.9G available under /,

从E1104开始，k8s将容器存放在/下，你用/ deb / sda1挂载它，它在/下只有7.9G可用，

There is another problem, I deployed it on azure, then how to configure this IP address?

I configured the ip address of the master node.（Public ip）

No success, is this a network problem?

I think it is necessary to set a availability set and bind a load balance. Then configure the load balancing ip address in the kubernetes-configuration.yaml file.

I think it is necessary to set a availability set and bind a load balance. Then configure the load balancing ip address in the kubernetes-configuration.yaml file.

Yes, you are right. And with the load balance, you could set 3 master in the load balance back end pool to support kubernetes HA mode.

And Can you show me the the output of the following command in your master node.
sudo docker info

master:

work:

by the way , i just seemed to be building it.

congratulations, I'm interested in the solution that you depends on to solve this issue.

Haha, thank you, thanks to everyone’s enthusiastic answer.


[WFCORE-309] : system properties are trim()'d and loose whitespace.

When the ModelType is STRING or PROPERTY the attribute value is set without trimming.
Jira: https://issues.jboss.org/browse/WFCORE-309

Windows Build 725 is now running using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e

Core - Full Integration Build 300 is now running using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e

Linux Build 1013 is now running using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e

Linux Build 1013 outcome was SUCCESS using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e
Summary: Tests passed: 2930, ignored: 95 Build time: 0:19:44

Windows Build 725 outcome was FAILURE using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e
Summary: Execution timeout (new); tests failed: 5 (5 new), passed: 2919, ignored: 95; org.wildfly.core:wildfly-core-testsuite-domain Build time: 0:45:11
Build problems:
Failed tests detected
Execution timeout
Process exited with code 1
Failed tests
org.jboss.as.test.integration.respawn.RespawnHttpTestCase.testStartKilledServer: java.lang.AssertionError: null
	at org.junit.Assert.fail(Assert.java:86)
	at org.junit.Assert.assertTrue(Assert.java:41)

org.jboss.as.test.integration.respawn.RespawnHttpTestCase.testReloadHcButNotServersWithFailedServer: java.lang.AssertionError: Did not have all running processes [Process{id=3280, process=Host Controller}, Process{id=1672, process=respawn-two}]
	at org.junit.Assert.fail(Assert.java:88)
	at org.jboss.as.test.integration.respawn.RespawnHttpTestCase.waitForProcesses(RespawnHttpTestCase.java:518)

org.jboss.as.test.integration.respawn.RespawnHttpTestCase.testDomainRespawn: java.lang.AssertionError: Did not have all running processes [Process{id=3280, process=Host Controller}, Process{id=1672, process=respawn-two}]
	at org.junit.Assert.fail(Assert.java:88)
	at org.jboss.as.test.integration.respawn.RespawnHttpTestCase.waitForProcesses(RespawnHttpTestCase.java:518)

org.jboss.as.test.integration.respawn.RespawnHttpTestCase.testReloadHc: java.lang.AssertionError: Did not have all running processes [Process{id=3280, process=Host Controller}, Process{id=1672, process=respawn-two}]
	at org.junit.Assert.fail(Assert.java:88)
	at org.jboss.as.test.integration.respawn.RespawnHttpTestCase.waitForProcesses(RespawnHttpTestCase.java:518)

org.jboss.as.test.integration.respawn.RespawnHttpTestCase.testReloadHcButNotServers: java.lang.AssertionError: Did not have all running processes [Process{id=3280, process=Host Controller}, Process{id=1672, process=respawn-two}]
	at org.junit.Assert.fail(Assert.java:88)
	at org.jboss.as.test.integration.respawn.RespawnHttpTestCase.waitForProcesses(RespawnHttpTestCase.java:518)

Core - Full Integration Build 300 outcome was FAILURE using a merge of 2b7cdbcbbcd7139dc6bab32fb91489fabf2af35e
Summary: Tests failed: 1 (1 new), passed: 2832, ignored: 430 Build time: 0:51:23
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.ws.wsse.signencrypt.EJBSignEncryptMultipleClientsTestCase.encryptedAndSignedRequestFromAlice: javax.xml.ws.WebServiceException: Could not send Message.
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:152)

Agreed; a utility in ParseUtils would be better.

Linux Build 1105 is now running using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f

Windows Build 807 is now running using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f

Core - Full Integration Build 385 is now running using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f

Windows Build 807 outcome was SUCCESS using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f
Summary: Tests passed: 2956, ignored: 95 Build time: 0:15:50

Linux Build 1105 outcome was SUCCESS using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f
Summary: Tests passed: 2956, ignored: 95 Build time: 0:19:45

Core - Full Integration Build 385 outcome was FAILURE using a merge of ceb3ecd1423ce0d97dec28bf5c0cf6cb674e824f
Summary: Tests failed: 1, passed: 2867, ignored: 377 Build time: 0:41:49
Build problems:
Failed tests detected
Failed tests
org.jboss.as.test.integration.ws.wsse.signencrypt.EJBSignEncryptMultipleClientsTestCase.encryptedAndSignedRequestFromAlice: javax.xml.ws.WebServiceException: Could not send Message.
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:152)


Pass errors from createReadStream() into response

Currently createReadStream() will not propagate an error when it should, eg if you call it on a file that does not exist. This PR causes the error to be correctly passed into the responding stream. (I would've expected pump() to do that but for some reason it doesn't).

Strange that pump isn't handling this, but merging.

Pump does propagate it using call.destroy. If this was indeed needed it looks to me like some other bug. This needs a test case imo


Edit multiple fields of a record

I have a mysql result that are echoed onto a table with rows that looks like this:
ID          name          gender          age          action
1            john           male             26            [edit button]
2            jane           female          23            [edit button]
is it possible with this plugin to press the edit link and edit all those database fields that belongs to each record. so for example when i press the edit button on first row i am able to edit ID, john, male, 26 and save them to database?
If so how would the code look like?
The closest solution I have found with this plugin is the address example on the demo page:
http://vitalets.github.io/x-editable/demo.html
But I am not aware on how to achieve this.
How would the edit button code look like and how would the javascript look like for me to do this?
Thanks in advance

I was looking for the same feature. This can be done in angular version, I thought it can be done with bootstrap too.

This is sad. I had to move away from X-Editable for the same reason. :( 👎

@sambhav-caroobi What did you use instead? I'm looking for the same thing.

Almost 2020 and still the same here :(

Eu mesmo tive que fazer o tratamento no back-end!
Alguma dica de outro editable que faça esse segundo save?


[Bug] Null reference in BitcoinSerializableJsonConverter

Raised by PistolPete in discord

@fassadlr is everything tested and syncing smoothly?

@bokobza I have synced stratis testnet and tested with PistolPetes wallet to ensure that the node starts up correctly. Staking also works as per usual. I'm busy syncing the other chainz.

Also look at this issue I raised yesterday, it's related.
https://github.com/stratisproject/StratisBitcoinFullNode/issues/1582
This happens when you hav a wallet in your folder, so that's something to be tested as well.

tested with PistolPete's wallet

Cool, missed that.
so just the CreateBitcoinStream method then.

I missing some kind of explanation of the bug and the fix. Where does DefaultConsensusFactory come from and how is that we don't need to get it from the Network?


add: Jaya Kumari

Description

Added jaya005.json in public/data folder
Updated ProfilesList.json in src/

Related Issues
Changes Proposed
Mentioned above
Checklist

[x] I have read and followed the Contribution Guidelines.
[x] All new and existing tests passed.
[x] I have updated the documentation to reflect the changes I've made.
[x] My code follows the code style of this project.
[x] The title of my pull request is a short description of the requested changes.

Screenshots
Note to reviewers
Thank You for this opportunity of contribution in Hacktoberfest!

Hi @jaya005 , thanks for your interest in contributing to DevDisplay!
Before we proceed, we noticed you adding your profile on #DevDisplay but forgot to star the repo. It's like making an amazing sandwich and forgetting to take a bite! -- I think our repo's feeling a little lonely without your 🤗 So, be sure to star the DevDisplay GitHub Repository. 🌟
💌 This is a mandatory step for all contributors. & It's is the first priority of contribution in DevDisplay 💌
🚀 We look forward to your contribution once these steps are completed. 🚀
Thanks 👍🏻


improvement using configuration file

These data fields are slightly different based on the network, so  we would like to use a JSON configuration file for parsing the data elements rather than hard coding the logic for every use case.
The goal is to allow for ascii, XML, or JSON requests into the library and transpose the message data.
Example: https://github.com/kamshory/ISO8583-JSON-XML

SPEC
Learn more about ISO8583
https://en.wikipedia.org/wiki/ISO_8583
https://www.codeproject.com/Articles/100084/Introduction-to-ISO
https://github.com/moov-io/iso8583/blob/base-logic-pkg/docs/iso8583.pdf
https://github.com/moov-io/iso8583/blob/base-logic-pkg/docs/MDSSEC04.PDF

JSON configuration file
We need to use JSON configuration file to specify any card messaging,
Although don't take all of the specification documents of ISO8583, we can get a hint of JSON configuration from the link http://iso8583.free.fr
JSON configuration file should contain protocol encoding definition and data elements definition.

message checker
we can check any message of ISO 8583 with ISO8583Editor and ISO8583_1987.pro (https://github.com/moov-io/iso8583/blob/base-logic-pkg/docs/ISO8583_1987.pro)

https://github.com/moov-io/iso8583/pull/20


npm workspaces path issues

I'm trying to install a library for an electron app I am writing
In the library they use
const lib = require('node-gyp-build')(__dirname);

to load the module.
This seems correct based on the README here. However, my project uses npm workspaces and this is causing a problem:
__dirname evaluates to myproject/packages/mypackage even though the library is actually installed to myproject/node_modules/library
The end result being an error:
 No native build was found for platform=win32 arch=x64 runtime=node abi=93 uv=1 libc=glibc node=16.18.1

I'm not sure how to proceed -- ultimately I could patch the package to force it to use the correct path but I'm curious if there is a more reasonable path forward for supporting npm workspaces using this tool

We have the same issue.


BUG: groupby rolling adaption

Describe the bug
We've implement xorbits._mars.dataframe.groupby.rolling.GroupByRolling, and need to add an adapter for it.
To Reproduce
To help us to reproduce this bug, please provide information below:

Your Python version
The version of Xorbits you use
master
Versions of crucial packages, such as numpy, scipy and pandas
Full stack of the error.
Minimized code to reproduce the error.

In [1]: import xorbits.pandas as pd

In [2]: df = pd.read_csv('stock.csv', index_col=0, parse_dates=True)

In [3]: df.groupby(
   ...:         ['StockName']).rolling(window=10).mean(numeric_only=True)[['Open', 'High', 'Low', 'Close'
   ...: , 'Volume']]
Out[4]: DataFrame <op=DataFrameIndex, key=d21f5134e213a596827c24722f2df7e4_0>

mini_stock.csv
Expected behavior
Computation should be triggered.
Additional context

take


Missing font Inter Tight

I can't find Inter Tight in google_fonts packages is it missing? Or how to load font dynamic with the font name?

4.0.0 is the version set to be published, I think we can go ahead and do that, WDYT @esouthren ? The Noto fonts will take a while to be added.


ApI not working or accpecting the Api key

The intergation has stopped working, So deleted the intergation and reinstalled with the correct API key and it doesnt accpect it suggesting that a error has occured:
so I've filled out the following questions and these are the answers below:
Products*
Core Weather Limited Trial
MinuteCast
MinuteCast Limited Trial
Where will the API be used? * Desktop Website
What will you be creating with this API? *
Internal App
Is this for Business to Business or Business to Consumer use? *
Business to Business
Is this Worldwide or Country specific use? *
Country ( Aus )
After obtaining the key cut and paste this into home assistant and it says a error has occured

Read the documentation https://www.home-assistant.io/integrations/accuweather/


Test run starts server

Describe the bug
I upgraded to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>My test command is defined like this: "test": "vitest --run"
Now, whenever I run the tests they also start the built in server. However it fails with:
Uncaught SyntaxError: The requested module '/node_modules/react-redux/lib/index.js?v=fe7be4c4' does not provide an export named 'useDispatch' (at hooks.ts:1:10)

But really, the server shouldn't be started at all.
My vite.config.ts looks like this:
import * as child_process from "child_process";

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

const commitHash = child_process.execSync("git rev-parse --short HEAD").toString();

// https://vitejs.dev/config/
export default defineConfig({
    plugins: [react()],
    define: {
        GIT_COMMIT_HASH: JSON.stringify(commitHash)
    },
    server: {
        open: true
    }
});

However if I change defineConfig to a callback it won't start the server:
import * as child_process from "child_process";

import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

const commitHash = child_process.execSync("git rev-parse --short HEAD").toString();

// https://vitejs.dev/config/
export default defineConfig(() => ({ // <-- notice callback style
    plugins: [react()],
    define: {
        GIT_COMMIT_HASH: JSON.stringify(commitHash)
    },
    server: {
        open: true
    }
}));

With this little change the server now won't be started during a test run. (the behaviour is the same for single test runs and code coverage runs)
vitest.config.ts looks like this:
import { defineConfig, mergeConfig } from "vitest/config";
import viteConfig from "./vite.config";

export default mergeConfig(
    viteConfig,
    defineConfig({
        test: {
            environment: "jsdom",
            setupFiles: "./tests/setup.ts"
        }
    })
);

Unless I'm doing something wrong, it shouldn't behave like this. At least I couldn't find anything in the documentation
Reproduction
See above
System Info
System:
    OS: macOS 13.1
    CPU: (8) arm64 Apple M1
    Memory: 64.86 MB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 16.14.2 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 8.5.0 - /usr/local/bin/npm
  Browsers:
    Chrome: 116.0.5845.110
    Safari: 16.2
  npmPackages:
    @vitejs/plugin-react: ^4.0.4 => 4.0.4
    @vitest/coverage-v8: ^0.34.3 => 0.34.3
    vite: ^4.4.9 => 4.4.9
    vitest: ^0.34.3 => 0.34.3

### Used Package Manager

yarn

### Validations

- [X] Follow our [Code of Conduct](https://github.com/vitest-dev/vitest/blob/main/CODE_OF_CONDUCT.md)
- [X] Read the [Contributing Guidelines](https://github.com/vitest-dev/vitest/blob/main/CONTRIBUTING.md).
- [X] Read the [docs](https://vitest.dev/guide/).
- [X] Check that there isn't [already an issue](https://github.com/vitest-dev/vitest/issues) that reports the same bug to avoid creating a duplicate.
- [X] Check that this is a concrete bug. For Q&A open a [GitHub Discussion](https://github.com/vitest-dev/vitest/discussions) or join our [Discord Chat Server](https://chat.vitest.dev).
- [X] The provided reproduction is a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) of the bug.

I am experiencing exactly the same issue, vite serve gets started as well during the vitest process, downgrading to 0.34.2 solved the issue

To avoid this you can put this in your vite.config.ts :
export default defineConfig(({command, mode, ssrBuild}) => {
 return {
   ...
   server: {
     open: mode !== 'test',
   }
 }
});

I created #4044 for the same reason; some similar workarounds are mentioned there.
It still does seem to me that this is not great behavior to change on a patch release, especially since the symptoms / cause are not completely obvious at first glance, nor do they seem to line up with changes in the release notes.

I have also encountered a different issue in vitest 0.34.3 with spawning browser, it may be related.
My project has a dependency that internally imports a css file.
If I use server: { open: mode !== 'test' } option with --experimentalVmThreads option, vitest throws Error: Failed to load url Does the file exist?
If I use server: { open: true } option with --experimentalVmThreads option, a browser window will pop up, the test can only pass in my local environment, and failed on CI because we can't open the a browser window in CI.
Is there a better way to solve the issue?

This looks like a duplicate of my issue #4052 and should be fixed in v0.34.4


platform(d1): persistent boot

Currently, we can only boot MnemOS on the D1 by writing the kernel directly into the D1's DDR using xfel. This is not ideal. Instead, we should be able to put the kernel image either in flash or on the SD card, and have the device bootload itself when it comes out of reset.
per @jamesmunns in issue #120:

This is probably going to involve a couple things:

Figuring out how to prepare a binary image that the D1 will recognize and start booting from
Writing some kind of early stage bootloader (could be the whole kernel at first lol)
Figuring out how much of the SD card the hardware will load for us
Initializing the DDR3 memory
Booting without the help of XFEL

I think the oreboot/rustsbi crates have at least figured out part of this (preparing an image, and initializing the DDR3 memory), though it may have been from a SPI flash and not an SD card, though the stock MQ-Pro boards do not come with SPI flash, so we would have to solder our own on.

per @orangecms in https://github.com/tosc-rs/mnemos/issues/120#issuecomment-1616595458:

All that the D1 needs to boot from any media is the special eGON header. On SD cards, it needs to be at a specific offset. See here further down: https://linux-sunxi.org/Allwinner_Nezha#U-Boot
We have the header implemented in oreboot; see the sunxi/nezha mainboard directory, ant bt0/main.rs under it. A checksum is filled in via xtask.

So, it sounds like we can boot directly from SD if we can make an eGON header and put it at the right offset. Adding SPI flash to the MnemOS breakout board is (probably?) not necessary?  The sunxi wiki explains the eGON header format here: https://linux-sunxi.org/EGON
(sidenote: every time I see "eGON header" i immediately think of Egon from Ghostbusters)

Oreboot's D1 stage0 lives here. In particular, we can see their eGON header here: https://github.com/oreboot/oreboot/blob/2ce5277b86d07b1e1c680397a38cbaa59ce43a6a/src/mainboard/sunxi/nezha/bt0/src/main.rs#L65-L80
They have a cargo xtask that does most of the flashing work: https://github.com/oreboot/oreboot/blob/main/xtask/src/sunxi/nezha.rs

And, @luojia65 also has a D1 stage0: https://github.com/luojia65/test-d1-flash-bare/blob/bd653f4a7cee4b4a95af4ce82e43beda1de9cf38/test-d1-flash-bt0/src/main.rs (fairly similar to Oreboot). The eGON header is here: https://github.com/luojia65/test-d1-flash-bare/blob/bd653f4a7cee4b4a95af4ce82e43beda1de9cf38/test-d1-flash-bt0/src/main.rs#L76-L91
The eGON header's checksum and length fields are populated by a cargo xtask similar to Oreboot's, the code for calculating this is here: https://github.com/luojia65/test-d1-flash-bare/blob/bd653f4a7cee4b4a95af4ce82e43beda1de9cf38/xtask/src/main.rs#L155-L193

@luojia65's repo looks like it burns the boot code into flash. Oreboot's xtask looks like it just outputs a .bin file with the payload. If we want to boot directly from SD with no SPI flash (assuming that's possible?), we would  probably need a slightly different workflow for preparing an image that can be written to a SD card.

Correct. The mask ROM of the D1 - like with most Allwinner SoCs - goes around and probes different storage media, including SD card. If all fail to present the eGON header, it falls back to FEL mode.
For the SD card, the header needs to start at an offset of 16*8k (0x2_0000), or at a later one (please see the sunxi wiki for ref).
For history: We worked with luojia to get the whole thing up and running, eventually brought it into oreboot.
Note that oreboot is still being developed further. If you want DRAM (512MB works with the current code), and then load a payload from an SD card (I started that but it's unfinished, see the PRs and feel free to help out), then using oreboot without SBI would be a perfect choice for MnemOS.
Loading from flash is implemented already and works. In fact, I had already demoed booting MnemOS from flash a year back:
https://twitter.com/OrangeCMS/status/1553080059526889472

That's great, thanks for all the additional context @orangecms! I think we would love to potentially contribute back to upstream Oreboot.

Here is minimal bootloader based on the oreboot nezha boot0.
You can put it on a SD card and it will load 1MB of data (the mnemos binary) into DRAM.
oreboot-bt0.tar.gz
To create the SD card
sudo dd if=oreboot-nezha-bt0.bin of=/dev/sdX bs=1024 seek=8
sudo dd if=mnemos.bin of=/dev/sdX bs=1024 seek=40

I tested it on the lichee rv (dock pro), but hopefully it will also work on the MangoPi mq pro.
I can verify that mnemos is running, but there are still some issue that I need to tackle.
For instance, if I make this change in bin/lichee-rv.rs
     let mut p = unsafe { d1_pac::Peripherals::steal() };
-    let uart = unsafe { kernel_uart(&mut p.CCU, &mut p.GPIO, p.UART0) };
+    let mut uart = unsafe { kernel_uart(&mut p.CCU, &mut p.GPIO, p.UART0) };
     let spim = unsafe { kernel_spim1(p.SPI_DBI, &mut p.CCU, &mut p.GPIO) };
     let i2c0 = unsafe { twi::I2c0::lichee_rv_dock(p.TWI2, &mut p.CCU, &mut p.GPIO) };
     let timers = Timers::new(p.TIMER);
     let dmac = Dmac::new(p.DMAC, &mut p.CCU);
     let plic = Plic::new(p.PLIC);

+    uart.write(b"Hello World?");
+
     let d1 = D1::initialize(timers, uart, spim, dmac, plic, i2c0).unwrap();

I can see Hello World? being printed, but nothing else, while I do see 'hello' messages when loading with xfel.
So the UART seems to be initialized properly, maybe the issue is with the DMA.
I'll dig into this, seems like a good opportunity to get familiar with the code.

I've also tested booting from SD on the MangoPi MQ Pro, using @jspngh's instructions.
I can confirm that the UART doesn't seem to work, and SPI also doesn't seem to work (the Beepy's SHARP display never comes up). However, we do successfully cycle the Beepy's RGB LED colors, so I2C does seem to work. This further implicates some kind of issue with DMA transfers, since both the UART and SPI drivers use the DMAC, but the I2C driver (currently) does not.

With the merge of #192, it is now possible to boot from an SD card using the oreboot bt0.
However this currently is hardcoded to a Linux payload, so for now we will have to use a slightly modified version
which you can find in the mnemos branch of my oreboot fork.
I want to propose both a short-term and long-term plan for persistent boot:

Short term
When the SMHC driver has been developed, we can develop a custom first-stage bootloader based on the MnemOS code. This will make it easier to make adaptations that we want, provide build instructions, create a just recipe to build and flash the bootloader to an SD card, ...
The only potential issue I see here is the DRAM initialization code, any (C or Rust) version I have seen is either GPL licensed or does not have a license. Can we add a single module / file which has a GPL license instead of the default MIT + Apache? Another approach could be to develop our own reverse-engineered version based on the assembly file from Allwinner (but I think this file was technically also GPL licensed?).
Long term
If MnemOS were to become a real RISC-V OSTM, it will need to use the supervisor-binary interface.
We can at this point move back to oreboot and use "full" oreboot + RustSBI.
However, I don't think oreboot is ready right now to support alternative (non-Linux) payloads, so this would have to be discussed with the oreboot team (if they want to make this possible for us / accept PR's to make this possible).

@hawkw @jamesmunns please let me know what you think about these ideas.

So, in terms of licensing:

Can we add a single module / file which has a GPL license instead of the default MIT + Apache? Another approach could be to develop our own reverse-engineered version based on the assembly file from Allwinner (but I think this file was technically also GPL licensed?).

Not generally, no. The way GPL generally works is that if you "ship it together", like in a binary image, then everything that gets shipped together is GPL.
However, we could have a GPL bootloader project, that uses both the GPL DRAM code as well as the MIT+Apache2 mnemos components. I'd prefer that this lives in a separate repo in the tosc-rs space, and not in the main mnemos/ repo.
Just as a question, does the xboot dram init also come from the GPL'd unlicensed chunks? Or is there enough there to build our own dram init code?

If MnemOS were to become a real RISC-V OS :TM:, it will need to use the supervisor-binary interface.

I'm not against this, but I admit to not really understanding what SBI gets us. I think it's a sort of abstraction layer that would allow us to potentially run mnemos on more targets, but AFAIU it doesn't generally cover hardware drivers for all of those targets? Or if it does, we would need to "fall back" to using probably blocking system call style drivers instead of native async drivers?

So, in terms of licensing:

Can we add a single module / file which has a GPL license instead of the default MIT + Apache? Another approach could be to develop our own reverse-engineered version based on the assembly file from Allwinner (but I think this file was technically also GPL licensed?).

Not generally, no. The way GPL generally works is that if you "ship it together", like in a binary image, then everything that gets shipped together is GPL.
However, we could have a GPL bootloader project, that uses both the GPL DRAM code as well as the MIT+Apache2 mnemos components. I'd prefer that this lives in a separate repo in the tosc-rs space, and not in the main mnemos/ repo.
Just as a question, does the xboot dram init also come from the GPL'd unlicensed chunks? Or is there enough there to build our own dram init code?

As far as I know, everyone started from the same assembly file that is also included in xboot.
The sunxi wiki lists this as "with a GPL2 license tag from the very beginning", but I would have to go look for the original source to confirm this.
I don't think anyone would take issue if we create another Rust version based on this assembly file and license it MIT + Apache2, since xboot is currently also shipping it under an MIT license.
Creating a separate repo could also work.

If MnemOS were to become a real RISC-V OS :TM:, it will need to use the supervisor-binary interface.

I'm not against this, but I admit to not really understanding what SBI gets us. I think it's a sort of abstraction layer that would allow us to potentially run mnemos on more targets, but AFAIU it doesn't generally cover hardware drivers for all of those targets? Or if it does, we would need to "fall back" to using probably blocking system call style drivers instead of native async drivers?

My limited understanding: the supervisor binary is given access to the peripheral memory region, so it can implement its own (async) drivers. The SBI is only used for the limited set of functionality that is listed on the page I linked.
It's something we can think about, but it'll be a long time before any decision has to be made.
If MnemOS were to really take off, this is a request that could pop up again if somebody wants/needs it.

Hey there, let me chime in again. :-)
The SBI is just a soft platform definition matter. You can bring your own full stack and part of that would be your own handlers for calling from S-mode into M-mode (which is what the SBI spec tries to standardize).
Running an OS in M-mode is possible just like that and something we deliberately support in oreboot.
Our approach is to either let you fully bring your M-mode payload, so you would build oreboot with your own payload as a build argument to it, or leverage LinuxBoot, which means we use a Linux kernel as the payload that comes with a little userland that implements boot loaders. For that, we use https://u-root.org - so that you can put your OS on an SD card, on the network, on a USB drive or whatever you like, and the u-root enivronment can load any of that because it uses the drivers that Linux already has for all those peripherals. Does that make sense?

Thanks for the explanation @orangecms.
I imagined the SBI was more fundamental when it came to operating systems on RISC-V, but it seems we are free to choose what we want :smile:.

we can boot from a SD card now, so i think this is potentially close-able?

Indeed, maybe I should have done that as part of PR #190?
I can close it now, or you can go ahead and do it too of course.


[WIP] Updated feature to remove all chips from the layout - 'removeAllChips()'

[WIP] Updated feature to remove all chips from the layout - 'removeAllChips()'

[WIP] Updated fea-ture to remove all chips from the layout - 'removeAllChips()'


ProviderFailed when running a ACI container using virtual kubelet

Error from server (InternalError): Internal error occurred: error getting container logs?): api call to https://management.azure.com/subscriptions/ddb45f69-d4fe-4d69-b32e-262360763207/resourceGroups/MC_k8sresourcegroup_akscluster_westeurope/providers/Microsoft.ContainerInstance/containerGroups/default-aci-helloworld-7b9ffbf946-5v6ww?api-version=2018-09-01: got HTTP response status code 404 error code "ResourceNotFound": The Resource 'Microsoft.ContainerInstance/containerGroups/default-aci-helloworld-7b9ffbf946-5v6ww' under resource group 'MC_k8sresourcegroup_akscluster_westeurope' was not found.

@girishgouda
Thanks for your question. Please provide us with the link to the documentation you are referring to so we can better assist.

@girishgouda Since this issue is a duplicate of https://github.com/MicrosoftDocs/azure-docs/issues/29780
we will close this issue and help on the other one.


Add S3 bucket management

Is your feature request related to a problem?
We should move S3 bucket management back to this repositoy.
Describe the solution you'd like
Move the S3 manager from our private repo bucket-manager to this repo.
Functionality wise nothing needs to be changed (I think), we need to update the README with new instuction on how to create and remove buckets.
The script(s) should be put under scripts/, it is probably not nessecary to make the creation and deletetion of buckets into a sub-command of bin/ck8s.
Describe alternatives you've considered
Additional context
Definition of done:
S3 buckets are managed from within this repository.

Please remember to update the pipeline also! :slightly_smiling_face:


[cryptotest] Make sure to init the entropy complex

The entropy complex starts with a fixed amount of entropy and does not generate more in the default configuration. Initialize the complex in auto mode, so long-running tests don't run out.
Fixes #20277

LGTM, but I didn't check it on the FPGA.
Thanks for taking care of this @a-will !

On the FPGA, I only checked the aes_kat_test, which is still commented out in this PR. At a run time of over 9 minutes, it is a rather long test, and I felt that decisions about how to handle it in CI should be left for another engagement, haha.
//sw/device/tests/crypto/cryptotest:aes_kat_test_fpga_cw310_test_rom     PASSED in 543.3s

Nice!
Yes, I believe we always have to be aware of the entropy complex remaining in boot mode. Maybe we should create some kind of check list on what to do in case of unexpected test failures?


SwitchBot Humidifier and Meter

Thanks to SwitchBot for sending me Humidifier, Meter (and one additional device that is NOT Curtain).
The challenge is to add SwitchBot Humidifier and Meter in Home Assistant - without using ESP board as Bluetooth gateway.
And for that I've used SwitchBot API that allows you to communicate with devices via GET/POST.
Official documentation will help you on following steps.
First you need to install the app as per manual and add devices into SwitchBot app.
Next step is to enable developers menu and retrieve API key from mobile app.
From any command line (you can use HA terminal for this) type following command:
curl -H "Authorization: API_KEY" https://api.switch-bot.com/v1.0/devices
This will list ALL devices that are attached to SwitchBot App.
Find DeviceID that matches device you want to add - for ex:
{"statusCode":100,"body":{"deviceList":[{"deviceId":"AAAAAAAA","deviceName":"Humidifier ","deviceType":"Humidifier","enableCloudService":true,"hubDeviceId":"000000000000"},{"deviceId":"BBBBBBBB","deviceName":"Temp","deviceType":"Meter","enableCloudService":false,"hubDeviceId":"000000000000"},"message":"success"}
Here you can see 2 devices - deviceID: AAAAAAAA for Humidifier and deviceID: BBBBBBBB for Meter.
For Home Assistant we will need API KEY and device id for both Humidifier and Meter if you have it - if you don't have it, just skip.
We can start with switch in Home Assistant to enable power on/off function for Humidifier.
in switch section of configuration.yaml (or in switch.yaml) add following:
platform: command_line
switches:
  switchbot_humidifier:
    command_on: "/usr/bin/curl -X POST -H 'Content-Type: application/json' -H 'Authorization: API_KEY' -d '{\"command\": \"turnOn\"}' https://api.switch-bot.com/v1.0/devices/DEVICE_ID/commands"
    command_off: "/usr/bin/curl -X POST -H 'Content-Type: application/json' -H 'Authorization: API_KEY' -d '{\"command\": \"turnOff\"}' https://api.switch-bot.com/v1.0/devices/DEVICE_ID/commands"
    friendly_name: Switchbot Humidifier

Just substitute with your API_KEY and DEVICE_ID of your Humidifier.
(If you want to use secrets file, just copy whole command to secrets file).
NOTE: In order for code below to work, you have to add to secrets.yaml file following variables:
sbot_api: YOUR_SWITCHBOT_API_KEY
sbot_hum_on: "/usr/bin/curl -X POST -H 'Content-Type: application/json' -H 'Authorization: API_TOKEN ' -d '{\"command\": \"turnOn\"}' https://api.switch-bot.com/v1.0/devices/DEVICE_ID/commands"
sbot_hum_off: "/usr/bin/curl -X POST -H 'Content-Type: application/json' -H 'Authorization: API_TOKEN' -d '{\"command\": \"turnOff\"}' https://api.switch-bot.com/v1.0/devices/DEVICE_ID/commands"
sbot_humidifier: "https://api.switch-bot.com/v1.0/devices/DEVICE_ID/status"
sbot_meter:  "https://api.switch-bot.com/v1.0/devices/DEVICE_ID/status"

Sample switch for SwitchBot Humidifer - it needs to be under switch: section in Home Assistant:
platform: command_line
switches:
  switchbot_humidifier:
    command_on: !secret sbot_hum_on
    command_off: !secret sbot_hum_off
    friendly_name: Humidifier

Example of RESTful JSON call for SwitchBot Humidifier - add to rest: section in Home Assistant:
resource: !secret sbot_humidifier
method: GET
scan_interval: 900
headers:
  Authorization: !secret sbot_api
  Content-Type: 'application/json'
sensor:
  name: Switchbot Humidifier json
  value_template: '{{ value_json.body }}'
  json_attributes_path: "$.body"
  json_attributes:
  - deviceId
  - deviceType
  - nebulizationEfficiency
  - humidity
  - auto
  - childLock
  - sound
  - power
  - temperature
  - lackWater

Example sensors for SwitchBot Humidifier - add to sensors: section in Home Assistant:
platform: template
sensors:
  switchbot_humidifier_temp:
    friendly_name: "Humidifier Temperature"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["temperature"] }}'
    unit_of_measurement: "°C"
    device_class: "temperature"
  switchbot_humidifier_humidity:
    friendly_name: "Humidifier humidity"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["humidity"] }}'
    unit_of_measurement: "%"
    device_class: "humidity"
  switchbot_humidifier_nebulization:
    friendly_name: "Humidifier nebulization"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["nebulizationEfficiency"] }}'
    unit_of_measurement: "%"

Example of binary sensors for SwitchBot Humidifier - add to binary_sensors: section in Home Assistant:
platform: template
sensors:
  switchbot_humidifier_childlock:
    friendly_name: "Humidifier Child Lock"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["childLock"] }}'
  switchbot_humidifier_sound:
    friendly_name: "Humidifier Sound"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["sound"] }}'
  switchbot_humidifier_power:
    friendly_name: "Humidifier Power"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["power"] }}'
    device_class: "power"
  switchbot_humidifier_water:
    friendly_name: "Humidifier Water"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["lackWater"] }}'
    device_class: "problem"

Here is example of code (with links to current version) for SwitchBot Meter.
Example of RESTful JSON call for SwitchBot Meter - add to rest: section in Home Assistant:
resource: !secret sbot_meter
method: GET
scan_interval: 900
headers:
  Authorization: !secret sbot_api
  Content-Type: 'application/json'
sensor:
  name: Switchbot Meter json
  value_template: '{{ value_json.body }}'
  json_attributes_path: "$.body"
  json_attributes:
  - deviceId
  - deviceType
  - humidity
  - temperature

Example of sensors for SwitchBot Meter - add in sensors: section of Home Assistant:
platform: template
sensors:
  switchbot_humidifier_temp:
    friendly_name: "Humidifier Temperature"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["temperature"] }}'
    unit_of_measurement: "°C"
    device_class: "temperature"
  switchbot_humidifier_humidity:
    friendly_name: "Humidifier humidity"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["humidity"] }}'
    unit_of_measurement: "%"
    device_class: "humidity"
  switchbot_humidifier_nebulization:
    friendly_name: "Humidifier nebulization"
    value_template: '{{ states.sensor.switchbot_humidifier_json.attributes["nebulizationEfficiency"] }}'
    unit_of_measurement: "%"

Hi,
i tried to get the Switchbot Humidifier to integrate as per your informations. It fetches the configuration correctly, but it seems that the commands are sent but not correctly handled (on/off switch)
Log File:
2022-03-28 17:14:05 INFO (SyncWorker_3) [homeassistant.components.command_line.switch] Running command: /usr/bin/curl -X POST -H 'Content-Type: application/json' -H 'Authorization: API_TOKEN' -d '{"command": "turnOff"}' https://api.switch-bot.com/v1.0/devices/DEVICEIDHIDDEN/commands
(of course withe the correct deviceid...) if i try this manually in the cli i get:
{"message": "Could not parse request body into json: Could not parse payload into json: Unexpected character ('\' (code 92)): was expecting double-quote to start field name\n at [Source: (byte[])"{\n  "operation": "deviceCommand",\n  "deviceID": "AC67B2D7EF8E",\n  "body" : {\"command\": \"turnOn\"},\n  "version" : 1,\n  "userName":"SignInWithApple_XXXXX",\n  "userID":"fXXXXX",\n  "platform":"openApi"\n}"; line: 4, column: 14]"}#
if i do it without the \ :
{"statusCode":100,"body":{},"message":"success"}
i cannot see if the rest call is going thru with the parameters in HA, at least in debug i do not see a success message
Can you help ?


Build a different model for each provider

The default ModelCacheKey seems to only create a new model per context type, rather than also taking the provider into account. I think this stems from a long time ago when we wanted to have "one model to rule them all". Its not appropriate with the current code primarily because we have provider-specific conventions, but also because we want to be able to support different models per provider when different providers needs fundamentally different structure.
See #6765

Oops. I forgot IModelSource handles this--different source per provider. :-)


Board Review: Azure.ResourceManager.Core

Thank you for submitting this review request. Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
To ensure consistency, all Tier-1 languages (C#, TypeScript, Java, Python) will generally be reviewed together.  In expansive libraries, we will pair dynamic languages (Python, TypeScript) together, and strongly typed languages (C#, Java) together in separate meetings.
For Tier-2 languages (C, C++, Go, Android, iOS), the review will be on an as-needed basis.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
Contacts and Timeline

Responsible service team: .NET management sdk
Main contacts: Michael Nash
Expected code complete date: mid July
Expected release date: end of July

About the Service

Link to documentation introducing/describing the service: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager.Core/README.md
Link to the service REST APIs: We are taking a few of the apis from Resources and one from ManagementGroup and moving them to the core package since they are common across all other RPs
Link to GitHub issue for previous review sessions, if applicable:

About the client library

Name of the client library: Azure.ResourceManager.Core
Languages for this review: dotnet

Artifacts required (per language)
Please read through “API Review” section here to understand how these artifacts are generated. It is critical that these artifacts are present and are in the right format. If not, the language architects cannot review them with the SDK Team’s API review tool.
.NET

APIView Link: WIP https://apiview.dev/Assemblies/Review/65070aab206846e380ea0e17bf9c5b6e
Link to Champion Scenarios/Quickstart samples: https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/resourcemanager/Azure.ResourceManager.Core/samples

For all other languages, send a request to the Architecture Board to discuss the best format on individual basis.
Thank you!

scheduled for 7/20 and 7/21

7/20 Recording[MS INTERNAL ONLY]

7/21 Recording[MS INTERNAL ONLY]


Minor fixes and changes to warnings handling in option checkers

distro/fedora: don't return early from FIPS check in checkOptions()
When the check was first added [1] it was the last in the function and
was written to immediately return.  New checks were added after the
check, without changing the early return, which means invalid
configurations were not caught.
Append to warnings instead of returning.
[1] 665a128f049c62b14285498f753a8c5fdbaa646d

distro/fedora: always return warnings from checkOptions()
Always return the warnings list from checkOptions() so that future
modifications or reshuffling of the checks doesn't drop any warnings
collected before the return.

distro/rhel: always return warnings from checkOptions()
Always return the warnings list from checkOptions() so that future
modifications or reshuffling of the checks doesn't drop any warnings
collected before the return.

distro/rhel: don't print warnings in checkOptions()
When collecting warnings in checkOptions() functions, don't
log.Print() the warning.  Let the caller decide whether to print them,
suppress them, make them errors, format them, etc.

Rebased and resolved conflicts.


disabling persp-mode should not mix a buffer's header-line-format with its default (aka global) value

Hello,
I noticed that disabling persp-mode while in a buffer with a locally modified header-line-format updates the default value of header-line-format to the buffer's local value... i.e. turning off persp-mode while in *Buffer List* (which has its own header-line-format set up) will set the header of buffers which do not have a locally header-line-format set up to the same header of *Buffer List*.
In this PR there's also an ert test to prove it... ;)

Nice catch!


feat: add user invite registration

Homarr

Thank you for your contribution. Please ensure that your pull request meets the following pull request:

[ ] Builds without warnings or errors (pnpm buid, autofix with pnpm format:fix)
[ ] Pull request targets dev branch
[ ] Commits follow the conventional commits guideline
[ ] No shorthand variable names are used (eg. x, y, i or any abbrevation)

Screenshot

lol


[3pt]  - Create feature: add  new like - Student A

When the user clicks on the Like button of an item (on Homepage), the interaction is recorded in the Involvement API and the screen is updated.

you have done amazingly well  working on the like button and update such dynamic feature , please kindly proceed to the next task