Custom loader

Notable Changes
Adds a utility for tools to customize and build their own postcss-loader's based on specific needs without disrupting the core logic of the plugin. The API was taken from babel-loader where it works well https://github.com/babel/babel-loader#customized-loader
Plan on using this in the Gatsby CSS tooling as well as other places
NOTE THAT THIS INCLUDES #425
Type

ℹ What type of changes does your code introduce?

[ ] CI
[ ] Fix
[ ] Perf
[ ] Docs
[ ] Test
[ ] Style
[ ] Build
[ ] Chore
[x] Feature
[x] Refactor

SemVer

ℹ  What changes to the current semver range does your PR introduce?

[ ] Fix (:label: Patch)
[x] Feature (:label: Minor)
[ ] Breaking Change (:label: Major)

Checklist

ℹ  You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. This is a reminder of what we are going to look for before merging your code.

[x] Lint and unit tests pass with my changes
[x] I have added tests that prove my fix is effective/works (if needed)
[x] I have added necessary documentation (if appropriate)
[ ] Any dependent changes are merged and published in downstream modules

/cc @ai What do you think about it? I don't think what we should ignore a feature request from gatsby

fair questions. It enables creating higher-level loaders on top of postcss without having to copy/paste the postcss-loader. Right now there isn't a good way for tools to both provide postcss based transforms as well as letting downstream users customize for other things.
For instance Gatsby's css pipeline defaults to autoprefixing and handling some flexbugs for CSS here. This works fine but removes the ability for a user to further configure postcss with a config file, and requires that awkward function wrapping to support it in loader options. To work around this, the gatsby-plugin-postcss has to introspect the webpack config rules for the css rule, remove it, and add it's own with an un-optioned postcss-loader, which also removes autoprefixing by default, and requires the user set it up (which also means needing to setup browserslist and opting out of Gatsby's default handling of that).
Alternatively this PR allows higher level tooling to produce and use slightly modified postcss-loader with preset's and option handling that are tuned to the more convention based environment the user's code is running in. Such as configuring TailwindCSS: https://github.com/jquense/docpocalypse/blob/master/packages/theme/tools/theme-loader.js without breaking postcss.config.js behavior
Yes this could be done a few other ways, like using multiple postcss-loaders in a loader setup, but that is slower (even with #425) and not as flexible, because you have far less control over plugin execution order, as well as not being able to set the parser/stringifier effectively for all user code.
This could also be accomplished via some additional options in postcss-loader, (like letting config be a function that is passed the options/file config and can mutate them). That works less well for tools wrapping it, since it doesn't allow providing a separate smaller/different API on top of the postcss-loader. e.g. my-postcss-loader may not allow configuring the parser b/c my tool would break if not the default.
I also find this API a bit MEH, but there is precedent for it in babel, and it's not intended as an API for direct (most) users of the loader, so maybe it's less important the API be pristine (YMMV!).
For reference here is Gatsby's usage of the same feature from babel-loader)
Also just to be clear I'm not here with an official request from Gatsby, tho I did write/maintain a bunch of their CSS stuff, and do plan on upstreaming it there. And also would benefit from it in Gatsby, as well as in other projects I maintain like astroturf

It is hard to review big API changes without code and use cases. I see the problem and agree that we must provide some solutions for users with this problem. But I am not sure that it is the best way (not because I know a better way, but because I do not fully understand the problem).
Can we start from a little early and create an issue, where we will describe the problem and provide more use cases?
Sorry, @jquense I know that it means more paperwork for you. But I afraid to take the wrong decision, reduce project maintainability, and bring to many API changes to PostCSS users (if we will need to fix API in the future).

it should also be said that i'm happy to help maintain as well if anyone wants to/trusts me with a commit bit :P

it's basically already on autopilot

Accepting some big PR could stopped autopilot 😅. People will create a lot of issues and force us to spend more time.

that's fair and true! I'm willing to help if that happens. Again i don't mean that as a negative

This is not going to change how 90% of ppl use the postcss-loader and those who do use it are less likely to be a maintenance burden being tool authors themselves

Yes but it needs to be documented and especially new users might be inclined to use it due to not understanding it's use correctly

The API is a bit ugly but at least proven effective in babel (obviously a different tool but in the same ballpark so maybe we can take lessons from it)

That is my main concern, maybe Gatsby needs this kind of customization, but why e.g not simply writing a new loader then instead of adding a 'Loader Builder' to this Loader. This also has the benefit of being able to maintain this loader freely then

This project hasn't add an update or release in 2 years, so I don't think API churn or maintenance burden is big risk here (that may be an unfair assumption), it's basically already on autopilot (NOT a criticism, I wish all my projects were like that)

I did a lot of testing around to ensure it is that way, there are simply no pressing updates needed atm and no new issues being opened in a while, it's a simple loader wrapping postcss for webpack usage in a 'generic' way, meaning you should be able to use all postcss related features and have as minimum webpack idiosyncrasies as possible

That is my main concern, maybe Gatsby needs this kind of customization, but why e.g not simply writing a new loader

Code reuse is a good thing. Sor instance, if we found and fix a bug in postcss-loader it will be nice to have a way for the Gatsby team to backport it faster.
Also, it will simplify PostCSS major updates.

Yes but it needs to be documented and especially new users might be inclined to use it due to not understanding it's use correctly

I'm happy to add a bit note saying most ppl won't/shouldn't use this if that helps. Also the API is fairly obtuse to use just accidentally since you need to create a new file, which i think is a positive.

but why e.g not simply writing a new loader

That is always an option, It's not great tho. The ecosystem is built on top of this loader and having other postcss based ones means there is room for underlying behavior forking. It's harder to ensure that compatible versions of postcss are used together, or that things like AST reuse work between tools, or that things like config loading are consistently handled.
This isn't a big loader but there is choices made there that affect up and downstream users. Consider that css-loader tries to reuse the AST from postcss, if others make there own loader they have to remember to do that as well, maintain the same format etc as postcss-loader.
Is it huge deal if these tools made their own loaders? No, but it's also not necessary and yes the cost it borne by maintainers here, and that's a thing to consider.

I did a lot of testing around to ensure it is that way

You did great work! not all projects need to update constantly, it wasn't a negative, just noting that there may be room for some changes now, and that users probably won't mind/notice given how infrequently they already have to think about this loader 👍

I'm happy to add a bit note saying most ppl won't/shouldn't use this if that helps. Also the API is fairly obtuse to use just accidentally since you need to create a new file, which i think is a positive.

Right, I'm ok with this being 'hidden' for implementers (normally more advanced folks in the tooling space) in e.g ./docs/IMPLEMENTERS.md or the like

That is always an option, It's not great tho. The ecosystem is built on top of this loader and having other postcss based ones means there is room for underlying behavior forking. It's harder to ensure that compatible versions of postcss are used together, or that things like AST reuse work between tools, or that things like config loading are consistently handle

Agreed, there might be a way to handle this as setting defaults is not only a problem for gatsby in particular but also for wrappers like create-react-app etc at the moment, due to how config loading works atm. I will look into it in the next days as I'm currently not happy with how it is done to be honest. Reusing AST's is each loaders concern their is now way around it, it's a essentailly a webpack feature to pass them between loaders and in this case config loading is abstracted into it's own package aswell (see the next paragraph below). So e.g something in the direction of e.g maybe sufficient, but I need to look at it more throughly first....
loader.js
function loader () {
 // ...

 if (loader.defaults) {
   // Handle defaults
 }

 // ...
}

loader.defaults = false

module.exports = loader

custom-loader.js
const loader = require('./loader')

// Applied after options or config loading
// to be usable as the 'normal' loader
// but with specific defaults
loader.defaults = {
  plugins: []
  options: {}
  ...etc
}

module.exports = loader

webpack.config.js
module.exports = {
  // ...
  module: {
    rules: [{
      // ...
      loader: path.join(__dirname, './custom-loader.js'),
      options: {
         // Used as always...
      }
    }]
  }
};

Is it huge deal if these tools made their own loaders? No, but it's also not necessary and yes the cost it borne by maintainers here, and that's a thing to consider.

And at some point it is the better choice imho depending a how much customization is needed, the way it is currently proposed is able to basically 'hook' into everthing, which 1.) shouldn't be needed and 2.) makes reusing the code a bit senseless as it doesn't seem to provide the needed logic in general then.

You did great work! not all projects need to update constantly, it wasn't a negative, just noting that there may be room for some changes now, and that users probably won't mind/notice given how infrequently they already have to think about this loader 👍

I didn't recieve it as a negative, but to explain why it turned out to be likely be this way.

I will open a tracking issue once I have some more context and thought about it

So essentially the use case is fine, but I want to have some gurads of how one can customize it to avoid getting issues which regularly force me to ask "show your custom loader file" or the like. Adding e.g a few default plugins and options  with a merge of the user options or config provided are fine for example as there shouldn't be to much 'abuse' potential if done right in  a certain way still handled by the 'original' loader (Errors, Warnings, ...).

I would add if we think the scope of this API is to much it could be easily pulled back to the minimal i think is necessary for these use-cases

handle new loader options or filter/map postcss-loader ones
A hook to modify/introspect the config for each file processed

Without proposing a very different API that would look like

removing the result hook (use a postcss plugin if needed!)
remove a bunch of the flavor options passed to customOptions and config hooks

Nope, I think we are going in the right direction. I just want to increase paperwork for the first planning step.
What is the problem exactly? What is the current hacky solution (with code examples)? What are the limits of the current solutions? What are the possible alternatives? What other problems we can potentially fix?
Unfortunately, bureaucracy is really useful thing for the big system (I spend 5 years as a Wikipedia administrator and can be sure about it 😅).

@ai I think i did that here: https://github.com/postcss/postcss-loader/pull/428#issuecomment-628643820 statement of the problem, workarounds and alternatives. Is there something missing you'd want to see

So, do you want an extendable postcss-loader?
You define default PostCSS plugins, but they can be overridden in user’ config?
Few thoughts:

Do we need to allow users to disable/change some plugins from the library config? For instance, if I want to pass grid: 'autoplace' option to Autoprefixer, but the library has Autoprefixer in its PostCSS config?
Instead of changing postcss-loader we can change postcss-load-plugins and add this feature to Parcel and all other builders. postcss-loader supports standalone PostCSS config. But I am not sure about the API.

Do we need to allow users to disable/change some plugins from the library config?

I don't think so, There are two main things i think need to be possible:

the ability to limit or augment user provided config, so filtering out things that would break in the specific tooling context
and ability to set configuration that is NOT overridable by users except through explicit API of my custom loader

As an example I may want to allow users to disable Gatsby's built in autoprefixing behavior,  but not arbitrarily edit my postcss config. In general I'm looking for the ability to provide higher level interfaces to users, maybe even to the extent of abstracting away Postcss as a concept they need to know. As opposed treating the user as "peer" which is mostly what happens now.

Another question: do we want to put plugins at the beginning of the config? Or we will add user’s plugins to the end of the list? On the one hand, PostCSS 8 will be less important. In another hand, even in Babel (they have visitor API which we will add to PostCSS 8) plugin’s order sometime it is important.
What will be the logic behind this PostCSS config merging?

I don't think generic config merging is the feature needed here at least it's not the one I'm looking for for this use case. One size size wouldn't fit all the cases and don't address the use case of easily changing the config based on the current file well, amount others. Plugin ordering is a great example, some plugins would need to be first and others, like autoprefixer, last. The flexibility of a function where the tooling can provide their own logic is needed

@jquense yeap, I agree that custom callback is an interesting solution here.
We can add postcssLoadPlugin.extend(config => changedConfig) and add extend option to the loader. In this case, we will be able to re-use config extendable in all bundler, it will be not a webpack-specific solution.

That seems ok, but how would handle accepting new loader options? You need some way of split out my-custom-loader options from the base postcss-loader options before they are validated, otherwise it'll fail the JSON schema here

That seems ok, but how would handle accepting new loader options?

I think we can add options to the loader and then just pass it to the postcss-load-plugins library.
What options do you need?

The concern is more about validate, postcss-loader whitelists the accepted options you can pass it. you can't pass additional options (like ones  to do additional configuration) without it yelling at you: https://github.com/postcss/postcss-loader/pull/428/files#diff-1fdf421c05c1140f6d71444ea2b27638R74
just noticed there is a bug here, the customOptions hooks should run before validate

And we can always add new options from postcss-load-plugins to postcss-liader whitelist

@jquense friendly ping, do you still need this feature?

I still think this is a good idea and one that i would use. At the moment i've forked postcss-loader to accomplish this. Open to different or simpler API's but I think having a public API for tooling authors to build extensions on postcss-loader would be a win.

@jquense Can you provide me simple use cases for this feature? I would like to evaluate this or perhaps suggest other approaches, for example you can use postcssLoader.call() to run postcss-loader inside own loader

@evilebottnawi https://github.com/webpack-contrib/postcss-loader/pull/428#issuecomment-628643820 I think describes the use cases and https://github.com/webpack-contrib/postcss-loader/pull/428#issuecomment-629456784 the important requirements.
I would add again that this API has already been tested and proven out for Babel, which has mostly the same concerns and use cases for tooling authors. Happy to bikeshed simpler alternatives but also don't want to reinvent the wheel for the sake of it.
postcssLoader.call isn't a good option as it requires duplicating a lot of config reading logic. Any API should make it easy to reuse all the specific logic the core loader does while also giving the consumer control over the options passed in as well as the final set of options and plugins passed to postcss.

@jquense I would like to see examples of usage (minimum), based on the logic described, we will need to create such logic for almost every loader, I find it a little redundant and would like to understand the problem deeper

sure, here is one example  of me using it to preconfigure autoprefixer for using postcss in a chain with other preprocessing https://github.com/jquense/docpocalypse/blob/master/packages/gatsby-plugin-css/utility-postcss-loader.js (css-loader!postcss-loader!sass-loader for instance)
I also use it here as well to configure tailwindcss in a specific way so that it works out of the box with the gatsby theme:  https://github.com/jquense/docpocalypse/blob/master/packages/theme/tools/theme-loader.js

You can achieve this using https://github.com/webpack-contrib/postcss-loader#function I still can't understand use case

The function options does not let you adjust or map the options from a user's config file.

Why you need this?

There is no way to abstract it away from a user and rely, i cannot easily provide a "my-theme-loader" to a user in a way that they can't mess up, there a ton of extra work needed to achieve this with the current setup

Because it was never designed for this purpose
I cannot understand the purpose of this.

You have to do something like this ugliness which doesn't even really work:

This is a perfectly good solution.

I think that similar feature in babel-loader is enough reasons for implementing it here if we had no some other reasons to not do it.

I'd also add that I've had lots of problems trying to extend webpack loaders by calling another loader in it. There are many idiosyncracies to spreading the webpack loader context. Like how some properties are recent or nulled out later making things break subtly in hard to diagnose ways. Not to mention caching issues and the like. Overall webpack loader pipeline is not designed for that sort of composition

@ai The original design did not design for such a possibility, the official introduction of this will potentially create a situation where we will have to do this for each loader, then we need to completely revise the design to avoid reimplementation this for each loader

@evilebottnawi I understand that is hard. But making thing hard should not be a reason to not do it.
If users need some feature, we need to help it (when we will have a time). If they want to spend their time in fixing the issue, how the fact that it isard can be a blocker for them?
The good reason is that will increase maintaibility. Or that the current implementation is not the best one.

@ai

I understand that is hard. But making thing hard should not be a reason to not do it.

This is why I have not closed this issue/PR :smile:
I'm just saying that maybe we should look differently at the implementation.
@jquense Can you rebase your work?

i will rebase! i'm quite busy with work at the moment but will get back to this


Ability to ignore certain errors

I have a Python project that uses the attrs library. The language server pyright doesn't support attrs and always reports errors when an attrs class is used. Therefore, the list provided in this plugin always contains a known set of things that I simply can't change. Having some kind of filtering possibility to ignore known errors would help very much in this situation.

That is out of scope for this plugin. Please refer to the pyright docs to properly configure your lsp server.
There seem to be settings to ignore diagnostics from certain modules etc...

The only thing that I can find are the generic "# type: ignore" settings, which would also prevent other tools from performing checks. Do you refer to another setting in the pyright config you linked?
Adding such a thing to trouble.nvim would mean admitting that LSPs are sometime error prone or also that some projects have a lot of issues in the beginning and some way of navigating to the relevant diagnostics could improve such situations.

ignore [array of paths, optional]: Paths of directories or files whose diagnostic output (errors and warnings) should be suppressed even if they are an included file or within the transitive closure of an included file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).

Apart from that, I'm sure you can define disable rules in your code as part of the configuration or inline.

ignore [array of paths, optional]: Paths of directories or files whose diagnostic output (errors and warnings) should be suppressed even if they are an included file or within the transitive closure of an included file. Paths may contain wildcard characters ** (a directory or multiple levels of directories), * (a sequence of zero or more characters), or ? (a single character).

The LSP generates false-positive errors inside my main code base when using attrs-based classes. Therefore, simply ignoring all project code is not a good idea ;-)

Apart from that, I'm sure you can define disable rules in your code as part of the configuration or inline.

Yes, I can ignore that, but then also other tools used in the CI setup performing further linting will ignore these constructs, although they easily support this. So there's no simple solution to fulfill all constraints and therefore I currently have to live with a whole set of false-positive reports in vim.

In case you're interested, here are some of the discussions regarding these pyright-specific issues: https://github.com/microsoft/pyright/issues/146

I know this issue is closed, by I think this would be a worthwhile feature. Pyright in particular is a good example. It emits hints for unused parameters. That's a very reasonable use of hints. However, when I look at the list of diagnostics in Trouble, it may be full of hints. I don't want to entirely filter them out of the list of published diagnostics because they may enable meaningful visual cues (like dimming unused function parameters). However, they don't need to show up in the list of diagnostics shown by Trouble. Even a severity level filter would be useful (so that any hints could be left out).

I'm just dropping in to hope this gets addressed specifically by Trouble.nvim, not upstream in the LSPs — like it or note a lot of LSP projects don't actually allow any sort of configuration to disable suggestions, specifically because they expect that behaviour to happen at the editor-level (unlike errors, which need to have mirrored behaviour between the editor and the command-line; and thus need to be configured in a shared, project-local location.)
Another huge example here is TypeScript: @ts-ignore and tons of configuration-file options exist for errors; but zero configuration options whatsoever exist for suggestions. (For whatever it's worth, this is being tracked upstream there as a feature-request; see Microsoft/TypeScript#28825; but it doesn't seem to have gotten much traction for exactly the reason described here: pretty much all the editors have settings to configure this — VScode and Atom, at least, that I know of; and it doesn't affect the CLI users, only the LSP.)
Anyway: here's my impassioned plea that Trouble.nvim give us feature-parity with VScode, Atom, etc LSP clients, and allow us to filter diagnostics at the client end; even if only to deal with 'misbehaving' tools!


LCM for n numbers using Javascript

Assigned Issue Number ?
#301
Language Opted ?
Javascript
Number of files added or updated ?
1 file added
Name of these files ?
Maths_And_Stats => Algebra => LCM =>  LCM.js
Checklist

[x] I've read the contribution guidelines.
[x] I've referred the correct issue number.
[x] I've fill up this entire template correctly.

Sure I will work on it.

Sure I will work on it.

I have made the changes for a dynamic input

Hey, I have made the change to bring it as dynamic input, I don't understand why my request was not merged


SHOW TAG VALUES FROM XYZ WITH KEY="ABC" empty despite values present

Steps to reproduce:

Data is directly ingested from collectd.

Show Measurements

show measurements
interface_rx

Show all series from that measurement. With tag keys filled with values

show series from interface_rx
key
interface_rx,host=OpenWrt,instance=br-lan,type=if_dropped
interface_rx,host=OpenWrt,instance=br-lan,type=if_errors
interface_rx,host=OpenWrt,instance=br-lan,type=if_octets
interface_rx,host=OpenWrt,instance=br-lan,type=if_packets
interface_rx,host=openhab,instance=eth0,type=if_dropped
interface_rx,host=openhab,instance=eth0,type=if_errors
interface_rx,host=openhab,instance=eth0,type=if_octets
interface_rx,host=openhab,instance=eth0,type=if_packets
interface_rx,host=openhab,instance=lo,type=if_dropped
interface_rx,host=openhab,instance=lo,type=if_errors
interface_rx,host=openhab,instance=lo,type=if_octets
interface_rx,host=openhab,instance=lo,type=if_packets

Show all tag keys from interface_rx

show tag keys from interface_rx
name: interface_rx
tagKey
host
instance
type

Now I would expect in the host tag to get values. But I don't.

show tag values from interface_rx with key="host"
No output!

This does not work for any value key.
Expected behavior:
Would expect the values of the tag "host" to be delivered.
Actual behavior:
Nothing is returned.
Environment info:

System info: Linux 4.19.75-v7+ armv7l
InfluxDB version: InfluxDB v1.6.4 (git: unknown unknown)
Other relevant environment details: Raspberry PI

Config:
[[collectd]]
enabled = true
database = "openhab"
typesdb = "/usr/share/collectd"

@Luftol thanks for reporting. Could you upgrade to the latest version of InfluxDB 1.7.9 and try this again?

Was a bit tricky on the raspberry, but with version v1.7.9 it works fins. Thanks!

thank you!


ci(e2e): fix missing build time kraft version

Prerequisite checklist

[x] Read the contribution guidelines regarding submitting new changes to the project;
[x] Tested your changes against relevant architectures and platforms;
[x] Ran make fmt on your commit series before opening this PR;
[x] Updated relevant documentation.

Description of changes
The fetch depth is too shallow for git describe --tags to be able to return anything, so we set the VERSION variable manually.
This could be something to pay attention to in release workflows in general. We are already addressing it, but I think the current regex is still a good safeguard against small regressions.
GitHub-Fixes: #411

Hi, does this address the test locally? (On a dirty tree?)

💯
My bad! I can see my issue was resolved from a separate issue which is now resolved locally. :)


updater.ps1: Cannot index into a null array

Reproduction step

Run updater.bat
Select either x86-64 or x86-64-v3 (same error)

Terminal output
Running script without administrator privileges
Checking Windows PowerShell version -- 5
Choose variant for 64bit builds: x86_64 or x86_64-v3 (for cpu with AVX2 support) [1=x86_64 / 2=x86_64-v3 (default=1)
[#         ]
Cannot index into a null array.

Alright I know the issue, the arch in this line https://github.com/Andarwinux/mpv-packaging/blob/ff38d8362cfdb85395b641cfb31cf31ae4667b86/mpv-root/installer/updater.ps1#L259 is supposed to be x86_64-v3 and not x86-64-v3


High cpu consumption if kafka is down

Description
I noticed that stream app consumes a lot of cpu if kafka is not accessible. It looks like confluent consumer ignores "timeout" parameter after throwing first "KafkaException" and returns 0 records immediately. That causes an infinite loop without any pauses.

I experimented a bit and it seems that upgrading "confluent-kafka-dotnet" package to the latest version changes the situation, but not very significantly. Instead of immediately raising CPU consumption we get the same effect in 3-5-10 minutes.
NuGet version: 1.1.5.
Kafka version: latest confluent kafka
How to reproduce

Start kafka
Start application
Stop kafka
Wait a bit

I believe it should have the same behavior for any topology
builder.Stream("test-input", new StringSerDes(), new StringSerDes())
                .To<StringSerDes, StringSerDes>("test-output");

Configuration:
            var streamConfig = new StreamConfig {
                ApplicationId = "someid",
                BootstrapServers = "localhost:9092",
                AutoOffsetReset = AutoOffsetReset.Earliest,
                SchemaRegistryUrl = "http://localhost:8081",
                AutoRegisterSchemas = true
            };

            streamConfig.AddConsumerConfig("allow.auto.create.topics", "true");

            streamConfig.InnerExceptionHandler = (ex) => {
                logger.Error("Exception inside Kafka Streams", ex);
                return ExceptionHandlerResponse.CONTINUE;
            };

            streamConfig.DeserializationExceptionHandler = (context, consumed, ex) => {
                logger.Error("Exception at deserialization inside Kafka Streams", ex);
                return ExceptionHandlerResponse.FAIL;
            };

            streamConfig.ProductionExceptionHandler = (delivery) => {
                logger.Error("Exception at producing inside Kafka Streams");
                return ExceptionHandlerResponse.FAIL;
            };

Checklist
Please provide the following information:

[x] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[x] A code snippet with your topology builder (ex: builder.Stream<string, string>("topic").to("an-another-topic");)
[x] Streamiz.Kafka.Net nuget version.
[x] Apache Kafka version.
[x] Client configuration.
[ ] Operating system.
[ ] Provide logs (with in debug mode (log4net and StreamConfig.Debug) as necessary in configuration).
[ ] Critical issue.

Hi @lichutin-st, I will try to reproduce in local environment and create a fix around this issue. Thanks :)


[Feature request] Optional counter

Hi, it's great if you can add an option to disable the counter. Because the counter is not reset after deleting all debugprints. Also if I insert debugprints for different variables in the same line, the order of numbers will be reversed, e.g.:
def f(x):
    a = 2*x
    print(f"DEBUG[2]: new.py:93: x={x}")
    print(f"DEBUG[1]: new.py:93: a={a}")
    return a

No big deal but it looks a bit weird I think. It would be more natural if the numbers are not shown.
Thank you for a very nice plugin 😊

@goingtosleep interesting. Thanks for your thoughts. From my perspective, the counter is simply a unique identifier that's tracked in each NeoVim session (we don't persist it between sessions) - so it's to help you correlate lines. The actual sequence in my mind wasn't that important, which is why I don't reset it (we don't track which lines are added/deleted).
Is there a particular reason other than 'neatness'? I think I'd be happy to provide a simple toggle or other way to override the message, but more sophisticated logic for the counter I think would be overly complex.

OK, I've added this, there's now a new option display_counter. It defaults to true so you'd have to explicitly turn it off:
require("debugprint").setup({ display_counter = false })

I think this addresses what you were after?

Yes @andrewferrier, thank you so much for the quick update 🤩

You're welcome :)


The GRIT integration doesn't work

hi - i think there may be an issue with the grit integration; there's no git .submodules file so the repo doesn't know about GRIT at all and running the code as is returns the error :
ModuleNotFoundError: No module named 'models.grit.image_dense_captions'

It should be work now, thanks for report the bug.


Detect if marker is going to be clustered

Is there any way to know when marker (cluster item) is going to be removed from the map and appeared in cluster?

By default, when zoom level changes on an integer boundary (1 to 2, 6 to 5, etc) a recluster will be triggered. The default clustering algorithms are deterministic but there's no cheap way to predict if an item will be grouped into a cluster or will be removed from a cluster unless a recluster is done (which you can call manually on the ClusterAlgorithm subject the a performance hit if there are thousands of items). There are 2 factors in deciding whether an item will be in a cluster or not:

The output clusters of the clustering algorithm.
The configuration of the renderer. By default if a cluster has less than 4 items, the items will be expanded out but this behavior can be changed.

What's the exact use case you are trying to achieve?

Thank you for your response. I've already changed renderer configuration of the min size to 3 items by changing the const.
The purpose of this to be done is that I need to know when a marker will be no longer visible on the map (clustered) to do some stuff. For instance, I need to hide some markers that are not items of any cluster and are added by code as simple markers (so they will never cluster automatically). Let's say they are the child of the parent (which is cluster item), and when the parent will hide, I also need to hide the child.
I found some way, but it really hits the performance, because it iterates all the clusters and markers, but the problem is, I still cannot know if the marker is clustered or not.

Please feel free to send us a Pull Request for the additional functionality you require in the library, thanks!


unable to create wallet controller (missing address manager namespace)

Hi,
Even I am using --no-macaroons it is still asking me address manager missing.
lnd --no-macaroons --noencryptwallet --datadir=~ / . lnd-ltc --configfile= ~/ . lnd / lnd-ltc.conf --logdir=~/.lnd-ltc --rpclisten=10002 --listen=1002 --litecoin.active --litecoin.testnet --litecoin.node=ltcd --ltcd.rpcuser=xxxxxxxx --ltcd.rpcpass=xxxxxxxx
2018-08-24 16:52:46.770 [WRN] LTND: open ~/.lnd/lnd-ltc.conf: no such file or directory
2018-08-24 16:52:46.772 [INF] LTND: Version 0.4.2-beta commit=625b210f441ece841c76b81377dd96e8d09aba8e
2018-08-24 16:52:46.775 [INF] LTND: Active chain: Litecoin (network=testnet)
2018-08-24 16:52:46.813 [INF] CHDB: Checking for schema update: latest_version=5, db_version=5
2018-08-24 16:52:46.884 [INF] LTND: Primary chain is set to: litecoin
2018-08-24 16:52:47.059 [INF] LTND: Initializing btcd backed fee estimator
unable to create wallet controller: missing address manager namespace
unable to create chain control: missing address manager namespace
2018-08-24 16:52:47.245 [INF] LTND: Shutdown complete
missing address manager namespace
I am running ltcd node on my machine which is fully synced and but it is taking btcd backed fee estimator.
2018-08-24 16:52:47.059 [INF] LTND: Initializing btcd backed fee estimator
And I have lnd-ltc configuration file in ~/.lnd but again it is showing no such file or directory.
2018-08-24 16:52:46.770 [WRN] LTND: open ~/.lnd/lnd-ltc.conf: no such file or directory
This is my lnd configuration file.
[Application Options]
debuglevel=trace
debughltc=true
alias=litecoin-lnd
[Litecoin]
litecoin.active=1
litecoin.testnet=true
litecoin.node=ltcd
[Ltcd]
ltcd.zmqpath=tcp://<IP_ADDRESS>:28332
Did i went wrong anywhere? How can solve this problem.
Thanks.

Which commit are you upgrading from? Or even which commit are you running currently? This is a message which would indicate that you've dropped the waddrmgr state manually.

@Roasbeef  I am using commit=625b210f441ece841c76b81377dd96e8d09aba8e.

What commit did you update from?

You can use git reflog to look at the commit you were on before you checked out master.

Also I recommend using macaroons always, as otherwise, the PC has no authentication in front of it.

Is this the commit you were asking?
~/go/src/github.com/lightningnetwork/lnd$ git reflog
515ba7a4 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: clone: from https://github.com/lightningnetwork/lnd

Actually I am trying to perform a swap between BTC-LTC. Is that easy to perform swap using lightning bitcoin and lightning litecoin on testnet initially (future time possibly on mainnet).
I am using Bitcoin node(bitcoind) and Litecoin node(ltcd) already fully synced.

Yes that's the commit, which is pretty old-ish. It looks like somehow the partial state there has been corrupted. I would use this tool on your wallet.db (in the data dir for lnd) to restore the state.

So shall I need to use newer commit to run properly.


Cannot send emails out of my Domain

Checklist

[X] I have used the search function to see if someone else has already submitted the same bug report.
[X] I will describe the problem with as much detail as possible.

App version
6.501
Where did you get the app from?
Other
Android version
13
Device model
Samsung Galaxy S22 Ultra
Steps to reproduce

Click on Compose
Enter Email address of Recepient<EMAIL_ADDRESS>Entered Subject line as "Test Email Debugging"
Entered Message Text as "Test Email Debugging, Please respond if you get this email"

I made 2 messages to same email address at 7:24PM EDT, and 7:20PM EDT.
I found<EMAIL_ADDRESS>on 2 lines in log:
Line  7689: 01-14 19:20:46.723 30842 30879 D SmtpTransport: SMTP >>> RCPT<EMAIL_ADDRESS>Line  9310: 01-14 19:24:41.321 30842 30879 D SmtpTransport: SMTP >>> RCPT<EMAIL_ADDRESS>Attached Log [file.](url)
Expected behavior
I should be able to make and send a message to email addresses out side of my domain.  I have tested with several of my customers, such as schools, city goverments, and manufactuers and all emails are never received by my customers.
I CAN send emails between my devices on my domain (southcomm.net).  I have email addresses for my wife's iPhone 11, iPad 2, Windows 10 Desktop running Thunderbird, and Linux Desktop runing Thunderbird.
Actual behavior
Since I am the Website and email admin for southcomm.net I looged into my web hosting server "arrvixe".  I log into cPanel and log into my personal email (they use a email client named Horde), and I can see the 2 emails sitting there in the sent folder of Horde with the correct time stamps.
I will attach a jpeg screenshot below:

So I assume it is getting to the arvixe server, but the email server does not like something about the email?  I have never seen anything like this before.
I am considering deleting and adding back K-9.    I have issues with the setup.   In setup I entered everything correctly, but the "NEXT" button at the bottom of the page was always greyed out.   So I have to enter wrong information intially to get the NEXT button to take it, and modify later to the orginal correct SMPT Outgoing settings.   Maybe somethng is corrupted?
FYI, this is a new Samsung Galaxy S22 Ultra, and I transfered data over from my iPhone XR.  "Hummm?"
Logs
[Log removed]

The log contains the following protocol exchange. Lines prefixed by S: is data sent by the server. Lines prefixed by C: is data sent by the K-9 Mail.
S: 220-shared101.arvixe.com ESMTP Exim 4.94.2 #2 Sat, 14 Jan 2023 18:24:40 -0600
S: 220-We do not authorize the use of this system to transport unsolicited,
S: 220 and/or bulk e-mail.
C: EHLO [<IP_ADDRESS>]
S: 250-shared101.arvixe.com Hello [redacted]
S: 250-SIZE 52428800
S: 250-8BITMIME
S: 250-PIPELINING
S: 250-PIPE_CONNECT
S: 250-AUTH PLAIN LOGIN
S: 250 HELP
C: AUTH PLAIN [redacted]
S: 235 [omitted]
C: MAIL FROM:[redacted] BODY=8BITMIME
C: RCPT TO:[redacted]
S: 250 OK
S: 250 Accepted
C: DATA
S: 354 Enter message, ending with "." on a line by itself
C: [data]
C: .
S: 250 OK id=1pGqpF-0038V7-BS
C: QUIT

The log shows that the server accepted the message for delivery without any error. Please contact your email provider to find out why the message isn't delivered to the recipient. It might be a problem on their end or a problem with the mail server of the recipient. In any case, it's not a problem with K-9 Mail. From its point of view, everything is working like it should.


cleaning up json formatting on some test files

to: @Ryxias
Changes

fixing poor formatting in some json test files

Coverage remained the same at 96.806% when pulling d3889752c907e1d3ae7f1cab0644357b3676ff2f on ryandeivert-cleanup-json into ce8ab899f0e66151ae07a104195ef4dfe320683f on master.


[n-mr1] sony: sepolicy: Unify 3.10 and 3.18 requirements

Change-Id: Id3cf10080b7fb888ca5b25f0c91911dcc37f0a93
Signed-off-by: Humberto Borba<EMAIL_ADDRESS>

Compile error when I try to build kernel:
libsepol.report_failure: neverallow on line 204 of system/sepolicy/untrusted_app.te (or line 19718 of policy.conf) violated by allow untrusted_app vfat:file { create };
libsepol.report_failure: neverallow on line 204 of system/sepolicy/untrusted_app.te (or line 19718 of policy.conf) violated by allow untrusted_app vfat:dir { create };
libsepol.check_assertions: 2 neverallow failures occurred
Error while expanding policy

thanks!
what android version ?

n-mr1 branch shinano platform
android-7.1.2_r11

weird!
https://github.com/omnirom/android_system_sepolicy/blob/android-7.1/untrusted_app.te#L189-L204
-vfat

Huh,
https://github.com/dirtyunicorns/android_system_sepolicy/blob/n7x/untrusted_app.te#L189-L204

well you have a revert
https://github.com/DirtyUnicorns/android_system_sepolicy/commit/63e1d3a00ca10eb7eef0826166a85db457f18b91

it should be fine using aosp sources.

Okay thank you for the quick response


Questions about the update of memory bank

Thanks for your great work! I have several questions about this work. The paper doesn't explain how to update the negative adversaries and I am wonder about some details of the update. I suppose that the normal loss.backward() in your code is just the same as InfoNCE loss like normal contrastive learning, and the update of negative adversaries is up to manual update of memory bank, I want to know some details about this.
Why we need logits in the update and what dose the mem_losses mean; this loss doesn't seem to be able to update automatically by pytorch. How does maximize the contrastive loss to update negative adversaries reflect in your code
Thank you very much.

Simple conclusion is that the update of the memory bank is just -contrastive_loss with another temperature. Our implementation is based on the gradient calculation as shown in our paper. This complicated implementation can accelerate the training time. If you are still confused, please follow our section 3.3 fully addressed this implementation.


Correct the name: CertificateSigningRequests

This page referenced the "CertificationSigningRequests API," but this should be "CertificateSigningRequests API" or "Certificates API."
Added a link to the documentation for CertificateSigningRequests.
Brought the capitalization of three items to parity with other pages in Kubernetes docs.

Thanks.
/lgtm
/approve


Maintaining Legacy Codebase

Hey @adesnos I wanted to see if it is okay if one of us can maintain this repo, or if I can have a fork which I can maintain it, so that if there are any bugs/issues in this legacy repo, atleast we can address that.
pip installation updates are not required, since lot of untested modules and codes are currently present in this repo. But now, it is becoming a problem for me to keep a track of all the newer issues which are coming, along with PRs being submitted in this repo and keeping a sync locally in my repo.
Let me know what works the best. If you think I should keep an unofficial fork, is it ok to put in a note in the README.md in this repo? or I can volunteer to keep a check on this repo itself?

Sorry for the delay, back on it to simplify many things, remove dependencies etc
So feel free to submit code !


GitHub Workflow Collector

GitHub Workflow Collector
License
Gitter Chat
A collector to showcase the GitHub Workflow details
https://docs.github.com/en/rest/reference/actions#list-repository-workflows/
https://docs.github.com/en/rest/reference/actions#list-workflow-runs
https://docs.github.com/en/rest/reference/actions#list-jobs-for-a-workflow-run
How are Workflows Organized?
Each GitHub repository can contain multiple workflows
There can be one or more "run" associated with each workflow
There can be one or more "job" associated with each run
There can be one or more "step" within each job
Technical Description
The Classes and their description
WorkflowController: Exposes APIs for UI to get the Component Data
WorkflowCollectorTask : As with the framework , implementing Collector Task to regularly collect the workflow details and feed into the MongoDb
WorkflowServiceImpl: To populate the componentData model and send back to UI
Workflow*Repository: Provides CRUD operations to elements in the MongoDb
APIs Supporting Workflow Collector
https://api.github.com/repos/prash897/hygieia-workflow-github-collector/actions/workflows
https://api.github.com/repos/prash897/hygieia-workflow-github-collector/actions/workflows/2056361/runs
https://api.github.com/repos/prash897/hygieia-workflow-github-collector/actions/runs/215712255/jobs

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


[FLOC-2086] Draft for adding NodeSnapshot in BlockDeviceDeployer.

This design impacts all deployers, including those that are very different in needs and structure (application, peer-to-peer storage), so I'm not sure it's worth proceeding with as is. I'm going to try to implement some of Jean-Paul's suggestions from #1492 and see how that goes.


Support for go modules

I took some inspiration based on the @jonjohnsonjr PoC google/go-containerregistry/pull/329
And take it futher using the new https://godoc.org/golang.org/x/tools/go/packages package to work with both modules and normal go projects.
I'm not yet satisfied how the codes look but from my first tests it seems to being working. Will try to implement tests to this, don't know how to actually test this.

@jonjohnsonjr could you please do an initial review?

I may have broken the kodata test. Guess I still have some work to do.  Having some trouble to discover the absolute path for a given package.

@jonjohnsonjr I've cleaned up the code and it's working for both modules and non modules projects. It still missing some test, I can't figure out how to do it.
Maybe create another "ko test" command but with modules and force the export GO111MODULE=on ? I still don't think that will actually test correctly this.
Maybe even create a go module project on the /tmp?
I would love some opinions on this.

I ended up using the go list command to find out the absolute path, that worked just fine.

I think by default packages.Load dispatches to go list under the hood. Is there a way to call packages.Load to do what you're doing by shelling out to go list? Not a huge deal, would just be a bit nicer.

It still missing some test, I can't figure out how to do it.

Which test and what's the issue?

I think by default packages.Load dispatches to go list under the hood. Is there a way to call packages.Load to do what you're doing by shelling out to go list? Not a huge deal, would just be a bit nicer.

I guess packages.Load could do it, but is it really necessary?
There is two points I can see for this:

packages.Load maybe an unnecessary abstract on top of go list for this use case.
on the other hand, it might be safer to use it since any breaking changes to go list is going to handled by packages.Load

I actually prefer to use go list direct because I feel that it's simpler but if you want to go on the other path I'm totally down with it too.

Which test and what's the issue?

I feel that current tests doesn't assure that ko actually works with modules.

I actually prefer to use go list direct because I feel that it's simpler

That seems fine since we already shell out to go build. Maybe just add a TODO to use packages instead if we find that using go list directly isn't reliable.

I feel that current tests doesn't assure that ko actually works with modules.

Ah, got it. Creating a module inside a ioutil.TempDir seems reasonable to me.

@jonjohnsonjr I've added some tests for it. I had to add an extra abstraction to set the working directory of the build process, so I can fake that I'm running ko from the go module project that is on the ioutil.Tempdir.
I have duplicated some test code just to validate the idea. If you feel like this is enough i'll refactor to be easier to add more test later.

@paivagustavo any chance of picking this back up?

Hi @jonjohnsonjr I totally forgot about this. I'll try to finish finish this week :)

Just replying here to say that I'll finish this tomorrow :)

I have done a wrong push :sob:  and so this PR was automatically closed. Please redirect to #50


Re-introduce VERSION in @turnkey/http

Summary & Motivation
This re-introduces the changes from #186 and #187 after they were reverted in #190.
I'm very, very disappointed in Changesets, a tool we're using for releases. npm itself has plenty of lifecycle hooks to handle custom scripts pre and post version (see this). But these lifecycle hooks aren't called by changeset version! Wut. People are complaining about this...

https://github.com/pnpm/pnpm/issues/2911
https://github.com/changesets/changesets/issues/1166
https://github.com/changesets/changesets/issues/1145

...but no responses from the maintainers.
I tried instrumenting preversion, prepublish, version, etc...nothing seems to work because changeset doesn't call any of these. In the end I settled for a custom "version" script. This has the advantage to be explicit but it's one more script to call during releases. The problem: what if we forget to call it when we publish new versions? For this I've got a CI check which should catch any oversight.
How I Tested These Changes

Ran version script locally to make sure it works
Broke things on purpose with this commit to trigger the CI check

Did you add a changeset?
Yes! ✅

Nice - we can include running the pnpm version command in release instructions

Yep! That's my next PR once this one is merged! 🙏


julaug20 mags: Hutton and Boore local magnitude estimation is supposed to use hypocentral distance

since julaug20 SAC files didn't have DIST SAC header (due to station headers not being written), the magnitudes are systematically off a by a bit
this was because the work around i used was to calculate the epicentral distance, but i neglected to consider the depth of the event

so.. the SAC DIST is actually epicentral distance....

which means that all the previous magnitudes were off...

now that I know that the dist calculation is correct, does using RTR and bp from 1 to 45 before the transfer, change the magnitudes?


Sink or Cow in a jar combined with a full kitchen causes a visual bug

https://imgur.com/a/MWHXJnI
As mentioned in a title, this appeared when looking at a block at a certain angle.
It happened in Enigmatica 2 Normal Mode. I will update when I tried this with only Cooking for Blockheads installed.
Removing both the cow in a jar and sink fixed the issue for me.

It seems to be an issue with the modpack. I cant reproduce it with only Cooking for Blockheads installed.


Settings-Password-Admin-App - Sprint 1

Description:

Build the Screen using the style guide.
Integrate Screen with the Backend

@Honeyloveet kindly assign this to me. Thank you


fix(index): display code example correctly

This commit fixes the displaying of the „name“ template variable (see
screenshot below) in the code example on the front page.
https://goo.gl/qcLf5X

Thanks! Merged as 45d136e


Understanding num of GPUs and the images per batch during training

Hi,
I am a noob when it comes to multi-processing and all. Wanted to ask- what does it mean when we set the number of threads to 4, and use TRAIN.IMS_PER_BATCH = 4? Is it equivalent to having a mini-batch size of 1? Or would it be 4? I did run my experiments with a single GPU and TRAIN.IMS_PER_BATCH = 1; it gave really worse performance.

Hi,
I am a noob when it comes to multi-processing and all. Wanted to ask- what does it mean when we set the number of threads to 4, and use TRAIN.IMS_PER_BATCH = 4? Is it equivalent to having a mini-batch size of 1? Or would it be 4? I did run my experiments with a single GPU and TRAIN.IMS_PER_BATCH = 1; it gave really worse performance.

Me too, when I try to use single_GPU, the final eval-results are quite bad.

Hi,
I am a noob when it comes to multi-processing and all. Wanted to ask- what does it mean when we set the number of threads to 4, and use TRAIN.IMS_PER_BATCH = 4? Is it equivalent to having a mini-batch size of 1? Or would it be 4? I did run my experiments with a single GPU and TRAIN.IMS_PER_BATCH = 1; it gave really worse performance.

Try the method here:https://github.com/bowenc0221/panoptic-deeplab/issues/34#issuecomment-670323465

TRAIN.IMS_PER_BATCH is the batchsize independent on how many GPUs you use, check this https://github.com/bowenc0221/panoptic-deeplab/blob/5b3dd8c127f4de75c2f1bbe380bd656fa3cdd941/segmentation/data/build.py#L108


Make this repo’s Community Profile meet the Community Profile Checklist

Description
Make this repo’s Community Profile meet the Community Profile Checklist. Adopting these standards helps people use and contribute to the project more effectively.

Fixed with #316, #317, #318.


Move to CommonMark

Our Markdown converter uses old non-strict Markdown implementation. We need to use CommonMark instead since it's more predictable and flexible.
http://commonmark.org/

Currently, there's no CommonMark implementation in Python that supports code highlighting. So move it to next milestone.


collect file extensions seen in CAPE sample imports

https://github.com/mandiant/capa/blob/b8b55f4e19a0da8d08266c67e4bcc1b82f17245e/capa/features/extractors/helpers.py#L57-L59

❯ jq ".static.pe.imports[].dll" mnt/public_full_reports/00* | tr "[:upper:]" "[:lower:]" | sed -e "s/^.*\(\.[^.]*\)\"/\1/g" | sort | uniq -c | sort -nr
   1313 .dll
     28 .drv
      1 .ocx

I propose to remove this in an upcoming PR to address #1815.

Although, should we keep the DLL name for imports? We'll always have these.

Are we fine leaving it with .dll and .drv?

can this be closed?


Fix quickstart and nouislider

Codecov Report

Merging #103 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #103   +/-   ##
=======================================
  Coverage   65.29%   65.29%
=======================================
  Files          13       13
  Lines         680      680
=======================================
  Hits          444      444
  Misses        236      236

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6d610b5...83dab9e. Read the comment docs.


encounter bug when using Derby to train/evaluate ML model

When I ran experiment with baselines, I found that the programs stop working when they run on Derby project. Here is the error message that I encountered:
Traceback (most recent call last):
  File "approach.py", line 45, in <module>
    approach()
  File "approach.py", line 21, in approach
    data = load_project(path=data_path, project_name=project_name)
  File "/home/oathaha/Oat/promise-challenge/approaches/baseline_all/utils.py", line 23, in load_project
    df =  pd.read_csv(path+project_name+'.csv.gz')
  File "/home/oathaha/Oat/promise-challenge/approaches/baseline_all/venv/lib/python3.8/site-packages/pandas/io/parsers.py", line 610, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/home/oathaha/Oat/promise-challenge/approaches/baseline_all/venv/lib/python3.8/site-packages/pandas/io/parsers.py", line 468, in _read
    return parser.read(nrows)
  File "/home/oathaha/Oat/promise-challenge/approaches/baseline_all/venv/lib/python3.8/site-packages/pandas/io/parsers.py", line 1057, in read
    index, columns, col_dict = self._engine.read(nrows)
  File "/home/oathaha/Oat/promise-challenge/approaches/baseline_all/venv/lib/python3.8/site-packages/pandas/io/parsers.py", line 2061, in read
    data = self._reader.read(nrows)
  File "pandas/_libs/parsers.pyx", line 756, in pandas._libs.parsers.TextReader.read
  File "pandas/_libs/parsers.pyx", line 771, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas/_libs/parsers.pyx", line 827, in pandas._libs.parsers.TextReader._read_rows
  File "pandas/_libs/parsers.pyx", line 814, in pandas._libs.parsers.TextReader._tokenize_rows
  File "pandas/_libs/parsers.pyx", line 1943, in pandas._libs.parsers.raise_parser_error
  File "/opt/conda/lib/python3.8/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/opt/conda/lib/python3.8/gzip.py", line 498, in read
    raise EOFError("Compressed file ended before the "
EOFError: Compressed file ended before the end-of-stream marker was reached

I have no idea about how to solve this. Could you please fix this problem?

Maybe the file got corrupted. I have updated the repository, can you try again?

I tried using the new derby dataset. I am not sure if I can run it because the process was killed when training is done on this project.
I use 32-core cpu and 64 GB memory to train model so I am not sure if the dataset is too large to train model.

Which baseline? The random forest with data from all projects requires over 75 GB memory on my machine. It still works with less memory, but only if you have enough virtual memory (swap). The other baselines should run fine with less memory.

After I looked for the reason why I cannot run the program, I found that I have less than 75 GB memory and the swap memory is quite small (2GB). So I came up with the new idea to load data.
Instead of loading all data in a dictionary and loop through it, I think the code should load dataset for particular project. Here is my code in baseline_rf_all/approach.py .
for project in list_all_projects(path=data_path):
      print(project)

      data = load_project(data_path, project)
      projects = {}
      projects[project] = data # prepare data like this so it can be used with prepare_within_project_data() function

I think this code is similar to baseline_rf_wp/approach.py so I suggest that the code for loading data in baseline_rf_wf/approach.py should be used in baseline_rf_all/approach.py .

The difference is intentional and cannot be avoided:

baseline_rf_all trains a model using the data from all projects.
baseline_rf_wp trains a model using only old data from the project for which defects are predicted.

Switching the loading code is more or less the same as switching from using all data to using within-project data. The approach using all data cannot work with less memory, because the data is just so large.
Please note that you do not have to be able to run all baselines on your machines to participate. Our baseline rf_all is not very efficient. Here are some things you can do to work with less memory:

Build a within project model based on the rf_wp template
Build a mixed cross project model with a data selection strategy to find a subset of instances or based on a subset of features, so you do not require as much memory.

Thank you for your answer. However, I think you should provide the result of baselines just in case someone wants to evaluate the result with baselines but he/she cannot run the baseline on his/her own machine.


Squire not loaded to window context in karma test

outro.js has code like below
if ( top !== win ) {
        win.editor = new Squire( doc );
        if ( win.onEditorLoad ) {
            win.onEditorLoad( win.editor );
            win.onEditorLoad = null;
        }
    } else {
        win.Squire = Squire;
    }

In karma test environment alway top !== win
so i can't get Squire in my test case
I need test object that uses squire
is there is way to test it?
thank!

Can you not either redefine var top = window; somewhere before Squire loads or do var module = {}, exports = {}; and then get Squire from module.exports?

I think karma runner make iframe per test so that seperate each test(just guess)
and i think there is no way redefine top value.
I currently use modified squire code for karma runner which is removed if(top !== win)

I have an issue related to this.  I have a site that uses squire. My site is sometimes loaded in an iframe (for marketing crap). Squire eats the entire content of my body and replaces it with a <br/> which is not a nice thing to do ;)

redefining top turns out to be impossible. No error is thrown, but it appears that top is not writable. Defining module and exports isn't a good solution either unless you are ready for all your other code to suddenly start using those. I made a PR that solves this problem, though not in a pretty way: https://github.com/neilj/Squire/pull/105

thanks neij!


Shift CI from travis to github actions

Issue: BOM-3004
Description:
Dropped Travis in favor of GitHub Actions

This repo isn't under development and is soon going to be deprecated so this PR isn't needed.


deal with whitelisted audit crates

We have some crates issuing warnings by cargo-audit that we have whitelisted. It would be better if we could solve these.

Re: net2 dependency, see https://github.com/tokio-rs/mio/pull/1330 (essentially this means we want an upgrade of our tokio & mio versions)


fix(wallet-service-test): Added pubkey test

:tada: This PR is included in version 2.15.0 :tada:
Your semantic-release bot :package::rocket:


italic doesn't work

Nevermind. Refer to this I was using a combination of terminal + font that doesn't support italics.


How to write Backward when  I  write custom layers? Is not Mxnet  Auto-Differentiation?

I am new to mxnet  and I need to custom loss function in Mxnet. I search the google and find that I need to write new operatros,both forward and backward. how to write backward function? what to read and learn?
by the way,  When I custom loss function in keras ,the only thing I need to do is write the loss function, and pass it to train function. why do I need to write backrward in Mxnet, is not  it  Auto-Differentiation?
any help is appereciate.

@yuantangliang You need to write backward logic manually for custom layers. Backward pass is automatic only if you are able to build the loss function using basic MXNet symbols (http://mxnet.readthedocs.io/en/latest/packages/python/symbol.html).

Thanks you


Change "admin" and "user" roles to be more obscure

So people can't just change their role to admin and get access to admin panel (even though they can't do anything as the backend validates before triggering, it's still not something we want to have open for people who know how to do this)

Will be done  in a late PR

Make an envio


ImportError: cannot import name 'rgb_to_srgb' from 'lib.torch_pbr' (unknown location)

I got this error when I run training. And also could you please tell me file location for dataset.

Hi, may I know how you solved this issue?

ok, already solved. I just manually downloaded the torch_pbr project and placed it unfer the lib folder.


Get diff of commits

This is a feature request: it would be very handy to be able to query the files touched per commit. Maybe adding on that the ability to get either the old and the new blob or a diff of them.

This would enable a whole new class of applications, but implementation needs to be designed carefully.

This is actually a very important feature for basically any demo where we analyze what an individual developer wrote.
What lines did they write? How many lines per language?

Do we want this @ajnavarro?

yes, but we didn't agree on how to do it. We should keep this open to keep it in mind.


Exclude the scripts directory from the installation

Fixes https://github.com/Lightning-AI/lit-gpt/issues/558
Fixes https://github.com/EleutherAI/lm-evaluation-harness/issues/901
Can be tested with
$ virtualenv venv
$ source venv/bin/activate
$ ls venv/lib/python3.10/site-packages | grep scripts
$ pip install pip install https://github.com/carmocca/lm-evaluation-harness/archive/refs/heads/patch-1.zip --no-deps
$ ls venv/lib/python3.10/site-packages | grep scripts
scripts

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Thanks for the PR!


Train metrics/train/github_LanguageCrossEntropy: nan

During training stage of prunning, Train metrics/train/github_LanguageCrossEntropy is nan, is that normal?
[batch=189/3200]:
Train time/batch: 188
Train time/sample: 6016
Train time/batch_in_epoch: 188
Train time/sample_in_epoch: 6016
Train time/token: 24641536
Train time/token_in_epoch: 24641536
Train metrics/train/cc_weight: 0.6176
Train metrics/train/github_weight: 0.0408
Train metrics/train/book_weight: 0.0441
Train metrics/train/stackexchange_weight: 0.0168
Train metrics/train/wiki_weight: 0.0861
Train metrics/train/arxiv_weight: 0.0189
Train metrics/train/c4-rp_weight: 0.1757
Train memory/current_allocated_mem: 14.6140
Train memory/current_active_mem: 14.6140
Train memory/current_inactive_mem: 1.9258
Train memory/current_reserved_mem: 43.4220
Train memory/peak_allocated_mem: 28.0710
Train memory/peak_active_mem: 28.0710
Train memory/peak_inactive_mem: 11.7290
Train memory/peak_reserved_mem: 43.4220
Train memory/alloc_retries: 0
Train metrics/train/expected_head_sparsity: 0.0132
Train metrics/train/target_head_sparsity: 0.1102
Train metrics/train/expected_intermediate_sparsity: 0.0057
Train metrics/train/target_intermediate_sparsity: 0.1093
Train metrics/train/expected_layer_sparsity: 0.0039
Train metrics/train/target_layer_sparsity: 0.0000
Train metrics/train/expected_hidden_sparsity: 0.1882
Train metrics/train/target_hidden_sparsity: 0.1102
Train metrics/train/expected_sparsity: 0.1981
Train metrics/train/target_sparsity: 0.1786
Train trainer/device_train_microbatch_size: 4
Train loss/train/total: 3.9353
Train loss/train/ce_loss: 2.3241
Train loss/train/lag_loss: 1.6112
Train metrics/train/LanguageCrossEntropy: 2.3241
Train metrics/train/Perplexity: 10.2176
Train metrics/train/cc_LanguageCrossEntropy: 2.2752
Train metrics/train/cc_count: 3991
Train metrics/train/github_LanguageCrossEntropy: nan
Train metrics/train/github_count: 276
Train metrics/train/book_LanguageCrossEntropy: nan

Hi! When the weight of a domain is too low, it's possible that at the current batch the data in that domain is not selected. So it's normal.

Got it, thanks!


Denali tooltip style selector easily collides with other tooltip libraries

Many tooltip libraries have the word tooltip in their class names (ex: ember-tooltip-base). Denali tooltip styles look for any class name with the word tooltip in it and easily conflicts with other styles.
One way to work around the issue is to change the selector from [class*=tooltip] to .has-tooltip.

Fixed in v2.2.0


[for testing] URLSessionHTTPClient test branch

Issue #

Description of changes

New/existing dependencies impact assessment, if applicable

Conventional Commits

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

No longer needed for testing.  Closing & deleting the branch.


Updated StackExchange.Redis to 1.2.5

See https://github.com/MichaCo/CacheManager/issues/179

Next version will require 1.2.6 now, thanks for the efforts though ;)


D200: autofix does not work if there are initial/end double quotes in the dockstring

Example:
def download_url():
    """
    User-friendly url for further downloading: "/attachments/1234567/"
    """
    ...

def foo():
    """
    "first" second
    """

Ruff output:
$ ruff --fix --select D200 ruff_errors/D200.py

ruff_errors/D200.py:2:5: D200 One-line docstring should fit on one line
ruff_errors/D200.py:9:5: D200 One-line docstring should fit on one line
Found 2 errors.

I believe these are intentional. The latter is maybe fixable? But the former can't be fixed without escaping, this introduces a syntax error:
def download_url():
    """User-friendly url for further downloading: "/attachments/1234567/""""

Yes, it's probably best to leave it up to users to fix manually, rather than trying to change the type of quotes inside, as I originally thought.


Bug: Running next dev with the -p flag other than 3000 fails

Description
The next dev script has the option to run the dev server using another port than the default one (3000).  Running next dev -p 3005 will cause fuse to fail
Versions

TypeScript Version: 4.9.5
Fuse version: 0.8.0

Hey,
You can pass in the port to the plugin, I'll get onto documenting that! Maybe next even exposes that to the plugin, would be a neat addition!
Am I understanding correctly that it's just the codegen not working?

Going to close this as we haven't heard back, the docs PR was meant to close this either way. As always, if anything pops up feel free to create an issue 🙌


warn('%s: %r' % (err, data), ID3Warning): Windows

I've having trouble pinpointing the cause of this, but I am receiving large amounts of garbled text (it overwhelms my buffer of 10000 rows) and then warn('%s: %r' % (err, data), ID3Warning)
I'm on Windows running from source. Even without verbose logging, I receive garbled output to stdout.

I maxed out my buffer to 32768 rows. Here's a gist of the beginning of one of those blocks with -vv output: https://gist.github.com/dajo/6f2e6d7c48c15fb17cbf

I've added this warning in the last mutagen release. Previously files generating the warning failed to load instead. I guess I'll remove them with the next release.
Can you figure out which mp3 file generates them and send me one<EMAIL_ADDRESS>

Turned threading off to better isolate, and I did track one file down. Mp3Tag indicates that it's a !BAD ID3v2. Sending it your way.

Finally, I should say that forcing the rewrite of the tags with MP3Tag or a similar tool clears up the issue.

OK! Thanks, both of you. I'll close this as a Mutagen thing.

Fixed in https://bitbucket.org/lazka/mutagen/issue/223

A new release is up on the cheese shop..

Thanks, @lazka! Awesome as always.


Proposal for simplification of terms

Right now simplification is done through the unit command (retS, retW, etc). One problem with this approach is that in a code like
A <- retS B;
f A

where f : B -> C, the typechecker complains (reasonably) that A is not B. However, A is the normalized version of B, so actually is B. This problem introduces several inconveniences when trying to deal with normalized terms. My proposal is the following:
Create a definition isomorphic to the identity:
Definition simpl {A} (x : A) := x.

In the interpreter, the behavior is the same, except when it encounters a let-in. In that case, it figures out if the head of the definition in the let-in is a simpl, and then reduces the argument before expanding it. The example above can be rewritten as
let A := simpl B in
f A

And now it will first simplify B and then proceed to whatever f A is. This is implemented in the branch simpl if you want to check it out.
So what do you think? (Question for @yurug and/or any other participant!)

I cannot see a problem with that approach and I guess it generalizes to all coq functions simplifying/normalizing terms, right?

Of course.

I merged the two branches.


Getting error while running Powershell on Linux

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I am experiencing an issue while running Powershell 7.0 on my Rhel Docker image.
I installed every required resources like,

https://github.com/powershell/powershell
From this link I have downloaded powershell-7.2.1-rhel.x.x86_64.rpm. The main Powershell core rpm package bundle for linux.
This seams to work, as I am able to run Pwsh on my RHEL image.
Installed https://github.com/Microsoft/omi/releases/tag/v1.6.0 for connecting to my Windows Exchange server for running powershell on remote server from RHEL to Windowes.
3)https://github.com/PowerShell/psl-omi-provider

but when I run the New-PSSession in the PWSH, I get this error,
PS /> New-PSSession
Failed to create iconv, 22
New-PSSession:
PS />
I searched on internet got none of the solution working.
Please if you have any information so that I would be able to run this on my RHEL server.
Expected behavior
To create a PSSession

Actual behavior
Gets error,
Failed to create iconv, 22

Error details
Failed to create iconv, 22

Environment data
PS /> $psversiontable

Name                           Value
----                           -----
PSVersion                      7.2.1
PSEdition                      Core
GitCommitId                    7.2.1
OS                             Linux 4.4.115-boot2docker #1 SMP Thu Feb 8 17:36:45 UTC 2018
Platform                       Unix
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals
No response

from linux ,use omi ,to win, i have similar question.  https://github.com/PowerShell/PowerShell/discussions/16623
mark，the problem may not be resolved soon

This error comes from psl-omi-provider at https://github.com/PowerShell/psl-omi-provider/blob/59ab42f3bc769b1aa31c1181e3a97ea3e1b1c96e/src/BufferManipulation.c#L35-L39. It would indicate there's a problem calling iconv_open and the error code it's returning is 22 meaning invalid argument. Looking further back this function is called with UTF-16LE and UTF-8. It seems like iconv_open does not support either of these character sets or maybe the combination of both for your setup.
You can replicate this same call in pwsh with
Add-Type -Namespace Native -Name Methods -MemberDefinition @'
[DllImport("libc", SetLastError = true)]
private static extern IntPtr iconv_open(string tocode, string fromcode);

public static IntPtr IconvOpen(string to, string from)
{
    IntPtr res = iconv_open(to, from);
    if (res == new IntPtr(-1))
    {
        var ex = new System.ComponentModel.Win32Exception();

        throw new Exception(String.Format("iconv_open error {0} - {1}", ex.NativeErrorCode, ex.Message));
    }

    return res;
}
'@

[Native.Methods]::IconvOpen("UTF-16LE", "UTF-8")
[Native.Methods]::IconvOpen("UTF-8", "UTF-16LE2")

If either of those 2 calls to iconv_open fail it will display the errorno and message, in your case it will most likely be 22 - Invalid argument. I cannot replicate this at all even on a blank centos:8 container (both return valid pointers) so not sure what's actually happening on your host. One thing to check is the contents of /usr/lib64/gconv to see what it contains. I can see UNICODE.so, UTF-16.so in that folder. Unfortunately at this point I don't fully understand the behaviour of iconv but the problem for this particular issue lies there and that's where you should investigate further.
Just as a side note, the fact that this function is being reached is usually an indication that the underlying MI library failed for some reason and it is trying to convert the error code from UTF-16-LE encoded bytes to UTF-8 for consumption. There are numerous issues with MI on Linux and the provided one from pwsh is mostly a best effort attempt but not really that great. You could try my fork https://github.com/jborean93/omi through the PSWSMan module. This is not supported by MS in any way and is mostly my attempt to solve the various problems MI has on Linux in relation to PowerShell remoting. It also doesn't really change psl-omi-provider very much so if the same error is occurring with my fork you will most like still see this error.

@WG-Remoting
New-PSSession is no longer supported on non-Windows platforms, because OMI is no longer supported (#15310).  We hope that the community will pick up support for this using the new Custom Remote Connections support (#16923).


How to add option element in select field.

Hi Miguel,
Stupid question, how do you add option elements in the select field of the forms?
I looked and I noticed that it seems to use the same traits as the forms package from grapesjs plugin, but I still don't get it.
I noticed that when dropping the select element it adds a default option.
<select class="form-control" id="i54ef"><option value="">- Select option -</option><option value="1">Option 1</option></select>

Like this, but when I click on the select element in the canvas, I don't see the options appear in the options trait.

Thanks!

That's weird, I have this set in the component settings:

What version of GrapesJs are you using? Mine is 0.14.52

I tried installing the forms plugin standalone in hopes to make it work, as the code required for the traits is in that package, but it didn't work no matter how I tested it.
I had to copy this code
    const trm = editor.TraitManager;
    trm.addType('select-options', {
      events:{
        'keyup': 'onChange',
      },

      onValueChange: function () {
        var optionsStr = this.model.get('value').trim();
        var options = optionsStr.split('\n');
        var optComps = [];

        for (var i = 0; i < options.length; i++) {
          var optionStr = options[i];
          var option = optionStr.split('::');
          var opt = {
            tagName: 'option',
            attributes: {}
          };
          if(option[1]) {
            opt.content = option[1];
            opt.attributes.value = option[0];
          } else {
            opt.content = option[0];
            opt.attributes.value = option[0];
          }
          optComps.push(opt);
        }

        var comps = this.target.get('components');
        comps.reset(optComps);
        this.target.view.render();
      },

      getInputEl: function() {
        if (!this.$input) {
          var md = this.model;
          var trg = this.target;
          var name = md.get('name');
          var optionsStr = '';
          var opts = {placeholder: ''};
          var options = trg.get('components');

          for (var i = 0; i < options.length; i++) {
            var option = options.models[i];
            var optAttr = option.get('attributes');
            var optValue = optAttr.value || '';
            optionsStr += `${optValue}::${option.get('content')}\n`;
          }

          this.$input = document.createElement('textarea');
          this.$input.value = optionsStr;
        }
        return this.$input;
      },
    });

And put it after my editor instance in order for the options to appear now and to be able to change them.
Before doing this, when changing it, it had a weird effect, it put a ""="" attribute or something similar in the select tag.
No idea why in the preset plugin it would work when you install it, maybe because of the way it loads things?
I didn't want to install it because I am trying to only install the packages I use.
A quick note, are you able to click on the select to see the dropdown options in preview mode?
I am not able to see them at all except of I look at the code.
Thanks for your help!

Let me look into this code, I will try to integrate it so that this package doesn't have to rely on the
gjs-preset-webpage plugin.
Regarding the click event in the select, this is not working, I did notice this before but didn't look into it because the main GrapesJS demo doesn't do this either. Maybe I can get this to work somehow.

Alright, so I integrated the code into the plugin, additionally you can pass the optionsStringSeparator in the config if you want to use another separator instead of the '::'
Default separator:
::- Select option -
1::Option 1

Custom separator:
|- Select option -
1|Option 1

Awesome, thanks a bunch, I will test it out.
I also found it not intuitive on how to add the options, I would've thought they would think to add a + button to add an option with the name and value fields, instead of it being a textarea like that.
But it works for now which is great!

I noticed another issue with the select options, when I put this as the values:
::-
internet::Internet
billboard::Billboard
bathroom ad:Bathroom Ad::bathroom ad:Bathroom Ad
newspaper::Newspaper
youtube::Youtube

It becomes this in the options:
<select id="ialp5" name="heartAboutUs" required="" class="form-control">
  <option value="">-</option>
  <option value="internet">Internet</option>
  <option value="billboard">Billboard</option>
  <option value="bathroom ad:Bathroom Ad">bathroom ad:Bathroom Ad</option>
  <option value="newspaper">Newspaper</option>
  <option value="youtube">Youtube</option>
</select>

It doesn't seem to like spaces in the values.

Yeah, I also thought that, maybe I can try to do something about the  select's options in the traits.


update brlc periphery v1

forgot to merge brlc first

the test is not passing, opened issue #1121


Avoid memory copy when parsing log

Which issues of this PR fixes:

This PR try to fix #199
Change log:

Avoid memory copy when parsing log

LGTM


No colors for prefixes when using prefixColors: "auto" via concurrent API

concurrently: 8.2.1
node: v16.17.0
I use the following script to run concurrent processes:
const fs = require('fs')
const path = require('path')
const concurrently = require('concurrently')

const workspacePaths = JSON.parse(fs.readFileSync('./package.json')).workspaces

const { result } = concurrently(
  workspacePaths.map((wp) => ({
    command: 'npm:dev',
    name: path.basename(wp),
    cwd: path.resolve(__dirname, '../', wp),
  })),
  {
    prefix: 'name',
    killOthers: ['failure', 'success'],
    restartTries: 0,
    prefixColors: 'auto',
  }
)

result.then(
  () => {
    console.log('Success')
  },
  () => {
    console.log('Failed')
  }
)

However, when I run in the terminal, it doesn't show any colors in the prefixes:

yet other colors are displayed. What could be the problem?
Thanks in advance.

Check out API's prefixColors. It says
Docs
prefixColors: a list of colors as supported by chalk or auto for an automatically picked color.
Definition
prefixColors?: string[]

So change it to
prefixColors: ['auto'],

I think @SeiwonPark is right! (Thanks!)
Therefore I'm closing this issue for now, but let me know if that doesn't work either and we'll reopen it.

Thanks @SeiwonPark
However, an update to the docs was made:

prefixColors: a list of colors or a string as supported by chalk and additional style auto for an automatically picked color.

And I support it. Now it sounds much better.


[bugfix] Update Spinner styled definition

This was the cause for the "stuck" spinner component (Also outside of the LoadingButton)

@fernandofleury What's up with the unrelated snapshot updates and changed yarn lock file? :)
Could you please separate them or document them in the PR description?

@connor-baer I'm gonna remove them actually.


Borg files

I was trying to execute the Multi-objective optimization on Unix system using the instructions provided in the README.md file. It mentions about placing "borg" files in a directory. However, I am confused where to get these files. Can you provide an example, or point me about how to create these files.

Hello,
I hope you are well. Borg is a multi-objective evolutionary algorithm. I used it for generating the set of nondominated solutions to my multi-objective problem. It has a free non-commercial and academic license that you can get here. After you download just place the source files in that folder and all the referencing should be handled for you!


fix: always use specified processors to recreate animated image representation

When loading an animated image from the cache, Kingfisher will recreate it using the cached data. To avoid loading failures due to unsupported format with the default processor, we must ensure that the specified processor is always used.

That makes sense! Thank you for catching it.


Lots of README cleanup

Mac is the hardware name for Apple products running OS X, which the proper OS name. Darwin, the core OS underneath OS X, is an Apple-derived Mach-kernel plus various BSD components, so I changed it to OS X where appropriate throughout.
Consistency with parenthesis spacing in English prose (this) instead of ( that ).
Fixed broken link markdown to author's blog posts.
Changed instructions for OS X install via homebrew for unison pinned to 2.40, which is the (presently unpinned) version in the helper image of gansbrest/fs-base.
Cleaned up sample .hodorfile with yaml markdown formatting.
A little bit of grammar changes and fixes, although I tried to preserve the humor and ESL gentle mistakes, which are harmless, and, in my opinion, bring personality to this project, rather than making it read like all the other dull tech documentation.
Added an Unsupported section

Also, perhaps you might consider updating the project's GitHub description as well from "Boot2Docker VM ( Mac )" to just "Docker on OS X" to be more correct.

Ha, thanks a lot. It seem like there are some confilcts with master, could you pull master to your fork and resolve it, so it could be cleanly merged in.
As for description - we def can rename it into somth more meangingfull. "Docker on OS X" prob will not cut it, because Hodor is supported by both OS X and Linux. The goal is to provide consitent dev flow on Mac and Linux (no Windows yet), where if Linux is detected, it skips all Unison/VM/portMapping cruft and start using native volume mounting. I almost dailiy use Hodor for developent on Linux and I know people who use it for mixed Linux/OS X teams. I suggest we come up with somth that will reflect "process" crossplatform orientation. Thoughts?

:+1: I totally support seamless usage of hodor across OS X and Linux... Just wanted to clarify that "Mac" is like calling Linux "Dell" or "HP", even though technically OS X is only supposed to run on Apple Mac computers.
Anyhoo, here's the merge fix.

Great :))

Thank you! I updated description a bit to remove Mac :) I wonder what changed in new Unison version?


Cranelift: fix debuginfo wrt cold blocks and non-monotonic layout.

The debuginfo analyses are written with the assumption that the order of
instructions in the VCode is the order of instructions in the final
machine ocde. This was previously a strong invariant, until we
introduced support for cold blocks. Cold blocks are implemented by
reordering during emission, because the VCode ordering has other
requirements related to lowering (respecting def-use dependencies in the
reverse pass), so it is much simpler to reorder instructions at the last
moment. Unfortunately, this causes the breakage we now see.
This commit fixes the issue by skipping all cold instructions when
emitting value-label ranges (which are translated into debuginfo). This
means that variables defined in cold blocks will not have DWARF
metadata. But cold blocks are usually compiler-inserted slowpaths, not
user code, so this is probably OK. Debuginfo is always best-effort, so
in any case this does not violate any correctness constraints.
Discovered while debugging a test failure in #3733.

This commit fixes the issue by skipping all cold instructions when
emitting value-label ranges (which are translated into debuginfo). This
means that variables defined in cold blocks will not have DWARF
metadata. But cold blocks are usually compiler-inserted slowpaths, not
user code, so this is probably OK.

That is quite unfortunate. For cg_clif cold blocks will be user specified (using #[cold]). In addition it may make sense to use something like https://arxiv.org/abs/2112.14679 to automatically infer cold blocks.

Indeed, it's not ideal, but the debug code right now is a bit of a mess that is strongly oriented around ranges of instruction offsets and in-order traversals of offsets, and it's hard to justify the effort needed to fix that (probably a few weeks) against all of the other things that need doing and against the existing "certain inputs will cause panics" bug. Cold blocks didn't exist at all until ~a month ago so IMHO providing some support for them, with a baseline of "correct and non-panic'ing compilation" but some feature deficiencies, is better than not making this fix.
Anyone willing to take a deeper dive into the debug code (maybe even replace the analysis with something faster) is of course more than welcome! Always happy to brainstorm better approaches/designs here.


im-insert not valid html

https://validator.w3.org/
Error: Attribute im-insert not allowed on element input at this point.
Simply change the attribute im-insert to data-im-insert to fix this issue

@knoxcard ,
Fixed in the 5.x branch.
Thx!


Include a list of all "curator curated publications" with data approved (or submitted)

follow on from
https://github.com/pombase/website/issues/1132
I need to look in  the "curator curated" list for
old papers from the 80's and 90's , not curated close to the time of publication, to detect increases in citation for post curated vs pre curated (known as sleeping beauties if the effect is very strong). However, I don't have an easy way of looking this up- In Canto we have no session dates on papers we curated.
......This would be the only to find some nice examples for talks and  to convince somebody to do the analysis
We discussed having a list of "non-community curated papers" once so this might be on the list somewhere?

Would the "non-community curated papers" include only Canto curated papers?

We discussed having a list of "non-community curated papers" once so this might be on the list
somewhere?

I've just added that because it was mostly done:
https://www.pombase.org/reference_list/admin
It might not be very useful at the moment because it includes publications with no annotations.

It might not be very useful at the moment because it includes publications with no annotations.

I think that's OK, it means we looked but did not find any annotations, so effectively are curated...

I think that's OK. A curator needed to read them to check there were no annotations. I did a lot like this recently as I was re-triaging the sequence feature papers. They did not fit any of the sub-categories, but I wanted to ensure that we knew they were "completed" for curation purposes. For most, they were sequence features which I curated in the days of yore....Centromeres and tRNAs etc. So there is curation, just not of the available types, because there were no functional experiments. So there was a big batch recently, but this isn't really normal.
Could  we link to the curatorcurated list from
https://www.pombase.org/reference_list/community
and possibly both of these pages should be under a menu...(Genome status)
Community curated publications
PomBase cutated publications

Would the "non-community curated papers" include only Canto curated papers?

I think thats will be OK, because any paper with curation will be pushed through Canto eventually.

Could we link to the curator curated list from ...

No problem.  What should we use as the link text?  Is "Curator curated publications" sounds a bit odd.

and possibly both of these pages should be under a menu...(Genome status)

That makes sense.  Let me know what the menu items should say.

Community curated publications
??? curated publications

True!
PomBase curated publications?

PomBase curated publications?

I'll do that for now.  It's easy to change.

I've added links on the community and PomBase pages to get from one to the other.  I'm not sure the position of the link is OK.  I've also added menu items for both pages.
It will be visible after the next nightly load.

I've added links on the community and PomBase pages to get from one to the other. I'm not sure the
position of the link is OK. I've also added menu items for both pages.

All done and live on the main site.  Should we close this issue?

yup


Docs only: Replace Unicode subscript i (resp. j, l, m, n, s) with _i (resp. _j, _l, _m, _n, _s)

Since some users (e.g. macOS users with only the default system fonts) might not be able to render the subscripts.

Codecov Report

Merging #179 (76f07bb) into master (ab7a56b) will decrease coverage by 0.82%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #179      +/-   ##
==========================================
- Coverage   94.67%   93.84%   -0.83%
==========================================
  Files          32       32
  Lines        4541     4224     -317
==========================================
- Hits         4299     3964     -335
- Misses        242      260      +18

Impacted Files
Coverage Δ

src/reconstruct_loopset.jl
92.91% <0.00%> (-3.92%)
:arrow_down:

src/broadcast.jl
84.50% <0.00%> (-2.40%)
:arrow_down:

src/determinestrategy.jl
98.30% <0.00%> (-1.54%)
:arrow_down:

src/mapreduce.jl
85.71% <0.00%> (-1.13%)
:arrow_down:

src/graphs.jl
87.25% <0.00%> (-1.06%)
:arrow_down:

src/lower_constant.jl
84.21% <0.00%> (-0.94%)
:arrow_down:

src/vectorizationbase_compat/contract_pass.jl
81.03% <0.00%> (-0.79%)
:arrow_down:

src/costs.jl
85.00% <0.00%> (-0.72%)
:arrow_down:

src/lower_store.jl
92.53% <0.00%> (-0.47%)
:arrow_down:

src/filter.jl
88.88% <0.00%> (-0.40%)
:arrow_down:

... and 19 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab7a56b...76f07bb. Read the comment docs.

I'll be honest, I'm not sure if this is actually an improvement. As @MasonProtter pointed out in a similar PR in Gaius, it makes the code harder to read.

The original motivation for this is that I went to https://chriselrod.github.io/LoopVectorization.jl/latest/examples/matrix_multiplication/#Matrix-Multiplication on macOS, and I couldn't render the subscript m and subscript n in any of my three browsers (Firefox, Chrome, Safari). So the kernel was kind of hard to read because I couldn't tell what the subscripts were.
I've now installed a bunch more fonts on my computer, and now the subscripts render fine in both Firefox and Chrome.
The concern is this: if a user with only the default macOS system fonts goes to the above URL, will they still have troubles?
And more importantly, is it worth making the code harder to read to account for this edge case?

It honestly might be better to just instruct users on how to install an appropriate font.

I'm normally err on the side of accessibility over visual pizazz., but okay.
Is there a good resource somewhere instructing people on how to install fonts? If so, it'd be nice to then provide a link somewhere.
I was just waiting for the tests to finish before merging.

I'm normally err on the side of accessibility over visual pizazz., but okay.
Is there a good resource somewhere instructing people on how to install fonts? If so, it'd be nice to then provide a link somewhere.
I was just waiting for the tests to finish before merging.

It's entirely up to you!

Is there a good resource somewhere instructing people on how to install fonts? If so, it'd be nice to then provide a link somewhere.

Oh boy.... for me, it took a whole Slack thread with three people guiding me through it 😂
I wouldn't describe installing fonts on macOS as a particularly intuitive process.

I feel like writing Cij is better than C_i_j if we're going to remove the unicode.

I also think Cij looks a little better than C_i_j, but my preference isn't that strong so I don't really mind merging this anyway.
Re getting rid of the unicode:
I also texted a link to the docs to a friend with a Mac.
He said it looked fine except that the spacing was off and send a screen shot, clearly showing the unicode wasn't rendering. I do think it's better to get rid of it.

I feel like writing Cij is better than C_i_j if we're going to remove the unicode.

Sounds good.
It's easiest for me to first revert this PR (https://github.com/chriselrod/LoopVectorization.jl/pull/186), and then do the replacements to change the unicode to Cij, etc.

I feel like writing Cij is better than C_i_j if we're going to remove the unicode.

Sounds good.
It's easiest for me to first revert this PR (https://github.com/chriselrod/LoopVectorization.jl/pull/186), and then do the replacements to change the unicode to Cij, etc.

https://github.com/chriselrod/LoopVectorization.jl/pull/188

https://github.com/chriselrod/LoopVectorization.jl/pull/188


Adding BBC News API

BBC News API is an API for serving BBC News in JSON. It has a wide range of 29 various languages.
API Repository: https://github.com/Sayad-Uddin-Tahsin/BBC-News-API
API Endpoint: https://bbc-api.vercel.app
API Documentation: https://bbc-api.vercel.app/doc

Take this down
basically the creators of this are abusing  their power and arent treating people who help contribute and maintain the project so unlike this unstar this star ny fork of this that doesnt support this one
#3104

Hi @Sayad-Uddin-Tahsin
Thanks for opening this issue ;)
We have some problems with Public APIs, so we won't be able to review/add this improvement right now.
Read this issue for more information, please: https://github.com/public-apis/public-apis/issues/3104