summaryrefslogtreecommitdiff
path: root/python-datasette-publish-vercel.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-datasette-publish-vercel.spec')
-rw-r--r--python-datasette-publish-vercel.spec461
1 files changed, 461 insertions, 0 deletions
diff --git a/python-datasette-publish-vercel.spec b/python-datasette-publish-vercel.spec
new file mode 100644
index 0000000..df8fe6d
--- /dev/null
+++ b/python-datasette-publish-vercel.spec
@@ -0,0 +1,461 @@
+%global _empty_manifest_terminate_build 0
+Name: python-datasette-publish-vercel
+Version: 0.14.2
+Release: 1
+Summary: Datasette plugin for publishing data using Vercel
+License: Apache License, Version 2.0
+URL: https://github.com/simonw/datasette-publish-vercel
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/39/1c/7f889259343dff08094f3bca5f34bbefc03613cbdaafcb89e40993b3c2a6/datasette-publish-vercel-0.14.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-datasette
+Requires: python3-pytest
+
+%description
+# datasette-publish-vercel
+
+[![PyPI](https://img.shields.io/pypi/v/datasette-publish-vercel.svg)](https://pypi.org/project/datasette-publish-vercel/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-publish-vercel?include_prereleases&label=changelog)](https://github.com/simonw/datasette-publish-vercel/releases)
+[![Tests](https://github.com/simonw/datasette-publish-vercel/workflows/Test/badge.svg)](https://github.com/simonw/datasette-publish-vercel/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-publish-vercel/blob/main/LICENSE)
+
+Datasette plugin for publishing data using [Vercel](https://vercel.com/).
+
+## Installation
+
+Install this plugin in the same environment as Datasette.
+
+ $ datasette install datasette-publish-vercel
+
+## Usage
+
+First, install the Vercel CLI tool by [following their instructions](https://vercel.com/download).
+
+Run `vercel login` to login to (or create) an account.
+
+Now you can use `datasette publish vercel` to publish your data:
+
+ datasette publish vercel my-database.db --project=my-database
+
+The `--project` argument is required - it specifies the project name that should be used for your deployment. This will be used as part of the deployment's URL.
+
+### Other options
+
+* `--no-prod` deploys to the project without updating the "production" URL alias to point to that new deployment. Without that option all deploys go directly to production.
+* `--debug` enables the Vercel CLI debug output.
+* `--token` allows you to pass a Now authentication token, rather than needing to first run `now login` to configure the tool. Tokens can be created in the Vercel web dashboard under Account Settings -> Tokens.
+* `--public` runs `vercel --public` to publish the application source code at `/_src` e.g. https://datasette-public.now.sh/_src and make recent logs visible at `/_logs` e.g. https://datasette-public.now.sh/_logs
+* `--generate-dir` - by default this tool generates a new Vercel app in a temporary directory, deploys it and then deletes the directory. Use `--generate-dir=my-app` to output the generated application files to a new directory of your choice instead. You can then deploy it by running `vercel` in that directory.
+* `--setting default_page_size 10` - use this to set Datasette settings, as described in [the documentation](https://docs.datasette.io/en/stable/settings.html). This is a replacement for the unsupported `--extra-options` option.
+
+### Full help
+
+**Warning:** Some of these options are not yet implemented by this plugin. In particular, the following do not yet work:
+
+* `--extra-options` - use `--setting` described above instead.
+* `--plugin-secret`
+* `--version-note`
+
+```
+$ datasette publish vercel --help
+
+Usage: datasette publish vercel [OPTIONS] [FILES]...
+
+ Publish to https://vercel.com/
+
+Options:
+ -m, --metadata FILENAME Path to JSON/YAML file containing metadata to publish
+ --extra-options TEXT Extra options to pass to datasette serve
+ --branch TEXT Install datasette from a GitHub branch e.g. main
+ --template-dir DIRECTORY Path to directory containing custom templates
+ --plugins-dir DIRECTORY Path to directory containing custom plugins
+ --static MOUNT:DIRECTORY Serve static files from this directory at /MOUNT/...
+ --install TEXT Additional packages (e.g. plugins) to install
+ --plugin-secret <TEXT TEXT TEXT>...
+ Secrets to pass to plugins, e.g. --plugin-secret
+ datasette-auth-github client_id xxx
+ --version-note TEXT Additional note to show on /-/versions
+ --secret TEXT Secret used for signing secure values, such as signed
+ cookies
+ --title TEXT Title for metadata
+ --license TEXT License label for metadata
+ --license_url TEXT License URL for metadata
+ --source TEXT Source label for metadata
+ --source_url TEXT Source URL for metadata
+ --about TEXT About label for metadata
+ --about_url TEXT About URL for metadata
+ --token TEXT Auth token to use for deploy
+ --project PROJECT Vercel project name to use [required]
+ --scope TEXT Optional Vercel scope (e.g. a team name)
+ --no-prod Don't deploy directly to production
+ --debug Enable Vercel CLI debug output
+ --public Publish source with Vercel CLI --public
+ --generate-dir DIRECTORY Output generated application files and stop without
+ deploying
+ --generate-vercel-json Output generated vercel.json file and stop without
+ deploying
+ --vercel-json FILENAME Custom vercel.json file to use instead of generating
+ one
+ --setting SETTING... Setting, see docs.datasette.io/en/stable/settings.html
+ --crossdb Enable cross-database SQL queries
+ --help Show this message and exit.
+```
+## Using a custom `vercel.json` file
+
+If you want to add additional redirects or similar to your Vercel configuration you may want to provide a custom `vercel.json` file.
+
+To do this, first generate a configuration file (without running a deploy) using the `--generate-vercel-json` option:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --generate-vercel-json > vercel.json
+
+You can now edit the `vercel.json` file that this creates to add your custom options.
+
+Then run the deploy using:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --vercel-json=vercel.json
+
+## Setting a `DATASETTE_SECRET`
+
+Datasette uses [a secret string](https://docs.datasette.io/en/stable/settings.html#configuring-the-secret) for purposes such as signing authentication cookies. This secret is reset when the server restarts, which will sign out any users who are authenticated using a signed cookie.
+
+You can avoid this by generating a `DATASETTE_SECRET` secret string and setting that as a [Vercel environment variable](https://vercel.com/docs/concepts/projects/environment-variables). If you do this the secret will stay consistent and your users will not be signed out.
+
+## Using this with GitHub Actions
+
+This plugin can be used together with [GitHub Actions](https://github.com/features/actions) to deploy Datasette instances automatically on new pushes to a repo, or on a schedule.
+
+The GitHub Actions runners already have the Vercel deployment tool installed. You'll need to create an API token for your account at [vercel.com/account/tokens](https://vercel.com/account/tokens), and store that as a secret in your GitHub repository called `VERCEL_TOKEN`.
+
+Make sure your workflow has installed `datasette` and `datasette-publish-vercel` using `pip`, then add the following step to your GitHub Actions workflow:
+```
+ - name: Deploy Datasette using Vercel
+ env:
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ run: |-
+ datasette publish vercel mydb.db \
+ --token $VERCEL_TOKEN \
+ --project my-vercel-project
+```
+You can see a full example of a workflow that uses Vercel in this way [in the simonw/til repository](https://github.com/simonw/til/blob/12b3f0d3679320cbeafa5df164bbc08ba703625d/.github/workflows/build.yml).
+
+
+%package -n python3-datasette-publish-vercel
+Summary: Datasette plugin for publishing data using Vercel
+Provides: python-datasette-publish-vercel
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-datasette-publish-vercel
+# datasette-publish-vercel
+
+[![PyPI](https://img.shields.io/pypi/v/datasette-publish-vercel.svg)](https://pypi.org/project/datasette-publish-vercel/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-publish-vercel?include_prereleases&label=changelog)](https://github.com/simonw/datasette-publish-vercel/releases)
+[![Tests](https://github.com/simonw/datasette-publish-vercel/workflows/Test/badge.svg)](https://github.com/simonw/datasette-publish-vercel/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-publish-vercel/blob/main/LICENSE)
+
+Datasette plugin for publishing data using [Vercel](https://vercel.com/).
+
+## Installation
+
+Install this plugin in the same environment as Datasette.
+
+ $ datasette install datasette-publish-vercel
+
+## Usage
+
+First, install the Vercel CLI tool by [following their instructions](https://vercel.com/download).
+
+Run `vercel login` to login to (or create) an account.
+
+Now you can use `datasette publish vercel` to publish your data:
+
+ datasette publish vercel my-database.db --project=my-database
+
+The `--project` argument is required - it specifies the project name that should be used for your deployment. This will be used as part of the deployment's URL.
+
+### Other options
+
+* `--no-prod` deploys to the project without updating the "production" URL alias to point to that new deployment. Without that option all deploys go directly to production.
+* `--debug` enables the Vercel CLI debug output.
+* `--token` allows you to pass a Now authentication token, rather than needing to first run `now login` to configure the tool. Tokens can be created in the Vercel web dashboard under Account Settings -> Tokens.
+* `--public` runs `vercel --public` to publish the application source code at `/_src` e.g. https://datasette-public.now.sh/_src and make recent logs visible at `/_logs` e.g. https://datasette-public.now.sh/_logs
+* `--generate-dir` - by default this tool generates a new Vercel app in a temporary directory, deploys it and then deletes the directory. Use `--generate-dir=my-app` to output the generated application files to a new directory of your choice instead. You can then deploy it by running `vercel` in that directory.
+* `--setting default_page_size 10` - use this to set Datasette settings, as described in [the documentation](https://docs.datasette.io/en/stable/settings.html). This is a replacement for the unsupported `--extra-options` option.
+
+### Full help
+
+**Warning:** Some of these options are not yet implemented by this plugin. In particular, the following do not yet work:
+
+* `--extra-options` - use `--setting` described above instead.
+* `--plugin-secret`
+* `--version-note`
+
+```
+$ datasette publish vercel --help
+
+Usage: datasette publish vercel [OPTIONS] [FILES]...
+
+ Publish to https://vercel.com/
+
+Options:
+ -m, --metadata FILENAME Path to JSON/YAML file containing metadata to publish
+ --extra-options TEXT Extra options to pass to datasette serve
+ --branch TEXT Install datasette from a GitHub branch e.g. main
+ --template-dir DIRECTORY Path to directory containing custom templates
+ --plugins-dir DIRECTORY Path to directory containing custom plugins
+ --static MOUNT:DIRECTORY Serve static files from this directory at /MOUNT/...
+ --install TEXT Additional packages (e.g. plugins) to install
+ --plugin-secret <TEXT TEXT TEXT>...
+ Secrets to pass to plugins, e.g. --plugin-secret
+ datasette-auth-github client_id xxx
+ --version-note TEXT Additional note to show on /-/versions
+ --secret TEXT Secret used for signing secure values, such as signed
+ cookies
+ --title TEXT Title for metadata
+ --license TEXT License label for metadata
+ --license_url TEXT License URL for metadata
+ --source TEXT Source label for metadata
+ --source_url TEXT Source URL for metadata
+ --about TEXT About label for metadata
+ --about_url TEXT About URL for metadata
+ --token TEXT Auth token to use for deploy
+ --project PROJECT Vercel project name to use [required]
+ --scope TEXT Optional Vercel scope (e.g. a team name)
+ --no-prod Don't deploy directly to production
+ --debug Enable Vercel CLI debug output
+ --public Publish source with Vercel CLI --public
+ --generate-dir DIRECTORY Output generated application files and stop without
+ deploying
+ --generate-vercel-json Output generated vercel.json file and stop without
+ deploying
+ --vercel-json FILENAME Custom vercel.json file to use instead of generating
+ one
+ --setting SETTING... Setting, see docs.datasette.io/en/stable/settings.html
+ --crossdb Enable cross-database SQL queries
+ --help Show this message and exit.
+```
+## Using a custom `vercel.json` file
+
+If you want to add additional redirects or similar to your Vercel configuration you may want to provide a custom `vercel.json` file.
+
+To do this, first generate a configuration file (without running a deploy) using the `--generate-vercel-json` option:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --generate-vercel-json > vercel.json
+
+You can now edit the `vercel.json` file that this creates to add your custom options.
+
+Then run the deploy using:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --vercel-json=vercel.json
+
+## Setting a `DATASETTE_SECRET`
+
+Datasette uses [a secret string](https://docs.datasette.io/en/stable/settings.html#configuring-the-secret) for purposes such as signing authentication cookies. This secret is reset when the server restarts, which will sign out any users who are authenticated using a signed cookie.
+
+You can avoid this by generating a `DATASETTE_SECRET` secret string and setting that as a [Vercel environment variable](https://vercel.com/docs/concepts/projects/environment-variables). If you do this the secret will stay consistent and your users will not be signed out.
+
+## Using this with GitHub Actions
+
+This plugin can be used together with [GitHub Actions](https://github.com/features/actions) to deploy Datasette instances automatically on new pushes to a repo, or on a schedule.
+
+The GitHub Actions runners already have the Vercel deployment tool installed. You'll need to create an API token for your account at [vercel.com/account/tokens](https://vercel.com/account/tokens), and store that as a secret in your GitHub repository called `VERCEL_TOKEN`.
+
+Make sure your workflow has installed `datasette` and `datasette-publish-vercel` using `pip`, then add the following step to your GitHub Actions workflow:
+```
+ - name: Deploy Datasette using Vercel
+ env:
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ run: |-
+ datasette publish vercel mydb.db \
+ --token $VERCEL_TOKEN \
+ --project my-vercel-project
+```
+You can see a full example of a workflow that uses Vercel in this way [in the simonw/til repository](https://github.com/simonw/til/blob/12b3f0d3679320cbeafa5df164bbc08ba703625d/.github/workflows/build.yml).
+
+
+%package help
+Summary: Development documents and examples for datasette-publish-vercel
+Provides: python3-datasette-publish-vercel-doc
+%description help
+# datasette-publish-vercel
+
+[![PyPI](https://img.shields.io/pypi/v/datasette-publish-vercel.svg)](https://pypi.org/project/datasette-publish-vercel/)
+[![Changelog](https://img.shields.io/github/v/release/simonw/datasette-publish-vercel?include_prereleases&label=changelog)](https://github.com/simonw/datasette-publish-vercel/releases)
+[![Tests](https://github.com/simonw/datasette-publish-vercel/workflows/Test/badge.svg)](https://github.com/simonw/datasette-publish-vercel/actions?query=workflow%3ATest)
+[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://github.com/simonw/datasette-publish-vercel/blob/main/LICENSE)
+
+Datasette plugin for publishing data using [Vercel](https://vercel.com/).
+
+## Installation
+
+Install this plugin in the same environment as Datasette.
+
+ $ datasette install datasette-publish-vercel
+
+## Usage
+
+First, install the Vercel CLI tool by [following their instructions](https://vercel.com/download).
+
+Run `vercel login` to login to (or create) an account.
+
+Now you can use `datasette publish vercel` to publish your data:
+
+ datasette publish vercel my-database.db --project=my-database
+
+The `--project` argument is required - it specifies the project name that should be used for your deployment. This will be used as part of the deployment's URL.
+
+### Other options
+
+* `--no-prod` deploys to the project without updating the "production" URL alias to point to that new deployment. Without that option all deploys go directly to production.
+* `--debug` enables the Vercel CLI debug output.
+* `--token` allows you to pass a Now authentication token, rather than needing to first run `now login` to configure the tool. Tokens can be created in the Vercel web dashboard under Account Settings -> Tokens.
+* `--public` runs `vercel --public` to publish the application source code at `/_src` e.g. https://datasette-public.now.sh/_src and make recent logs visible at `/_logs` e.g. https://datasette-public.now.sh/_logs
+* `--generate-dir` - by default this tool generates a new Vercel app in a temporary directory, deploys it and then deletes the directory. Use `--generate-dir=my-app` to output the generated application files to a new directory of your choice instead. You can then deploy it by running `vercel` in that directory.
+* `--setting default_page_size 10` - use this to set Datasette settings, as described in [the documentation](https://docs.datasette.io/en/stable/settings.html). This is a replacement for the unsupported `--extra-options` option.
+
+### Full help
+
+**Warning:** Some of these options are not yet implemented by this plugin. In particular, the following do not yet work:
+
+* `--extra-options` - use `--setting` described above instead.
+* `--plugin-secret`
+* `--version-note`
+
+```
+$ datasette publish vercel --help
+
+Usage: datasette publish vercel [OPTIONS] [FILES]...
+
+ Publish to https://vercel.com/
+
+Options:
+ -m, --metadata FILENAME Path to JSON/YAML file containing metadata to publish
+ --extra-options TEXT Extra options to pass to datasette serve
+ --branch TEXT Install datasette from a GitHub branch e.g. main
+ --template-dir DIRECTORY Path to directory containing custom templates
+ --plugins-dir DIRECTORY Path to directory containing custom plugins
+ --static MOUNT:DIRECTORY Serve static files from this directory at /MOUNT/...
+ --install TEXT Additional packages (e.g. plugins) to install
+ --plugin-secret <TEXT TEXT TEXT>...
+ Secrets to pass to plugins, e.g. --plugin-secret
+ datasette-auth-github client_id xxx
+ --version-note TEXT Additional note to show on /-/versions
+ --secret TEXT Secret used for signing secure values, such as signed
+ cookies
+ --title TEXT Title for metadata
+ --license TEXT License label for metadata
+ --license_url TEXT License URL for metadata
+ --source TEXT Source label for metadata
+ --source_url TEXT Source URL for metadata
+ --about TEXT About label for metadata
+ --about_url TEXT About URL for metadata
+ --token TEXT Auth token to use for deploy
+ --project PROJECT Vercel project name to use [required]
+ --scope TEXT Optional Vercel scope (e.g. a team name)
+ --no-prod Don't deploy directly to production
+ --debug Enable Vercel CLI debug output
+ --public Publish source with Vercel CLI --public
+ --generate-dir DIRECTORY Output generated application files and stop without
+ deploying
+ --generate-vercel-json Output generated vercel.json file and stop without
+ deploying
+ --vercel-json FILENAME Custom vercel.json file to use instead of generating
+ one
+ --setting SETTING... Setting, see docs.datasette.io/en/stable/settings.html
+ --crossdb Enable cross-database SQL queries
+ --help Show this message and exit.
+```
+## Using a custom `vercel.json` file
+
+If you want to add additional redirects or similar to your Vercel configuration you may want to provide a custom `vercel.json` file.
+
+To do this, first generate a configuration file (without running a deploy) using the `--generate-vercel-json` option:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --generate-vercel-json > vercel.json
+
+You can now edit the `vercel.json` file that this creates to add your custom options.
+
+Then run the deploy using:
+
+ datasette publish vercel my-database.db \
+ --project=my-database \
+ --vercel-json=vercel.json
+
+## Setting a `DATASETTE_SECRET`
+
+Datasette uses [a secret string](https://docs.datasette.io/en/stable/settings.html#configuring-the-secret) for purposes such as signing authentication cookies. This secret is reset when the server restarts, which will sign out any users who are authenticated using a signed cookie.
+
+You can avoid this by generating a `DATASETTE_SECRET` secret string and setting that as a [Vercel environment variable](https://vercel.com/docs/concepts/projects/environment-variables). If you do this the secret will stay consistent and your users will not be signed out.
+
+## Using this with GitHub Actions
+
+This plugin can be used together with [GitHub Actions](https://github.com/features/actions) to deploy Datasette instances automatically on new pushes to a repo, or on a schedule.
+
+The GitHub Actions runners already have the Vercel deployment tool installed. You'll need to create an API token for your account at [vercel.com/account/tokens](https://vercel.com/account/tokens), and store that as a secret in your GitHub repository called `VERCEL_TOKEN`.
+
+Make sure your workflow has installed `datasette` and `datasette-publish-vercel` using `pip`, then add the following step to your GitHub Actions workflow:
+```
+ - name: Deploy Datasette using Vercel
+ env:
+ VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ run: |-
+ datasette publish vercel mydb.db \
+ --token $VERCEL_TOKEN \
+ --project my-vercel-project
+```
+You can see a full example of a workflow that uses Vercel in this way [in the simonw/til repository](https://github.com/simonw/til/blob/12b3f0d3679320cbeafa5df164bbc08ba703625d/.github/workflows/build.yml).
+
+
+%prep
+%autosetup -n datasette-publish-vercel-0.14.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-datasette-publish-vercel -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 0.14.2-1
+- Package Spec generated