Typescript [4.8.2] is adding invalid javascript for *.cjs files

Bug Report
My project is set to emit ESNext modules. I have a variety of TS files, but I also have a single .cjs file, which needs to remain CommonJS to try and require legacy packages.
My input looks like this:
module.exports = {
  tryRequire(modulePath) {
    return require(modulePath);
  },
};

I expect the output I get from TypeScript 4.7.4:
module.exports = {
  tryRequire(modulePath) {
    return require(modulePath);
  },
};

When I upgrade to TypeScript 4.8.2, it now emits an extra export {} at the end of the .cjs file:
module.exports = {
  tryRequire(modulePath) {
    return require(modulePath);
  },
};
export {}

This causes Node to fail parsing the .cjs file because export does not exist in the .cjs context.
🕗 Version & Regression Information
Worked in 4.7.4, broken in 4.8.2, also broken in current nightly (4.9.0-dev.20220905).
Repro here
https://github.com/dzearing/ts-repro-cjs

--module esnext combined with --moduleResolution nodenext is not super supported... at the very least, it’s playing the game on hard mode. I’m not quite sure why it “worked” in 4.7 or what we should actually be doing in this case, but I’m assuming it works with --module nodenext? That’s the only mode where we actually support emitting some files as ESM and some as CJS.

Yes! That fixed it. I changed to module: "nodenext" and added type: "module" to the package.json to achieve the same output.

I am unblocked here. I do still think it's not ideal to be emitting invalid cjs but at least I have a workaround. :)

Agreed. Also related to https://github.com/microsoft/TypeScript/issues/48854. @weswigham thoughts?

I ran into this issue with exactly the same scenario - ESM module with a single .cjs file. In my case, my tsconfig didn't have any value set for "module" at all, and TS 4.7.4 was totally happy with whatever it was using by default. So it was totally unexpected to see the invalid javascript emitted by TS 4.8.2

Well, I spoke too soon. Setting "module" to "nodenext" did not resolve my issue. It did fix the .cjs file, but now .ts files are emitted as CommonJS. I tried setting "moduleResolution" to "nodenext", but tsc compilation completely fails.
index.ts:3:43 - error TS2349: This expression is not callable.
  Type 'typeof import(".../node_modules/clsx/clsx")' has no call signatures.

Any advise will be appreciated.
Here is a gist with minimal repro that compiles correctly with TS 4.7.4 but fails with TS 4.8.3 - https://gist.github.com/igordanchenko/3b4589f02acb751e13035c0418c38afb

Have the same issue. Worked on 4.7.4, doesn't work now on 4.8.4 / 4.9.x-rc. Combination of module: "nodenext" and type: "module" doesn't work - compiler starts to complain regarding to import.meta usages in ESM files.
In my use case I need to have a index.cjs (in commonjs) and everything else in ESM (due to commonjs entrypoint requirements in Electron). But now, when index.cjs adds export {} it doesn't work.

But now, when index.cjs adds export {} it doesn't work.

Got the same problem, anyone knows how to avoid TypeScript appending the empty export to .csj files? Does it still on version 4.9.3. It's just the last little issue allowing me to easily mix ESM and a single CommonJS file (auto-generated) in same project. I'll fix it with a manual copy or replace, but would be nice to avoid that.

@sondreb I'm investigating issues with this now in version 4.9.3.  Bumping from 4.7.x to 4.9.x indeed broke the compiled output by injecting export {}; into a .cjs file (generated GRPC output).

In my use case I need to have a index.cjs (in commonjs) and everything else in ESM (due to commonjs entrypoint requirements in Electron). But now, when index.cjs adds export {} it doesn't work.

If it expects cjs, you can't reference ESM code under it. They all need to be dynamic import.
You have to compile to CJS. You can't use type: module.

Any updates on this? Experiencing the same issue where an empty export {} gets appended to the outputted js when compile a .cts file. My package.json has type: module set, and my tsconfig.json has module: esnext and moduleResolution: node. Like @igordanchenko, my tsc fails to compile with the exact same error when switching to module: nodenext.

.cts file extensions in module: esnext is a contradiction, and there are no plans to make it meaningful at the moment—if anything, it should probably be a program-level error. If you’re running in Node, you need to use --module nodenext and fix the errors. The errors aren’t bugs, they’re real issues that need to be addressed if you expect your code to run safely in Node. For example, this:

index.ts:3:43 - error TS2349: This expression is not callable.
  Type 'typeof import(".../node_modules/clsx/clsx")' has no call signatures.

probably means that you need to add a .default on the end of your dynamic import of a CJS module, because that’s what’s actually required in Node. If you run the JS files produced by tsc in Node, you must use node16 or nodenext for module and moduleResolution. Anything else is 100% incorrect and you will experience problems.

Ah thank you! You're right; turns out I needed to import clsx as:
import { clsx } from "clsx";

My ts build now works with module: nodenext, and the empty export is gone.

@slimshreydy, nice catch! Importing the named export indeed solves clsx issue.
@andrewbranch, do you have any thoughts on why importing the default clsx export isn't working under "moduleResolution": "NodeNext"?
import clsx from "clsx";

src/index.tsx:5:21 - error TS2349: This expression is not callable.
  Type 'typeof import("[REDACTED]/node_modules/clsx/clsx")' has no call signatures.

5
{children}
;
                      ~~~~

Found 1 error in src/index.tsx:5

Because its typings are wrong. clsx is a CJS library, but its typings say export default<EMAIL_ADDRESS>

@weswigham honestly, I think we should consider making export default in CJS-scoped declaration files an error under node16/nodenext, with a message that says the library is probably wrong, similar to #52173. That’s a super common mistake that can often be overlooked in --moduleResolution node.

FYI, the "module": "nodenext" solution does not work if you also need "moduleResolution": "bundler". In my case I'm using bundler because it matches the behavior of my node loader (extensionless and subpath exports).
Option 'bundler' can only be used when 'module' is set to 'es2015' or later.

The compiler is busted in its handling of the new file extension .mts in combination of --module commonjs. You can see my extended rant in the duplicate issue #51990.

This should have been closed by #54567

Well, maybe not until --module commonjs and --module esnext report an error on a file in a conflicting format.

I just ran into this problem with TS 5.3:
Input:
// eslint-disable-next-line import/no-extraneous-dependencies -- This isn't included in the bundle
import { Configuration } from "webpack";

const { resolve } = require("path");

const config: Configuration = {
  entry: "./src/index.ts",
  module: {
    rules: [
      {
        test: /\.tsx?$/,
        use: "ts-loader",
        exclude: /node_modules|\.d\.ts$/,
      },
    ],
  },
  resolve: {
    extensions: [".tsx", ".ts", ".js"],
  },
  output: {
    filename: "bundle.js",
    path: resolve(__dirname, "dist"),
    library: "bbcode_ast",
  },
  devtool: "source-map",
};

module.exports = config;

Output:
const { resolve } = require("path");
const config = {
    entry: "./src/index.ts",
    module: {
        rules: [
            {
                test: /\.tsx?$/,
                use: "ts-loader",
                exclude: /node_modules|\.d\.ts$/,
            },
        ],
    },
    resolve: {
        extensions: [".tsx", ".ts", ".js"],
    },
    output: {
        filename: "bundle.js",
        path: resolve(__dirname, "dist"),
        library: "bbcode_ast",
    },
    devtool: "source-map",
};
module.exports = config;
export {};
//# sourceMappingURL=webpack.config.cjs.map

This was backed out of 5.5—hoping to reintroduce a fix in 5.6 via #58825.


DS

Describe the feature
Request for php-ds
Additional context
see
Are you willing to submit a PR?
I could try.  Not familiar with ruby.

Added


Fix desktop samples

Why: The desktop samples where not loaded in the wpf application
because the LoadAssembly method was inside a sample that was
moved.
Note: This is to prepare for cleanup of the desktop samples.

To clarify. All the samples are loaded by reflection. It goes through the assemblies and looks voor classes with the ISample interface. But when an project reference is added the assembly is not loaded. This surprised me but apparently there is some kind of optimization done by the compiler that removes assemblies that are not actually used. The workaround is to add a random method that does nothing and call it from the main app.


WIP cube GL demo

Current attempt at minimally demonstrating an alternate rendering approach using webgl(2):

uses a 2d canvas to create a texture sheet/atlas
then uses an ortho-projected GL context to draw points textured by that atlas

Here's some other reference tutorials / code:

https://webglfundamentals.org/webgl/lessons/webgl-points-lines-triangles.html
https://dev.to/samthor/webgl-point-sprites-a-tutorial-4m6p
too many MDN pages to reference, but those are also readily googled by function named ;-)

Next steps from minor to stellar:

[x] fix alpha blending arftifacts
[ ] add per-tile rotation or at least mirroring
[ ] switch to a 2d array texture
[ ] switch to an offscreen canvas
[ ] animation at some level
[ ] implement something for drawing (back)ground fill, this can start out as a boring solid color of course, but we now have the full power of fragment shading to do procedural texturing for things like grass, water, etc
[ ] experiment with twisting the perspective matrix and introduce a model/view transform matrix
[ ] see how well 2.5d / pseudo-3d things work on this textured point approach
[ ] scale up and out to planetary cube/dia scale ; whether we're able to just keep drawing transformed points in 3-space as in prior point, or whether we instead add an intermediate step where we render points onto faces of one or more cubes

Right, so the alpha deal all comes down to handling pre-multiplied alpha (or not); which is probably why the default is "Nope, you need to set how that works, and don't get any default blending".  I.E: "Not all rgba is the same"
For us part of the context is that 2d canvas contexts all work in pre-multiplied alpha, so when we scrape a texture in from a canvas, we have to deal with that, and then may have a texture that contains pre-multiplied alpha.
References:

https://limnu.com/premultiplied-alpha-primer-artists/
https://webglfundamentals.org/webgl/lessons/webgl-and-alpha.html


⚠ Jenkins Plugins Artifactory has degraded performance

In cded090, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 2745 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 3b1cd09 after 29 minutes.


 As a consequence, I had to push the stIncMale:JAVA-4034 branch to mongodb/mongo-java-driver to be able to create a PR with diffs relevant to JAVA-3926. Once both this PR and its baseline https://github.com/mongodb/mongo-java-driver/pull/782 are reviewed and approved, I will:

merge https://github.com/mongodb/mongo-java-driver/pull/782;
change the target branch of this PR to master
merge this PR
delete mongodb:JAVA-4034.

JAVA-3926

Since the target brach is not master, the tests are not run automatically. Here are the results of all our tests corresponding to the commit 32056bc71.
P.S. The serverless-test task times out, which is also the case for the master branch.

These failures are caused by the server bug https://jira.mongodb.org/browse/SERVER-59924.


Infer the main package from the dune-project if possible

fix #265
~This PR defines a new package Mlist in Stdext, for "main" list (didn't find a better name) to distinguish the main element of the list from others elements of the list, and we maintain this distinction for packages everywhere it makes sense. So the main package can be retrieved directly, without assuming it is the first element of the list or that it has the shortest name of all elements.~
edit: I improved the PR to define Pkg.infer_main_pkg instead (in the same way the new Pkg.infer_pkg_names was defined), so the main package can be passed along the package list, parameters have also been named to avoid being confused by generic pkg/pkgs variables. Let me know what you think.

Diverged too much


[BUG] Invalid form values don't prevent account creation

Describe the bug
When using the signup form, validation errors don't prevent account creation.
To Reproduce
Steps to reproduce the behavior:

Go to '/register'
Fill in a last name with an _, or an invalid phone number
An error should appear, and you will remain on the same screen
Go to '/login'
Try to login with the credentials used during the signup step

Expected behavior
If you encounter an error in the signup form, the account should not be created until the user fixes the issues.
Screenshots

Brian S. is going to take a look.

Followed steps. Could not reproduce issue

Can't reproduce on https://dev.nationalpolicedata.org/ either, closing.


Issue with performing relative imports

Some users report issues with compiling files that import other modules.
For example:
>>> from boa.compiler import Compiler
>>> Compiler.load_and_save('../neo-ico-template/ico_template.py')
LOADING AND SAVING! ../neo-ico-template/ico_template.py
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/compiler.py", line 106, in load_and_save
    compiler = Compiler.load(path)
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/compiler.py", line 139, in load
    module = Module(path)
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/code/module.py", line 237, in __init__
    self.build()
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/code/module.py", line 261, in build
    imp = Import(lineset.items, self.path)
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/code/items.py", line 228, in __init__
    self.build()
  File "/Users/whale/blockchain/neo-python/neo-python/venv/lib/python3.5/site-packages/boa/code/items.py", line 237, in build
    module = importlib.import_module(self.module_path, self.module_path)
  File "/Users/whale/.pyenv/versions/3.5.1/lib/python3.5/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 981, in _gcd_import
  File "<frozen importlib._bootstrap>", line 931, in _sanity_check
SystemError: Parent module 'boa.blockchain.vm.Neo.Runtime' not loaded, cannot perform relative import

The compiler should do the best it can do determine relevant paths and add them to sys.path when necessary.

yes!  My system is Mac OS X EI Captain version 10.11.6.

python 3.5.1
neo-boa 0.2.0
requirements.txt installed

SystemError: Parent module 'boa.blockchain.vm.Neo.Runtime' not loaded, cannot perform relative import```
I do not understand why cannot perform relative import and how to do absolute import instead~ Many Thx!

Ok, just tried to reproduce. It looks like you're using pyenv ? I think that may be causing the issue.

Seems like pyenv could mess with paths, especially in regards to virtualenvironments.  https://github.com/pyenv/pyenv#managing-virtual-environments

@WhaleChen I'm hitting the same issue. Would you mind explaining how you resolved it?


Some Text helpers for discoverability

@Faithcaio @Zidane Moving this commit to a PR, as per @gabizou.
PR will be updated as we handle things with Adventure.

For initial discussion, see 4e0ec9b

Buckle up, for this is going to be a long one. You are free to turn parts of these into Adventure issues as you see fit. None of the following is meant to belittle what Adventure is, but to point out some of my major misgivings with it.
This commit (and subsequent fallout) is borne out of one thing: ease of use and discoverability of the Adventure library when used with Sponge. While I'm going to try to approach my comments from a Sponge point of view, these are my comments, my opinions. You are free to disagree with them, but I must be clear that you would be disagreeing with me, not the Sponge team. Disagree with them here too - this is something that everyone will benefit from - a private discussion helps no-one.
With that in mind, it's worth keeping in mind my preference for style, which do conflict with some of the design decisions of Adventure. I'm not saying I'm right, rather I am trying to give my viewpoint so you can see where my head is coming from. I also freely admit that I sometimes get it wrong and contravene my own guidelines... anyhow - these are things that I feel Adventure doesn't do that I would:

Verbosity over brevity: a method name should be clear as to its function - often using verbs to provide the action (for example, I prefer the use of get, set, with etc.).
Distinctiveness: two methods on the same object that do not do the same thing should not be named the same thing.
Static factory methods should be associated with the type they create where possible: this aids the comprehension of what the method creates.

There are valid reasons as to why you've done some of these things and I'm not saying that you should do some of these things, however, I'll explain why we felt the need to create the Text class that is now in this PR, whereby some of these principles do come into play.
Yes, discoverability is a problem
Some of us know the library, and we know it fairly well. Unfortunately, the authors of a library or API are the worst people to comment on discoverability. Having used it now, there are things that I still struggle to get right and they need to be thought about. That is absolutely why the commit appeared in the first place - there has been a lot of fumbling trying to do things and so the class came out to try to support us and our plugin developers.
Naming can be confusing
The biggest one is your static factory methods. Take the following two methods from your library in isolation - what someone booting an IDE and typing Component.text( might see.
Component.text();
Component.text(String);

They both look like factory methods to me: my assumption is that they would both create Components, one empty, one containing the string. However, it turns out that the first is a TextComponent.Builder, and one is a TextComponent. What's bad, however, is that my assumption can actually hold - if I use these as ComponentLikes in something that accepts ComponentLikes, then I will indeed end up with Component.empty() (a method that's actually okay but totally eclipsed by this) and my text component. So now we have two methods that don't do the same thing, but can be treated as such, but are actually totally different ways to do the same thing.
That's not discoverablilty. It's actually ignorance of what the two methods do that means people get away with it. While both can actually be used in the same way, with the same methods names (something I'll come back to under convenience methods), they really shouldn't be.
A comment on the commit said:

These fall into the same issue as above -- it's not super clear which type of component is being created

You have the same problem to a lesser degree, the naming and the placing of the methods does hurt discoverabilty, even if the return type is TextComponent. Putting the TextComponent factory methods on Component rather than TextComponent doesn't make sense to me for that very reason. Yes, they return TextComponent and they are Components, but TextComponent.text(...) rather than Component.text(String...) reinforces that the method creates and returns a TextComponent. Futher, from the Sponge point of view, where Text.of() in API 7 was a (admittedly bad) thing, that is the first place that people are going to start looking. Putting the factory and (renamed) builder methods back on TextComponent will aid IDE autocompletion and we're onto a winner - people will look for that.
I was personally willing to try run with it, but my ultimate reaction is that Component.text(...) should return a Component, and not a sub type - indeed, that's how I treat it.
Note that I agree that it's not always appropriate to use builder() as the name for a builder. Take the Parameters class, where we have a lot of builder methods. The key thing is that they are all unique names, there is no ambiguity as to what they might return if two methods are the same.
For what it's worth, I fell into the same trap with command parameters, particularly the firstOf and seq methods, some of which returned builders, some didn't. After zml used it, they suggested that it would be better if we renamed the builders to include the word "builder". I was hesitant at first but thought on it. They were right. It was a slightly different situation, but the naming just makes it clear you're getting something different back. I really think this needs to be done here, and Component.text() deprecated - a similar situation with other areas where that is the case.
Sponge just does things differently
Part of the problem is a different philosophy between Sponge and Adventure. They use of() and builder() as the standard venacular for creating instances and builders. Adventure has not - and I personally have no problem with having a factory method named text() (though I don't like the reasoning of it being used for static imports, but that's a purely personal preference so isn't something I should complain about). The problem is simply that of the previous section - text() and text(...) are two different things, yet can be used the same way.
Our Text class is completely borne out of that. Name it what you will, it pulls some of these discoverable methods into the Sponge namespace so we can cater for Sponge developers who may have trouble breaking with the Sponge way of doing these things (though I don't like that it doesn't then produce "Text" interfaces...).
It is important to note that it is entirely in the right of the Sponge project to do this if they see fit, if Sponge ends up deciding they need to do this, that's up to them. Ultimately, I would much prefer for Sponge interfaces to front some of the Adventure ones to reduce the step for the majority who have no interest in cross platform development, while keeping Adventure interfaces for those of us that want to do cross-platform stuff, but it's not something that I think is entirely realistic at this point in time.
Serialisers are just not discoverable at all - there is no central place to find them
This isn't really a problem with Adventure itself because I know your serialisers are basicaly separate projects. They are, however, difficult for people to find. zml's suggestion on the commit is a good one and I think we need to do that in Sponge.
(As they are options, rather than constructing objects, I do think they can just sit in a AdventureSerializers class somewhere, rather than having their own class... somewhat backwards to the above!)
Numerous convenience methods does not mean they are discoverable - in fact, they may be harmful
A comment that I saw made earlier is that Adventure has a lot of convenience methods. All well and good - but either people don't know they are there or they are potentially allowing people to do the wrong thing.
An example of a difficult to discover method is LinearComponents.linear(...). It's obviously designed to ease the burden of creating a tree like structure, but who is going to go looking for it? You've lost the benefit of this method because it's just not obvious to them. Remember who a lot of the user base is. I only know of it because I was told about it after suggesting such a method would be useful. This was the basis of the Text.of(...) method - we actually didn't want to emulate exactly what that did but it was a useful vehicle to allow for the joining of components. Intended or not, that is how the method can be used and it is indeed how I'm using it myself - using it to join multiple Components together without having the Component.text().append(...).append(...).build() wrapping.
Let's go back to the text() methods from before. This returns two objects with a very important difference, one is mutable, one is not. And yet, both of these are valid ComponentLikes that can be used in many areas of Adventure:
Component.text().content("Text").color(NamedTextColor.GREEN).style(Style.style().decorate(TextDecoration.BOLD).decorate(TextDecoration.ITALIC).build());
Component.text("").content("Text").color(NamedTextColor.GREEN).decorate(TextDecoration.BOLD).style(Style.style(TextDecoration.BOLD).decoration(TextDecoration.ITALIC, TextDecoration.State.TRUE)); // slighly facetious with the starting method, but it proves a point

They look pretty much the same, and yet have completely different semantics. One is created from mutable builders, one is created from immutable objects. There is nothing to tell me which one I should use (I know it should be the first one) - part of why the lack of verbs is a problem. In the first method, I create three objects, the text component builder, the style builder and the style object (a fourth will be created upon use). The second method creates five - maybe more, I haven't looked at the implementation. For more complicated structures, this is only going to get worse. There should be some way to differentiate between what happens in both of these methods, and ideally, the latter should not exist at all. But there isn't. This is bad, and I am concerned it's going to hit a lot of people, and potentially going to cause a lot of mistakes.
Some thought needs to go into what is the "right" way to do things, and these need to be promoted. I do not know what the right way to do things is as it stands.
There are just too many options to do the same thing
On a TextComponent.Builder, I can set a colour using .color(...) or .style(Style.style(TextColor)) or .style(Style.style().color(TextColor).build()). I can set a colour and a decoration using .decorate(...).color(...) or .style(Style.style(TextColor, TextDecoration)) or .style(Style.style().color(TextColor).decorate(TextDecoration).build()) or .style(Style.style().color(TextColor).decoration(TextDecoration, TextDecoration.State).build()) or .style(Style.style(TextColor).decoration(TextDecoration, TextDecoration.State)).
There isn't inherently anything wrong with options, but there are a lot of ways to do things - when gabi was writing a text yesterday, three of us came up with three different ways of doing things. Kind of in hand with the previous statement, some of these ways feel more correct than others - I feel like the library has been written to please everybody and cater to everyone's style. There is not a single consistent workflow for people using the library, for reasons I've given above.
I think keeping the builders is fine, and the convenience methods of color and decorate on the base builder. Beyond that - particularly the "with" methods - I'd seriously consider whether they add value (and I don't think they do).
Documentation is a big problem
I know you're the first person to say documentation is a difficult thing, but it's a really important one. The front page of your docs still says that the docs are for an unreleased version of Adventure. They have some basic examples but are sparse. The javadocs are also rather sparse, and this is really hindering some of the usabilty of the library. While I could say "sure, I'll get my elbows out and muck in", in reality, the problem is yours. Javadocs are the second port of call for a developer using their IDE to develop. I honestly think a fair amount of time needs to go into the documentation so that things are much clearer - and to sign post some of the convenience methods where appropriate.
Don't design the API to the platform, design it to the user
As a final thought: I feel that Adventure for text is less an abstraction layer on top of Minecraft text components, and more just a layer that mimics the Minecraft system. That's okay, but it's not how people think. Take the Text.of(Component...) method, for example. The comment made saying "but this means you can't add colours and style in a linear fashion" actually misses the mark. It wasn't to expose the linear components function for all its glory, the point was to make people create the components and allow them to piece them together easily, rather than have to think about children which can add needless complexity. linear allows us to do that - and it works - the idea is to get people to use components properly and join them together without having to go Component.text().content("1").append(Component.text().context(".").append(...).build()).build()).build() (which is what I think has been suggested before), or even just what I suggested above (Component.text().append(...).append(...).build()).
At the end of the day, a good percentage of developers for the Minecraft platforms are relatively new, green developers. Think about what they want to do, not how they should do things in a Minecraft way - and API is meant to turn a machine way of doing things into a human way of doing things. They want a coloured text, maybe one with italics, and perhaps a click event - and they want a simple, discoverable way to do so.
And that's what this commit was all about - the recognition that we needed the bridge the gap. I really want to see Adventure as a library that simplifes text development and is easy to use and discover, and hard to make mistakes with - but Sponge is always going to have its own take on things - if that spawns classes like this to aid developers, so be it.

A final reminder - these are my personal opinions, not those of the Sponge team.

As a note, I have had a brief exchange with @kashike and the appropriate points will go into issues on the Adventure project.

@kashike @dualspiral is this still necessary or can this be closed out?

Most of this has been raised in Adventure issues (above), but most have also not seen too much traction. Honestly, I still think there are usability and API design problems in Adventure (I clearly make no secret about that) but I've said my piece about them and I have nothing to add in that regard.
As for this PR, we can close it, but we reserve the right to re-introduce a PR like this if we find that people are generally struggling with Adventure (and by that, I mean it becomes a common question) when using Sponge. If this happens, I must absolutely stress - much like Adventure is not Sponge, Sponge is not Adventure. If we need to put utility methods into Sponge to soften the curve, so be it.
We'll monitor and see what happens.


flutter astprint

Hello, I'm very glad to find your astprint article in github.
But this demo just outputs AST
How do I process the ast returned from this output?
What about the output of the revised values?
There are many articles on babel, but I haven't found one yet.
I hope I can get your help very much.

Hi @fangkyi03, thanks for your interest in astprinter!
This is currently a command line tool which works with files. It will take a file in, and it will output AST as a string. You can't use it programmatically as a library.
However, it won't be hard to make it into a library, I'd be interested in doing that. Would you mind sharing how you'd like to ideally use it? What sort of features are important to you?
Thanks

Hello, I actually have an idea that I want to convert flutter code into ts.
It also supports converting TS code into flutter
After all, the code in the flutter section is really too verbose.
I want to write flutter in a react-like way
In order to get through all the mobile phone development links

This is great! I've long been wishing flutter was more react-like.
So astprinter may not be that useful to you in this case, as all it does is output the entire AST as a string. This is usually helpful to have as a reference while developing a transformer that acts on the actual AST with its type information intact.
Take a look at how this package uses the analyzer to parse and traverse a file's AST. Here's an example that transforms JSX (DSX) to regular Flutter code https://spark-heroku-dsx.herokuapp.com/index.html

At present, the biggest problem is that flutter is imported through package.
This is completely different from ts or JS
So the d.ts file cannot be generated if TS is used for editing.
So I would like to write a script like Babel that converts all flutter code into ts.
This facilitates writing and completes the effect in this way.

I found a way to write react directly in dart and use Babel or TS directly without using flutter's AST transformation.


in lib.dom.js: HTMLImageElement.crossOrigin and HTMLMediaElement.crossOrigin should be nullable

Currently HTMLImageElement and HTMLMediaElement define their crossOrigin property as string, despite the default value being null.

the spec says that a missing default value represents "no CORS" but an invalid default value is equivalent to "anonymous". I'm not sure, but I interpret it as null being an invalid value (it's a value that is not "" | "anonymous" | "use-credentials"), so it's actually different than it being undefined.
I think it should be string | void not string | null. even better would be for it to be "" | "anonymous" | "use-credentials" | void, though.

but you're right, if I inspect an  on this page and do $0.crossOrigin I get null, not undefined. would love to find what justifies that behavior...


Can't Parameterize Molecules With Zero Partial Charges

Describe the bug
Trying to parameterize a molecule which should have zero partial charges will raise an exception.
To Reproduce
from openforcefield.topology import Molecule, Topology
from openforcefield.typing.engines.smirnoff import ForceField

molecule = Molecule.from_smiles('N#N')
topology = Topology.from_molecules([molecule])

force_field = ForceField('smirnoff99Frosst.offxml')
force_field.create_openmm_system(topology)

Output
    force_field.create_openmm_system(topology)
  File "/XXX/lib/python3.7/site-packages/openforcefield/typing/engines/smirnoff/forcefield.py", line 1128, in create_openmm_system
    parameter_handler.create_force(system, topology, **kwargs)
  File "/XXX/lib/python3.7/site-packages/openforcefield/typing/engines/smirnoff/parameters.py", line 2447, in create_force
    temp_mol.compute_partial_charges_am1bcc(toolkit_registry=toolkit_registry)
  File "/XXX/lib/python3.7/site-packages/openforcefield/topology/molecule.py", line 1991, in compute_partial_charges_am1bcc
    self
  File "/XXX/lib/python3.7/site-packages/openforcefield/utils/toolkits.py", line 2964, in call
    return method(*args, **kwargs)
  File "/XXX/lib/python3.7/site-packages/openforcefield/utils/toolkits.py", line 1252, in compute_partial_charges_am1bcc
    "Partial charge calculation failed. Charges from compute_partial_charges() are all 0."
Exception: Partial charge calculation failed. Charges from compute_partial_charges() are all 0.

Computing environment (please complete the following information):

Operating system: MacOS
Toolkit Version: 0.4.0

That's slightly tricky since normally we want to make sure partial charges are not all zero. 🤔
Maybe we want to switch to checking that the partial charge calculation ran and assigned charges, but not check whether they are nonzero...? Or, check that the partial charges are nonzero except if they should be zero (not sure how to check if they should be zero though; it's possible one could do this using symmetry groups somehow, or otherwise just have a list of cases where charges should be zero...?).

Hey @trevorgokey, I committed to taking this issue on along with #305 and #379. Is there any progress you'd like to report to help me get started, or is this perhaps complete?

Maybe we want to switch to checking that the partial charge calculation ran and assigned charges, but not check whether they are nonzero...?

Is it enough (and possible) to check that partial charge calculation and assignment occurred without checking that they are all nonzero?

I think that this is now possible -- As of the addition of LibraryChargeHandler (before the 0.6.0 release), I added a check for unassigned and nonintegral charges, and I started recording which method generated each molecule's charges on a copy of the Topology. So, during the final allow_nonintegral_charges check, we should be able to allow situations where a molecule's charges are BOTH all-zero AND assigned by charge_from_molecules or a LibraryCharge.

It would appear that this may already have everything it needs final check-wise in place, by way of ElectrostaticsHandler.postprocess_system. This relies however on handlers like ToolkitAM1BCCHandler doing their job and not silently failing to assign charges to the molecules it is passed.
As for whether charges were assigned by the call to quacpac in OpenEyeToolkitWrapper.compute_partial_charges_am1bcc, is there ever a case where quacpac_status will be True and charging by quacpac failed? If not, I think it's safe to remove the "all charges = 0" check at the end with no loss in safety.

I have added #574 with the proposed approach. If this sounds satisfactory, I will finish that out with changelog entry, test, etc.

Closing, as this is addressed by #574.


feat: yjs IndexedDB support

Describe the feature you'd like to request
Support [IndexedDB](https://github.com/yjs/y-indexeddb) provider to support offline capabilities.
Describe the solution you'd like to see
When creating a room, add the possibility to enable indexedDB storage.
When the client is disconnected, the user updates are kept in the indexedDB storage, and when the connection is up again, the updates are sent to the websocket server.
Describe alternate solutions
No other quick solution.
Additional information
No response
👨👧👦 Contributing

[ ] 🙋♂ Yes, I'd be down to file a PR implementing this feature!

Thanks! I'll look into adding y-indexeddb support in the next few days.

Awesome!

Update on this feature request:
I haven't been able to commit enough time into this as I would have liked. This is something that I am still looking into; however, will likely not come for another few days :frowning_face:.

This will be part of the next release


cpplint: Fix --root for non-subdirectories

Using cpplint.py --root with directories at a more outer level
than the repository would not work.
For example given
$> cpplint.py  --root=/a/b  /a/b/c/.git/filename.cpp
Trying to use --root=/a/b would get ignored, and it would
ask for a headerguard of FILENAME_H_ instead of C_FILENAME_H_
as expected.
Now --root will always use the "full name" and then strip off --root
prefix, giving us the desired effect.

@eglaysher
Hi, do I need to add any tests for this? We forked our own cpplint for Android and I'm trying to unfork it.
https://android.googlesource.com/platform/art/+/master/tools/cpplint.py
https://android.googlesource.com/platform/tools/repohooks/+/refs/heads/master/tools/cpplint.py

I tried this out, since I was having a similar problem. It solved my problem, though slightly clumsily, since it doesn't work if a root path contains ..
I'm left calling it like:
cpplint.py --root "$(cd .. ; /bin/pwd)"

@madeleine-empirical That's a good idea, and I've incorporated this suggestion in my next revision.

I created a new pull request #291 since I can't seem to reopen this one.


iphlpapi support

It looks like the #772 has been stalled for a while. So I'd like to give it a try.

Added SIZEOF_* functions

@retep998 Hi, I've fixed a bunch of issues and added necessary tests. Now all tests passed. Please take some time to review this PR. Thanks.

@retep998 Please continue your review. Thanks.

Is there anything here that still needs changed/fixed here, or just waiting on review?
Also I am not seeing the ICMP API in here. Unless someone else plans to or has already done this, I can work on that once this is merged.

Still waiting for this PR to get reviewed.

@hankbao @retep998: Anything stopping this from getting merged? I'd really like to see https://github.com/heim-rs/heim/issues/29 resolved and am not sure how to help!

Need to get reviewed by @retep998

@retep998 Need a hand?

@GuillaumeGomez I've been far too busy to give winapi the attention it deserves, so I'd be happy to have some help.

Ok, let's talk about it on IRC whenever we're both present at the same time!

Hi all, this would be very useful to me. I can help reviewing if that helps.

Please...

@retep998 all issues resolved. Please continue your review. Hopefully, this PR will get merged shortly.


Increase character limit for work and section titles

I determined that one fanfic title that works on FimFiction doesn't work on Offprint. If people on FimFiction intend to import their fics to Offprint, we shouldn't force them to shorten their titles.
The title is The Great And Powerful Trixie Presents: The Great And Powerful Trixie Story: Starring Trixie, The Great And Powerful!

section and work titles have a maximum of 120 characters as of alpha.10, which should be more than sufficient (and even allows the example title to pass)


Mock DoT Client for testing

For DoT tests, it is bad practice to rely on the Hashmapinc hosted Drilltest for unit testing.
Remove hardcoded URLs that point to the hosted Drilltest in all tests.
Implement rest service mocking in the test cases to allow for unit testing of components that consume the Drilltest / DoT API.
This is strictly scoped for DoT components.

This work is now extended for delegator mocking as well with Mockito.
The current integration test suite will be removed from DotValveTest.java and proper unit tests will be created.
The integration testing will be left to the Test team and additional integration suites can be added later.
The Project Level POM will now also default to ignoring integration tests for CI/CD


Feature/added labels to configuration

Added the new labels param that is now available via Epsagon.init(..) call.

@ranrib, I'm not sure if I did the Python string interpolation right.  I think it should be okay since array syntax is similar in JS and Python.  But wanted you to know I'm not 100% confident.

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

Thanks again @ranrib  for the quick work.


Call GPU-Post from GO-Post

Overview / Motivation
A part of the integration we should make the call to GPU-Post from GO-Post.
We decided that unless other issues arise, we will use CGO for this integration (the other option is using a GRPC server).
The Task
Integrate GO-Post and GPU-Post using CGO.

We would like the POST process (with GPU support) to be independent of go-spacemesh so it can be used by different clients and be more easily testable therefore there's no need to use CGO. What needs to be designed is the inter-process communication channel between go-spacemesh and the gpu-post-init process in a way that supports other clients to communicate with the POST process and POST needs to be built as a stand-alone process for all 3 supported OSes. @noamnelke @moshababo

What is GPU-POST and what is GO-POST?
High-level what we want for POST is to have a standalone process with an interface that can be used by other clients such as go-spacemesh. The process should use the gpu-post c-library internally.
@noamnelke @moshababo

Obsolete.


Fix EmitterOp config with { random: false }

This PR

Fixes a bug

The docs imply that an EmitterOp value like
{ start: 0, end: 1, random: false }

should be identical to
{ start: 0, end: 1 }

(i.e., nonrandom) but in practice it is identical to
{ start: 0, end: 1, random: true }

👍


fakes a change to see i my personal prow works

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it:
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/lgtm

/meow

/pony

/pony


OpenExperience (Certified Connectors)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
Important: Our certification engineer, Srikanth, is currently on emergency leave. Please expect a delay with your PR. He will return January 31st, 2022. We apologize for any inconveniences.
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[x] I attest that the connector works and I verified by deploying and testing all the operations.
[x] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[x] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[x] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[x] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[ ] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[ ] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[ ] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[ ] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

I am unable to add a label

@sriyen-msft Could you please review changes? Thanks!

@oxTomaszJ Your connector pull request is approved and merged, you can submit your connector artifacts to the Connector certification tab in ISV Studio to move forward in the certification process, Thanks.


add pascals-triangle

I don't understand the Travis failure, but apparently has to do with #lang lazy I think.

@Average-user Thanks for the PR here. I was recently added as a maintainer for most of the lisp-flavored languages. Ill take a look at this and #91 some time this weekend.

We test using the racket-minimal package. lazy is probably not distributed with it? Not sure how to resolve (tho lazy should be easy to implement on your side if need be).


Question: Does cradle support streaming output

I'm one of the maintainers of nushell and am interested in a cross-platform wrapper for std::process::Command. We have a couple requirements and I was wondering if your crate supports those.

Cross-platform, meaning Windows, Mac, Linux.
Support streaming of the output returned from std::process::Command.

Thanks and great work on this!

I'm one of the maintainers of nushell and am interested in a cross-platform wrapper for std::process::Command. We have a couple requirements and I was wondering if your crate supports those.

What are you looking for in a wrapper? Just better ergonomics, or are there other requirements?

Cross-platform, meaning Windows, Mac, Linux.

We test on Windows, Mac, and Linux, so everything should work.

Support streaming of the output returned from std::process::Command.

We don't currently support streaming, but it seems to be a common request. I don't think we have any particular objection to adding it, although we'd have to figure out a nice API for it.

Thanks and great work on this!

Thank you for the kind words!

What are you looking for in a wrapper? Just better ergonomics, or are there other requirements?

right now, we shell out on most things and just call 'external' commands. external means they're not nushell built in commands. so, for windows, that would be something like cmd.exe /c c:\some\path\to\exe -with_param1 -with_param2 and for unixes, we do something like sh -c 'blah' 'param'. I don't like shelling out at all and would like to eliminate it entirely, if possible. so, i stumbled upon your crate and it looked like it may fit.
so, i'd like to fix that issue but i'm also interested in making it easier to call so we don't have to remember all the minutiae for properly launching a command.

We test on Windows, Mac, and Linux, so everything should work.

excellent!

We don't currently support streaming, but it seems to be a common request. I don't think we have any particular objection to adding it, although we'd have to figure out a nice API for it.

understood. i guess put our vote in the camp for streaming output. :)
Thanks again. Good luck!

Noob here. but what exactly "streaming output" is?
I'm asking because i'm using cradle to run pacman (for installing packages) and the output looks like that pacman stuck although it actually doesn't. What i think that happened here is that the stdout isn't flushed frequently?

I think there's two related but separate issues here. I'll try to explain: When a child process writes something to stdout, in cradle there's currently two things you can do with that:

You can read it into memory as a whole (using StdoutUntrimmed or StdoutTrimmed). This then also means that the output will not be written to the parent's stdout, so you won't see it at all in a terminal. For smaller output this is fine, but for bigger output, it may be desirable to not read the whole output into memory at once before processing it further, but rather process the output in a streaming fashion, for example by passing it to something that implements Write.
The other issue is when not capturing the child's stdout into memory, by not using e.g. StdoutUntrimmed. That will mean that the output will just be relayed to the parent's stdout in a streaming fashion.

(All this works very similarly for stderr.)
I believe this issue here is about number 1. @fdncred, please correct me if I'm wrong.
@sabitm: It sounds like your issue is number 2. Could you post a code snippet of how exactly you're calling cradle functions, please? I think there's a few places where this could go wrong, so it'd be nice to see a concrete example. (Ideally, could you do that in a new separate issue? That'd be awesome!)

Thanks for your reply!
After further investigation, i can conclude that it just a different pacman's behavior if executed without a shell (cradle does nothing wrong!). When tested with different programs that does nothing special with shell features (like color, clearing, etc.), I can confirm that the program's output (stream) behave similarly when executed with cradle or shell.
If you're curious, this is like running run_result!(%"pacman -Syy")?;

I see. Yeah, it sounds like pacman uses something like isatty to decide what it writes to stdout or stderr. Thanks for the reply!
(I think cradle could in theory support creating a PTY to change what isatty returns to an executed process and make it behave as if it were running standalone in a terminal. But right now I'm not convinced that should be in scope for cradle.)


Question: Expose filtered metrics on a seperate endpoint

Hi,
I have an AspNet.Core application running in a Docker container in a marathon cluster.
I am currently using the App.Metrics.AspNetCore.Endpoints package to expose metrics to our metric collection system, formatted using the MetricsGraphitePlainTextProtocolOutputFormatter
However, our scaling infrastructure requires an endpoint that exposes a metric that can be retrieved from a json object using a path to the value, e.g. contexts[0]. apdexScores[0]. satisfied which I can get from the metrics endpoint, but it seems a bit brittle if the number of items in the array were to change. Is it possible to add a second endpoint that exposes a specific fixed set of metrics that I am already collecting, perhaps by using the reporting package in addition to the endpoints middleware, or do you have a better suggestion that I may have missed?

An alternative idea (that would need a PR), would be to extend the endpoint middleware to support filtering of the data returned.

Never mind, following naive implementation seems sufficient for my purposes:
  public class ScalingController
  {
    IMetricsRoot _metricsRoot;

    public ScalingController(IMetricsRoot metricsRoot)
    {
      _metricsRoot = metricsRoot ?? throw new ArgumentNullException(nameof(metricsRoot));
    }

    [HttpGet("/metrics/scaling")]
    public object ScalingMetrics()
    {
      return new
      {
        ScalingCounter = _metricsRoot.Snapshot.GetForContext("Application.HttpRequests").Counters.ValueFor("Active").Count
      };
    }
  }


Move and rename markdown linter config

Yaml in the workflows directory is treated like a workflow
Renamed to it what it is - config – not rules

Slamming this in w/ admin override

😲


Save and load reference datasets profile

Hi,
Is there possibility to save reference dateset profile and later load from file to do the data drift calculation in production environment?

Hi @marisabele!
Technically you can save a JSON profile (the summary of metrics/statistical tests results) as a JSON file anywhere.
For example, you can save a JSON of the regression model performance report as a "performance reference". It would contain metrics such as MAE. Then, during production you can build a workflow that would compare the newly calculated production metrics against the baseline values from JSON and follow some rule-based trigger. (Right now such workflow is external to Evidently since the tool only provides the metrics).
However, if you want to calculate data and prediction drift in production, the tool needs a complete baseline dataset (or a sample of it). Since it uses statistical tests under the hood, it won't work if only a summary of statistical properties (e.g. mean feature values, etc.) is available. In this case, it is not possible to just save some dataset "reference expectations".
We plan to later add a feature profiling report which can be more suitable in this case.
I hope we understood your intention right :) Otherwise please let us know a bit more about your ideal workflow!

Hi @emeli-dral, sorry to comment on this closed issue, but has this been aded to Evidently? I am trying to find documentation related to it, but can't find any.


Url builder for get requests

Final diff is one new empty line - in my opinion merging this would be more confusing (thinking of git history) as useful. Closing here.


ci: fix readme-stars

update actions/checkout to v4
update stefanzweifel/git-auto-commit-action to v5
add write permission, required by stefanzweifel/git-auto-commit-action
fix run condition to run only if AOC_ENABLED has the value true
move run condition to job so it stop sooner
use variable for AOC_ENABLED since it's not a sensitive value and also because it's required to move the run condition on the job

Thank you very much! 🎄


Build/release Python 3.11 tflite-runtime MacOS wheels to PyPI

Issue type
Feature Request
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
2.14.0
Custom code
Yes
OS platform and distribution
MacOs
Mobile device
No response
Python version
4.11
Bazel version
No response
GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
We are currently needing to run automated jobs on MacOS using tflite-runtime and Python 3.11, but the wheels on Pypi only cover Linux.
Standalone code to reproduce the issue
pip install tflite-runtime

Relevant log output
ERROR: Could not find a version that satisfies the requirement tflite-runtime (from versions: none)
ERROR: No matching distribution found for tflite-runtime

This repo below is certainly not a replacement of a proper official support for tflite_runtime from Google. Yet, it provides help on making up-to-date whl packages yourself (and some unofficial builds, including for python 3.11).
https://github.com/feranick/TFlite-builds

@chatnord,
I request you to take a look at this issue where a similar feature has been proposed and it is still open at the developer end. Also I request to follow the similar feature which has been proposed to have the updates on the similar issue. Thank you!

To be clear, there are a number of issues reported and pointed to the same state of abandonment of the repo for modern platforms.

Hi @terryheo, can you please take a look? Thanks.

This is hitting us aswell. Are there any plans for releasing platform specific wheels for newer Python versions?

Also seeing this issue

Hi, @chatnord
Thanks for raising this issue. Are you aware of the migration to LiteRT? This transition is aimed at enhancing our project's capabilities and providing improved support and focus for our users. As we believe this issue is still relevant to LiteRT we are moving your issue there. Please follow progress here: https://github.com/google-ai-edge/LiteRT/issues/79
Let us know if you have any questions. Thanks.


Fix golangci-lint timeout issue in CI

Trying to pinpoint what is causing the golangci-lint timouts when running in CI.
/hold

1 of 1 successful runs.
level=info msg="Memory: 1774 samples, avg is 3396.9MB, max is 4070.3MB"
level=info msg="Execution took 3m16.835370238s"

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/approve

@seanmalloy fyi, here is the resource utilization:
https://monitoring-eks.prow.k8s.io/d/96Q8oOOZk/builds?var-org=kubernetes-sigs&var-repo=descheduler&var-job=pull-descheduler-verify-master&orgId=1&from=1734041463549&to=1734045104101
it looks to be a resource issue but it's already pretty high: https://github.com/a7i/test-infra/blob/master/config/jobs/kubernetes-sigs/descheduler/descheduler-presubmits-master.yaml#L53-L57

/test pull-descheduler-verify-master

Updates since merging https://github.com/kubernetes/test-infra/pull/33946. It looks like we might be good now.
level=info msg="Memory: 467 samples, avg is 2106.0MB, max is 4766.7MB"
level=info msg="Execution took 59.135479519s"

I'll run the pull-descheduler-verify-master CI job against this PR a few more times to make sure we are all good and then close this PR.

/test pull-descheduler-verify-master

Looks like I did not need to increase memory, but it used up whatever CPU we gave it
https://monitoring-eks.prow.k8s.io/d/96Q8oOOZk/builds?var-org=kubernetes-sigs&var-repo=descheduler&var-job=pull-descheduler-verify-master&orgId=1&from=1734108578016&to=1734109629074

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master

/test pull-descheduler-verify-master


STG 95 beta changelogs

API change check
API changes are not detected in this pull request.

/check-enforcer override


*nickserv Add "RECOVER" if user exists

Some services (like anope) when you are disconnecting and reconnecting under the minute your nickname is used by the services.
A passage of the anope configuration:
/*
	 * The username, and possibly hostname, used for fake users created when Services needs to
	 * hold a nickname.
	 */
	enforceruser = "enforcer"
	enforcerhost = "services.host"

	/*
	 * The length of time Services hold nicknames.
	 *
	 * This directive is optional, but recommended. If not set it defaults to 1 minute.
	 */
	releasetimeout = 1m

To work around this problem, I suggest upgrading the * nickserv with sending the RECOVER command if the user (nick) is being used
ANOPE documentation for RECOVER:
Syntax: /msg NickServ  RECOVER nickname [password]

Allows you to recover your nickname if someone else has
taken it; this does the same thing that NickServ does
automatically if someone tries to use a kill-protected
nick.

  This causes the IRC
servers to disconnect the other user.  This fake user will
remain online for NickServ to ensure that the other
user does not immediately reconnect; after that time, you
can reclaim your nick.  Alternatively, use the RELEASE
command (/msg NickServ HELP RELEASE) to get the nick
back sooner.

In order to use the RECOVER command for a nick, your
current address as shown in /WHOIS must be on that nick's
access list, you must be identified and in the group of
that nick, or you must supply the correct password for
the nickname.

to integrate I suggest adding the posibility to SetCommand to configure "RECOVER"
SetCommand RECOVER NICKSERV RECOVER {nick} {password}

this would be a nice one. :)


Cannot convert, PDF reported as non-text, Acrobat claims is text

The PDF is a table on several pages but with a header and footer added. Acrobat reports that the document contains renderable text when trying to run the OCR command.
This information is public on the web, released by a state agency. It is probable that they obfuscate the data in a PDF format to make it more difficult to analyze.
multi.pdf

I suspect it's a mundane bug with PDFBox, the library which Tabula uses to access PDF data. We're working on getting a more up-to-date version of PDFBox integrated into Tabula, which would likely fix the problem. Until then, you might try "printing" the PDF to another PDF, to see if it gets reconstituted in a way that Tabula/PDFBox can handle.
(It's possible that the agency obfuscates the data, but I suspect it's more likely that they just use a janky PDF generator, which seems to be confirmed by the metadata, where the PDF is claimed by PHPMyAdmin AND LibreOffice.)


hasProperty not found method.

Hi.
I got error on build for ios.
Just added dependency and import wallet, wallet-ui.
Problem is hasProperty and getProperty, Not found method or not defined method.
This is sample about error:
Error: Method not found: 'hasProperty'.
package:solana_wallets_flutter/src/adapter.dart:61
hasProperty(js, 'connecting') &&
^^^^^^^^^^^
Error: The method 'getProperty' isn't defined for the class 'BaseWalletAdapter'.
package:solana_wallets_flutter/src/adapter.dart:76

'BaseWalletAdapter' is from 'package:solana_wallets_flutter/src/adapter.dart' ('../flutter/.pub-cache/hosted/pub.dartlang.org/solana_wallets_flutter-1.0.0/lib/src/adapter.dart').
package:solana_wallets_flutter/src/adapter.dart:1
Try correcting the name to the name of an existing method, or defining a method named 'getProperty'.
bool get _connected => getProperty(js, 'connected');

My flutter version is 3.1.0 and dart vesiont is 2.17.

This plugin only works for web, see pub.dev


Card image is not updating once flipped

Card image takes time to change after flipped like it take almost 4-5 minutes to update.

For me it can take anything from 10 seconds to a few minutes. Big problem.


feat: teach omega that  2^(n.succ) = 2^n + 2^n

2^(n.succ) is a common expression when dealing with bitvectors of width greater than zero.

I just noticed the following relevant issue: https://github.com/leanprover/std4/issues/500.
Might want to mix in the discussion there, it seems to suggest that dealing with powers is out of scope for omega (this was a statement by Eric Rodriguez, not an Std maintainer, but Scott did not contradict the statement).

Yes, I've seen this. I feel the correct approach is to add the special case first to show that we understand the code, and the add the hook.

Makes sense, just wanted to make sure you were aware of it

Superceded by #33


Support collation for MongoDB 3.4+

:+1:  for the collation!

Hello @cchantep - Is collation a work in progress / is anyone working on this right now?  I'd like to assist if possible

No WIP

Why?

... Because it need to be develop, but nothing ongoing

@cchantep I see that on 0.16, collation has been added, but at least when using it with 'unique', it doesn't seem to make any effect. Is it really implemented?

If this is still open, there is still work to be done.

any updates or plan on this?

any updates or plan on this?

Partial support. Be more specific if you expect something.

any updates or plan on this?

Partial support. Be more specific if you expect something.

Hi there, I need to use collation in find query to let query result case insensitive. Is this function already set up?

any updates or plan on this?

Partial support. Be more specific if you expect something.

@cchantep Hi there, I need to use collation in find query to let query result sorted as case insensitive. Is this function already set up?

http://reactivemongo.org/releases/0.1x/api/reactivemongo/api/collections/GenericQueryBuilder.html#collation(collation:reactivemongo.api.Collation):GenericQueryBuilder.this.Self

Hi,
hope this will help someone, it's kinda like a workaround but it is working, if you're doing aggregation.
Otherwise depending of one's reactivemongo version, one can simply set collation at index creation
def aggregate(pipeLine: BSONArray): Future[JsObject] = {

    val commandQuery = BSONDocument(
      "aggregate" -> "mycollection",
      "pipeline" -> pipeLine,
      "collation" -> BSONDocument("locale" -> "en", "strength" -> 1)
    )

    val runner = Command.run(BSONSerializationPack)
    db.flatMap(db => {
      runner.apply(db, runner.rawCommand(commandQuery)).one[JsObject]
    })
  }

Hi,
hope this will help someone, it's kinda like a workaround but it is working, if you're doing aggregation.
Otherwise depending of one's reactivemongo version, one can simply set collation at index creation
def aggregate(pipeLine: BSONArray): Future[JsObject] = {

    val commandQuery = BSONDocument(
      "aggregate" -> "mycollection",
      "pipeline" -> pipeLine,
      "collation" -> BSONDocument("locale" -> "en", "strength" -> 1)
    )

    val runner = Command.run(BSONSerializationPack)
    db.flatMap(db => {
      runner.apply(db, runner.rawCommand(commandQuery)).one[JsObject]
    })
  }

Rather have a look at https://javadoc.io/doc/org.reactivemongo/reactivemongo_2.13/1.0.0/reactivemongo/api/collections/GenericCollection.html#aggregatorContextT(implicitreader:GenericCollection.this.pack.Reader[T]):GenericCollection.this.AggregatorContext[T]

Thanks @cchantep you're the mvp ;)


Xaml Internal Error error WMC9999: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.

Describe the bug

Getting this error when compiling a Project Reunion 0.8 Desktop app.
I was doing some refactoring, and suddenly the project won't compile.  No other obvious errors.  Any help on where to start would be appreciated.
Output:
1>\.nuget\packages\microsoft.projectreunion.winui\0.8.0\buildTransitive\Microsoft.UI.Xaml.Markup.Compiler.interop.targets(465,9): Xaml Internal Error error WMC9999: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
NuGet package version:

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

May 2020 Update (19041)
Yes

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

Additional context

Visual Studio 2019 Preview  16.11.0 preview 2

Interesting, @alwu-msft know anything about this?

@RealTommyKlein this could be an ArgumentOutOfRangeException bug in XamlCompiler's CompileXaml task.

Closing as unfortunately this isn't actionable; I think it's likely that the error stemmed from one or more of XamlCompiler's on-disk caches having been corrupted somehow. Cleaning the solution (which would remove all of XamlCompiler's cached files) was probably sufficient with the subsequent recreation of the .xaml files being unnecessary to the success of the workaround.


Re-enable SourceClear

Summary
Prep for 3.0 release
Issues

OASIS-4078

Coverage remained the same at 97.997% when pulling 8d5924d349988de9c57aa576120224a2822f9a88 on nikhil/sourceclear into bc0dc866bafbd621a24cb4dc6f551ae0392808b5 on master.

lgtm

Thanks for the reviews! @mikeng13 looks like we might need to kick off the compat tests before this can merge?

build


Throw a useful error when authorization fails

When authorization fails in the JS client the error we get is "Error". Super useful 😄 .
We should detect when authentication fails and throw a useful error like "Authentication failed". The easiest way to detect this is if the negotiate request returns 401. Also, the transports should individually try to detect similar failures and throw the same error, in case authentication fails mid-connection.
Might need something similar in the .NET Client.

Current behavior in TS client:
[2018-08-16T20:31:17.812Z] Error: Failed to complete negotiation with the server: Error: Unauthorized
[2018-08-16T20:31:17.813Z] Error: Failed to start the connection: Error: Unauthorized

Current behavior in .NET Client:
Connecting to http://localhost:54543/broadcast
warn: Microsoft.AspNetCore.Http.Connections.Client.Internal.LoggingHttpMessageHandler[2]
      Unsuccessful HTTP response 401 return from POST 'http://localhost:54543/broadcast/negotiate'.
fail: Microsoft.AspNetCore.Http.Connections.Client.HttpConnection[10]
      Failed to start connection. Error getting negotiation response from 'http://localhost:54543/broadcast'.
System.Net.Http.HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at Microsoft.AspNetCore.Http.Connections.Client.HttpConnection.NegotiateAsync(Uri url, HttpClient httpClient, ILogger logger) in C:\Github\SignalR\src\Microsoft.AspNetCore.Http.Connections.Client\HttpConnection.cs:line 425

Both mention not being authorized. Do we want even more? Haven't tried out in the middle of a connection yet. That's next.

Current behavior for token expiring in the middle of the connection:

Websockets - Does nothing, can keep sending and receiving (we have https://github.com/aspnet/SignalR/issues/1159 filed already)
ServerSentEvents - Can no longer send, but can still receive forever
LongPolling - Can no longer send, can receive one more message or until current poll times out

We might want to file issues for the SSE and LongPolling behaviors, but I think this issue can be closed as the logs do say that the connection/request was Unauthorized
@anurse thoughts?


The list opens up, although enough space at the bottom

There is a situation when the list is up coming off, although bottom has enough space. Not logical behavior. How I was able to track the problem only occurs in Google Chrome
http://plnkr.co/edit/oZCudVaPNc42B7hLYB7j?p=preview

Can confirm... maybe it depends on the form's css but for me, it jumps all over the place... not doing anything  and continuously clicking it will open it "up" about 80% of the times regardless how close you are do the bottom of the page
it is definitely related to a merge 4 days ago: https://github.com/angular-ui/ui-select/pull/836
if you want it to work, downgrade to v0.11.2 until someone can shed some light into it ;)

Is there a way to disable the "up direction" rendering at all?

@equilerex Nice catch. I downgraded and now it works as expected :)

From usability perspective, its really annoying not to control the direction where things appear.
The version, as it, is unusable.

The https://github.com/angular-ui/ui-select/pull/989  fixes the issue of inconsistent behaviour. Although I personally would like to have it configurable.

Yes, it would be better not to do the thing than to do bad. Moreover, the need for this function in General is questionable, because it is difficult to do, hard to debug and difficult to maintain.

It's a shame that no option / way to disable these buggy  up-direction dropdowns has been provided yet

Should be solved with https://github.com/angular-ui/ui-select/pull/1212

That's one small step for a man, a giant leap for mankind.

@isimonov  Please allow making the direction configurable (static or dynamic). If its only dynamic even if it works correctly, it does not bring a consistent user experience in some cases.
Imagine there is a critical information that should not be hidden by the dropdown going up. Or in some layouts the label is up, and you don't want to hide it.

I agree, direction configurable would be best) ui-select project, unfortunately, at an impasse. I think the best solution would be to start over under the new major version. In my projects now I use now ui bootstrap Typeahead with some minimal modifications. It's easier and no bugs.

In the mean time, I have my own hack that allows me to set a select to open down only, here:
https://github.com/karptonite/ui-select/commit/b3fcd9d72756ef02a0f3f844884f7dcded2fe663
No promises but you are welcome to give it a try. The template changes seem to be some sort of build artifact, btw--the only relevant changes are in uiSelectDirective.js

@igorlino @isimonov @karptonite I agree with you so I just created PR https://github.com/angular-ui/ui-select/pull/1213 that will allow to configure dropdown position. Take a look and let me know your comments


Better README

Readme needs clearer installation instructions.

I'll try to take care of that in my next PR tonight. 😁

Sweet!

💡 There are some opportunities for additional info in the README. Wanted to run these by you first, but they'll need copy that someone has to write:

Introduction section that states the purpose of the project, some background
Possibly a screenshot
Near the end, maybe a resources type section which has contact info for your team, etc.
Because the data is merged into this statically, maybe it would be a good idea to exmplain and emphasize the CONTRIBUTING.md

Cheers!

Let's do it!  If you wanna open up a new issue / PR, we can work on it together :)  Once we're happy with the readme, we can see if we can re-use similar readme structure for the rest of SD's open source projects :)


[SPARK-10216][SQL]Avoid creating empty files during overwrite into Hive table with group by query

I added check routine at saveAsHiveFile() of InsertIntoHiveTable.
It checks whether the given partition has data in it or not
and creates/writes file only when it actually has data.

Can one of the admins verify this patch?

@yhuai @liancheng

Can one of the admins verify this patch?

@sirpkt Will you have time to bring it up to date? Also, can we add the same logic in https://github.com/apache/spark/blob/master/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/WriterContainer.scala (for data source table)?


schema.org namespace

We should formalize, in our guidelines, that the namespace URI for schema.org is "https://schema.org/" and not "http://schema.org/" (both are acceptable).

Hello @gerontakos I completely missed this until now. Is this done? Does this still need to be done? I don't know exactly where in the wiki the problem is.

This info has been added to the guidelines > step 6


DRAFT/WIP feat(nomad): add nomad service discovery

This PR introduces a new service discovery plugin that adds support for the recently announced build service discovery for HashiCorp Nomad. [1][2]. This new plugin will be modeled on the existing Consul plugin.
This PR is still WIP and currently has implemented the following

[x] Sane defaults
[x] Support all labels
[ ] Support all connection parameters
[x] Docs
[ ] Tests

[1] https://www.hashicorp.com/blog/nomad-1-3-adds-native-service-discovery-and-edge-workload-support
[2] https://learn.hashicorp.com/tutorials/nomad/schedule-edge-services
Signed-off-by: Bram Vogelaar<EMAIL_ADDRESS>

passed in a httpclient similar to how the consul plugin does it in 37964023

I guess it checks the "Support all connection parameters"

@roidelapluie i think i have implemented, tested and documented this now, can you please review again


removes .capitalize

Resolves #172

That's removed the whole line for calling configure_application_pool to set pipelinemode rather than just removing .captialize from the line.

@keyrage I changed it back! :)

Looks ok now.

Thanks for the bug-fix!


Email registration needs to be verified

Once a new user registers via email address, the will receive an email with a verification link to make sure the email address is genuine.
Until then, the user cannot participate in any chats.

still need to show visible alert that the email has been sent - e.g. using sweetAlert!


Automatically create web-based documentation on GitHub Pages

Scope and purpose of changes
Every good library needs documentation.
This PR adds automatic creation of web-based documentation and deploying to GitHub Pages upon every non-preview release from the main branch.
Types of changes

[ ] Bug fix
[ ] Enhancement (new and/or improved behavior)
[x] Other (please describe below)

Additions to Cake scripts and GitHub workflows.
Proposed changes / fixed issues
A new deploy-paged workflow is automatically dispatched by the Release Cake target immediately before publishing a release, provided that it is not a prerelease and the workflow runs on the main branch.
The new workflow:

uses DocFx to extract API documentation from XML comments;
uses DocFx to build the documentation site;
uses GitHub actions to deploy the site to GitHub pages.

All static parts of the documentation site (home page, TOC, etc.) still have their default contents. A subsequent PR will provide more sensible contents; for now, testing the new workflow has a higher priority.
Contributor's checklist

[ ] I have written tests for any provided enhancement
[ ] I have written regression tests for any provided bug fix
[ ] I have successfully run all tests on my machine
[ ] I have added and/or updated related documentation (if applicable)
[ ] I have updated the "Unreleased changes" section in CHANGELOG.md, according to the modifications I made

Closed because Codefactor won't re-run checks after modifying settings on codefactor.io


Test PR, please ignore

Description
A few sentences describing the overall goals of the pull request's commits.
Issues
List the issues impacted by this PR:

Issue ID

Checklist:

[ ] I have performed a self-review of my own code
[ ] I have run 'make check' to ensure my code does not have any formatting, vetting, linting, or security issues
[ ] I have run 'make test' to ensure new and existing unit tests pass locally with my changes
[ ] I have not allowed coverage numbers to degrade
[ ] I have maintained at least 90% code coverage
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] I have added tests that prove my fix is effective or that my feature works

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also list any relevant details for your test configuration

[ ] Test A
[ ] Test B

@tdawe: Thank you for submitting your pull request!
Please make sure you have followed our contributing guidelines. We will review it as soon as possible.

We want your feedback! If you have any questions or suggestions regarding our contributing process/workflow, please reach out to us at<EMAIL_ADDRESS>

run e2e test

run e2e test


Missed size on one plot -- fixing others.

This should fix #200 and is related to #196 and #197.
I didn't have test data for all plots so accidentally missed the bar sums. 450px was causing overlap with the buttons below the plots.
@grrmartin-USGS can you convert the ReadMe.txt to a README.md and document how these datasets are useful to testing the app? If we need to add more test data for development purposes, please document that need in an issue or just add to the inst/extdata folder and document how they can be used to test.
Not sure we want to resize the general app layout, but I think the 700X400px size is right for the current shiny layout.

Coverage remained the same at 26.818% when pulling 36f8e77f09164647271ed3c257a496c5544aa947 on dblodgett-usgs:master into 97a3e964dac80ab2a8a1350dc256b5726877ac97 on USGS-R:master.

OK added 6 new AWUDS Excel export files at inst\extdata\excel and new README.md at inst\extdata.  Files added listed below.  Can delete ReadMe.txt and AWUDS export files not referenced in README.md.
Export-Indiana-Aquifer-2005-2c.xlsx
Export-Indiana-Aquifer-2010-2c.xlsx
Export-Indiana-County-2000-2b.xlsx
Export-Indiana-County-2005-2b.xlsx
Export-Indiana-HUC8-2005-2b.xlsx
Export-Indiana-HUC8-2010-2b.xlsx

Thanks for adding more data. Note that this really should have come in through a pull request from your personal repository so we could review it and check to see if tests would pass.
The test for parsing source data failed because you added additional data to the excel folder.
Next time you work on the package, make sure you run the tests before pushing changes to github and please use your personal github fork for contributions via pull request so the rest of the team can look and comment before merging the changes.
Regarding the README, can you pull down the latest version once this is merged and add descriptions of the rest of the data in the inst/extdata folder? It's good to have a few things documented, but it's not clear what the rest of these files are or are used for.

Well that was annoying. I made the mistake of not checking the package to make sure the examples would run as well as the tests. Got that cleaned up and also fixed a couple package notes that were cropping up in check.

Changes Unknown when pulling 47d52aa4990d835d5fe8598632266ed7995167a2 on dblodgett-usgs:master into ** on USGS-R:master**.


Parity with Node/Deno

We should endeavor to make the JS CLI/REPL behave as closely to Node and Deno as possible, or, rather, the expectations now established by Node. This list is a living issue on the way to that support:

[x] Host-side imports should work without much ceremony on the REPL
[x] Import statements don't work (same as Node), so we should emit a message about that
[x] #153
[x] See: elide-dev/runtime#42

superseded by #804


Fixed Width Calculation for Help Output

Before, the assumption was made that a flag would always have the longest signature in the commands options. This causes extra space before the option names when a value name is the longest.
We now only add the length of the flag prefix the width count if we are calculating the width of a flag signature.

sorry i missed this one, thanks!


Added missing license headers

Overview
License headers were missing on some of the cone cast files, this PR adds them in

/azp run


[bug] undefined variable name does not trigger errors or warnings in JSX.

I'm crosslinking the issue, as I do not know where it could belong to:
https://github.com/eslint/eslint/issues/13127
I'm not sure which rule is failing, but if I had a component which had prop name and used it in JSX, while refactoring and renaming prop to title, the leftovers of name prop iN JSX slept unnoticed, and caused errors in production, even with typescript.
my .eslintrc.js:
module.exports = {
  parser: "@typescript-eslint/parser",
  extends: [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "standard-react",
    "plugin:cypress/recommended",
    "plugin:jest/recommended",
    "plugin:import/typescript",
    "plugin:jsx-a11y/recommended",
    "plugin:react/recommended",
    "plugin:react-perf/all",
    "plugin:react-redux/recommended",
    "plugin:promise/recommended",
    "stylelint",
    // Prettier always last
    "prettier",
    "plugin:prettier/recommended",
    "prettier/@typescript-eslint",
    "prettier/react",
    "prettier/standard",
  ],
  plugins: [
    "chai-expect",
    "import",
    "@typescript-eslint",
    "react",
    "jsx-a11y",
    "react-hooks",
    "react-perf",
    "react-redux",
    "jest",
    "no-inferred-method-name",
    "optimize-regex",
    "promise",
    "cypress",
    "prettier",
    "standard",
    "markdown",
    "json",
    "xss",
    "perf-standard",
    "es",
    "babel",
    "formatjs",
  ],
  settings: {
    react: {
      version: "detect",
    },
    node: {
      allowModules: ["src"],
      resolvePaths: [__dirname],
      tryExtensions: [".ts", ".tsx", ".js", ".jsx", ".json"]
    },
  },
  env: {
    "cypress/globals": true,
    browser: true,
    node: true,
    es6: true,
  },
  parserOptions: {
    ecmaFeatures: {
      jsx: true,
    },
    ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
    sourceType: "module", // Allows for the use of imports
  },
  rules: {
    "node/no-missing-import": "off",
    "node/no-missing-require": "off",
    "node/no-unsupported-features/es-syntax": "off",
    "sort-requires/sort-requires": "off",
    "no-console": ["error", { allow: ["warn", "error", "info"] }],
    "no-unused-vars": "off",
    "@typescript-eslint/explicit-function-return-type": [
      "warn",
      { allowExpressions: true },
    ],
    "@typescript-eslint/explicit-member-accessibility": "off",
    "@typescript-eslint/no-use-before-define": [
      "error",
      { functions: false, classes: false, typedefs: false },
    ],
    "@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
    "react-redux/prefer-separate-component-file": "off",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "optimize-regex/optimize-regex": "warn",
    "es/no-async-iteration": "error",
    "es/no-malformed-template-literals": "error",
    "es/no-regexp-lookbehind-assertions": "error",
    "es/no-regexp-named-capture-groups": "error",
    "es/no-regexp-s-flag": "error",
    "es/no-regexp-unicode-property-escapes": "error",
    "chai-expect/missing-assertion": 2,
    "chai-expect/terminating-properties": 1,
  },
  overrides: [
    // Override some TypeScript rules just for .js files
    {
      files: ["*.js"],
      rules: {
        "semi": ["error", "never"],
        "jsx-quotes": ["error", "prefer-single"],
        "@typescript-eslint/no-var-requires": "off",
        "@typescript-eslint/explicit-function-return-type": "off",
      },
    },
  ],
}

this is how it looks in the code:

as you can see variable name is not defined, but somehow not highlighted. Had this slipped in to the code base 3 times this year

That's because name is a global in browsers; it is, in fact, defined.

@ljharb
well, in this case it is not defined, cos we have Sentry bug tracking software, and it gives us a type error in code covered by typescript. This is very tricky issue, cos it leads to bugs.
Is there somewhere on a web a list of this kind of variables which is not recommended to use in everyday code?
It is definitely DX bug, and it needs to be solved somehow. I've met it 3 times in a year in different codebases, but yesterday it was a reason to fail an issue here.

It's definitely defined in every browser - name is window.name, which is always defined. The same problem occurs with things like Text, or any other browser global.
Perhaps TypeScript is renaming that variable in your build output? In that case, it would appear to be defined at lint time (the lack of error here is correct) but the renamed variable wouldn't exist.

@ljharb so what can we do about it? create an issue in typescript repo?

If you can confirm the tsc output is mangling the variable name, causing it to break at runtime even tho the types are valid, then yes that seems like the right path to me.

Closing pending confirmation.


feat(cli): add all missing cog special methods

Summary
some cog special methods were missing from the cli, This pr adds all of them and adds a script to generate the list (some manual intervention required)
Checklist

[x] If code changes were made, then they have been tested

[x] I have updated the documentation to reflect the changes
[x] I have formatted the code properly by running task lint
[x] I have type-checked the code by running task pyright

[x] This PR adds something new (e.g. new method or parameters)

Figured I would update this, since it got kind of lost between all the other PRs - I've changed the order of methods a bit and added a changelog entry, should be good to go now.


Fix bug in Docker image build process which caused tags to have improper manifests in DockerHub

References

Fixes a bug in #2644 discovered after the merger

Description
Fix bug in Docker build process, where the manifests for the latest and latest-dist images on DockerHub were invalid.
The core issues was that in #2644, both the latest and latest-dist build processes were sharing the same artifact to store their digests.  When the manifest was built for one of those tags, it was including every digest that had been built so far.
This behavior resulted in the latest tag in DockerHub having a manifest that included all the following:

The latest image version for AMD64
The latest-dist image version for AMD64
The latest image version for ARM64

It also meant that the latest-dist tag ONLY included the longest running image:

The latest-dist image for ARM64

The reason for this was a race condition where the ARM64 image took longer to build.  At the point where the latest ARM64 image completed, both of the AMD64 images were already completed. Since they shared the same artifact, both AMD64 images WRONGLY ended up included in the same manifest.
This PR also does some minor cleanup in this docker.yml including:

Updating all action step plugins to latest versions
Reordering matrix parameters to list the arch first, so that step/jobs names in GitHub are clearer.

Previously names looked like dspace-angular (false, linux/amd64, ubuntu-latest)
Now, then names will look like  dspace-angular (linux/amd64, ubuntu-latest, false)
This is just my preference, but it's also easier to tell steps apart as longer names get trimmed in the display.  It moves the boolean for isPR to the end as it's not useful in the trimmed name.

Instructions for Reviewers

This will be merged immediately if it passes PR CI validation.  The full test requires merger.

This improves the Docker image builds, but still results in a failure for the latest-dist image.  Finally figured out what I believe is causing the issue & it should be fixed in #2650

Ported to dspace-7_x in #2655


support for parameterized strings?

Any plans to support string parameterization? For example i18n-abide supports the following syntax:
req.gettext('Hello %(username)s', {username: 'johnsmith'});
That named parameter helps provide context to translators.

You can use something like sprintf look for it on NPM

In fact, you can use any templating language for this, including lodash templates.
However, original gettext indeed uses sprintf and I personally would recommend it too, because it's much more suitable for templating exactly l10n strings.
Here is the most popular version: https://github.com/alexei/sprintf.js
Just import it in you project, and wrap any l10n string you need with it. It's the same way as original GNU gettext handles it.
sprintf(gettext('Hello %(name)s'), 'Test')

Agreeing with answers and closing.


feat(test): more chaos when killing nodes in recovery test

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
Previously in recovery test we would pick some nodes and kill them at the same time. This PR messes up this process by making each node be killed and restarted at a random order. And for each kind of nodes (CN/FE/meta/compactor), any number (0-all) of them might be killed at a time.
This PR also bumps madsim-tonic version, to add interceptor support for #6466.
Checklist

[x] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Refer to a related PR or issue link (optional)
https://github.com/madsim-rs/madsim/pull/91

Now we get another bunch of errors. 🤣
https://buildkite.com/risingwavelabs/pull-request/builds/13137#_

Now we get another bunch of errors. 🤣 cc @yezizp2012 https://buildkite.com/risingwavelabs/pull-request/builds/13137#0184d1ef-405a-4afa-b92e-08531fe9b3e1

Took a quick look, they were all same problems as I fixed in #6687 . 🥵  panic of unwrap everywhere.

Now we get another bunch of errors. 🤣 cc @yezizp2012 https://buildkite.com/risingwavelabs/pull-request/builds/13137#0184d1ef-405a-4afa-b92e-08531fe9b3e1

I tried to fix these panics in #6709 , and tested it under the changes in your branch. The recovery test passed with kill-rate=1.0 but I'm not sure if they were just lucky runs. 🥵

Is this OK to merge? 👀 @yezizp2012

Is this OK to merge? 👀 @yezizp2012

LGTM. Let's give it another try and merge it if passed. 🥵


fix(docs): Fixing broken links for GH integration plugin release notes

Resolves GitHub issue:

Resolves Jira: [JIRAPROJECT-123]

Replaces hardcoded links with either Hugo's ref shortcode or Armory's linkWithTitle shortcode. When compiling, Hugo doesn't catch broken links when the link is hardcoded. Hugo will catch broken links when you use ref or linkWithTitle.


The periodic global noise

Hello, great job, and thank you for your open-source work. I have found that the simulator periodically produces global noise in actual use. Is this due to my data? There is no such phenomenon when I have very little data (for example, only 10 images, like in the office example). However, when I have slightly more data (20 images), this problem occurs.

Thank you for your interest in our work and sorry for the late reply. The periodic global noise is probably the result of our settings about noise events caused by "leakage current", especially when the scene moves really slow and events are supposed to be sparse. This phenomenon is reasonable in the current simulator setting but hardly observed in the real data for multiple reasons. We are currently working on this part and will update the simulator ASAP.
My suggestion now is to use high-frame-rate videos as input or interpolate the frames to create one before using the simulator, which might alleviate the problem.

Thank you for your interest in our work and sorry for the late reply. The periodic global noise is probably the result of our settings about noise events caused by "leakage current", especially when the scene moves really slow and events are supposed to be sparse. This phenomenon is reasonable in the current simulator setting but hardly observed in the real data for multiple reasons. We are currently working on this part and will update the simulator ASAP. My suggestion now is to use high-frame-rate videos as input or interpolate the frames to create one before using the simulator, which might alleviate the problem.

Thanks for your reply! Please do not close this issue. I am currently experimenting with new data and parameter settings, and I want to share any new issues or results here."

After replacing the video frame interpolation model, the problem has been greatly alleviated. Thank you for your work.

Thank you for your interest and feedback. If any other problem is encountered, please don't hesitate to open a new issue.


Home row position is unnatural.

Background: Typed on a colemak ergodone (ergodox clone) for a few years, and the 'laptop-style' keys layout is really different , but it is worth pointing out nevertheless, especially to those who are interested in evolution.
So here it is; the accepted home row position is forced. Try it now, just lay your fingers where they want to rest according to their length , youll find that either the middle and ring fingers go on the top row (ring finger is kinda between the two rows for me), or the little finger slides down one row (this is what the ergodone encourages my hand to do, since on a 'regular' keyboard, moving the left little finger down puts it halfway between 'z' and shift, and the keyboard already moves the middle columns up a bit). If you are interested to research this, Id like to develop a layout with this approach.

that's inevitable, you're trying to use something that is designed with regular skewed keyboard efforts weighting system in mind, on an orto keyboard with keys vertically aligned, it's not going to be the best fit.
still probably better than QWERTY ;)

We have already swapped A with Z and 'O' with '/' on the ergodox. I have to admit that laptop keyboards hurt my wrist within minutes, so I avoid them. That being said, when I do use them, my lower pinky position is getting more annoying, so I might still create a layout eventually, as nixos makes it trivial for us to customize all our keyboards. Unsure if its possible to do this, but we would use the Lshift key as 'A when pressed, shift when held' , which is our current ergo setup. That way, the 'B' regular key can be used for something else (return?), and all the bottom rows can fell a lot more 'ergo' like.