dlang / project-ideas

Collection of impactful projects in the D ecosystem
36 stars 12 forks source link

Make buildkite testing pipeline for dmd treat deprecations as errors #105

Open RazvanN7 opened 1 year ago

RazvanN7 commented 1 year ago

Description

Once a partic ular feature is deprecated, tested projects that are using that feature are still going to successfully pass the testing pipeline - buildkite in our case. This doesn't indicate what is the level of disruption that a particular deprecation yields and may lead to issuing a "blizzard of deprecations" that fall under the radar for the person that does the deprecation.

The purpose of this project is make buildkite treat deprecations as errors and then update all of the currently tested projects to not issue any deprecations.

What are rough milestones of this project?

How does this project help the D community?

The most important D projects should be present in the buildkite testing pipeline. Therefore, when introducing a deprecation we can get an idea of what the actual "breakage" is going to be if a feature is to be dropped. In addition, fixing the most popular projects to not issue any deprecations is going to make it easier and far less confusing to use those packages.

Recommended skills

Git, D, perseverence, patience, make, bash, CI/CD

Point of Contact

@RazvanN7

Geod24 commented 1 year ago

Hardly workable. Look at Ocean, it explicitly treat deprecations as such (because the default is deprecation as error). It should be the responsibility of the person introducing the deprecation to do this work. It's as simple as switching a boolean on in the code, see what breaks, and fix it. But you might have to wait for new releases for a deprecation to be mergeable.

RazvanN7 commented 1 year ago

I agree it should be the responsibility of the person introducing the deprecation, but since the testing pipeline passes successfully how is one supposed to see and fix the errors? If the answer is: "manually check each project", that's not realistic. Therefore, if we realistically want to avoid having deprecations forever in the projects tested by buildkite, we need to fix them now and enable -de for all of them.