* This fixes two bugs apparent in nesting of translations in subprojects
The canonical domain was not searching as deep as we support. We support
translations nested in subprojects, and vice versa, this was previously only
searching for translation or subproject, so no nesting at all.
The path was also a similar problem, but instead of a heavy refactor that reused
the canonical domain lookup, I just altered the logic a little here. The pattern
was required to support both superproject as a translation project and
subproject as a translation project.
* Add resolver tests
Also lints our test file
* Organize logging levels
Log only what we need as ERROR when it's something that we need/want
to take a look that something could be a bug/issue.
There are some ERROR that were replaced by WARNING since they are some
failures but that we don't need to take a look and the message shown
to the user should be enough for them.
* Fix lint issues
* Use the proper exc_info instead of custom formatting
* Add ref links for easier intersphinx on yaml config page
Also recomments a block that we should probably move but I'm not going to worry
about. Comment block could be lost on editors that remove whitespace on lines
before.
* Fix ref for build.image
* Save docker image hash to consider when auto wiping the environment (#3793)
* Remove obsolete code
Now, we can access `self.config.build_image` directly.
* Move container_image selection to the init
At initialization time we have the project and we already know if the
project has the build image override so we can decide at that point
and save it as a instance attribute.
Then we can use this values from other places inside the same class.
* Save Docker Image hash in readthedocs-environment.json
The hash is used to know if the environment is obsolete and auto-wipe
it if necessary.
* Simplify the class naming
* Save the image hash in the json file
* Lint
* Remove invalid properties from YAML config in tests
* Add test for save_environment_json
* Improve docstring
* Handle obsolete cases better
* when the file is corrupted or we don't have access, we return that
it's OBSOLETE
* when there is a new setting that we need to compare and it's not in
the JSON file, we return OBSOLETE
* Test case for build image in the config but not in the JSON
* Fix up some of the logic around repo and submodule URLs
* Add conditional logic for submodule relative urls
* Break down logic a bit more
* Add test case for relative url submodule
* Broke test case for invalid url submodule
Fixes#3857
* Lint fix
For example:
default environments:
py27 -> run test suite for the application with python2.7
py36 -> run test suite for the application with python3.6
lint -> run linter (prospector) to ensure the source code
corresponds to our coding standards
docs -> build readthedocs documentation
additional environments:
coverage -> run test suite with code coverage for the application with
/usr/bin/python
eslint -> run the JavaScript linter (requires gulp installed)