Skip to content

Commit

Permalink
Merge pull request #809 from readthedocs/agj/setup-webpack-commands
Browse files Browse the repository at this point in the history
Add webpack commands into setup.py
  • Loading branch information
agjohnson authored Oct 3, 2019
2 parents feb0beb + 6947fea commit ddf840c
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 5 deletions.
8 changes: 5 additions & 3 deletions docs/contributing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ To release a new version of the theme, core team will take the following steps:
(with regards to alpha release and development versions). The version
increment should reflect these releases and any potentially breaking changes.
#. Update the changelog (``docs/changelog.rst``) with the version information.
#. Run ``npm run build`` to rebuild all the theme assets.
#. Run ``python setup.py update_translations`` to compile new translation files and update Transifex
#. Commit that change.
#. Run ``python setup.py update_translations`` to compile new translation files
and update Transifex.
#. Run ``python setup.py build`` to rebuild all the theme assets and the Python
package.
#. Commit these changes.
#. Tag the release in git: ``git tag $NEW_VERSION``.
#. Push the tag to GitHub: ``git push --tags origin``.
#. Upload the package to PyPI:
Expand Down
37 changes: 35 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,43 @@
"""

import os
import subprocess
import distutils.cmd
import setuptools.command.build_py
from io import open
from setuptools import setup


class WebpackBuildCommand(setuptools.command.build_py.build_py):

"""Prefix Python build with Webpack asset build"""

def run(self):
if not 'CI' in os.environ:
subprocess.run(['node_modules/.bin/webpack', '--config', 'webpack.prod.js'], check=True)
setuptools.command.build_py.build_py.run(self)


class WebpackDevelopCommand(distutils.cmd.Command):

description = "Run Webpack dev server"

user_options = []

def initialize_options(self):
pass

def finalize_options(self):
pass

def run(self):
subprocess.run(
["node_modules/.bin/webpack-dev-server", "--open", "--config", "webpack.dev.js"],
check=True
)


class UpdateTranslationsCommand(distutils.cmd.Command):

description = "Run all localization commands"
Expand Down Expand Up @@ -47,8 +78,8 @@ def finalize_options(self):
pass

def run(self):
subprocess.run(['tx', 'push', '--source'])
subprocess.run(['tx', 'pull'])
subprocess.run(['tx', 'push', '--source'], check=True)
subprocess.run(['tx', 'pull'], check=True)


setup(
Expand All @@ -63,6 +94,8 @@ def run(self):
cmdclass={
'update_translations': UpdateTranslationsCommand,
'transifex': TransifexCommand,
'build_py': WebpackBuildCommand,
'watch': WebpackDevelopCommand,
},
zip_safe=False,
packages=['sphinx_rtd_theme'],
Expand Down

0 comments on commit ddf840c

Please sign in to comment.