Skip to content
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

The sphinx inventory files in readthedocs is missing top-level symbols #2739

Closed
llucax opened this issue Jan 8, 2025 · 7 comments · Fixed by #2740
Closed

The sphinx inventory files in readthedocs is missing top-level symbols #2739

llucax opened this issue Jan 8, 2025 · 7 comments · Fixed by #2740
Assignees
Labels

Comments

@llucax
Copy link

llucax commented Jan 8, 2025

We are using the sphinx inventory files hosted in readthedocs for cross referencing of our docs.

Today we noticed the build is failing because the inventory files are missing top-level symbols (i.e. symbols re-exported by marshmallow.__init__). For example:

Could not find cross-reference target 'marshmallow.ValidationError'
Could not find cross-reference target 'marshmallow.Schema'
Could not find cross-reference target 'marshmallow.Schema.load'
Could not find cross-reference target 'marshmallow.EXCLUDE'
Could not find cross-reference target 'marshmallow.RAISE'
Could not find cross-reference target 'marshmallow.EXCLUDE'
Could not find cross-reference target 'marshmallow.ValidationError'

This used to work, and I noticed there was a new release yesterday so I was wondering if anything changed in terms of how these files are generated.

I checked the inventory file and they are really not there:

$ curl -s https://marshmallow.readthedocs.io/en/stable/objects.inv | python -c 'import sys, zlib; print("".join([sys.stdin.buffer.readline().decode("utf-8") for i in range(4)])); print(zlib.decompress(sys.stdin.buffer.read()).decode("utf-8"))'
# Sphinx inventory version 2
# Project: marshmallow
# Version: 3.24.1
# The remainder of this file is compressed using zlib.

marshmallow py:module 0 quickstart.html#module-$ -
marshmallow.class_registry py:module 0 marshmallow.class_registry.html#module-$ -
marshmallow.class_registry.get_class py:function 1 marshmallow.class_registry.html#$ -
marshmallow.class_registry.register py:function 1 marshmallow.class_registry.html#$ -
marshmallow.decorators py:module 0 marshmallow.decorators.html#module-$ -
marshmallow.decorators.post_dump py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.post_load py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.pre_dump py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.pre_load py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.set_hook py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.validates py:function 1 marshmallow.decorators.html#$ -
marshmallow.decorators.validates_schema py:function 1 marshmallow.decorators.html#$ -
marshmallow.error_store py:module 0 marshmallow.error_store.html#module-$ -
marshmallow.error_store.merge_errors py:function 1 marshmallow.error_store.html#$ -
marshmallow.exceptions py:module 0 marshmallow.exceptions.html#module-$ -
marshmallow.exceptions.FieldInstanceResolutionError py:exception 1 marshmallow.exceptions.html#$ -
marshmallow.exceptions.MarshmallowError py:exception 1 marshmallow.exceptions.html#$ -
marshmallow.exceptions.RegistryError py:exception 1 marshmallow.exceptions.html#$ -
marshmallow.exceptions.StringNotCollectionError py:exception 1 marshmallow.exceptions.html#$ -
marshmallow.exceptions.ValidationError py:exception 1 marshmallow.exceptions.html#$ -
marshmallow.fields py:module 0 marshmallow.fields.html#module-$ -
marshmallow.fields.AwareDateTime py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Bool py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.Boolean py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Boolean.falsy py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.Boolean.truthy py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.Constant py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Date py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.DateTime py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Decimal py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Dict py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Email py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Enum py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Field py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Float py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Function py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IP py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IPInterface py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IPv4 py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IPv4Interface py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IPv6 py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.IPv6Interface py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Int py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.Integer py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.List py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Mapping py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Method py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.NaiveDateTime py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Nested py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Nested.schema py:property 1 marshmallow.fields.html#$ -
marshmallow.fields.Number py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Pluck py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Raw py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Str py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.String py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Time py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.TimeDelta py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Tuple py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.URL py:attribute 1 marshmallow.fields.html#$ -
marshmallow.fields.UUID py:class 1 marshmallow.fields.html#$ -
marshmallow.fields.Url py:class 1 marshmallow.fields.html#$ -
marshmallow.schema.Schema py:class 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.Meta py:class 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.dump py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.dumps py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.error_messages py:attribute 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.fields py:attribute 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.from_dict py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.get_attribute py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.handle_error py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.load py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.loads py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.on_bind_field py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.set_class py:attribute 1 marshmallow.schema.html#$ -
marshmallow.schema.Schema.validate py:method 1 marshmallow.schema.html#$ -
marshmallow.schema.SchemaOpts py:class 1 marshmallow.schema.html#$ -
marshmallow.utils py:module 0 marshmallow.utils.html#module-$ -
marshmallow.utils.callable_or_raise py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.from_iso_date py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.from_iso_datetime py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.from_iso_time py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.from_rfc py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.get_fixed_timezone py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.get_func_args py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.get_value py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.is_collection py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.is_generator py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.is_instance_or_subclass py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.is_iterable_but_not_string py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.is_keyed_tuple py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.isoformat py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.pluck py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.pprint py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.resolve_field_instance py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.rfcformat py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.set_value py:function 1 marshmallow.utils.html#$ -
marshmallow.utils.timedelta_to_microseconds py:function 1 marshmallow.utils.html#$ -
marshmallow.validate py:module 0 marshmallow.validate.html#module-$ -
marshmallow.validate.And py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.ContainsNoneOf py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.ContainsOnly py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Email py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Equal py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Length py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.NoneOf py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.OneOf py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.OneOf.options py:method 1 marshmallow.validate.html#$ -
marshmallow.validate.Predicate py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Range py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Regexp py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.URL py:class 1 marshmallow.validate.html#$ -
marshmallow.validate.Validator py:class 1 marshmallow.validate.html#$ -
adding-context std:label -1 custom_fields.html#$ Adding context to Method and Function fields
api std:label -1 api_reference.html#$ API Reference
api_fields std:label -1 marshmallow.fields.html#api-fields Fields
api_reference std:doc -1 api_reference.html API Reference
api_validators std:label -1 marshmallow.validate.html#api-validators Validators
authors std:doc -1 authors.html Authors
changelog std:doc -1 changelog.html Changelog
coc-contacting-maintainers std:label -1 code_of_conduct.html#$ Contacting maintainers
coc-enforcement-examples std:label -1 code_of_conduct.html#$ Enforcement examples
coc-further-enforcement std:label -1 code_of_conduct.html#$ Further enforcement
coc-other-community-standards std:label -1 code_of_conduct.html#$ Other community standards
coc-when-something-happens std:label -1 code_of_conduct.html#$ When something happens
code_of_conduct std:doc -1 code_of_conduct.html Code of Conduct
contributing std:doc -1 contributing.html Contributing guidelines
contributing_documentation std:label -1 contributing.html#contributing-documentation Documentation
contributing_examples std:label -1 contributing.html#contributing-examples Contributing examples
custom_fields std:doc -1 custom_fields.html Custom fields
ecosystem std:doc -1 ecosystem.html Ecosystem
examples std:doc -1 examples.html Examples
extending std:doc -1 extending.html Extending schemas
genindex std:label -1 genindex.html Index
index std:doc -1 index.html marshmallow: simplified object serialization
install std:doc -1 install.html Installation
install std:label -1 install.html#$ Installation
kudos std:doc -1 kudos.html Kudos
license std:doc -1 license.html License
marshmallow.class_registry std:doc -1 marshmallow.class_registry.html Class Registry
marshmallow.decorators std:doc -1 marshmallow.decorators.html Decorators
marshmallow.error_store std:doc -1 marshmallow.error_store.html Error Store
marshmallow.exceptions std:doc -1 marshmallow.exceptions.html Exceptions
marshmallow.fields std:doc -1 marshmallow.fields.html Fields
marshmallow.schema std:doc -1 marshmallow.schema.html Schema
marshmallow.utils std:doc -1 marshmallow.utils.html Utility Functions
marshmallow.validate std:doc -1 marshmallow.validate.html Validators
meta_options std:label -1 quickstart.html#meta-options Implicit field creation
modindex std:label -1 py-modindex.html Module Index
nesting std:doc -1 nesting.html Nesting schemas
partial-loading std:label -1 nesting.html#$ Partial loading
py-modindex std:label -1 py-modindex.html Python Module Index
quickstart std:doc -1 quickstart.html Quickstart
search std:label -1 search.html Search Page
self-nesting std:label -1 nesting.html#$ Nesting a schema within itself
specifying-nested-fields std:label -1 nesting.html#$ Specifying which fields to nest
two-way-nesting std:label -1 nesting.html#$ Two-way nesting
unknown std:label -1 quickstart.html#$ Handling unknown fields
upgrading std:doc -1 upgrading.html Upgrading to newer releases
upgrading_3_0 std:label -1 upgrading.html#upgrading-3-0 Upgrading to 3.0
validation std:label -1 quickstart.html#$ Validation
whos_using std:doc -1 whos_using.html Who’s using marshmallow?
why std:doc -1 why.html Why marshmallow?

I'm sorry if this is not the appropriate place to report this and please let me know where I should do it if it is not here.

@lafrech lafrech added the docs label Jan 8, 2025
@lafrech
Copy link
Member

lafrech commented Jan 8, 2025

I'm sorry if this is not the appropriate place to report this and please let me know where I should do it if it is not here.

This is the appropriate place. Thanks for investigating and reporting.

shsms added a commit to shsms/frequenz-sdk-python that referenced this issue Jan 8, 2025
This is required since the latest marshmallow release, until a fix is
available for:
marshmallow-code/marshmallow#2739

Signed-off-by: Sahas Subramanian <[email protected]>
@llucax
Copy link
Author

llucax commented Jan 8, 2025

@lafrech thanks for the quick reply. Do you think this could take long to fix? We need to decide if we go for a workaround or if we wait for the fix.

Thanks!

@sloria
Copy link
Member

sloria commented Jan 8, 2025

i'll take a look at this now. looks like this happened in #2713 . should be a quick fix

@sloria sloria self-assigned this Jan 8, 2025
shsms added a commit to shsms/frequenz-sdk-python that referenced this issue Jan 8, 2025
This is because of the latest marshmallow release missing symbols
causing mkdoc builds to fail.  This needs to be reverted once this is
resolved: marshmallow-code/marshmallow#2739.

Signed-off-by: Sahas Subramanian <[email protected]>
@sloria
Copy link
Member

sloria commented Jan 8, 2025

fixed in 3.x-line and latest in the docs. stable will be updated with the next release

@sloria
Copy link
Member

sloria commented Jan 8, 2025

@llucax can you verify your docs are working now?

@llucax
Copy link
Author

llucax commented Jan 9, 2025

Hi @sloria, sorry for the delay, I can confirm it works again with 3.x-line. Thanks!

@sloria
Copy link
Member

sloria commented Jan 9, 2025

great! it's also fixed for the stable builds as well now

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants