Project funding and growth

this project is a huge effort of huge importance. it depends on the heroic efforts of one person for now. and everybody knows: men pass, institutions remain. save for unlikely regulation changes in the EU, this low key project might now be the one chance the world has to have a free but usable mobile platform in its future.
and unfortunately, things have been looking grim for a long while now. (#420, #752, etc.) i've come to believe that this project will fail unless an institution seriously backs and funds it, and AFAIK little if any work has been done on this front.
i imagine mavin would like getting competitively payed for his time on this project, and might like to devote more to it then. he might like leading a couple of professional, talented, hand picked devs working by his side instead of working in solitude. but he might not like politics and working for funding; yet he might benefit enormously from it.
but why would someone do something one doesn't like for a hobby? this might be why marvin hasn't seriously tried -i think- getting funding so far. and i also think this is obvious: if marvin has to do too much stuff he dislikes, he'll quit.
as it stands: 1) the project is hugely important for online freedom. 2) the project is in danger because it depends on the will and availability of a single person, marvin. 3) marvin is unlikely to fix  # 2 by himself.
so can we help?
yes, marvin might not like strings attached to some offers of help, and it's absolutely his project. but nonetheless i say let's try getting the offers first. and strings? we'll cross that bridge when we get there (or actually, marvin would).
to market this project, we ourselves have to have a clear idea of its value. what is it? google has been proprietarizing Android for years and has been hugely successful. today it's hard to participate in online life without carrying a PC around and having google exclusively controlling your devices. some of us find that totally unacceptable and pay the price of rooting and become superuser of our devices too. the key word here being "too": yes, we control our devices, but so does google.
this was an utterly unthinkable situation 10 years ago: you can't use your computer unless you have a remote root account for some USA company in there available at all times.
even if you trust google not to do evil, would you trust the USA gov? what would it take for the DoJ to ask google to remotely hack your phone and download a copy of your decrypted signal/telegram/whatsapp local message database just because google can? would they do it? have they done it?
having google and indirectly the USA gov as an always connected, all accessing superuser in our computing devices is a huge problem for the world that seems to go largely unnoticed. and the options? apple? ok, switch bullcrap for cow crap.
i don't mind running google's proprietary software; i just don't want google to be root. that's microg's value for me. for others its value is different: maybe Richard Stallman would hate me for thinking this way. but if it was up to me, this is how i would sell microg.
who'd be likely interested in backing this?
we can compile a list and try to contact everyone on it, see how it goes. i'll start with a few names.
these two tried and failed to compete with Android:

Mozilla Foundation with Firefox OS
Canonical with Ubuntu Touch

whatever moved them to create those projects might move them to back microg.

Mark Shuttleworth: maybe Ubuntu doesn't want microg, but this man might throw some bucks at it anyway.

FSF, EFF, etc: all free software-related foundations might be interested in helping microg, but unfortunately their budgets are often limited. still worth trying, they might hook us up with something.

governments: the EU, as well as many non-USA friendly governments might be interested in helping. even the USA gov itself might.

phone vendors: vendors producing Android phones cannot bundle microg without breaching contract. and even Tizen is gone. but that doesn't mean they don't want to help, maybe though some foundation, because...

all of Google enemies are our potential friends: this even includes Apple, Microsoft, Samsung, etc, and of course the killer of the list...

Amazon! they have no contract blocking them from bundling microg on their platforms. but they don't need to! they can just ready their platform for it and let us publish it on Amazon market. or at least the bits that interact with google's services. how much is a fully functional microg worth to Amazon?

google is making headway
google is advancing technologies that will further block competition. everyone here knows what safety net is all about: blocking competing platforms. it requires opt-in by app developer.
here's another of their gimmicks: app bundles. marketed as a way to ease app deployment and improve user experience, and also requiring dev opt-in, the technology is really about devs surrendering their signing keys to google. everything that this technology claims to do can be done without such a bold requirement. but what this technology achieves without stating it is inhibiting sideloading and blocking competing markets. and how long before google starts to inject their code inside all apps? what about their code failing unless running on a googlephone rendering in-the-wild apps unusable for "compatible" android platforms?
devs won't realize about these issues and will fall into google's traps unless there is a real userbase having these issues. and when enough apps are poisoned, the world won't be able to make a free android anymore; we need degoogleized androd devices in the wild ASAP.
so what now?
hopefully some of us will feel bold enough to reach out to some of the entities on this post. and please also add more names you can think of. the value of this project is huge, but i think that the entities that would benefit from it are unaware of its existence.
thanks!

I'm not sure if funding is the real issue here. Of course it would be awesome if this project had some funding to motivate talented developers (especially marvin) to work on this project.
But currently this project also has a really bad bus factor. Currently, when marvin is not available to work on this project, there is no progress at all.
I'd thus suggest to slowly introduce new team members, maybe with initially very limited capabilities.
For example, in my opinion, @ale5000-git has been very helpful with managing issues in the past. To tackle the ever growing list of open issues, I'd propose to give him at least rights to manage (close, tag, ...) issues.
Likewise @Nanolx has been managing a quite successful fork for a while and @voidstarstar has been making some good code contributions recently. While I'd understand if marvin would not want to allow them to commit code without his review for now, I'd still suggest to add them as project members and encourage them to review pull-requests, request changes etc (and of course open their own pull-requests), thus further reducing the work for marvin. Eventually it would of course be great if there was at least a second developer with commit rights. GitHub nowadays also allows settings that would require e.g. approval of at least two team members before a pull request can be merged.

you are right on spot when you mention bus factor. and also right on this aspect of funding: paying marvin will not improve it.
and although all of your suggestions merit review, this issue is not about them. (i also think those were more or less argued before elsewhere without much action resulting from it, but that's irrelevant here.)
here is what this issue is about: finding an entity with some $$$ that will consider microg to be a strategic project for them and is willing to invest. this would result at least in some project manager's job to include keeping an eye on microg with the aim of making it survive independently of marvin's involvement. this would entail having at least someone else on the project who marvin would have to trust and train to replace him, even if marvin is boss.
this would probably involve marvin interviewing some pre-selected candidates and finding someone he thinks has enough reversing and programming experience for the job and with whom he thinks he'd enjoy working. this person would probably start with some feature: investigating, reversing, reporting, planning and coding it, with help from marvin. then, if it feels right to marvin, he'd start training them to the rest of the code base. with some luck, the project would have two marvins after a while, or more. think about how Firefox does not depend on any one dev: mozilla knows how to achieve that, and if they think microg would be valuable to them, they can easily pull it off again.
you could shuffle commit rights around, etc, and that could help a lot. but i'll quote myself on what this particular issue is about:

i've come to believe that this project will fail unless an institution seriously backs and funds it

Ultimately it's Marvin's project, so we should make sure to respect whatever decision he makes.  Developing and maintaining an open source project can be time consuming, thankless, and exhausting, so it may not just be a funding issue.  It's also worth mentioning that he set up Bountysource for the project, but this obviously would not compare to the resources that a large organization could potentially bring.
If you're goal is to attract more developers, I can try to give some insight as to my motivations.  My (relatively small) contributions so far tend to fall into at least one of three categories:

Personal Interest - I worked on features that I personally wanted to use.  Dogfooding tends to be quite common for developers and aligns with selfish incentives.
Utilitarian - I tried to find issues that would help the most people (e.g. related to GCM push notifications) for the least amount of effort to maximize the value my time can provide to the community.  This includes issues with apps or android versions that I don't personally use, but I know will still benefit many users.
Bounties - I worked on a couple issues with a bounty (which I haven't yet actually claimed).  It's typically "beer money" (below a minimum wage if you calculate the hours worked), but every bit helps.  If I earn enough, I might be able to buy new phones to make testing easier.

It's also important to note that while I consider myself proficient with Java, I would consider myself a beginner with Android development and mostly clueless when it comes to the protocols that are reverse engineered.

phone vendors: vendors producing Android phones cannot bundle microg without breaching contract.

There are also tons of generic tablets from companies that may not want to or be able to get certified by Google to run Play Services.
Also something that is probably overlooked is that as this project becomes bigger and starts making noise, Google will undoubtedly take notice and may even want to shut it down.  If a large organization funds this project, then it will probably be necessary to make more serious efforts toward an independent push service.  There are some open source alternatives that exist (and some discussions about a possible microG version), but so far none have really become widely used.

Thanks for all your comments.
To make it short: microG is well funded.

Donations cover all operational costs (servers, etc)
I currently receive funding through a grant of PrototypeFund (German government) to work on microG.
Several organizations have in the past supported my development of microG and I am certain there will be funding for the time after PrototypeFund as well.
Additionally, some organizations also announced willingness to financially support additional contributors, for example in form of a paid summer internship. Unfortunately there haven't been any good candidates for such funding yet. (Please let me know if you think you are one)

The reason why from time to time I am off of working on microG is not financial, I am just not that kind of person to work all time on a single project.
I totally understand there is an issue with me being the only person managing the main code repositories, especially as it means there is huge delays from time to time when I am working on something else. While I very much like the contributions of "outside contributors" into microG, I don't feel very comfortable yet with any of them committing to the main repository without further review.
Also I think that many outside contributors struggle to do their first commit, so any feedback on possible reasons for that would be super helpful for longterm success (for example I considered reorganizing the code base so that it becomes easier to grasp).
PS: I am currently working on a full rewrite of the maps implementation to finally solve all the issues around it (with apps for public transport, car/bike sharing, taxi, ...)

Thanks for all your comments.
To make it short: microG is well funded.
Donations cover all operational costs (servers, etc)
I currently receive funding through a grant of PrototypeFund (German government) to work on microG.
Several organizations have in the past supported my development of microG and I am certain there will be funding for the time after PrototypeFund as well.
Additionally, some organizations also announced willingness to financially support additional contributors, for example in form of a paid summer internship. Unfortunately there haven't been any good candidates for such funding yet. (Please let me know if you think you are one)
The reason why from time to time I am off of working on microG is not financial, I am just not that kind of person to work all time on a single project.
I totally understand there is an issue with me being the only person managing the main code repositories, especially as it means there is huge delays from time to time when I am working on something else. While I very much like the contributions of "outside contributors" into microG, I don't feel very comfortable yet with any of them committing to the main repository without further review.
Also I think that many outside contributors struggle to do their first commit, so any feedback on possible reasons for that would be super helpful for longterm success (for example I considered reorganizing the code base so that it becomes easier to grasp).
PS: I am currently working on a full rewrite of the maps implementation to finally solve all the issues around it (with apps for public transport, car/bike sharing, taxi, ...)

Maybe Patreon? Many people will support it monthly and for android developer, maybe some big people from xda will.

I agree with voidstarstar on this. The original microg is Marvins project and it is his decision to decide what to do with it.
That said, I can't see a setup in which the style of Marvin would work with a backed, structured setup.
To have a strong supporter/additional developers and a goal of microg (e.g. cover certain API functionality within certain timeframe), the project needs management. This will require constant attention, responsiveness and decisions. The "on and off" style Marvin prefers is suited for developing as part of a group when someone manages and balances this, but not as the centerpiece steering it as a bigger project.
Out of my view, if anyone thinks about that "funding and growth" setup, you would need Marvin to give up control of microg or move it to a fork.
This is by no means an accusation or negative part towards Marvin. He is free to do and handle things as he wants to. Certain ideas and goals might just require different prerequisites.

@mar-v-in

Also I think that many outside contributors struggle to do their first commit, so any feedback on possible reasons for that would be super helpful for longterm success (for example I considered reorganizing the code base so that it becomes easier to grasp).

For me personally, a large hurdle was (and still is) the lack of documentation.  I think the code is actually well written, but like many projects, it lacks enough comments/Javadoc.  This project is also somewhat unique in that it could greatly benefit from documentation of any gathered knowledge on the reverse engineered protocols.
For example, in #737 I think I narrowed down the problem to this delete flag, but I don't fully understand what it does, so I would not feel comfortable changing it blindly.  It was clearly added for a reason, but I can only infer what that reason is.

@benyaminl

Maybe Patreon? Many people will support it monthly and for android developer, maybe some big people from xda will.

That might help attract new developers, but it sounds like it may not be the main issue:

To make it short: microG is well funded.

The reason why from time to time I am off of working on microG is not financial, I am just not that kind of person to work all time on a single project.

I might add to @voidstarstar that not just the developer, but also the user related information is scattered around and the Wiki here is pretty much outdated and installation instructions kinda incomplete Nougat-onwards.
For example in @ale5000-git microG unofficial installer thread over at XDA my NanoDroid thread over at XDA, signature spoofing XDA thread, official microG XDA thread and several others (either from specific users like Oswald Boelke or device specifc threads like modded stock ROMs with microG support)...
I've compiled a list of known issues and fixes/work-arounds at the NanoDroid documentation#issues, as a starting point.
It's not better for signature spoofing, Tingle, Haystack, LOS for microG, pre-patched ROMs, vdexextractor, smali/baksmali...
A mid-term project I had in mind for a few weeks now is to find one or two others and update the wiki here, turning it into the first place to look for information AND finding it.
snip
Many issues reported here are either duplicates of pre-existing ones or already fixed but still open. Unless I'm mistaken you can grant someone the ability to close or modify (read: adding tags/label to, change titles to be more descriptive) issues, without granting un-reviewed commits? If so I'd be willing to do some clean-up in the issues section (got a few days off from 26.04 - 01.05.). Related and likely useful #639

I plan to document some functions/workaround, it will be in the project microG unofficial installer (but available directly online) and it will cover many microG related things.

this thread has morphed into something off-topic of my first post. we are again discussing how best to help marvin and that is great, just not in the context of this thread.

some organizations also announced willingness to financially support additional contributors, for example in form of a paid summer internship. Unfortunately there haven't been any good candidates for such funding yet. (Please let me know if you think you are one)

The reason why from time to time I am off of working on microG is not financial, I am just not that kind of person to work all time on a single project.

that is exactly the point. this project seems to require more time than you are willing to put in it, for whatever reason. it needs more time, put in by whoever. you are probably already putting more time that you'd like to into this project, but you want the results (and not necessarily the tediousness of 90% of the work). wouldn't you like to manage a team of one or two hand picked programmers who are paid, maybe part-time, to follow your command on this project? "reverse this service and tell me how it works", "try making a prototype clean room implementation of it, structure it sort of in this way". some entity could pay for those guys. or they could share some employees part time on your project. some entity could find candidates in your area for you to interview. and they could pay you for all the hours you put in.

I can't see a setup in which the style of Marvin would work with a backed, structured setup.
To have a strong supporter/additional developers and a goal of microg (e.g. cover certain API functionality within certain timeframe), the project needs management. This will require constant attention, responsiveness and decisions. The "on and off" style Marvin prefers is suited for developing as part of a group when someone manages and balances this, but not as the centerpiece steering it as a bigger project.

and some entity could provide a part time project manager, who would still be under marvin's command.
my point is that: 1) all projects eventually die, but this one could live much longer with a serious backer. 2) a serious backer might be found (see the list in my first post to begin with) if we look for it, because this project is REALLY important.

as this project becomes bigger and starts making noise, Google will undoubtedly take notice and may even want to shut it down.

i couldn't care less. in fact, that would be the definition of this project's success. i'd like google to keep on crossing the line of anticompetitive practices: NDA contract for play store to lock in device manufacturers, safetynet to lock out competing devices, app bundles to lock out competing stores, closing down cloud messaging to lock out competing app stacks, etc. Android is perfectly capable of having a play store as a non-privileged regular app. i want the EU to force google to end all this crap and make them offer the play store as a regular app for any device, for free or the same price to use if it comes pre-installed in phones. want them to split the play store into a company separate from that which develops android. the more crap Google keeps on doing the better now, because they are waaaay past any reasonable line.

There are also tons of generic tablets from companies that may not want to or be able to get certified by Google to run Play Services.

it's not that easy. the contract goog makes OEM sign have them transitively apply the restrictions on manufacturing partners. if Foxconn manufactures for any google-signed OEM, they must say no to every non-signed OEM that wants to contract them. otherwise the breach contract with the signed-in OEM; and also google can go after said OEM (and i think this has happened). and what about supply chain restrictions? i have no idea, but there could be some too.
that's why it was sort of a miracle when Amazon could pull off the first non-google devices. nobody thought they would find chinese manufacturers that weren't under transitive contract.
regarding the tons of generic tablets you mention, i guess most of them probably google could shut down, but they don't care or want to. BTW, i believe none of this crap would withstand serious anti-trust scrutiny.

this thread has morphed into something off-topic of my first post. we are again discussing how best to help marvin and that is great, just not in the context of this thread.

I disagree. Every comment in here was about project funding and growth. I think most of us are just taking a different viewpoints on how growth could look like and how funding could be needed.
I fully follow you in your enthusiasm for microg. I think it is a wonderful project and it would deserve to be something big:
If you look on the smartphone market for a widely available system that you can tinker with, there is only Android. iOS is closed and other alternatives are just marginal. Microg is the only option to live in that - with using as little as possible from google frameworks  but being able to integrate. With Fuchsia coming, it might be even more important to have an independent option. Microg is basically the little gaulish village.
What I tried to say in my post before and now: Jumping from a one person project with part time involvement to a managed project setup with professionally hired participants, management and funding is quite something. With microg only being fully understand by @mar-v-in  himself, you will need him to take part in that transformation (to not start all over).
I don't think that can be ignored if you want to go forward. It is good to have a vision and target, but that also can be quite intimidating if the step is too big. Fundamentally the vision and target needs to be shared by marvin.

To leave the theoretic realm and put something out there to think about for marvin and anyone participating here. Some small practical steps:
Development

Include 2 already known developers (e.g., voidstarstar, nanolx, amills) into the project. Do a few sessions with them running through the existing code, explaining what it is about and where work is needed.
Plan small improvement steps in which the new ones can get comfortable with microg and learn.
marvin support, help and oversee them (and can do his own development parts)
marvin does final commits

I think this is possible, as marvin stated he would be willing to get an intern (above mentioned are probably way more than that) and it would keep control with him.
Issues

Include others to help do support (e.g., voidstarstar, nanolx, ale5000, myself) and sort issues
Timer on all existing issues to retest and update if still relevant, otherwise close and cleanup
Connect with development above to show what is being worked on

This should be possible, as most of us already do support on issues. It would just give us some structured way to sort and clean up
Documentation and ancillary

Create some guideline on what is needed, e.g., API status, documentation updates, installer
Have community wiki the documentation (think that is possible already, but I think no one dares to touch)

As said above, I think this is possible, just some guideline is needed where to work on.
This could be a first low risk, light touch start of growing and creation of structures that probably would be needed for further steps. All without investor search, hiring, contracting, etc. Of course all depending on the individual willingness. But of course it increases the level of responsibility.
Just food for thought

well, i'm not any good at this organizational work you are trying to do here. with this thread i wanted to discuss if there's a chance of some entity the likes of Amazon could do it for us. regarding volunteers, i think marvin needs someone local with whom he can physically meet; that's why employees seem more feasible to me. anyway, if someone can reach some entity that could help, maybe take the plunge.

From reading this thread, it sounds like funding and motivation are not the primary stumbling blocks for this project, but it sounds like there is agreement that structured organizational support could be valuable.
One option I didn't see mentioned above would be joining an umbrella organization like the Apache Foundation (I notice microG is already under the Apache license). An advantage of this approach (as opposed to trying to get a Samsung or an Amazon interested in contributing to MicroG) is that there is already a well-defined path to apply and join, and they would be familiar with the issues faced by scrappy FLOSS software projects.
Thanks again to marvin for producing such a useful piece of software!

@bjmc the problem with larger umbrella organizations is that most of them are at least partially funded by Google. While Google is not actively working against anything microG related, they might not be happy to directly or indirectly fund its development. Even if Google is not against an inclusion of microG in the umbrella org, the umbrella org might see a conflict of interest and a future risk of funding.
I don't know how ASF thinks about this, but I certainly don't want them to be in the position to decide about having Google as a platinum sponsor (>$125k/year) or accepting microG under their umbrella

@mar-v-in That's a good point. On the other hand, Google funds other nominal competitors like Mozilla. I assume a massive company like Google isn't all that concerned about a threat from microG, and I'd be surprised if it was worth the bad PR for them to give ASF a hard time about it. Still, I see your point about not wanting to put a foundation in the position of having to make a difficult choice.
There's also the https://e.foundation/ that has similar goals to microG, and I believe uses microG in their distribution. Certainly, they're not going to be seeking Google sponsorship any time soon! At a bare minimum, it seems like it would be fair to ask them to highlight the contributions of the microG project more prominently in their own marketing.

BTW regarding:

vendors producing Android phones cannot bundle microg without breaching contract

That should be a thing of the past, because of the recent EU anticompetitive/antitrust fine. AFAIK they are not allowed to disallow this, anymore.

That should be a thing of the past, because of the recent EU anticompetitive/antitrust fine. AFAIK they are not allowed to disallow this, anymore.

that's absolutely great. but who does it affect and when? there's an appeal. all the OEMs and their supply chain signed agreements that they wouldn't do forks. if the EU's decision stands the appeals, where is it in force? who does it affect? does it affect a supplier in china with which Google never had direct contact, but which signed a contract in S.Korea with some OEM? if it does, will the supplier go against Samsung or Google and breach contract on the grounds that the contract is illegal... in the EU? even if the supplier would prevail, does it want to embark in an endless legal battle or just keep supplying? is it even possible, does it have the resources?
i imagine it's just as hard today to build an android fork device in this world as it was a year ago.
given that android fork devices are hard to build everywhere due to google's obstruction, and that to market and android fork in the EU you first have to build it somewhere, the EU regulators should make google take legal steps to proactively annul all those contracts they signed or forced entities to sign in order to keep doing business in the EU.
besides that, they should open the play store to access (including paid apps) 1) via a public API or website or 2) via a downloadable play store client that works on any phone. they shouldn't be allowed to force the sale of a product (a googlephone) to sell another (an app) when there is no technical need.
and similarly, safety net shouldn't be allowed as it artificially requires a googlephone. they purportedly market safety net as a data safeguard for users but it ends up being an device lockout mechanism. the EU should force google to 1) make users opt-in to google's "protection" before running remote attestation (spyware) in their devices, and 2) provide users with an opt-out to google's oh so generous protection, meaning that for those users, google will attest what the user chooses to 3rd parties without running any spyware and without alerting 3rd parties of the situation.

BTW, anyway, I also doubt many hardware vendors would even want to ship microG. They rather want to ship their own app stores, think of Amazon or Chinese vendors or so. (and those already do so)

It might be a good idea to open two issues in which we could build a list of what documentation work is needed, one for user-facing documentation, and one for developer-facing documentation. I would open them myself but I've barely interacted with the project, having only become a user a couple months ago. But I agree that the scattershot documentation is very problematic.

Maybe time to consider a proposal with Huawei. Hahaha..
Regards,
Benyamin Limanto
Send via Outlook for Androidhttps://aka.ms/ghei36 from my ASUS Pegasus X005

From: Deutrino<EMAIL_ADDRESS>Sent: Friday, May 24, 2019 6:00:54 AM
To: microg/android_packages_apps_GmsCore
Cc: Benyamin Limanto; Mention
Subject: Re: [microg/android_packages_apps_GmsCore] Project funding and growth (#753)
It might be a good idea to open two issues in which we could build a list of what documentation work is needed, one for user-facing documentation, and one for developer-facing documentation. I would open them myself but I've barely interacted with the project, having only become a user a couple months ago. But I agree that the scattershot documentation is very problematic.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microg/android_packages_apps_GmsCore/issues/753?email_source=notifications&email_token=AAVP2NHNVY2JWLFEPGRGPUTPW4O2NA5CNFSM4HFZGU42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWDWYUQ#issuecomment-495414354, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAVP2NDKBFXAQUBEXJIVENTPW4O2NANCNFSM4HFZGU4Q.

Could the new https://github.com/sponsors be an option?

Maybe time to consider a proposal with Huawei. Hahaha.. Regards, Benyamin Limanto Send via Outlook for Androidhttps://aka.ms/ghei36 from my ASUS Pegasus X005
…
________________________________ From: Deutrino<EMAIL_ADDRESS>Sent: Friday, May 24, 2019 6:00:54 AM To: microg/android_packages_apps_GmsCore Cc: Benyamin Limanto; Mention Subject: Re: [microg/android_packages_apps_GmsCore] Project funding and growth (#753) It might be a good idea to open two issues in which we could build a list of what documentation work is needed, one for user-facing documentation, and one for developer-facing documentation. I would open them myself but I've barely interacted with the project, having only become a user a couple months ago. But I agree that the scattershot documentation is very problematic. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub<#753?email_source=notifications&email_token=AAVP2NHNVY2JWLFEPGRGPUTPW4O2NA5CNFSM4HFZGU42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWDWYUQ#issuecomment-495414354>, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAVP2NDKBFXAQUBEXJIVENTPW4O2NANCNFSM4HFZGU4Q.

Is actually not a bad idea but I don't think they will

I second @rugk's question. In particular, I'm donating through BountySource right now and would rather do that through GitHub if it meant that they double the amount.

@rugk @codethief I already joined their waitlist.

Kinda on-topic: congratulions @ale5000-git
(in case someone missed it, he's (I suppose /he/ is correct) now the second member of the microG project)

Additionally, some organizations also announced willingness to financially support additional contributors, for example in form of a paid summer internship. Unfortunately there haven't been any good candidates for such funding yet. (Please let me know if you think you are one)

Maybe we could put up some kind of notice about this on https://microg.org/ or in wiki or in README? Just a thought.


Vitest not starting up due to failed version check on windows

re-raising #88 because it was closed but the issue is still occurring for many people (myself included):

Describe the bug Hi there, Every time I start up vscode it keeps telling me, "Because Vitest version < 0.12.0 for every workspace folder, run/debug/watch tests from Vitest extension disabled."
Tried uninstall / install but it won't come up again.
Sth. I should be aware off ?
Thx!
To Reproduce have vitest 0.23.4 installed, used the cmd: npm init vue@3 to create a totally new package
installed your vitest extension.
Restart vscode, see error appearing.
Expected behavior possible to start the tests through test explorer or using the green play icon
Screenshots If applicable, add screenshots to help explain your problem.
Environment windows 10, vscode : Version: 1.71.2 (user setup) Commit: 74b1f979648cc44d385a2286793c226e611f59e7 Datum: 2022-09-14T21:03:37.738Z Electron: 19.0.12 Chromium: 102.0.5005.167 Node.js: 16.14.2 V8: <IP_ADDRESS>-electron.0 Betriebssystem: Windows_NT x64 10.0.19044 Sandkasten: No
* OS: [e.g. macOS]

* VSCode version:

* Vitest version:

* Vitest plugin version:

Additional context same setup on macos works

mac os +1

any workaround?

I was also facing the same issue of "not detecting vitest version correctly from vitest vscode extension upon opening of the workspace". However, there was no problem when I installed the extension for the first time while setting up my project in the workspace.
Recently I tried adding "vitest.enable": true and "vitest.commandLine": "npx vitest" in vscode workspace settings and boom! it is working fine now.

I can confirm it on Linux, too.
It seems, reading from the logs, that the extension is using a wrong execution command:
[INFO 9:22:38 AM] Trying to get vitest version from /home/my/software/vscode/VSCode-linux-x64/code-insiders /home/my/dev/node_modules/.bin/vitest -v...
[INFO 9:22:38 AM] Error: Cannot get vitest version. Please open an issue at https://github.com/vitest-dev/vscode/issues and join the logs above.
Is it trying to run vitest -v through vscode?

It started happening  both on my windows and mac machines. Any insight on why?

This is occurring for me on Mac as well, creating a brand new sveltekit app using Typescript, eslint, prettier, playwrite, and vitest.  It seems to be an issue specifically with pnpm.
This command works fine and creates a project where vscode works fine:
npm create svelte@latest vitest_clean
This command produces the vitest version < 0.12.0 error as seen in screenshot below:
pnpm create svelte@latest vitest_pnpm

This somehow fixed itself on my end. Didn't do anything specifically!

This is interesting, it comes and goes - and I don't know due to what.

Hello there, I finally want to try the new Yarn with PnP and seem to break a lot of vscode plugin.
Got :
Vitest Workspace [project]: Vitest version = undefined

For me this was caused by a blank space in the path to my project.
After switching from C:\The Path\To My\Project to C:\The_Path\To_My\Project the vitest plugin was loading correctly again.
While this workaround might work, this is still a big issue since changing the path might not always be as painless as it was in my case.

In my particular case, this was caused by a blank space in the path to my project.
After switching from C:\The Path\To My\Project to C:\The_Path\To_My\Project the vitest plugin was loading correctly again. (Just saw that this was also one of the workarounds mentioned in #88.)
While this workaround might work for me, this is still a big issue since changing the path might not always be as painless as it was in my case.

Interesting but not my problem since I dont have any blank space in my project path

I'll create a new issue then

I'm on Windows changing the PATH settings, helped.
I have an environment variable %NODE_HOME% that points to the node installation and the PATH variable contains this (e.g. %NODE_HOME%';%JAVA_HOME%/bin;%M2_HOME%/bin). I can start node from the command line/Git Bash/Powershell this way. But executing the vitest.cmd file in node_modules/.bin (which is what the extension also tries to do), gives the error that node can not be found. Removing the %NODE_HOME% varialbe from PATH and adding the path to node directly, fixes this problem and the vitest.cmd can be executed and the plugin also detects the vitest version.
So the issue seems to be vitest itself (or the .cmd file it creates), which seems to handle variables in the PATH variable incorrectly or something.

It may have something to do with the node version. After executing nvm use 18, reload vscode will work normally.

This should be fixed in pre-release 0.5.0 and higher. Note that the extension now requires Vitest 1.4.0 or higher.


Quasar luminosity function

Comments Regarding PR Request Titled "Implemented Realistic Redshift Determination"

New Function: convert_magnitude()
This new function converts between apparent and absolute magnitudes using K-corrections. K-corrections for the i-band were sourced from Table 4 of Richards et al. 2006 (DOI: 10.1086/503559). These corrections are stored in the added local txt file named quasar_i_band_K_corrections_Richards_et_al_2006.txt

New Function: n_comoving()
This function determines the comoving number density of quasars for a given redshift. It integrates dPhi/dM, as computed by the dPhi_dM() function, over a specified range of absolute magnitudes. Note that the absolute magnitudes must be derived from a defined range of apparent magnitudes to avoid the need for a change of variables.

New Function: generate_quasar_redshifts()
This function incorporates redshift determination using the redshifts_from_comoving_density() function from skypy.galaxies.redshift.

Miscellaneous Adjustments
Adjusted previously implemented functions (compute_cdf_data(), inverse_cdf_fits_for_redshifts(), quasar_sample()) to utilize the redshift values generated by generate_quasar_redshifts().Added test functions for all the new functions to ensure they work correctly.

**Comments Regarding PR Request Titled "Minor Changes From sibirrer and Codecov accounted for:"

Dynamic Data File Loading
Implemented dynamic loading of the data file data/Quasar K-Corrections/i_band_Richards_et_al_2006.txt  within the initialization step of the QuasarRate class. This change ensures flexibility in specifying the data file path.

Enhanced Error Handling
Modified the n_comoving() function to not raise warnings for integral values that are negative or NaN. This was done so that my tests can be covered by codecov while knowing that negative or NaN values weren't physically possible.

Results
Based on the coverage module analysis, the test suite achieves a coverage of 98% across the codebase.

Next Steps
Seek feedback from peers and reviewers to ensure alignment with project requirements and best practices.

Summary of PR:
This PR introduces the QuasarRate class, designed to calculate quasar luminosity functions and generate quasar samples using various cosmological parameters and observational data. Key features of the class include methods for computing break absolute magnitudes, parametric luminosity functions, comoving number densities of quasars, cumulative distribution function data, and generating random quasar samples with associated i-band magnitudes.


Manual tests for TCP certificate pinning

I used TrustKit to pin certificates to my TCP over TLS connection as described in #76
I want to test it out.
I replaced some characters in the pinned public key and it rejected the connection, I replaced the pinned hostname and it rejected the connection.
Now I want to do some manual security tests on the app, so I looked at Zap but it only supports proxying http connections and I got a plain old TCP connection.
Do you know how can I do something like that?
Is there another, simpler way to get the same level of test Zap provides?
How would you go about testing something like that?
I know it's not an issue with the library, but it might be something others find useful, and may be a starting point for adding testing strategies to the documentation.

Sure - last time I had to do this the tools weren't as easy to use as Zap or Fiddler. I've had success with https://github.com/nccgroup/tcpprox , but I was told that https://mitmproxy.org/ is pretty good too. Good luck and let me know if you find anything odd!

Thanks!
I'll try and document the complicated parts and share how it went...


Step one to fixing home page: remove zip code search box

First step in fixing #193 is lets remove the search box for now and users will just have click campaigns on the header (again this is interim)

I'm on it!


Build error<EMAIL_ADDRESS>build-prod: cross-env NODE_ENV=production gulp build

Hi @nolimits4web please, can you help me to compile the dom7 framework? When I running the cml npm -verbose run build-prod I receive the following error:
npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli   '/usr/local/bin/npm',
npm verb cli   '-verbose',
npm verb cli   'run',
npm verb cli   'build-prod' ]
npm info using<EMAIL_ADDRESS>npm info using<EMAIL_ADDRESS>npm verb run-script [ 'prebuild-prod', 'build-prod', 'postbuild-prod' ]
npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>npm info lifecycle<EMAIL_ADDRESS><EMAIL_ADDRESS>
><EMAIL_ADDRESS>build-prod /Volumes/development/openlibs/dom7
> cross-env NODE_ENV=production gulp build

gulp[2197]: ../src/node_contextify.cc:628:static void node::contextify::ContextifyScript::New(const FunctionCallbackInfo<v8::Value> &): Assertion `args[1]->IsString()' failed.
 1: 0x10006302f node::Abort() [/usr/local/bin/node]
 2: 0x100062f61 node::PrintErrorString(char const*, ...) [/usr/local/bin/node]
 3: 0x10006093d node::contextify::ContextifyScript::New(v8::FunctionCallbackInfo<v8::Value> const&) [/usr/local/bin/node]
 4: 0x100221f37 v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) [/usr/local/bin/node]
 5: 0x1002211f8 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<true>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/usr/local/bin/node]
 6: 0x100220bd7 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/usr/local/bin/node]
 7: 0x2bbe3444fb7d
 8: 0x2bbe34409e66
 9: 0x2bbe3448a400
npm verb lifecycle<EMAIL_ADDRESS>unsafe-perm in lifecycle true
npm verb lifecycle<EMAIL_ADDRESS>PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/Volumes/development/openlibs/dom7/node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
npm verb lifecycle<EMAIL_ADDRESS>CWD: /Volumes/development/openlibs/dom7
npm info lifecycle<EMAIL_ADDRESS>Failed to exec build-prod script
npm verb stack Error<EMAIL_ADDRESS>build-prod: `cross-env NODE_ENV=production gulp build`
npm verb stack Exit status 1
npm verb stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
npm verb stack     at EventEmitter.emit (events.js:189:13)
npm verb stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
npm verb stack     at ChildProcess.emit (events.js:189:13)
npm verb stack     at maybeClose (internal/child_process.js:978:16)
npm verb stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
npm verb pkgid<EMAIL_ADDRESS>npm verb cwd /Volumes/development/openlibs/dom7
npm verb Darwin 17.7.0
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "-verbose" "run" "build-prod"
npm verb node v11.4.0
npm verb npm  v6.5.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR<EMAIL_ADDRESS>build-prod: `cross-env NODE_ENV=production gulp build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build-prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm verb exit [ 1, true ]
npm timing npm Completed in 564ms

Thank you in advance.
Valentina

Resolved.
The incompatibility between gulp.js and node.js versions cause the error.
After I downgrading node.js to the 9.11.2 version, the build working fine.
Just a suggest, indicate the main components version in the documentation can help to reduce the errors. :)
Thanks and Happy Christmas,
V


"POTENTIAL DEADLOCK" on beacon chain head update

vouch-deadlock.txt

There are two pieces here.  The first is the exit on potential deadlock, which is working as intended.  This relates back to our "fail fast" methodology, where if something isn't doing what it should then we bail and allow the restart to take care of things.
The second is why the update is taking so long.  Due to the nature of Vouch, with various network connections, we can have to wait a long time for responses.  That said, 30 seconds is too long given that we're running on a 12-second tick.  We will take a look through the code and ensure that any slot-related activities have a suitable timeout attached to them to ensure that the overall operation either completes within the given time slot, or fails.

The code path for head updates has been optimised in release 1.3.2 so this should no longer occur.


Illustration added to ST chapter

Added an illustration to the spatial transcriptomics chapter.

Thanks so much @oospina


infer key dependency and prefetch state for downstream executor

statement ok
create table t (v1 int, v2 int, v3 int);

statement ok
explain create materialized view mv1 as
select  c1,
	count(*)
	from
	(select t1.v1 as c1,
		t2.v2 as c2
		from
		t as t1
		INNER JOIN
		t as t2
		ON t1.v1=t2.v1)
group by c1;
----
RwStreamMaterialize(name=[mv1])
  RwStreamAgg(group=[{0}], agg#0=[COUNT()])
    RwStreamHashJoin(condition=[=($0, $2)], joinType=[inner])
      RwStreamExchange(distribution=[RwDistributionTrait{type=HASH_DISTRIBUTED, keys=[0]}], collation=[[]])
        RwStreamChain(all=[true], tableId=[0.0.17], primaryKeyIndices=[[1]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>]])
          RwStreamBatchPlan(table=[[main, t]], tableId=[0.0.17], primaryKeyIndices=[[1]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>]])
      RwStreamExchange(distribution=[RwDistributionTrait{type=HASH_DISTRIBUTED, keys=[0]}], collation=[[]])
        RwStreamChain(all=[true], tableId=[0.0.17], primaryKeyIndices=[[1]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>]])
          RwStreamBatchPlan(table=[[main, t]], tableId=[0.0.17], primaryKeyIndices=[[1]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>]])

In this case, Agg is downstream of HashJoin. The group-by-key of Agg happens to be the same as the join key of HashJoin. When a new input record comes from the left input of HashJoin, we fetch/probe the state of the right join side. At the same time, we can prefetch the state of Agg with respect to the same key:

If HashJoin produces nothing, the prefetch does not help.
if HashJoin does produce output, then ideally, the fetching of Agg's state is overlapped with the fetching of HashJoin's right side state.

Considering the latency of get from S3 is likely to dominate the overall e2e latency, the improvement could be substantial.
statement ok
explain create materialized view mv2 as
select  *
	from
	t as t1
	INNER JOIN
	(select t2.v1 as v1,
		SUM(t2.v2)
		from
		t as t2
		group by t2.v1) as t3
	ON t1.v1 = t3.v1;
----
RwStreamMaterialize(name=[mv2])
  RwStreamHashJoin(condition=[=($0, $4)], joinType=[inner])
    RwStreamExchange(distribution=[RwDistributionTrait{type=HASH_DISTRIBUTED, keys=[0]}], collation=[[]])
      RwStreamChain(all=[true], tableId=[0.0.17], primaryKeyIndices=[[3]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>]])
        RwStreamBatchPlan(table=[[main, t]], tableId=[0.0.17], primaryKeyIndices=[[3]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>]])
    RwStreamExchange(distribution=[RwDistributionTrait{type=HASH_DISTRIBUTED, keys=[0]}], collation=[[]])
      RwStreamProject(v1=[$0], EXPR$1=[$2])
        RwStreamAgg(group=[{0}], agg#0=[COUNT()], EXPR$1=[SUM($1)])
          RwStreamExchange(distribution=[RwDistributionTrait{type=HASH_DISTRIBUTED, keys=[0]}], collation=[[]])
            RwStreamChain(all=[true], tableId=[0.0.17], primaryKeyIndices=[[2]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>]])
              RwStreamBatchPlan(table=[[main, t]], tableId=[0.0.17], primaryKeyIndices=[[2]], columnIds=[[<IP_ADDRESS>, <IP_ADDRESS>, <IP_ADDRESS>]])

In this case, we have an Agg as the right child of HashJoin. (The Exchange between them should be optimized away as the right child has already been partitioned by key=[0] once before.)
Unlike the case above, the Agg in this case is upstream of HashJoin and must produce some outputs. Therefore, prefetching the state for HashJoin while fetching the state for Agg is very likely to be beneficial.

Just a thought. The scenarios may be quite limited in real workload though. Sort of like operator fusion but it only fuses the state access but not computation.

Good point!
This can also be done by query optimization:
1. `Join -> Agg` (`->` means before) with the same group key and join key can be optimized into `Agg -> Join` (see also [Eager Aggregation and Lazy Aggregation](https://www.vldb.org/conf/1995/P345.PDF)

2. `Agg -> Join` with the same group key and join key can be optimized into a single special physical operator `HashGroupJoin` to reuse the hash table between HashAgg and HashJoin.

In this way, Agg and Join will be fused into one operator.

I'm wondering if anyone is working on this at the moment? If not I'm interested in implementing this.

Good point!
This can also be done by query optimization:
1. `Join -> Agg` (`->` means before) with the same group key and join key can be optimized into `Agg -> Join` (see also [Eager Aggregation and Lazy Aggregation](https://www.vldb.org/conf/1995/P345.PDF)

2. `Agg -> Join` with the same group key and join key can be optimized into a single special physical operator `HashGroupJoin` to reuse the hash table between HashAgg and HashJoin.

In this way, Agg and Join will be fused into one operator.

I'm wondering if anyone is working on this at the moment? If not I'm interested in implementing this.

This might need some work and I would recommend to defer it until some real cases appear.


.NET Framework 4.8.1 (August 9th) breaks our desktop application for end-users. Where can I report this?

How and where are we nowadays supposed to report problems like this?

Ok it was clearly marked at the top of this page....
https://developercommunity.visualstudio.com/home


MIC-251: Rename ACCT supporting to Support through ACCT

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 83.81%. Comparing base (353eca0) to head (d511ca8).

Additional details and impacted files
@@            Coverage Diff            @@
##               main      #78   +/-   ##
=========================================
  Coverage     83.81%   83.81%
  Complexity      485      485
=========================================
  Files           112      112
  Lines          1748     1748
  Branches         83       83
=========================================
  Hits           1465     1465
  Misses          246      246
  Partials         37       37

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


Add eip6800 (verkle) feature to configs/feature.yaml

Add eip6800 feature to the configuration file for the repo to be able to build and package releases with verkle fixtures easily.
In PR https://github.com/ethereum/execution-spec-tests/pull/573 we have an example of how this was accomplished for EOF, and we can similarly do this for verkle:

Add CancunEIP6800 (or similar) to activate verkle in an isolated way, similar to our CancunEIP7692 fork for EOF. Although it could be possible that we need more than one fork for Verkle, e.g. to have different conversion strides.
Add a eip6800 evm configuration to file configs/evm.yaml similar to eip7692 that we added to EOF.
Add the correct config to tox.ini, like the one added for EOF.
Optionally add and enable a tox verification matrix configuration for verkle in tox_verify.yaml.

Config and evm type is added in this commit: 19d73dea80b6ea6696779a84f4684b14ed76afcc of verkle/main
Tox verification step is added here and commented out (for now): 13a166a8141d496b13703968f44264f42b9cba62

Added the first release here: https://github.com/ethereum/execution-spec-tests/releases/tag/eip6800%40v0.0.1
I would ideally like to finalize the changes of verkle/main and merge them into main before we close this issue.


Follow a path

In other mapping software like ArcGIS and OCAD there is an option for following a polyline/polygon when creating a new object instead of adding all nodes one by one.
This function would be amazing and time saving if iD had it!

I'm reading this issue as being like the Follow Line feature in JOSM/Potlatch2.

Looks like it should be enough to just select first and last node you want from a path segment, isn't it? Maybe three nodes if it's a closed shape to determine direction.

bhousel made a good point in IRC, which deserves consideration, so I want to preserve for posterity: "it could just be a key that connects the next point, and you can repeatedly press it to connect more points."

The logic in #3539 for staying on the same line will come in handy here.

https://josm.openstreetmap.de/wiki/Help/Action/FollowLine has  an example of how this works in JOSM.
The DWG has recently been in discussions with an user who was mapping everything as multipolygons, because splitting a way into segments and building an MP in iD is easier than manually following big parts of another line. Having this feature would directly help this user's mapping.

I've come across some mapping tasks for this as well. It would be nice to click a node (A) on a complicated poly, click the next node (B) and tap some key (f for "follow"?) and have new nodes added to follow in the direction A->B->....

We should also support to follow a path with constant distance. Otherwise, we would encourage users to glue landuses to highways.

I have an idea for how this could be integrated well into the current UI:
Start drawing a line like this, and then shift-click on the the point farther along the way you want to follow:

The result would look like this:

The behavior would also work when drawing areas.
This is different from JOSM where you just click F to continue drawing along the current way, but it seems like a better solution for iD since users would not have to hold down F for a certain amount of time.

I have an idea for how this could be integrated well into the current UI:
Start drawing a line like this, and then shift-click on the the point farther along the way you want to follow:

Looks like a very sane and time efficient method to me. I would really like to see this implemented in iD! 😃

Here is a patch and two gist: one for the action and one for the operation.
You must first select the target way (the one that will follow the source way), then the source way, then the starting point, then the ending point. There must not be any other point between the start point and end point on the target way, and both points must be connected to both the source and target ways. I did not create an icon in the toolbar nor any test or specs yet, but it is functional until someone finds the time to complete the code.

@kaligrafy Looks cool! Could you create a branch and draft pull request for what you've done so far? It's hard to work with code in gists.
Also, we're not updating the v3-prototype branch so this will need to go into develop, but only a few minor changes are needed for that.

OK, I'll try with the develop branch and add a pull request. I tested it a bit more this morning. It works most of the time, but there can be some issues when following can be done on two sides.

@kaligrafy Let me know if you need any assistance! I can help with the code issues once the PR is up.

I am working on a second action called smooth to add automatic curves to lines. When I'm done with it, I will review the code and provide a pull request for both actions.
The follow action does not work all the time (it fails when there are two sides to choose from or when the first point and last points are the starting and ending nodes of the target line). I will try to fix them.
I have a question: where is the code that loads the icon for the action? Where should I put the svg icon and where can I link it to the action? Thanks!

Now the gist is fixed for any kind of ways for source and target (closed, not closed, clockwais, counterclockwise) and no need to select the two intersecting points if there are only two between the source and target ways. I will post a pull request soon.

Now the gist is fixed for any kind of ways for source and target (closed, not closed, clockwise, counterclockwise) and no need to select the two intersecting points if there are only two between the source and target ways.

Great! Looking forward to the PR.

I am working on a second action called smooth to add automatic curves to lines.

Sounds interesting, but please make a separate PR since it's not related to following a path.

Where should I put the svg icon and where can I link it to the action?

Simply put the file under svg/iD-sprite/operations/ with the operation ID and it will be loaded automatically. Don't worry about the icon too much, we can work on that later.

Manual:

First select the target way (the one that willl follow)
Then select the source way (the one to follow)
If only 2 points intersect both the source and target ways, just press the F key.
If more than 2 points intersect both source and target ways:
Add the starting intersection point to the selection
Add the ending intersection point to the selection
Press the F key.

@kaligrafy: Any plans to resolve conflict PR #7649 or rather re-implement this greatly needed feature on the latest iD?

Well, unfrotunalty, I don't have the time right now to do that, but fell free to try to fix it if you think it could be usefull on the short term. Thanks!


Show concept hint

I have implemented concept hint for the past concepts in ch2. I think we should also implement it for the present concepts, there's for example concept 'the sufragettes' which not everyone is familiar with.
Let me know what you think! thank you

I think we should also implement it for the present concepts, there's for example concept 'the sufragettes' which not everyone is familiar with.

I see where you are coming from and that was also what I had in mind initially. However I ended up agreeing with Chiara that we'll only make descriptions available for past concepts. It took quite some time to get there, so at this stage I an not in favour of revisiting that decision.

The hint is now showing in ch2 when a past concept is shown.
Do we want to show the hint also in ch3? We should because there's chance you'll get past concepts that you haven't seen before. For that we need to identify concepts data in ch3 as past or present in the utility game.js function getRandomSelfOther
`export const getRandomTurnSelfOther = (priorInputs) => {
const conceptPair = getRandomConceptSelfOther(priorInputs)
return {
concept: conceptPair.self.name,
caption: conceptPair.self.caption,
conceptOther: conceptPair.other.concept,
valueOther: conceptPair.other.value,
captionOther: Where do you think the other visitor placed ${conceptPair.other.concept} on this spectrum?,
spectrumLeft: conceptPair.other.spectrumLeft,
spectrumRight: conceptPair.other.spectrumRight,
otherUser: conceptPair.other.user,
}
}`


Run validate-pyproject against Python packages as a vmklib task

https://github.com/abravalheri/validate-pyproject
Maybe this can be a better way to catch "we randomly changed how packaging works!" problems and deprecation warnings.

We should still do this.

bump


support component name in routes

What problem does this feature solve?
I wonder why the value of routes[i].component can not accept a component name string instead of the component object itself? If so, I can register router with pure string, like:
const router = new VueRouter({
  routes: [
    //{ path: '/user/:id', component: User }  // original syntax
    { path: '/user/:id', component: name }  // expected syntax,  the name was decided at run time
  ]
})

What does the proposed API look like?
const routes = [];

_.each(arr, , function(obj, i){
    var node = {  //造结点
        path: obj.pathString,
        component: obj.componentString  // 1st syntax
        //component: someFunction(obj.componentString)  // or 2nd syntax
    };
	routes.push(node);
});
const router = new VueRouter({
    routes
})

What prevent you from importing the components? That way it's explicit and the router instance can be read.
If you want to refer global components, you can already do it by passing Vue.component(name) to the component option 🙂


Veracode issue CWE252 - Unchecked Return Value in FIRCLSMultipartMimeStreamEncoder.m

Environment:

Xcode version: 12.3
Firebase SDK version: 7.3.0
Installation method: CocoaPods
Firebase Component: FirebaseCrashlytics

Description:
According to Veracode static scan, there are issues related to the following file:

FIRCLSMultipartMimeStreamEncoder.m - lines 102 and 110

The Veracode issue is "Unchecked Return Value": The result of this call to close() is not captured, so it cannot be checked for success. This can result in application instability or crashing if memory is not available.

Relevant Code: https://github.com/firebase/firebase-ios-sdk/blob/master/Crashlytics/Shared/FIRCLSNetworking/FIRCLSMultipartMimeStreamEncoder.m
Thank you!

Here's the lines of code in question. The open and close methods referenced are NSStream instance methods, and do not produce a return value.


Most Cited Papers and Correlating Authors to Topic Clusters Questions

Hi,
Is there any way of checking which countries / authors / institutes have been citing the papers within my csv file, as I would like to find out where the papers within my csv file are most prominently being cited.
I would also be interested in knowing if there is a way to correlate authors to topic clusters, in order to see which authors are most active in each of the clusters.
Thank you!

Every Document has a citations attribute that gives you a list of other papers that cited that particular document. You can use that to find out where papers are being cited. Not all data sources supported it (I believe the Scopus source does if you use search_scopus or refine_scopus).
For your second question, it is possible but it will require some Python scripting. First, train a topic model to get a topic vector per document. Next, loop over all the documents, for each document get the topic vector and loop over all the authors. You can then calculate the average over all the topic vectors for each author. It's definitely possible, but it will require some Python programming work.


Support for decimating read and update on time

Feature to allow limiting of the read and update rates for each source or target individually.

Current coverage is 100.00%

Merging #7 into master will not affect coverage as of 438b507

@@            master      #7   diff @@
======================================
  Files           10      11     +1
  Stmts          354     397    +43
  Branches         0       0
  Methods          0       0
======================================
+ Hit            354     397    +43
  Partial          0       0
  Missed           0       0

Review entire Coverage Diff as of 438b507

Powered by Codecov. Updated on successful CI builds.


[Bug]: Executing sql does not display traceid

ODC version
ODC 4.2.2
OB version
OB 4.2.1
What happened?
Execute the following SQL didn't get to the traceid.
SELECT
TABLE_OWNER,
TABLE_NAME,
COLUMN_POSITION,
COLUMN_NAME,
INDEX_NAME
FROM
ALL_IND_COLUMNS
WHERE
TABLE_OWNER = 'GSH' AND TABLE_NAME = 'TEST_INDEX1'
ORDER BY
COLUMN_POSITION ASC

What did you expect to happen?
Display the traceid
How can we reproduce it (as minimally and precisely as possible)?
follow what happened.
Anything else we need to know?
No response
Cloud
No response

duplicate with #676


BUG: special: factorial2(-1) equal to 1, not 0

Describe your issue.
Calculate n!!. If n < 0, the return value is 0.
but
Reproducing Code Example
from scipy.special import factorial2
factorial2(-1)==1

Error message
none

SciPy/NumPy/Python version and system information
1.11.1 1.25.1 sys.version_info(major=3, minor=11, micro=7, releaselevel='final', serial=0)

Hi @gh85 , can you reproduce with SciPy version 1.12.0?

I assumed that @gh85 was saying that factorial2(-1)==1 returns True, while the documentation says that

If n < 0, the return value is 0

I just checked on main and it indeed returns 0, so if that was the case then it is no longer.

Already on 1.11 this returns 0 for n<0:
https://github.com/scipy/scipy/blob/1d3a067c2ccd0a6efddeb3194163aa9a3879d26e/scipy/special/_basic.py#L2992-L2993


Pub Get issue

Process finished with exit code 1
Because camera_camera >=1.0.27 depends on rxdart ^0.23.1 and csf.map.v1 depends on rxdart ^0.24.0, camera_camera >=1.0.27 is forbidden.
So, because csf.map.v1 depends on camera_camera ^1.0.31, version solving failed.
pub get failed (1; So, because csf.map.v1 depends on camera_camera ^1.0.31, version solving failed.)
i update my dependency so... rxdart from 0.23 to 0.24.0 and camera from 1.0.27 to 1.0.31
but seems don't update... i tried to invalidate cache and restart and flutter clean.. error again...

I will solve it

ok ..i update rx dart and was ok ..but now i have new error i add
<application
    <activity
        android:name="com.yalantis.ucrop.UCropActivity"
        android:screenOrientation="portrait"
<EMAIL_ADDRESS>     <activity
        android:name=".MainActivity"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

</application>

After i add   minSdkVersion 21 in build gradle ... but now i have this error...
AILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:processDebugResources'.

A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
Android resource linking failed
C:\Users\Dani\OneDrive\Documents\csf2020\android\app\src\main\AndroidManifest.xml:14:9-17:71: AAPT: error: resource style/Theme.AppCompat.Light.NoActionBar (aka csf.map.v1:style/Theme.AppCompat.Light.NoActionBar) not found.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 4s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin camera...
Running Gradle task 'assembleAarRelease'...
√ Built build\app\outputs\repo.
Building plugin cloud_firestore...
Running Gradle task 'assembleAarRelease'...
Finished with error: The plugin cloud_firestore could not be built due to the issue above.

Solve !!! thxxx


Image getting stuck in storage>runtime>temp

Description
I have Resize on upload enabled and set to 2000w and 2000h - I can see the images uploaded and these appear as resized versions inside the craft storage>runtime>temp - but they don't get moved over to the assets folder and the bank-end results in the progress bar staying on the screen and nothing happening. I don't see any messages in the logs and I don't see any stuck tasks in the DB.
Working locally on MAMP Pro and I have tried both imagick and gd (although I suspect not an issue as the image is resized).
Steps to reproduce

Upload the asset via the asset editor or the template
Image resized but stays inside : storage>runtime>temp

Additional info

Plugin version: 1.0.1
Craft version: 2.6.2997

Thanks for the feedback all, environmental issues are a bit of a tricky business to debug and test. Its indeed interesting that it processes the image, but is unable to move. However, its at this point that its Craft's responsibility to move the temp image into its proper place.
I would imagine there's no Image Resizer or Craft logs that are helpful?

Closing - the Craft 2 version is no longer supported.


[move prover] implement pragma friend restricting calling context

Motivation
This PR implements a new function level spec pragma friend, hoping to simulate the friend visibility feature in Move before it is available. Right now this pragma is only used in DiemTimestamp.
If a function f has pragma friend = g in its spec block, then:

f will not be verified on its own(the same effect as pragma verify = false).
When f is supposed to be verified against some global invariants, its friend will be verified instead.
f can't be opaque.
Functions other than g can't call f.

Have you read the Contributing Guidelines on pull requests?
Yes.
Test Plan
Added two new tests.

/land

/land


Update @GDScript.xml

Adds a better way to iterate backwards over a range that avoids the [i - 1] index.

I agree, this is better.
Since you didn't amend your second commit, please squash your commits. https://docs.godotengine.org/en/stable/community/contributing/pr_workflow.html#the-interactive-rebase explains how.

I agree, this is better as it skips some subtractions. I'd add a comment that it prints 9, then 6, then 3 (or something like that)
Since you didn't amend your second commit, please squash your commits. https://docs.godotengine.org/en/stable/community/contributing/pr_workflow.html#the-interactive-rebase explains how.

Thanks. There's an existing code block that follows that shows the results.
I've found that the easy way to contribute to the docs is starting an edit right on GitHub, which is how I added this - is there a way to squash commits here? Is there a way to amend when then subsequently revising the file with edit?

No, this cannot be done in the GitHub web interface as far as I know. You need to use local git.

No, this cannot be done in the GitHub web interface as far as I know. You need to use local git.

Well, that rather defeats the value of starting with the web interface. It will be easier to just close this and resubmit.

New PR: #76650.

No, this cannot be done in the GitHub web interface as far as I know. You need to use local git.

Well, that rather defeats the value of starting with the web interface. It will be easier to just close this and resubmit.

@Koyper Just in case, for the future: if opening PR using the web interface means you won't be able to update it according to the comments / reviews / change requests, then please don't open PRs this way. Closing PR only to resubmit updated one does pollute the backlog, there are more just-noise-PRs to filter through etc. When opening a PR you should expect that changing/updating it might be needed.


Too many open files

So, sometimes when logstash is down, our long running scripts will report the normal queue.Empty + connectionError.
This is fine, however, when running with pytest, pytest will create an XML file at the end of the test, which fails due to do "Too many open files"
Are failed socket connections somehow lingering for long periods of time?
I also noticed that after long period of failing to connect to logstash, the sqlite3 connections failed (I'm assuming it's because of too many open sockets)
error	26-Apr-2019 02:44:43	20190426 02:44:43|worke:[ERROR] - Log processing error (queue size: 1031): unable to open database file
error	26-Apr-2019 02:44:43	Traceback (most recent call last):
error	26-Apr-2019 02:44:43	  File "/home.local/build/.local/share/virtualenvs/<redacted>-rYeAsF95/lib/python3.6/site-packages/logstash_async/worker.py", line 145, in _process_event
error	26-Apr-2019 02:44:43	    self._write_event_to_database()
error	26-Apr-2019 02:44:43	  File "/home.local/build/.local/share/virtualenvs/<redacted>-rYeAsF95/lib/python3.6/site-packages/logstash_async/worker.py", line 195, in _write_event_to_database
error	26-Apr-2019 02:44:43	    self._database.add_event(self._event)
error	26-Apr-2019 02:44:43	  File "/home.local/build/.local/share/virtualenvs/<redacted>-rYeAsF95/lib/python3.6/site-packages/logstash_async/database.py", line 94, in add_event
error	26-Apr-2019 02:44:43	    connection.execute(query, (event, False))
error	26-Apr-2019 02:44:43	sqlite3.OperationalError: unable to open database file

Looking at the code, I think this could be fixed by using a connection pool, rather than creating new connections everytime. It would be nice if there was a way to configure this to use a connection pool rather than creating new connections every time.

The connection pool sounds like a good idea.
When I find time, I'll probably going to implement it. If anyone else wants to do before, PRs are welcome :).
The "Too many open files" problem should be investigated.
Can you provide an example script or a stripped down version of your pytest suite?

The "Too many open files" is most likely because the lingering sockets that are waiting to be closed hit the ulimit of the linux system (hence unable to make any sqlite connections).
My case is really just 1 long running script inside a pytest readable format.
I would assume anyone would do something similar with the following:

Start logstash_async to a server that doesn't exist.
Start printing out log statements for a long period of time
Eventually hit this error(?)

I tried doing this on my windows machine at home w/ using
constants.QUEUED_EVENTS_FLUSH_INTERVAL = 1.0
constants.QUEUE_CHECK_INTERVAL = 0.1
constants.SOCKET_TIMEOUT = 0.1

but it doesn't seem that easy.
I might have this run for a long period of time on a separate linux VM and see if it runs into the issue..

to a server that doesn't exist what does this mean exactly? What kind of error do you get in your scenario? Timeouts or connection refused or connection reset or something else?
I'm currently testing with generating 10000 messages in a loop while trying to send it to a closed port (i.e. connection refused) and so far there is no increase in open file handles. Same queue/timeout settings as yours above.

Yeah.. I tried the same, and I haven't been getting results.
This error happened when the ELK stack had some down time, and my test script ships the logs over, which were failing. Unfortunately due to company policy, I cannot share my code, but I am trying to find something that will reproduce the issue. Ever since that day, I haven't been able to run into the issue again (I haven't actively tried either).
Looking back at the log again, here's the error that first popped up:

sorry I pressed Enter too early for the first part.
I haven't been able to reproduce this either. Due to company policy, I cannot share my test script, so I'm trying to figure out a way to reproduce this problem.
While running my script, ELK had downtime, which was the specific reason why I ran into this in the first place.
 This goes on for about 2.5 hours with this error.  This indicates a previous error.

Afterwards, it repeatedly reports this error:
error	26-Apr-2019 02:42:01	20190426 02:42:01|worke:[ERROR] - Log processing error (queue size:  14): unable to open database file
error	26-Apr-2019 02:42:01	Traceback (most recent call last):
error	26-Apr-2019 02:42:01	  File "/home.local/build/.local/share/virtualenvs/star-rYeAsF95/lib/python3.6/site-packages/logstash_async/worker.py", line 145, in _process_event
error	26-Apr-2019 02:42:01	    self._write_event_to_database()
error	26-Apr-2019 02:42:01	  File "/home.local/build/.local/share/virtualenvs/star-rYeAsF95/lib/python3.6/site-packages/logstash_async/worker.py", line 195, in _write_event_to_database
error	26-Apr-2019 02:42:01	    self._database.add_event(self._event)
error	26-Apr-2019 02:42:01	  File "/home.local/build/.local/share/virtualenvs/star-rYeAsF95/lib/python3.6/site-packages/logstash_async/database.py", line 94, in add_event
error	26-Apr-2019 02:42:01	    connection.execute(query, (event, False))
error	26-Apr-2019 02:42:01	sqlite3.OperationalError: unable to open database file

with the queue size gradually increasing as more logs are printed. (went up to around 20k but didn't crash).
Again, I haven't ran into an issue when logstash was up, so I'm just as confused as to how I got here in the first place. Maybe I'm understanding the errors wrong?

I'm not sure either.
So far, I wasn't able to reproduce the described error.
My test script is running for nearly 48 hours now with lingering errors (connection refused) but I cannot see any left open sockets or otherwise an increase in open file descriptors.
Also, after checking the code again, I don't see a place where sockets can be left open.
I don't say there might be a bug in the code, I just don't know where it hides :).
Could you grep your logs for any other errors than the already mentioned ones? Maybe the errors we see are just the symptom but not the cause.

I looked closer, and I couldn't find anything particularly different.
I don't think I'm going to be able to reproduce this, so we can close it and revisit if I ever run into it again.

Alright, feel free to re-open if you get more information.


Move JS out of the index

Thought I might start hacking on this and I had to split things up to make it easier to work with. Simple PR to move the main js out of the index.
There was also an extra closing body tag at the bottom of the index I removed.

Nice! Thank you!


Jenkinsfile moved to BuildConfig.Source

Tests failed.

retest this please

Tests failed.

retest this please

retest this please

[merge]


Plugins for Empire ?

The API is awesome for doing API requests to an Empire server from an other soft, but I am seeking for Empire to perform an action when something happen, to script his behavior (in this case to use the Pushover API).
I have already wrote a monkey solution for myself in lib/common/empire that works, but it's hardcoded and only alert for incoming and exiting agents.
Before doing anything I just wanted to know the vision you (the developers) have for this tool and wether you find it relevant to have a way to interact with Empire itself through "plugins".

So it's not on our roadmap to implement something like this in the next several months. Feel free to reopen the issue a bit down the road for reconsideration.

Thanks for the answer

Hi all: I'm currently hacking on this, and expect to have something worth looking at by the end of the week.

Just kidding, somehow I really got into it and 3 hours later here we are; submitting a PR now.


Kali Linux

Kali Linux is an open-source, multi-platform distribution, aimed at advanced Penetration Testing and Security Auditing.
Kali Linux provides several hundred common tools and industry specific modifications, targeted towards various information security tasks, such as Penetration Testing, Security Research, Computer Forensics, Reverse Engineering, Vulnerability Management and Red Team Testing. https://apps.microsoft.com/detail/9pkr34tncv07

/duplicate

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!


CAMEL-19965 - Camel-Plc4x: Upgrade to 0.11.0

Description

Target

[x] I checked that the commit is targeting the correct branch (note that Camel 3 uses camel-3.x, whereas Camel 4 uses the main branch)

Tracking

[x] If this is a large change, bug fix, or code improvement, I checked there is a JIRA issue filed for the change (usually before you start working on it).

Apache Camel coding standards and style

[x] I checked that each commit in the pull request has a meaningful subject line and body.

[x] I have run mvn clean install -DskipTests locally and I have committed all auto-generated changes

/component-test camel-plc4x


Add skip for missing CIAO

Add skip for missing CIAO

It would be better to use the updated testr, but not sure if we just want to get this done (finally) with two lines.


Multipicklist duplicates value data on refresh

The helper.handleValueOnInit function calls child.strike_optionSelected() on each pre-populated option which then sends out a "strike_evt_notifyParent" which then calls helper.addToComponentValue() which adds a new value on to the existing value array.
So you end up with "option-1;option-1" and if you save that data and refresh again you'll get "option-1;option-1;option-1"
I'm running Release 0.1.0 at the moment but I couldn't see a fix in the changelog.

@chewy2 or @trentchilders Do any of you have a solution for this issue?

For now, I've just added a quick check before it pushes the duplicate value on to the array.
I'm assuming all the values are unique and there should never be duplicates in the array.
        if (valueArray.indexOf(selectedOptionValue) == -1) {
            valueArray.push(selectedOptionValue);
        }

Hi @TomSesselmann, that definitely works. We haven't been able to pinpoint the issue yet on our end. How are you saving the data?

It's bound to the field using value="{!v....}" and then saved to Salesforce via an APEX upsert

Just updated to 0.6 from 0.1 and still seeing the issue.
If you put a console.log(newValue); at the end of the addToComponentValue function in strike_multiSelectPicklistHelper.js then create a new component like this
<c:strike_multiSelectPicklist
    value="option1;option2" >
    <c:strike_option label="option1" value="option1"/>
    <c:strike_option label="option2" value="option2"/>
</c:strike_multiSelectPicklist>

You should see option1;option2;option1;option2 in the console

Thanks for the update. Our 0.6.0 release was mainly for two new components that have been in the works for quite some time and we decided they were due for a release. It didn't contain many bug fixes.
We will look into this issue for the next patch release.

@TomSesselmann We're looking into an issue that we ran into with Multi Select Picklist and found what could be the cause of your issue. If you open the component's helper file (strike_multiSelectPicklistHelper.js) and change the following line (line 8)
valueArray.push(selectedOptionValue);

to
if (valueArray.indexOf(selectedOptionValue) == -1) {
    valueArray.push(selectedOptionValue);
}

This change could fix your issue. Please let us know if this helps!

That's the same change that I already suggested above 😛
Yep, that fixes the issue.

Ahh sorry, you're right! Running into it ourselves reminded me that this issue was still open. I wanted to give you an update. Thanks!

@kevinberonilla We also ran into this. In September ;-). Is this still in testing because the suggested fix doesn't work? Is there an estimate when you are going to release the fix?

@up2go-rsoesemann at the moment we do not have an estimate on when we will get another release out.   We had believed this was no longer an issue.  We currently have a lot of project work, so we will not be able to get back to this for a few weeks.


Link to FIWARE QuantumLeap is dead

Link to https://smartsdk.github.io/ngsi-timeseries-api/ is dead

Fixed #35


Bug: keybindings not active by default in openSUSE Tumbleweed

[x] I have read through the manual page (man fzf)
[x] I have the latest version of fzf
[x] I have searched through the existing issues

Info

OS

[x] Linux openSUSE Tumbleweed

Shell

[x] bash
[x] zsh
[x] fish

Problem / Steps to reproduce

install fzf
keybindings not working by default

It depends on how you installed fzf. If you install fzf using a package manager, you may need to set them up manually.
https://github.com/junegunn/fzf?tab=readme-ov-file#using-linux-package-managers


Create Posts “20231020-system-design-interview-prep-guide”

Automatically generated by Netlify CMS

👷 Deploy Preview for thehashtable processing.

Name
Link

🔨 Latest commit
0ff703a45a6350597fd22604761e7a5464272ff5

🔍 Latest deploy log
https://app.netlify.com/sites/thehashtable/deploys/653274a814cdea00083d0954


Crashes when VPN (Private Internet Access) is on

Crashes when VPN (Private Internet Access and probably others) is on. It seems that all interface data is missing.
gws in get_default_iface() looks like {'default': {}, 2: [], 23: []} while PIA is connected. Works fine as soon as the VPN is disabled.
If this is not fixable I would like to know if there is a way to run this without it crashing. If so I would like to fall back to the TURN protocol or a protocol of my own design.
https://networktest.twilio.com/ says that TURN UDP is working with PIA turned on.
Willing to provide more info/do tests if requested.

Hello, thanks for reporting this. I am currently working on a new feature for P2PD which is almost ready. After this is done, I'll be working more on stability and bug fixes. So I can fix this issue for you. VPNs are a good use-case for the software. I'll keep this open until your issue is resolved.

Added a simpler fallback for interfaces outside of what's been tested on. It's possible it may work for you now

The project that this was intended for fell through and my schedule is a bit tight right now, but if I get the time I would still like to play around with this. If I do then I will let you know about the results with PIA enabled.


backend: not getting Edit operation details for testSuite

Affected module
Does it impact the UI, backend or Ingestion Framework?
Backend
Describe the bug
A clear and concise description of what the bug is.
Not getting edit operation details from permission
To Reproduce
Screenshots or steps to reproduce
path:  https://sandbox-beta.open-metadata.org/test-suites/critical_metrics_suite
API: https://sandbox-beta.open-metadata.org/api/v1/permissions/testSuite/name/critical_metrics_suite
Response:
{"resource":"testSuite","permissions":[{"operation":"Create","access":"allow"},{"operation":"Delete","access":"allow"},{"operation":"ViewAll","access":"allow"}]}

Expected behavior
A clear and concise description of what you expected to happen.
We should get information for editOwner, editDescription & editAll.
Version:

OS: [e.g. iOS]
Python version:
OpenMetadata version: [e.g. 0.8]
OpenMetadata Ingestion package version: [e.g. openmetadata-ingestion[docker]==XYZ]

Additional context
Add any other context about the problem here.

Ok, earlier we decided to allow only admin to edit the test suite! if we want to continue with the same we can close this.

@ShaileshParmar11 per our discussion yesterday, we should depend on only permissions and not have a separate check for admin.


WiiU freezes after playing for half an hour

I am on the aroma environment and I downloaded this on the homebrew app store if that helps. I checked my sd card and both the .wuhb and .rpx versions of MiiSendU are installed on it. I have to manually turn off my wii u console then turn it back on each time the wii u gamepad freezes.

Duplicate of #25