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

publish_subcommand hook + default plugins mechanism, used for publish heroku/now #349

Merged
merged 2 commits into from Jul 26, 2018

Conversation

Projects
None yet
1 participant
@simonw
Copy link
Owner

simonw commented Jul 26, 2018

This change introduces a new plugin hook, publish_subcommand, which can be
used to implement new subcommands for the "datasette publish" command family.

I've used this new hook to refactor out the "publish now" and "publish heroku"
implementations into separate modules. I've also added unit tests for these
two publishers, mocking the subprocess.call and subprocess.check_output
functions.

As part of this, I introduced a mechanism for loading default plugins. These
are defined in the new "default_plugins" list inside datasette/app.py

Closes #217 (Plugin support for "datasette publish")
Closes #348 (Unit tests for "datasette publish")
Refs #14, #59, #102, #103, #146, #236, #347

Extract publish heroku/now implementations into default plugins
This change introduces a new plugin hook, publish_subcommand, which can be
used to implement new subcommands for the "datasette publish" command family.

I've used this new hook to refactor out the "publish now" and "publish heroku"
implementations into separate modules. I've also added unit tests for these
two publishers, mocking the subprocess.call and subprocess.check_output
functions.

As part of this, I introduced a mechanism for loading default plugins. These
are defined in the new "default_plugins" list inside datasette/app.py

Closes #217 (Plugin support for datasette publish)
Closes #348 (Unit tests for "datasette publish")
Refs #14, #59, #102, #103, #146, #236, #347

@simonw simonw changed the title Extract publish heroku/now implementations into default plugins publish_subcommand hook + default plugins mechanism, now used for publish heroku/now Jul 26, 2018

@simonw simonw changed the title publish_subcommand hook + default plugins mechanism, now used for publish heroku/now publish_subcommand hook + default plugins mechanism, used for publish heroku/now Jul 26, 2018

@simonw simonw merged commit dbbe707 into master Jul 26, 2018

2 checks passed

continuous-integration/travis-ci/pr The Travis CI build passed
Details
continuous-integration/travis-ci/push The Travis CI build passed
Details

@simonw simonw deleted the publish-plugins branch Jul 26, 2018

@simonw

This comment has been minimized.

Copy link
Owner Author

simonw commented Jul 26, 2018

Documentation here: http://datasette.readthedocs.io/en/latest/plugins.html#publish-subcommand-publish

The best way to write a new publish plugin is to check out how the Heroku and Now default plugins are implemented: https://github.com/simonw/datasette/tree/master/datasette/publish

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.