No surface container colors generated on web?

Surface, On Surface, Surface-Variant and On Surface-Variant are the only surface colors generated, but material design guidelines include documentation on varying surface containers. Is this a feature yet to be implemented?

Why was this closed ?

Why was this closed ?

Because while the material theme builder website doesn't have these colors,  the figma plugin does

But shouldn't the "Android Views (XML)" web export  include these surface container colors (and a few other missing colors as well) ?

Will the website version have these soon? If there's no plans to update the website version, might want to remove it from the README and elsewhere so people don't try to use it.

These colors seem to be used quite extensively in the upcoming Material Components v1.11. As such including these colors in generated themes is quite important.

Included with 2.0!
https://www.figma.com/community/plugin/1034969338659738588/material-theme-builder
Web update is planned, but can access directly: https://material-foundation.github.io/material-theme-builder/


Reduce amount of memory required for npm run lint

As the codebase grows, it seems that our npm run lint is running out of memory at higher and higher memory usage.
There are a few things that may be worth trying:

Linting only certain parts of the codebase at a time. I tried this before and I couldn't get it to stop it from going OOM.
Diagnosing which rules are actually taking up so much time. It seems like some rules must be doing some deeply recursive calls and keeping track of a lot of things without allowing GC to run. It may be worth investigating if people have found workaround for making these rules use less memory.

Just seems like the constant increase in memory requirement to run lint is not sustainable, so we might want to keep a look out for solutions here

Yeah.... 😢
I've noticed that running eslint on a single file can be big and slow, which I think indicates that some of our plugins are trying to read in the entire universe before doing anything.
On one hand, as you say, this feels slightly unsustainable.
On the other hand, given that a single file is slow, some of these performance concerns may be O(1)? 🤷
As for possible actionable solutions:

We could take stock of our existing plugins.  There might be some we can simply eliminate.
We could consider a "fast" eslint config for dev time, and a "slow" eslint config for CI/CD (and manual runs if you want)
We could consider alternate solutions like Biome...

Unfortunately I don't think Biome is ready for prime time quite yet.  In particular, there is no equivalent for no-floating-promises.  See: https://github.com/biomejs/biome/discussions/3

Yeah I'm mostly concerned about it in CI, since I had to bump --max-old-space-size to 6GB for build.sh because you can't run npm run lint with 5GB of memory anymore.
This doesn't get better if you lint individual packages at a time; maybe linting individual files one at a time will work but that's definitely going to increase the time to lint significantly in CI or if you want to lint the whole codebase locally.

Using TIMING=1 trick:
Rule                                          | Time (ms) | Relative
:---------------------------------------------|----------:|--------:
@typescript-eslint/no-floating-promises       | 11471.968 |    43.1%
@typescript-eslint/prefer-optional-chain      |  1171.389 |     4.4%
@typescript-eslint/no-base-to-string          |   935.673 |     3.5%
@typescript-eslint/no-unused-vars             |   890.750 |     3.3%
@typescript-eslint/no-unsafe-enum-comparison  |   868.960 |     3.3%
jsdoc/check-tag-names                         |   807.519 |     3.0%
jsdoc/valid-types                             |   628.463 |     2.4%
jsdoc/check-types                             |   519.871 |     2.0%
jsdoc/require-hyphen-before-param-description |   455.748 |     1.7%
jsdoc/require-property-name                   |   442.038 |     1.7%

I wonder if we could sponsor someone to port the no-floating-promises to Biome 🤔

The implementation of no-floating-promises relies heavily on the TypeScript compiler: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/src/rules/no-floating-promises.ts
Of the Biome TypeScript ESLint rules, I don't see any that come close to this level of semantic analysis.  Most of them are simple checks that can be performed by just looking at the tokens.
To implement no-floating-promises would require some pretty heavy duty parsing.  Consider:
import { foo } from 'bar';

foo();

There's no shortcuts here 🫤

Currently on my branch npm run lint crashes with SIGABORT at --max-old-space-size=5120, so that already means that minimum to even run (not even at a decent speed) is over 5GB

Attaching --prof to eslint + --prof-process, most of the time is just in the TypeScript compiler
 [JavaScript]:
   ticks  total  nonlib   name
    131    1.6%    2.7%  JS: *scan C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:10259:18
     64    0.8%    1.3%  JS: *sourceFileNotUptoDate C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:119082:35
     63    0.8%    1.3%  JS: **:not(Program) C:\Users\cody\dev\medplum\node_modules\eslint-plugin-jsdoc\dist\iterateJsdoc.cjs:1925:25
     62    0.8%    1.3%  JS: *bind C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:43681:18
     56    0.7%    1.2%  RegExp: import|require {1}
     55    0.7%    1.1%  JS: *<anonymous> C:\Users\cody\dev\medplum\node_modules\eslint\lib\linter\timing.js:139:24
     45    0.6%    0.9%  JS: *enterNode C:\Users\cody\dev\medplum\node_modules\eslint\lib\linter\code-path-analysis\code-path-analyzer.js:788:14
     44    0.5%    0.9%  JS: *getTokenBefore C:\Users\cody\dev\medplum\node_modules\eslint\lib\source-code\token-store\index.js:291:19
     42    0.5%    0.9%  JS: *getLocFor C:\Users\cody\dev\medplum\node_modules\@typescript-eslint\typescript-estree\dist\node-utils.js:222:19
     32    0.4%    0.7%  JS: *BackwardTokenCommentCursor C:\Users\cody\dev\medplum\node_modules\eslint\lib\source-code\token-store\backward-token-comment-cursor.js:31:16
     30    0.4%    0.6%  JS: *bindChildren C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:42410:26
     27    0.3%    0.6%  JS: *canHaveJSDoc C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:15038:24
     27    0.3%    0.6%  JS: *bindWorker C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:43744:24
     25    0.3%    0.5%  JS: *parseMemberExpressionRest C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:32716:43
     22    0.3%    0.5%  JS: *parseDelimitedList C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:30447:36
     21    0.3%    0.4%  JS: *createNodeArray C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:29804:33
     20    0.2%    0.4%  JS: *parseMemberExpressionOrHigher C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:32312:47
     20    0.2%    0.4%  JS: *getReferencedFileLocation C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:119033:37
     19    0.2%    0.4%  JS: *createIdentifier C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:29855:34
     18    0.2%    0.4%  JS: *getTransformFlagsSubtreeExclusions C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:24500:46
     17    0.2%    0.4%  JS: *doJSDocScan C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:34812:33
     16    0.2%    0.3%  JS: *isProgramUptoDate C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:119062:29
     16    0.2%    0.3%  JS: *get node:internal/bootstrap/node:371:8
     16    0.2%    0.3%  JS: *bindEach C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:42401:22
     15    0.2%    0.3%  JS: *parseAssignmentExpressionOrHigher C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:31785:51
     14    0.2%    0.3%  RegExp: import|require
     14    0.2%    0.3%  JS: *scanString C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:9890:24
     14    0.2%    0.3%  JS: *parseUpdateExpression C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:32273:39
     14    0.2%    0.3%  JS: *checkTypeRelatedTo C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:62714:32
     13    0.2%    0.3%  JS: *resolveNameHelper C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:47308:31
     12    0.1%    0.2%  JS: *parseTagComments C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:35065:38
     12    0.1%    0.2%  JS: *bindCondition C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:42711:27
     12    0.1%    0.2%  JS: *<anonymous> C:\Users\cody\dev\medplum\node_modules\esquery\dist\esquery.min.js:1:29413
     11    0.1%    0.2%  JS: *parsePrimaryExpression C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:32855:40
     11    0.1%    0.2%  JS: *iterateCommentRanges C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:9410:32
     11    0.1%    0.2%  JS: *getReducedASTNode C:\Users\cody\dev\medplum\node_modules\@es-joy\jsdoccomment\dist\index.cjs.cjs:838:36
     11    0.1%    0.2%  JS: *getPropertyOfType C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:57450:31
     11    0.1%    0.2%  JS: *<anonymous> C:\Users\cody\dev\medplum\node_modules\esquery\dist\esquery.min.js:1:29011
     11    0.1%    0.2%  JS: *<anonymous> C:\Users\cody\dev\medplum\node_modules\eslint\lib\linter\linter.js:1003:42
     10    0.1%    0.2%  JS: *parseCallExpressionRest C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:32780:41
     10    0.1%    0.2%  JS: *isDeprecatedSymbol C:\Users\cody\dev\medplum\node_modules\typescript\lib\typescript.js:46800:32

So clearly it's due to ESLint + TypeScript.
Given that tsc by itself doesn't cause memory issues, it could be related to our ESLint TypeScript config ??
When you ran project-by-project, did you do that from the root directory or from within the individual package directory?

Zooming out...  I'm a little skeptical that there's any low hanging fruit here.  Running one project at a time may help, but as you noted, it's not a silver bullet.
I believe that the @typescript-eslint rules are pretty important / non-negotiable.
I'm open to suggestions, but I don't see any easy solutions here 😞 Lotta lead bullets, no silver bullets.

https://news.ycombinator.com/item?id=38912104

Using eslint --cache is crazy fast, but apparently it is not recommended when using typescript-eslint: https://github.com/typescript-eslint/typescript-eslint/issues/4694

Yeah maybe no real solution for now other than scaling everything up... definitely should keep a passive look out for potential solutions, especially around Biome and the like.


Quick Reply Location Handler

Incoming location is currently being passed through from the payload of the attachment. Since payload object is an interface, we need to find a way to get the payload string and map that to a coordinate (lat/lang) object.

This has been implemented.


Deploy new datasets (6/2021) to the data access endpoints, review the data publishing pipeline

Work on the multi-specie dataset, prepare dumps for wheat, wheat mapping.

guess done now?

should we close this? @marco-brandizi :)

Closing. Some documentation for the RRes raw data pipeline is already available, will write more for Cyverse soon.


Feature -> close other open paths when select to another node with animation

very great lib with RecyclerView , at first i thank you for sharing this great lib as opensource
so i think it could be a feature for passing a boolean value in argument for closing behavior .
for example ( boolean isAutoClosingNonSelected )
think in a directory project that have a lot of categories name and after user selected a node ( Category ) ,  in another View component i loading data of that Category so it's be nice to have behavior of closing unnecessary  nodes when user wants to open another node
is it possible to add it please ?

Thank your appreciation. In order to implement this effect, i add several methods to TreeViewAdapter. You can check it out with this code.
        adapter.setOnTreeNodeListener(new TreeViewAdapter.OnTreeNodeListener() {
            @Override
            public boolean onClick(TreeNode node, RecyclerView.ViewHolder holder) {
                if (!node.isLeaf()) {
                    //Update and toggle the node.
                    onToggle(!node.isExpand(), holder);
                    if (!node.isExpand())
                        adapter.collapseBrotherNode(node);
                }
                return false;
            }

            @Override
            public void onToggle(boolean isExpand, RecyclerView.ViewHolder holder) {
                DirectoryNodeBinder.ViewHolder dirViewHolder = (DirectoryNodeBinder.ViewHolder) holder;
                final ImageView ivArrow = dirViewHolder.getIvArrow();
                int rotateDegree = isExpand ? 90 : -90;
                ivArrow.animate().rotationBy(rotateDegree)
                        .start();
            }
        });

When opening a TreeNode, its brother nodes that was opening would be collapsed.
You can also collapse all TreeNodes. like:
                adapter.collapseAll();

Thanks for your feedback : )

DiffUtil is a very good tool 👍


Properly set Cache-Control on CDN hosting

As per https://github.com/GoogleCloudPlatform/google-cloud-node/issues/1087#issuecomment-175105508, perhaps this will work?

Coverage remained the same at 86.833% when pulling 02b49b71f586ab4138ae296af9fa8cb4686cd460 on cache-control-cdn into a432b256fca74033db7b721d40e1343292140f0a on master.


[POC] Integrate the E2E test utils with mattermost-plugin-todo project

hey!
I'll post my discoveries in the mattermost-plugin-e2e-test-utils integration with the mattermost-plugin-todo project here.
The idea behind this is:

Create utility code here in this project that can be used throughout other mattermost plugins that want to test the projects using Playwright
The utility code will have things like starting a container with mattermost server that can be used in e2e tests, log in automatically, and stuff like that

Some of the initial code is being based on this PR https://github.com/mattermost/mattermost-plugin-msteams-sync/pull/459
The branch I created to test these things is: feature/playwright-setup
Feel free to take a look at it right now.
I'll write a next comment/post with the initial discoveries.

Mattermost Plugin E2E Test Utils Configuration
In the branch created I added a playwright configuration using the normal setup in the Playwright documentation.
After that, I added the utility code that was in the based PR reference in the above post that includes the testcontainers library and other libraries that support it like the pg one.
This code created Docker containers behind the scenes to start-up a Mattermost server container to test things.
And then I exported these utilities on the index.ts file to be used by others when referencing this package in npm.
Mattermost Plugin Todo
After doing these initial configurations described above, I was able to reference the e2e test utils project inside the mattermost-plugin-todo and use the utility code there like the MattermostContainer and the RunContainer classes.
I did an initial playwright configuration just like the above on a playwright folder inside the mattermost-plugin-todo project.
After that, I created a demo-test.spec.ts on this folder that has some tests to use the mattermost-plugin-todo.
But when I ran the test, I had a problem because the RunContainer class was referencing a dist folder that I didn't know what that was, this is the code I'm referring to:
const RunContainer = async (): Promise<MattermostContainer> => {
  let filename = "";
  fs.readdirSync("../dist/").forEach(file => {
      if (file.endsWith(".tar.gz")) {
          filename = "../dist/"+file
      }
  })
  if (filename === "") {
      throw("No tar.gz file found in dist folder")
  }

From what I understood, this seemed to be a .tar.gz that comes from the com.mattermost.msteams-sync project, so I'll probably need to understand and change that so this can work as expected.
Probably we will need to make this agnostic of the project and this structure will need to change.
That's what I'm going to work on right now.

But when I ran the test, I had a problem because the RunContainer class was referencing a dist folder that I didn't know what that was, this is the code I'm referring to:

The dist folder is generated in the root directory of the plugin repository (any plugin repository), when the plugin is compiled with make dist or make deploy etc. A bundle in the form of (plugin id).tar.gz is created, that can then be uploaded to the Mattermost server to run there.
So in order for fs.readdirSync("../dist/") to succeed, we'll need to have a established convention of the location of the folder we run the tests from. At the moment, it seems RunContainer assumes we are "one folder" into the repo, as .. would lead us to the root directory, and ../dist would lead us to dist.

My initial idea with this is to try to create the simplest version of the PR and run the tests just to see if this works, so now I'll probably need to work on configuring and changing more things to make a simple TODO plugin test pass.

Awesome :tada:  Feel free to braindump here if anything comes up that you want to discuss :+1:
Excellent work Lucas!!

Nice, thanks for your thought.
Do you have any idea how we should approach this? since the .tar.gz file will be different from plugin to plugin
Maybe we would need to pass a path for the readdirSync to read inside the plugin folder.
I'll try to come up with something easy.

Do you have any idea how we should approach this? since the .tar.gz file will be different from plugin to plugin

@panoramix360 I'm not sure I understand. The code you linked above makes no assumptions about the plugin id right? I think it should work with every plugin, as long as the e2e test directory structure is consistent among the projects.

Not on this part that I inserted here, but in another place it has a reference to the mteams plugin, but that's not the issue.
The issue here is:

This code above assumes the dist folder needs to be inside the mattermost-plugin-e2e-test-utils but that's not actually what we want to do, we have to use the dist/ folder inside the project that it's using this repo.

But I'll think about something, so we can have a path passed by an argument maybe that uses an absolute path to read the file.
What do you think?

This code above assumes the dist folder needs to be inside the mattermost-plugin-e2e-test-utils but that's not actually what we want to do, we have to use the dist/ folder inside the project that it's using this repo.

@panoramix360 I'm not sure if it works that way with a relative path. When we run fs.readdirSync("../dist/"), I believe that is relative to the CWD of where we are in the terminal when we run the tests. If we involved __dirname in this calculation, it would be relative to this file, but since we just do ../dist, it should simply be the parent directory of the CWD.
So if we run npm test in mattermost-plugin-todo/e2e/playwright, we would want to do ../../dist

@panoramix360 If you want we can have a meeting to give you my POV about it, and even do some pairing to move this forward.

hey @jespino and @mickmister
first, it seems that the relative path of readdirSync is using the directory inside the e2e-utils and not on the plugin-todo, but I'll test more today.
@jespino, I'd be glad to have a meeting about it :D can we schedule on Mattermost Community? maybe @mickmister will want to participate as well

@panoramix360 sure, let's do it.

hey!
I configured the tests in a branch inside the mattermost-plugin-todo with the playwright configurations and it's referencing the mattermost-plugin-e2e-test-utils locally.
And this is the initial test:
import { test, expect } from "@playwright/test";

import {
  RunContainer,
  MattermostContainer,
  login,
  logout,
} from "mattermost-plugin-e2e-test-utils";

let mattermost: MattermostContainer;

test.beforeAll(async () => {
  mattermost = await RunContainer({
    packageName: "com.mattermost.plugin-todo",
    distPath: "../dist",
  });
});

test.afterAll(async () => {
  await mattermost.stop();
});

test.describe("link slash command", () => {
  test("try to link a channel as regular user", async ({ page }) => {
    const url = mattermost.url();
    await login(page, url, "regularuser", "regularuser");
    await expect(page.getByLabel("town square public channel")).toBeVisible();
    await logout(page);
  });
});

This test is passing 🥳
@mickmister what do we go from here? maybe creating more tests so we can have some parts of the plugin-todo tested just as a reference?


Hello World should start with a module line

When the Hello World snippet is copied/pasted in Ellie, the latter complains about the missing first line "module Main exposing (..)".
Should be fixed ?

i don't know about ellie, but as mention here
Note: If you forget to add a module declaration, Elm will use this one instead:

module Main exposing (..)
This makes things easier for beginners working in just one file. They should not be confronted with the module system on their first day!


proposal: Go 2: add built-in null for zero value of pointers

There is a long-standing confusion in Go between a nil interface value and a non-nil interface value that holds a pointer type with a value of nil.  There is a FAQ entry for Why is my nil error value no equal to nil?.  Despite the FAQ entry, this has been reported as a bug many times (#43643, #44102, #47551, #53768, #54229, #56930, #57292, #59521 among many others).  See also the discussion at https://dave.cheney.net/2017/08/09/typed-nils-in-go-2.
There have been several attempts to address this, including at least #21538, #22729, #24635, #24682, #27890, #30294, #30865, #60786.  None of these have worked.
Many of those previous attempts have tried to associate nil with pointers, and to one way or another stop using nil with interfaces.  The problem with that is that so much Go code has lines like if err != nil, which is a comparison between an interface type and nil.  It's not realistic to expect all of those lines of Go code to change.  Any proposal that requires them to all change is a non-starter.
So let's consider this from the other side: change pointers.
I propose adding a new predeclared identifier null.  The name null is like nil in that it is an untyped value.  It may be assigned to any variable of pointer type, setting that variable to the zero value.  It may be compared to any value of pointer type, reporting whether that value is the zero value.  In other words, null is exactly like nil, but it may only be used with pointer types, not with interface types nor any other non-pointer type.
This has some similarities to the recent proposal for zero (#61372) in that it introduce yet another name for the zero value, albeit one that can only be used with pointers.
If this proposal is accepted, using pointer types with nil will continue to work.  However, people can avoid confusion by consistently using null when they want a null pointer and nil when they want an empty interface.  In particular, if people can start to consistently think of null pointers rather than nil pointers, then my hope is that writing err != nil will not suggest that it is a test of whether a pointer value stored in err is null.  In other words, distinguishing nil and null should help people understand what happens when you convert a null pointer to interface type.
We can provide a rewriting tool that will change the use of nil with pointer types to use null instead.  Over time we can introduce a vet check that will warn about uses of nil with pointer types.  And, perhaps, we can eventually entirely disallow the use of nil with pointer types.  (This kind of transition is compatible with the Go transition document which permits us to change the language to remove features that used to work, in this case the feature of using nil with pointers).
Although nil is also used with slices, maps, channels, and functions, I don't think it's necessary to change them to use null nor to introduce new names for their zero values, as they rarely seem to cause confusion with interface values.
The assumption here is that nil is used far more often with interfaces than with pointers, and that it is feasible to change pointers to stop using nil whereas it is not feasible to change interfaces.  This assumption may be wrong.
To be clear, I doubt this proposal will be adopted.  But I wanted to write it down as an idea to point to for people who want to address the nil confusion problem.  And perhaps it will suggest some other proposal that might be adopted.

I am not sure about your assumptions, and I am not sure that the proposal would fix the most common confusion, which is the difference between a nil interface and a interface containing a type but no value. If we look at https://go.dev/doc/faq#nil_error, the confusion is not because there are two kinds of nil, but because the interface contains a nil but is not itself nil. Having a choice of null or nil in the language would not change the example there, which would still use nil everywhere except arguably in the unnecessary initialization of myError.

If we did this and wanted it to resolve the confusion, we would have to run a massive conversion campaign to change every instance of nil used as a pointer to say null instead (including in books, tutorials, and so on), and then disallow nil for pointers. Only at that point would there no longer be confusion, since x == nil would be for interfaces and x == null would be for pointers, and (hopefully) no one would think that assigning interface x = (*T)(null) would result in x == nil.
That is a nice plan if we were starting from scratch, but it seems like far too much churn to fix what in practice is an annoying but fairly small problem. The benefit does not seem worth the cost.
We could also flip things around and move to x == zero for interfaces and then disallow x == nil for interfaces. That would probably be less churn, since only interfaces are involved, and it would not involve adding a third name for a zero value, so it's probably preferable to adding null, but it would still be a lot of churn, and probably still more cost than benefit.

I suppose zero doesn't work after all because then the problem would become
var x any = time.Time(zero)
println(x == zero) // false

You need a name that is not shared by any other values.
That also kills the null-for-pointers idea, since you can still have
var x any = []int(nil)
println(x == nil) // false

The text says this is less common than pointers, which is true, but if we're going to cause a whole lot of churn, we might as well make the problem go away entirely. To eliminate every form of this problem, interface zeros need a name that is different from every other type's zero.
The name for an interface zero could be null, but I think it would be very confusing to have both null and nil. And it's still a lot of churn to fix a relatively small problem.

Having a choice of null or nil in the language would not change the example there, which would still use nil everywhere except arguably in the unnecessary initialization of myError.

Yes.  The hope here is that if people think in terms of nil interface values and null pointers, then they won't be surprised when err  != nil returns true for a null pointer.  Because nil and null are different.

We could also flip things around and move to x == zero for interfaces and then disallow x == nil for interfaces

But that would break all err != nil conditions, which (I posit) are more common than ptr == nil conditions.
I don't agree that the problem is "relatively small;" it gets reported, incorrectly, a lot (the list of issues above is incomplete and also doesn't count the people who report it on the mailing list).  It's a stumbling block for many people learning Go.  We don't have an answer, and it's not the end of the world if we never have an answer, but that doesn't mean that it's not a problem.
That said, the point of this proposal is not to actually adopt it.  I guess I should have said that more clearly.  It's to give us another place to point to for people who make proposals to address this problem, which are fairly frequent.

To eliminate every form of this problem, interface zeros need a name that is different from every other type's zero.

For the record, #22729 was one attempt at that.  It doesn't work either.

I scrolled a bit but didn't see why it doesn't work. Can you summarize in a sentence or two?

It doesn't work because in the long run it requires all err != nil conditions to change to err != nilinterface.  I've come to the view that that is simply a non-starter.

I do understand that this situation is a common source of confusion for beginners with Go, but it's also been my experience that once someone learns the reason behind it they tend to understand why the language behaves that way and, as a bonus, leave with a better understanding of what an "interface value" is.
I've also seen Go beginners run into similar confusion with nil slices vs. zero-length slices, and nil maps vs. zero-length maps. The mental model required to understand this similar to the mental model required to understand why it's possible to store a nil pointer inside an interface value, though I will concede that at least in this case it isn't possible to spell a non-nil zero-length slice as nil, so the confusion is limited only to the slice == nil comparison situation. Still, if confusion about nil is the problem to be solved then I'd prefer a solution which solves for all the nil confusion, rather than just one example.
If given the luxury to start again I agree that it might have been helpful to use a different spelling for each type kind's zero value, but I am not convinced that adding a second spelling of the zero value of pointers at this late stage would actually help. Instead, I expect it to just raise additional questions about what the difference is between null and nil -- which have no clear mnemonic to remember which is which.
The only way I could support something like this proposal is if the new name were more obviously type-kind specific -- whether that be nilptr for zero-value pointers or something like nilinterface for zero-value interface types, depending on which one seems more deserving of the special name -- and if there were a clear path to making the undecorated nil actually invalid in that context in some actually-planned future version of Go (as opposed to a "maybe some day" Go 2).

Based on the discussion above, this is a likely decline.  Leaving open for three weeks for final comments.

No further comments.


Make more obvious that the product price must be set in cents through the dashboard

I'm testing Shopper and faced troubles to setting a price for a product through the dashboard. I tried setting the price to 72.99 (seventy-two and ninety-nine cents) and saved the product.

But when I checked the product on the catalog list the price was like "0.73".

Then I tried to set the price in another format like 7299 and I got it.

But the format doesn't seem right in the price amount field, it's like the number is "7,299" (seven thousand, two hundred and ninety-nine), for non-programmers this is hard to figure out.
My suggestion is to apply a mask to these fields to force the price to be defined in cents.

Done.


negative performance impact on high EPS rate

Hi Logstash drop team
we have a simple kafka in Kafka out logstash config with high ESP rate (>1000)
If we enable the drop filter, we only achieve very little performance.
Can you pls share best practice for batch size, to improve the drop filter performance?
More details are available within other issue
For all general issues, please provide the following details for fast resolution:

Version: logstash-6.2.2
Operating System: CentOS7
Config File (if you have sensitive info, please remove it):
Sample Data:
Steps to Reproduce:

Thanks for the headsup @GERandro.
This is following a LS2 to LS6 upgrade right?

@colinsurprenant @GERandro After some internal discussion, it was determined this issue is caused by two bugs:

Dropping events was actually slow
We misreported the speed of the drop filter

There is now a fix for the slowness here: elastic/logstash#9284.
Regarding reporting, it was found that the pipeline viewer is incorrectly reporting the per-event speed of the drop filter. It's calculating events_output / total_execution_time to determine the time per event, when for the drop filter it should use events_input instead. An internal issue for x-pack-kibana has been created to address this.


feat: Show image status in the GUI

The GUI could have an indicator/text to tell the user it failed to show an image.
It could also suggest the user check for typos in the Latex code.
For example, if the user wants to convert this code with a typo:
\begin{bmatrix}
x \\
y \\
z
\end{bmatrx}

The GUI will not show the image without an explanation.

However, the terminal shows the tool failed to show the image.
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\tkinter\__init__.py", line 1884, in __call__
    return self.func(*args)
  File "E:\repos\latex-to-github-app\latex-to-github-app.py", line 177, in encodeLaTeX
    self.show_image()
  File "E:\repos\latex-to-github-app\latex-to-github-app.py", line 186, in show_image
    self.page = urllib.request.urlopen(self.github_url).read()
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 214, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 523, in open
    response = meth(req, response)
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 632, in http_response
    response = self.parent.error(
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 561, in error
    return self._call_chain(*args)
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 494, in _call_chain
    result = func(*args)
  File "C:\Users\anton\anaconda3\envs\latex2github\lib\urllib\request.py", line 641, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500: Internal Server Error

Hello, Antonio. Thank you so much for your feedback.
I have implemented your suggestion. Now, when a urllib.error.HTTPError is raised, an error message will be displayed telling that there was an error and suggesting to check the LaTeX code for typos. I have kept the full exception showing in the terminal for additional information.
In this update I have also implemented right-click mouse copy-cut-paste menus for the text widgets.
If you have any other suggestion, please do not hesitate to let me know.


pythonPackages.slither-analyzer: add setuptools

Motivation for this change
noticed it was broken while reviewing #70779
before:
slither --help
Traceback (most recent call last):
  File "/nix/store/avcqq2i4qxrq0q88lcfjcqwp5kwncsc0-python3.7-slither-analyzer-0.3.0/bin/.slither-wrapped", line 7, in <module>
    from slither.__main__ import main
  File "/nix/store/avcqq2i4qxrq0q88lcfjcqwp5kwncsc0-python3.7-slither-analyzer-0.3.0/lib/python3.7/site-packages/slither/__main__.py", line 12, in <module>
    from pkg_resources import iter_entry_points, require
ModuleNotFoundError: No module named 'pkg_resources'

after:
$ slither --help
usage: slither.py contract.sol [flag]

Slither

positional arguments:
....

Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

Thanks for fixing these @jonringer :sparkle:

backported in dd0fac6548c7953c86d791a3946ba9ffe5fef96d


Workflow summary shows failure when the Terminus token is uncached

When using the action, the exit 1 thrown by the cache step bubbles up to the workflow and shows an error even if everything else succeeds.
Is there a way to prevent that error from bubbling, or a different way of cache checking that doesn't return an error exit code?

I just came here to post this, I'll work on a PR.


Error: Unknown node [object Object]

Hi, wondering if you know why this is failing?
https://runkit.com/crazy4groovy/5a0e23d49de1da00127803fe

I don't know, I copy pasted it locally and I ran it, no error. You should investigate in the source code to see what is going on.

I confirm this works with my local node too. I'll open a runkit ticket.

The reason this happens is because h2x-core(through h2x-traverse) and h2x-plugin-jsx both individually list h2x-types as dependencies. The reason this is an issue is for the following reason:

h2x-types defines the symbol NODE_TYPE using Symbol("NODE_TYPE") (vs. for example Symbol.for("h2x-types/NODE_TYPE"))
This means that two h2x-types in a node_module tree can not interact, the library fundamentally relies on package-management deduping to ensure that two separate logical requires resolve to the same identical placement, and thus the same copy of the package.
RunKit uses npm2-style non-deduping behavior for resolving packages (this is unfortunately the only way to avoid more serious complications with non-deterministic behavior emergent from deduping algorithms. You can read the issue with nom's deduping here: https://docs.npmjs.com/how-npm-works/npm3-nondet, but yarn's also has issues which if anyone is curious I am happy to share but is beyond the scope of this explanation).
Thus on RunKit h2x-core/node_modules/h2x-traverse/node_modules/h2x-types/symbols !== h2x-plugin-jsx/node_modules/h2x-types/symbols, and as such this if check fails:

if (node.constructor[_symbols.NODE_TYPE]) return node.constructor[_symbols.NODE_TYPE];

Forcing the code down to the getHTMLNodeType section which eventually results in the error.
This is actually not just a problem that exists in RunKit, but a tricky problem that can turn up in many different scenarios, even if you are using a deduping package manager, as you can still end up with two copies of similar packages in these schemes with the right semver range combinations). The traditional way this problem crops up is with constructors not matching (instanceof failing) due to same issue but with entire classes. There are a number of different ways to deal with this:

You can use the facebook/immutable strategy and use well-known strings instead of symbols. The theory here is that .nodeType could arguably be a property just like .name and .children, no need to store in a symbol. You can set enumerable to false you can still avoid it coming up in for loops, etc. I don't know much about the library so I can't comment about whether this would violate other goals.
Use Symbol.for to ensure even different copies of the library end up with the same symbol. This is similar to the string method, and you would theoretically be relying on the uniqueness of the symbol name vs. true object identity, but again, arguably if someone has a symbol named "h2x-types/NODE_TYPE" they probably mean this, and either way its always accessible through require("h2x-types/symbols") anyways, so its not like you can prevent people placing this symbol in arbitrary objects anyways.
Make h2x-types a peerDependency instead of a dependency to explicitly require all libraries use the same copy, instead of incidentally relying on that through deduping.

I hope this clears up why its not working, and I'm happy to answer any questions or provide any other help in getting this up and running on RunKit!

Thanks for tracking that down @tolmasky! Sounds like good advice. I've rarely used Symbol myself, so your first solution seems reasonable to me.
@neoziro ?

@tolmasky thank you for investigated it!
Using plain strings instead of symbols is good for me. Feel free to propose a pull request, else I will do it as soon as I have a moment.


add tenant ids to webhook

add tenant ids to webhook

[x] add tenant_ids to webhook
[x] upgrade go-client to the latest commit 4f85e4f2101f934174f26a399629a66e69eb78eb

End-to-End testing on local development

I think this is similar to https://github.com/gpsinsight/terraform-provider-fusionauth/pull/145?
Is it possible to make these deprecated instead of removing them to allow this to work with other versions of FusionAuth that still have webhooks on the Application?
See comment:  https://github.com/gpsinsight/terraform-provider-fusionauth/pull/145#issuecomment-1267862286

I think this is similar to #145?
Is it possible to make these deprecated instead of removing them to allow this to work with other versions of FusionAuth that still have webhooks on the Application?
See comment: #145 (comment)

@robotdan My understanding is that it is impossible to make these deprecated instead of removing them cos my pr is depend on this commit from https://github.com/FusionAuth/go-client. As long as I upgrade the library, application_ids will be removed. Please feel free to correct me.


fix(nocheckmark): update menuoptions on each update #142

Alaska Airlines Pull Request
Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Fixes: #142
Summary:
Move the checkmark logic to updated() instead of firstUpdated().
Type of change:
Please delete options that are not relevant.

[ ] New capability
[x] Revision of an existing capability
[ ] Infrastructure change (automation, etc.)
[ ] Other (please elaborate)

Checklist:

[x] My update follows the CONTRIBUTING guidelines of this project
[x] I have performed a self-review of my own update

By submitting this Pull Request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Pull Requests will be evaluated by their quality of update and whether it is consistent with the goals and values of this project. Any submission is to be considered a conversation between the submitter and the maintainers of this project and may require changes to your submission.
Thank you for your submission!
-- Auro Design System Team

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update Composer dependencies (2023-08-09-00-12)

Visual regression test passed!
View the visual regression test report


sometimes reconnecting doesn't work

My computer froze for a couple minutes, and mantaray printed this error:
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 244, in _connect_and_recv_loop
    self._recv_loop()
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 399, in _recv_loop
    raise e
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 394, in _recv_loop
    line = _recv_line(sock, self._recv_buffer)
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 174, in _recv_line
    raise OSError("Server closed the connection!")
OSError: Server closed the connection!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.9/threading.py", line 892, in run
    self._target(*self._args, **self._kwargs)
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 250, in _connect_and_recv_loop
    self._disconnect()
  File "/home/akuli/mantaray-prod/mantaray/backend.py", line 472, in _disconnect
    sock.shutdown(socket.SHUT_RDWR)  # stops sending/receiving immediately
  File "/usr/lib/python3.9/ssl.py", line 1280, in shutdown
    super().shutdown(how)
OSError: [Errno 107] Transport endpoint is not connected

I couldn't reconnect without restarting mantaray.

Currently there is only one shutdown() call, and it has the correct error handling.


QueriesExecutionContext::isAllConsumed works different depending on signature of GenericExecuteSpec#map

Bug Report
Different variance of map method at io.r2dbc.spi.Result work inconsistently with QueryInvocationSubscriber#afterQuery
Versions

Driver: io.r2dbc:r2dbc-h2:1.0.0.RELEASE
Proxy: io.r2dbc:r2dbc-proxy:1.1.2.RELEASE
Database: H2
Java: 17
Kotlin: 1.8.22
Kotlin Coroutines: 1.6.4
OS: Mac OS Ventura 13.5.1

Current Behavior
io.r2dbc.spi.Result#map(java.util.function.Function<? super io.r2dbc.spi.Readable,? extends T>)

does not trigger QueryInvocationSubscriber#afterQuery
io.r2dbc.spi.Result#map(java.util.function.BiFunction<io.r2dbc.spi.Row,io.r2dbc.spi.RowMetadata,? extends T>)

triggers QueryInvocationSubscriber#afterQuery
Steps to reproduce
I have ProxyConnectionFactory with ObservationProxyExecutionListener
val url = "r2dbc:h2:mem:///testdb;DB_CLOSE_DELAY=-1"
val connectionFactory = ConnectionFactoryBuilder
    .withUrl(url)
    .build()
ProxyConnectionFactory.builder(connectionFactory)
    .listener(
        ObservationProxyExecutionListener(ObservationRegistry.create(), connectionFactory, url).apply {
            setIncludeParameterValues(true)
        }
    )
    .build()

and repository
class Repository(
    private val databaseClient: DatabaseClient
) {
    suspend fun selectReadable(): Int? = Mono.usingWhen(
        databaseClient.connectionFactory.create(),
        { conn ->
            conn.createStatement("select 1").execute().toMono()
                .flatMap { result ->
                    result.map { readable ->
                        readable.get(0, Int::class.javaObjectType)
                    }.toMono()
                }
        },
        Connection::close
    ).awaitSingleOrNull()

    suspend fun selectBiFun(): Int? = Mono.usingWhen(
        databaseClient.connectionFactory.create(),
        { conn ->
            conn.createStatement("select 1").execute().toMono()
                .flatMap { result ->
                    result.map { row, _ ->
                        row.get(0, Int::class.javaObjectType)
                    }.toMono()
                }
        },
        Connection::close
    ).awaitSingleOrNull()
}

where result processed by different signatures of GenericExecuteSpec#map: Function or BiFunction as parameter.
When selectReadable() called then QueryInvocationSubscriber#afterQuery does not call because io.r2dbc.proxy.callback.QueriesExecutionContext#isAllConsumed is false.
Otherwise when selectBiFun() called then listener publishes QueryInvocationSubscriber#afterQuery
Expected behavior/code
Both variance of io.r2dbc.spi.Result#map trigger QueryInvocationSubscriber#afterQuery

@Declow0 Thanks for the report.
I'm a bit confused by GenericExecuteSpec#map but it essentially boils down to the Result#map(BiFunction) and Result#map(Function).
I have root caused why it doesn't call afterQuery.
It may take some time to implement this issue properly.
In the meantime, as a workaround, please use Result#map(BiFunction) to trigger the afterQuery for now.


Simplify language module compilation

The MASTER.js file is becoming quite messy to handle. The Stitcher should be able to at least identify directories there and add all their files to the compilation set; this could help eliminate a lot of manual handling of entries from the master file.
The native metamodel stuff may need some reorganizing in order to work, tho, since some native files have to be added right after certain type definitions...

OK this is finally done.

Awesome!
Sent from my iPhone

On 15 May 2015, at 7:16 am, Enrique Zamudio<EMAIL_ADDRESS>wrote:
OK this is finally done.
—
Reply to this email directly or view it on GitHub.


Fixed cases where req.query.page doesnt get parsed into Number type

I tried the example (either one) provided in the README file, one issue that came up was that req.query didnt automatically get parsed by express into Number types when possible, so when I passed req.query.page to getArrayPages it returned an error because req.query.page is a string value.
if I did parse it to a number and then passed it using getArrayPages(3, pageCount, Number.parseInt(req.query.page)) a different issue will come up where getArrayPages will return an invalid url string since it uses the href(req) which contains the string type req.query.page:
[
    {
      "number": 1,
      "url": "/list?page=11&limit=10"
    },
    {
      "number": 2,
      "url": "/list?page=11&limit=10"
    },
    {
      "number": 3,
      "url": "/list?page=11&limit=10"
    }
  ]

Code example: (express v4.11.1)
let express = require('express');
let paginate = require('express-paginate');
let app = express();

app.use(paginate.middleware(10, 50));

app.get('/', (req, res, next) => {
  console.log(req.query, typeof req.query.page);
  // { page: '1', limit: '10' } 'string'
});

app.listen(3000);

I added this in v1.0.0 release just published now.  Please install via npm install express-paginate@latest or yarn add express-paginate@latest.  Thank you.


Nodes configuration and updated README

@c-rack Sorry for long delay, just got the ability to solve the issues.

Thanks a lot!


Webgl polygon rendering

I have a simple map with one feature, if I switch renderer to canvas, everything is ok, but if I switch renderer to webgl, feature is hidden and sometimes browser freeze. Is it a problem with bad feature or with rendering?
renderer.zip

I'd consider the WebGL renderer a bit experimental. Is there any reason why you cannot use the standard Canvas renderer?

@ondrejlaga, FWIW, there is a warning in firefox when moving the mouse:
Error: WebGL warning: drawElements: Drawing to a destination rect smaller than the viewport rect.
The polygon looks complex, maybe it is a corner case not triangulated properly. @GaborFarkas any idea?

If the canvas renderer can draw it, then it is certainly not a bad feature, but there is something wrong with the renderer. I will look into it soon. Thank you for the extra information @gberaudo, it will be a good starting point. It is something bigger than a triangulation error AFAICS. When I tested the renderer on very bad polygons, it could still draw them, just not correctly/accurately.

Now this is something really weird you should definitely try out @gberaudo, @ahocevar.

First of all, the triangulation algorithm has a long way to go. Thank you for the example data, @ondrejlaga, I will try to fix it up somewhat based on that.

There are several different problems. When the select event is associated with a pointer move event, we get an Assertion error 30 sometimes. Still need to figure out the nature of the bug. With the default click event, there is no problem.

What is weird, the polygon disappears on greater zoom levels, as the flat coordinates are supplied as strings. An ugly fix in ol.render.webgl.PolygonReplay.prototype.drawPolygon mapping the flat coordinates to Number solves this issue. There might be a chance, the 2D canvas's drawing methods actually accept coordinates as strings. The coordinates are coming from the ol.geom.flat.simplify.quantize function, and again, they are coming as strings only on greater zoom levels.

@ondrejlaga the GeoJSON is invalid; the coordinates are encoded as string instead of number
fixed version here: https://gist.github.com/fredj/ea28e945e49bc93e26339fdafb99c300


Using the "boolean" schema type results into "$sce:unsafe" error

Enhancement
I am  using the angular-schema-form together with ng6-starter.
I'm trying to create a checkbox using the "boolean" schema type. Here is how I do it:
var schema = {
  "type": "object",
  "properties": {
   ...
    "terms_and_cond": {
            "type": "boolean",
            "title": "I accept the terms & conditions"
     }
  }
}

var form = [
  ...
 {
      "type": "fieldset",
      "items": [
        "terms_and_cond"
      ]
    }
]

Expected behaviour
I expected the checkbox to be rendered.
Actual behaviour
I'm getting this error: "Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context."
@json-schema-form/angular-schema-form-lead

Never mind. I just needed to add the "angular-sanitize" module. I'm pretty new at Angular. Was sure I was doing a newbie mistake :)

+1 angular-sanitize


Remove creation of example data via Flyway

Example data will be created by a special class.
It checks whether the database already contains data and if not,
it creates the example data on startup.
Resolves #45

Please update changelog

Updated

Thank you!


Pull RHCOS images earlier so that kubelet certs won't expire

Installer generates time-restricted certificates, so images should be downloaded earlier, so that installer assets won't expire

Can you provide a bit more information on why this is needed?
It's not clear to me why pulling this at the start of the script is needed, and how that's related to the kublet cert expiry - this just downloads the qcow file right?

This downloads two images - qcow for bootstrap and gz for openstack images - before ignition files are generated. Downloading may take a while and installer can have time-sensitive assets - e.g certificates. AFAIK kubelet certs would now expire in 24h, but this might change in the future, so time-consuming actions should be done first

Ok thanks for clarifying - perhaps it would be clearer if we just moved this into one of the earlier scripts e.g 02_configure_host or something, but for now this seems fine.


ockam run - a single command to run many ockam “create” commands

To remove the need for typing many commands in an exact order
ockam run - a single command to run many ockam “create” commands where what is created is specified in a declarative file.
This example series of commands becomes:
ockam node create telegraf --project project.json --enrollment-token $OCKAM_TELEGRAF_TOKEN
ockam policy set --at telegraf --resource tcp-inlet --expression '(= subject.component "influxdb")'
ockam tcp-inlet create --at /node/telegraf --from <IP_ADDRESS>:8087 --to /project/default/service/forward_to_influxdb/secure/api/service/outlet

ockam node create influxdb --project project.json --enrollment-token $OCKAM_INFLUXDB_TOKEN
ockam policy set --at influxdb --resource tcp-outlet --expression '(= subject.component "telegraf")'
ockam tcp-outlet create --at /node/influxdb --from /service/outlet --to <IP_ADDRESS>:8086
ockam forwarder create influxdb --at /project/default --to /node/influxdb

becomes ockam.yaml
projects:
  default:
    # ...

nodes:
  telegraf:
    enrollment-token: $OCKAM_TELEGRAF_TOKEN
    tcp-inlets:
      telegraf:
        from: <IP_ADDRESS>:8087
        to: /project/default/service/forward_to_influxdb/secure/api/service/outlet
        access_control: '(= subject.component "influxdb")'

  influxdb:
    enrollment-token: $OCKAM_INFLUXDB_TOKEN
    tcp-outlets:
      influxdb:
        from: /service/outlet
        to: <IP_ADDRESS>:8086
        access_control: '(= subject.component "telegraf")'
    forwarders:
      influxdb:
        at: /project/default

you write that file and then run:
$ ockam run

We may allow multiple yaml files to be combined - for example project.yml + ockam.yml in some order of presidence.
The YAML may reference the state already in ~/.ockam - for example /project/default or an identity already defined.
Many people don’t like YAML because of its ambiguity so we may ~consider things like cue https://cuelang.org/~ - turns out cue doesn’t have a rust impl yet. TOML and JSON may also be supported as options, but I think the succinctness of YAML has some advantages here.

This is similar to docker compose files
https://github.com/compose-spec/compose-spec/blob/master/spec.md
The depends_on constraint would be key to deciding on the order in which we create this.
I know @adrianbenavides has some bits of this implemented in some shape already in the code base somewhere.

Context about the previous implementation
Here is the code of the attempt we tried a few months ago. This code was deleted from the develop branch and is not available anymore.
This implementation was designed around the assumption that we should be able to parse any command from the configuration file, and therefore, it had to have a flexible text-based parsing. This flexibility has a big trade-off: the user has to explicitly write all the commands as if it were a script, increasing the UX complexity.
!!! Note that most of the things implemented here are not needed in the new design (e.g. piping, commands' preprocessing, exporting commands into a file, prompt the user to add missing arguments, ...).
Comments on the new design
The design proposed in this issue is quite different: we want to support a limited syntax that we can parse into specific commands along with their arguments.
So, instead of parsing commands and arguments defined as free-text strings, the parser should be able to recognize the commands given the keys used in the configuration file.
This simplifies a lot the logic, mainly because we can verify that the configuration file contains valid commands before executing them.

We have the beginnings of this in #4605


Port server components to core 6

@jedelbo I believe that I have addressed all comments and suggestion. Please review again.


genes not present in gGnome.js instance

Hi,
I'm unable to view any gene tracks, it looks like this functionality is not present in the demos on the README as well. Is the functionality operational?
Thanks!

Hi @zlskidmore ,
I am not sure I understand the issue.
Here is one of the screenshots from the README:

On the top right you can see the "optional tracks". And there you can enable the "genes" track. After a short delay the gene track should show up (in the screenshot it is enabled and you see it).
Also, you say "gene tracks", but there is just one track for genes.
One more thing. Are you using hg38 or hg19?

Hi @ShaiberAlon
Here is what I see

I am using hg38, here is a head of public/genes.json
	{"iid": 427072, "chromosome": "chr19", "startPoint": 58345178, "endPoint": 58353492, "y": 0, "title": "A1BG", "group_id": "5118", "type": "gene", "strand": "-", "weight": 1},
	{"iid": 427073, "chromosome": "chr19", "startPoint": 58353404, "endPoint": 58353437, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
	{"iid": 427074, "chromosome": "chr19", "startPoint": 58353292, "endPoint": 58353327, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
	{"iid": 427075, "chromosome": "chr19", "startPoint": 58352928, "endPoint": 58353197, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
	{"iid": 427076, "chromosome": "chr19", "startPoint": 58352283, "endPoint": 58352555, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},

I didn't see the gene track display genes on the demo here either:
http://mskilab.com/gGraph/index.html?file=DO234435.json&location=1:0-249250619&view=
I have checked and everything seems to match chr-wise, I did look at the code base but was unable to track down the issue, I'm not sure if it's a bug, or an issue with my data.

Can you please also share the contents of the file
public/metadata.json
On Fri, Dec 17, 2021 at 4:17 PM Zachary Skidmore @.***>
wrote:

Hi @ShaiberAlon https://github.com/ShaiberAlon
Here is what I see
[image: Screen Shot 2021-12-17 at 3 14 54 PM]
https://user-images.githubusercontent.com/6145692/146608886-997607aa-f24f-41cf-a1b8-376d53c339fe.png
I am using hg38, here is a head of public/genes.json
{"iid": 427072, "chromosome": "chr19", "startPoint": 58345178, "endPoint": 58353492, "y": 0, "title": "A1BG", "group_id": "5118", "type": "gene", "strand": "-", "weight": 1},
{"iid": 427073, "chromosome": "chr19", "startPoint": 58353404, "endPoint": 58353437, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
{"iid": 427074, "chromosome": "chr19", "startPoint": 58353292, "endPoint": 58353327, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
{"iid": 427075, "chromosome": "chr19", "startPoint": 58352928, "endPoint": 58353197, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
{"iid": 427076, "chromosome": "chr19", "startPoint": 58352283, "endPoint": 58352555, "y": 0, "title": "A1BG", "group_id": "5118", "type": "CDS", "strand": "-", "weight": 1},
—
Reply to this email directly, view it on GitHub
https://github.com/mskilab/gGnome.js/issues/18#issuecomment-997036753,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEGXY5GWWWWI77ZTIBQCEZTUROSHJANCNFSM5KJNEI2A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>

		{"chromosome": "chr1", "startPoint": 1, "endPoint": 248956422, "color":  "#1f77b4"},
		{"chromosome": "chr2", "startPoint": 1, "endPoint": 242193529, "color":  "#ff7f0e"},
		{"chromosome": "chr3", "startPoint": 1, "endPoint": 198295559, "color":  "#2ca02c"},
		{"chromosome": "chr4", "startPoint": 1, "endPoint": 190214555, "color":  "#d62728"},
		{"chromosome": "chr5", "startPoint": 1, "endPoint": 181538259, "color":  "#9467bd"},
		{"chromosome": "chr6", "startPoint": 1, "endPoint": 170805979, "color":  "#8c564b"},
		{"chromosome": "chr7", "startPoint": 1, "endPoint": 159345973, "color":  "#e377c2"},
		{"chromosome": "chr8", "startPoint": 1, "endPoint": 145138636, "color":  "#7f7f7f"},
		{"chromosome": "chr9", "startPoint": 1, "endPoint": 138394717, "color":  "#bcbd22"},
		{"chromosome": "chr10", "startPoint": 1, "endPoint": 133797422, "color": "#17becf"},
		{"chromosome": "chr11", "startPoint": 1, "endPoint": 135086622, "color": "#393b79"},
		{"chromosome": "chr12", "startPoint": 1, "endPoint": 133275309, "color": "#5254a3"},
		{"chromosome": "chr13", "startPoint": 1, "endPoint": 114364328, "color": "#6b6ecf"},
		{"chromosome": "chr14", "startPoint": 1, "endPoint": 107043718, "color": "#9c9ede"},
		{"chromosome": "chr15", "startPoint": 1, "endPoint": 101991189, "color": "#637939"},
		{"chromosome": "chr16", "startPoint": 1, "endPoint": 90338345, "color":  "#8ca252"},
		{"chromosome": "chr17", "startPoint": 1, "endPoint": 83257441, "color":  "#b5cf6b"},
		{"chromosome": "chr18", "startPoint": 1, "endPoint": 80373285, "color":  "#cedb9c"},
		{"chromosome": "chr19", "startPoint": 1, "endPoint": 58617616, "color":  "#8c6d31"},
		{"chromosome": "chr20", "startPoint": 1, "endPoint": 64444167, "color":  "#bd9e39"},
		{"chromosome": "chr21", "startPoint": 1, "endPoint": 46709983, "color":  "#e7ba52"},
		{"chromosome": "chr22", "startPoint": 1, "endPoint": 50818468, "color":  "#e7cb94"},
		{"chromosome": "chrX", "startPoint": 1, "endPoint": 156040895, "color":  "#843c39"},
		{"chromosome": "chrY", "startPoint": 1, "endPoint": 57227415, "color":   "#ad494a"}
  ],
"sequences": {"T": "#E6E431", "A": "#5157FB", "G": "#1DBE21", "C": "#DE0A17", "backbone": "#AD26FA"},
"coveragePointsThreshold":  30000,
"scatterPlot": {"title": "Coverage"},
"barPlot":  {"title":  "RPKM"},
"intervalsPanelHeightRatio": 0.6
}```

Hi @zlskidmore , Thanks for sharing this and sorry for my delayed response.
So as far as I can see from what you shared it seems your reference files are properly set and hence I am still not sure why you are getting this issue. Are you using Chrome? If so, then could you please follow these steps to help us troubleshoot:

When you have gGnome.js opened in your browser use the mouse right-click and choose "inspect"
one the inspection window shows up then choose the "console" tab.
Take a screenshot of whatever you see in the console tab and paste here.

Thank you and sorry for these issues.

oh interesting,
I was on firefox, the genes do show up on chrome.
thanks @ShaiberAlon !

Oh wow. Good to know. We have almost exclusively tested the application on Chrome. As a conclusion from your experience I added a note to the README file:
https://github.com/mskilab/gGnome.js/commit/144707d0cb3f411018a6ac40b9807f204e520528
Thank you for your troubleshooting efforts!


Support for vukan translation opengl

As you can see in the title, in some cases, I need to use my iPhone to play Minecraft Java Edition. I always need to use your mods, because it is really good. But recently I have encountered some problems. Entering the world after launching the game by Angel renderer in pojavlauncher will cause the world to collapse. It seems to be caused by a series of problems simulated by OpenGL. The error log is as follows. Because I need to use sodium to increase the number of frames, I have to use Angel renderer. It's really great if you can solve it. Thank you
latest.log

The problem is not with my mods. They run fine on Pojav.  This is not worth fixing on my end. I can't pretend like Minecraft is running on an older OpenGL version for the rest of eternity.
Try the suggested solutions here: https://pojavlauncherteam.github.io/MODS-UNSUPPORTED.html#performance-mods-shaders


feat: get credential registry state (tever vcstate)

This corresponds to WebOfTrust/keria#304 - see description there for more details.
Essentially can get credential state (iss/rev) without needing to already hold the credential (or even be the holder).

Ah @2byrds forgot we need a new dev release of KERIA. Do you have permissions for that?

Ah @2byrds forgot we need a new dev release of KERIA. Do you have permissions for that?

lets see @iFergal ! I have launched the docker dev release (same version 0.2.0-dev3) https://github.com/WebOfTrust/keria/actions/runs/11315384968

thanks @2byrds - hard to tell if the issues are from the changes I made to the Makefile or were already broken, as it seems to be the only time it was ran from the pipeline: https://github.com/WebOfTrust/keria/actions/workflows/publish-keria.yml


feat: convert cobra commands from Run to RunE

this PR solves https://github.com/alegrey91/fwdctl/issues/110 by converting cobra commands to use RunE instead of Run

looks good, just want to know more about why you want to use errgroup instead of current implementation.

errgroup is a package that allows you to synchronize multiple goroutines similar to sync.WaitGroup but with the addition of propagating errors to a caller without using extra channels, which is exactly what is needed in this case.

thanks @radekska for the contribution.
Really appreciated :)

thanks @radekska for the contribution. Really appreciated :)

glad I could help!


Set up code for easy incorporation of .po translations to frontend

The transform and translate configuration file functionality was made redundant after a user survey was conducted on the Export Tool. The results showed that these are only used by a handful, and the processing stress put on the tool outweighed its benefits.
The thought was that those individuals that are tech savvy enough to create the configuration files could run the process outside of the tool, and we would focus on enhancing the exporting tag features for the majority of the users, making it easier to select features and provide more format choices.
However there has been opinions voiced that they would like to see the translate functionality kept in the new tool, and we are working to make it possible to add this in as an admin feature. So that they will be able to add tried and tested translate files to the tool, that can then be selected from a dropdown box by all the users.
Unfortunately we had to draw the line at some point to ensure that we deliver a strong end product, and can not add this functionality during the redevelopment. The new code will have support documentation as well as in-line documentation so that it will be much easier for enhancements and future adaptations, as we are already getting requests to include more export formats #42.

@bjohare I know that you have been working on this, incorporating Transifex to do the translations. Last thing I heard you had it more or less running, just not hooked up to the API. Any update?

The refactoring of the UI means that all the localization previously done on the backend now needs to be re-implemented in the new React-based frontend. We should use react-intl and hook this up to .po files so we can use Transifex.

react-intl is now wired up; there are some straggler strings in ui/app/components/aoi. The corresponding Babel plugin is also configured, exporting strings to ui/build/messages/ as JSON (what FormatJS uses).
Transifex supports JSON, but existing translations can only be downloaded in the format that they were created in, so both existing Transifex components can only be downloaded in gettext format (PO). A response from Transifex support said that "Translation Memory" can be used to automatically translate strings between components, automatically populating the JSON versions that have yet to be uploaded.
@mataharimhairi has been trying to reach @bjohare and @dodobas to gain admin access within HOT's Transifex organization, so getting that will set off the next flurry of activity when it comes to tweaking strings, straightening up IDs, and getting content translated.

@bgirardot granted project admin access, so we're clear there.


NDEBUG fix

Fix NDEBUG randomly breaking parts of the library because assert goes to ((void)0) when the macro is defined.

@leeter,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@leeter, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, Microsoft Pull Request Bot

Note: I was thinking about this fix overnight and it may not be appropriate. _DEBUG is reserved for the implementation (it has a _ prefix) and should probably not be used at all. The more appropriate fix may be switching that #ifdef to use NDEBUG instead.

@leeter, unfortunately, this fix would disable all WINRT_DEBUG facilities if NDEBUG is defined, which should really just target assert behavior.  As it happens, we fixed this issue in the latest update, which implements WINRT_VERIFY in terms of _ASSERTE, and not assert, so NDEBUG has no effect.  You can update to pick up this change, or just apply the line item fix to your older repo.


Support list base operands

when top-level value is one, process via iteration
support jsonl and multi-object yaml / cue

For list processing on ops, use @list(and,or,index) defaults to and
op: {
  LD: [schema] @list() // process all RHS list elements with this one
  LA: [s1,s2] @list(and)  // op if all LHS elems unify with an elem of RHS
  LO: [s1,s2] @list(or) // op if any LHS elem unifies with an elem of RHS
  LP: [s1,s2,s3] @list(index) // pairwise unification, lists must be same length
}


Don't install the tests extras by default when running develop_install

Fixes https://github.com/pyviz-dev/pyctdev/issues/81
I've gone through the process of rebuilding the docs of a few holoviz sites and I see more and more environments failing to solve during their install process (currently hvplot and datashader) (the workflow adopted by pyctdev doesn't really help conda since it first creates an empty environment and then installs packages in that environment in multiple steps). Removing the requirements imposed by the default tests can only help in these situations!
I haven't found any single usage of a bare doit develop_install (I mean without any option) so I don't think this change will break any current CI config.

Philipp agreed that this could be merged. I don't expect this change to break any of the CI workflows of holoviz, and I don't think anyone else is using pyctdev in their CI. It might break the workflow of a few pyctdev users who somehow had  figured out they don't need to specify -o tests to install the tests extras dependencies. I personally realized that only very recently.

And if it does break one of the holoviz CI workflows, then I'll fix it! 🙃


Fix CI on master

Fixes an oversight from #2916 that didn't run within the PR.

This only seemed to work partially. Somehow branch protections keep failing repeatedly.

This only seemed to work partially. Somehow branch protections keep failing repeatedly.

I'm not sure what you're talking about, as of me seeing your message the CI hasn't run through yet, but there are no failures:

I just hit "re-run failed jobs" a few minutes ago. The Run 1 failed with "could not aquire port 42000" in the sigma plugin integration test. The subsequent 2 runs seem to have been cancelled.

Ah well. #2859 will rescue us from that sometime in the near future, hopefully.


Issue when pulling image from bcinsider.azurecr.io

Hi @freddydk
I am getting below error , when creating a new container.
Even I turned off the firewall also.

Kindly help
Sudarshan

Unauthorized doesn't sound like a firewall problem, it sounds like you haven't logged into the bcinsider registry.
Username and Password are available on Microsoft Collaborate under NDA.

Okk @freddydk  thanks
Let me check with it.

Hi @freddydk
Where it should be?

docker login allows you to authenticate to a registry.
You need to be part of the Ready for Business Central Engagement.
You can reach out to<EMAIL_ADDRESS>in order to get access.

Thanks @freddydk  for your help.


Improve UI

Changes

Mono-space font for entering command
New LightTheme instead of dark theme
Moved contacts panel on the right

Intended Behaviour

Long team names are not wrapped - just truncated with ellipses.
Everything inside the selected team details is shown in full - never truncated (since the whole point is to show all details)

LightTheme UI

Testing

Please test that the panels still look good when you have long team names, very long task lists, very long addresses, etc.
Please shrink/grow your application size and make sure nothing breaks.

Fixes #56

Codecov Report
Base: 64.62% // Head: 64.58% // Decreases project coverage by -0.03% :warning:

Coverage data is based on head (ae9400f) compared to base (44c9d59).
Patch coverage: 0.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #55      +/-   ##
============================================
- Coverage     64.62%   64.58%   -0.04%
  Complexity      511      511
============================================
  Files           105      105
  Lines          1744     1745       +1
  Branches        196      196
============================================
  Hits           1127     1127
- Misses          567      568       +1
  Partials         50       50

Impacted Files
Coverage Δ

...rc/main/java/seedu/address/ui/TeamDetailsCard.java
0.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Also you might want to fix your branch name haha

Ehh branch name doesn't matter 👀 . If everything looks fine now, @marcuspang feel free to merge it.


update to 0.4.0

bug fixes; package rearrangement; docs improvements

Pull Request Test Coverage Report for Build 135

31 of 32 (96.88%)  changed or added relevant lines in 7 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.08%) to 93.696%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

kutana/controller_vk/vkcontroller.py
5
6
83.33%

Totals

Change from base Build 122:
0.08%

Covered Lines:
654

Relevant Lines:
698

💛  - Coveralls

This pull request introduces 1 alert when merging e3abd445460de1133844d6869893989ff0c96215 into e3cbe34b0e3dcedc6a90d22950f3a5fc6ad05610 - view on LGTM.com
new alerts:

1 for 'import *' may pollute namespace

Comment posted by LGTM.com


event for card views

hi
InfiniteCycleViewPager is very Beautiful library .
but i have a problem and its that i want to setOnClickListener for the cardViews
I make a button in cardView but i cannot use this
if possible help me
tanx my freind

What is the error?

I wanna set my button event in utils.java like you
But. I can't
In MainActivity.java , i have a problem , namely that i wanna  set 4 page In 4 button but  all of buttons have one id.
Thank you so much.

I've forgotten where that is in this code. Could you tell me which files have the button involved?

I've forgotten where that is in this code. Could you tell me which files have the button involved?


Add proxy.process.http.background_fill_total_count

We have a gauge of background fill (proxy.process.http.background_fill_current_count), but no counter.
The counter gives us how many times the background fill worked and more understanding of #7603.

[approve ci clang-analyzer]

Cherry-picked to v9.1.x branch.


Authentication library failed to start properly

Preflight Checklist
I have installed the latest version of Storage Explorer.
I have checked existing resources, including the troubleshooting guide and the release notes.
I have searched for similar issues.
Problem
Hello,
I am facing the issue of authentication library failed to start properly. My OS version is: Windows 10 Enterprise - 21H2, I have the latest .Net Framework 4.7.2 and the azure storage explorer version is v1.26.1 but it keeps throws me the same error: Error:connect EPERM \?\pipe\5019efe14d5948dc90d572dfa35ac6f0. I attached the logs.
Thanks.
logs.zip
Alternatives and Workarounds
No response
Additional Context
No response

Fixed after the app update and running as an admin


Certain items not registering In Stock

Expected behavior
Magenta and Purple stained glass, when correctly set up into a chest shop, should show in stock when the required quantity is placed inside the chest.
Observed/Actual behavior
Magenta and Purple stained glass show out of stock despite having the required quantity in the tradeshop chest.
Steps/models to reproduce
[trade]   then /ts addproduct X amount of purple/magenta stained glass blocks
/ts addcost any cost
Place item in the tradeshop
Observe a continued out of stock notification
Plugin list
Essentials, Luckperms, Tradeshop, TAB, WorldGuard, CoreProtect
TradeShop version and Minecraft version (CraftBukkit/Spigot/Paper/...)
This server is running Paper version git-Paper-379 (MC: 1.18.2) (Implementing API version 1.18.2-R0.1-SNAPSHOT) (Git: 276d830)
You are 8 version(s) behind
Download the new version at: https://papermc.io/downloads
TradeShop-2.5.1-Stable
Agreements

[X] I have searched for and ensured there isn't already an open issue regarding this.
[X] My version of Minecraft and TradeShop are supported by the TradeShop Dev Team (when in doubt, first ask on the Discord).

Other
No response

Pretty sure this problem was already reported and fixed in the latest dev build. Please try using that on a test server if possible.

Fixed in #127


Remove all TESS_CALL

@stweil @zdenop
Do you agree? If yes, I'll remove them.
x64 does not need calling conventions, on x86 win - default must be used.

I agree. Of course the resulting DLL for Windows will be incompatible with old code, but for 5.0.0 and master that's ok.

#2728

Second PR will remove TESS_API from capi.cpp, because it is only needed in .h.

Of course the resulting DLL for Windows will be incompatible with old code

There was __cdecl for win by default. And it is used by default on win, so no incompatibles.

@troplin : Any comments about this? AFAIR you are author of C-API...

I think that should be fine.
IIRC my first version used __stdcall, which is why the macro is there in the first place. But it was later changed to __cdecl.


Split test and bench out to separate packages

https://github.com/haskell-bitcoin/bitcoin/issues/42

The packaging is not very clear from the directory structure.  How about reorganizing the code so that there are three folders, each of which contains a package?:

bitcoin
bitcoin-test
bitcoin-bench

In addition, we can keep README.md, stack.yaml, etc. at the top level.

The packaging is not very clear from the directory structure. How about reorganizing the code so that there are three folders, each of which contains a package?:

bitcoin
bitcoin-test
bitcoin-bench

In addition, we can keep README.md, stack.yaml, etc. at the top level.

I'm not opposed to that at all.
@ProofOfKeags, what do you think?

100% onboard with that folder structure.

After reviewing as well I'm fine to merge this after exposing internal modules and reorganizing the directories to be more intuitive.

@ProofOfKeags @GambolingPangolin This is ready for review.


Move to swift 4. Update example dependencies

Resolve https://github.com/ioveracker/WebIOPiSwift/issues/7

Thanks for the contribution! However, this is already in progress in #9, so I'm going to close this and carry that PR forward. Feel free to join in over there if you'd like.


Make Weather widget work

Note: Before 4.0.0 stable, this will move to an extension. Currently I have it in core, to be able to work on the widgets, but something silly like this has no place in core. :-)


Meross Powerstrip (MSP844) and sensor MS100F gets duplicated

Hi Ben,
I use (1) Homebridge UI-X, updated to the latest release. It's running on Raspberry Pi 3b. I also just updated the Node.js to 2.0 (?) following the Home Bridge instructions.
The plugin version is v10.7.0, but I think the issue started after I updated to v10.6.2 (I can't swear on it).
The devices are Meross Powerstrip (MSP844) and sensor MS100F. They both support HomeKit (even Matter the power strip) but they don't get ignored, getting duplicated in HomeKit.
I attach part of the log:

[27/07/2024, 10:29:10] [Meross] Initializing Meross platform...
[27/07/2024, 10:29:10] [Meross] Initializing child bridge 0E:C1:D7:C4:49:3F
[27/07/2024, 10:29:16] [Meross] Launched child bridge with PID 24746
[27/07/2024, 10:29:21] [Meross] Loaded homebridge-meross v10.7.0 child bridge successfully
[27/07/2024, 10:29:24] [Meross] Initialising plugin v10.7.0 | System linux | Node v20.15.1 | HB v1.8.4 | HAPNodeJS v0.12.2...
[27/07/2024, 10:29:24] [Meross] Plugin initialised. Setting up accessories....
[27/07/2024, 10:29:25] Homebridge v1.8.4 (HAP v0.12.2) (Meross) is running on port 42267.
[27/07/2024, 10:29:25]
[27/07/2024, 10:29:26] [Meross] [Intrattenimento] not initialising cloud device as matched as Matter model.
[...] POWER STRIP:
[27/07/2024, 10:29:27] [Meross] [Gruppo Cinema] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:27] [Meross] [LG C3] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:27] [Meross] [Sony Atmos] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:27] Registering platform 'homebridge-ring.Ring'
[27/07/2024, 10:29:28] [Meross] [PS5] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:28] [Meross] [Mobile] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:28] [Meross] [USB C] initialising with options {"connection":"hybrid","showAs":"switch"}.
[27/07/2024, 10:29:28] [Meross] [Gruppo Cinema] initialised with id [24052027163574540303c4e7ae043c69].
[....] SENSORS:
[27/07/2024, 10:29:29] [Meross] [Sensore Camera] initialising with options {"connection":"hybrid","lowBattThreshold":20}.
[27/07/2024, 10:29:29] Homebridge v1.8.4 (HAP v0.12.2) (homebridge-ring) is running on port 36509.
[27/07/2024, 10:29:29] [Meross] [Meross Hub] [Sensore Camera] subdevice initialised with id [39000DECB13E].
[27/07/2024, 10:29:29] [Meross] [Sensore Terrazza] initialising with options {"connection":"hybrid","lowBattThreshold":20}.
[27/07/2024, 10:29:30] [Meross] [Meross Hub] [Sensore Terrazza] subdevice initialised with id [39000DECB7B1].
[27/07/2024, 10:29:30] [Meross] [Sensore Divano] initialising with options {"connection":"hybrid","lowBattThreshold":20}.
[27/07/2024, 10:29:30] [Meross] [Meross Hub] [Sensore Divano] subdevice initialised with id [39000DECCE88].
[27/07/2024, 10:29:30] [Meross] [Meross Hub] initialised with id [2308224723945962080448e1e9d73821].
[...]
[27/07/2024, 10:29:31] [Meross] [Gruppo Cucina] has been reported [online].
[27/07/2024, 10:29:31] [Meross] [Gruppo Salotto] has been reported [online].
[27/07/2024, 10:29:34] [Meross] [Sensore Camera] current temperature [28.1°C].
[27/07/2024, 10:29:34] [Meross] [Sensore Camera] current humidity [61%].
[27/07/2024, 10:29:34] [Meross] [Sensore Terrazza] current temperature [31.7°C].
[27/07/2024, 10:29:34] [Meross] [Sensore Terrazza] current humidity [51%].
[27/07/2024, 10:29:34] [Meross] [Sensore Divano] current temperature [27.9°C].
[27/07/2024, 10:29:34] [Meross] [Sensore Divano] current humidity [60%].
[27/07/2024, 10:29:34] [Meross] [Sensore Camera] has been reported [online].
[27/07/2024, 10:29:34] [Meross] [Sensore Terrazza] has been reported [online].
[27/07/2024, 10:29:34] [Meross] [Sensore Divano] has been reported [online].
[27/07/2024, 10:29:34] [Meross] [Meross Hub] has been reported [online].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] current state [on].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] current state [on].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] current state [on].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] current state [on].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] current state [on].
[27/07/2024, 10:34:28] [Meross] [Gruppo Cinema] has been reported [online].
[27/07/2024, 10:34:28] [Meross] [LG C3] has been reported [online].
[27/07/2024, 10:34:28] [Meross] [Sony Atmos] has been reported [online].
[27/07/2024, 10:34:29] [Meross] [PS5] has been reported [online].
[27/07/2024, 10:34:29] [Meross] [Mobile] has been reported [online].
[27/07/2024, 10:34:29] [Meross] [USB C] has been reported [online].
[27/07/2024, 10:34:29] [Meross] [Sensore Terrazza] current temperature [32°C].
[27/07/2024, 10:34:29] [Meross] [Sensore Terrazza] current humidity [50%].
[27/07/2024, 10:39:29] [Meross] [Sensore Camera] current temperature [28°C].
[27/07/2024, 10:39:29] [Meross] [Sensore Divano] current temperature [28°C].
[27/07/2024, 10:39:29] [Meross] [Sensore Divano] current humidity [59%].
[27/07/2024, 10:44:29] [Meross] [Sensore Terrazza] current humidity [46%].

I also tried to hide them on each device configuration, but they still appeared in HomeKit. Any chance this can get fixed? Thanks!

hi @Michelasso
what are the hardware versions of both of these devices? this can be seen in the meross app i believe. something like “4.0.0” or “7.0.0”

Hi Ben,
thanks for the swift reply! I could find the HW version for the hub msh300hk. It's v4.0.0.  There is no mention of the HW version for the sensors.
The power strip is version 9.0.0.

You can try the beta version of the plugin, it should remove these two devices
https://github.com/homebridge/homebridge/wiki/How-to-Install-Alternate-Plugin-Versions

Magical!! It worked! Thanks!!


What is README.md talking about?

From README.md:

The core logic is implemented as a PCL, but due to networking APIs being platform-specific, a platform-specific helper library is required. Just make sure that you also install the NuGet to your main app and you'll be all set.

What is it talking about?
I know PCL stands for "Portable Class Library", but I don't think everybody knows it.
And what "platform-specific helper library"? Can you give an example? Do you mean something like Apple's Bonjour SDK for Windows, if I want to use this Zeroconf in a .NET 4.5 application on Windows 8.1?

There's really no magic to it. It's simply saying that you must reference the nuget project by your app as well as any portable libraries that might use it.
Platform-specific helper library is just saying that the library has platform specific code and is implemented slightly differently on each platform as a result. This is an implementation detail though and should not matter if you add the NuGet package to all of your projects.
The library is supported on .NET 4.5, Windows Phone 8, Windows 8.1, Xamarin iOS and Android. Basically every platform .NET currently runs on.


dependency problem with ng new

I am running this on Ubuntu 16.04 LTS; and following the steps from the Google IO 2016 talk, I entered the following command:
ng new puppy-love-io --mobile

It seems there is an issue with dependencies:
Successfully initialized git.
⠼ Installing packages for tooling via npm
├── es6-shim (ambient)
├── node (ambient)
├── angular-protractor (ambient dev)
├── jasmine (ambient dev)
└── selenium-webdriver (ambient dev)

The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
Error: The package<EMAIL_ADDRESS>does not satisfy its siblings' peerDependencies requirements!
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/lib/install.js:125:32
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/lib/install.js:268:7
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/read-installed/read-installed.js:142:5
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/read-installed/read-installed.js:263:14
    at cb (/usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/slide/lib/async-map.js:47:24)
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/read-installed/read-installed.js:263:14
    at cb (/usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/slide/lib/async-map.js:47:24)
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/read-installed/read-installed.js:263:14
    at cb (/usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/slide/lib/async-map.js:47:24)
    at /usr/lib/node_modules/angular-cli/node_modules/angular-cli/node_modules/npm/node_modules/read-installed/read-installed.js:263:14

Pertinent version information:
$ node -v && npm -v && ng --version
v6.2.2
3.10.2
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
angular-cli: 1.0.0-beta.8
node: 6.2.2
os: linux x64

having exact same error

https://github.com/angular/angular-cli/issues/958 same issue?

Doing npm install after fixes that.
But your command should work without need to use npm install

same error with Windows 10

Had the same issue and it fixed by:
npm uninstall -g angular-cli
npm install -g angular-cli@latest

@WimpyKnight are you really running the --mobile flag?

@WimpyKnight tried that, it gave me a Cannot read property 'makeCurrent' of undefined when doing ng serve.

Closed as issue was made obsolete by #1455.


AstroMath game is added

PR Description 📜
Please include summary related to the issue you have fixed and describe your PR in brief over here by specifying the issue number on which you were working below
Fixes #2109

Mark the task you have completed ✅

[x] I follow CONTRIBUTING GUIDELINE & CODE OF CONDUCT of this project.
[x] I have performed a self-review of my own code or work.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I have followed proper naming convention showed in CONTRIBUTING GUIDELINE
[x] I have added screenshot for website preview in assets/images
[x] I have added entries for my game in main README.md
[x] I have added README.md in my folder
[ ] I have added working video of the game in README.md (optional)
[ ] I have specified the respective issue number for which I have requested the new game.

Add your screenshots(Optional) 📸

Thank you soo much for contributing to our repository 💗

Thank you @shraddha761 ,for creating the PR and contributing to our GameZone 💗
Review team will review the PR and will reach out to you soon! 😇
Make sure that you have marked all the tasks that you are done with ✅.
Thank you for your patience! 😀

It seems that you have taken this from some source please provide the information so that we can consider that it is yours !!

Thank you  @shraddha761 , for your valuable time and contribution in our GameZone 💗.
It’s our GameZone, so Let’s build this GameZone altogether !!🤝
Hoping to see you soon with another PR again 😇
Wishing you all the best for your journey into Open Source🚀