* Bug 1657908: Use a better link checker in CI and fix links
The Python-based linkchecker had buggy checking of anchors within pages,
which has caused a number of our internal doc links to break.
This replaces it with a different link checking tool, and then corrects
all of the errors it found.
* sudo make me a sandwich
* Combine lines
* 1641148: Integrate Python and Rust logging
This works by setting up a named pipe between Python and Rust logging.
This requires adding another thread to the Python side to read from the log.
The overhead of that *could* be problematic.
I have no idea if this approach will work on Windows.
This at least *does* work -- any callback-based approach has been ruled
out due to limitations of CFFI or the need to go to a compiling-against-
a-specific-version-of-Python approach (see details in bug).
* hangle -> handle
* Rename and better document function
This is a braindump of the desired architecture for the
upload modules implemented in the language bindings, that
directly interact with the lower level upload module in
glean-core.
The bug proposes integrating the logging level control between Python and Rust,
but I think this has minimal benefit for the amount of complexity.
This just documents that there are two sources of log messages, how to control
them and where to get more info if you need to do something more sophisticated.
* Developer convenience: Use different venv dir for each Python version
* Fix CI
* Update docs/dev/python/setting-up-python-build-environment.md
Co-Authored-By: Jan-Erik Rediger <badboy@archlinux.us>
Co-authored-by: Jan-Erik Rediger <badboy@archlinux.us>
They cause us more trouble than they are worth.
This is safe.
The only thing we did do in finalizers is cleaning up the allocated
object on the native Rust side.
Without these we now potentially leak memory.
_But_ metric types were already only used for metrics, and those are
statics, so they live for the entire application runtime.
Once the application is done and exits the Glean library will also be
unloaded and thus all its data be deallocated.
The only place where we create metrics at runtime is in tests.
So we're now leaking those in tests, but that should be fine.
As a side note: Java 9 deprecates finalizers in the language, Android
itself doesn't support Java 9 (yet) and has its own implementation of it
anyway, but that's nonetheless a good hint that finalizers might not be
the best idea afterall.