🫱🏻🫲🏽 Merge with MegaLinter ?

Hi dear Super-Linter maintainers & contributors
I know this topic has already been discussed years ago, but I think the current situation deserves a new discussion :)
MegaLinter was originally a hard-fork of Super-Linter, after had been declined a huge PR that rewrote everything from bash to python, for reasons I totally understand for that time.
But some time later, here is the situation I think I observe:

MegaLinter is still growing ( 5 millions docker pulls , 1400 stars, used by 2700+ repos on Github only, almost 100 contributors , used by OSS repos of Microsoft, AWS & Azure) , and has many active maintainers ( @Kurt-von-Laven , @bdovaz ,  @echoix & myself ) and great contributors like @DariuszPorowski & @ThomasSanson .

Super-Linter seems stagnating, and the fact that it is not on github organization anymore won't help, and it seems original creators are less active

Super-Linter stats

MegaLinter stats

To summarize, we are maintaining similar products, that can handle the same configuration, and python makes that capabilities of MegaLinter are way ahead of Super-Linter capabilities. -> https://megalinter.io/beta/mega-linter-vs-super-linter/
Why not joining forces and at the same time save us some time by sharing the effort to provide open-source free linters aggregator to the developer community ?
MegaLinter is now backed by OX Security, but I can personnally assure that it will always be open-source and free for everyone, we share common values with OX Security Founders, there is 0% risk that someday someone gets crazy and decides to make it closed-source or not free anymore.
So, let's work together on making MegaLinter even greater that it already is thanks to the original work on SuperLinter ? :)
Best regards
Nicolas Vuillamy (please feel free to directly contact me if you'd like an informal discussion :))

I won't speak on behalf of anyone but myself, but in a that capacity I will say: All else being the same, not duplicating work sounds like a win.
I'm open to having the discussion if @zkoppert is.

@Hanse00 many thanks for this first feedback :)
I thought a little about how it could eventually go... it would generate work on both sides to organize such migration, but also save some work on SL side because ML already have many features that are requested in SL issues:

Custom scripts https://github.com/super-linter/super-linter/issues/4525 -> PRE_COMMANDS , POST_COMMANDS
Upate dotnet version https://github.com/super-linter/super-linter/issues/4522 -> ML is using dotnet v6
Probably more ^^

We also are working on Multi-arch for a while... but it's not published yet, maybe with your help it would go faster ^^
On ML side, a few linters existing in SL are missing and should be added to ensure compatibility:

clang-format
google-java-format
textlint

@zkoppert any thoughts ? 🙂

Yes, sorry for the delays. I've been away from my computer for vacation. I see the value in joining forces to maintain a similar tool. I think we could further discuss what a merge of the projects would look like: governance structure, time commitments, resources, etc.
As well, I'm curious what role ox security plays. Is it funding resources, time, or something else?
@ferrarimarco any thoughts?

Hi folks!
This is probably going to add questions, rather than answers. :)
I don't know what this implies on the project side, that's probably for GitHub folks to answer (@zkoppert probably).
On the technical side, this initiative looks, to me, a deprecation of super-linter in favor of mega-linter. Not having inspected the mega-linter code base and tooling, I don't know. if this is a step forward or backward, or both :)

@zkoppert > You're so right to have enjoyed your vacations without your computer ;)
About what it would like, everything is open to discussion, but as @ferrarimarco has guessed, I would imagine a deprecation of super-linter with a migration to MegaLinter when all the following conditions are met:

ML contain the few missing delta features (clang-format, textlint, google-java-format)
Aliasing in ML some SL config variables
Ascending compatibility between super-linter & MegaLinter would have been tested, so SL users would not suffer from the migration and would just have a simple script to run to update their pipelines and scripts

About governance, I'm kind of a benevolent dictator with 3 maintainers (@Kurt-von-Laven ,@bdovaz, @echoix ) , but I (think I'm) easy to work with, you can discuss in private with them to have their opinion somewhere I don't read 🤣
I would gladly be open to add SL active maintainers as ML maintainers (if my co-maintainers agree to that, because as said before I'm benevolent ^^ )
About time commitment and resources:

We are an artistic open-source project so there is no commitement for anyone working on it: When you have time to work on it, you can work on it, but when you have a heavy charge at your job or prefer to go in vacations, nobody will ever blame you ^^
The main resource is MegaLinter community: maintainers, contributors, and users who provide precious feedbacks !

About OX Security:

I have an engagement with the 2 founders to maintain MegaLinter, especially on Security linters, because they are used in OX Security products
MegaLinter is an OX Security branded product, but if one of the parties (me or OX) decide to stop the collaboration, MegaLinter ownership will come back to me (transfer from oxsecurity to nvuillam or any github org I'm owner of). Such thing is written in an official contract.
I share common values about open-source with Neatsun & Lior, co-founders of OX Security, the collaboration with them is excellent since its beginning in early 2022, the trust is mutual and I have full independance about MegaLinter maintenance & roadmap
OX Security has design & marketing departments, and they gladly provide their services when MegaLinter need it :)

Did I answer to your questions with theses informations ? :)

I guess my first high level question (Primarily directed at @zkoppert) would be: Are we empowered to make this decision, or is there someone else that should be a part of this conversation?
SuperLinter is a GitHub project, the license and code of conduct make that rather clear, even though the repo was moved out of the org. So are we in a position of authority to decide what happens to the project?
The code is MIT licensed of course, so I'm not suggesting there's a problem with MegaLinter being around. But I wonder if there are any company politics involved in us, on behalf of the project, making any kind of "official" statement around MegaLinter succeeding this project.
I'm asking because I get the impression GitHub might be a company that's fairly relaxed about this stuff, but I've also worked at places where the corporate legal council would want to get involved about something like this, so it would be good to feel out what our level of agency here is.

From a GitHub level, I did check and we are empowered to make this decision.
Appreciate the other responses and input here as well. I'm continuing to think about this and trying to consider what is good for the community as well as consider how I personally feel about this. Feel free to continue to discuss here but I will probably take the next few weeks to keep thinking about my opinion on this.

@zkoppert there is no rush ^^
If I can add more pros to why it would be great to share the workload, these last few days we had to:

Upgrade ktlint test cases because their new version finds more violations
Downgrade kubescape because of a bug there
Handle upgrade of tflint

And current urgent backlog contains elements like:

Fix R lintr because its newest version seems to not work anymore
create a "formatters only" flavor

Such tasks must probably also be done with SuperLinter...
So in a bright future we could share those tasks instead of handling them in both repositories ^^
I see you are located in Oregon, it seems far but maybe not so far away from San Francisco, where I'll be for dreamforce all next week, if you even want to discuss in person :)

Highlights points that we would like to note as differences between the projects collected from discussion and comments above:

Megalinter is licensed as AGPL3 while the super-linter is MIT
Shared workload if we all were only managing 1 project instead of separately
Megalinter is in Python and super-linter is in Shell/Bash
Super linter receives additional features (Advanced security and Actions minutes) from GitHub, while OX-Security sponsors the Megalinter
Megalinter is maintained by Nicolas as a BDFL model with other support maintainers while super linter is run as a community of equal maintainers
Super linter is not financially sponsored, and Megalinter sponsorship is tied to Nicolas's github sponsors account
The transition plan would be a deprecation of super-linter in favor of mega-linter, while porting forward some super linter features that megalinter might be missing
Mega linter has higher repository and container usage stats compared to the megalinter when looking at recent periods of time

With that summary I would like to ask super-linter community members and maintainers to weigh in (especially those that haven't already) with their thoughts and opinions by commenting on this issue until October 15th, 2023. At that time we will consider all the community and maintainer thoughts and work to come to a decision to merge or stay separate.
cc/ Maintainers: @admiralawkbar @lindluni @zkoppert @nemchik @Hanse00 @GaboFDC @ferrarimarco
cc/ Top Contributors: @assignUser @cesar-rodriguez @massongit

Minor correction:

Mega linter has higher repository and container usage stats compared to the megalinter super-linter when looking at recent periods of time

Thanks for this summary @zkoppert !
Of course if any of these bullet points could be an issue for migrating SL to ML, we can discuss about it :)

Any opinions here ? :)
Since the latest post, we both released a new versions of MegaLinter and SuperLinter

https://github.com/oxsecurity/megalinter/releases/tag/v7.4.0
https://github.com/super-linter/super-linter/releases/tag/v5.3.1

We coud have shared this workload :)
SuperLinter
🐛 Bug Fixes

Add exception for type-linting @zkoppert (https://github.com/super-linter/super-linter/pull/4470)
🧰 Maintenance
Bump react-router-dom from 6.15.0 to 6.16.0 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4670)
Bump react-intl from 6.4.4 to 6.4.7 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4673)
Add Babel preset for React package @fdanielsen (https://github.com/super-linter/super-linter/pull/4653)
Bump configargparse from 1.5.3 to 1.7 in /dependencies/python https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4659)
Bump docker/build-push-action from 4 to 5 https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4663)
Bump eslint from 8.48.0 to 8.49.0 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4668)
Bump stylelint-scss from 5.1.0 to 5.2.1 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4669)
Bump eslint-plugin-jest from 27.2.3 to 27.4.0 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4671)
Bump renovate from 36.92.0 to 36.96.8 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4672)
Bump stylelint-config-standard-scss from 9.0.0 to 11.0.0 in /dependencies https://github.com/dependabot (https://github.com/super-linter/super-linter/pull/4615)
Remove notice from april availability issue @zkoppert (https://github.com/super-linter/super-linter/pull/4654)
Put dependency updates in the maintenance section by default @zkoppert (https://github.com/super-linter/super-linter/pull/4655)

MegaLinter
What's Changed

Core

Upgrade base image to to alpine 3.18 by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2903
Upgrade python to 3.11.5 by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2930

Media

Maximize your code consistency with Megalinter by Tor Ivar Asbølmo on codewithme.cloud
MegaLinter in Azure DevOps by James Cook

Fixes

Fix IGNORE_GITIGNORED_FILES not working anymore , by @iisisrael in https://github.com/oxsecurity/megalinter/pull/2967
Fix v7 issue when using MEGALINTER_FILES_TO_LINT (thanks @pfiaux !) by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2917
Fix Ignore symlink files when VALIDATE_ALL_CODEBASE is false by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2964
Fix rstcheck options & install by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2899
Undowngrade Kubescape  by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2901

Doc

Secretlint logo - reduce size to 150 and remove background by @itayox in https://github.com/oxsecurity/megalinter/pull/2880
Replace https://megalinter.io/flavors with https://megalinter.io/latest/flavors to avoid lychee 404 error by @ashokm in https://github.com/oxsecurity/megalinter/pull/2910
docs: config-cli-lint-mode.md: Grammar tweaks by @rasa in https://github.com/oxsecurity/megalinter/pull/2953

CI

Reformatted config files to not fail common linters (closes #2890) by @andrewvaughan in https://github.com/oxsecurity/megalinter/pull/2891
Workflow job name changed from build to megalinter to prevent conflicts with other workflows
Add support for master branch in TEMPLATES/mega-linter.yml by @rasa in https://github.com/oxsecurity/megalinter/pull/2888
Upgrade editorconfig-checker & setup-node by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2898

Deprecations

Deprecate SCSS LINT as not maintained anymore (https://github.com/sds/scss-lint#notice-consider-other-tools-before-adopting-scss-lint) by @nvuillam in https://github.com/oxsecurity/megalinter/pull/2902

Linter versions upgrades

actionlint from 1.6.25 to 1.6.26
ansible-lint from 6.17.2 to 6.20.0
bicep_linter from 0.20.4 to 0.21.1
black from 23.7.0 to 23.9.1
cfn-lint from 0.79.6 to 0.80.2
checkov from 2.3.360 to 2.4.10
checkstyle from 10.12.2 to 10.12.3
chktex from 1.7.6 to 1.7.8
clippy from 0.1.71 to 0.1.72
clj-kondo from 2023.07.13 to 2023.09.07
cspell from 6.31.3 to 7.3.6
devskim from 1.0.18 to 1.0.22
djlint from 1.32.1 to 1.34.0
dotnet-format from 6.0.413 to 6.0.414
editorconfig-checker from 2.7.0 to 2.7.1
eslint from 8.46.0 to 8.49.0
git_diff from 2.38.5 to 2.40.1
gitleaks from 8.17.0 to 8.18.0
golangci-lint from 1.54.0 to 1.54.2
helm from 3.10.2 to 3.11.3
jscpd from 3.5.9 to 3.5.10
kics from 1.7.5 to 1.7.8
ktlint from 0.50.0 to 1.0.0
kubescape from 2.3.6 to 2.9.0
markdownlint from 0.35.0 to 0.36.0
mypy from 1.4.1 to 1.5.1
phpstan from 1.10.28 to 1.10.35
powershell from 7.3.6 to 7.3.7
powershell_formatter from 7.3.6 to 7.3.7
prettier from 3.0.1 to 3.0.3
protolint from 0.45.0 to 0.46.0
psalm from Psalm.5.14.1@ to Psalm.5.15.0@
puppet-lint from 4.0.1 to 4.2.0
pyright from 1.1.321 to 1.1.327
revive from 1.3.2 to 1.3.4
rstcheck from 6.1.2 to 6.2.0
rstfmt from 0.0.13 to 0.0.14
rubocop from 1.56.0 to 1.56.3
ruff from 0.0.284 to 0.0.290
scalafix from 0.11.0 to 0.11.1
semgrep from 1.34.1 to 1.41.0
sfdx-scanner-apex from 3.15.0 to 3.16.0
sfdx-scanner-aura from 3.15.0 to 3.16.0
sfdx-scanner-lwc from 3.15.0 to 3.16.0
snakemake from 7.32.3 to 7.32.4
spectral from 6.10.1 to 6.11.0
sqlfluff from 2.2.1 to 2.3.2
stylelint from 15.10.2 to 15.10.3
syft from 0.86.1 to 0.91.0
terraform-fmt from 1.5.4 to 1.5.7
terragrunt from 0.48.6 to 0.51.3
terrascan from 1.18.2 to 1.18.3
tflint from 0.47.0 to 0.48.0
trivy-sbom from 0.44.0 to 0.45.1
trivy from 0.44.0 to 0.45.1
trufflehog from 3.47.0 to 3.56.1
vale from 2.28.1 to 2.29.0
xmllint from 21004 to 21104

Full Changelog: https://github.com/oxsecurity/megalinter/compare/v7.3.0...v7.4.0

Megalinter is licensed as AGPL3 while the super-linter is MIT

I am not well versed in the differences between the licenses, but I do feel strongly that the source should be open for those who choose to use any linter can choose to review and know what is accessing their code. This seems to be a non issue in relation to SL/ML.

Shared workload if we all were only managing 1 project instead of separately

Seems like a win for all involved.

Megalinter is in Python and super-linter is in Shell/Bash

There's a few considerations here. I would venture to say that it's more likely to find contributors well versed in python than in bash. To be specific, by "well versed" I mean "knows the quirks and how to work with and around them". I also think that by the nature of python being capable of executing shell commands you should in theory not lose any capabilities (if you really wanted to sledgehammer it you could just have python execute shell commands to run all of the super linter bash scripts, but please don't). That being said, I think the language a project is written and maintained in is entirely up to the maintainers/contributors and their comfort with the chosen language. I have not been active in contributing to super-linter since prior to the org move, so I can't put much weight in the "what should we use going forward" discussion other than my opinions stated in this point, and that personally I like bash and know it very well, and I don't know python, but if everyone else maintaining and contributing wants to use python then I believe it's a good choice for the project.

Super linter receives additional features (Advanced security and Actions minutes) from GitHub, while OX-Security sponsors the Megalinter

I would imagine if a merge is to go through and GitHub (company) maintains an interest in an all-in-one linting tool existing and wants to back ML that at least some of the benefits afforded to SL could be offered to ML, but that'll be up to GH staff to decide.

Megalinter is maintained by Nicolas as a BDFL model with other support maintainers while super linter is run as a community of equal maintainers

In my view, maintainers and contributors participate for a number of reasons, often including "I wanted project to do/have X so I added it" and sometimes "I like being able to put my name on an accomplishment that helped others" and various other reasons. ML readme notes the history with SL, and is said to have been a fork of SL, but does not have a fork relationship to SL that I can see. That's not an issue, just an observation. SL seemingly started as an internal GH project that garnered attention from contributors, some of which (myself included) were given access to assist in maintaining the repository. Neither org has publicly visible members, so for an end user wondering who actually controls/governs either project, the best bet is to look into the repository itself for documentation such as code owners, contributing guidelines, the readme, and anything that those may link to for additional information on the topic, or make educated guesses based on contributors/commits/merges. Some end users may look at SL as "the official/supported/recommended option" due to it's tied to GH (company). ML could gain that recognition/trust depending on how the merge is handled, or the situation could be viewed as many view Google killing off projects. I'm kind of rambling at this point, just thoughts for others to consider.

Super linter is not financially sponsored, and Megalinter sponsorship is tied to Nicolas's github sponsors account

No skin in this, but I would envision ongoing active maintainers to have an interest in either shared finances related to the project, or disbanding any funding in the name of keeping the project as neutral as possible.

The transition plan would be a deprecation of super-linter in favor of mega-linter, while porting forward some super linter features that megalinter might be missing

This makes the most sense, but it would be good to spell out exactly what deprecation of SL will mean, specifically for end users. Will SL still be usable at all (and just not updated)? Will users be notified without having to check the repo here? etc.

Mega linter has higher repository and container usage stats compared to the super linter when looking at recent periods of time

This definitely shows that end users recognize ML as a viable option, and my above mentioned comment about "the official/supported/recommended option" likely has less weight.

In conclusion, I think if the active maintainers of both projects either agree that it's best to merge and continue working, or if the SL team has less interest (or time) for maintaining SL since ML is available, it makes sense to deprecate SL in favor of ML, barring any other conflicts/concerns.

ML readme notes the history with SL, and is said to have been a fork of SL, but does not have a fork relationship to SL that I can see.

It was more like a hard fork, and going back to the commits of the 4.2.4 version, https://github.com/oxsecurity/megalinter/releases/tag/4.2.4 (commit list https://github.com/oxsecurity/megalinter/commits/9478e8b788a8e2d90d8beb66aba728bd3426fea7), at commit https://github.com/oxsecurity/megalinter/commit/93f66de38a1de8f45f01b42fba03f054ca5ce99a files of super-linter were imported.
It was a project started back during the pandemic.
I couldn't go any further back than that, to see if somewhere else the history was kept or not.

One other consideration on the license - AGPL is a copy left license. Nearly every business with a license policy will prevent copy left licenses from being used in their software stack - I have done so many times in my career. This is why I never use Megalinter in my businesses. People also usually use software that they can learn or use professionally, so switching to a copy left license could be extremely detrimental to super linter. I highly recommend megalinter consider switching to a more permissive license to not alienate businesses (and therefore professionals) that may want to use it. You may even see an uptick in the quality of contributors that join the project.

@nemchik

I am not well versed in the differences between the licenses, but I do feel strongly that the source should be open for those who choose to use any linter can choose to review and know what is accessing their code. This seems to be a non issue in relation to SL/ML.

Basically, it's to avoid an "Amazon style" coup (someone monetizing a SAAS service of MegaLinter)
More info here -> https://megalinter.io/latest/license-explanations/

I like bash and know it very well, and I don't know python

I learned python while creating MegaLinter, I can assure you that the language is easier than bash, and we use it mainly for scripting :)

I would imagine if a merge is to go through and GitHub (company) maintains an interest in an all-in-one linting tool existing and wants to back ML that at least some of the benefits afforded to SL could be offered to ML, but that'll be up to GH staff to decide.

Technically, Microsoft is already indirectly backing MegaLinter, as Microsoft backs OX Security who backs me to insure the maintenance of MegaLinter :)

https://www.businessinsider.com/ox-security-used-this-pitch-to-win-the-backing-of-microsofts-m12-2022-9?r=US&IR=T
https://www.crunchbase.com/funding_round/ox-security-seed--1e047100

Megalinter is maintained by Nicolas as a BDFL model with other support maintainers while super linter is run as a community of equal maintainers

Technically I must remain leader as I am contractually bound with OX Security to insure the maintenance. But I have the full trust of OX leaders to handle MegaLinter as I see fit, and my vision is the same from the beginning: Provide the best free and open-source tool possible to the developer community, and that won't change :)
Today, I'm the mostly the only one to validate pull requests, because my great co-maintainers @Kurt-von-Laven @echoix @bdovaz are too shy to merge themselves (despite they know they are totally allowed to do so ^^), so I'd be more than happy to see other maintainers merge Pull Requests after validating between each other, that would save me hours of work :)

No skin in this, but I would envision ongoing active maintainers to have an interest in either shared finances related to the project, or disbanding any funding in the name of keeping the project as neutral as possible.

As I'm contractually bound with OX, I receive some payment for maintenance, based on the number of stars :) But compared to the hours of work spent on working since the beginning, it would be 1$ by hour of work 🤣
I would be totally open to discuss with ox about sharing external sponsoring between all maintainers (for the record, we had been nominated to Microsoft FOSS  and it was decided that if we won the amount would have been equally shared between maintainers. Sadly, we lost 😢

This makes the most sense, but it would be good to spell out exactly what deprecation of SL will mean, specifically for end users. Will SL still be usable at all (and just not updated)? Will users be notified without having to check the repo here? etc.

I think we could have a transition phase while both SL & ML would remain usable and maintained, we would ask for key users to switch to ML and if the feedback is successful, we could make official the migration from SL to ML after a long period of deprecation notice, to not mess too much with existing SL users
@andrewvaughan
AGPLV3 prevents redistributing MegaLinter ( or publishing an online service) without showing all the sources.
That does not prevent at all to use MegaLinter in internal CI , and companies to not redistribute their internal pipelines :)
More info here -> https://megalinter.io/latest/license-explanations/

Seems like these answers preclude a true merger due to OX basically wanting to preclude SAAS competition and leadership changes. Maybe if they can be talked into changing that stance?

AGPLV3 prevents redistributing MegaLinter ( or publishing an online service) without showing all the sources.
That does not prevent at all to use MegaLinter in internal CI , and companies to not redistribute their internal pipelines :)
More info here -> megalinter.io/latest/license-explanations

I get the intent, but most enterprises have broad-stroke OSS license requirements precluding copy-left, regardless of whether it's part of the product of DevOps - I've personally never seen a differentiation in policies allowing for AGPL in non-product integrations (such as deployment pipelines). This is just my experience.
I guess it's a question as to what's more important - preventing commercialization of the product, or creating as broad a user-base as possible. Personally, I always go for the latter, as, if a company like Amazon decides to productionalize an OSS system, they build a dependency and naturally must support (and usually fund) it. The license doesn't allow them to simply create ownership of a fork of it. That said, this is up to each developer to decide... and I do think this is a point where Megalinter and Superlinter seemingly differ significantly.

@andrewvaughan when I created MegaLinter, I was light years away to imagine that it could be used by big companies and organizations ^^ (not exhaustive list below)

I already had discussions with head of ITs of big companies that were afraid to use MegaLinter internally because of AGPL, and it's to be very clear about that they can that I added a page in ML documentation
There are indeed pros and cons for MIT/Apache vs AGPL... and it already happened that a company I never heard about was selling it SAAS service partially based on MegaLinter...
Maybe if they asked nicely (or better: by fundind ML) I would have been ok with it, but with all the hours that I spend on MegaLinter, I think it's not fair to redistribute MegaLinter without funding, that's why I prefer to remain in AGPL for now (and it does not seem to bother so many users ^^ )
If SL maintainers decide that copyleft is a no-go, we can of course have a discussion about it :)

I already had discussions with head of ITs of big companies that were afraid to use MegaLinter internally because of AGPL, and it's to be very clear about that they can that I added a page in ML documentation

Totally get it! Only working from my experience - most companies I have worked for that have had a policy was very, very broad stroked. If the open source was copy-left, you couldn't use it. That's why you might not see some non-tech companies using AGPL or other types of software (this is from my Fortune-100 company days).
Generally the guidance was from legal - "we don't even want to test those waters - if there's an alternative, you can use that, otherwise, we'll pay you to replicate it."

Licenses are always an interesting question. I can't say I have a clear opinion, but I will share a collection of my (perhaps contradictory? Humans are funny that way) thoughts:

I agree that it sucks to put in a bunch of work on something, only to find that someone else has managed to turn your work into their business. It's just not very "fair".
I have no expectation of being rewarded (Monetary or otherwise) for my open source work - It's entirely an altruistic enterprise that happens outside of my paid employment. Meaning that although it definitely would suck, it wouldn't particularly hurt me in any way.
I believe that it's more useful to focus on the reality in front of us, than all the hypotheticals that could one day happen.
Many clients I've worked with are fairly risk averse, they'll probably be more likely to adopt a "Copyleft bad" stance (As @andrewvaughan hinted at), rather than paying council to understand the true meaning of any given license.
Even more clients don't even seem to be aware of the licenses that come attached to the software they use... a concerning reality we don't need to solve for here 😅.

My active contributions where a while ago so I can't say much about the current state of things and will keep to more general thoughts. In principal I think a merge would make sense to unify resources etc. as explained above. :+1:
I am not a fan of the BDFL model in general and much prefer a more ASF like structure that can also be implemented outside of the ASF (see e.g. substrait). OX supporting ML in general and @nvuillam directly is great and while there are apparently contractual guarantees to keep ML independent etc. as @nvuillam  mentioned repeatedly I think actually implementing/formalizing some form of OX independent governance would be assuring to current and future contributors. There is a recent example what can happen if things have not been setup in time and now a widely used R package is kind of in limbo.
License wise I get the concerns mentioned here from both sides but don't have any hard preferences in this case.

Even more clients don't even seem to be aware of the licenses that come attached to the software they use... a concerning reality we don't need to solve for here 😅.

Something a lot of early-stage CTOs come up against in their first SOC audit. Always a fun scramble!

There is a recent example what can happen if things have not been setup in time and now a widely used https://github.com/Rdatatable/data.table/issues/5656 is kind of in limbo.

@assignUser > Can't happen here, there are 3 other maintainers than me that can merge PRs & even release new versions :)
So if I get burnt-out , hit by a bus or abducted by aliens, MegaLinter will survive anyway ;)

Hi folks! After a few internal syncs, we decided not to go for the merge. I'll close this issue to reflect the statement, but I'll not lock the conversation if people want to post here.

👋 @nvuillam Ultimately we decided to go this way each for our own personal reasons, but collectively we wanted to maintain autonomy to try whatever we like with this project and keep it going in its current form. We are wishing the megalinter well on your journey forward as well as choosing our own path for ourselves. Thanks for reaching out!

@zkoppert thank you for your response neighbour :)
If you ever change of mind, you know where to find us :)

👋 @nvuillam Ultimately we decided to go this way each for our own personal reasons, but collectively we wanted to maintain autonomy to try whatever we like with this project and keep it going in its current form. We are wishing the megalinter well on your journey forward as well as choosing our own path for ourselves. Thanks for reaching out!

@zkoppert I personally think the decision is a good one. I am glad that SL continues to exist and would like to thank you all for continuing to work on it.


Can not set LibreWolf as default browser

Bug Report
Package Name: librewolf
Current Behaviour
Clicking the 'Make Default' button in LibreWolf to set it as the default browser does nothing and does not work. It also does not show up in the modern Settings app for Windows 10/11 and does not show in Control Panel for Windows 8.1 and older.

Expected Behaviour
Clicking the 'Make Default' button should make an entry in the default apps of the modern Settings app and the Control Panel as an option and the button should set LibreWolf as the default browser.
System details
Windows version: 10 21H2
OS architecture: amd64
PowerShell version: Powershell 5 - Build 19041 - Revision 1237
Scoop configuration: Default

Using the regular installer would fix this

You have to edit the registry. See https://github.com/amreus/scoop-default-browser/blob/main/firefox-default-scoop-template.reg for reference.

Yes. This is by design. Scoop will not modify the registry to register applications as protocol handlers or type associations.
But you can select a default browser by providing full path to the application.

Btw update to 96.0.3 to get that template to work as earlier versions did not pass parameters (https://gitlab.com/librewolf-community/browser/windows/-/commit/31eb3460391ea449bccd89677226c35489051bb0)

@criticic do you know why when i open a link that it opens a whole new librewolf window and it is pretty slow instead of just opening in the current librewolf window open? here is the reg i have got:

[HKEY_CURRENT_USER\SOFTWARE\RegisteredApplications]
"LibreWolf (Scoop)"="Software\\Clients\\StartMenuInternet\\LibreWolf (Scoop)\\Capabilities"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)\shell\open\command]
""="\"C:\\Users\\he3als\\scoop\\shims\\librewolf.exe\""

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)\DefaultIcon]
""="C:\\Users\\he3als\\scoop\\apps\\LibreWolf\\current\\librewolf-portable.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)\Capabilities\FileAssociations]
".html"="ScoopLibreWolfHTM"
".htm"="ScoopLibreWolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)\Capabilities\URLAssociations]
"https"="ScoopLibreWolfHTM"
"http"="ScoopLibreWolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)\Capabilities]
"ApplicationName"="LibreWolf (Scoop)"
"ApplicationIcon"="C:\\Users\\he3als\\scoop\\apps\\LibreWolf\\current\\librewolf-portable.exe,0"
"ApplicationDescription"="LibreWolf"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\LibreWolf (Scoop)]
""="LibreWolf (Scoop)"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibreWolfHTM\shell\open\command]
""="\"C:\\Users\\he3als\\scoop\\shims\\librewolf.exe\" %1"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibreWolfHTM\Application]
; Name in Dialog
"ApplicationName"="LibreWolf (Scoop)"
"ApplicationDescription"="It's LibreWolf."
"ApplicationIcon"="C:\\Users\\he3als\\scoop\\apps\\LibreWolf\\current\\librewolf-portable.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibreWolfHTM]
""="LibreWolf (Scoop) HTML Document"```

it also opens a temporary cmd window, which is a bit annoying. how can i fix it?

Instead of librewolf-portable.exe maybe try librewolf.exe, ( it can be found in (scoop prefix librewolf) > Librewolf > librewolf.exe )

@rashil2000 wouldn't it make sense to register the apps, like it is done for vscode. Maybe a script can be added. AFAIK it doesn't require admin perms.

Check https://github.com/ScoopInstaller/Scoop/discussions/4633

maybe add a note with a link to a registry file, which they can use if they want.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\RegisteredApplications]
"Librewolf (Scoop)"="Software\\Clients\\StartMenuInternet\\Librewolf (Scoop)\\Capabilities"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell]
[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell\open\command]
@="\"C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe\" \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\DefaultIcon]
""="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities\FileAssociations]
".html"="ScoopLibrewolfHTM"
".htm"="ScoopLibrewolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities\URLAssociations]
"https"="ScoopLibrewolfHTM"
"http"="ScoopLibrewolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities]
"ApplicationName"="Librewolf (Scoop)"
"ApplicationIcon"="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"
"ApplicationDescription"="Librewolf"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)]
""="Librewolf (Scoop)"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell\open\command]
@="\"C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe\" \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\Application]
; Name in Dialog
"ApplicationName"="Librewolf (Scoop)"
"ApplicationDescription"="Librewolf - An independent fork of Firefox, with the primary goals of privacy, security and user freedom."
"ApplicationIcon"="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM]
""="Librewolf (Scoop) HTML Document"

@he3als this registry config works for me try this.

worked thanks

Can this please be re-opened?
It doesnt appear to be working currently with the latest scoop/librewolf install!
platform: Windows 20H2 (OS Build 19042.2006).

you have to change _USERNAME_
also, i would recommend winget or chocolatey for this

There really should be an option to make it the default browser this is really annoying and I have no clue on how to edit the registry or anything like that

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\RegisteredApplications]
"Librewolf (Scoop)"="Software\\Clients\\StartMenuInternet\\Librewolf (Scoop)\\Capabilities"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell]
[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\shell\open\command]
@="\"C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe\" \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\DefaultIcon]
""="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities\FileAssociations]
".html"="ScoopLibrewolfHTM"
".htm"="ScoopLibrewolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities\URLAssociations]
"https"="ScoopLibrewolfHTM"
"http"="ScoopLibrewolfHTM"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)\Capabilities]
"ApplicationName"="Librewolf (Scoop)"
"ApplicationIcon"="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"
"ApplicationDescription"="Librewolf"

[HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet\Librewolf (Scoop)]
""="Librewolf (Scoop)"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\shell\open\command]
@="\"C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe\" \"%1\""

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM\Application]
; Name in Dialog
"ApplicationName"="Librewolf (Scoop)"
"ApplicationDescription"="Librewolf - An independent fork of Firefox, with the primary goals of privacy, security and user freedom."
"ApplicationIcon"="C:\\Users\\_USERNAME_\\scoop\\apps\\librewolf\\current\\LibreWolf\\librewolf.exe,0"

[HKEY_CURRENT_USER\SOFTWARE\Classes\ScoopLibrewolfHTM]
""="Librewolf (Scoop) HTML Document"

@he3als this registry config works for me try this. (It will not use scoops persist directory, the profile is present at %appdata%/librewolf)

can confirm this works for mullvad-browser too with small path tweaking 🙇🏻♂

@he3als this registry config works for me try this. (It will not use scoops persist directory, the profile is present at %appdata%/librewolf)

Just wanted to mention that all you have to do to use the profile inside the persist directory is replacing each instance of LibreWolf\\librewolf.exe with LibreWolf-Portable.exe. Not doing that will make programs open a new unrelated browser window instead of using the one you are already using (if you are actually using the profile inside the persist directory that is).


Update Splinter registry configuration

Updates registry configuration in response to https://github.com/Cargill/splinter/pull/753

Closing in favor of #245


Retirement Planning Canonical Example V2

Possibly take it out as its own repo
Add in implementations
Clean up
#357

Don't forget to add it to the canonical examples comparison sheet

Add in metrics and displays

Remove the dummy code from the starter repo

Add type mappings
Add a reference to the repository


Move test data to separate repository

See this guide

Done in https://github.com/three-rs/three/commit/afddb1d326c733f8b6abdc0d7b4e336fb783a77d


doc(CSS): Fix several alignment and color issues

Current coverage is 100% (diff: 100%)

Merging #980 into master will not change coverage

@@           master   #980   diff @@
====================================
  Files          31     31
  Lines        2055   2055
  Methods         0      0
  Messages        0      0
  Branches      334    334
====================================
  Hits         2055   2055
  Misses          0      0
  Partials        0      0

Powered by Codecov. Last update fa1d69c...15e0c07


Visual Studio freeze after start

VSCode Version: Code 1.5.3 (5be4091987a98e3870d89d630eb87be6d9bafd27, 2016-09-22T08:50:42.185Z)
OS Version: Windows_NT ia32 10.0.14393

Steps to Reproduce:

No reaction --> Reopen and Keep Waiting
I can use top menu, but no reaction after choosing any options.

What extensions do you have installed?
I had a similar problem when I had an extension that looks for css class names in the working tree, and my working tree contained a node_modules folder with about 400 items.

@tf2manu994 -
Visual Studio runs for me only when i use RMB on VS icon (on the taskbar) and choose New Window option.
Below screen from my extension pannel:

Odd, I have the exact same extensions installed, and then some, but I don't have this problem.

@tf2manu994 - after few mintues of testing:
i deleted all files and project folders, then clone all in new folder, now it works fine O_o
😂

Going to close this off since there's no reliable repro, comment if you see if again


Make the library usable from Swift

This would probably be automatically working if there were frameworks.

Making frameworks won't help as long as enums are just C enums (e.g. OZZipFileMode). Converting them to NS_ENUM would help.

You are right, it's an oversight. I'll fix it in 1.0.1, just waiting for a few more feedbacks updating.


Marshaling Problem

With the newest version of Bitcoind or BTCD
PANIC	daemonMgr	daemonManager/daemonManager.go:135	failed to unmarshal response body:[67 108 105 101 110 116 32 115 101 110 116 32 97 110 32 72 84 84 80 32 114 101 113 117 101 115 116 32 116 111 32 97 110 32 72 84 84 80 83 32 115 101 114 118 101 114 46 10]
panic: failed to unmarshal response body:[67 108 105 101 110 116 32 115 101 110 116 32 97 110 32 72 84 84 80 32 114 101 113 117 101 115 116 32 116 111 32 97 110 32 72 84 84 80 83 32 115 101 114 118 101 114 46 10]

I do believe that this needs to be updated in order to support Stratum v2

[67 108 105 101 110 116 32 115 101 110 116 32 97 110 32 72 84 84 80 32 114 101 113 117 101 115 116 32 116 111 32 97 110 32 72 84 84 80 83 32 115 101 114 118 101 114 46 10]=>Client sent an HTTP request to an HTTPS server.=>I will add tls support for wallet daemon conn
About stratum v2, as far as I know it's a new design for mining pool. But how does the support of mining rigs or software of scrypt x11 sha256d...? Without them the no-hashrate pool is valueless.

Stratum V2 does has its advantages, from what Ive read @ Stratum Protocol.

2020-10-15T14:49:12.040Z	PANIC	main	not-only-mining-pool/main.go:44unexpected EOF
panic: unexpected EOF

2020-10-15T14:49:12.040Z	PANIC	main	not-only-mining-pool/main.go:44unexpected EOF
panic: unexpected EOF

check your config.json

Stratum V2 does has its advantages, from what Ive read @ Stratum Protocol.

Mining pool is just one part of the whole mining industry, and cannot live without any other parts' cooperating. Currently only slushpool is pushing this going ahead, its too early for keeping steps with them. And I'm just a solo open-sourcing dev, not company, so I think it's worthless to develop a stratum v2 pool at this moment.
But if that most miner/mining rigs support this, I'm glad to join.

config.json
"poolAddress": {
    "address": "2dffd149fe8682a94a5e105a377c6fc6e1bb1fc74498628f65ad89b0da88f2b7",
    "type": "script"
  },

New Error
go run main.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x247e88]

bc1qlr36tpdwctfndcdgzx5ukjkqazl5hclkurw08q should be a P2WSH or P2WPKH address (means segwit enabled).
check all supported "type" value here: https://github.com/mining-pool/not-only-mining-pool/blob/master/config/payment.go

@C0MM4ND First run was using the BTC Address hash, either way it fails with the above mentioned runtime error, I'm trying to figure out what is causing this.

I think the panic is not because of address

ok just to let you know I am currently testing this against BTCD  https://github.com/btcsuite/btcd not bitcoind because I am trying to keep the footprint on my internal server minimal, bitcoind is way to sluggish. Still getting the same error, I will test it against bitcoind on a remote server in a bit

Tested with bitcoind
go run main.go
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x6aa43a]

goroutine 1 [running]:
net/http.(*Transport).roundTrip(0x0, 0xc0000d8c00, 0x30, 0xc0000f2060, 0x7f1d28592208)
	/usr/local/go/src/net/http/transport.go:493 +0x3a
net/http.(*Transport).RoundTrip(0x0, 0xc0000d8c00, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/roundtrip.go:17 +0x35
net/http.send(0xc0000d8c00, 0x914840, 0x0, 0x0, 0x0, 0x0, 0xc0000103c8, 0x203000, 0x1, 0x0)
	/usr/local/go/src/net/http/client.go:252 +0x453
net/http.(*Client).send(0xc0000f2030, 0xc0000d8c00, 0x0, 0x0, 0x0, 0xc0000103c8, 0x0, 0x1, 0xc0000f2000)
	/usr/local/go/src/net/http/client.go:176 +0xff
net/http.(*Client).do(0xc0000f2030, 0xc0000d8c00, 0x0, 0x0, 0x0)
	/usr/local/go/src/net/http/client.go:718 +0x45f
net/http.(*Client).Do(...)
	/usr/local/go/src/net/http/client.go:586
github.com/mining-pool/not-only-mining-pool/daemonManager.(*DaemonManager).DoHttpRequest(0xc00000fb80, 0xc000032540, 0xc00002c400, 0x3d, 0x40, 0x0, 0x0, 0xc00002e600)
	/home/user/go/src/github.com/not-only-mining-pool/daemonManager/daemonManager.go:80 +0x1fb
github.com/mining-pool/not-only-mining-pool/daemonManager.(*DaemonManager).CmdAll(0xc00000fb80, 0x8a13b3, 0xb, 0xbb2db8, 0x0, 0x0, 0x20, 0xc00000fb80, 0x7f1d28591328, 0x82b9e0, ...)
	/home/user/go/src/github.com/not-only-mining-pool/daemonManager/daemonManager.go:124 +0x3cb
github.com/mining-pool/not-only-mining-pool/daemonManager.(*DaemonManager).IsAllOnline(0xc00000fb80, 0xc00000fb80)
	/home/user/go/src/github.com/not-only-mining-pool/daemonManager/daemonManager.go:41 +0x69
github.com/mining-pool/not-only-mining-pool/daemonManager.(*DaemonManager).Check(0xc00000fb80)
	/home/user/go/src/github.com/not-only-mining-pool/daemonManager/daemonManager.go:35 +0x2f
github.com/mining-pool/not-only-mining-pool/poolManager.NewPool(0xc0000ced80, 0x820540)
	/home/user/go/src/github.com/not-only-mining-pool/poolManager/pool.go:47 +0x7b
main.main()
	/home/user/go/src/github.com/not-only-mining-pool/main.go:47 +0x399
exit status 2

I cannot reproduce this panic.
btcd:
./btcd--testnet -u bitcoinrpc -P testnet
config.json
https://github.com/mining-pool/not-only-mining-pool/blob/master/config.btcd.json

Tested again with bitcoind with a fully synched node
go run main.go
{"id":779106405750227029,"method":"getpeerinfo","params":[]}
{"id":8843188983536579896,"method":"getblocktemplate","params":[{"capabilities":["coinbasetxn","workid","coinbase/append"],"rules":["segwit"]}]}
2020-10-17T13:26:22.874Z	INFO	jobMgr	New Job, diff: 1.9298087186262609936497640892589996547647692677874606379528596984945e+13
2020-10-17T13:26:22.874Z	INFO	jobMgr	New Job (Block) from block template
2020-10-17T13:26:22.874Z	WARN	api	API server listening on <IP_ADDRESS>:20000
panic: runtime error: index out of range [6] with length 6

Of course I ran this without TLS and Stratum is on the same server (for testing) and this is mainnet

Show me the location where the panic occurs please.

goroutine 1 [running]:
github.com/mining-pool/not-only-mining-pool/utils.GetReadableHashRateString(0x44214ff0ba5c7df8, 0x66, 0x7)
	/home/$user/go/src/not-only-mining-pool/utils/utils.go:412 +0x119
github.com/mining-pool/not-only-mining-pool/poolManager.(*Pool).OutputPoolInfo(0xc000164200)
	/home/$user/go/src/not-only-mining-pool/poolManager/pool.go:274 +0x296
github.com/mining-pool/not-only-mining-pool/poolManager.(*Pool).Init(0xc000164200)
	/home/$user/go/src/not-only-mining-pool/poolManager/pool.go:119 +0x181
main.main()
	/home/$user/go/src/not-only-mining-pool/main.go:48 +0x3a3
exit status 2

fixed on #eccbca28a648a1a920516f42579e0864162cf1d6

great, closing this issue as fixed. Will be creating another for main and backup bitcoind servers.


[CELEBORN-986] Use formatted log instead of string concat

What changes were proposed in this pull request?
Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?
GA

Merged to main/0.3


do not default to amd64 if GOARCH is not set

If GOARCH environment variable is not set, use the local architecture instead of amd64.
Required for ppc64le support.

/assign @ianzhang366

/lgtm


PDF will not shown as Flip Book instead of that displaying always loading image only.

PDF will not shown as Flip Book instead of that displaying always loading image only while open the index.html file

https://github.com/erayakartuna/pdf-flipbook/issues/3


Type Hinting for public APIs

This is definitely a low priority, but it would helpful to have type hinting for the public APIs available.

Are type hints backwards compatible with Python 2.7 and 3.4?
Unfortunately, I don't think this library will have them for quite a while if not.

It's possible... (using comments) but might not be worth it.
https://mypy.readthedocs.io/en/latest/python2.html
Feel free to close if not applicable.

Thank you for raising this issue but I am going to punt on type hinting until I am comfortable moving the library to support only Python 3.5+


broken Image cached while network fail

RN 0.22
Network image cached even network fail,
it always render blank even network resume normal.

Same issue I also faced but realized that in build version not an issue anymore.

I still facing this problem in my released app..
Sent from Outlook Mobile
On Tue, Apr 12, 2016 at 2:28 AM -0700, "prtkkmrsngh"<EMAIL_ADDRESS>wrote:
Same issue I also faced but realized that in build version not an issue anymore.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/facebook/react-native/issues/6755#issuecomment-208813686

This shouldn't happen may be your image is corrupt. Still you can try this
<Image key={url} /> which will replace your old image with a new one each time the URL changes.

Hey, I think this issue lacks enough information to reproduce the problem, so I'm going to close it. If it turns out the problem is not a corrupted image but rather a bug in React Native then feel free to reopen an issue.


Igbo api 219/email field for words and examples

Includes an email field for users to get email notifications concerning their submitted word and example suggestions.
Closes #219

Handled in #250


raids: display C and P for unknown rooms on overlay

doesnt make it any wider than currently existing names

The full length is still used for !layout and I'd prefer for that to show (puzzle) etc instead as there is more room. How does (p)/(c) look like on the overlay?

the point of this change is to make it so that the overlay displays the same name that is tracked internally for denoting a whitelisted/blacklisted room.  The name was shorted because if it was much longer it would start overlapping with the text on the left side.

changed the implementation to preserve the full room name but still allow white/blacklisting with the name shown on the overlay.

changed the implementation again based on discussion on discord


Fullscreen mode + "Show desktop" not working as expected

Environment
Windows build number: Microsoft Windows Version 10.0.18362.476
Windows Terminal version: microsoft-windows-terminal 0.7.3291.0

Steps to reproduce

Open Windows Terminal
Toggle fullscreen (F11)
Use "show desktop" (win + d)
Use "show desktop" again

Expected behavior
All windows should hide and the desktop should be shown (First trigger of "show desktop"). On second tirgger all windows should be shown again, and the terminal window should be visible on top again.
Actual behavior
On the second trigger of "show desktop", another window gets shown on top. Also sometimes the taskbar disappears, and you can see parts of the terminal peeking through.
PS: When using win+d with a AutoHotkey remapping, this gets even more buggy. (I can provide details if necessary)

We'll want to check this against #3721. Thanks!


[TubeMQ] An error when deploying tubemq-manager according to the documentation on the official website

What happened
Deploying tubemq-manager according to the documentation on the official website will encounter the following problems. After adding jboss-logging-3.4.2.Final.jar and antlr-complete-3.5.2.jar to the lib, the log will not report an error

What you expected to happen
none
How to reproduce
Deploy tubemq-manager according to the documentation on the official website
Environment
CetOS 7
hibernate-core-5.6.9.Final
hibernate-commons-annotations-5.1.2.Final
InLong version
1.2.0
InLong Component
InLong TubeMQ
Are you willing to submit PR?

[X] Yes, I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@bluewang, can you take a look at this issue?


nthreads 16

Codecov Report

Merging #734 (dba2217) into perf/exper (2bd4539) will increase coverage by 2.49%.
The diff coverage is n/a.

@@              Coverage Diff               @@
##           perf/exper     #734      +/-   ##
==============================================
+ Coverage       46.29%   48.78%   +2.49%
==============================================
  Files              68       68
  Lines            2225     2019     -206
  Branches           46       44       -2
==============================================
- Hits             1030      985      -45
+ Misses           1195     1034     -161

Impacted Files
Coverage Δ

zio-http/src/main/scala/zhttp/http/package.scala
50.00% <0.00%> (ø)

.../scala/zhttp/http/headers/HeaderConstructors.scala
16.86% <0.00%> (+1.53%)
:arrow_up:

zio-http/src/main/scala/zhttp/http/Response.scala
58.00% <0.00%> (+1.58%)
:arrow_up:

.../main/scala/zhttp/http/headers/HeaderGetters.scala
28.92% <0.00%> (+4.50%)
:arrow_up:

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 2bd4539...dba2217. Read the comment docs.

8 is optimal


Bug? Cannot add > 5 tabs

I'm not running Windows (which is unsupported)
I've included my browser and Ruby version in this issue.

Chrome Version 54.0.2840.98 (64-bit)
ruby 2.3.1

This is very simple and I've tested it thoroughly (I believe).  I would love to know

if others are having this issue as well and
if there is a solution.

Here are the steps to produce the issue:

Add > 5 tabs to index.html.md.erb like so:

language_tabs:
  - shell
  - ruby
  - python
  - java
  - php
  - test

Add something to show up on those tabs.  This code snippet is for only the 6th tab:

```test
# test

The entry for the 6th tab will show up on all the other tabs as well, like this screenshot of the PHP tab:

To be clear, the 6th tab does work just fine, but whatever you put there will also show up on all the other tabs at the bottom of their own content.
Thx for any suggestions that emerge. :-)

Does it work if you use a real supported language, say, html, instead of test?

That may be it.  We tried ".net" but that didn't work.  Thanks for the tip.  The .net version of the code is technically ruby, so maybe we'll need to use a ruby tab.  Others have asked (on a different issue) about having multiple tabs with the same language but different use cases, so I won't repeat that conversation here. :-)

:+1: worst case, you could also try the plaintext language as well, and just rename to something else.


Fix action up dispatched twice

ACTION_UP event is dispatched at onTouchEnd() only

GearVRf-DCO-1.0-Signed-off-by: Ragner Magalhaes<EMAIL_ADDRESS>

Where did you notice that?

You can see this logging e.getAction() at RootViewGroup::dispatchPickerInputEvent().
You should be able to reproduce with any touchable renderable view.

But there is other way to fix this bug at GVRPicker:generatePickEvents() but I am not sure:
See:
`
else
{
propagateOnInside(collision);
if (prevHit.touched && !mTouched)
{
propagateOnNoTouch(collision);
}
else if (!prevHit.touched && mTouched)
{
propagateOnTouch(collision);
}
}
`

Looks good. Now gvr-keyboardview works well too - previously you had to click many and many times in the text field to bring up the keyboard.

Planning to merge on Friday.


CHT test: BlockDataDownload for null pointer - issue 23

Block data received (BlockDataDownloaded is called) for already FV block with null pointer. Nothing should be chained, pointer shouldn't be assigned. Should return false
See #1321 (comment)
Preferred reviewers: @Aprogiena or @noescape00

Looks okay to me


support upload/download model to/from hubble

Since we move to jcloud deployment, it's necessary to support uploading/downloading PCA/PQ model to/from Hubble.
Thus, we need to implement these APIs:
self._projector_codec.upload(artifact='...')
self._projector_codec.download(artifact='...')
The artifact is determined by users and should be consistency throughout the whole pipeline. And also should be passed to  jcloud.yaml.

What's the API design in annlite? Is this what we are expected:
def save_model(self, name: Union[str, PathLike]):
    if isinstance(name, str):
        # save to hubble with the given name `name`
    else:
        # save to local path

The user journal looks like:

index = Annlite(...)

index.train(...)

# upload the model parameters
index.save_model('pca128_pq64')

# load the model  parameters
index = Annlite(..., model_path='pca128_pq64')
index.index(...)
index.search(...)


Fix for issue #474

Description
Fix for supporting Content-Type with parameters.  A previous Pull Request was generated for this issue, but it required a mer of recent changes. The old Pull Request was closed and replaced with this one.
Motivation and Context
Many Internet services will send parameters with Content-Type. For example:
POST /message HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

Fixes:
#474
How Has This Been Tested?
Tested with both Mac and Linux.
Checklist:

[ x ] I have submitted a CLA form
[ ] If applicable, I have updated the documentation accordingly.
[ ] If applicable, I have added tests to cover my changes.

This code change no longer works now that multipart parsing has been added.


Update connect to Teams PS in teams-for-vdi.md

Closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/9070.

Docs Build status updates of commit e7f3b61:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Teams/teams-for-vdi.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 889482d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Teams/teams-for-vdi.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

Docs Build status updates of commit 05bbab4:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

Teams/teams-for-vdi.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

@dstrome PR has been copyedited and is ready for final review, could you please check and merge? Thanks!


Add vote check tool

Add tool to check votes (both private and public) have been correctly tallied using node storage.
Vote verification follows this plan:

Start a new node with the storage containing the full blockchain history to validate that all ledger operations.
Check that the election results obtained are the same as provided
Check that the transactions containing your votes were indeed included in a block in the main chain

Requires Jormungandr to be installed in the system

superseded by https://github.com/input-output-hk/catalyst-toolbox/pull/49 as secrets do not work on forks


lightdm-gtk-greeter background stays in i3 session

Describe the bug
After login to i3 session, lightdm background is still seen.
To Reproduce
Steps to reproduce the behavior:

enable i3
ensure services.xserver.displayManager.lightdm.background is set (it is by default)
ensure there is no wallpaper is set under xorg

Expected behavior
There should be no background
Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
The problem is seen on nixos-unstable https://github.com/NixOS/nixpkgs-channels/commit/a21c2fa3ea2b88e698db6fc151d9c7259ae14d96 and upper
There was no such problem on https://github.com/NixOS/nixpkgs-channels/commit/e59dcf8ccec439f54dc52ffd5832610fc3f6c9c2
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute:
# a list of nixos modules affected by the problem
module:

see https://github.com/NixOS/nixpkgs/commit/78d83650df6e6fbb0f94749787b89817c4269c8b

We also agreed this is an issue with i3, and we shouldn't do anything special for all desktop managers for a bug in this window manager. You can still set it manually to black as the aforementioned commit message claims you can do.

Since this seems to still be an issue (other report): Maybe we should add a workaround in the i3 module?
From my other comment (https://github.com/NixOS/nixpkgs/pull/78346#issuecomment-583392204):

i3 can probably do nothing about this (as that should break ~/.xsession scripts and our extraSessionCommands without extra hacks) and the only thing we can do is probably to add ${pkgs.xorg.xsetroot}/bin/xsetroot -solid black to nixos/modules/services/x11/window-managers/i3.nix right before ${cfg.extraSessionCommands} (but this would only cover i3 and kinda restore the previous behaviour with the exception that it now runs before extraSessionCommands but it might still run after ~/.xsession (haven't looked into this)).

cc i3 maintainers: @modulistic @fpletz @globin and most frequent module committer @ericsagnes
Feel free to add your thoughts/opinions (I'm not using i3 anymore).

In the i3 module would be fine.

@worldofpeace

see 78d8365

Missed that. Thank you!

xsetroot doesn't help in case of compton


Add macOS 14 beta runner image

Tool name
macOS 14
Tool license
https://www.apple.com/au/legal/sla/
Add or update?

[x] Add
[ ] Update

Desired version
Beta 14 (23A5286g)
Approximate size
No response
Brief description of tool
Beta release of macOS version developed by Apple
URL for tool's homepage
https://developer.apple.com/documentation/macos-release-notes/macos-14-release-notes
Provide a basic test case to validate the tool's functionality.
No response
Platforms where you need the tool

[ ] Azure DevOps
[x] GitHub Actions

Runner images where you need the tool

[ ] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] macOS 13
[ ] Windows Server 2019
[ ] Windows Server 2022

Can this tool be installed during the build?
No

Tool installation time in runtime
N/A
Are you willing to submit a PR?
No

Hello @DatTaiwanGuy, this issue will be closed as a duplicate of https://github.com/actions/runner-images/issues/7508.
If you have other questions, feel free to reach us.


Exercise 11: fix function description in README

This threw me off a little, since having a comparator to calculate an average really doesn't make much sense.

And while I'm at it, thank you very much for this project! While I'm already quite familiar to TS, this really has helped me to learn about things I hadn't come across yet, and writing a custom database engine is also something I hadn't done before :smile:

Glad you liked it! Thank you for the fix!


 It is unclear how long the period for retaining this commit call on the network would last, but this may lead to inconsistency issues if left unchecked.
The above behavior can also be exploited when updating the huggingface repository details to effectively "submit" a new model under the guise of an older one.
Given that there are many implications for this current behavior, open discussion is encouraged here to decide on an optimal path forward

So in my view this is not necessarily a problem. If you look at it this way its a feature:

Miner registers on the subnet
Miner creates a commit call and the model is now in the queue awaiting evaluation
The queue is stuck or slow or very large and the key immunity expires until the model gets evaluated
Miner is deregistered after key immunity expires
Model eventually gets evaluated in the queue
Miner re-buys the same key again gets to keep the evaluated model at the original commit block.

This has happened to me a few times and I found it good that I could actually keep my original block for the model I submitted. With the evaluation being so slow right now I did have to pay an extra 2 tao but I have an option to not loose my submission to the cloners.

It appears that this is a desired behavior, but will keep this open for further discussion down the road

Update: for the specific case of modifying submissions after the commit data was sent, I have set up the following script as a temporary patch until a more thorough change is added:

import logging
from datetime import datetime
from huggingface_hub import HfApi
from model.scores import StatusEnum
from persistence import SupabaseState

logger = logging.getLogger(__name__)

import datetime

REFERENCE_BLOCK = 4041914
REFERENCE_TIME = datetime.datetime(2024, 10, 14, 14, 35, 30, tzinfo=datetime.timezone.utc)
BLOCK_INTERVAL = 12  # seconds

def utc_to_block(utc_time):
    """
    Convert a UTC datetime to the corresponding block number.

    :param utc_time: A datetime object in UTC
    :return: The estimated block number
    """
    if not utc_time.tzinfo:
        utc_time = utc_time.replace(tzinfo=datetime.timezone.utc)

    time_difference = utc_time - REFERENCE_TIME
    seconds_difference = time_difference.total_seconds()
    block_difference = int(seconds_difference / BLOCK_INTERVAL)

    return REFERENCE_BLOCK + block_difference

def block_to_utc(block_number):
    """
    Convert a block number to the corresponding UTC datetime.

    :param block_number: The block number
    :return: A datetime object in UTC
    """
    block_difference = block_number - REFERENCE_BLOCK
    seconds_difference = block_difference * BLOCK_INTERVAL

    return REFERENCE_TIME + datetime.timedelta(seconds=seconds_difference)

def check_model_history():
    supabase = SupabaseState()
    hf_api = HfApi()
    # cutoff_date = datetime(2024, 9, 1)

    try:
        # Fetch all entries from the leaderboard
        response = supabase.supa_client().table("minerboard").select("*, leaderboard(*)").execute()
        minerboard_entries = response.data

        for minerboard_entry in minerboard_entries:
            # print(minerboard_entry)
            entry = minerboard_entry.get('leaderboard')
            repo_namespace = entry.get('repo_namespace')
            repo_name = entry.get('repo_name')

            if not repo_namespace or not repo_name:
                continue
            if entry['status'] != 'COMPLETED':

                continue
            if 'block' not in minerboard_entry:
                print(f"no block info available for {minerboard_entry}")
                continue
            entry['block'] = minerboard_entry['block']
            try:
                # Fetch repository details from Hugging Face
                repo_info = hf_api.repo_info(repo_id=f"{repo_namespace}/{repo_name}")
                f = repo_info.last_modified

                # print(f)
                # print(f"{f} maps to block {utc_to_block(f)}")
                modified_after_block = utc_to_block(f) > entry['block']
                if not modified_after_block:
                    continue
                print(f"entry: {repo_namespace}/{repo_name}")
                notes = f"Repository was last updated at {f} which corresponds to block {utc_to_block(f)}.\nThe commit data was submitted on {entry['block']} which suggests repository was modified after submission."
                print(notes)
                try:
                    response = (
                        supabase.supa_client().table("leaderboard")
                        .update(
                            {"status": StatusEnum.FAILED, "notes": notes},
                        )
                        .eq("hash", entry['hash'])
                        .execute()
                    )

                except Exception as e:
                    print(f"Error updating leaderboard status for {hash}: {e}")

            except Exception as e:
                logger.error(f"Error fetching info for {repo_namespace}/{repo_name}: {str(e)}")

    except Exception as e:
        logger.error(f"Error fetching leaderboard entries: {str(e)}")

if __name__ == "__main__":
    check_model_history()


Installation Callback Success not redirecting

Description
When attempting to send DM to user after install, the Install button on the OAuth page just spins and won't redirect. The DMis getting sent, it just seems that the OAuth page is waiting on something from the success block that it's not getting.
What type of issue is this? (place an x in one of the [ ])

[ ] bug
[ ] enhancement (feature request)
[x] question
[ ] documentation related
[ ] example code related
[ ] testing related
[ ] discussion

Requirements (place an x in each of the [ ])

[x ] I've read and understood the Contributing guidelines and have done my best effort to follow them.
[x ] I've read and agree to the Code of Conduct.
[x ] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report
Filling out the following details about bugs will help us solve your issue sooner.
Reproducible in:
package version: 3.10.0
node version:
OS version(s):
Steps to reproduce:

Expected result:

OAuth page performs default redirect
App sends message to user

Actual result:

OAuth page does not redirect
App is sending message

Attachments:
const app = new App({
    signingSecret: process.env.SLACK_SIGNING_SECRET,
    clientId: process.env.SLACK_CLIENT_ID,
    clientSecret: process.env.SLACK_CLIENT_SECRET,
    stateSecret: process.env.SLACK_STATE_SECRET,
    scopes: [
        'chat:write'
    ],
    installerOptions: {
        callbackOptions: {
            success: (installation, installOptions, req, res) => {
                app.client.chat.postMessage({
                    token: installation.bot.token,
                    channel: installation.user.id,
                    text: ':wave: You did it!.'
                })
            }
        }
    }
});

Hi @brock-rb2t, thanks for asking the question!
Here is the default success handler:
https://github.com/slackapi/node-slack-sdk/blob/%40slack/oauth%402.4.0/packages/oauth/src/index.ts#L751-L780
When you use your own callback function, the function can do something similar in addition to sending the DM message. Perhaps, you can use https://api.slack.com/reference/deep-linking#open_a_direct_message for your app.
I hope this helps! Is everything clear?

This is perfect. Thanks!
On Sun, Mar 13, 2022, 10:52 PM Kazuhiro Sera @.***>
wrote:

Hi @brock-rb2t https://github.com/brock-rb2t, thanks for asking the
question!
Here is the default success handler:
https://github.com/slackapi/node-slack-sdk/blob/%40slack/oauth%402.4.0/packages/oauth/src/index.ts#L751-L780
When you use your own callback function, the function can do something
similar in addition to sending the DM message. Perhaps, you can use
https://api.slack.com/reference/deep-linking#open_a_direct_message for
your app.
I hope this helps! Is everything clear?
—
Reply to this email directly, view it on GitHub
https://github.com/slackapi/bolt-js/issues/1367#issuecomment-1066287009,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKV655GECWXA4ROCD4F5JW3U72SVXANCNFSM5QUHRS7Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


Configure Postgres

Will have to connect to Postgres and get it running. Django should make it easy.

Let's stick with SQLite for now


refactor: solve linting issues and simplify some methods complexity

This solves many of the complaints from flake8.
The diff might seems big but if you look closely it's mainly removing nested conditions in favour of guard clauses.
As you see, there are no real changes on the tests. Everything just pass all the same.

Thanks, I'll have a look. I use pylint but usually not flake8.
Since we're at it, could you please try to fix this mypy warning? I'm not sure how:
$ mypy --strict simplemma/
simplemma/dictionary_factory.py:47: error: Non-overlapping equality check (left operand type: "Tuple[str, ...]", right operand type: "List[str]")  [comparison-overlap]

I'll also put this pylint refactoring hint on the to-do list (to be tackled by you or me):
simplemma/dictionary_pickler.py:134:13: R1721: Unnecessary use of a comprehension, use dict(sorted(mydict.items(), key=lambda item: item[1])) instead. (unnecessary-comprehension)

fixed!
Also fixed some issues when running mypy on tests.

mypy apparently catches errors in the test files.

I restored the original expression token[0].isupper() (it changed to token.isupper() in the process). This could also be tackled directly by the regex.
The example was not functioning anymore so I found another one.

Never mind, ready to merge.


Fixes for amount editor

fixes some of https://github.com/MutinyWallet/mutiny-web/issues/20

Love it! Nice work


Added bower.json file, registered

Hello,
I've tried to register the library on bower, to use it in the browser, and everything seems OK.
In this commit I only added the bower file, very simple (it doesn't even clean the output from the tests, etc...).
If this PR is accepted, we can change the bower public registry to point to your original repo instead this forked one.
Thank you,
Luciano

Cool, I've never used bower, but if it looks ok to me. I will likely update the "homepage" parameter in the future to reflect the main repository, if there are no objections. :)

Cool, thanks!
I've just update the bower registry in order to point to the main repository (I'll remove my fork soon), so definitively yes, the homepage parameter should be fixed as well!
Cheers,
Luciano

Hi, could you please create a git tag following the standard semver conventions? When I moved the bower registry from my fork back to the main repository, we are unable to address the proper "0.2.1" version (the workaround is to not set any tag name, but this is not recommended...).
Thanks,
Luciano

Heya!
I've updated the bower file, bumped the version to 0.2.2, created the tag and republished to npm. Is there anything additionally I need to do for bower to pick up the version of 0.2.2?

Great, no other actions are required. Bower will fetch packages that are referred by version/tag name using git tags.
Thank you!
Luciano


Using the same tile in different rules (question)

Hi @Portponky. I wonder if there's a way to use the same tile image with different rules without duplicating it in the sprite sheet?
For example I have a water layer where the same plain square tile needs to be in a few different places to correctly surround the islands.

Yes, Godot has a way of doing this. In the TileSet dock, you can right click on a tile and select "Create alternate tile". This makes a different version of the same tile which you can give different properties to. You can make as many alternates of a tile as you like. They use the same image data, so no image duplication happens. You can use the alternate tiles in Better Terrain to give totally different rules to the same tile graphics.

Now I found it, thanks. I tried it but couldn't find the alternative tiles on the Terrain tab. I've been looking for them next to the original tiles and haven't realised they all are grouped in the top right corner. Which for me is completely obscured by the Inspector panel when on a laptop screen. Screenshots in case someone else will have the same issue.
The Terrain panel on a small screen:

The panel extended:


dalfox: 2.9.1 -> 2.9.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/hahwul/dalfox/releases.
meta.description for dalfox is: Tool for analysing parameter and XSS scanning
meta.homepage for dalfox is: https://github.com/hahwul/dalfox
meta.changelog for dalfox is: https://github.com/hahwul/dalfox/releases/tag/v2.9.2
Updates performed

Golang update

To inspect upstream changes
Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 2.9.2 with grep in /nix/store/a37nmgqq5cg0f9xphjdpvz1y8b9iabyw-dalfox-2.9.2
found 2.9.2 in filename of file in /nix/store/a37nmgqq5cg0f9xphjdpvz1y8b9iabyw-dalfox-2.9.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
dalfox

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/a37nmgqq5cg0f9xphjdpvz1y8b9iabyw-dalfox-2.9.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A dalfox https://github.com/r-ryantm/nixpkgs/archive/6a0b7afdaaa67684643b91676d1d5723271e569f.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/6a0b7afdaaa67684643b91676d1d5723271e569f#dalfox

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/a37nmgqq5cg0f9xphjdpvz1y8b9iabyw-dalfox-2.9.2
ls -la /nix/store/a37nmgqq5cg0f9xphjdpvz1y8b9iabyw-dalfox-2.9.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

dalfox

Maintainer pings
cc @fabaff for testing.

Result of nixpkgs-review pr 284674 run on x86_64-linux 1

1 package built:

dalfox


Switch to single top-level function for bitmap and bundle code

Description:

I'm going to combine two unrelated issues into a single PR, referencing this issue for a more detailed description as well as tracking if it causes problems. Note that this is a significant redesign of all the code that requires a bitmap or bitmap bundle as a function parameter.
wxWidgets 3.2 (as of 9/18/23) still doesn't support wxBitmapBundle for wxRibbonBar tools. That's a problem when using a ribbon bar on Windows high DPI display monitors (wxUiEditor has this problem for it's own UI). I've got a workaround for C++, but it needs to be extended to support wxPython and wxRuby.
There is an issue with toolbar tools when there are 3+ bitmaps to create a bundle from. In C++, this creates a bracketed section so that we can create a vector to add the bitmaps and pass that to wxBitmapBundle. That fails if we need the return value from AddTool because we can't access the vector outside of the bracketed section, and we lose the return value if AddTool is within the bracketed section.
There currently is a fix for the C++ code generation for ribbon tools which uses a lambda if there are 3+ bitmaps for the tool. That would also solve the bracketed section problem described above, but we currently can't use the same function because it ends the parameter by calling GetBitmap().
I'm in the process of creating a single function that combines the code for ribbon tools with the code for regular tools, with an option controlling whether GetBitmap() is added or not. That function will provide high-DPI support for ribbon tools, and for C++ using a lambda instead of a bracketed section to deal with 3+ bitmap images. Instead of having C++, Python and Ruby bundle functions in three different source files (and toolbar and ribbon functions in two additional functions), the goal is to have a single source file with a single top-level function for all bundle code generation for a function parameter.

For ribbon tools which require a single bitmap, I am using wxImage::Rescale(FromDPI, wxIMAGE_QUALITY_BILINEAR) if only a single bitmap is supplied. The reason for this is that toolbar tools are generally going to be small graphics. Scaling up using wxIMAGE_QUALITY_BILINEAR will usually produce the best results. Note that if a second, larger image is provided, then wxBitmapBundle::GetBitmap() is used which will scale down fromn the second image using whatever scaling flag it deems best. This will usually produce better results then scaling up.

This now works for C++ and wxRuby3, but not for wxPython (label added to flag it)


Wallet SDK should allow only connected accounts and selected accounts to execute actions

close in favor of #495


Proj Submission

Thanks! :)
I think that I did not forget anything.

Looking good! There is a small issue with the cover image.
But I am going to fix it myself.


Content won't cycle from the begining

I'm trying to get a horizontal carousel to cycle using infiniteElements:'#scroller, .column'. After reaching the last column, I'd like to scroll in the same direction by loading the first <div> again without returning back to the beginning.
Something akin to this: wrapAround: true on http://flickity.metafizzy.co
Am I correct in thinking that there's no demo for that? iscroll-master/demos/infinite/dataset.php seems overkill.

Iscroll have no options to support "cycle" mode.
Infinite scroll designed to display large datasets with lazy loading, not for cycling content.


Hardcoded limitation for Java Virtual Machine

MEA_BIN_MEA="$MEA_BIN_JAVA -Xms4G -Xmx8G -jar $MEA_DIR_TOOLS/alea.jar"
causes the following error
java.lang.OutOfMemoryError: GC overhead limit exceeded because -Xmx8G is too small

While I do not know how to dynamically assign JVM max heap size, I am increasing it to 54G as this is the MEA recommended RAM size. Please let me know if this is not an appropriate fix and I will try harder

This is how you can dynamically change Xms and Xms values
#!/bin/bash
JAVA_XMS=${JAVA_XMS:=4G}
JAVA_XMX=${JAVA_XMX:=54G}
ALEA_JAR="java -Xms$JAVA_XMS -Xmx$JAVA_XMX -jar alea.jar"
echo $ALEA_JAR

Running the script, when environmental variables JAVA_XMS and JAVA_XMX are not set will give you output
java -Xms4G -Xmx54G -jar alea.jar

If you set these variables
export JAVA_XMS="8G"
export JAVA_XMX="120G"

it will give you output
java -Xms8G -Xmx120G -jar alea.jar


Rename Underlay to Overlay

Why?

@devongovett because that's what designers seem to refer to it as. I like "underlay" because it lays beneath the dialog, but they like "overlay" because it lays over the content...

So we now have underlay and overlay components. We should work with the Design/Content Strategy to figure out naming these 2 distinct things.

Hmm we also already have an Overlay component in React Spectrum that we use as the basis for all of our overlays (modals, popovers, trays).

Since we have both, we can't rename.  This isn't causing a problem, closing.


SAA-1055: Create occurrences asynchronously when total instances > 1000

Codecov Report
Patch coverage: 25.00% and project coverage change: -0.43% :warning:

Comparison is base (eedf13e) 85.50% compared to head (298bf4a) 85.08%.
Report is 2 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main     #527      +/-   ##
============================================
- Coverage     85.50%   85.08%   -0.43%
- Complexity     2529     2533       +4
============================================
  Files           304      305       +1
  Lines          9022     9076      +54
  Branches        613      618       +5
============================================
+ Hits           7714     7722       +8
- Misses         1004     1046      +42
- Partials        304      308       +4

Files Changed
Coverage Δ

...nagementapi/job/CreateAppointmentOccurrencesJob.kt
12.76% <12.76%> (ø)

...ivitiesmanagementapi/service/AppointmentService.kt
92.52% <66.66%> (-2.12%)
:arrow_down:

...l/hmpps/hmppsactivitiesmanagementapi/entity/Job.kt
100.00% <100.00%> (ø)

... and 1 file with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Updating README file

Adding Login and TDE-enabled database migrations capabilities.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 41.961%

Files with Coverage Reduction
New Missed Lines
%

extensions/notebook/src/jupyter/serverInstance.ts
4
75.5%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
28750

Relevant Lines:
63627

💛  - Coveralls

@croblesm can this PR be completed or closed?


Create init.d script

An init.d script that would allow to start/stop/configtest/restart the Braum daemon is needed.

Related to old braum project.


Could not convert parameter tx between node and runtime: Error decoding field CheckMortality.0

I tried to use plasm-types libray to run a simple app for transferring tokens between Dusty accounts on plasm. Source code and package.json for running the snippet is found on this git repo
Node version: v12.8.2
Yarn version: 1.22.5
`require('dotenv').config();
const { ApiPromise, WsProvider } = require('@polkadot/api')
const { Keyring } = require('@polkadot/keyring')
const plasmDefinitions = require('@plasm/types/interfaces/definitions');
const jsonDefinitions = require('./types.js')
const fs = require('fs')
const BN = require('bn.js')
startChain()
async function startChain() {
console.log("trying connection to ", process.env.RPC_URL)
const targetAddress = process.env.TARGET_ADDRESS
const provider = new WsProvider(process.env.RPC_URL)
const types = Object.values(plasmDefinitions).reduce(
(res, { types }) => ({ ...res, ...types }),
{},
);
const api = new ApiPromise({
provider,
types
});
api.on('connected', () => console.log(Connected to ${process.env.RPC_URL}));
api.on('disconnected', () => console.log(Disconnected from ${process.env.RPC_URL}));
await api.isReady;
const [chain, nodeName, nodeVersion] = await Promise.all([
api.rpc.system.chain(),
api.rpc.system.name(),
api.rpc.system.version()
])
console.log(You are connected to chain ${chain} using ${nodeName} v${nodeVersion} - ${process.env.RPC_URL})
const keyring = new Keyring({ type: 'sr25519' })
const fromPair = keyring.addFromUri(process.env.PLASM_MNEMONIC)
const fromAmountUnits = new BN('1000000000000000')
const transfer = api.tx.balances.transfer(targetAddress, fromAmountUnits)
// send value
//const nonce = await api.query.system.accountNonce(process.env.FROM_ADDRESS)
const nonce = await api.rpc.system.accountNextIndex(process.env.FROM_ADDRESS)
console.log("got nonce", nonce)
const txHash = await transfer.signAndSend(fromPair, {nonce})
}`
Stack trace:
trying connection to  wss://rpc.dusty.plasmnet.io/ Connected to wss://rpc.dusty.plasmnet.io/ You are connected to chain Dusty using Plasm Node v1.6.1-cf15b11-x86_64-linux-gnu - wss://rpc.dusty.plasmnet.io/ got nonce Type {   negative: 0,   words: [ 0 ],   length: 1,   red: null,   registry: TypeRegistry {} } 2021-02-05 21:00:27        RPC-CORE: submitExtrinsic(extrinsic: Extrinsic): Hash:: 1002: Verification Error: Execution: Could not convert parameter txbetween node and runtime: Error decoding field CheckMortality.0: RuntimeApi, Execution: Could not convert parametertxbetween node and runtime: Error decoding field CheckMortality.0 (node:13572) UnhandledPromiseRejectionWarning: Error: 1002: Verification Error: Execution: Could not convert parametertxbetween node and runtime: Error decoding field CheckMortality.0: RuntimeApi, Execution: Could not convert parametertxbetween node and runtime: Error decoding field CheckMortality.0     at RpcCoder._checkError (<mydir>\examples\plasm-simple-transfer\node_modules\@polkadot\api\node_modules\@polkadot\rpc-provider\coder\index.js:84:13)     at RpcCoder.decodeResponse (<mydir>\examples\plasm-simple-transfer\node_modules\@polkadot\api\node_modules\@polkadot\rpc-provider\coder\index.js:47:10)     at WsProvider.value (<mydir>\examples\plasm-simple-transfer\node_modules\@polkadot\api\node_modules\@polkadot\rpc-provider\ws\index.js:214:90)     at W3CWebSocket.value [as onmessage] (<mydir>\examples\plasm-simple-transfer\node_modules\@polkadot\api\node_modules\@polkadot\rpc-provider\ws\index.js:194:153)     at W3CWebSocket._dispatchEvent [as dispatchEvent] (<mydir>\examples\plasm-simple-transfer\node_modules\yaeti\lib\EventTarget.js:107:17)     at W3CWebSocket.onMessage (<mydir>\examples\plasm-simple-transfer\node_modules\websocket\lib\W3CWebSocket.js:234:14)     at WebSocketConnection.<anonymous> (<mydir>\examples\plasm-simple-transfer\node_modules\websocket\lib\W3CWebSocket.js:205:19)     at WebSocketConnection.emit (events.js:315:20)     at WebSocketConnection.processFrame (<mydir>\examples\plasm-simple-transfer\node_modules\websocket\lib\WebSocketConnection.js:554:26)     at <mydir>\examples\plasm-simple-transfer\node_modules\websocket\lib\WebSocketConnection.js:323:40 (node:13572) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag--unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1) (node:13572) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Additionally when i try to do a clear run (delete node_modules and reinstall) i get the same message but with field CheckMortality replaced by CheckNonce. Fields returned by plasm-types library can be found in this file in json format

Thank you for the report, we'll be looking into it soon!

You're welcome. I could make the sample work using this approach. But still i had to circumvent plasm-types library with my own json data

I am very sorry for the late reply!
It seems like this issue is partially related to our future update regarding splitting our network types (so Dusty and Plasm mainnet uses a different type). I believe this will be fixed once that update becomes public.
Thank you for the detailed information! We'll add the address type fixes as part of this update!


Remove button is broken with allowDuplicates

Steps to reproduce:
$(".input")
  .tagsinput({
    allowDuplicates: true
  })
  ;

Add two tags with value 123.

Click x button on either of tags.

Bug: Both tags are removed (seems that only from the DOM, though).
Expected: A single tag is removed, precisely the one whose removal button was clicked.

I have the same problem.


Functions for folders and types

Adjusted Retrieve() so that non-* items can be exported and/or fetched.

Adding support for the following 4 non-wildcard types that the CLI currently attempts to export/fetch:

Dashboard
Document
EmailTemplate
Report

Good:

Works!
Less confusion/disappointment over missing EmailTemplates (#149)
The CLI may offer increased value for users looking to back up their org's metadata more fully (me)

Less Good:

Hardcoding the folder names into a new function (GetFolderTypeName) in metadata.go didn't feel great
Neither does calling the api repeatedly - once for each folder

Details on * vs. non-* types: http://www.salesforce.com/us/developer/docs/api_meta/Content/meta_types_list.htm

I'm curious, should the folder name just be the type + "Folder"?
Could definitely see about batching up the calls to each folder.  I haven't dug into the details around that.  Also, we have a lot a new REST MD calls that we can look to and see if there are any equivalents that might allow for more optimization.

They almost match up - but that would be too easy!
The outlier in this group is the "EmailTemplate" type which has a folder name of "Email"
This SOQL may illustrate it more clearly when you run it:

SELECT Name,Type FROM Folder

I'll check out the REST calls and see if I can be more economical -

I'd rather code for the exceptions.
Dave Carroll
Ra
On Mar 31, 2015, at 10:02 AM, agn-fj<EMAIL_ADDRESS>wrote:
They almost match up - but that would be too easy!
The outlier in this group is the "EmailTemplate" type which has a folder
name of "Email"
This SOQL may illustrate it more clearly when you run it:

SELECT Name,Type FROM Folder

I'll check out the REST calls and see if I can be more economical -
—
Reply to this email directly or view it on GitHub
https://github.com/heroku/force/pull/162#issuecomment-88172203.

This is a nice feature, but it would be even better if it fetched the folder metadata.  It looks like readMetadata needs to be used to get the folder metadata.  See http://salesforce.stackexchange.com/a/49956/240
The folder metadata contains the sharing configuration for the folder.

As an awkward and unfortunate by-product of reducing the git objects in this repo from 145 MB to 6 MB (due to lot's of binaries previously committed to this repo) you will need to rebase your fork to master and resubmit this pull request.