From d9dfc8dc10781e7bc69f0b50537124db850a3b14 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 01:49:02 -0400 Subject: [PATCH 1/8] add github action for PRs --- .github/workflows/generate_docs_pr.yml | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .github/workflows/generate_docs_pr.yml diff --git a/.github/workflows/generate_docs_pr.yml b/.github/workflows/generate_docs_pr.yml new file mode 100644 index 0000000..04e1450 --- /dev/null +++ b/.github/workflows/generate_docs_pr.yml @@ -0,0 +1,29 @@ +name: Build docs to check for errors + +on: + pull_request: + # only runs on PRs that target main + branches: + - main + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Install prereqs + run: sudo apt install python3-pip inkscape texlive-latex-extra -y + - name: Pip installs + run: sudo pip install pylatex + - name: Install a more recent version of Pandoc than available from apt or pip (to get svg support) + run: | + wget "https://github.com/jgm/pandoc/releases/download/3.2/pandoc-3.2-linux-amd64.tar.gz" + tar -xvf pandoc-3.2-linux-amd64.tar.gz + sudo cp pandoc-3.2/bin/pandoc /usr/local/bin + - name: Build docs + run: python3 docs-generator.py + - name: Check if docs are generated + run: ls -la + - name: Check pandoc version + run: pandoc -v From 0297d653e1fac1cc072233a57cff3960979c7e43 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 01:51:27 -0400 Subject: [PATCH 2/8] apt update --- .github/workflows/generate_docs_pr.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate_docs_pr.yml b/.github/workflows/generate_docs_pr.yml index 04e1450..51432c3 100644 --- a/.github/workflows/generate_docs_pr.yml +++ b/.github/workflows/generate_docs_pr.yml @@ -12,6 +12,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + - name: Apt update + run: sudo apt update - name: Install prereqs run: sudo apt install python3-pip inkscape texlive-latex-extra -y - name: Pip installs From c5f3b7a1482f03cc03ac98575cd105cc3e2d8c0a Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 01:53:11 -0400 Subject: [PATCH 3/8] add apt update to main action too --- .github/workflows/generate_docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate_docs.yml b/.github/workflows/generate_docs.yml index 7da7377..2f9fa6e 100644 --- a/.github/workflows/generate_docs.yml +++ b/.github/workflows/generate_docs.yml @@ -27,6 +27,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + - name: Apt update + run: sudo apt update - name: Install prereqs run: sudo apt install python3-pip inkscape texlive-latex-extra -y - name: Pip installs From c4f438ab651a78bd6fcea382cd8aac9ba9c66a51 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 02:14:15 -0400 Subject: [PATCH 4/8] catch pandoc errors --- docs-generator.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs-generator.py b/docs-generator.py index fc807e0..d2bbc58 100644 --- a/docs-generator.py +++ b/docs-generator.py @@ -1,4 +1,4 @@ -from pylatex import Document, Section, Subsection, Subsubsection, Package, Tabular, Figure +from pylatex import Document, Section, Subsection, Subsubsection, Package, Tabular, Figure, Command from pylatex.utils import bold, NoEscape import json import time @@ -58,6 +58,7 @@ def gen_fields(doc, d): geometry_options = {"tmargin": "1in", "lmargin": "1in", "rmargin": "1in", "bmargin": "1in"} doc = Document(geometry_options=geometry_options) +doc.preamble.append(Command('title', 'SigMF')) # doesn't actually show up anywhere, but was causing a warning when not included doc.packages.append(Package("underscore")) # makes it so _ never means math mode! doc.packages.append(Package("xcolor", options=["table"])) # allows for \rowcolors doc.packages.append(Package("listings")) @@ -215,4 +216,6 @@ def gen_fields(doc, d): # Generate HTML css_url = "https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" -subprocess.run(f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split()) +pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) +if len(pandoc_out.stderr): + raise Exception("Pandoc error: " + pandoc_out.stderr) From f49ce0bac56f6f836a0224d50c442e841636f831 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 02:15:42 -0400 Subject: [PATCH 5/8] added pandoc error for testing --- docs-generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs-generator.py b/docs-generator.py index d2bbc58..d0a84c5 100644 --- a/docs-generator.py +++ b/docs-generator.py @@ -214,8 +214,8 @@ def gen_fields(doc, d): with open("main.css", "w") as f: f.write(css_string) -# Generate HTML +# Generate HTML from tex with Pandoc css_url = "https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" -pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) +pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex asd -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) if len(pandoc_out.stderr): raise Exception("Pandoc error: " + pandoc_out.stderr) From eb453f0542206a964064185a3cba7bbefcf087f1 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Thu, 20 Jun 2024 02:17:08 -0400 Subject: [PATCH 6/8] remove test error --- docs-generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs-generator.py b/docs-generator.py index d0a84c5..8272b91 100644 --- a/docs-generator.py +++ b/docs-generator.py @@ -216,6 +216,6 @@ def gen_fields(doc, d): # Generate HTML from tex with Pandoc css_url = "https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" -pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex asd -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) +pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) if len(pandoc_out.stderr): raise Exception("Pandoc error: " + pandoc_out.stderr) From 13ea90a6e35d93a293b5b5752b2521104c8eea00 Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Fri, 21 Jun 2024 21:50:58 -0400 Subject: [PATCH 7/8] ran black --- docs-generator.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs-generator.py b/docs-generator.py index 8272b91..1b33b9b 100644 --- a/docs-generator.py +++ b/docs-generator.py @@ -58,7 +58,7 @@ def gen_fields(doc, d): geometry_options = {"tmargin": "1in", "lmargin": "1in", "rmargin": "1in", "bmargin": "1in"} doc = Document(geometry_options=geometry_options) -doc.preamble.append(Command('title', 'SigMF')) # doesn't actually show up anywhere, but was causing a warning when not included +doc.preamble.append(Command("title", "SigMF")) # doesn't actually show up anywhere, but was causing a warning when not included doc.packages.append(Package("underscore")) # makes it so _ never means math mode! doc.packages.append(Package("xcolor", options=["table"])) # allows for \rowcolors doc.packages.append(Package("listings")) @@ -216,6 +216,10 @@ def gen_fields(doc, d): # Generate HTML from tex with Pandoc css_url = "https://cdn.jsdelivr.net/npm/bootstrap@4.4.1/dist/css/bootstrap.min.css" -pandoc_out = subprocess.run(f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), capture_output = True, text = True) +pandoc_out = subprocess.run( + f"pandoc sigmf-spec.tex -f latex -t html -s -o sigmf-spec.html --toc --toc-depth=3 -c {css_url} -c main.css".split(), + capture_output=True, + text=True, +) if len(pandoc_out.stderr): raise Exception("Pandoc error: " + pandoc_out.stderr) From 3420e686730d3938791b945778c9a5783dd3eeca Mon Sep 17 00:00:00 2001 From: Marc Lichtman Date: Fri, 21 Jun 2024 21:51:11 -0400 Subject: [PATCH 8/8] ran isort --- docs-generator.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs-generator.py b/docs-generator.py index 1b33b9b..7f1c4b0 100644 --- a/docs-generator.py +++ b/docs-generator.py @@ -1,8 +1,10 @@ -from pylatex import Document, Section, Subsection, Subsubsection, Package, Tabular, Figure, Command -from pylatex.utils import bold, NoEscape import json -import time import subprocess +import time + +from pylatex import (Command, Document, Figure, Package, Section, Subsection, + Subsubsection, Tabular) +from pylatex.utils import NoEscape, bold with open("sigmf-schema.json", "r") as f: data = json.load(f)