Skip to content

Make and CI #96

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

Merged
merged 30 commits into from
May 6, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3d1d3bb
add .pospell
gilgamezh May 5, 2020
7ed9ea2
WIP fix spell errors
gilgamezh May 5, 2020
feb6c86
Remove white-spaces
humitos May 6, 2020
62a179f
Simplify `make` a lot
humitos May 6, 2020
8a31e3f
Merge branch 'fix_ci' of github.com:raulcd/python-docs-es into 3.8
humitos May 6, 2020
8aee4b8
Pin pip
humitos May 6, 2020
52fa2cb
Change travis to use pospell directly instead from virtualenv.
raulcd May 6, 2020
69f1b25
Utilizar temporalmente es_ES hasta que encontremos el paquete en ubun…
raulcd May 6, 2020
9e44d1e
Fix powrap
raulcd May 6, 2020
c35cd10
Update ubuntu version + python to try and install es_ES y es_AR
raulcd May 6, 2020
d5b756b
tutorial/whatnow.po
raulcd May 6, 2020
9c243d4
Fix tutorial/venv.po
raulcd May 6, 2020
67e0b60
Fix tutorial/stdlib.po
raulcd May 6, 2020
6f07d25
pospell over some files from tutorial
humitos May 6, 2020
27b4fca
Merge branch 'make-and-ci' of github.com:raulcd/python-docs-es into m…
humitos May 6, 2020
66cead2
Fix tutorial/stdlib2.po
raulcd May 6, 2020
70f3199
Merge branch 'make-and-ci' of github.com:raulcd/python-docs-es into m…
raulcd May 6, 2020
e7c2b7a
More pospell
humitos May 6, 2020
85fa721
Merge branch 'make-and-ci' of github.com:raulcd/python-docs-es into m…
humitos May 6, 2020
26f5ae6
Build RTD with Py3.8
humitos May 6, 2020
b5059cc
More powrap fixes
raulcd May 6, 2020
e3cc0d7
Merge branch 'make-and-ci' of github.com:raulcd/python-docs-es into m…
raulcd May 6, 2020
1085237
Fix travis differences from dictionaire
raulcd May 6, 2020
8ea55cd
Build only on `master` and PRs
humitos May 6, 2020
e4eff5f
Proper regex for only branches
humitos May 6, 2020
58bca5e
Fix regex
humitos May 6, 2020
8985edc
pre-commit with dicts and sort
humitos May 6, 2020
f84becf
Sort dict words
humitos May 6, 2020
ed02839
Fix tutorial/classes.po
raulcd May 6, 2020
c5f7f4e
Hopefully TravisCI will pass now!
humitos May 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Simplify make a lot
  • Loading branch information
humitos committed May 6, 2020
commit 62a179f20a971f5dcc2a78ffd9fada3b5a018027
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
cpython/locale
*.mo
/_build/

Expand Down
2 changes: 2 additions & 0 deletions .overrides/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
:orphan:

Guía para contribuir en la traducción
=====================================

Expand Down
2 changes: 2 additions & 0 deletions .overrides/translation-memory.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
:orphan:

=======================
Memoria de traducción
=======================
Expand Down
2 changes: 2 additions & 0 deletions .overrides/upgrade-python-version.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
:orphan:

=======================================
How to update to a new Python version
=======================================
Expand Down
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ before_install:
- sudo apt-get update
- sudo apt-get install -y hunspell hunspell-es
install:
- pip install pospell "powrap>=0.3.0"
- make setup
- pospell --version
- powrap --version
script:
- powrap --check --quiet **/*.po
- pospell -p dict -l es_ES **/*.po
- make spell
- make build
154 changes: 23 additions & 131 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,28 @@
# Configuration

CPYTHON_PATH := cpython #Current commit for this upstream repo is setted by the submodule
BRANCH := 3.7
BRANCH := 3.8
LANGUAGE_TEAM := python-docs-es
LANGUAGE := es

# Internal variables
VENV := $(shell realpath ./venv)
PYTHON := $(shell which python3)
WORKDIRS := $(VENV)/workdirs
CPYTHON_WORKDIR := $(WORKDIRS)/cpython
LOCALE_DIR := $(WORKDIRS)/locale
JOBS := auto
SPHINXERRORHANDLING := "-W"
TRANSIFEX_PROJECT := python-newest
CPYTHON_WORKDIR := cpython
OUTPUT_DOCTREE := $(CPYTHON_WORKDIR)/Doc/_build/doctree
OUTPUT_HTML := $(CPYTHON_WORKDIR)/Doc/_build/html
LOCALE_DIR := $(CPYTHON_WORKDIR)/locale
TRANSIFEX_PROJECT := python-docs-es
POSPELL_TMP_DIR := .pospell


.PHONY: help
help:
@echo "Please use 'make <target>' where <target> is one of:"
@echo " build Build an local version in html, with warnings as errors"
@echo " push Update translations and Transifex config in the repository"
@echo " pull Download translations from Transifex; calls 'venv'"
@echo " tx-config Recreate an up-to-date project .tx/config; calls 'pot'"
@echo " pot Create/Update POT files from source files"
@echo " serve Serve a built documentation on http://localhost:8000"
@echo " spell Check spelling, storing output in $(POSPELL_TMP_DIR)"
@echo " spell Check spelling"
@echo " wrap Wrap all the PO files to a fixed column width"
@echo " progress To compute current progression on the tutorial"
@echo ""

Expand All @@ -44,125 +40,33 @@ help:
# treated as errors, which is good to skip simple Sphinx syntax mistakes.
.PHONY: build
build: setup
$(MAKE) -C $(CPYTHON_WORKDIR)/Doc/ \
VENVDIR=$(CPYTHON_WORKDIR)/Doc/venv \
PYTHON=$(PYTHON) \
SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \
SPHINXOPTS='-q --keep-going -j$(JOBS) \
-D locale_dirs=$(LOCALE_DIR) \
-D language=$(LANGUAGE) \
-D gettext_compact=0 \
-D latex_engine=xelatex \
-D latex_elements.inputenc= \
-D latex_elements.fontenc=' \
html;

@echo "Success! Open file://$(CPYTHON_WORKDIR)/Doc/build/html/index.html, " \
sphinx-build -j auto -b html -d $(OUTPUT_DOCTREE) -D language=$(LANGUAGE) . $(OUTPUT_HTML)
@echo "Success! Open file://`pwd`/$(OUTPUT_HTML)/index.html, " \
"or run 'make serve' to see them in http://localhost:8000";


# push: push new translation files and Transifex config files to repository,
# if any. Do nothing if there is no file changes. If GITHUB_TOKEN is set,
# then assumes we are in GitHub Actions, requiring different push args
.PHONY: push
push:
if ! git status -s | egrep '\.po|\.tx/config'; then \
echo "Nothing to commit"; \
exit 0; \
else \
git add *.po **/*.po .tx/config; \
git commit -m 'Update translations from Transifex'; \
if [ $(GITHUB_TOKEN) != "" ]; then \
header="$(echo -n token:"$(GITHUB_TOKEN)" | base64)"; \
git -c http.extraheader="AUTHORIZATION: basic $(header)" push; \
else \
git push; \
fi; \
fi


# pull: Download translations files from Transifex, and apply line wrapping.
# For downloading new translation files, first run "tx-config" target
# to update the translation file mapping.
.PHONY: pull
pull: venv
$(VENV)/bin/tx pull --force --language=$(LANGUAGE) --parallel
$(VENV)/bin/powrap --quiet *.po **/*.po


# tx-config: After running "pot", create a new Transifex config file by
# reading pot files generated, then tweak this config file to
# LANGUAGE.
.PHONY: tx-config
tx-config: pot
cd $(CPYTHON_WORKDIR)/Doc/locales; \
rm -rf .tx; \
$(VENV)/bin/sphinx-intl create-txconfig; \
$(VENV)/bin/sphinx-intl update-txconfig-resources \
--transifex-project-name=$(TRANSIFEX_PROJECT) \
--locale-dir . \
--pot-dir pot;

cd $(OLDPWD)
mv $(CPYTHON_WORKDIR)/Doc/locales/.tx/config .tx/config

sed -i .tx/config \
-e '/^source_file/d' \
-e 's|<lang>/LC_MESSAGES/||' \
-e "s|^file_filter|trans.$(LANGUAGE)|"


# pot: After running "setup" target, run a cpython Makefile's target
# to generate .pot files under $(CPYTHON_WORKDIR)/Doc/locales/pot
.PHONY: pot
pot: setup
$(MAKE) -C $(CPYTHON_WORKDIR)/Doc/ \
VENVDIR=$(CPYTHON_WORKDIR)/Doc/venv \
PYTHON=$(PYTHON) \
ALLSPHINXOPTS='-E -b gettext \
-D gettext_compact=0 \
-d build/.doctrees . \
locales/pot' \
build


# setup: After running "venv" target, prepare that virtual environment with
# a local clone of cpython repository and the translation files.
# If the directories exists, only update the cpython repository and
# the translation files copy which could have new/updated files.
.PHONY: setup
setup: venv
# Setup the main clone
git submodule sync
git submodule update --init --force $(CPYTHON_PATH)
# Setup the current work directory
if ! [ -d $(CPYTHON_WORKDIR) ]; then \
rm -fr $(WORKDIRS); \
mkdir -p $(WORKDIRS); \
git clone $(CPYTHON_PATH) $(CPYTHON_WORKDIR); \
$(MAKE) -C $(CPYTHON_WORKDIR)/Doc \
VENVDIR=$(CPYTHON_WORKDIR)/Doc/venv \
PYTHON=$(PYTHON) venv; \
fi

# Setup translation files
if ! [ -d $(LOCALE_DIR)/$(LANGUAGE)/LC_MESSAGES/ ]; then \
mkdir -p $(LOCALE_DIR)/$(LANGUAGE)/LC_MESSAGES/; \
fi; \
cp --parents *.po **/*.po $(LOCALE_DIR)/$(LANGUAGE)/LC_MESSAGES/ \


# venv: create a virtual environment which will be used by almost every
# other target of this script
.PHONY: venv
venv:
if [ ! -d $(VENV) ]; then \
if [ ! -d $(VENV) ]; then \
$(PYTHON) -m venv --prompt $(LANGUAGE_TEAM) $(VENV); \
fi

$(VENV)/bin/python -m pip install -q -r requirements.txt 2> $(VENV)/pip-install.log

if grep -q 'pip install --upgrade pip' $(VENV)/pip-install.log; then \
if grep -q 'pip install --upgrade pip' $(VENV)/pip-install.log; \
then \
$(VENV)/bin/pip install -q --upgrade pip; \
fi

Expand All @@ -174,28 +78,6 @@ serve:
$(MAKE) -C $(CPYTHON_WORKDIR)/Doc serve


# list files for spellchecking
SRCS := $(wildcard *.po **/*.po)
DESTS = $(addprefix $(POSPELL_TMP_DIR)/out/,$(patsubst %.po,%.txt,$(SRCS)))


# spell: run spell checking tool in all po files listed in SRCS variable,
# storing the output in text files DESTS for proofreading. The
# DESTS target run the spellchecking, while the typos.txt target
# gather all reported issues in one file, sorted without redundancy
.PHONY: spell
spell: venv $(DESTS) $(POSPELL_TMP_DIR)/typos.txt

$(POSPELL_TMP_DIR)/out/%.txt: %.po dict
@echo "Checking $< ..."
@mkdir -p $(@D)
@$(VENV)/bin/pospell -l $(LANGUAGE) -p dict $< > $@ || true

$(POSPELL_TMP_DIR)/typos.txt:
@echo "Gathering all typos in $(POSPELL_TMP_DIR)/typos.txt ..."
@cut -d: -f3- $(DESTS) | sort -u > $@


# clean: remove all .mo files and the venv directory that may exist and
# could have been created by the actions in other targets of this script
.PHONY: clean
Expand All @@ -207,3 +89,13 @@ clean:
.PHONY: progress
progress: venv
$(VENV)/bin/potodo --offline --path tutorial/


.PHONY: spell
spell: venv
$(VENV)/bin/pospell -p dict -l es_ES **/*.po


.PHONY: wrap
wrap: venv
$(VENV)/bin/powrap **/*.po