Message Store TypeScript Migration.

This PR continues the work done by @jychen630 in the PR #26333. Thanks to her this was already mostly done!
I just rebased the PR and fixed some code related to set_message_booleans, although I don't know if I have typed that function correctly or not.
Problem in this Migration
The main issue of this migration is set_message_booleans function, the issue is that we MUST modify the original message param passed to this function and add additional boolean fields to it, if we try to make a new object with boolean fields with the correct type the app breaks when sending new messages.
My Reasoning
The reason I found for this behaviour was because of the code paths we have for local echo.js module. We have patterns/functions like reify_message_id which modifies the original message objects asynchronously, when sending a
new message we initially populate the id field of message object with a local float id and then via reify_message_id we replace that ID from the correct one when we get it from the server.
So if we decide to clone the parameter of set_message_booleans to make a new object with correct return type, we will be stuck with that local float id and old object in all of the downstream code which breaks the app :(
If anyone have any better ideas on how to tackle this please let me know :)

Self-review checklist

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

Communicate decisions, questions, and potential concerns.

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

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

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

Completed manual review and testing of the following:

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

The raw_message strategy certainly sounds good.

So if we decide to clone the parameter of set_message_booleans to make a new object with correct return type, we will be stuck with that local float id and old object in all of the downstream code which breaks the app :(

Can you talk about how the app breaks, and whether this PR's implementation addresses it or it's an open problem? We have other options than the local float ID for how to manage the fake IDs issue (simplest is to instead use very large numerical IDs like<PHONE_NUMBER>001 with some care taken to be certain that will be larger than any real message ID, like start counting from 2**64 + 1, as message IDs are currently 32 bits and unlikely to be more than 64 bits for a long time).

simplest is to instead use very large numerical IDs like<PHONE_NUMBER>001 with some care taken to

Stoppppp.
We’re writing in a real programming language with real data types—it’s about time we started acting like it.

like start counting from 2**64 + 1

That’s not even a number in JS. The smallest number greater than 2**64 is 2**64 + 4096…

as message IDs are currently 32 bits and unlik

Just use real data types!
We could do
type MessageId = {type: "server"; id: number} | {type: "local"; local_id: number};

or any of a thousand other permutations that don’t require us to screw around with floating-point arithmetic, and won’t fill our code with bugs where we implicitly convert local IDs to server IDs without checking.

Yeah, that's reasonable -- the only thing that's important here is that our sorting functions know that the local ones are higher than all non-local ones, and that's easy to do with any reasonable sorting function.

I think we misunderstood the problem here a bit, Ok I will try to explain why I think creating a new object instead of modifying the original in set_message_booleans function is not working here, it's a little hard to explain though 😅 .
So when we send a new message we do a local echo of it and set a local id on the message object which eventually gets modified in a success callback when we do get real id.
Here is that callback -
https://github.com/zulip/zulip/blob/dadf03536614be670a418b6565c305003fc0f89a/web/src/compose.js#L122-L130
This function gets eventually called by transmit.send_message when jquery ajax request is done. Inside this function we are calling reify_message_id which is responsible for replacing the locally echoed ID with real ID but it does so on the original message request object which was saved in waiting_for_id map in echo.js.
https://github.com/zulip/zulip/blob/dadf03536614be670a418b6565c305003fc0f89a/web/src/compose.js#L209
So now if we decided to do something like this in set_message_booleans function for accurate types:-
export function set_message_booleans(raw_message: RawMessage): MessageWithBooleans {
    const {flags, ...raw_message_without_flags} = raw_message;

    function convert_flag(flag_name: string): boolean {
        return flags.includes(flag_name);
    }

    const message: MessageWithBooleans = {
        ...raw_message_without_flags,
        unread: !convert_flag("read"),
        historical: convert_flag("historical"),
        starred: convert_flag("starred"),
        mentioned: convert_flag("mentioned") || convert_flag("wildcard_mentioned"),
        mentioned_me_directly: convert_flag("mentioned"),
        wildcard_mentioned: convert_flag("wildcard_mentioned"),
        collapsed: convert_flag("collapsed"),
        alerted: convert_flag("has_alert_word"),
    };

    // Once we have set boolean flags here, the `flags` attribute is
    // just a distraction, so we delete it.  (All the downstream code
    // uses booleans.)
    return message;
}

We ends up losing the reference to the original message object which would had correct message.id, but instead now we will have message objects with locally echoed ID only which I think is the problem which is breaking the app! I could be wrong though but I have tried to console.log both raw_message and copied message in the above code snippet to verify my reasoning since browsers logs the objects lazily so any mutations to the object should be visible in log statements, and to my finding in raw_message the browser logs the correct updated server ID but for copied message object it logs the locally echoed floating point ID and that's an issue because now the app is aware of only this copied message object which have an incorrect ID.
Let me know if this sounds just all gibberish 😅  or if needed any more clarification!

@timabbott @andersk Status of this PR - Blocked on this comment.

I probably won't have attention to think about this for the next 2-3 weeks while trying to get 8.0 released, but please be encouraged to work on TS migrations for files that are simple enough to not need significant refactoring like this one does.

I merged https://github.com/zulip/zulip/pull/28115 for the basic migration (I suspect @evykassirer didn't find it in search because you didn't put the filename message_store in the PR description) without the typing improvements you have to the set_message_flags API. I think it could still be useful for you to complete that work in this PR; it'll probably be a lot easier to review without the basic migration combined together with it.


Building liquid-dsp 1.2.0 on Mac OS X with LLVM/Clang

Building the release tarball of version 1.2.0 of liquid-dsp fails when using LLVM/Clang on Mac OS X (documented in troubleshooting section of manual/website). Currently the suggested fix is to use GCC instead (related issue #48), but this is not favored by Homebrew's maintainers (see isse Homebrew/homebrew-core#2664). Therefore I tried to build the latest release with LLVM/Clang and the only issues seems to be the configure script checks for malloc, realloc, free, memset, memmove in libc and sinf, cosf, expf, cargf, cexpf, crealf, cimagf, sqrtf in libm:
checking for malloc, realloc, free, memset, memmove in -lc... no
configure: error: Need standard c library!

and
checking for sinf, cosf, expf, cargf, cexpf, crealf, cimagf, sqrtf in -lm... no
configure: error: Need standard (complex) math library!

Possible fixes:

Release current master if applicable
Patch release for liquid-dsp e.g. 1.2.1 using the relevant changes from master

The patch could simply replace lines 160 to 166 in configure.ac with the corresponding lines in the master branch.
If this patch is applied building with LLVM/Clang succeeds and make check passes (PASSED ALL 42373 CHECKS with WARNINGS : 34).

👍 for a new release. The current master has a lot of good updates.

Like #48 this is no longer an issue with the current version of liquid-dsp (1.3.0).


fix should do before commit check in cloud mode

In cloud mode, there is no before commit check when commit transaction. For routine load, job may be paused during sub task execution. If these transactions are committed, the problem is:

The progress seen by the user may not be accurate. It will consume data repeatedly if they create a new job consumption using this progress.
The user's modification offset operation may be overwritten by the offset of the transaction callback.

run buildall

run buildall

run buildall


Check for required resource

In our RNA-seq differential expression example the STAR alignment uses >32GB memory. It should be familiar to STAR users but could be frustrating for people who has not anticipate it. Shall we add something to depends: statement to check for computational resources beforehand? In particular, memory and available disk space?

Something like the following?
depends: resource(mem='32G')

Looks good. Otherwise I'm wondering if we can consolidate it with one of the existing target (maybe not ... )

Is 'mem='32G'` clear enough, I somehow think the case when some guy wants less than 32G of ram... :smile:

I think mem=32G is clear enough -- is this also our task option convention?
How about disk space? resource(mem='32G', disk='200G')?
Some guy? That somehow sounds familiar ...

Target system_resource is added. Documented here.


Add navigation/cooking mode

To implement this feature, you can follow these steps:

Create a state variable to hold the current slide index.
Create a function to handle the spacebar event.
Add an event listener for the spacebar event.
Create a function to handle the play button click event.
Add CSS classes for active and inactive steps.
Apply the CSS classes conditionally based on the current slide index.

Here's an updated version of your Recipe.tsx component with the changes:
import React, { useState, useEffect } from "react";
import RecipeMultiplier from "./RecipeMultiplier";

// ... other imports

const Recipe = () => {
  // ... your existing state variables

  // Step 1: Create a state variable to hold the current slide index
  const [currentSlide, setCurrentSlide] = useState(0);

  // Step 2: Create a function to handle the spacebar event
  const handleSpacebar = (event: KeyboardEvent) => {
    if (event.code === "Space") {
      setCurrentSlide((prevSlide) => (prevSlide + 1) % recipe.methods.length);
    }
  };

  // Step 3: Add an event listener for the spacebar event
  useEffect(() => {
    window.addEventListener("keydown", handleSpacebar);
    return () => {
      window.removeEventListener("keydown", handleSpacebar);
    };
  }, []);

  // Step 4: Create a function to handle the play button click event
  const handlePlayClick = () => {
    setCurrentSlide((prevSlide) => (prevSlide + 1) % recipe.methods.length);
  };

  // ... your existing functions

  return (
    // ... your existing JSX

Methods

      {/* Step 5: Add the play button */}
      <Button variant="contained" color="primary" onClick={handlePlayClick}>
        Play
      </Button>

        {recipe.methods.map((step, index) => (
          // Step 6: Apply the CSS classes conditionally based on the current slide index

            {step}

        ))}

      {/* ... your existing Notes JSX */}

  );
};

export default Recipe;

And then add the CSS classes in your styles.css:
.active-step {
  font-weight: bold;
}

.inactive-step {
  opacity: 0.5;
}

This implementation will:

Create a state variable currentSlide to hold the index of the current slide.
Create a handleSpacebar function to increment the currentSlide value when the spacebar is pressed.
Use the useEffect hook to add and remove the event listener for the spacebar event.
Create a handlePlayClick function to increment the currentSlide value when the play button is clicked.
Add a play button to your JSX.
Conditionally apply the active-step and inactive-step CSS classes based on the value of currentSlide.

Now, when you press the spacebar or click the play button, the steps will highlight one by one, and the ingredients corresponding to the highlighted step will turn bold, while the other ingredients will turn slightly transparent.

So I'm working on this in the branch play-mode. The issue is that I need every ingredient to be assigned to a step, considering this I thought of expanding the current very simple YAML spec to include more info for ingredients such as: name, quantity, unit, and step. This I could do manually but I have refused (maybe wrong choice) and I've explored options such as having simple recipes in a simple format that then get turned into the slightly more complex yaml format after some fancy regex and nlp token matching. I have then considered incorporating the cooklang language to my recipes but then I have realised that the cooklang spec doesn't include the step info by default and I am not sure how easy it is to extend the language (I've raised an issue in the cooklang-ts repo). Maybe I just do the editing semi manually


Cyrillic error

send(h11.Request(method="GET", target="/get?ttt=ЛДОР",   headers=[("Host", "httpbin.org"),   ("Connection", "close")]))
...
File "/home/wku/anaconda3/lib/python3.6/site-packages/h11/_util.py", line 119, in bytesify
s = s.encode("ascii")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 9-12: ordinal not in range(128)

Yes, URLs on the wire (and h11 is a wire-level library) have to be ascii. Probably you want to encode the target to utf-8, and then percent-encode all the bytes that have their high bit set. See, for example: https://hyperlink.readthedocs.io/en/latest/design.html#a-tale-of-two-representations
Generally h11 wants bytes objects; it also accepts str for convenience in examples and things, but requires the str be pure-ASCII to avoid mistakes.


[feat] Add CLI for using via npx

I would like to run npx merge ./foo.json ./bar.json or similar from my project build scripts.

I've made some early work and want it to be reviewed by the repo maintainers: see https://github.com/ilyaigpetrov/merge.
I need your guidance. I want to deliver code that will be easier for you to maintain. E.g. such things as should I use TypeScript, es modules, where to output the executable script, etc.


How would I use this?

I already googled it, literally found nothing. Would I use tampermonkey? but this isnt user.js? or is it? just really confused...

Make sure the go Lang is installed on your command line. Use the commands in the instructions.
It will prompt you the rest of the instructions.
It probably doesn't work anymore anyway.

I added more instructions to the README. This should help, for now.

I added more instructions to the README. This should help, for now.


Missing course should cause 404 not 500 [wip]

Context
Linking to a missing course was causing a 500 null ref.
Can't 404 from within the view component so have to do a duplicate check. :-(
Changes proposed in this pull request
Check for course existence and 404 if missing
Before trying to render page.
Guidance to review

change of plan, new pr to come.
https://stackoverflow.com/questions/40858676/how-to-return-http-status-codes-for-errors-from-asp-net-core-view-component/52099814#52099814


Add templates to shiny create

Creating the Hello Shiny app doesn't save me much work since I'm never building an app that is as simple as that. But if I could easily specify a different template like shiny create --template=dashboard2x2 and I'd get the rows and cols laid out for me, that would be helpful.

SFP-85 closed in Jira


[Breaking] Higher-Order: Implemented new ref handling to fix React >= 16 warnings

Previously, refs on the wrapped component's instances were created for each branched  component. The refs could then be accessed using the ComposedComponent's getDecoratedComponentInstance method. However, this implementation also assigned refs to Stateless Functional Components (SFCs), which is not supported by React and leads to console warnings by React from version 16 and upwards.
The previous behavior has been replaced, removing the getDecoratedComponentInstance method from the ComposedComponent class, making this a breaking change.
The new implementation takes a new prop decoratedComponentRef and assigns this to the ref of the wrapped component.

Forgot to change tests, working on it...

Thanks @Nimelrian. This seems like a good idea indeed. Isn't there some documentation to edit there? Can't remember if the previous method was even documented.

A quick grep over the repository yielded no further results for getDecoratedComponentInstance, so I guess there is no current documentation.
I'll add a section to the higher-prder docs regarding the new prop.

Thanks @Nimelrian. Do you want me to wait for it to merge the PR, or should I merge right away and release because you need this fast?

If you can 20 minutes with the merge I'll add the doc section beforehand :)

No problem. Take the time you need. I am not in a hurry.

Thanks @Nimelrian. Merging and releasing.

Released v3.0.0.

Thanks for the quick merge, no more warnings in my console 👍


Use TSConfig bases in npm to reduce the number of TSConfigs in a project

🚀 feature request
:wave: - hi folks. I got notified that we could probably improve the default template for an angular project using the tsconfig bases repo. A. quick 5m explainer on the project is here.
Disclaimer: I've never built an Angular app, so some of this is from looking at the base template, and I'm not sure how tsconfig's would evolve over time in large projects.
Relevant Package
ng generate's template
Description
TSConfig files can come from NPM, and TSConfig Bases is a DefinitelyTyped-like tool for making them. Today, there are a few recommended bases for frameworks (svelte, react-native, deno etc) and given there are a few angular TSConfigs then I think it could be possible to move them into node_modules.
So for example there could be

@tsconfig/angular-base
@tsconfig/angular-test

Which the user's projects can extend from.

Currently extending a tsconfig from node_modules will not work properly for the Angular Compiler.
See: https://github.com/angular/angular/issues/36715

Hi @orta, thanks for bringing this up! It's an interesting project to learn about. We talked about this amongst the tooling team and had a few thoughts on the matter.
@tsconfig seems really useful for projects that lack any kind of scaffolding utility (a simple Node script for example) and are not managed by a particular framework or toolchain.
For Angular's case, we already have ng new, which generates all the configuration a user needs. We also support a highly-managed structure, including migrating user code across versions, often including tsconfig.json properties.
If we changed Angular to use @tsconfig/, a couple of the tsconfig files' content could be moved there, though we wouldn't be able to remove the files altogether as they still need to extend the bases. That user benefit is relatively minimal to the structure we already have. It hides some details that may not be important, but also makes it harder for users to follow when it is important.
Even if we did go the route of moving tsconfig files to a dependency package, we would probably ship it under @angular/ or @angular_devkit/ rather than @tsconfig/ just to simplify the release process and so versions could match up more cleanly (for example, v10 projects should link to v10 @tsconfig/ bases). That's the way our .d.ts files are shipped (and recommended by TypeScript) rather than using @types/.
Probably the biggest challenge is that it would complicate migrations. Angular updates user code between major versions to reduce the impact of breaking changes. This would be harder to write and manage if there is an existing configuration inherited from a dependency and more effort to support. It also wouldn't provide any more consistency across Angular applications, because we would still need a tsconfig.base.json just to apply global settings for the project.
As a result of all these points, we don't think it makes sense to have Angular deploy base tsconfig files through @tsconfig/.

ng new already provides most of the same scaffolding benefits.
Using @tsconfig/ would not reduce the number of tsconfig files.
Using @tsconfig/ would arguably make Angular applications' configuration harder to follow.
If we did put tsconfigs into a separate dependency, it would likely be easier to ship it in @angular/ rather than using @tsconfig/.
Migrations would be harder to develop and support with the extra layer of indirection.

@tsconfig/ is definitely a cool project, we just don't think it is a good fit for the highly managed nature of Angular applications as they are today.

Totally reasonable to me 👍


code view app and extra-extra-large task results

The output of some of my actions is very verbose. ie the link on the Results section says: "+5593 more lines".
Scrolling in 6000 lines is not easy. In chrome, I do not see any scrollbars. Could I get scrollbars in the code view?
Accessing the "Back" link is also problematic. Could the back link be fixed to the window instead of scrolling away? Or could something else provide a link back to the top of the page so I can hit the back link?
Thanks!

+1 same experience.
Thanks for reporting it!


fix to #803

Description
using URI.toASCIIString() instead of URI.toString() in GitHubRequest.urlPathEncode()
Notes:

I tried but wasn't permitted to create a new branch in this repo. Therefore, I'm initiating this PR from a fork.
test case and test data are included
mvn -Denable-ci clean install site passes

@reisners  You can manually shorten the paths:
https://github.com/bitwiseman/github-api/commits/issue/803

I've fixed the path, and all checks have now passed
(took me some time because in between the test data repo's org has changed from github-api-test-org to hub4j-test-org).
If you're ok with it, please merge it.

Sorry about the org change, the timing was set by GitHub. Thanks for rolling with it.

No worries, but please review the integration test. Since for lack of privileges I wasn't able to re-record some of the other test cases, I couldn't adapt the org globally. Instead, I create a separate GHRepository object just for the non-ascii test case. Ugly, but works.

Great job! Thanks!


[restinio] updated to v.<IP_ADDRESS>

RESTinio has been updated to the latest version.

Hi @eao197 , thanks for the PR!


GHA test: Add bookdown render to style-spell check steps

Summary
I think this should work. I'll add it to jhudsl/ITCR_Course_Template_Bookdown if it does. I just added a quick step to render after the files are styled.

This works and the checks pass so I'm going to merge it!


Examples

Any other example to see how to implement the methods equalto, greaterThan, MainQuery, livequeries, etc?
Thanks!

Hey Cristian
The SDK is still heavily under development and does need extra
functionality to assist with most queries, although some are in place.
The main queries, I assume are the same as the ones in the example?
Anything specific you need assistance with?
Equal to
QueryBuilder()
..object = DietPlan()
..field = DietPlan.NAME
..equals = ['Paleo']
..query().then((response) {
if (response.success) {
print(ApplicationConstants.APP_NAME +
": " +
((response.result as List)[0] as DietPlan)
.toString());
} else {
print(ApplicationConstants.APP_NAME +
": " +
response.exception.message);
}
});
On Mon, 31 Dec 2018 at 13:44, Cristian Karmy Guzman <
<EMAIL_ADDRESS>wrote:

Any other example to see how to implement the methods equalto,
greaterThan, MainQuery, livequeries, etc?
Thanks!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/phillwiggins/FlutterParseSDK/issues/13, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AHgn3pnMZxXvGpURiTzEqGEsrtvh1eazks5u-hSsgaJpZM4ZlcLg
.

--
Kind Regards
Phill Wiggins
<EMAIL_ADDRESS>

Thanks! But I want yo build a more complex query like:
ar lotsOfWins = new Parse.Query("Player");
lotsOfWins.greaterThan("wins", 150);
var fewWins = new Parse.Query("Player");
fewWins.ascending("wins");
var mainQuery = Parse.Query.or(lotsOfWins, fewWins);
mainQuery.find()
.then(function(results) {
// results contains a list of players that either have won a lot of games or won only a few games.
})
.catch(function(error) {
// There was an error.
});
It's possible or not yet?

I think we're quite far away at the moment. I've got a bit of spare time at
the moment and queries are my number 1 priority. Hopefully will have this
feature available shortly
On Mon, 31 Dec 2018, 14:58 Cristian Karmy Guzman<EMAIL_ADDRESS>wrote:

Thanks! But I want yo build a more complex query like:
ar lotsOfWins = new Parse.Query("Player");
lotsOfWins.greaterThan("wins", 150);
var fewWins = new Parse.Query("Player");
fewWins.ascending("wins");
var mainQuery = Parse.Query.or(lotsOfWins, fewWins);
mainQuery.find()
.then(function(results) {
// results contains a list of players that either have won a lot of games
or won only a few games.
})
.catch(function(error) {
// There was an error.
});
It's possible or not yet?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/phillwiggins/FlutterParseSDK/issues/13#issuecomment-450654998,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHgn3rRGK63SFAQMXnQ_hf5hMn6_IvT4ks5u-iYbgaJpZM4ZlcLg
.

Thanks for the collaboration! Flutter is an incredible SDK


fix: Remove .babelrc from npm package

It is causing errors with eslint-import-resolver-babel-module not being able to find module 'babel-preset-expo' is non-expo projects.

Thanks! v4.5.0 is up on npm


Change timezone used for saving meetups and scheduling reminders

Description
Currently the meetup time and reminder schedules are stored in Local timezone of the host machine.
This creates issues when the bot is deployed on some cloud platform because the Local time for the host machine may be different.
Changes to be made
In meetup.go, replace instances where Local time is used, to use Indian time instead.
One such instance:-
https://github.com/osdc/bots/blob/e3920af23da1d8bd3cf825a9152e055c19b57b29/telegram-bot/meetup.go#L98
This might be helpful:- https://golang.org/pkg/time/#LoadLocation
First time contributors
Hi, If it is the first time that you contribute to the bot:
Write a comment in this issue thread to let other possible contributors know that you are working on this bug. For eg : Hey all, I would like to work on this issue., follow Contributing to the bot 🔥✨ and feel free to ask anything related to this issue ✌

Hello! I would like to work on this issue.

@starkah Hey 👋. Thanks for showing your interest in this. Feel free to ask any queries while you work on it.


comment out one useless line

that was doing a self-assignement
found by  https://lgtm.com/projects/g/winstonjs/winston/

Fixed instead via https://github.com/winstonjs/winston/commit/aed30ab87437048c7fca43ff08055889fb92af6b
Thanks for spotting!


[RFC] initial preferences API

Missing a reasonable test suite.
Also missing the client side bits.. that i can help on it... 30 mins is done.

Conversion tool from legacy to new format (now including a version info please).. would be very useful ;)

Do we have a JIRA for this? If not, let's create one and reference it in the commit message, please. Just picking some low-hanging fruit....been a long day here ;).

@qmx Can this (RFC) PR be closed assuming you will be sending a separate one for the feature?

What's happening with a consolidated preferences service now? Is it dead?
It'd be a great shame - we really need one in our platform.
On 14 Oct 2015 20:24, "Eder Ignatowicz"<EMAIL_ADDRESS>wrote:

Closed #184 https://github.com/uberfire/uberfire/pull/184.
—
Reply to this email directly or view it on GitHub
https://github.com/uberfire/uberfire/pull/184#event-435613772.

I agree with @manstis. Would really be a much needed feature.


:memo: Define the API

Is your feature request related to a problem? Please describe.
Defines the API explicitly so that we can understand what is a breaking API change. As per semantic versioning, breaking API changes are required to be delivered to a major release only.
Describe the solution you'd like
A document which defines the API in a clear and concise description.

Once this is defined it can be enforced through testing.
For instance, running a conformance test suite from the latest release against the PR can be used to prevent inadvertent API backwards-incompatible changes.

Re-opening as the public API needs to be defined.


about training details

Thanks to open source code.
There is some confusion about training controlnet, how to choose num_layers and num_single_layers on the controlnet model

These are based on Flux-Dev model


dialog is empty before the registry info is loaded

fixed by https://github.com/zaggino/brackets-npm-registry/commit/225fe46d3e4714fa7421a058c31446765fc57cc9


jwt.verify/decode working only on static strings when using websockets

Hi,
I'm able to generate a token and then send it to a used. The user then stores this locally. Afterwards we call a authentication script to send that token up to the server
Issue: The dynamic token sent is never valid. However, if you console.log this value and hardcode it into the verify function you are able to get a verification and result.
Using this with websockets if that matters.
      this.socket.on('authentication_token', (token) => {
        jwt.verify(token, process.env.JWT_KEY, { algorithm: 'HS512', maxAge: '2d'}, function(err, decode) {
          console.log(decode)
        })
      });

Working example with REST
router.post('/jwt/verify', async (req,res,next) => {
  const { token } = req.body;
  const data = jwt.verify(token, process.env.JWT_KEY, { algorithm: 'HS512', maxAge: '2d'}, function(err, decode) {
    if (err){
      console.log('ERROR', err)
    }
    console.log(decode)
  });
  res.send(true);
});

Are you never passing token in as the first parameter to jwt.verify?

Yes sorry I've been iterating through this a bunch of times. Looks like it works with a rest endpoint without an issue. But web-sockets it fails to recognize the string.

@FrederickEngelhardt Your report does not state what error you're getting. This is most likely not an issue with jsonwebtoken but rather your code.
jsonwebtoken only cares that the input is a string, if it wasn't you'd get jwt must be a string error or similar.
Not being familiar particular websocket frameworks is it possible for you to to log the jwt string in your code and provide the public key you're verifying with?

Looks like the main issue is related to the jwt.decode which returns null when you receive an emitted token. If you hardcode that token into the jwt.decode it will pass.

@FrederickEngelhardt Yes, decode returns null on invalid tokens. Please provide the details requested.
Once again

the error you're getting (!!!)
log typeof token from your websocket handler
log token from your websocket handler
the public key for verification

@panva looks like I was missing a JSON.parse for the token inside of the websocket response. Adding that did the trick. Thank you!
See code below for reference.
      this.socket.on('authentication_token', (token) => {
        jwt.verify(JSON.parse(token), process.env.JWT_KEY, { algorithm: 'HS512', maxAge: '2d'}, function(err, decode) {
          console.log(decode)
        })
      });

I was also receiving a null value when trying to use jwt.decode(token). Turns out I also needed to parse it jwt.decode(JSON.parse(token))

I was also receiving a null value when trying to use jwt.decode(token). Turns out I also needed to parse it jwt.decode(JSON.parse(token))

token already string, but when I parse it using JSON.parse() it throw parse error.


[NEW ICON] Telegram

Skill Name
Telegram
Why?
You forget to add one of the most popular social media
Reference Image

I created a new project since this project is no longer updating & the author left it, telegram is available skills-icons
https://skills-icons.vercel.app/api/icons?i=telegram


Adding a direct polygon mask export

Is your feature request related to a problem? Please describe.
I'm working in the same project on the same images with both polygon and more detailed brush masks, which I'd like to export together in as simple a way as possible and read into Python.
Describe the solution you'd like
Export both types of labels together with one click as PNG images or even better as numpy arrays.
Describe alternatives you've considered
At the moment I am working on extracting the needed information from the COCO export.

Sorry, I just discovered that this question might be better off in the converter repository.


feat: UI should confirm secret deletion

Closes https://github.com/woodpecker-ci/woodpecker/issues/1483
PR adds a confirmation dialog that warns user before deleting a secret.
https://user-images.githubusercontent.com/426437/222985225-9e14ddac-6c5a-4aed-ac89-cc6562180ac6.mov
Using just basic window.Confirm since it is used in other places. Any objections to switch to proper dialog component in a separate PR?

I would definitely like to switch to proper confirmation dialog


Add support for extensionsType api

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

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

About Extension Publish
There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

It'd be good to move these above Marketplace group to keep them together

Refers to: src/k8s-extension/azext_k8s_extension/_params.py:133 in c2ac205. [](commit_id = c2ac2052c84229cbd87719e6198e892240c61783, deletion_comment = False)


temperature values incorrect/different

Description of problem:
HI, since a couple of days the hassio dashboard shows incorrect Temperatures wich were set by me. If i manually set a target temperature it will be correctly set in the HM-Devices aswell, but hassio/pyhomematic doesnt show it correctly. Only on restart of hassio the correct values are shown. It seems to be there is a problem on reading the sensor logs because the sensors are posting correct values back to hassio/pyhomematic. I set the temperature by a homematic climate Group
log output of hassio ha logs:
 2018-03-25 07:38:19 INFO (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=climate.thermostatwz, old_state=<state climate.thermostatwz=manual; current_temperature=21.2, min_temp=4.5, max_temp=30.5, temperature=19.0, operation_mode=manual, operation_list=['auto', 'manual', 'boost', 'comfort', 'lowering'], rssi=-33, valve=0, battery=2.5, mode=Manual, id=KEQ0507380, interface=rf_hhs_rpc, unit_of_measurement=°C, friendly_name=ThermostatWZ, supported_features=129 @ 2018-03-25T07:24:10.153278+02:00>, new_state=<state climate.thermostatwz=manual; current_temperature=21.3, min_temp=4.5, max_temp=30.5, temperature=19.0, operation_mode=manual, operation_list=['auto', 'manual', 'boost', 'comfort', 'lowering'], rssi=-33, valve=0, battery=2.5, mode=Manual, id=KEQ0507380, interface=rf_hhs_rpc, unit_of_measurement=°C, friendly_name=ThermostatWZ, supported_features=129 @ 2018-03-25T07:24:10.153278+02:00>>
here is temperature=19.0
but in dev-state dashboard are only old values:
Group: climate.wohnzimmer_int0000002
current_temperature: 21.1 min_temp: 4.5 max_temp: 30.5 temperature: 21 operation_mode: manual operation_list: auto,manual,boost,comfort,lowering rssi: -65535 valve: mode: Manual id: INT0000002 interface: groups unit_of_measurement: °C friendly_name: Wohnzimmer Temperatur supported_features: 129
here is temperature: 21
The correct temperature is 19 and not 21

solved!
dont know the problem but its solved:
i just updated the XML-API Versiion in CCU2 from 1.12 to 1.15 -> reboot HASSIO -> everything works


Change localhost: to <IP_ADDRESS>: for server "listen" specifications

This prevents some "connection refused" (ECONNREFUSED) errors when connecting
from another machine.

Fixes https://github.com/kythe/kythe/issues/3907

Not accepting connections from other machines is probably the correct default for example code that people are likely to copy and paste: The service does no authentication, so exposing a port on the wildcard interface is usually not what you want.
I'd suggest a better solution here is to replace BROWSE_PORT with BROWSE_ADDR, with a default set to localhost:8080 and a comment to let the reader know that if they really do want to open up their service to other machines, they can swap out localhost for the wildcard <IP_ADDRESS>.

The Ubuntu default is for the firewall ufw blocking access from outside, so does using localhost for the server significantly increase security?
I've done a lot of TCP server programming, and at one time had practically memorized the Stevens books (this was a long time ago), yet it still took me a bit to figure out that I needed to change localhost to <IP_ADDRESS>, partly because I was unfamiliar with the Go socket API, partly because I had forgotten that INADDR_ANY is 0, and partly because I had to figure out where the ECONNREFUSED was happening. Someone who hasn't done much TCP programming would probably have done a lot more head scratching.
Does anyone else have an opinion on change localhost to <IP_ADDRESS> vs add comments. (FWIW, typical example code uses INADDR_ANY or <IP_ADDRESS>, e.g. https://www.paulgriffiths.net/program/c/sockets.php which looks a lot like the Stevens code as I distantly remember it.)

PS: I don't mind following @creachadair's suggestion; I simply wish to see if there are other opinions before I make the changes.

I agree with your concern about people not knowing about the wildcard address, that's why I suggested we should add a comment to tell them what to do. Perhaps something like:
# By default, listen only on the local host. If you want other computers to be able to connect
# to your server, use "<IP_ADDRESS>" instead of "localhost".
BROWSE_ADDR="${BROWSE_ADDR:-locahost:8080}"

or words to that effect. Firewalls certainly help, but I have observed a lot of personal computers without firewalls set up (or set up poorly), and 8080 is a common "alternate HTTP" port that application level firewalls often exempt.
I don't think the risk is that huge, certainly, but I've seen enough copy-pasted config settings to be cautious about defaults. That said, if others don't think it's a problem, I'm fine with that.

It turns out that the -listen flag can be :8080, so I'll change the <IP_ADDRESS>s to the empty string. BTW, that's the example in the Go documentation for ListenAndServe, so there must be a lot of copy-and-paste errors out in the world, if this is an error. ;)
If everyone agrees with my change, I'll add a comment about using localhost to restrict access.

Context matters.  Referencing the Go documentation for a facilities which is used as an example to serve external requests is not really applicable to application defaults in other areas.  This is particularly true for the languageserver which is intended to run on the same machine as the editor with which it is communicating and should most assuredly not accept external connections by default.

Not to derail this conversation, but I'm curious why languageserver needs to be on the same machine as the editor -- is it a performance thing? Or a security thing because of no authentication?
Anyway, I'm fine with changing my PR for languageserver (again, with a comment), if that's what you want.
BTW, I'm not sure what the implications are of using locahost:0 for a multi-homed machine and I don't have an easy way to experiment. I don't recall reading any discussion of this field for servers (e.g., in Stevens) ... typically the field is used for a client connecting to a server but a something needs to be filled in for servers (because struct sockaddr is used by both connect and bind), so INADDR_ANY is used for servers. (Yet another reason to hate the Berkely socket API, but I digress.)

Not to derail this conversation, but I'm curious why languageserver needs to be on the same machine as the editor -- is it a performance thing? Or a security thing because of no authentication?

The spec doesn't discuss the rationale, but I think it's mostly intende to reduce coupling and complexity for the client. A language server can use secure and authenticated connections to remote tools, but the local client editor only needs to speak LSP over a socket to plug in. The language server can also do smart things with caching, which can help performance too, but I don't know whether that was a primary design consideration.

I did a quick look through the spec and some of the implementations but couldn't spot where they configured the servers (either to localhost or <IP_ADDRESS>).
I did find this: https://en.wikipedia.org/wiki/Language_Server_Protocol#Transport_layer:

The protocol does not make any provisions about how requests, responses and notifications are transferred between client and server. For example, client and server could be components within the same process exchanging JSON strings via method calls. They could also be different processes on the same or on different machines communicating via network sockets.

And I found https://code.visualstudio.com/api/advanced-topics/remote-extensions which seems to use a proxy from localhost to a remote host rather than directly connecting to a remote host. There's something about authentication, etc.
(Enough time spent on this, although it's been somewhat educational.)
It seems reasonable for languageserver to restrict itself to localhost ... as for the other servers, is it OK for them to use <IP_ADDRESS>?

I've changed everything to localhost. However ...
On my machine, specifying --listen=localhost:8080 allows access from the same machine using telnet <IP_ADDRESS> 8080 but doesn't work with telnet ::1 8080; if I specify --listen=:8080, then both <IP_ADDRESS> and ::1 work (also localhost).
So, I think it's a mistake to default to localhost, but the decision is yours.


afQuickField name= array access doesn't work if there is number in field name

I have this schema:
...
'recordings.html5': {
    type: [Object],
    optional: true
  },
  'recordings.html5.$.url': {
    type: String
  },
...

Then I have these calls inside {{#autoForm :

Review

    {{> afQuickField name='recordings.html5.0' }}

Scale

    {{> afQuickField name='recordings.html5.1' }}

Bowing

    {{> afQuickField name='recordings.html5.2' }}

They show url field but it is empty.
I change schema to this:

...
'recordings.html': {
    type: [Object],
    optional: true
  },
  'recordings.html.$.url': {
    type: String
  },
...

and moved html5 field to html field in data, and call templates like that:

Review

    {{> afQuickField name='recordings.html.0' }}

Scale

    {{> afQuickField name='recordings.html.1' }}

Bowing

    {{> afQuickField name='recordings.html.2' }}

Now it shows url field values.

Sorry, it was my mistake. Clearly data was present but wasn't showed. After restarting meteor it works.


Update features

Part of https://github.com/gtk-rs/gir-files/issues/1

This don't have generated code or submodules, so it ready too.

The change doesn't impact code anyway so it's not a problem.


Footnote markers are not stripped when autogenerating .Summary

When generating .Summary, either automatically or by taking the content above the <--!more--> tag, Hugo strips the tags from HTML, leaving just the text. This doesn't play well with Hugo-generated footnotes.
This markdown:
A footnote[^1] here.

Produces this HTML when rendered with Goldmark (Hugo's default renderer):

A footnote1 here.

Which, after stripping the tags, produces this .Summary:
A footnote1 here.

and leaves user with no good way to get rid of that rogue "1" with replaceRE or other available instruments.
There seems to be no use-case such that leaving the "1" in the .Summary would be the desired behavior.
Hugo should delete every HTML node that has id prefixed with fnref:, and all inside it, before stripping tags when generating .Summary.
(from this forum thread)
What version of Hugo are you using (hugo version)?
Current master branch.
Does this issue reproduce with the latest release?
Yes.

Just throwing in one small addition here after running into the same problem: in my case, using   results in footnotes being rendered "properly" in the final summary HTML. The issue is that their target doesn't exist, so clicking them does nothing.
From my summary:

A sentence, with a caveat1.

This still seems like undesired behavior, but the above says "Hugo strips the tags from HTML" and that's not quite right in the case of summaries with the  approach, I think.


💭 Support for .tpl files (Smarty)

I wonder if there is a possibility to easily support .tpl files (and others maybe aswell framework depending like twig and blade).
From what i understand right now rome sees them als text files and just ignores them.
But in fact they are just html files with with some extra syntaxing depending on the framework.
For example in smarty i could have this:
{if $user.id != 0 && true}

{/if}

This is just valid html with around them smarty syntax.
By just ignoring the smarty templating that always starts with { the rest of the file could still be parsed and would be formatted and linted properly.
I'd love to hear what others think about this.

There might be a place for us to support this, depending on maintenance overhead and complexity. I can see us adding .tpl as being parsable as HTML, and it would just be automatically linted and work everywhere. My concern would be adding magic to detect the {} since otherwise we will parse it as regular text and when formatting will just print it as:
{if $user.id != 0 && true}

{/if}

Which looks a bit nasty. This could potentially be somewhere plugins fit in. I can imagine us having a very basic way to extend HTML support with custom operators for different template languages. Depends on what strategy we settle on. It would be nice to have it in core if it was very simple and would have significant usage.

I renamed the issue to generally track supporting other "HTML" templating languages. I don't imagine we'll get to this soon unless someone is sufficiently motivated to work on this (I can provide some guidance and support). Thank you for the suggestion!

I renamed the issue to generally track supporting other "HTML" templating languages. I don't imagine we'll get to this soon unless someone is sufficiently motivated to work on this (I can provide some guidance and support). Thank you for the suggestion!

If you could point me in the right direction i would not mind giving it a go.

@thebspin Our HTML parser (located in internal/html-parser) is pretty bad. I wrote it off the cuff just so we had something, and it's not standards compliant at all. Improving the parser, and then enabling HTML support would be a prerequisite for this task. HTML linting/formatting support is currently disabled. You can enable it by setting the capabilities to true in internal/core/common/file-handlers/html.ts and then running rome check foo.html to test.


Homebridge error keeps appearing in log repeatedly

Keep getting these messages in my error logs, running latest homebridge on mac os x big sur if relevant.
`[4/22/2021, 10:02:37 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[4/22/2021, 10:02:57 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[4/22/2021, 10:03:31 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[4/22/2021, 10:04:00 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[4/22/2021, 10:05:48 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.
[4/22/2021, 10:05:48 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'Spot ↔': characteristic was supplied illegal value: number 0 exceeded minimum of 100. See https://git.io/JtMGR for more info.
[4/22/2021, 10:05:48 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'Spot ↕': characteristic was supplied illegal value: number 0 exceeded minimum of 100. See https://git.io/JtMGR for more info.
[4/22/2021, 10:10:41 AM] [homebridge-neato] This plugin generated a warning from the characteristic 'On': characteristic value expected boolean and received undefined. See https://git.io/JtMGR for more info.`

Same here! Is it recommended, while waiting a fix, to isolate this plugin in a virtual dedicated bridge?

Duplicates #61 . I'm working on a fix.


Migrate to Gatsby 4

Currently the site is using Gatsby 3 and it would be better to migrate to version 4.
See https://www.gatsbyjs.com/docs/reference/release-notes/migrating-from-v3-to-v4/ and it should be fairly easy to do.

Looks like Gatsby 5 is released https://www.gatsbyjs.com/blog/gatsby-5/

Fixed in https://github.com/ManimCommunity/manim-website/commit/2f9cb225597228e0526f70273cbd589fb44d86c5


PTX-4726 Automate Volume Clone

What this PR does / why we need it:
Automated Volume Clone functionality tests to longevity
Which issue(s) this PR fixes (optional)
Closes # PTX-4726
Special notes for your reviewer:
LOGS:
STEP: Register test triggers
time="2022-01-31 17:54:50" level=info msg="Finished registering triggers"
time="2022-01-31 17:56:50" level=info msg="Waiting for lock for trigger [volumeClone]\n"
time="2022-01-31 17:56:50" level=info msg="Successfully taken lock for trigger [volumeClone]\n"
STEP: get volumes for all apps in test and clone them
STEP: get volumes for fio app
STEP: Clone Volume fio-data-fio-0
time="2022-01-31 17:56:51" level=info msg="Calling CloneVolume()..."
time="2022-01-31 17:57:12" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:57:12" level=info msg="Getting new driver."
time="2022-01-31 17:57:14" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:57:16" level=info msg="successfully clone pvc-d3c33861-1127-4df1-b011-cef54037db8d as<PHONE_NUMBER>9087880"
STEP: Validate successful clone<PHONE_NUMBER>9087880
time="2022-01-31 17:57:37" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:57:37" level=info msg="Getting new driver."
time="2022-01-31 17:57:39" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:57:40" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>9087880
time="2022-01-31 17:58:00" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:58:00" level=info msg="Getting new driver."
time="2022-01-31 17:58:03" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:58:07" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>9087880 "
STEP: Clone Volume fio-data-fio-1
time="2022-01-31 17:58:07" level=info msg="Calling CloneVolume()..."
time="2022-01-31 17:58:28" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:58:28" level=info msg="Getting new driver."
time="2022-01-31 17:58:30" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:58:35" level=info msg="successfully clone pvc-926a0d77-11fe-4738-8a14-55d7e6f5dba5 as<PHONE_NUMBER>85866608"
STEP: Validate successful clone<PHONE_NUMBER>85866608
time="2022-01-31 17:58:55" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:58:55" level=info msg="Getting new driver."
time="2022-01-31 17:58:57" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:58:58" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>85866608
time="2022-01-31 17:59:19" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:59:19" level=info msg="Getting new driver."
time="2022-01-31 17:59:20" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:59:25" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>85866608 "
STEP: Clone Volume fio-data-fio-2
time="2022-01-31 17:59:25" level=info msg="Calling CloneVolume()..."
time="2022-01-31 17:59:46" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 17:59:46" level=info msg="Getting new driver."
time="2022-01-31 17:59:48" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 17:59:58" level=info msg="successfully clone pvc-180417c7-8d31-401b-975a-9ffcf64b89f8 as<PHONE_NUMBER>5922208"
STEP: Validate successful clone<PHONE_NUMBER>5922208
time="2022-01-31 18:00:19" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:00:19" level=info msg="Getting new driver."
time="2022-01-31 18:00:20" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:00:21" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>5922208
time="2022-01-31 18:00:42" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:00:42" level=info msg="Getting new driver."
time="2022-01-31 18:00:44" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:00:49" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>5922208 "
STEP: Clone Volume fio-data-fio-3
time="2022-01-31 18:00:49" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:01:09" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:01:09" level=info msg="Getting new driver."
time="2022-01-31 18:01:11" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:01:23" level=info msg="successfully clone pvc-ed934b46-e76b-4a8c-a2cd-4f1e3493df85 as<PHONE_NUMBER>75696650"
STEP: Validate successful clone<PHONE_NUMBER>75696650
time="2022-01-31 18:01:43" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:01:43" level=info msg="Getting new driver."
time="2022-01-31 18:01:45" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:01:46" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>75696650
time="2022-01-31 18:02:07" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:02:07" level=info msg="Getting new driver."
time="2022-01-31 18:02:09" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:02:15" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>75696650 "
STEP: Clone Volume fio-data-fio-4
time="2022-01-31 18:02:15" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:02:36" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:02:36" level=info msg="Getting new driver."
time="2022-01-31 18:02:38" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:02:51" level=info msg="successfully clone pvc-9317a322-bd31-4f95-a0ae-7e110eaa5e87 as<PHONE_NUMBER>00982730"
STEP: Validate successful clone<PHONE_NUMBER>00982730
time="2022-01-31 18:03:12" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:03:12" level=info msg="Getting new driver."
time="2022-01-31 18:03:14" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:03:15" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>00982730
time="2022-01-31 18:03:35" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:03:35" level=info msg="Getting new driver."
time="2022-01-31 18:03:37" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:03:45" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>00982730 "
STEP: Clone Volume fio-data-fio-5
time="2022-01-31 18:03:45" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:04:05" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:04:05" level=info msg="Getting new driver."
time="2022-01-31 18:04:07" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:04:18" level=info msg="successfully clone pvc-2a1bbf5e-4743-48ec-9eee-b255e2f115bc as<PHONE_NUMBER>37893703"
STEP: Validate successful clone<PHONE_NUMBER>37893703
time="2022-01-31 18:04:39" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:04:39" level=info msg="Getting new driver."
time="2022-01-31 18:04:41" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:04:41" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>37893703
time="2022-01-31 18:05:02" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:05:02" level=info msg="Getting new driver."
time="2022-01-31 18:05:04" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:05:12" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>37893703 "
STEP: Clone Volume fio-log-fio-0
time="2022-01-31 18:05:12" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:05:33" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:05:33" level=info msg="Getting new driver."
time="2022-01-31 18:05:34" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:05:48" level=info msg="successfully clone pvc-9186b524-af55-45bf-86b6-62b1e9926ae9 as<PHONE_NUMBER>46930902"
STEP: Validate successful clone<PHONE_NUMBER>46930902
time="2022-01-31 18:06:09" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:06:09" level=info msg="Getting new driver."
time="2022-01-31 18:06:11" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:06:11" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>46930902
time="2022-01-31 18:06:32" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:06:32" level=info msg="Getting new driver."
time="2022-01-31 18:06:34" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:06:43" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>46930902 "
STEP: Clone Volume fio-log-fio-1
time="2022-01-31 18:06:43" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:07:04" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:07:04" level=info msg="Getting new driver."
time="2022-01-31 18:07:05" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:07:19" level=info msg="successfully clone pvc-8fe516ed-cdd6-4507-a490-5e1565872d1e as<PHONE_NUMBER>67036456"
STEP: Validate successful clone<PHONE_NUMBER>67036456
time="2022-01-31 18:07:40" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:07:40" level=info msg="Getting new driver."
time="2022-01-31 18:07:41" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:07:42" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>67036456
time="2022-01-31 18:08:03" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:08:03" level=info msg="Getting new driver."
time="2022-01-31 18:08:05" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:08:11" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>67036456 "
STEP: Clone Volume fio-log-fio-2
time="2022-01-31 18:08:11" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:08:32" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:08:32" level=info msg="Getting new driver."
time="2022-01-31 18:08:34" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:08:52" level=info msg="successfully clone pvc-b0072785-ec3d-49fd-af13-cb8686f7996d as<PHONE_NUMBER>78023186"
STEP: Validate successful clone<PHONE_NUMBER>78023186
time="2022-01-31 18:09:13" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:09:13" level=info msg="Getting new driver."
time="2022-01-31 18:09:15" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:09:15" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>78023186
time="2022-01-31 18:09:36" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:09:36" level=info msg="Getting new driver."
time="2022-01-31 18:09:38" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:09:47" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>78023186 "
STEP: Clone Volume fio-log-fio-3
time="2022-01-31 18:09:47" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:10:08" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:10:08" level=info msg="Getting new driver."
time="2022-01-31 18:10:10" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:10:31" level=info msg="successfully clone pvc-969182c0-7b14-4d35-bcaa-58b98bc0a396 as<PHONE_NUMBER>083201"
STEP: Validate successful clone<PHONE_NUMBER>083201
time="2022-01-31 18:10:52" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:10:52" level=info msg="Getting new driver."
time="2022-01-31 18:10:53" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:10:54" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>083201
time="2022-01-31 18:11:15" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:11:15" level=info msg="Getting new driver."
time="2022-01-31 18:11:16" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:11:29" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>083201 "
STEP: Clone Volume fio-log-fio-4
time="2022-01-31 18:11:29" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:11:50" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:11:50" level=info msg="Getting new driver."
time="2022-01-31 18:11:52" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:12:14" level=info msg="successfully clone pvc-e7985bdc-dae8-41d9-b9d6-0be1d5246367 as<PHONE_NUMBER>15677597"
STEP: Validate successful clone<PHONE_NUMBER>15677597
time="2022-01-31 18:12:35" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:12:35" level=info msg="Getting new driver."
time="2022-01-31 18:12:36" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:12:37" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>15677597
time="2022-01-31 18:12:58" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:12:58" level=info msg="Getting new driver."
time="2022-01-31 18:13:00" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:13:36" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>15677597 "
STEP: Clone Volume fio-log-fio-5
time="2022-01-31 18:13:36" level=info msg="Calling CloneVolume()..."
time="2022-01-31 18:13:57" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:13:57" level=info msg="Getting new driver."
time="2022-01-31 18:13:58" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:14:26" level=info msg="successfully clone pvc-dd560c9f-f54c-4c73-a12b-03adca38b38b as<PHONE_NUMBER>35076765"
STEP: Validate successful clone<PHONE_NUMBER>35076765
time="2022-01-31 18:14:47" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:14:47" level=info msg="Getting new driver."
time="2022-01-31 18:14:49" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:14:49" level=debug msg="Validating Stork snapshot"
STEP: cleanup the cloned volume<PHONE_NUMBER>35076765
time="2022-01-31 18:15:10" level=info msg="testAndSetEndpoint failed for <IP_ADDRESS>: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial tcp <IP_ADDRESS>:9020: i/o timeout""
time="2022-01-31 18:15:10" level=info msg="Getting new driver."
time="2022-01-31 18:15:12" level=info msg="Using <IP_ADDRESS>:9020 as endpoint for portworx volume driver"
time="2022-01-31 18:16:11" level=info msg="successfully deleted Portworx volume<PHONE_NUMBER>35076765 "
time="2022-01-31 18:16:11" level=info msg="Trigger Function completed for [volumeClone]\n"
time="2022-01-31 18:16:11" level=info msg="Successfully released lock for trigger [volumeClone]\n"

Here is a successful regression run: https://jenkins.portworx.dev/job/Torpedo/job/tp-dev-test/984/


Update usePlugin to only need kind, not definition

When using a plugin (i.e. the usePlugin hook), you really only need the plugin type and kind, not a full-blown definition object. This just updates that API to reflect that. This will be particularly important when you don't have a definition object yet, for example, when you're adding a panel and you need to get the plugin in order to create the initial options for the panel (which ultimately results in a definition object).
Signed-off-by: Luke Tillman<EMAIL_ADDRESS>

ah yeah that makes sense ! Cool :)


TypeScript version update - 1.6.2

Hello.
Can you update the TypeScript version to 1.6.2, that was released recently?
The WebJars repo of typescript-node has been updated also.
Thank you.

Thanks for the issue.  I've released a new version (0.1.9) to central that uses typescript 1.6.2 compiler.

Although the new version uses 1.6.2 compiler - it lacks new features.
One of them is more module formats:
https://github.com/Microsoft/TypeScript/blob/master/src/compiler/types.ts#L2073
export const enum ModuleKind {
    None = 0,
    CommonJS = 1,
    AMD = 2,
    UMD = 3,
    System = 4,
}

Also, it seems from their example that you don't need to use numeric constants, there is an Enum for modules:
import * as ts from "typescript";
/// ...
let commonJsModule = ts.ModuleKind.CommonJS;
let systemModule = ts.ModuleKind.System;


Fix verifier dev=true mode

Upgrading to Backbone 1.1.1 for https://github.com/codecombat/codecombat/commit/320150f56740f225e40b1392b202e31fb1ece6e8 introduced different routing param behavior.  Query strings are appended to the routing params, which messes up our use of optional wildcards.
To fix, we strip those back out in our routing go method which should get us back to the expected behavior in general and leave @shubhi1092's fix in place.

Discussed offline, we think all manual testing required before commit has been done.


Added add and remove root keys to cmd

Added functionality to cmd to add and remove root keys from, which needs a key already in the root to allow adding or removing keys from the root.
Partially fixes issue https://github.com/gittuf/gittuf/issues/117

fix CLI doc until we unify signing methods (https://github.com/gittuf/gittuf/issues/229)

What do you mean? How should I change the docs, should it take in account unifying signing methods, so when they come, the doc is already right but wrong for now, or something else?

What do you mean? How should I change the docs, should it take in account unifying signing methods, so when they come, the doc is already right but wrong for now, or something else?

Just this: https://github.com/gittuf/gittuf/pull/225#discussion_r1437144988
Let's get that line out for now.

What do you mean? How should I change the docs, should it take in account unifying signing methods, so when they come, the doc is already right but wrong for now, or something else?

Just this: #225 (comment)
Let's get that line out for now.

Done


feat: new NonLinearReading component

Contributes to #3602
The non-linear reading component (usage) provides a way to explain concepts more broadly and succinctly while allowing users to read more detail as needed without leaving their context.
What did you change?
This is a new component.
How did you test and verify your work?

[x] Migrated from Carbon v10
[x] Storybook review
[x] Design reviewers: Cameron Calder, @sdignum, Bridget Ndege.

Closing.
For someone reason this was marked "waiting for author" and got lost in the shuffle. With all the major SCSS changes that happened in the interim, it was too out of date to fix.
See updated PR #3889.


@broskoski Move article to subapp

Differentiates between article -- an individual article, and articles -- a collection of articles.
Also moves the email-related stuff to its own component. I'll have to work on getting the components to be less hard-coded and easier to reuse, but I think it's a good start

Nice, looks like a good re-org and preview of things to come :)
None of the stuff above is blocking, feel free to address later.


The mod seems to cause some item slots to render anomalously (e.g. Create's Cannon GUI)

When installed with Create, the GUI of Create's Schematicannon does not display items correctly (although they still exist).
Video
https://github.com/Tectato/BetterCommandBlockUI/assets/51949761/58237f7b-31b3-48b5-8fdb-2862a9ab1f99
Installed mods
create-fabric-0.5.1-f-build.1335
bettercommandblockui-0.5.0
Minecraft Version
1.20.1
Fabric Version
fabric-api-0.92.0
fabric-loader-0.15.7
Related issue
https://github.com/Fabricators-of-Create/Create/issues/1414

That is extremely odd, I'll look into it

well i can replicate the issue, but i still haven't the faintest idea why this is happening...


error in compiling example  Use of undeclared identifier 'isThreadRunning'

Getting the following error when compiling the example
Use of undeclared identifier 'isThreadRunning' line 26 of CalendarWidget.cpp
#include "CalendarWidget.h"

What is CalendarWidget.cpp?

It looks like you're trying to compile https://github.com/bakercp/ofxICalendar.  I just updated it for 0.9.  Regenerate the project files using project generator and see if it works for you now.


Update asset interface and implementation in katalog connector

This PR add UpdateAsset method in the Fybrik Data catalog interface. The corresponding REST method is called updateAsset. This PR also adds updateAsset implementation to katalog connector.
This PR is a followup to #1426 . This PR partially fixes #1242 .
Signed-off-by: Rohith D Vallam<EMAIL_ADDRESS>

Please add a test: create an asset, update the info, get asset and check that the info is correct.

Added a unit test for create and updating the asset. Please check. Thanks.

This PR add UpdateAsset method in the Fybrik Data catalog interface. The corresponding REST method is called updateAsset. This PR also adds updateAsset implementation to katalog connector.
This PR is a followup to #1426 . This PR partially fixes #1242 .

I believe this PR relates to #1245 rather than #1242.

Signed-off-by: Rohith D Vallam<EMAIL_ADDRESS>

This PR add UpdateAsset method in the Fybrik Data catalog interface. The corresponding REST method is called updateAsset. This PR also adds updateAsset implementation to katalog connector.
This PR is a followup to #1426 . This PR partially fixes #1242 .

I believe this PR relates to #1245 rather than #1242.

Fixed. Please check. Thanks.


[Feature]: Add Australia to location list

Contact Details
<EMAIL_ADDRESS>Description
Australia has dynamic wholesale pricing. Pricing available through API via AEMO https://dev.aemo.com.au/
Suggested Solution
Add Australia to the list of location options.
Alternatives
None
Additional Context
None

I took a quick look at that link and it seems you need to register for that API before being able to access it.
Just to get a clear image before digging any deeper into it. Are the dynamic prices also changing hourly in Australia?
And any info on how popular Dynamic pricing usage is in Australia?

Hi,
Prices change ever 5 mins but we typically use 30min pricing.
We have periods of price spikes both in terms of buy and feed-in (sell).
Victron with zero-feed-in works well to prevent feed-in, but often we want to buy/sell dynamically.  I saw your flow wave thought this would be perfect.
Is there anything I cash do to help?
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Dirk-Jan Faber @.>
Sent: Wednesday, June 12, 2024 8:09:35 PM
To: victronenergy/dynamic-ess @.>
Cc: Evan Rose (evrose) @.>; Author @.>
Subject: Re: [victronenergy/dynamic-ess] [Feature]: Add Australia to location list (Issue #146)
I took a quick look at that link and it seems you need to register for that API before being able to access it.
Just to get a clear image before digging any deeper into it. Are the dynamic prices also changing hourly in Australia?
And any info on how popular Dynamic pricing usage is in Australia?
—
Reply to this email directly, view it on GitHubhttps://github.com/victronenergy/dynamic-ess/issues/146#issuecomment-2162625756, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCPF33JQXQDHFDGR53QZV3ZHAM57AVCNFSM6AAAAABJFOINGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRSGYZDKNZVGY.
You are receiving this because you authored the thread.Message ID: @.***>

Also,  dynamic pricing is gaining popularity due to the uptick of battery installations.  Some providers offer this with their 'approved' batteries,  but the user loses control and Victron ESS isn't supported.
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Dirk-Jan Faber @.>
Sent: Wednesday, June 12, 2024 8:09:35 PM
To: victronenergy/dynamic-ess @.>
Cc: Evan Rose (evrose) @.>; Author @.>
Subject: Re: [victronenergy/dynamic-ess] [Feature]: Add Australia to location list (Issue #146)
I took a quick look at that link and it seems you need to register for that API before being able to access it.
Just to get a clear image before digging any deeper into it. Are the dynamic prices also changing hourly in Australia?
And any info on how popular Dynamic pricing usage is in Australia?
—
Reply to this email directly, view it on GitHubhttps://github.com/victronenergy/dynamic-ess/issues/146#issuecomment-2162625756, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCPF33JQXQDHFDGR53QZV3ZHAM57AVCNFSM6AAAAABJFOINGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRSGYZDKNZVGY.
You are receiving this because you authored the thread.Message ID: @.***>

Another option is to link directly to the Amber Electric API. Amber is a wholesale energy provider for the Australian consumer. They provide API access as default. With this, a hook to their API would provide real-time pricing. I would be an easier option that providing a general API link to the AEMO. There is a Home-Assistant integration (HACS) already which has the API hooks.
From: Dirk-Jan Faber @.>
Date: Wednesday, 12 June 2024 at 8:09 PM
To: victronenergy/dynamic-ess @.>
Cc: Evan Rose (evrose) @.>, Author @.>
Subject: Re: [victronenergy/dynamic-ess] [Feature]: Add Australia to location list (Issue #146)
I took a quick look at that link and it seems you need to register for that API before being able to access it.
Just to get a clear image before digging any deeper into it. Are the dynamic prices also changing hourly in Australia?
And any info on how popular Dynamic pricing usage is in Australia?
—
Reply to this email directly, view it on GitHubhttps://github.com/victronenergy/dynamic-ess/issues/146#issuecomment-2162625756, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCPF33JQXQDHFDGR53QZV3ZHAM57AVCNFSM6AAAAABJFOINGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRSGYZDKNZVGY.
You are receiving this because you authored the thread.Message ID: @.***>

What we currently do is to download the prices once they become available and store them in our own databases. From there we do the schedule calculation for all of the sites.
If you can read the prices from the API of your provider, you can also add them as "fixed" prices to the VRM implementation. On https://community.victronenergy.com/articles/293324/node-red-vrm-api-and-dynamic-ess-1.html I've posted an article describing how you can get started accomplishing that.
At the moment, I'd say that is the quickest alternative solution for you. Once it works for you and you share your flow, it will make it easier for us to add Australia natively to VRM too.

Will do. Thanks :)
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: Dirk-Jan Faber @.>
Sent: Saturday, June 15, 2024 7:49:01 PM
To: victronenergy/dynamic-ess @.>
Cc: Evan Rose (evrose) @.>; Author @.>
Subject: Re: [victronenergy/dynamic-ess] [Feature]: Add Australia to location list (Issue #146)
What we currently do is to download the prices once they become available and store them in our own databases. From there we do the schedule calculation for all of the sites.
If you can read the prices from the API of your provider, you can also add them as "fixed" prices to the VRM implementation. On https://community.victronenergy.com/articles/293324/node-red-vrm-api-and-dynamic-ess-1.html I've posted an article describing how you can get started accomplishing that.
At the moment, I'd say that is the quickest alternative solution for you. Once it works for you and you share your flow, it will make it easier for us to add Australia natively to VRM too.
—
Reply to this email directly, view it on GitHubhttps://github.com/victronenergy/dynamic-ess/issues/146#issuecomment-2169251387, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHCPF37BOQZPWDN5BKEOGJLZHQEY3AVCNFSM6AAAAABJFOINGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNRZGI2TCMZYG4.
You are receiving this because you authored the thread.Message ID: @.***>


Dynamic imports testing - Jest

Fix dynamic imports testing issue. #3345
Added process.env test environment condition for import handler.
@timneutkens Please have a look whenever you get a chance.

Thanks for the PR.
Even though this fixes the issue.
I'd like to fix this issue in a different way.
Basically, we should not change the core code for tests. (unless there's no other way)
With Jest tests, we are trying to do what the browser does.
In that case, I'd prefer to use JsDOM like this to initialize a fake browser environment.


Is there a way to filter Published and Not Published?

So I'm using Vue Table Lite, and have been able to implemented the search function. But now I want to have a filter. One of the column of my table is Publication Type that has either one of these value: null (which is displayed Not Published) or the date of the publication.
For example:
Name | Publication Type
A        | Jan 31, 2024 11:54 am
B        | Not Published
Is there a way I could filter it? I want to have a Select input, the first one is not null value which will display any data with published date, and the second one is null value which will display only data with Not Published tag.

Hi, @macellinoss275
You can added select element to your template
<select v-model="condition">
  <option value="1">Has date</option>
  <option value="2">Is NULL</option>
</select>

and rewrite your table's row's computed method like below.
const condition = ref("1");
const table = reactive({
  columns: [
    // ...
    {
      label: "Name",
      field: "name",
      width: "10%",
      sortable: true,
    },
    // ....
  ],
  rows: computed(() => {
    return data.filter(
      (x) => {
        if (searchTerm.value == "1") {
          // your not null value conditions.
          return x.email != null && x.email != "" && x.email != "null";
        }
        if (searchTerm.value == "2") {
          // your null value conditions.
          return !x.email || x.email == "null";
        }
      }
    );
  }),
  totalRecordCount: computed(() => {
    return table.rows.length;
  }),
  sortable: {
    order: "id",
    sort: "asc",
  },
});

@linmasahiro Thank you so much! It works!

@linmasahiro Hello, sorry for reopening this, but I have another problem. While it does work, but now I can't use my Search input in case user want to search something (like a name for example).
This is my current Vue Table Lite code:
    const searchTerm = ref('');
    const filterPublished = ref('');

    rows: computed(() => productsAndSolutions.filter((x) => {
        if (searchTerm) {
            return x.system.toLowerCase().includes(searchTerm.value.toLowerCase());
        }

        if (filterPublished.value === '1') {
            return x.published_at !== null;
        } else if (filterPublished.value === '2') {
            return x.published_at === null;
        } else {
            return x;
        }
    })),

And this is my Search input and Select input:
<input class="form-control ps-35px" type="text" placeholder="Search..." v-model="searchTerm">

<select class="form-select" id="filter-published" v-model="filterPublished">
    <option selected>Select Publication Type</option>
    <option value="1">Published</option>
    <option value="2">Not Published</option>
</select>

Is there a way so that user can filter and search at the same time? For example using the previous table, user can search the name "A" and only "A" will be displayed. But then he can filter based on publication type. If he choose "Published", then the data "A" will still be displayed. But if he choose "Not Published", the table will show no data because there is no data with the name "A" with publication type "Not Published".

Hi, @macellinoss275
It's easy.
      rows: computed(() => {
        return data.filter(
          (x) => {
            return x.system.toLowerCase().includes(searchTerm.value.toLowerCase());
          }
        ).filter(
          (x) => {
            if (filterPublished.value === '1') {
              return x.published_at !== null;
            }
            if (filterPublished.value === '2') {
              return x.published_at === null;
            }
          }
        );

@linmasahiro Thank you so much, I didn't know it was possible to chain the filter function.