-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build: fail builds without configuration file or using v1 #10355
Conversation
When we detect a build is built without a Read the Docs configuration file (`.readthedocs.yaml`) we show multiple notifications: - a static warning message in the build detail's page - a persistent on-site notification to all maintainers/admin of the project - send a weekly email (at most) This is the initial step to attempt making users to migrate to our config file v2, giving them a enough window to do this and avoid breaking their builds in the future. Closes #10348
Use a feature flag to decide whether or not hard fail the builds that are not using a configuration file at all or are using v1. This will be useful in the future when we want to make the builds to fail during a reduced period of time to inform users/customers about this deprecation. Related #10351
…mitos/fail-build-without-config
The
Maybe the |
This is a continuation of the work done for * #10351 * #10342 * #10348 * #10355 In that work we added notifications, warning messages and finally a feature flag to start failing the builds without a configuration file or using v1. This commit removes all the code for config file v1 and building without a configuration file. Due to that, it also removes the code that allows users to use the older Docker images (testing, latest, stable) This work can be merged once we enable the feature flag to fail the builds for all the projects and we are happy with the results.
…mitos/fail-build-without-config
I had to deal with `PYTHONPATH` again and also with `DJANGO_SETTINGS_MODULE` this time. Mainly, I did this work because my PR at readthedocs/readthedocs.org#10355 is failing and it doesn't make sense. This fixed my issue locally and I hope it fixes the issue on CircleCI as well. Let's see.
This is an attempt to solve the issue with the CircleCI `checks` test.
It seems I was able to fix the linting issues by updating the pre-commit dependencies 💪🏼 |
This is ready to review. We can merge at anytime since the logic is behind a feature flag. Then, on the days of brownout, we can enable the feature flag to all the projects during the hours we agreed on. |
* pre-commit: update our dependencies I had to deal with `PYTHONPATH` again and also with `DJANGO_SETTINGS_MODULE` this time. Mainly, I did this work because my PR at readthedocs/readthedocs.org#10355 is failing and it doesn't make sense. This fixed my issue locally and I hope it fixes the issue on CircleCI as well. Let's see. * Update darker dependencies as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's quite nice to have this all prepped and ready to go 👍
Just two notes for copy tweaks, the copy was already close.
Co-authored-by: Anthony <[email protected]>
…10367) * Deprecation: remove code for config file v1 and default config file This is a continuation of the work done for * #10351 * #10342 * #10348 * #10355 In that work we added notifications, warning messages and finally a feature flag to start failing the builds without a configuration file or using v1. This commit removes all the code for config file v1 and building without a configuration file. Due to that, it also removes the code that allows users to use the older Docker images (testing, latest, stable) This work can be merged once we enable the feature flag to fail the builds for all the projects and we are happy with the results. * Deprecation: update documentation of config file * Deprecation: update config file to remove old keys * Deprecation: update config file v2 docs to deprecate keys - python.version - python.system_packages People should not be using these keys. * Remove auto-install requirements file found on project * Make the deprecated fields read-only as discussed * Remove tasks to send emails about deprecations * Lint & Tests * Remove reference to v1 config file docs * Normalize `get_build_config()` * Update tests for config file * Update tests for collectors * Update tests to follow the new deprecations * Remove invalid tests * More updates related to the config files * Update more tests * Lint
Use a feature flag to decide whether or not hard fail the builds that are not
using a configuration file at all or are using v1.
This will be useful in the future when we want to make the builds to fail during
a reduced period of time to inform users/customers about this deprecation.
@agjohnson, I'd appreciate feedback on the copy for the message.
Related #10351