diff --git a/readthedocs/projects/tasks.py b/readthedocs/projects/tasks.py index 48fbc0a720c..b88eb87a65b 100644 --- a/readthedocs/projects/tasks.py +++ b/readthedocs/projects/tasks.py @@ -1255,6 +1255,9 @@ def _update_intersphinx_data(version, path, commit): :param commit: Commit that updated path """ object_file = os.path.join(path, 'objects.inv') + if not os.path.exists(object_file): + log.debug('No objects.inv, skipping intersphinx indexing.') + return # These classes are copied from Sphinx # https://git.io/fhFbI @@ -1559,7 +1562,10 @@ def sync_callback(_, version_pk, commit, *args, **kwargs): The first argument is the result from previous tasks, which we discard. """ - fileify(version_pk, commit=commit) + try: + fileify(version_pk, commit=commit) + except Exception: + log.exception('Post sync tasks failed, not stopping build') @app.task() diff --git a/readthedocs/sphinx_domains/migrations/0001_initial.py b/readthedocs/sphinx_domains/migrations/0001_initial.py new file mode 100644 index 00000000000..1f205b4c452 --- /dev/null +++ b/readthedocs/sphinx_domains/migrations/0001_initial.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-02-27 16:23 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion +import django_extensions.db.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('builds', '0006_add_config_field'), + ('projects', '0040_increase_path_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='SphinxDomain', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', django_extensions.db.fields.CreationDateTimeField(auto_now_add=True, verbose_name='created')), + ('modified', django_extensions.db.fields.ModificationDateTimeField(auto_now=True, verbose_name='modified')), + ('commit', models.CharField(max_length=255, null=True, verbose_name='Commit')), + ('domain', models.CharField(max_length=255, verbose_name='Domain')), + ('name', models.CharField(max_length=255, verbose_name='Name')), + ('display_name', models.CharField(max_length=255, verbose_name='Display Name')), + ('type', models.CharField(max_length=255, verbose_name='Type')), + ('doc_name', models.CharField(max_length=255, verbose_name='Doc Name')), + ('anchor', models.CharField(max_length=255, verbose_name='Anchor')), + ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sphinx_domains', to='projects.Project')), + ('version', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sphinx_domains', to='builds.Version', verbose_name='Version')), + ], + options={ + 'ordering': ('-modified', '-created'), + 'get_latest_by': 'modified', + 'abstract': False, + }, + ), + ] diff --git a/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py b/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py new file mode 100644 index 00000000000..d370cf576b7 --- /dev/null +++ b/readthedocs/sphinx_domains/migrations/0002_increase_max_length.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-02-27 16:50 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sphinx_domains', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='sphinxdomain', + name='anchor', + field=models.CharField(max_length=4092, verbose_name='Anchor'), + ), + migrations.AlterField( + model_name='sphinxdomain', + name='display_name', + field=models.CharField(max_length=4092, verbose_name='Display Name'), + ), + migrations.AlterField( + model_name='sphinxdomain', + name='doc_name', + field=models.CharField(max_length=4092, verbose_name='Doc Name'), + ), + migrations.AlterField( + model_name='sphinxdomain', + name='name', + field=models.CharField(max_length=4092, verbose_name='Name'), + ), + ] diff --git a/readthedocs/sphinx_domains/migrations/__init__.py b/readthedocs/sphinx_domains/migrations/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/readthedocs/sphinx_domains/models.py b/readthedocs/sphinx_domains/models.py index 5ca9e12213b..59567a09d95 100644 --- a/readthedocs/sphinx_domains/models.py +++ b/readthedocs/sphinx_domains/models.py @@ -40,11 +40,11 @@ class SphinxDomain(TimeStampedModel): ) name = models.CharField( _('Name'), - max_length=255, + max_length=4092, ) display_name = models.CharField( _('Display Name'), - max_length=255, + max_length=4092, ) type = models.CharField( _('Type'), @@ -52,11 +52,11 @@ class SphinxDomain(TimeStampedModel): ) doc_name = models.CharField( _('Doc Name'), - max_length=255, + max_length=4092, ) anchor = models.CharField( _('Anchor'), - max_length=255, + max_length=4092, ) objects = RelatedProjectQuerySet.as_manager()