-
-
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
Deprecation: require projects define a configuration file #10342
Comments
We are installing Sphinx 1.x based on a feature flag. There are around 900 projects still using 1.x, based on https://ethicalads.metabaseapp.com/question/250-projects-using-sphinx-timeserie Note this feature flag is enabled by default for new projects starting on Oct. 20, 2020 We may need to send them an email about this and informing them how to create a `requirements.txt` file to pin their dependencies. I don't think that the migration to a config file v2 would enforce them to pin Sphinx. Related #10342
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.
Would it be possible to have a default for every configuration option. Ideally set to the recommended one? Such as Therefore if I'm just fine with every default, I'd have a file with just PS: Thanks for your service, it's awesome! Footnotes
|
Hi @steveschnepp! Thanks for you comment and your suggestion here 👍🏼
This is exactly what we have tried and it's how it currently works. Right now, if there is no This is part of the background behind this decision. If you want to know more, you can read our blog post about this at https://blog.readthedocs.com/migrate-configuration-v2/. I hope this explanation helps.
We are true believers that "explicit is better than implicit" 😉 |
Thanks! Actually it was that blog post that led me to here, as I wanted to open a new issue about the defaults, but since I found this one, I simply added a comment. 😉 I understand that the current defaults are old. But let's simply say : those are the On the other hand, the Which is a part of why requiring to have an explicit config file is a good idea.
Well, for configuration, I was in that camp also. But now, I'm much more in the other side. As as a consumer, I just want to use the sanest defaults and not think too much about them, unless I really need to. If everything is explicit, it needs some maintenance from my side, and I won't automatically benefit from any upgrades/enhancement on your side. |
This is getting tracked in our largest list of deprecation (#10587) |
We are installing Sphinx 1.x based on a feature flag. There are around 900 projects still using 1.x, based on https://ethicalads.metabaseapp.com/question/250-projects-using-sphinx-timeserie Note this feature flag is enabled by default for new projects starting on Oct. 20, 2020 We may need to send them an email about this and informing them how to create a `requirements.txt` file to pin their dependencies. I don't think that the migration to a config file v2 would enforce them to pin Sphinx. Related #10342
…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
Edit: if you arrived at this issue for any reason, make sure to read the blog post that contains all the important info
For some background here, we identified a number of issues that stem from our historical decision to provide a default configuration file and experience to projects that do not define a project configuration file. Because of this stance, we do have a number of projects that do not know about our configuration file and rely on these defaults. This applies to both new projects (for example projects using our tutorial template) and well aged projects (projects started using Sphinx 1.8.5 for example).
Deprecation of this pattern will require that all projects define a Read the Docs configuration file in order to build. In most cases, a basic configuration file can be suggested to the project.
The downstream effect of requiring a configuration file is:
We discussed why we could provide new defaults to projects, and the conclusion here was a little nuanced and opinionated in our favor. But at the center of this conversation was also that all other similar services require the user define a configuration file, so this doesn't need to be an expected pattern on our platform.
The order of operations here would be:
The text was updated successfully, but these errors were encountered: