Skip to content

Commit

Permalink
add make commands and checks for outdated docs
Browse files Browse the repository at this point in the history
  • Loading branch information
sh-rp committed Jan 26, 2025
1 parent e384400 commit c79700a
Show file tree
Hide file tree
Showing 6 changed files with 465 additions and 9 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ jobs:
run: |
export PATH=$PATH:"/c/Program Files/usr/bin" # needed for Windows
make lint
- name: Check that cli docs are up to date
run: make check-cli-docs

matrix_job_required_check:
name: lint | code & tests
Expand Down
6 changes: 6 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,9 @@ start-test-containers:
docker compose -f "tests/load/weaviate/docker-compose.yml" up -d
docker compose -f "tests/load/filesystem_sftp/docker-compose.yml" up -d
docker compose -f "tests/load/sqlalchemy/docker-compose.yml" up -d

update-cli-docs:
poetry run dlt render-docs docs/website/docs/reference/command-line-interface-generated.md

check-cli-docs:
poetry run dlt render-docs docs/website/docs/reference/command-line-interface-generated.md --compare
24 changes: 21 additions & 3 deletions dlt/cli/plugins.py
Original file line number Diff line number Diff line change
Expand Up @@ -413,16 +413,34 @@ class CliDocsCommand(SupportsCliCommand):
def configure_parser(self, parser: argparse.ArgumentParser) -> None:
self.parser = parser

def execute(self, args: argparse.Namespace) -> None:
# NOTE: this code depends on changes in the dlt core that have not been merged yet
self.parser.add_argument("file_name", nargs=1, help="Output file name")

self.parser.add_argument(
"--compare",
default=False,
action="store_true",
help="Compare the changes and raise if output would be updated",
)

def execute(self, args: argparse.Namespace) -> None:
from dlt.cli._dlt import _create_parser

parser, _ = _create_parser()

result = render_argparse_markdown("dlt", parser)

fmt.echo(result)
if args.compare:
with open(args.file_name[0], "r", encoding="utf-8") as f:
if result != f.read():
fmt.error(
"Cli Docs out of date, please update, please run "
"update-cli-docs from the main Makefile and commit your changes. "
)
raise CliCommandException()
else:
with open(args.file_name[0], "w", encoding="utf-8") as f:
f.write(result)
fmt.echo("Docs page updated")


#
Expand Down
1 change: 0 additions & 1 deletion docs/website/docs/reference/.gitignore

This file was deleted.

Loading

0 comments on commit c79700a

Please sign in to comment.