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

Reorder GSOC projects, and note priority order #3823

Merged
merged 2 commits into from
Mar 20, 2018
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 59 additions & 52 deletions docs/gsoc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Currently we have a few folks signed up:

* Eric Holscher
* Manuel Kaufmann
* Anthony Johnson

.. warning:: Please do not reach out directly to anyone about the Summer of Code.
It will **not** increase your chances of being accepted!
Expand All @@ -42,7 +43,7 @@ Getting Started
The :doc:`/install` doc is probably the best place to get going.
It will walk you through getting a basic environment for Read the Docs setup.

Then you can look through our :doc:`contribute` doc for information on how to get started contributing to RTD.
Then you can look through our :doc:`/contribute` doc for information on how to get started contributing to RTD.

People who has a history of submitting pull requests will be prioritized in our Summer of Code selection process.

Expand All @@ -57,42 +58,13 @@ Project Ideas
We have written our some loose ideas for projects to work on here.
We are also open to any other ideas that students might have.

Collections of Projects
~~~~~~~~~~~~~~~~~~~~~~~

This project involves building a user interface for groups of projects in Read the Docs (`Collections`).
Users would be allowed to create, publish, and search a `Collection` of projects that they care about.
We would also allow for automatic creation of `Collections` based on a project's ``setup.py`` or ``requirements.txt``.

Once a user has a `Collection`,
we would allow them to do a few sets of actions on them:

* Search across all the projects in the `Collection` with one search dialog
* Download all the project's documentation (PDF, HTMLZip, Epub) for offline viewing
* Build a landing page for the collection that lists out all the projects, and could even have a user-editable description, similar to our project listing page.

There is likely other ideas that could be done with `Collections` over time.

Support for additional build steps for linting, testing, and other useful things
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Currently we only build documentation on Read the Docs,
but we'd also like to add additional build steps that lets users perform more actions.
This would likely take the form of wraping some of the existing `Sphinx builders <http://www.sphinx-doc.org/en/stable/builders.html>`_,
and giving folks a nice way to use them inside Read the Docs.

It would be great to have wrappers for the following as a start:

* Link Check (http://www.sphinx-doc.org/en/stable/builders.html#sphinx.builders.linkcheck.CheckExternalLinksBuilder)
* Spell Check (https://pypi.python.org/pypi/sphinxcontrib-spelling/)
* Doctest (http://www.sphinx-doc.org/en/stable/ext/doctest.html#module-sphinx.ext.doctest)
* Coverage (http://www.sphinx-doc.org/en/stable/ext/coverage.html#module-sphinx.ext.coverage)

The goal would also be to make it quite easy for users to contribute third party build steps for Read the Docs,
so that other useful parts of the Sphinx ecosystem could be tightly integrated with Read the Docs.
**These projects are sorted by priority.**
We will consider the priority on our roadmap as a factor,
along with the skill of the student,
in our selection process.

Refactor our search code
~~~~~~~~~~~~~~~~~~~~~~~~
Refactor & improve our search code
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Currently we're using a homegrown library for Elastic Search.
There is a new `elasticsearch-dsl <http://elasticsearch-dsl.readthedocs.io/en/latest/>`_ library that we should be using.
Expand All @@ -116,22 +88,6 @@ This is a *large* project and will likely require a good deal of understanding o
We have a `starting list of issues <https://github.com/rtfd/readthedocs.org/milestone/28>`_ put together,
but there will be much more work.

Integrated Redirects
~~~~~~~~~~~~~~~~~~~~

Right now it's hard for users to rename files.
We support redirects,
but don't create them automatically on file rename,
and our redirect code is brittle.

We should rebuild how we handle redirects across a number of cases:

* Detecting a file change in git/hg/svn and automatically creating a redirect
* Support redirecting an entire domain to another place
* Support redirecting versions

There will also be a good number of things that spawn from this, including version aliases and other related concepts, if this task doesn't take the whole summer.

API V3
~~~~~~

Expand All @@ -158,6 +114,57 @@ This project would include puting together a workflow for translations:
* Help formalize the process that we have around Transifex to make it easier to contribute to
* Improve our tooling so that integrating new translations is easier

Support for additional build steps for linting & testing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Currently we only build documentation on Read the Docs,
but we'd also like to add additional build steps that lets users perform more actions.
This would likely take the form of wraping some of the existing `Sphinx builders <http://www.sphinx-doc.org/en/stable/builders.html>`_,
and giving folks a nice way to use them inside Read the Docs.

It would be great to have wrappers for the following as a start:

* Link Check (http://www.sphinx-doc.org/en/stable/builders.html#sphinx.builders.linkcheck.CheckExternalLinksBuilder)
* Spell Check (https://pypi.python.org/pypi/sphinxcontrib-spelling/)
* Doctest (http://www.sphinx-doc.org/en/stable/ext/doctest.html#module-sphinx.ext.doctest)
* Coverage (http://www.sphinx-doc.org/en/stable/ext/coverage.html#module-sphinx.ext.coverage)

The goal would also be to make it quite easy for users to contribute third party build steps for Read the Docs,
so that other useful parts of the Sphinx ecosystem could be tightly integrated with Read the Docs.

Collections of Projects
~~~~~~~~~~~~~~~~~~~~~~~

This project involves building a user interface for groups of projects in Read the Docs (`Collections`).
Users would be allowed to create, publish, and search a `Collection` of projects that they care about.
We would also allow for automatic creation of `Collections` based on a project's ``setup.py`` or ``requirements.txt``.

Once a user has a `Collection`,
we would allow them to do a few sets of actions on them:

* Search across all the projects in the `Collection` with one search dialog
* Download all the project's documentation (PDF, HTMLZip, Epub) for offline viewing
* Build a landing page for the collection that lists out all the projects, and could even have a user-editable description, similar to our project listing page.

There is likely other ideas that could be done with `Collections` over time.

Integrated Redirects
~~~~~~~~~~~~~~~~~~~~

Right now it's hard for users to rename files.
We support redirects,
but don't create them automatically on file rename,
and our redirect code is brittle.

We should rebuild how we handle redirects across a number of cases:

* Detecting a file change in git/hg/svn and automatically creating a redirect
* Support redirecting an entire domain to another place
* Support redirecting versions

There will also be a good number of things that spawn from this, including version aliases and other related concepts, if this task doesn't take the whole summer.


Additional Ideas
~~~~~~~~~~~~~~~~

Expand Down