cypress-io / cypress

Fast, easy and reliable testing for anything that runs in a browser.
https://cypress.io
MIT License
47.03k stars 3.19k forks source link

Breaking change without warning #28269

Closed redbugz closed 10 months ago

redbugz commented 1 year ago

Current behavior

All of our CI builds broke today across our entire organization with this error:

We've detected that you're using a 3rd party library that is not supported by Cypress

We now see this blog post: https://www.cypress.io/blog/2023/11/07/update-defense-intellectual-property announcing immediate block without warning.

I'm sorry that you and the maintainer of sorry-cypress are involved in a dispute and I sympathize with your position, but as a self-hosted user of the of the sorry-cypress dashboard we were blindsided by this action. We cannot afford Cypress Cloud, so having a self-hosted option that reduces our build times was useful to us, once again I'm sorry they chose a bad name and won't work with you. However, this was a breaking change without warning and through no fault of our own. We were aware of the block in v13 so we chose not to upgrade and stay on v12 for now, but breaking an already released version without any warning is bad form and inconsiderate, and certainly not in keeping with semver principles.

Desired behavior

Cypress should have issued a warning and given us some time to make changes before breaking an already released and supported version and wasting half of our day.

Test code to reproduce

Any repo using sorry-cypress

Cypress Version

12.17.4 and 12.17.1

Node version

20

Operating System

Ubuntu 22

Debug Logs

No response

Other

No response

jsnet-ops commented 1 year ago

Running into the same issue. It should only be blocked as of version 13. We are on Cypress 12.11 and cypress-cloud 1.8.9 Locally, things run fine, but in the azure DevOps pipeline, it breaks.

warri93 commented 1 year ago

They blocked it for V12 as of yesterday :/

https://www.cypress.io/blog/2023/11/07/update-defense-intellectual-property

vaclavGabriel commented 1 year ago

I'm quite disappointed by Cypress's actions. It's an extremely unfriendly, bullying move that drives people to switch to Playwright or start using forked versions of Cypress to bypass the restrictions. This goes against the core open-source ideas of sharing and collaboration.

There are just two options for me: using forked versions of Cypress or switching to Playwright. I'm not paying triple the price of Currents.dev.

zerobias commented 1 year ago

We thought about taking a paid version of the dashboard in the future, but after such aggressive moves — breaking change in already published versions is a big no, — we are immediately leaving this technology for a more adequate one

mturza commented 1 year ago

As previously mentioned in the comments, I wholeheartedly concur that this action runs counter to the principles of the open-source philosophy. While I empathize with Cypress representatives for feeling compelled to take defensive measures, the manner in which they executed this decision is far from welcoming, particularly to their devoted, long-time Cypress supporters.

We sincerely request a more transparent line of communication, along with advance warnings. Given the broad impact on the entire community, it would be equitable to treat Cypress users in a more amicable manner. The measures taken thus far are quite drastic, prompting us to explore the possibility of migrating to a paid Cypress solution. In doing so, we hope to see a discounted or fair and user-friendly pricing structure.

amakhrov commented 1 year ago

Retroactively making breaking changes to previously published docker images in Dockerhub reminds me of the left-pad scandal. Not for its scale, of course - but the principle is the same. NPM has since introduced changes to prevent this from happening again - I wish Dockerhub had a similar policy.

So much for talking about the open-source commitment.

jennifer-shehane commented 1 year ago

We understand the frustration recent updates have caused for your builds.

This blog post clearly details the reasons behind blocking Currents.dev and Sorry Cypress. This decision to block certain third-party services was initially announced in our September 25 blog post. Additionally, users of Sorry Cypress and Currents.dev might have faced disruptions even before that announcement due to related updates.

Cypress has made concerted efforts to keep our users and clients, particularly those we interact with, informed about possible interruptions when using these third-party services with the App. While these efforts were intended to communicate ongoing actions to the best of our capacity, unfortunately we are unable to ensure that all users see such communications.

You can continue to use Cypress by removing the third-party libraries and their configuration or downgrading to version 12.0.2 or below. We can assist you if you need help with removing the unsupported third-party libraries to continue using Cypress.

jsnet-ops commented 1 year ago

Cypress hardly gave a 24hr notice that they would introduce braking changes in previously released versions. This already is an incredible WTF. Cypress knew this would cause lots of CI/CD issues and figured that users would subscribe to the paid version of cypress dashboard, since rewriting to Playwright takes time/money, and to be able to keep using parallel testing.

I never experienced such an aggressive manner of gaining clients, just by shutting down their production pipelines. It's mala fide.

rszalski commented 1 year ago

We are one of the companies affected. A couple of years ago we had to switch to an alternative orchestrator solution because you hiked prices 2x+. It felt like being strong-armed. Now you are strong-arming us again by seriously disrupting our pipelines. Maybe we’ll have to switch to Cypress Cloud, but before we do we’ll do everything in our power to limit E2E spend and then find an alternative framework.

What I’ll say below is my personal opinion. Also, I acknowledge that it is your business and you can do absolutely anything you want.

I generally enjoyed using Cypress framework (and the app), and would have continued using it if not for this situation. I cannot trust this ecosystem anymore.

I think you have great engineers working hard on the product. I am wondering how they feel about these decisions. I also know it is hard running a business; having to pay your team, deliver a product and satisfy investors. But, I also think that a little competition would actually be healthy.

I used to be an informal ambassador for Cypress. Introduced it to many projects and raved about it to technical and non-technical colleagues. I cannot continue doing this in good conscience. From now on, I will never consider or recommend Cypress for any kind of project.

estefafdez commented 1 year ago

@rszalski I share your frustrations and concerns regarding the recent decisions made by Cypress. As someone who was also an ambassador, it's disheartening to witness being removed from the program simply for actively using sorry-cypress (which I was already using before becoming an ambassador), especially given the longstanding advocacy for Cypress.

I have been a passionate supporter of Cypress. However, the recent changes and disruptions to existing users, coupled with what appears to be a deliberate move to limit competition, have left me questioning the commitment to the open-source spirit.

While I understand the complexities of running a business and the need to make strategic decisions, balancing that with maintaining user trust and fostering a healthy, competitive environment is crucial. The pricing structure for Cypress Cloud, the retroactive blocking of versions, and the apparent need for an orchestrator to enable parallelism on private infrastructure all contribute to a growing sense of dissatisfaction among the user community.

I have always admired the hard work put in by Cypress's talented engineering team, but these recent decisions have cast a shadow over my confidence in the tool and its ecosystem. As an advocate, I can no longer conscientiously recommend Cypress for future projects. Seeing a tool I once loved being steered away from the open-source principles that initially drew me to it was disheartening.

I hope that Cypress takes into consideration the feedback from its user community and reevaluates its recent decisions to ensure the continued trust and support of its user base.

DamienCassou commented 1 year ago

I think pricing for Cypress Cloud is absurd. If we were to switch to it right now (2-3x cost increase) we’d pay more for running just the E2E test than for our entire AWS infrastructure (sic!).

We are in the exact same position. My management and I wanted to contribute back but this pricing doesn't make sense.

I used to be an informal ambassador for Cypress. Introduced it to many projects and raved about it to technical and non-technical colleagues. I cannot continue doing this in good conscience. From now on, I will never consider or recommend Cypress for any kind of project.

2 weeks ago I recommended other teams in the company to avoid Cypress at all costs.

redbugz commented 1 year ago

@jennifer-shehane Thank you for the response, but I feel there need to be some clarifications.

Cypress has made concerted efforts to keep our users and clients, particularly those we interact with, informed about possible interruptions when using these third-party services with the App. While these efforts were intended to communicate ongoing actions to the best of our capacity, unfortunately we are unable to ensure that all users see such communications.

If this were just a matter of people seeing it, that would be one thing. But there was no communication that this would be broken in 12.x. No advanced blog post, no warning message in the console, and I've seen no engagement on the sorry-cypress or cypress-cloud Github repos with any complaints or issues from anyone at Cypress. So I have to assume your months of concerted effort involved communicating directly with the primary maintainer privately because I haven't seen any public engagement at all. But there is a whole community of us that don't use Currents.dev and are just open source community members. The only complaint in the blog post specifically relevant to sorry-cypress is the name, all of the other complaints only pertain to the Currents.dev commercial offering. I understand your dispute with Currents, I do not understand the issue with sorry-cypress (other than the name). So what I feel proper engagement with an open source project would have been to open an issue or discussion on the sorry-cypress and cypress-cloud Github repos explaining your issues and warning of impending blockage. Request a name change and state your case. Give the community the opportunity to comply with your request and make the change. That would have shown actual "concerted efforts". Instead, the open source project community is being punished by association because of a private dispute with the primary maintainer.

Roemer commented 1 year ago

We use Cypress and Sorry Cypress for years as both are a joy to use. We understand, both are businesses that need to run and therefore earn money. For those who can't run a cloud dashboard, Cypress at least offers the Gateway Connector which allows to use Cypress (even v13) with a local Sorry-Cypress dashboard. But it is uncertain how long this will work. When Cypress changes something in the API and does not notify Sorry Cypress or even contribute that change themselves, it will just break. As a business customer, this is pretty unsatisfying, having a system that can just break anytime. I wish Cypress would work with Sorry Cypress together to find solutions, even if this means for paying customers only (but then don't advertise itself als fully open source company).

falaxfala commented 1 year ago

This blog post clearly details the reasons behind blocking Currents.dev and Sorry Cypress. This decision to block certain third-party services was initially announced in our September 25 blog post. Additionally, users of Sorry Cypress and Currents.dev might have faced disruptions even before that announcement due to related updates.

@jennifer-shehane And why do you think, that anybody who has stable pipeline and currently doesn't want to update anything would look at your blog? Why did you just broke already released and working on prod versions? Ridiculous...

mercmobily commented 10 months ago

I am 47, I've been in the industry for 30 years, I have seen this before. Cypress will mostly disappear within the next 1 or 2 years. I say "mostly' because it will still exist in some respect.

Playwright is the nail in the coffin -- a nail that will take a while to be fully in, but a nail never the less.

Congratulations, clueless management.