The source code that powers readthedocs.org

Overview

Welcome to Read the Docs

build status Documentation Status Test coverage

Purpose

Read the Docs hosts documentation for the open source community. It supports Sphinx docs written with reStructuredText, and can pull from your Subversion, Bazaar, Git, and Mercurial repositories. Then we build documentation and host it for you. Think of it as Continuous Documentation.

Documentation for RTD

You will find complete documentation for setting up your project at the Read the Docs site.

Get in touch

You can find information about getting in touch with Read the Docs at our Contribution page.

Contributing

You can find information about contributing to Read the Docs at our Contribution page.

Quickstart for GitHub-Hosted Projects

By the end of this quickstart, you will have a new project automatically updated when you push to GitHub.

  1. Create an account on Read the Docs. You will get an email verifying your email address which you should accept within 7 days.
  2. Log in and click on "Import a Project".
  3. Click "Connect to GitHub" in order to connect your account's repositories to GitHub.
  4. When prompted on GitHub, give access to your account.
  5. Click "Import a Repository" and select any desired repository.
  6. Change any information if desired and click "Next".
  7. All done. Commit away and your project will auto-update.

License

MIT © 2010-2021 Read the Docs, Inc. & contributors

Issues
  • Support conda for builds

    Support conda for builds

    Read the Docs Conda Support

    This will add the ability to generate documentation with conda environments on Read the Docs. This is mainly useful for libraries with large C dependencies, including many packages in the Scentific Python ecosystem.

    Task List

    • [x] Add Project option to use conda
    • [x] Abstract the "environment path" in the builders to respect conda & virtualenv
    • [x] Ensure cleanup of conda environment in wiping & other env delete scenarios
    • [x] Ensure Python 2 & 3 support
    • [x] Write tests for proper conda environment setup
    • [x] Document conda support
    • [ ] Write a topical guide for Choosing a Build Environment
    • [ ] Optional: Investigate pruning

    Abilities

    You will be able to specify a conda environment.yml file, and Read the Docs will install these dependencies in your build environment.

    Considerations

    Read the Docs will keep seperate virtualenv & conda directories:

    • /user_builds//env for pip
    • /user_builds//conda for conda

    Users will be able to define a way to install packages for a project:

    • None
    • Pip
    • Conda

    Read the Docs will need to change it's build code so that we don't hard-code virtualenv paths. We'll need to vary our environment creation, as well as bin path's for executables, based on the backend environment.

    The other main thing is that we'll also need to install Sphinx & other build dependencies into the conda environment. We will continue to use pip for this, and it should be transparent, other than using the pip executable in the conda environment instead of the virtualenv.

    It should also be noted that miniconda has a different install process from Python 2 and 3 -- also they recommend installing it from their bash scripts instead of pip. I hope that we will be able to use pip, as it will simplify our installation, and won't require an update to a bash script on version upgrades. We will have to see if we hit issues in testing.

    Cleanup

    Read the Docs will manage conda environment deletion on the removal of a project or version.

    Documentation

    We will need to add information about conda support to our documentation. We might want to add a topic guide around installing requirements, along with adding a specific reference for how to use & enable conda support.

    Sponsorship

    This work is being funded by Clinical Graphics -- many thanks for their support of Open Source.

    Improvement Feature 
    opened by mrocklin 113
  • Xelatex for PDF generation

    Xelatex for PDF generation

    I was wondering if xelatex is supported for PDF generation? If so is the font Symobla.ttf installed as well? If not do you know when it will be supported.

    Thank you

    Improvement Needed: patch Community Effort 
    opened by NoralK 55
  • Support Pipfile

    Support Pipfile

    I prefer using Pipfile over requirements.txt. Please support this file format to set up the virtual environment.

    Feature Accepted 
    opened by gsemet 55
  • Build Fails to Create Conda Environment

    Build Fails to Create Conda Environment

    Details

    • Project URL: https://readthedocs.org/projects/tethys-platform/
    • Build URL (if applicable): https://readthedocs.org/projects/tethys-platform/builds/5043136/
    • Read the Docs username (if applicable): swainn

    Expected Result

    I expect the docs for the dev branch of my project to build.

    Actual Result

    I encounter a failure during the creation of the conda environment (see full output below).

    Things I have tried:

    (1) Found this suggestion on the Conda issues page, so I attempted wiping the environment several times. (2) Reverted the back to commit with last successful docs build, but still failed with same error. (3) Created this Conda environment my dev machine successfully (using miniconda).

    Here is the error:

    conda env create --name dev --file /home/docs/checkouts/readthedocs.org/user_builds/tethys-platform/checkouts/dev/docs-conda_env.yml Fetching package metadata ......... Solving package specifications: .......... WARNING conda.lock:touch(53): Failed to create lock, do not run conda in parallel processes [errno 13] An unexpected error has occurred. Please consider posting the following information to the conda GitHub issue tracker at:

    https://github.com/conda/conda/issues
    

    Current conda install:

               platform : linux-64
          conda version : 4.2.12
       conda is private : False
      conda-env version : 4.2.12
    conda-build version : not installed
         python version : 2.7.12.final.0
       requests version : 2.11.1
       root environment : /usr/local/miniconda  (read only)
    default environment : /home/docs/checkouts/readthedocs.org/user_builds/tethys-platform/conda/dev
       envs directories : /home/docs/checkouts/readthedocs.org/user_builds/tethys-platform/conda
                          /home/docs/.conda/envs
                          /usr/local/miniconda/envs
          package cache : /home/docs/checkouts/readthedocs.org/user_builds/tethys-platform/conda/.pkgs
                          /home/docs/.conda/envs/.pkgs
                          /usr/local/miniconda/pkgs
           channel URLs : https://repo.continuum.io/pkgs/free/linux-64
                          https://repo.continuum.io/pkgs/free/noarch
                          https://repo.continuum.io/pkgs/pro/linux-64
                          https://repo.continuum.io/pkgs/pro/noarch
            config file : None
           offline mode : False
    

    $ /usr/local/miniconda/bin/conda-env create --name dev --file /home/docs/checkouts/readthedocs.org/user_builds/tethys-platform/checkouts/dev/docs-conda_env.yml

    Traceback (most recent call last):
      File "/usr/local/miniconda/lib/python2.7/site-packages/conda/exceptions.py", line 479, in conda_exception_handler
        return_value = func(*args, **kwargs)
      File "/usr/local/miniconda/lib/python2.7/site-packages/conda_env/cli/main_create.py", line 111, in execute
        installer.install(prefix, pkg_specs, args, env)
      File "/usr/local/miniconda/lib/python2.7/site-packages/conda_env/installers/conda.py", line 38, in install
        raise CondaRuntimeError('RuntimeError: %s' % e)
    CondaRuntimeError: Runtime error: RuntimeError: Runtime error: Could not open u'/usr/local/miniconda/pkgs/yaml-0.1.6-0.tar.bz2.part' for writing ([Errno 13] Permission denied: u'/usr/local/miniconda/pkgs/yaml-0.1.6-0.tar.bz2.part').
    

    Fetching packages ... yaml-0.1.6-0.t 0% | | ETA: --:--:-- 0.00 B/s

    Operations Bug 
    opened by swainn 54
  • Support Poetry

    Support Poetry

    It would be nice to be able to build docs for libraries managed with poetry.

    maybe by checking for a [tool.poetry] section in pyproject.toml, having to keep a separate requirements.txt file in sync feels a bit fragile.

    Feature Needed: design decision 
    opened by danielknell 54
  • 404">

    "edit on github" / "view on github" links for "stable" -> 404

    See there:

    http://borgbackup.readthedocs.org/en/stable/

    Link at top right points to: https://github.com/borgbackup/borg/blob/55fef2457e483701254e5b2a7d4a1a60963971a8/docs/index.rst (which is 404)

    Same for the view/edit links in the bottom left box, they also point to same 404 location.

    OTOH, the docs shown for "stable" are (currently) correctly showing 0.28.2 release, which is the latest release.

    I tried a "stable" rebuild, did not help.

    Improvement Needed: design decision 
    opened by ThomasWaldmann 47
  • Support HTTPS for custom domains

    Support HTTPS for custom domains

    It'd be great if RTD supported HTTPS when using a custom domain. Once upon a time this would have been difficult and expensive, however nowadays with SNI and Lets Encrypt I think this is possible -- providers like SquareSpace and Wordpress have demonstrated this.

    Here's how it could work:

    • When a new custom domain is added, trigger an attempt to obtain a certificate, triggering the lets encrypt validation flow.
    • Redirect all /.well-known/* from all RTD sites to a special validation server
    • On the validation server, serve the correct value for the LE challenge for that domain
    • Obtain the certificate, and store it somewhere.
    • (Make sure to repeat every X days so certs don't expire!)
    • When a request comes in with SNI=foo.com, look up that cert and server it if it's a RTD site

    Hopefully that makes sense!

    Improvement 
    opened by alex 45
  • Build failing after installing dependencies via conda

    Build failing after installing dependencies via conda

    Details

    • Project URL: http://github.com/molpopgen/fwdpy
    • Build URL (if applicable): https://readthedocs.org/projects/fwdpy/builds/5121049/
    • Read the Docs username (if applicable): molpopgen

    Expected Result

    The project is a Cython extension module that depends on C++11 libraries. The relevant dependent libraries are installed via conda (docs/environment.yml) in the repo. In order for Sphinx to work, the module must be built or installed, at which point the docs should be built.

    Actual Result

    The header file from one of the dependencies installed via conda cannot be found (see build log). I've not taken the time to replicate this behavior via the docker image, but it seems like I'm doing something wrong. The gcc for the docker image is is g++5, which is more than good enough.

    The problem seems to be that after installing the conda packages, attempting to install my project is done in an environment where the conda installs do not exist. I've not been able to find explicit docs on how to use dependent C/C++ libraries in a build beyond including them in the environment.yml file.

    Support 
    opened by molpopgen 45
  • "stable" appearing to track future release branches

    Details

    • Project URL: http://channels.readthedocs.io
    • Build URL (if applicable): http://channels.readthedocs.io/en/stable/
    • Read the Docs username (if applicable): andrewgodwin

    Expected Result

    I expect the "stable" build version to only follow tags, not new branches, as described in http://docs.readthedocs.io/en/latest/versions.html

    Actual Result

    The "stable" build says it is following origin/2.0, which looks like a reference to a remote Git branch rather than the project's most recent tag, 1.1.8, which means the "stable" docs have ended up being the in-development version docs.

    The "wipe" command does not appear to fix this, and I would like to avoid deleting and remaking the project just to see if it's a bad tag being stored somewhere.

    Bug 
    opened by andrewgodwin 43
  • Broken sidebar when using YAML config, conda, and pip_install

    Broken sidebar when using YAML config, conda, and pip_install

    • Project URL: https://qnet.readthedocs.io/en/latest/index.html#
    • Build URL (if applicable): https://readthedocs.org/projects/qnet/builds/7008115/

    I'm seeing a strange effect where the navigation sidebar is broken depending on the RTD configuration. The effect is that clicking on the "Read the Docs"/version at the very bottom of the sidebar does nothing (it should pop up the version selector). Also, on a small screen where the sidebar is hidden by default, clicking on the sidebar button (the symbol of three horizontal bars in the top left corner) has no effect (as opposed to showing the sidebar).

    The broken behavior can be seen in the current build on the Project URL. When loading that page e.g. in Safari with an open Web Inspector, there is an error message that hints at the problem:

    [Error] TypeError: undefined is not an object (evaluating 'SphinxRtdTheme.Navigation.enableSticky')
    	(anonymous function) (index.html:365)
    	f (jquery-2.0.3.min.js:3:2256)
    	fireWith (jquery-2.0.3.min.js:3:3059)
    	ready (jquery-2.0.3.min.js:1:12573)
    	ge (jquery-2.0.3.min.js:1:10197)
    

    The project uses a readthedocs.yml file and it's set up to use conda, and also to install the package for which the documentation is generated via pip (pip_install: true)

    It turns out that this is the problem. If I switch from pip_install to setup_py_install (and adapt the environment.yml file accordingly to install all pip-prerequisites manually), it works fine.

    The commit that makes everything work is https://github.com/mabuchilab/QNET/commit/cc55fe4d789c32ee25436af4749a2d7d9bc6c2ad

    I've reverted that commit to have a "broken" build, which I'll leave up for a few days to give people a chance to look at it.

    I wonder if the problem is that I have sphinx_rtd_theme listed in setup.py: maybe this overwrites the system-sphinx-rtd_theme during the pip_install of the package, which doesn't happen with setup_py_install?

    Bug 
    opened by goerz 41
  • Logging errors in tests

    Logging errors in tests

    These don't break the test runs (I believe?) but I have observed numerous instances of things like:

    --- Logging error ---
    Traceback (most recent call last):
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 1085, in emit
        msg = self.format(record)
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 929, in format
        return fmt.format(record)
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 668, in format
        record.message = record.getMessage()
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/logging/__init__.py", line 373, in getMessage
        msg = msg % self.args
    TypeError: must be real number, not str
    Call stack:
      File "/home/circleci/project/.tox/py36/bin/pytest", line 8, in <module>
        sys.exit(console_main())
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/config/__init__.py", line 185, in console_main
        code = main()
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/config/__init__.py", line 162, in main
        ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__
        return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec
        return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall
        res = hook_impl.function(*args)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/main.py", line 316, in pytest_cmdline_main
        return wrap_session(config, _main)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/main.py", line 269, in wrap_session
        session.exitstatus = doit(config, session) or 0
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/main.py", line 323, in _main
        config.hook.pytest_runtestloop(session=session)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__
        return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec
        return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall
        res = hook_impl.function(*args)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/main.py", line 348, in pytest_runtestloop
        item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__
        return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec
        return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall
        res = hook_impl.function(*args)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 109, in pytest_runtest_protocol
        runtestprotocol(item, nextitem=nextitem)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 126, in runtestprotocol
        reports.append(call_and_report(item, "call", log))
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 215, in call_and_report
        call = call_runtest_hook(item, when, **kwds)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 254, in call_runtest_hook
        return CallInfo.from_call(
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 311, in from_call
        result: Optional[TResult] = func()
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 255, in <lambda>
        lambda: ihook(item=item, **kwds), when=when, reraise=reraise
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_hooks.py", line 265, in __call__
        return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_manager.py", line 80, in _hookexec
        return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pluggy/_callers.py", line 39, in _multicall
        res = hook_impl.function(*args)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/_pytest/runner.py", line 162, in pytest_runtest_call
        item.runtest()
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/pytest_django/plugin.py", line 490, in non_debugging_runtest
        self._testcase(result=self)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/django/test/testcases.py", line 271, in __call__
        super().__call__(result)
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/unittest/case.py", line 736, in __call__
        return self.run(*args, **kwds)
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/unittest/case.py", line 676, in run
        self._callTestMethod(testMethod)
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/unittest/case.py", line 633, in _callTestMethod
        method()
      File "/home/circleci/.pyenv/versions/3.8.12/lib/python3.8/unittest/mock.py", line 1325, in patched
        return func(*newargs, **newkeywargs)
      File "/home/circleci/project/readthedocs/rtd_tests/tests/test_celery.py", line 577, in test_build_tools
        result = tasks.update_docs_task.delay(
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/celery/app/task.py", line 422, in delay
        return self.apply_async(args, kwargs)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/celery/app/task.py", line 569, in apply_async
        return self.apply(args, kwargs, task_id=task_id or uuid(),
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/celery/app/task.py", line 790, in apply
        ret = tracer(task_id, args, kwargs, request)
      File "/home/circleci/project/.tox/py36/lib/python3.8/site-packages/celery/app/trace.py", line 450, in trace_task
        R = retval = fun(*args, **kwargs)
      File "/home/circleci/project/readthedocs/projects/tasks.py", line 456, in update_docs_task
        return step.run(version_pk, *args, **kwargs)
      File "/home/circleci/project/readthedocs/projects/tasks.py", line 604, in run
        self.run_build(record=record)
      File "/home/circleci/project/readthedocs/projects/tasks.py", line 795, in run_build
        self.setup_build()
      File "/home/circleci/project/readthedocs/projects/tasks.py", line 1181, in setup_build
        self.setup_python_environment()
      File "/home/circleci/project/readthedocs/projects/tasks.py", line 1203, in setup_python_environment
        self.python_env.install_build_tools()
      File "/home/circleci/project/readthedocs/doc_builder/python_environments.py", line 133, in install_build_tools
        log.debug(
    Message: 'Cached version for tool not found. os=%s tool=%s version=% filename=%s'
    Arguments: ('ubuntu-20.04', 'nodejs', '16.9.1', 'ubuntu-20.04-nodejs-16.9.1.tar.gz')
    

    I suppose this is just a problem with the tests, but I'm not 100 % sure.

    opened by astrojuanlu 1
  • Feature request: opening github.dev from readthedocs

    Feature request: opening github.dev from readthedocs

    GitHub has a new feature to quickly access an online version of VS Code (github.dev) by pressing "." in any repository.

    When a similar feature would be there at readthedocs, it would enable the following workflow:

    1. One reads a doc page generated by sphinx
    2. One finds a typo and can directly enter the github.dev environment at the corresponding .rst file by pressing a keyboard shortcut or a button in the readthedocs footer Menu
    3. One can quickly correct the typo and make a pull request without leaving the browser.
    Feature Needed: design decision 
    opened by kolibril13 2
  • Build Fails on “reading sources...” Without Error Message

    Build Fails on “reading sources...” Without Error Message

    Details

    • Read the Docs project URL: https://readthedocs.org/projects/openafpm-cad-core/
    • Build URL (if applicable): https://readthedocs.org/projects/openafpm-cad-core/builds/15393876/
    • Read the Docs username (if applicable): gbroques

    For some reason my build fails on "reading sources... ":

    [rtd-command-info] start-time: 2021-11-28T21:11:30.196140Z, end-time: 2021-11-28T21:11:31.576485Z, duration: 1, exit-code: 1
    /home/docs/checkouts/readthedocs.org/user_builds/openafpm-cad-core/conda/latest/bin/python -m sphinx -T -E -b html -d _build/doctrees -D language=en . _build/html
    Running Sphinx v4.1.1
    loading translations [en]... done
    making output directory... done
    [autosummary] generating autosummary for: index.rst
    Creating file openafpm_cad_core/openafpm_cad_core.rst.
    Creating file openafpm_cad_core/openafpm_cad_core.create_spreadsheet_document.rst.
    Creating file openafpm_cad_core/openafpm_cad_core.gui.rst.
    building [mo]: targets for 0 po files that are out of date
    building [html]: targets for 1 source files that are out of date
    updating environment: [new config] 4 added, 0 changed, 0 removed
    reading sources... [ 25%] index
    reading sources... [ 50%] openafpm_cad_core/openafpm_cad_core
    

    I'm unable to reproduce this error locally, and I don't see any error message -- making this hard to debug.

    It seems like someone else had a similar issue and posted on Stack Overflow about it: https://stackoverflow.com/questions/42470735/readthedocs-build-fails-on-reading-sources-without-error

    For them, the issue seemed to resolve itself all of the sudden without doing anything to fix it.

    Any help on troubleshooting this is greatly appreciated! :-)

    Support 
    opened by gbroques 1
  • Strange behaviour of environment vars

    Strange behaviour of environment vars

    Details

    I added an html template that takes some variables defined in html_context dict of conf.py and generates github, binder and colab badges for posts generated from notebooks. Here are the relevant lines:

    https://github.com/OriolAbril/pymc-examples/blob/574958a19822aa2624ce2add516039826173e398/examples/conf.py#L69-L77

    The badges and links work perfectly for latest, generated from the main branch but they break when generating PR previews, which is confusing.

    I have tried to reproduce it in a minimal repo, but have not yet been able to reproduce it and don't really know what else to try. I have tried to reproduce it in https://github.com/OriolAbril/sphinx-playground/tree/rtd_myst_substitutions, where https://oriol-sphinx-playground--1.org.readthedocs.build/en/1/, https://oriol-sphinx-playground.readthedocs.io/en/rtd_myst_substitutions/ and https://oriol-sphinx-playground.readthedocs.io/en/rtd-myst-substitutions/ (example with dashes) are all working.

    So I have also tried a "debugging preview" that prints the conflicting variables which is much more convenient than checking the html links: https://pymc--252.org.readthedocs.build/projects/examples/en/252/generalized_linear_models/GLM-hierarchical-binomial-model.html (see below for relevant exerpt from this page)

    I am not even 100% sure this is due to readthedocs completely but so far it's the only place where anything of the sort has happened and I am quite lost.

    Expected Result

    The links in the badges point to main given that the READTHEDOCS_VERSION variable is the PR number for which the preview is being generated and has no dashes in it.

    In the "debugging preview" that would mean all bullet points end with main, no commit hash nor PR number.

    Actual Result

    Even though the variables in the html context github_version and sandbox_repo are defined in conf.py using the same version variable, the first ends up containing the commit hash while the other has main as expected. Note that if there were an issue with the if/else logic, I would expect the variable to be "" or the PR number (which is what I see as version in the raw construction logs), I hve no idea how the commit hash end up in the mix.

    Here is what ends up happening in the "debugging preview":

    
        github_version: 574958a19822aa2624ce2add516039826173e398
        sandbox_repo: pymc-devs/pymc-sandbox/main
    
    opened by OriolAbril 2
  • Add hosted documentation URL to build API

    Add hosted documentation URL to build API

    For the case of PR builds, it could be helpful to provide the URL to the PR build in the Build APIv3 endpoint. Currently, you can only get the URLs of public versions from the Version/Project API.

    Uses cases here might be for CI integration with Read the Docs, and we'll likely want an asynchronous version of the resolver for this URL for keeping the new UI fast.

    Improvement Accepted 
    opened by agjohnson 0
  • Don't allow last maintainer to leave a project

    Don't allow last maintainer to leave a project

    This maybe needs replication, I thought we blocked this already. It could be that a user removes their account, leaving projects behind in an abandoned state.

    It seems it might be possible for the last remaining maintainer on a project to remove themself from the project, effectively abandoning the project. This is an action we should probably block from happening, and maybe steer the user towards deleting the project instead.

    In the case of a user deleting their account, I thought we also at least warned about this and/or removed the project. If not, it might be another place to block the user from deleting and require no single-maintainer projects to exist before deletion?

    Improvement Needed: replication 
    opened by agjohnson 1
  • Django3: minimal upgrade to Django3

    Django3: minimal upgrade to Django3

    Make minimal changes to upgrade to Django3

    https://docs.djangoproject.com/en/3.2/releases/3.2/

    ToDo (maybe in other PRs)

    • [ ] migrate JSONField to native JSONField
    • [ ] update SessionMiddleware https://github.com/readthedocs/readthedocs.org/blob/fe743988be0802d62849ac6a0d47e1ca3fede179/readthedocs/core/middleware.py#L34-L37
    • [ ] update RefererPolicyMiddleware https://github.com/readthedocs/readthedocs.org/blob/fe743988be0802d62849ac6a0d47e1ca3fede179/readthedocs/core/middleware.py#L164-L166
    • [x] use request.headers instead of a private attribute https://github.com/readthedocs/readthedocs.org/blob/fe743988be0802d62849ac6a0d47e1ca3fede179/readthedocs/proxito/middleware.py#L187-L190
    • [ ] use new simpler path() (when there is no regex required) instead of url(): https://docs.djangoproject.com/en/3.2/ref/urls/#path
    opened by humitos 1
  • Out of sync remote repositories when they are trasfered from another organization

    Out of sync remote repositories when they are trasfered from another organization

    Looks like on github, when a repo is transferred from another organization, they keep the same ID, and in our code these repositories will still be attached to the old organization. They are never updated, because they hit this

    https://github.com/readthedocs/readthedocs.org/blob/61e94ca47c551f1e85067a918b54807f27b5fae6/readthedocs/oauth/services/github.py#L120-L125

    (their current organization doesn't match the one they say to be coming from)

    We need to improve that check to look for cases like this.

    Bug 
    opened by stsewd 0
  • Add guide to migrate from reST to MyST

    Add guide to migrate from reST to MyST

    And of course, it's written in MyST 😃

    cc @choldgraf and @chrisjsewell since this makes numerous references to myst-parser and rst-to-myst.

    opened by astrojuanlu 1
  • requirements: use django-cors-headers instead

    requirements: use django-cors-headers instead

    Note that django-cors-middleware is deprecated (see note in https://github.com/zestedesavoir/django-cors-middleware) and they recommend using django-cors-headers instead.

    Related to #8692

    opened by humitos 0
Open Source VoIP Billing Solution http://www.astppbilling.org | Report a bug https://jira.astppbilling.org

ASTPP ASTPP is an Open Source VoIP Billing Solution for Freeswitch. It supports prepaid and postpaid billing with call rating and credit control. It a

iNextrix Technologies Pvt. Ltd. 120 Nov 23, 2021
(Official) The DSpace digital asset management system that powers your Institutional Repository

DSpace DSpace Documentation | DSpace Releases | DSpace Wiki | Support DSpace open source software is a turnkey repository application used by more tha

DSpace Repository 613 Nov 30, 2021
(Official) The DSpace digital asset management system that powers your Institutional Repository

DSpace DSpace Documentation | DSpace Releases | DSpace Wiki | Support DSpace open source software is a turnkey repository application used by more tha

DSpace Repository 613 Nov 30, 2021
The Open edX platform, the software that powers edX!

This is the core repository of the Open edX software. It includes the LMS (student-facing, delivering courseware), and Studio (course authoring) compo

edX 5.8k Nov 30, 2021
The Rails application that powers OpenStreetMap

"The Rails Port" This is The Rails Port, the Ruby on Rails application that powers the OpenStreetMap website and API. The software is also known as "o

OpenStreetMap on GitHub 1.4k Nov 27, 2021
The Rails application that powers OpenStreetMap

"The Rails Port" This is The Rails Port, the Ruby on Rails application that powers the OpenStreetMap website and API. The software is also known as "o

OpenStreetMap on GitHub 1.4k Nov 29, 2021
Mahara ePortfolio 84 Nov 30, 2021
🌻 The collaborative editing software that runs Wikipedia. Mirror from https://gerrit.wikimedia.org/g/mediawiki/core. See https://mediawiki.org/wiki/Developer_access for contributing.

MediaWiki MediaWiki is a free and open-source wiki software package written in PHP. It serves as the platform for Wikipedia and the other Wikimedia pr

Wikimedia 2.7k Nov 26, 2021
OpenStack Storage (Swift). Mirror of code maintained at opendev.org.

OpenStack Swift OpenStack Swift is a distributed object storage system designed to scale from a single machine to thousands of servers. Swift is optim

Mirrors of opendev.org/openstack 2.3k Nov 25, 2021
Project Website: https://inkscape.org - Code Repository: https://gitlab.com/inkscape/inkscape - Draw freely. 🖌

Inkscape: Free and Open Source Vector Drawing Inkscape is professional quality vector graphics software which runs on Windows, Mac OS X and Linux. It

Inkscape 1k Nov 21, 2021
♞ lichess.org: the forever free, adless and open source chess server ♞

lichess.org Lila (li[chess in sca]la) is a free online chess game server focused on realtime gameplay and ease of use. It features a search engine, co

Thibault Duplessis 10.2k Nov 30, 2021
Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/

Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are sear

Laurent 26.4k Nov 18, 2021
A free, open-source, and completely encrypted notes app. https://standardnotes.org

Standard Notes A safe and private place for your life's work. Standard Notes is a simple and private notes app available on most platforms, including

Standard Notes 3k Nov 29, 2021
MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!

Music notation and composition software MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit

MuseScore 6.5k Nov 26, 2021
Sharetribe Go is a source available marketplace software, also available as a hosted, no-code SaaS product. For a headless, API-first marketplace solution, check out Sharetribe Flex: https://www.sharetribe.com/flex.

Sharetribe Sharetribe develops advanced marketplace software for every business life cycle stage. Sharetribe Go gives you the complete feature set to

Sharetribe 2.2k Nov 23, 2021
map.geo.admin.ch source code

mf-geoadmin3 Freezed version map.geo.admin.ch mf-geoadmin-3 will not be developed further (bug fix only). map.geo.admin.ch will only be developed in t

geo.admin.ch 215 Nov 23, 2021
Source Code

/** * Coppermine Photo Gallery * * v1.0 originally written by Gregory Demar * * @copyright Copyright (c) 2003-2020 Coppermine Dev Team * @licen

Coppermine Photo Gallery 49 Nov 30, 2021
A self-hosted server for source code parsing

bblfshd This repository contains bblfsh daemon (bblfshd), which includes the runtime that runs the driver in containers and the bblfshctl, a cli tool

Babelfish 317 Nov 26, 2021
🔥 The most advanced open-source online code execution system in the world.

Judge0 CE ?? The most advanced open-source online code execution system in the world. Table of Contents About Features Get Started Flavors Supported L

Judge0 847 Nov 25, 2021
Galette membership management web application towards non profit organizations main source code (mirror)

Galette Gestionnaire d'Adhérents en Ligne Extrêmement Tarabiscoté mais Tellement Efficace English Galette is a membership management web application t

Galette 30 Nov 29, 2021
An open source code editor for the web, written in JavaScript, HTML and CSS.

⚠️ On September 1, 2021, Adobe will end support for Brackets. If you would like to continue using, maintaining, and improving Brackets, you may fork t

Adobe, Inc. 33.7k Nov 30, 2021
Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.

Git - fast, scalable, distributed revision control system Git is a fast, scalable, distributed revision control system with an unusually rich command

Git 40.3k Nov 30, 2021
The official source code repository for the calibre ebook manager

calibre calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book re

Kovid Goyal 11k Nov 22, 2021
An open source code editor for the web, written in JavaScript, HTML and CSS.

⚠️ On September 1, 2021, Adobe will end support for Brackets. If you would like to continue using, maintaining, and improving Brackets, you may fork t

Adobe, Inc. 33.7k Nov 30, 2021
SuperTux source code

SuperTux SuperTux is a jump'n'run game with strong inspiration from the Super Mario Bros. games for the various Nintendo platforms. Run and jump throu

SuperTux 1.3k Nov 28, 2021
This is the Official source code repository of the Synfig project

Synfig Studio About Synfig Studio is a free and open-source 2D animation software, designed as powerful industrial-strength solution for creating film

Synfig 1.2k Nov 30, 2021
tmux source code

Welcome to tmux! tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux m

tmux 23.2k Nov 30, 2021