Legal and ethical issues

First, I want to thank you for using your skills in a way to help other in these trying times. Developing new technology to help others is a laudable endeavor. That said, I have some concerns about this tool and implications it may have for users and other customers of Amazon, despite its intention. I want to highlight my personal thoughts about these potential issues here.
Automated access of Amazon sites in this manner is prohibited by their conditions of use. Specifically prohibited:

any use of data mining, robots, or similar data gathering and extraction tools

Following this, the use of this automation is likely to be a violation of these terms and possibly US law, such as the CFAA, for exceeding authorized access to Amazon's computer systems (as described in conditions of use) especially given the information exported is not publically available (you need to login and checkout to see delivery availability) and arguably causes damage to Amazon and their other customers. Some additional food for thought here.
Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service. This is particularly concerning amid the global COVID-19 crisis where resources, including these delivery slots, are scarce. While the power for abuse lies in the user's hands, it is my personal opinion that this software should not be publically available for the reasons stated above.

💯 This was my first thought, totally agree. Thanks for posting @spyoungtech !

Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service.

I appreciate the sentiment here but how would you guys suggest the work is undone now the "cat is out of the bag" so to speak?
Another point - I think this really highlights failures in how Amazon is releasing time slots with the randomised nature being inherently unfair to anyone who is unable to either a) spend hours and hours refreshing the same page or b) have the ingenuity to build or seek out automation like this. I put it forward the problem is at source and should therefore be fixed at source - Amazon and all grocery markets that will deliver should implement a querying system whereby each person that wants a delivery gets a ticket on a first come first served basis and when it's their turn is sent an email with a few hours grace to reserve their slot. One customer is allowed one delivery per week maximum or whatever threshold makes it fair for everyone. Logistics and specifics aside, there is clearly a fairer way for the big retailers to dish out slots than the current "random release" they're doing currently.

@mannix515 I would suggest the author unpublish the code by deleting the repository. Sure, the work is already 'out there' but damage to others can be minimized by removing it from public sources like GitHub. Further, GitHub should probably delete all forks, too. It's quite possible this violates GitHub's content standards. In my view, it does; analogs could be drawn to other software that GitHub does not allow on and has removed from this site.

Amazon and all grocery markets that will deliver should implement [...] there is clearly a fairer way for the big retailers to dish out slots [...]

💯 I agree that retailers like Amazon can and should implement systems to make resources more available to those who need it in a fairer manner within the platform.
However, the points to why this software should be removed still stand, without respect to whether or not retailers change their service model. Currently, this software abuses the current system and deprives others of the opportunity to use it fairly.

Thanks. I wasn't able to complete the installation anyway. What must I do
to protect my computer from bad actors?
On Thu, Apr 9, 2020 at 8:58 AM Spencer Phillip Young <
<EMAIL_ADDRESS>wrote:

First, I want to thank you for using your skills in a way to help other in
these trying times. Developing new technology to help others is a laudable
endeavor. That said, I have some concerns about this tool and implications
it may have for users and other customers of Amazon, despite its intention.
I want to highlight my personal thoughts about these potential issues here.
Automated access of Amazon sites in this manner is prohibited by their conditions
of use
https://www.amazon.com/gp/help/customer/display.html?nodeId=201909000#GUID-32F0D8DC-150F-4394-921F-77B2DB58A4F8__SECTION_F5F37B9D1B264312A8FF8652DE06BE9D.
Specifically prohibited:
any use of data mining, robots, or similar data gathering and extraction
tools
Following this, the use of this automation is likely to be a violation of
these terms and possibly US law, such as the CFAA, for exceeding authorized
access to Amazon's computer systems (as described in conditions of use)
especially given the information exported is not publically available (you
need to login and checkout to see delivery availability) and arguably
causes damage to Amazon and their other customers. Some additional food
for thought here https://www.imperva.com/blog/is-web-scraping-illegal/.
Lastly, no matter how well-intentioned, this automation has enabled bad
actors to hoard resources and unduly deprives other Amazon customers of
fair use of the service. This is particularly concerning amid the global
COVID-19 crisis where resources, including these delivery slots, are
scarce. While the power for abuse lies in the user's hands, it is my
personal opinion that this software should not be publically available for
the reasons stated above.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ahertel/Amazon-Fresh-Whole-Foods-delivery-slot-finder/issues/33,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APDXPFDI62IM5ACFPPDL7BTRLXBALANCNFSM4MEWU2CA
.

Has anyone been able to contact Amazon directly with these suggestions? When I called yesterday, they were not accepting phone calls.

💯 This was my first thought, totally agree. Thanks for posting @spyoungtech !

Lastly, no matter how well-intentioned, this automation has enabled bad actors to hoard resources and unduly deprives other Amazon customers of fair use of the service.

You could say that, but if someone were to try to hoard up all the slots - Amazon would catch on to that pretty quickly, wouldn't they?
They've already gone through several steps to make the process more "fair" - that is, more "random".  Slots used to open 3 or so times a day, usually at 1AM, 7 AM, and somewhere in the afternoon, always exactly on the hour.  Now (as of at least 3-4 days ago) they randomize the time slots that become available, and they could appear literally at any time.
The program - at least from my single use of it, does not automate the buying process, it simply notifies you of a slot being available.  The purchase still requires someone to be available to complete it - so it's not like an eBay sniping program.
So what's more ethical?  Having a program simply notify you of a slot being available, or forcing all your customers to hit refresh for hours on end hoping to win the slot lottery?

The problem with issuing tickets for a queueing system is someone will find a way to exploit it and a market for the reselling of tickets or your place in the queue will suddenly open up.  If I have a confirmed order slot on 4/11/20 @ 5:15PM, I can sell that slot to someone.  Also, slots will simply fill up, pushing the next available order window further and further out.  Think iPhone sales on release day.  Get in the order queue quickly, you get it in a day or two.  Wait a few hours, and you'll get one a month later.
So now you have a queue that's 2-3 months long.  How many times can you wait in the queue? Only once, to avoid abuse and squatting on slots?  Now you need to order groceries for 2-3 months at a time?  What happens to slots that are not used? How do you redistribute them?
The current "first come first served" system doesn't quite work that way, as you have no time to sell the available opening - as it will close in a matter of seconds, and your "buyer" may also have the same slot open.  So it's worthless for resale.
The current system sucks, but it's the most fair one possible - especially now that it's random.

Users here are not "hoarding" slots–we are getting slots.
While a script doing the refresh might violate TOS, there's not much of a difference between that and the luck of the draw–manually refreshing every day all day (like we've been doing)–and getting one slot every two weeks.
The real issue is that the system is unfair to anyone who cannot refresh an app every minute for days at a time. This tool violates TOS, but with some randomness in the timing, is indistinguishable from WHAT I HAVE ALREADY BEEN DOING, literally.
Amazon could pre-allocate a guaranteed slot every week, or every other week, for a certain store and give them enough time to get it. Or they could let me place my order and just tell me when I can get it... and let them do the scheduling.
If this was a real problem for them, there'd be a CAPTCHA challenge eventually. But I suspect it doesn't matter given they're not ready for a fairer alternative, and it would be bad PR to further prevent people from getting food.

Hoarding slots makes no sense. Why make 10 $35 orders when you can do one $350 order?  They don't limit the total amount you can purchase, so it's a waste of resources.
The only reason is to skirt around limited purchase items, and that can be fixed at the seller's end easily.
TP, bread, flour, eggs, and most cleaning supplies are easy enough to get on AF now that it isn't a problem to worry about.  As when there are no slots available, they cannot sell out of them.
What I want to know is whether AF opens a bunch of slots at once like they did a week or more ago, or they pop one out every 10-20 minutes now?

Wanted to hop in the thread here because i think it's an interesting thought. This system is only alerting people to new slots, it's not really finished the checkout flow for them. Would this be considered an automated checkout system? or a notification system?
If it was a checkout system, i think it would be a much much higher risk scenario, where these "bad actors" are hoarding time slots.
Since this script is only alerting, i think it's a bit different.

This system is only alerting people to new slots [...]

@tatianajiselle The issue nevertheless remains that the automation is prohibited, whether it actually checks out or not. It is also a significant change from how the system is intended to work; by circumventing the natural barrier of needing to be present when a slot it open affects the availability for other customers. It makes resources harder to get for others who do not use automation.

[...] there's not much of a difference between [...] is indistinguishable from WHAT I HAVE ALREADY BEEN DOING, literally.

@jspiro  It is still a violation of TOS. Just because you see it as a minor convenience, more fair than the current system, or indistinguishable from your manual actions doesn't make it any less of a violation of the TOS or US law. Same as remarked above, using automation to get around what would otherwise act as natural barriers to shrinking supply available to other customers who do not use automation. Just because some barrier like a CAPTCHA doesn't stop you from using the automation also doesn't change those facts, either.
In short, you're still unbalancing the system to your advantage by using automation that is prohibited, which ultimately means others who do not use automation have less of a chance of getting a slot. Whether you are 'hoarding' slots or not doesn't really matter and would be a separate issue.

Hoarding slots makes no sense. Why make 10 $35 orders when you can do one $350 order?

@rworne Describing exactly how the slot system could be abused here would probably not be a good idea, but I'll just say that the orders wouldn't have to ultimately be fulfilled to abuse the system or cause harm to others.

Here's a scenario to demonstrate how using this automation harms others, even if you just use it to get one slot:
My neighbor is immunocompromised and hypoglycemic. They rely on Amazon Fresh deliveries of foods to keep their blood sugar regulated. Because getting food delivered to them is critical to their health, they spend many hours a day checking for available delivery slots. They forego many other activities they'd rather be doing to attend to the availability of deliveries.
Meanwhile, perhaps dozens of people or more in the same delivery area use this automation to snag slots that they maybe don't need as badly, but they get the slot before my neighbor because they get a notification and could snag it up within seconds. So even though my neighbor is refreshing fairly often for hours on end, the great disparity in effort created by this automation harms my neighbor, compared to a world where the automation is not used.
If the same level of effort was required by all participants in the system, those who don't need it as much would forego manually refreshing the page to do other activities.

@spyoungtech
While your neighbor definitely needs this delivery service, pretty much everyone else does too. I may not be as vulnerable as they are, but I also take a severe personal risk going out and shopping that I would love to minimize if at all possible.
There are plenty of similar minded people just looking to avoid sitting at their keyboard all day. I don't consider any of them bad actors.
 It's unavoidable. I'm actually surprised it took this long for a script like this to show up.
We have a "fair system" that imposes a harsh burden on those who need delivery service. One where the time spent refreshing a screen all day just to get a slot is a test of endurance or sheer luck - and to waste all that time because slots happened to open up while off on a pee break.
There's nothing that can make the system more fair, except making more capacity on Amazon's end.
Anyhow, your concerns are perfectly valid. Abuse of this tool isn't good for anyone in the long run. It's just going to start an arms race of people looking for advantages until Amazon puts the ban hammer down and/or makes ordering a more onerous process.

I agree with @rworne.
Total aside/personal anecdote below–skip it if you want to stick to facts.

Use != abuse. I'm speaking ethically not legally. IFF the tool doesn't change the likelihood of using a service, nor the frequency of use when used, then all it does is increase luck of finding a slot sooner, and freeing up your time to be a human being in the interim.
As someone that directly drives hundreds of thousands of dollars of business a month to Amazon, I'll happily accept a TOS violation. I could not care less. I hate how the company treats its workers and its sellers, and I look for every opportunity to give someone else my business, especially locally.
I am only using them begrudgingly since there are few other options for food in my area, and as it is my partner spent literal hours per day for 1-2 weeks at a time to get one slot–we've been doing this for a month. Now that we finally got a huge order in, we're out and not reloading the system for another two weeks, like would have happened eventually once we got a manual slot.
 And my partner's time can now better be used on trying to find work than hitting reload or going out to shop and risk spreading infection.
That said, I'd be more than happy to get suspended and be free of them... after this situation passes. I appreciate this tool, it's given my family time and life back.

Thanks, @jspiro, I appreciate your perspective. I hope what you gain back from using this is more than what others lose, FWIW.

@jspiro
I'm not advocating its use to "get back" at Amazon.  I just find the ethical arguments fascinating.
So here's the benefits of a script:
Reduce "churn" in the shopping cart.  If I miss a window opening, a half-dozen or more items can disappear from my cart, and now I have to go and see if I can find them again - because these items are what typically make the order worthwhile.  In fact, this is what I was using in the past to figure out when they were opening windows in my area: 1AM, 7AM, and some time in the afternoon I didn't quite nail down.  It was getting so bad as people caught on to this, that Amazon was slowing down considerably over the first 10 or so seconds after the start of an hour from hundreds of thousands of fingers simultaneously clicking a mouse... So what was I doing?  Setting an alarm for 2 minutes before the hour.  I'd go to the cart, see if anything was missing, add anything interesting that appeared while I was away and go to the checkout page and hit refresh at 1/2 second after the hour hit.
Every time I did this at the times I estimated slots opening, I got a slot.  So how exactly is this different? Am I cheating?
So now they open them up a few at a time at random times throughout the day.  If I sit down for an hour or two hitting refresh every 40 seconds and get a slot, am I cheating?  I'm rolling the dice a lot more than most people are.
Should everyone get an equal chance or only the most determined?  I actually think the former is best rather than the latter - regardless of my arguments in this topic.
As for fairness:
The current system is equal, but flawed.  It's like we are all rats endlessly hitting a lever waiting for a sugar treat to come out of the machine.
What will fix it? I have an idea:

An order "cool down" period - you get an order out, and if their system is slammed, you need to wait 7 to 10 days before it will let you order again.  This makes for larger orders, and hence fewer slots being consumed by people making small orders. It also makes the system more fair as you cannot game it as easily.
A page refresh cool down. You hit F5, you get a refresh, hit it again and it will make you wait a random number of minutes before letting you do it again. For this, they don't even need to tell you it's happening, just display the same info if you refresh more than x times every 5 minutes.
Shadowbanning bots.  If they detect bot-like behavior, just never display an open slot and optionally warn the user.  Lift the ban in 24 hours or until bot behavior is detected again.

All that without them asking me to click on fire hydrants, bicycles, or crosswalks.
The script is a result of the flawed ordering process.  It's really up to Amazon to fix it.

I’m a general citizen computer user in an older aged household with both immune and asthma disorders in our home. I signed up for this account service to specifically post a comment here regarding my concerns. First off I admire the care and creativity to make software that helped someone you loved. However, those of us with the same access problems and health issues don’t have the computer experience or resources to install this esoteric software. I went from being able to consistently get a delivery slot at 4am when I wake up early to having no ability to get a delivery at all. I couldn’t understand what this change was because our community shopping dynamics hadn't changed. Then I looked up how to get an Amazon time and found this.
This software discriminates against a variety of age/socioeconomic/ethnic groups already struggling during this time, that do not have access to the knowledge base or computer resource required to use the software. The software designer’s grandma may have flourished with the help of tech savvy folks like you, but now my elderly mother is at a loss and none of us have the skills and she doesn’t have the right computer to use this software. She orders Amazon on her phone and has an old PC. I’ve been waking up in tears trying to get groceries and Amazon was modestly reliable at 4am, now I’m at a loss.
Looks like Amazon has to solve this now for people like me but I wanted to share my experience because the gravity of this is truly profound. That’s quite a design legacy to create software that puts already overwhelmed and endangered people like us in a hunger games/war games dynamic competing with a computer to get real life food delivery time slots. At least I was only competing with other humans before. I’m truly heartbroken that I lost this option.

@spyoungtech honestly, i have had better luck on my own refreshing the page than using this script. so i really dont think that its giving THAT much of an advantage.
Your example about a diabetic (etc..) requiring groceries being delivered as a higher priority is valid but also arbitrary. Who needs the slot as badly as someone else isn't a pre-requisite to getting a time slot (just the reality of the situation). There isn't a weighted/priority queue system here.
I'd argue that there is a different root cause to this problem (the system itself set up via Amazon) rather than the fact that this script is the root problem.

Looks like there's a non-Mac solution for Chrome out there too:
https://medium.com/better-programming/build-amazonfresh-delivery-slot-alerts-c9e12a429e23
This article predates the Mac script by three days.
And this (may be the same one or a derivative):
https://github.com/pcomputo/Whole-Foods-Delivery-Slot
Truly cross platform.  Also has auto-buy.
So the playing field is level again.

@pleasehelp001 I appreciate you coming here to tell your story. How did you discover this tool if you were not seeking it?
 Not the case.
First, as SIP continues, all of us are using up reserves and need deliveries again, making it worse right now. This is also hopefully the worst two weeks, which means more deliveries and less going out to hunt.
Second, you imply this is a zero sum game. That I stole your slot by getting one at 1:30pm in California that you normally get at 4am in Denver. That's not at all how this works. Maybe that'd be the case with national deliveries for a limited product or eBay, but not local delivery slots from a local store brought by a temporary worker. I was going to eventually get my slot as much as you were, determined and in need.
A gig worker wants to make money and said they'd deliver for Prime Now, at 6-8pm. A slot became available at 1:30 when they made that decision. I got it. That's how this works and why it feels so unfair and random. In your area, there aren't enough accepting work before the hour you check.
Amazon could do better by at least it queueing orders and saying they'd send them when they can. But they don't let us place it till they have capacity. Easy software fixable problem.
You want to complain, complain to the bald man running it that he could do better for his employees, sellers, gig workers, and customers, and nation.

@pleasehelp001 thanks for your valuable perspective, and in particular creating a new account just to share it with us. While I agree that this sort of script is relatively esoteric, I think @ahertel has gone to great lengths to make this more accessible to those less familiar with AppleScript. Since it's creation, the README has been updated with step-by-step instructions, as well as screenshots and walkthrough videos details the configuration needed to get this tool working. This is in addition to the new user experience walkthrough that happens when you first launch the software.
That being said, it is unfortunate that this tool is only available to Mac users - it would certainly be more inclusive if people were able to benefit from this automation across multiple computing platforms. And while I agree that this inherently makes the software discriminatory against non-Mac users, there are other cross-platform tools @rworne has linked that make the same automation available to a PC user.
Ultimately, Internet-based grocery services already discriminate "against a variety of age/socioeconomic/ethnic groups already struggling during this time"; for example, those without reliable Internet service, a working computer, or even the means to afford the yearly Amazon Prime membership fees. I believe the privilege gap created by those disparities is far larger than the gap created by a previous knowledge of scripting and automation, or in this specific case, ownership of a Mac over a PC.

Amazon forced Shadi Petosky, creator of the Danger & Eggs animated series, to curb her use of liberal talking points but refuse to take NRA TV off the air.
An investigation from the Wall Street Journal revealed that online retail giant Amazon has been selling thousands of products that have failed federal safety tests, including children's toys containing four to 411 times the safe limit of lead.
Amazon retaliated against a worker who was protesting against the lack of precautions at JFK8, the largest Amazon facility in the most severe COVID-19 hotspot in the US.
You would be ethically better off never doing business with Amazon ever again rather than trying to obey their TOS.

Allow me to reiterate the main points:

The software is harmful to others (Amazon and its other customers)
It is unethical to write, publish, or use software that is harmful to others
Automated access of this nature is against the conditions of use laid out by Amazon
It is unlawful to access a computer system in a way you have not been authorized (I.E. by automation)

It does not matter:

if you think Amazon is an ethical company or if you like or dislike them
how fair or unfair the current system is
how available or accessible the automation is
how inaccessible internet-based grocery delivery is normally

What if I wrote an app that allowed me to hire a person to manually refresh the slot order page on their computer using their account credentials, and then text me when one was open?
Would that still be unethical enough to open an issue on GitHub? It certainly couldn’t be construed as against Amazon’s ToS. What if I just paid someone on Fiverr to write the app instead? Are they doing something unethical? We could probably skip a few of those extra hoops and just directly pay that someone to refresh the slot page for us. Is this really an inherently harmful or unethical practice?
I think @spyoungtech illustrated it best by saying “the power for abuse lies in the user's hands”. If someone is immunocompromised and uses this to find a slot because it’s their only safe option, I think most people would place that user on a separate portion of an ethical spectrum than someone who places multiple orders a day because they’re searching for the best flavor of sparkling water, but doesn’t want to buy them all at once.

You make a good point, @jazaval -- no, I wouldn't say hiring someone to refresh the page for you would be inherently harmful or unethical. It also probably wouldn't be a violation of the conditions of use or a violation of law. However, the economics of those situations aren't equal.
Price ceilings, effort & costs during a shortage
One key difference to consider is the cost. Think of time/effort required to get a delivery slot as a surrogate for increased cost in dollars. In absence of Amazon raising costs (price ceiling) and not enough supply to meet demand, a shortage is created. Another effect is happening at the same time: the additional effort required to get a delivery slot counters the effects of the price ceiling; increased effort needed (cost) means reduced demand and reduced shortage.
The problem that the automation creates is that it lowers the effective costs for those who use the automation, thereby increasing demand among automation users and causing a greater shortage. The burdens of that increased shortage are borne entirely by non-automation users.
Inequity of burden
The reason why there is an inequity of who bears the burden is because of inequality of opportunity that automation creates where automation users increased opportunity to consume the available supply. The supply available to non-automation users is roughly whatever automation users do not consume; if automation users demanded the full quantity supplied by Amazon, there would be virtually no supply for non-automation users. The closer we approach that point, the more effort (cost) is required to get whatever delivery slots remain unconsumed by automation users. Non-automation users are invariably 'priced out' of the market.
Thus, given the inequality of opportunity presented by automation, amid a shortage, one group (automation users) will always be doing direct harm to another group (non-automation users).
Ill-gotten gains
Not only is the economic advantage that automation users gain not only invariably achieved at the economic detriment of others, but those gains are also ill-gotten because the automation itself is used in violation of established rules and laws.
It's not just a matter of being faster/smarter; ethics definitely come into play here, too. A thief cannot shrug off moral responsibility for breaking the law because anybody can go buy burglary tools and be a thief, too.
How it could be different
Equity of opportunity without automation
If nobody used automation, there is no longer inequity of opportunity, allowing free market principles to work. One such principle is elasticity of demand which would result in people who need the service the most getting it, because they'll be willing to spend more time trying to get a slot (willing to pay more, essentially). Inequity of opportunity disrupts what is arguably a fairer distribution; those who pay more get goods in a shortage. However, people are still having to spend time getting delivery slots, which seems like a real shame.
Equity of opportunity with automation (or some equivalent)
If distribution of slots were determined entirely by the service (or say, if everybody used automation and all had exactly equal opportunity to get a slot), you would lose ability of market to give goods to those who demand them the most, but there would be an interesting net gain in a utilitarian sense, since nobody would be 'wasting' time trying to get a slot. Some of that value is also seen when people use automation today because less time (money) is wasted in total. Though, I don't see how those values could reasonably be calculated.
To answer your question...
All that said, to answer your question @jazaval : I do think it's worth opening a GitHub issue and that these ideas are at least worth discussion. I have a stated way of viewing this issue I think is worth sharing, but my mind could be changed. @jspiro brings up an interesting thought:

I appreciate this tool, it's given my family time and life back.

A utilitarian argument could be made that the time reclaimed by users of automation produces a good that outweighs the detriment is causes to non-automation users and any moral costs, if considered.
My stance, however, is not governed by strict utility. I place a lot of weight on the idea that software should not harm others and that we should obey rules and laws. Every harm caused by the carelessness of software engineers brings the profession one step closer to being regulated like medicine or law. In times like this, I begin to think I might welcome licensing as a requirement to publish code.

I think @spyoungtech illustrated it best by saying “the power for abuse lies in the user's hands”. If someone is immunocompromised and uses this to find a slot because it’s their only safe option, I think most people would place that user on a separate portion of an ethical spectrum than someone who places multiple orders a day because they’re searching for the best flavor of sparkling water, but doesn’t want to buy them all at once.

I guess this is also just the shorter version of the above.
If your demand for delivery is perfectly inelastic, e.g. you're immunocompromised and really really need it and would have spent every waking moment trying to get a slot, you're probably not contributing to the inequity of opportunity described above.
The more elastic your demand is, e.g. you're more like the person searching for the best flavor of sparkling water, the more you are contributing to inequity.

In 2011 Amazon employees were forced to work in a 114F degrees at a warehouse in Lehigh Valley, PA. Amazon kept paramedics in the parking lot of the warehouse to treat employees who were fainting, suffering from dehydration, or exhaustion.  Please stop using the terms "ethical", "ethics", "moral", etc. in this thread as doing any business with Amazon is unethical and immoral with or without a script.

@mettacrawler that is a straw man argument and irrelevant to the context of writing, publishing, or using this tool. The ethics of Amazon's business practices at large are not part of the issue at hand.

If someone was jaywalking when they committed murder would it matter?  Doing business with Amazon is unethical and immoral regardless if the business is conducted with a script that lets you virtually cut in line.  Please reduce your scope to only legal issues not ethical ones.

Using the script is not "cutting in line".  You do not bump anyone from a queue while using it - as there is no queue.
  Everyone has an equal chance at each pull, just the script users pull the lever more consistently and for a longer time than others do.

@rworne I don't think that's really the case.
There is a fixed supply of delivery slots and demand for deliveries is higher than Amazon can supply. By using the script, you reduce the supply for people who do not. If enough people used the script, only people who use the script would be able to get a delivery slot; it creates a huge disparity in equality of opportunity.

Only ethical thing to do in practice is to tell as many people about the script as possible. Either everyone ends up using it or more likely volume of usage gets high enough that Amazon takes steps to neutralize it.
This is an obvious script to create so trying to memory hole it just puts it beyond casual people’s reach, making it way less likely that amazon ever develops an engineering fix to stop the use of these scripts.

@spyoungtech
It is just as I described.
The script (at least when I tried it) pulled the lever every 40 seconds.  During that 40 second gap, any number of other people - or script users - could pull the lever too.
In fact, if one were to refresh the screen every 10 seconds - which is around what a typical person would do trying to get a slot manually - they would have 4x the number of chances the script would have.  Slots could also pop up 10 seconds after the script checks and close 20 seconds later and the script user would never know it was available.
A person hitting refresh manually and grabbing a slot would consume it as well, in fact there's a higher chance that a random refresh would consume a found slot than the script would.  Because the script just stops and tries to alert the user. Having a slot on your screen does not mean it's committed to you, everyone refreshing at that moment will see it as well.  If you do not act quickly enough (mere seconds) it will close based upon who can finish the checkout process the fastest.  Hearing the chime and getting of the phone, sofa, toilet, etc. going to the computer, unlocking the screen, then completing the checkout process would take 10-15 seconds?  That's usually too long to get one.  You pretty much have to be sitting at your computer anyway watching Netflix or something when the chime comes.
To use the script to create your disparity - one would have to shorten the time it wait for the refresh - to really short - 1 second or so, and hammer Amazon's server.  That way they would be notified of every slot as they come up, when they come up, immediately.  Complete an order, fill the cart again, then start spamming the server for another slot.  Behavior like that would be noticed by Amazon.  It's far easier to just make a single order and quit - unless someone was using this script as a side-business: selling access (or giving access to those in need) for orders.
In regards to your previous comment: there is a fixed rate of slots being made available.  While there are people who definitely have more of a need for Amazon's services than others, there is no way Amazon can divine the needs of each individual, even if Amazon has a desire to help those in greater need first.
So anyone who walks in the virtual door when it is open gets an opportunity to order.
That's it.  End of argument on who deserves to get a slot.
For the TOS and legal issues:
"This license does not include any resale or commercial use of any Amazon Service, or its contents; any collection and use of any product listings, descriptions, or prices; any derivative use of any Amazon Service or its contents; any downloading, copying, or other use of account information for the benefit of any third party; or any use of data mining, robots, or similar data gathering and extraction tools. "
Amazon's TOS is geared towards 3rd party scraping of their site to harvest data (inventory, pricing, etc) and to prevent people from inserting themselves as middlemen.  It mentions bots, but what exactly is a bot?  It says afterwards "similar data mining or extraction tools" - so they actually mean web-crawlers not obeying the robots.txt file on their website.
And I just checked the robots.txt, the checkout page with the slots is not currently disallowed.
As to the legality, we have this:
https://www.eff.org/deeplinks/2020/04/federal-judge-rules-it-not-crime-violate-websites-terms-service
So legally, I guess it's just fine to violate the TOS, until Amazon shuts you down.  Then you try to circumvent it, and now you are in a legal quagmire.
None of what I said above excuses asshattery by people abusing the system..

@spyoungtech I do appreciate you opening this issue. This is a remarkably healthy and civil exchange for internet strangers in a public forum. My question was framed mostly to get a sense of the harms threshold necessary to trigger such a submission, because I believe no system can reduce harm everywhere equally.
I agree with @rworne that it's not "cutting in line", but I also agree with you that it's "bumping someone". The best real-world analogy I can think of is to pay someone to get in line (fairly) and then stay in line on your behalf, until it's your turn to purchase some item in high demand. The reason I extrapolated the act automation in my into extra dollar cost (hiring a worker to refresh the page) is to demonstrate that some users are indeed simply being "priced out" of the delivery market, which is similar to a conclusion you reached. Unfortunately, this is effectively normal for our economic system of "rugged individualism", especially in times of high market demand. Whether they're being "priced out" by dollars, scripting knowledge, or free time available to hit the button themselves is ethically irrelevant. There are essentially three winners when demand is high:

People with a bigger supply of money than time or knowledge, for whom hiring someone to find them a slot isn't an issue
People with a bigger supply of time than knowledge or money, for whom refreshing the page continuously for many hours isn't an issue
People with a bigger supply of knowledge than money or time, for whom writing esoteric automation isn't an issue

While disenfranchising those with no excess supply of any of these things is never something to aim for, it is pretty unavoidable in a truly free market. Many free markets, like the Seattle housing market for example, are even more ruthless; people in the first category are far better suited to purchase a home in a high-demand neighborhood. You can do all of the extra scouting and market analysis you want, but if someone is paying a realtor enough money to do the same, they'll just make a bigger offer than yours on the house you're trying to buy. This is the same harm model as depriving others of a food delivery slot; pricing people out of an essential human need. Should we ask Zillow and Redfin to delete their code because it's contributing to housing market harms? Or should we support their democratization of a "market edge" by giving people access to regularly refreshed feeds of new homes without paying a realtor?
Personally, I think "rugged individualism" as a philosophy to obtain essential human needs such as food, housing, medical care, etc., is pretty terrible. I think we'd all be much better off if every household registered with a centralized distribution service (run on tax revenue) that assigned everyone semi-monthly delivery slots. We might end up with fewer varieties of sparkling water, though, and that could put a real damper on shareholder margins.

Someone said Amazon needs to create a queuing system.  That will not help the shortage.  All they need to do is float the delivery fee so that the quantity of supply and demand can reconcile.  There would be no need for this script then and instead everyone would be equally inconvenienced by the increased market price of delivery. For the most part I think people spending hours hitting refresh would willingly pay $20-40 extra for a delivery fee to get that time back. I suspect Amazon is afraid that letting the market work its magic here will bring a PR firestorm upon them.

Not a queuing system, a cool down.
Floating the delivery price eliminates the most affected groups disproportionately, and makes this a rich man's game.
A cool down "punishes" people who order, and can punish those who order frequently even more.  so whoever orders, gets eliminated from the competition for a set period of time.  That time can be adjusted based upon the congestion in the system.  As time goes on, the aggressive people eliminate themselves, making competition less fierce for the disadvantaged.
Now your method could work if the excess fees were used to purchase goods for local food banks.  Now that's an idea...

I must have skimmed over the cool down idea, long thread to catch up on.  Not bad.  For my idea I think the excess fees should help to increase the supply of delivery workers thereby making the system return to a lower equilibrium price over time.

@bportman
From what I've read, there's a limit on how many deliveries can be processed due to social distancing at their facilities.  It's not due to a shortage of drivers.  With unemployment the way it is right now, there should be a lot of people wanting to be drivers.
Taking the fees and using them to donate food to food banks in bulk (say, by the truckload) will then have community volunteers take the food to people who are shut in/high risk - a more efficient flow, and they should know who is in need.  Foodbanks will likely get higher quality items too, as they can get a percentage of what stock Amazon sells for delivery instead of leftovers.

Looks like Amazon is addressing the issue (dearth of slots, not the script):
"The company said it is hiring more workers to expand capacity and that it plans to launch a new feature that will help customers secure a virtual “place in line” to distribute the delivery windows on a first come, first served basis. It also offered higher pay to encourage its warehouse workers to work for its grocery delivery service."
https://www.reuters.com/article/us-health-coronavirus-amazon-com-grocery/amazon-stops-accepting-new-online-grocery-customers-amid-surging-demand-idUSKCN21V0CO
If they are going to schedule appointment windows to anyone that comes, then the script will be more or less useless.


Fix a potential memory leak in apps/s_server.c

Allocate memory for a new SSL session.
If any of these steps fail,
free the key memory and the tmpsess object
before returning 0 to prevent a memory leak.
Fixes: #20110
CLA: trivial

I'm happy to call this trivial.  @InfoHunter ?

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged to master, openssl-3.1, and openssl-3.0 branches. Thank you for your contribution!


Add Tinkerbell assets only to dev release manifest

Tinkerbell is still in development phase behind feature flag, so we don't want these images to feature in the production bundle.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/override eks-anywhere-e2e-presubmit
/override eks-anywhere-mocks-presubmits
/override eks-anywhere-presubmit
/override eks-anywhere-attribution-files-presubmit

/override eks-anywhere-release-tooling-presubmit


pull request for e2e test at 11/20/2016 12:26:05

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update Travis link to point to the organization

Looks like the pip requirements need to be updated?

Yeah. I'm not sure exactly what change is needed there, I was just fixing the link.

Looks like the build is fixed now!

Niceeee


Classification Accuracy on shrec16

Hi,
I've executed your source code without changing any settings. But, at 200 epoch, I'm getting 97.5% accuracy on shrec16  data set, but you've mentioned 98.6% accuracy in your paper. could you please tell me, is this 200th epoch accuracy or a highest value at any epoch of training model.
Thanks,

Hi @kamran-afzal ,
I took the max accuracy after training to 200 epochs.
I think it usually happened around ~160 epochs?
But don't think that it happened exactly at epoch 200 (probably overfitting by then).


ISIS-2502: working on Exception Recognizers

Provide test cases for:

ExceptionRecognizerForDataAlreadyExists
ExceptionRecognizerForObjectNotFound
ExceptionRecognizerForRelatedDataExists
ExceptionRecognizerForUnableToSaveData

This change is

[x] JPA: SQLIntegrityConstraintViolationException is not an instance of RuntimeException, so cannot be passed to the built-in ex. translation utilities ... ending up with a too generic DataAccessException
[ ] JDO: On unique constraint violation, we get a NucleusDataStoreException that sets itself as source (infinite causal chain), so ending up with a too generic DataAccessException


nms version for roadsign example

Hi, I'm experimenting with your repository and I've started with following the tutorial.
I've successfully trained an ssd mobilenet model with the steps in readme.md, exported the frozen graph but now I want to test it on a video. To test the model I'm using your linked repository for realtime object detection. I'm confused with the nms_version. What version should I use? I'm copying the .yml file for clarity:
---
image_input: 'images'       # input image dir
movie_input: '/home/DATI/insulators/SSD_mobilenet/test_videos/route226_argentina.mp4'    # mp4 or avi.  Forces all CPU tensors to be allocated with Cuda pinned memory.
save_to_file: True         # movie or camera: ./output_movie/output_unixtime.avi. Save it in avi format to prevent compression degradation. Requires a lot of disk space.
                            # image: ./output_image/PATH_TO_FILE. Save it in image file.
visualize: True             # True: Show result image. False: Without image show.
vis_worker: False           # True: Visualization run on process. (With visuzalize:True)
max_vis_fps: 0              # >=1: Limit of show fps. 0: No limit - means try to spend full machine power for visualization. (With visualize:True.)
vis_text: True              # Display fps on result image. (With visualize:True.)
max_frames: 5000            # >=1: Quit when frames done. 0: no exit. (With visualize:False)
width: 600                  # Camera width.
height: 600                 # Camera height.
fps_interval: 5             # FPS console out interval and FPS stream length.
det_interval: 100           # interval [frames] to print detections to console
det_th: 0.5                 # detection threshold for det_intervall
worker_threads: 4           # parallel detection for Mask R-CNN.
split_model: True           # Splits Model into a GPU and CPU session for SSD/Faster R-CNN.
log_device: False           # Logs GPU / CPU device placement
allow_memory_growth: True   # limits memory allocation to the actual needs
debug_mode: False           # Show FPS spike value
split_shape: 1917           # 1917, 3000, 3309, 5118, 7326, 51150. ExpandDims_1's shape.

model_type: 'nms_v2'
model_path: '/home/DATI/insulators/SSD_mobilenet/output_models/frozen_inference_graph.pb'
label_path: '/home/davidecremona/PycharmProjects/train_ssd_mobilenet/roadsign_data/roadsign_label_map.pbtxt'
num_classes: 4

Thank you in advance, Davide.

Hi @davideCremona,
Probably nms_v2, but if it doesn't work, analyze the model structure. About Split Model
Since ssd mobilenet of realtime object detection split by non-maximum suppression, an error will occur if this structure is different.
You can also use:
split_model: False
this setting is slow but maybe work.

Setting
split_model: False
works, I'm getting around 60fps on nvidia RTX 2080, but visualizing no detections in realtime nor in the saved video, probably because it does not contain any speed_20, speed_10, speed_30 or stop.
Can you please share your test video? I will do a realtime object detection on that to see if everything works as expected. Thank you again, Davide.

I don't have a sample video as I only use it for real-time detection using a usb camera.
Please try to see my youtube video with a usb camera.
Realtime Object Detection on TX2
cd ~/github/realtime_object_detection
python run_stream.py
or use train_ssd_mobilenet/roadsign_data/PascalVOC/JPEGImages data.
cp -r ~/github/train_ssd_mobilenet/roadsign_data/PascalVOC/JPEGImages ~/github/realtime_object_detection/images
cd ~/github/realtime_object_detection
python run_image.py

Hi, I've used some code of your realtime object detection repository and it all works perfectly. Thanks for the support


setGutterMarker not working: Uncaught TypeError: Failed to execute 'appendChild'

I'm trying to add an element to a gutter I defined, like so:
gutters: [
        'CodeMirror-linenumbers',
        'woop',
      ],

this.codeMirrorEditor.setGutterMarker(
        4, 'woop', <FontAwesomeIcon icon="question-circle" />
      );

Where this.codeMirrorEditor is the instance of CM. I get an error here though:
Uncaught TypeError: Failed to execute 'appendChild' on 'Node': parameter 1 is not of type 'Node'.

And it looks like it may be because the instance of CM is not a react instance. Anyway around this other than creating a document element?

You can't pass a react component to codemirror and expect it to know what to do. Either manually render it beforehand, or pass a native DOM element. Looks like a font awesome icon. Not sure why one would use components for something as simple as <i class='fa fa-question-circle' />
Your last two issues were debugging your project. This one is no different. Please stop opening issues that aren't actual defects/absences from the codebase. Asking on stackoverflow might be helpful as well.

These issues are related to debugging my projects, but they're applicable to many people who also may have the issue when using react-codemirror2. So if people search the repo here, they'll be able to find solutions to these issues.
It's not completely evident from first look that using your library wouldn't be able to handle React components.
But anyways, a solution is here:
      var parser = new DOMParser();
      var reactExcl = ReactDOMServer.renderToStaticMarkup(
        <FontAwesomeIcon icon="exclamation" color="#ff5370"/>
      );
      var excl = parser.parseFromString(reactExcl, "image/svg+xml").firstChild;
      var exclWrapper = document.createElement("div");
      exclWrapper.className = css(styles.exclamation);
      exclWrapper.appendChild(excl);
      this.codeMirrorEditor.setGutterMarker(
        4, 'woop', exclWrapper
      );

Basically you need to transition the react component into an HTML div element, and then pass it into codeMirror back into codeMirror.

It's not completely evident from first look that using your library wouldn't be able to handle React components.

You don't need to look at it, it's obvious, calling the codemirror library directly, via the instance, passing a JSX react component as a parameter is going to blow up. Go pass jQuery a react component and see what happens. I don't really care to continue this argument.
Anyways, nobody is going to use that convoluted solution above, just pass the <i> and call it a day.


V0.9

Codecov Report
Attention: Patch coverage is 59.73837% with 277 lines in your changes are missing coverage. Please review.

Project coverage is 74.08%. Comparing base (e28f527) to head (537b392).
 Consider uploading reports for the commit a44a6f8 to get more accurate results

Files
Patch %
Lines

config/dynamic/provider/git/git.go
50.26%
83 Missing and 10 partials :warning:

providers/openapi/schema/unmarshal_multipart.go
0.00%
67 Missing :warning:

api/handler_schema_validate.go
41.86%
18 Missing and 7 partials :warning:

providers/openapi/schema/marshal.go
68.51%
17 Missing :warning:

config/decoders/decoder_flag.go
75.00%
10 Missing and 5 partials :warning:

providers/openapi/schema/unmarshal.go
81.96%
9 Missing and 2 partials :warning:

engine/kafka.go
66.66%
7 Missing and 3 partials :warning:

config/dynamic/asyncApi/kafka/store/store.go
59.09%
7 Missing and 2 partials :warning:

config/dynamic/resolve.go
0.00%
9 Missing :warning:

api/handler_schema.go
71.42%
4 Missing and 2 partials :warning:

... and 5 more

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #193      +/-   ##
==========================================
- Coverage   74.27%   74.08%   -0.20%
==========================================
  Files         216      219       +3
  Lines       15136    15457     +321
==========================================
+ Hits        11243    11451     +208
- Misses       3199     3297      +98
- Partials      694      709      +15

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


Corrupted Asset Files, Request to reupload the same!

Came across your amazing project. But there seems to be problems with the files when I tried to run it, files in the Assets seem to be corrupted. Kindly look at it @lakshaybhushan!

Resolved! It was a problem when the repo was downloaded as ZIP, but when cloned it works fine.


migrate semantics to nullsafety

Description
This is a continuation of @a14n's work in https://github.com/flutter/flutter/pull/63792. I took his PR and added an extra dead_code ignore, which was reported by the latest analyzer.
Related Issues
dart-lang/sdk#40146
Tests
I added the following tests:
n/a
Checklist
Before you create this PR, confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

[x] I read the Contributor Guide and followed the process outlined there for submitting PRs.
[x] I signed the CLA.
[x] I read and followed the Flutter Style Guide, including Features we expect every widget to implement.
[x] I read the Tree Hygiene wiki page, which explains my responsibilities.
[x] I updated/added relevant documentation (doc comments with ///).
[x] All existing and new tests are passing.
[x] The analyzer (flutter analyze --flutter-repo) does not report any problems on my PR.
[x] I am willing to follow-up on review comments in a timely manner.

Breaking Change
Did any tests fail when you ran them? Please read Handling breaking changes.

[x] No, no existing tests failed, so this is not a breaking change.
[ ] Yes, this is a breaking change. If not, delete the remainder of this section.

[ ] I wrote a design doc: https://flutter.dev/go/template Replace this with a link to your design doc's short link
[ ] I got input from the developer relations team, specifically from: Replace with the names of who gave advice
[ ] I wrote a migration guide: https://flutter.dev/go/breaking-changes-template Replace this with a link to a pull request that adds the migration guide to https://flutter.dev/docs/release/breaking-changes

@a14n Can I get your consent to submit this PR (see message above).

I think since @a14n has been contributing migration code for a while and submitted the original version of this PR as part of that work, it's unambiguous that he would consent.


Different colour for each option in the nz-select>nz-option

What problem does this feature solve?
allow developer to modify and add styling to nz-option
What does the proposed API look like?
<nz-option [nzValue]="1" [style]="{'background-color': 'red'}" nzLabel="1">

https://ng.ant.design/components/select/en#components-select-demo-custom-content


Hydra migration 3

Motivation and Context

Pass on documentation + tutorials
Remove YACS (config: Config type annotation)

How Has This Been Tested

Types of changes

Docs change / refactoring / dependency upgrade
Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

This looks reasonable to me. I don't really get the logic of moving the DictConfig import through habitat.core, but as long as it works it's not a major issue.

Thank you! Yes, I agree. I was not sure if we should have a config wrapper as we had with YACS (btw, that do you think @Skylion007?). That's why imported through habitat.config. I'll discuss this today with Vince and Oleksandr. All imports are unified so it would be easy to change to omegaconf's DictConfig.

Closing in favour of https://github.com/facebookresearch/habitat-lab/pull/1000.
That is actually the same PR but branch is based on main and has all the above comments addressed and vs main conflicts resolved.


ndk: Bump MSRV from 1.64 to 1.66

It is older than 6 months and now required for the toml_edit dependency (used by num_enum_derive).  At the same time num_enum relies on arbitrary enum discriminants (for discriminated enums with tuple/struct variants) introduced by Rust 1.66 in order to implement #[num_enum(catch_all)].  This feature comes in use to replace the manual match blocks when implementing conversions for HardwareBufferFormat when also having an Unknown(u32) to catch valid private/vendor values that won't ever be described inside the NDK.  This change effectively reverts #407 to its initial state, where a catch_all implementation was used.  CC @spencercw.
For the latter the intent is however to use this feature sparingly. In most APIs new values are few and far between, so treating these as an Err via TryFromPrimitive is desired to provoke upstream issue reports and quick turnaround on new values.  Same for enums that are used to pass values into functions: it is desired to only pass known values (by this ndk crate) into those, anything else should similarly be reported and added upstream.  In these cases a #[non_exhaustive] allows us to do so with a tiny non-breaking patch release.

I knew you'd call that out :grimacing: and no, no plans/needs for 1.68 currently. Users can figure that out themselves, there's no need to force MSRV to 1.68 to get them to take advantage of the latest cargo-ndk.

I knew you'd call that out
and I know you knew I knew you knew I'd say something ;-p

yeah, I was really just clarifying that I'm still at least planning to bump the android-activity crate to 1.68 - but you probably already assumed that.
I don't really see a pressing need for this crate to bump past 1.66 - except that all things being equal I'd pick 1.68 for the sake of aligning with the rust release that bumped what ndk version is used for building the standard library.


boundary: 0.8.1 -> 0.9.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for boundary is: "Enables identity-based access management for dynamic infrastructure"
meta.homepage for boundary is: "https://boundaryproject.io/"
meta.changelog for boundary is: "https://github.com/hashicorp/boundary/blob/v0.9.0/CHANGELOG.md"
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.9.0 with grep in /nix/store/2s9nd02bfqiz2v3cpg12bv6gyfxcq5jb-boundary-0.9.0
found 0.9.0 in filename of file in /nix/store/2s9nd02bfqiz2v3cpg12bv6gyfxcq5jb-boundary-0.9.0

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

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
boundary

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/2s9nd02bfqiz2v3cpg12bv6gyfxcq5jb-boundary-0.9.0 \
  --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 boundary https://github.com/r-ryantm/nixpkgs/archive/9da7487388b2e33915a780cc862c36d38485c363.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/2s9nd02bfqiz2v3cpg12bv6gyfxcq5jb-boundary-0.9.0
ls -la /nix/store/2s9nd02bfqiz2v3cpg12bv6gyfxcq5jb-boundary-0.9.0/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:

boundary

Maintainer pings
cc @06kellyjac @techknowlogick for testing.

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

1 package built:

boundary


add function to ensure angular is loaded and page is rendered

This will ensure the angular is loaded and the page is rendered when testing angular based project.

Code review for aadcfca is complete.


how can i change the default behaviour of fade in?

sorry, i did not find this yet

I don't get the question. Are you referring to flashfocus?

yea, that's it. Thanks


ability to read from stdin (unix pipe support)

Opposed to unix tail, frontail seems not to be work in unix pipe mode.
Example cat foo.txt | frontail would be expected to work.

Hey @ssbarnea,
it should work https://github.com/mthenw/frontail#stdin


STYLE: Change constexpr static to static constexpr.

This pull request changes the 23 instances of constexpr static to be like the 2322 instances of static constexpr.
cd ITK
fgrep -Rl 'constexpr static' *
  | egrep '\.(c|h|cc)(xx|pp|)$'
  | fgrep -v ThirdParty
  | xargs sed -i -r \
    -e 's/([^A-Za-z0-9_])constexpr static([^A-Za-z0-9_])/\1static constexpr\2/g'

PR Checklist

[X] No API changes were made (or the changes have been approved)
[X] No major design changes were made (or the changes have been approved)
[X] Added test (or behavior not changed)
[X] Updated API documentation (or API not changed)
[X] Added license to new files (if any)
[X] Added Python wrapping to new files (if any) as described in ITK Software Guide Section 9.5
[X] Added ITK examples for all new major features (if any)

@Leengit @hjmjohnson @thewtex  Is there any technical reason for preferring static constexpr over constexpr static? Or is it just a matter of taste?

The language doesn't care about the order.  It's about style and consistency.  I can visually scan (or grep) quickly for one pattern rather than two when that is what I am looking for.

@Leengit  Thanks for your answer!

The language doesn't care about the order. It's about style and consistency.

If that's just the only reason, I would have found alphabetic order (constexpr static) easier to remember  😺 Which may be done just as consistently as static constexpr.  Anyway, no big deal.

@Leengit  OK, if it's helpful to you to have static at the left!

@Leengit  Thanks.  Consistency is important.  I also agree that "static" is a different kind of modifier related to where/how many rather than what the object is.  I too like it to come first.


This kickstarter works with the radian R terminal

In case others were interested to use the functionality of this kickstarter with the Radian terminal. This is easily accomplished by changing the following function in wk.register
Obviously you would need to have installed the radian terminal.
    r = {
      function()
        vim.b["quarto_is_r_mode"] = true
        vim.cmd("split term://R")
      end,
      "new [R] terminal",
    },

to
    r = {
      function()
        vim.b["quarto_is_r_mode"] = true
        vim.cmd("split term://radian")
      end,
      "new [R (radian)] terminal",
    },

I spoke too soon.  I need to work out why radian splits code chunks when the R terminal does not.

It might need a different pasting behavior of vim-slime

I guess it's similar to VS Code using radian - needs bracketed paste.

@jasonpott Did you found a work around for using radian ?

I didn't but Rnvim  has implemented this in the latest update to main.


WIP: Test new jobs

Fixes #
Proposed Changes

Release Note

/retest pull-knative-serving-operator-integration-tests-on-latest-serving

/test pull-knative-serving-operator-integration-tests-on-latest-serving

/test pull-knative-serving-operator-integration-tests-on-latest-serving


Raw globals

See #151, stylus/stylus#1286
Currenty file.data cannot be used for object variables, since they are treated by pairs of (key, value) by stylus.
This patch adds rawGlobals option, that changes how file.data is treated. When this option is set, rawDefine property is get set instead of define.
The option is deleted after it has been used.

Looks a bit broken. Will fix


remove built-in async function infrastructure from this proposal

See https://github.com/tc39/proposal-iterator-helpers/pull/245 and https://github.com/tc39/ecma262/pull/2942. This will align our efforts and allow reviewers to focus on the actual content of this proposal.

Probably worth replacing this with a stub pointing to the PR? Or mentioning it in an editor's note, say.
Also, this proposal doesn't use the notion of a "built-in async function" - it's calling AsyncFunctionStart itself. Withhttps://github.com/tc39/ecma262/pull/2942 it could (and probably should) use that machinery, though.

I'll leave it up to the proposal authors to make further changes like that. Either in this PR or as a follow-up is fine by me.

I will take a look at adding a stub within the next two weeks. Apologies for the delay.

@js-choi ping, it's been almost a year

@ljharb: Thanks for the ping. Apologies for dropping this task.
I am fine with this pull request’s removal of the AsyncFunction Objects section from the spec in favor of depending on tc39/ecma262#2942. That other pull request adds many things, but the important part for this proposal’s current spec is that it allows AsyncBlockStart to take an abstract closure as an argument.
I agree with @bakkot that adding a note referring to tc39/ecma262#2942 would be good, and I will do that tonight before merging this PR.
It’s also true that the Array.fromAsync spec does not currently use all of the new machinery that tc39/ecma262#2942 adds. It just uses its enhancement of AsyncFunctionStart. What other machinery should Array.fromAsync use? Would it be redefined as an “built-in async function object”? I also note that https://github.com/tc39/ecma262/pull/2942#issuecomment-1515412109 suggests that the final form of tc39/ecma262#2942 is still not completely settled.
Anyways, I’ll open a separate issue for that.


QR Image centering issue

Awesome code, thanks!
At line 178, the image is made visible and the canvas is hidden.
This is the code to make the image visible:
this._elImage.style.display = "block";
The default display value for an image is "inline" so the code should be:
this._elImage.style.display = "inline";
That way the CSS rules added to surrounding elements are inherited as expected.
Thanks!

Vote Up

Now this code is at line 278

Now this code is at line 278

Refer to this https://github.com/davidshimjs/qrcodejs/issues/268#issuecomment-1030249595

Vote Up

Refer to this https://github.com/davidshimjs/qrcodejs/issues/268#issuecomment-1030249595


Respect json, preserveBuffers flags

Currently, the mock client doesn't follow the same rules as the official client in two important areas:

The official client has json set to false by default. Previously the mocked client would just pass through the message as-is, but it now JSON encodes and decodes the value. This creates a mismatch in behavior.
The official client has a preserveBuffers option, but this is not respected. Because of the JSON-encoding/decoding, this breaks some applications.

This PR replicates the official client behavior in terms of serialization/deserialization.

Can one of the admins verify this patch?

Sorry we forgot about this pr. But very nice! 🙂


Is there an example for FileTarget using C# code

I would like to create a FileTarget, not using a config file.  I would like to do so with C# code.   I cannot find an example that does not use a config file.  Can we please have a code example?

There is an easy code example in the wiki Tutorial:
https://github.com/NLog/NLog/wiki/Tutorial#configure-nlog-targets-for-output

Thank you


Notify busy daemons about file system changes

when using the notification API from the tooling API.
This change also removes a race condition for detecting
idle daemons, since we send the message to all daemons.

@lptr I merged these changes. Please take a look post-merge.


Update shifts-connector-wizard.md

Same update regarding the timezone as I did for the UKG doc

I'm no longer working on frontline. Assigning to Heidi


Make AST classes more explicitly value objects

Criteria:

immutable
equality comparison works (by location?)

See https://github.com/cucumber/cucumber-ruby-core/commit/2e85fcb5f0f32f52179da67e94c092950d4efed1#commitcomment-10458359

See also https://github.com/cucumber/cucumber-ruby-core/issues/84

this attr_accessor in background.rb should be possible to change to a attr_reader (the attributes are set in the constructor). What about this attr_accessor in doc_string.rb is the file attribute ever used? It is not set in the constructor, and I can remove the line from the file without neither the cucumber-ruby-core test nor the cucumber test fails.

@brasmusson if you can remove it without breaking tests, I'm happy to rip it out.

All attr_accessor declarations are removed from the ast classes (https://github.com/cucumber/cucumber-ruby-core/commit/044cca82b2ef2498517e5c6ef0f9e16e7c3225f7)


tests package needs some cleanup

The tests suite currently include api gateway tests which belong in the CLI test suite since they are just actions (related to https://github.com/apache/incubator-openwhisk/issues/1959).
The cli.tests package maybe should be renamed since there are API tests not CLI (wsk) tests. Renaming this package will require changes in the CLI tests suite though.
There are some dated tests (sequence migration that are not needed anymore).

The next phase is to remove and consolidate these suites:
tests/src/test/scala/system/basic/WskBasicNode8Tests.scala
tests/src/test/scala/system/basic/WskBasicSwift3Tests.scala
tests/src/test/scala/system/basic/WskBasicJavaTests.scala
tests/src/test/scala/system/basic/WskBasicPythonTests.scala
tests/src/test/scala/system/basic/WskBasicNodeDefaultTests.scala
tests/src/test/scala/system/basic/WskBasicNode6Tests.scala
Which don't cover all the runtimes but should.
I propose that we have one basic test suite (like the unicode test) which iterate through all the runtimes, based on the runtimes manifest (indirectly received via GET https://api-host).
This will require that we have a canonical test artifact in every language under tests/dat/actions (or come up with a way to extract the hello example from the docs).
@akrabat @csantanapr FYI

What we need it is a minimum integration test for all runtimes deployed based on manifest.
To cover E2E flow what the unit tests don't cover in their individual repos.

At this point I'd suggest the following changes to the test suite so as to achieve a better logical grouping of the tests:

move tests from system.basic.WskRestBasicTests to respective test classes (in the same package) for Actions, Rules, Packages etc. because the single class is a mix of tests that should be in the specific classes
move some tests from whisk.core.cli.test package to the system.basic package as they're using REST and are system-level tests anyway:

WskRestBasicUsageTests - move tests to system.basic.{Action, Package, ...} except for two methods which are related to web actions, move these to whisk.core.cli.test.WskWebActionsTest
pull test cases from WskActionSequenceTests and WskRestActionSequenceTests into a system.basic.WskSequenceTests, they're all using REST
merge WskEntitlementTests and WskRestEntitlementTests into a single non-abstract class, and move this class to system.basic package
(it's been more than a year and there's still no other implementation than REST)
move BaseApiGwTests, ApiGwRestBasicTests, ApiGwRestTests to a newly created package system.api
since at this point the only remaining class in whisk.core.cli.test is WskWebActionTests, let's rename the package to whisk.core.web

This is great! Thanks for tackling it.
The abstract classes exist to allow the CLI to reuse these test suites. Arguably the cli should use more unit test but there are very few of those today.
Nonetheless flattening the type hierarchy is still valid in some cases.

For the sake of a more efficient review, id suggest either several prs or one pr with each commit refactoring one test suite.
You’ll need to be mindful of dependent changes that may be necessary in the cli repo.

We'd done a fair bit on this.


Add fast scroll buttons

Many SFOS apps have them and they would be very useful for long text files in Seabass.
Jolla Phone with SFOS <IP_ADDRESS> and Seabass 0.3.1

QuickScroll relies heavily on SFOS native scroll capabilities.
Seabass doesn't use native SFOS scroll for Editor component (instead virtual scroll is implemented by Ace editor).
Resolving with wontfix as manual implementation of quick scroll would require too much work.
Long press on Up/Down navigation buttons is implemented as a workaround.

Thanks for the hint to the workaround. I haven’t known before.
And yes I know this is 4 years old now. ☺


Same name vm in other vcenter

Steps to Reproduce

Have the same VM in 2 different vcenters (in this case a template server that you roll out)
run the script
VM is "updated" twice (once for cluster A and once for cluster B

Expected Behavior
The vm should be create two times, one in each cluster.

Observed Behavior
When the script searches if a vm exists it finds the VM of CLUSTER B and changes is to CLUSTER A. When the script is processing CLUSTER B and it finds the same VM the VM is updated from CLUSTER A to B

Hello, @MalfuncEddie.
Thanks for the report. You are indeed correct we should only update the VM relevant to the vCenter it was detected on originally. I'll work on improving this behavior. Thanks for the report!

I have merged this into develop. Thanks!

Hi,
I juist checkt the develop branch te see the fix. but it looks like the problem is still there.
The vm is create in the last cluster but it has the tags "Vcenter A" and "Vcenter B".

@MalfuncEddie I am requesting the resources to test this again. Was the sync done in an already populated NetBox instance? I had to remove the second vCenter tag from the existing VM object as it had already been synced that way and I didn't see a duplication on a fresh sync, but I am going to fully retest this on my side. Thanks!

I'll clean my setup and run the sync again. results tomorrow :)
On Tue, May 12, 2020 at 1:44 PM Raymond Beaudoin<EMAIL_ADDRESS>wrote:

@MalfuncEddie https://github.com/MalfuncEddie I am requesting the
resources to test this again. Was the sync done in an already populated
NetBox instance? I had to remove the second vCenter tag from the existing
VM object as it had already been synced that way and I didn't see a
duplication on a fresh sync, but I am going to fully retest this on my
side. Thanks!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/synackray/vcenter-netbox-sync/issues/93#issuecomment-627292135,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANDKCZPDB5WHKGCM64VJODRREZC3ANCNFSM4MOIO36Q
.

Hi,
run.py -c
Did a check an there were no vm/ tag/ ...
ran run.py again:
same result
vm gets created
vm get updated
run it again
vm get updated
the diff shows
update 1
{
"cluster": 23,
"platform": 28
}
to
{
"cluster": 29,
"platform": 1
}
update 2:
{
"cluster": 29,
"platform": 1
}
to
{
"cluster": 23,
"platform": 28
}

and the vm has 2 vcenter tags

I didn't try it myself but can you have two virtual machines with the same name in netbox?

No, VM name is unique

Id and name are the primary keys. Then the only solution would be to rename both VMs in netbox with their cluster name as suffix.

Hi,
This could be solved by adding a custom field UUID and using that as the
primary key.
In either case I've written a custom script that does juist that since I
also had the same cluster names in different vcenters :( .
kind regards
On Fri, Sep 25, 2020 at 11:01 PM Ricardo<EMAIL_ADDRESS>wrote:

Id and name are the primary keys. Then the only solution would be to
rename both VMs in netbox with their cluster name as suffix.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/synackray/vcenter-netbox-sync/issues/93#issuecomment-699153263,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANDKC4O54VSCVUPZRIGTNTSHUALPANCNFSM4MOIO36Q
.

I was thinking the same.
How did you name your clusters then?
Vcenter name as prefeix?

Yes I did
On Sat, Sep 26, 2020, 08:28 Ricardo<EMAIL_ADDRESS>wrote:

I was thinking the same.
How did you name your clusters then?
Vcenter name as prefeix?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/synackray/vcenter-netbox-sync/issues/93#issuecomment-699438362,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AANDKC4VOAVCU4Y35IPD3H3SHWCYFANCNFSM4MOIO36Q
.

Just stumbled across this issue. VM and Device names are NOT unique. Here a long discussion on this topic: https://github.com/netbox-community/netbox/issues/2669


Update README.md

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.915%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1175

Relevant Lines:
1176

💛  - Coveralls


add contributing documentation

This PR contains:
Contributing guide documentation for other developers
Describe the problem you have without this PR
Developers do not have a documentation that clearly outlines how they can contribute and what the project expects from it's contributors.

This is just copy pasted stuff.


C88702:  Changing triple backtick for inline code and putting all in the same line

Localization team has reported source content issue that causes localized version to have broken/different format compared to en-us version.

Docs Build status updates of commit 6223d52:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemWatcher.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

#sign-off

Docs Build status updates of commit 9467da5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

project-rome-docs/objectivec-api/remotesystems/MCDRemoteSystemWatcher.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

I believe these changes were addressed in the other PR I just completed. If not, please let me know and reoped the PR>

Hi @knicholasa , Change is good , Thanks.


Department Pages GWT and Funding Dept

Pull request for Department Changes.

Departments page -- Major Issues

Distribution Preference Priority is not populated and not being updated on the Add/Edit Department page
The ability to edit External Manager Abbreviation, Name and Distribution Priority is not correctly handled

The abbreviation, name, and priority is not editable only when editing an existing department that is not externally managed and does not allow for a change
They should be editable for department that is externally managed (only the manager toggle should be disabled)
Any consequent editation have the fields disabled (even when adding a new department)
Examples (from woebegon data):

LLR department has External Manager checked and disabled, but abbreviation, name, and dist priority are editable
Instr department had External Manager unchecked and all External Manager fields and the dist priority are not editable (this is correct)
After Instr department was opened, editing any other department or adding a new department has the fields disabled -- try to update LLR department and then create a new externally managed department

External Id field on the Edit Department page does not populate (it always shows blank, even when the department has an external id filled in)

Departments page -- Minor Issues

DepartmentsDataResponse: iCanUpdateData is not beeing used and it is not correctly set (see inline comments)
(this was mentioned in one of the previous comments too)
UpdateDepartmentBackend: do NOT call hibSession.close() in saveOrUpdate(...), see the inline comment
when the External Manager toggle is unchecked, please hide or disable External Manager Abbreviation and Name (they are only editable when the department is marked as external)
There are still a few texts that are not localizable (are hard-coded instead of using MESSAGES bundle)

E.g., the content of the Allow Required column

Classes page changes

Instructional Offerings page got broken by the changes!!
WebInstructionalOfferingTableBuilder.setVisibleColumns(...) calls setShowFundingDepartment(form.getFundingDepartment().booleanValue()) but getFundingDepartment() returns null
please remove the unused changes in ClassSearchAction (created fetchFundingDepartment variable, commented out code using it -- see inline comments)
ClassListForm: in the reset method, fundingDepartment is initialized two times (see inline comment)
WebInstructionalOfferingTableBuilder: please remove the added commented out code (second addition of the Funding Department column header, see inline comment)
classList.jsp: please remove the change (only a blank line was added)

Other

please remove src/main/webapp/META-INF/MANIFEST.MF from the committed changes

Also, please take a look at the inline comments!


Agora deployment stuck at stage 14/17 - prometheus-grafana

Is your issue related to a Jumpstart scenario, ArcBox, HCIBox, or Agora?
azure_jumpstart_ag
Describe the issue or the bug
I utilized Visual Studio Code's development container feature to establish the working environment. However, I encountered an issue during the initial login process to the client virtual machine. The script fails to complete, halting at step 14. Please refer to the attached image for a detailed view of the problem
[2:36 AM] INFO: Kubernetes API server https://ag-staging-11rcp6ey.hcp.eastus.azmk8s.io:443 is available                 Error: INSTALLATION FAILED: failed pre-install: 1 error occurred:                                                               * timed out waiting for the condition                                                                                Test-NetConnection - <IP_ADDRESS>:443                                                                                Attempting TCP connect                                                                                Waiting for response                                                                                Error from server (NotFound): services "prometheus-grafana" not found
[2:43 AM] INFO: Waiting for Staging monitoring service to provision..
Error from server (NotFound): services "prometheus-grafana" not found
To Reproduce
When remotely connect to the client virtual machine via Remote Desktop Protocol (RDP), the process encounters an issue and does not progress beyond step 14.
Expected behavior
for the post install script to complete.
Environment summary
I used azd up to create the environment.
Have you looked at the Troubleshooting and Logs section?
yes, but I dont see any errors, it just doesn't complete.
Screenshots

Additional context

Hi @bpersino, thank you for reaching out. Looks like the helm chart installation failed for the kube-prometheus stack. Could you please share the logs from the C:\Ag\Logs\Observability.log.

I already destroyed that environment, but i deployed another one today.  I was able to progress little further, but the install still gets stuck at step 14/17.

Upon examining the Staging Kubernetes workload, I noticed certain observability namespaces. It seems Prometheus is already deployed, yet the script hasn't detected it.

I have attached the log for your review.
Observability.log

@bpersino Yes, looks like the installation is complete. Can you open another shell and run below commands and share the output?
kubectx staging
kubectl -n observbility get svc

@zaidmohd
Looks like the loadBalancer is in a pending state.

@zaidmohd
After reviewing the Prometheus-Grafana logs, I've found i have hit my 10 public IP limit. I'll adjust this and continue deploying. Additionally, it might be helpful if the Bicep code checks this during deployment and the documentation could specify the required public IP count.
kind: Event
apiVersion: events.k8s.io/v1
metadata:
name: prometheus-grafana.177ba43cafa5aac6
namespace: observability
uid: 9a6f94ec-da3c-45e2-996b-b77d358910d2
resourceVersion: '35701'
creationTimestamp: '2023-08-15T19:11:05Z'
managedFields:
- manager: cloud-controller-manager
operation: Update
apiVersion: v1
time: '2023-08-15T19:56:31Z'
fieldsType: FieldsV1
fieldsV1:
f:count: {}
f:firstTimestamp: {}
f:involvedObject: {}
f:lastTimestamp: {}
f:message: {}
f:reason: {}
f:source:
f:component: {}
f:type: {}
eventTime: null
reason: CreateOrUpdatePublicIPAddress
regarding:
kind: Service
namespace: observability
name: prometheus-grafana
uid: a2aae633-c952-434b-9f8b-aa46c0d48468
apiVersion: v1
resourceVersion: '21870'
note: "Retriable: false, RetryAfter: 0s, HTTPStatusCode: 400, RawError: {\r\n  "error": {\r\n    "code": "PublicIPCountLimitReached",\r\n    "message": "Cannot create more than 10 public IP addresses for this subscription in this region.",\r\n    "details": []\r\n  }\r\n}"
type: Warning
deprecatedSource:
component: azure-cloud-provider
deprecatedFirstTimestamp: '2023-08-15T19:11:05Z'
deprecatedLastTimestamp: '2023-08-15T19:56:31Z'
deprecatedCount: 15

@zaidmohd The deployment finished once I increased the Public IP quota.

@zaidmohd After reviewing the Prometheus-Grafana logs, I've found i have hit my 10 public IP limit. I'll adjust this and continue deploying. Additionally, it might be helpful if the Bicep code checks this during deployment.
kind: Event apiVersion: events.k8s.io/v1 metadata: name: prometheus-grafana.177ba43cafa5aac6 namespace: observability uid: 9a6f94ec-da3c-45e2-996b-b77d358910d2 resourceVersion: '35701' creationTimestamp: '2023-08-15T19:11:05Z' managedFields: - manager: cloud-controller-manager operation: Update apiVersion: v1 time: '2023-08-15T19:56:31Z' fieldsType: FieldsV1 fieldsV1: f:count: {} f:firstTimestamp: {} f:involvedObject: {} f:lastTimestamp: {} f:message: {} f:reason: {} f:source: f:component: {} f:type: {} eventTime: null reason: CreateOrUpdatePublicIPAddress regarding: kind: Service namespace: observability name: prometheus-grafana uid: a2aae633-c952-434b-9f8b-aa46c0d48468 apiVersion: v1 resourceVersion: '21870' note: "Retriable: false, RetryAfter: 0s, HTTPStatusCode: 400, RawError: {\r\n "error": {\r\n "code": "PublicIPCountLimitReached",\r\n "message": "Cannot create more than 10 public IP addresses for this subscription in this region.",\r\n "details": []\r\n }\r\n}" type: Warning deprecatedSource: component: azure-cloud-provider deprecatedFirstTimestamp: '2023-08-15T19:11:05Z' deprecatedLastTimestamp: '2023-08-15T19:56:31Z' deprecatedCount: 15

That is a good idea, we will out in our backlog. Let me know if you hit any other issue.


Ability to intercept a navigation request

Describe the problem
I was trying to build a confirmation dialog feature that appears before the user tries to leave the page.

The problem that occurred is that normally in this case we would use beforeunload listener and prevent the navigation event from firing before leaving the page. However, in sveltekit we have client-side routing so this event is not fired.
Currently, there is no good way of handling that.
Describe the proposed solution
My proposed solution is to create a listener that exposes the navigation intent.
Within this intent, we should be able to cancel the navigation and get the required information about the page we are trying to navigate to.
The idea is to create a onBeforeNavigate interceptor that is triggered when we use the following events:

goto()
popstate events
anchor tags clicks

The interceptor could be used in the following way:
<script>
  import { browser } from '$app/env';
  import { onBeforeNavigate } from '$app/navigation';

     if (browser) {
       onBeforeNavigate((navigationIntent) => {

          //the url we are going to navigate to
	  console.log(navigationIntent.url);

          //optionally cancel the navigation
	  navigationIntent.cancel();

        });
      }

</script>

Alternatives considered
An alternative is just to disable the client-side router
Importance
i cannot use SvelteKit without it
Additional Information
No response

Closing this since there is an issue for that already #560

Reopening this since it is a different request from the onNavigate function proposed by Rich. I think we can move the discussion about the onBeforeNavigate function in this request.

I was looking at the current route implementation and new onBeforeNavigate would need to be triggered by a  synthetic event. Currently we have "navigation-start" and "navigation-end" event, we should add something like "navigation-intent" event
and add it to all of the palces that handle click, goto and browser navigations like so:
                        //by default the navigation is allowed
	                let startNavigation = true;

                        //once we verified that the route is valid we emit a navigation-intent event
                        //we pass in the information about the current route as well as a function that
                        //can prevent us from executing the navigation
			dispatchEvent(
				new CustomEvent('sveltekit:navigation-intent', {
					detail: {
						url: url.href,
						cancelNavigation: () => {
							startNavigation = false;
						}
					}
				})
			);

                        //prevent futher execution of navigation if the user has cancelled the navigation
			if (!startNavigation) return;

                        ...execute the navigation

Will this work for you? https://github.com/sw-yx/svelte-actions#preventtabclose

Will this work for you? https://github.com/sw-yx/svelte-actions#preventtabclose

@IsaacHub  No, I also need to handle browser buttons, hrefs, and programmatically navigation without a button.
I've already made a pull request for that here: #2982


Test info::repo::tests::display_time_as_human_time_current_time_arbitrary can fail

Running cargo test, it seems like this test can fail, at least on my machine. It returns "2 years ago" instead of the expected "a year ago". I ran a bisect to make sure that there were no changes causing this test to fail, and bisect selected 3d7b14b856300b145f2b2dfec2ca62cb5c0785e8

I think the issue is that time is set to<PHONE_NUMBER>, instead of being relative to the current time.


feat!: Implement pseudo-builder pattern for ConstraintSystem & hide struct fields

This builds upon #118 and hides all fields on the ConstraintSystem struct. It then implements an Builder-like pattern on the ConstraintSystem for building them up in tests (note that this is only ever used in tests and in normal use these are constructed via From<&Circuit>)
I opted away from an entirely new struct for the builder pattern because we use vecs for everything and they can be defaulted to empty vecs. Marking as a draft so we can decide if this is good enough.

note that this is only ever used in tests and in normal use these are constructed via From<&Circuit>

Shall we add #[cfg(test)] to these functions in this case to avoid them hitting the external interface?

I can add a comment to make them #[cfg(test)] once merged into one crate


WIP: Code cleanup

Code cleanup to match c# guidelines and suggested styles.

This is gonna take a while, ain't it


Coverage for graphite.whitelist

I had this mostly together, so in light of issue #1569 and pull request #1570, I submit this for test cases before the wording changes.

Fix graphite.whitelist.load_whitelist()
Add test cases for show, add and remove

Of note, the load_whitelist() function was not working before this change.  If the preferred method is to read the blob in and use unpickle.loads(), then that can be done.

[Current coverage][cc-pull] is 56.67%

Merging [#1572][cc-pull] into [master][cc-base-branch] will increase coverage by 0.42%

@@             master      #1572   diff @@
==========================================
  Files            52         52
  Lines          5781       5780     -1
  Methods           0          0
  Messages          0          0
  Branches       1111       1111
==========================================
+ Hits           3252       3276    +24
+ Misses         2328       2301    -27
- Partials        201        203     +2

Powered by Codecov. Last updated by [d0295a2...2d23e70][cc-compare]
[cc-base-branch]: https://codecov.io/gh/graphite-project/graphite-web/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/graphite-project/graphite-web/compare/d0295a2918b4bd40b6f519266ae95c2dc6ea1b77...2d23e707cac0df6332f0cc87459b4243f0cb41e1
[cc-pull]: https://codecov.io/gh/graphite-project/graphite-web/pull/1572?src=pr

Thank you for this, @cbowman0

I adjusted the testing to be deterministic.  I would like someone else from @graphite-project/committers to confirm the changes to load_whitelist() is ok.
Once that is merged, I will help @gwaldo with adjusting the test cases to work with his wording changes, if required.

@cbowman0 why the change from unpickle to pickle? The latter is intended as a safe alternative to the insecure pickle.
https://github.com/graphite-project/graphite-web/blob/af7c0c13889c59a192debcb3833643df3d394597/webapp/graphite/util.py#L159-L212

@obfuscurity Because it currently doesn't work.  Calls to load_whitelist() error with:
AttributeError: type object 'SafeUnpickler' has no attribute 'load'

Ah right, we're loading from a file, not a string. Looks like a typo from https://github.com/graphite-project/graphite-web/commit/c198e5836970f0970b96498fcbe6fa83d90110cf. Yeah, this change looks good.
👍

Alternatively, we can do:
   buffer = open(settings.WHITELIST_FILE, 'rb').read()
   whitelist = unpickle.loads(buffer)

and add set to the PICKLE_SAFE set.  I can do that quickly, if that's preferred.

@cbowman0 Yeah, good idea.

Done.  Once automated checks go green again, I'll merge it.


Multi-class sample imbalance problem

Hi,
I have sample imbalance problem for multiclass.
I use class_weight, but it doesn't  have any effect on the results, I think it may not work, so how to solve the multi-class sample imbalance problem.

can you provide a code example and demonstrate how it doesn't work?

My code example is as follows:
`data_file='data/train_data/train_data.csv'
train_data,test_data = get_data(data_file)
class_weight = dict({1:0.1, 2:0.3, 3:0.3, 4:0.3})
print("=============Begin training model=============")
set param
param = {'num_leaves':100,
'min_data_in_leaf':30,
'objective':'multiclass',
'max_depth':10,
'learning_rate':0.1,
'min_child_samples':20,
"boosting":"gbdt",
"feature_fraction":0.9,
"bagging_freq":1,
"bagging_fraction":0.9,
"bagging_seed":11,
"metric":'multiclass',
"lambda_l1":0.1,
"verbosity":-1,
"nthread":4,
"random_state":4590,
"num_class":5,
"class_weight":class_weight
}
training
Training a model requires a parameter list and data set:
num_round = 500
bst = lgb.train(param, train_data, num_round, valid_sets=[test_data], early_stopping_rounds=10)
bst.save_model('model.txt', num_iteration=bst.best_iteration)
`
I set "class_weight" in "param", but the accuracy, recall and accuracy have not changed, so I think  it doesn't work.

@lyliu class_weight is defined only in sklearn wrapper. It cannot be used in ordinary API.