Skip to content

Commit 30f1b6c

Browse files
Updated build
1 parent 06737c3 commit 30f1b6c

File tree

8 files changed

+190
-15
lines changed

8 files changed

+190
-15
lines changed

.DS_Store

-8 KB
Binary file not shown.

.dockerignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.git
2+
.github
3+
build
4+
5+
*.pdf
6+
*.bbl
7+
*.blg
8+
*.aux
9+
*.log
10+
*.out
11+
*.toc
12+
*.synctex.gz
13+
14+
.DS_Store

.github/workflows/build-pdf.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Build PDF
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v4
13+
14+
- name: Install TeX toolchain
15+
run: |
16+
sudo apt-get update
17+
sudo apt-get install -y \
18+
latexmk \
19+
texlive-latex-base \
20+
texlive-latex-extra \
21+
texlive-fonts-recommended \
22+
texlive-pictures \
23+
texlive-bibtex-extra
24+
25+
- name: Build PDF
26+
run: |
27+
make pdf
28+
29+
- name: Upload artifact
30+
uses: actions/upload-artifact@v4
31+
with:
32+
name: catalyst-technical-whitepaper
33+
path: |
34+
build/*.pdf
35+
build/*.log

.gitignore

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,39 @@
11

2+
## LaTeX build artifacts
23
*.aux
3-
4-
*.log
5-
4+
*.bbl
5+
*.bcf
66
*.blg
7-
8-
*.gz
9-
7+
*.fdb_latexmk
8+
*.fls
9+
*.log
1010
*.out
11-
11+
*.run.xml
12+
*.synctex.gz
1213
*.toc
1314

14-
.vs/ProjectSettings.json
15-
16-
.vs/slnx.sqlite
17-
18-
.vs/VSWorkspaceState.json
19-
20-
.vs/whitepaper/v16/.suo
15+
## Common LaTeX extras
16+
*.lof
17+
*.lot
18+
*.nav
19+
*.snm
20+
*.vrb
21+
*.xdv
22+
*.idx
23+
*.ilg
24+
*.ind
25+
*.ist
26+
*.acn
27+
*.acr
28+
*.alg
29+
*.glg
30+
*.glo
31+
*.gls
32+
_minted*
33+
34+
## Build output directory (used by Makefile/CI)
35+
build/
36+
37+
## OS / editor artifacts
38+
.DS_Store
39+
.vs/

CONTRIBUTING.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
## Contributing
2+
3+
Thanks for taking the time to contribute.
4+
5+
### Scope
6+
7+
This repository contains the Catalyst whitepaper sources and build tooling.
8+
9+
- Please keep changes focused and easy to review.
10+
- Avoid reformat-only changes unless they are necessary for the task at hand.
11+
12+
### Workflow
13+
14+
- Create a branch from `master`.
15+
- Open a pull request with a short summary and, if applicable, a note on how you built the PDF locally.
16+
17+
### Building locally
18+
19+
See the "Building (local)" section in `README.md` and run:
20+
21+
```bash
22+
make pdf
23+
```
24+

Dockerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM ubuntu:24.04
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
make \
7+
latexmk \
8+
texlive-latex-base \
9+
texlive-latex-extra \
10+
texlive-fonts-recommended \
11+
texlive-pictures \
12+
texlive-bibtex-extra \
13+
&& rm -rf /var/lib/apt/lists/*
14+
15+
WORKDIR /work
16+
17+
CMD ["make", "pdf"]

Makefile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
TEX ?= catalyst-technical-whitepaper-new.tex
2+
OUTDIR ?= build
3+
4+
.PHONY: help pdf clean distclean
5+
6+
help:
7+
@echo "Targets:"
8+
@echo " make pdf Build PDF from $(TEX) into $(OUTDIR)/"
9+
@echo " make clean Remove intermediate LaTeX artifacts in $(OUTDIR)/"
10+
@echo " make distclean Remove $(OUTDIR)/ completely"
11+
@echo ""
12+
@echo "Variables:"
13+
@echo " TEX=<file.tex> Choose entrypoint (default: $(TEX))"
14+
@echo " OUTDIR=<dir> Output directory (default: $(OUTDIR))"
15+
16+
$(OUTDIR):
17+
@mkdir -p "$(OUTDIR)"
18+
19+
pdf: $(OUTDIR)
20+
@command -v latexmk >/dev/null 2>&1 || ( \
21+
echo "latexmk not found. Install TeX Live + latexmk (see README.md)."; \
22+
exit 127; \
23+
)
24+
latexmk -pdf -interaction=nonstopmode -halt-on-error -outdir="$(OUTDIR)" "$(TEX)"
25+
26+
clean:
27+
@if [ -d "$(OUTDIR)" ]; then latexmk -c -outdir="$(OUTDIR)" "$(TEX)" || true; fi
28+
29+
distclean:
30+
@rm -rf "$(OUTDIR)"

README.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,42 @@ Setting up and using LaTeX can be found here:
1616

1717
https://github.com/catalyst-network/whitepaper/wiki/Using-and-Compiling-LaTeX
1818

19+
## Building (local)
20+
21+
This repository is a LaTeX project. The recommended entrypoint is:
22+
23+
- `catalyst-technical-whitepaper-new.tex`
24+
25+
### Prerequisites (Ubuntu/Debian)
26+
27+
Install a TeX distribution and `latexmk`:
28+
29+
```bash
30+
sudo apt update
31+
sudo apt install -y latexmk texlive-latex-base texlive-latex-extra texlive-fonts-recommended texlive-pictures texlive-bibtex-extra
32+
```
33+
34+
### Build
35+
36+
```bash
37+
make pdf
38+
```
39+
40+
Outputs are written to `build/` (see `Makefile`).
41+
42+
### Build (Docker)
43+
44+
If you prefer not to install TeX locally:
45+
46+
```bash
47+
docker build -t catalyst-whitepaper .
48+
docker run --rm -v "$PWD:/work" catalyst-whitepaper
49+
```
50+
51+
### Alternative entrypoints
52+
53+
- `catalyst-technical-whitepaper.tex` exists, but may not build in some revisions depending on which consensus subsection file is present.
54+
1955

2056
## File Format
2157

@@ -29,4 +65,4 @@ Each section and subsection is split into separate `.tex` files for ease of edit
2965

3066
The paper that covers the PoA Test net and the minor changes involved with that can be found [here](https://github.com/catalyst-network/whitepaper/tree/PoA-paper-version).
3167

32-
Differences are primeraly in the consensus algorithm with regards to producer selection.
68+
Differences are primarily in the consensus algorithm with regards to producer selection.

0 commit comments

Comments
 (0)