From 5d45b2a1e073b2728902038092c8ee7bfc34d1f4 Mon Sep 17 00:00:00 2001 From: František Zatloukal Date: Aug 27 2018 12:18:36 +0000 Subject: [PATCH 1/2] Allow building docs without virtual_env --- diff --git a/docs/source/conf.py b/docs/source/conf.py index c248df9..c84072e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -12,13 +12,16 @@ # serve to show the default. import sys, os -from utils import build # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. sys.path.insert(0, os.path.abspath('../../')) +# This needs to be imported after adding ../../ to the sys.path +# if we want to build docs without virtual_env +from utils import build + # -- General configuration ----------------------------------------------------- # Include __init__ method documentation From 2046182ccb806f9650fa297a3768a9eb9318114c Mon Sep 17 00:00:00 2001 From: František Zatloukal Date: Aug 27 2018 12:19:19 +0000 Subject: [PATCH 2/2] Makefile: Use generic Makefile provided by qa-make Project can be found here: https://pagure.io/fedora-qa/qa-make --- diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..28fde3b --- /dev/null +++ b/Makefile @@ -0,0 +1,133 @@ +# Copyright 2018, Red Hat, Inc. +# License: GPL-2.0+ +# See the LICENSE file for more details on Licensing + +####################################################################### +# _____ _ _ _ _ _ # +# / ____| | | (_) | | | (_) # +# | | ___ _ __ | |_ _ __ _| |__ _ _| |_ _ _ __ __ _ # +# | | / _ \| '_ \| __| '__| | '_ \| | | | __| | '_ \ / _` | # +# | |___| (_) | | | | |_| | | | |_) | |_| | |_| | | | | (_| | # +# \_____\___/|_| |_|\__|_| |_|_.__/ \__,_|\__|_|_| |_|\__, | # +# __/ | # +# If you want to add/fix anything here, please create |___/ # +# PR at qa-make https://pagure.io/fedora-qa/qa-make # +# # +####################################################################### + +# Allows to print variables, eg. make print-SRC +print-% : ; @echo $* = $($*) + +# Get variables from Makefile.cfg +SRC=$(shell grep -s SRC Makefile.cfg | sed 's/SRC=//') +VENV=$(shell grep -s VENV Makefile.cfg | sed 's/VENV=//') +MODULENAME=$(shell grep -s MODULENAME Makefile.cfg | sed 's/MODULENAME=//') + +# Try to detect SRC in case we didn't find Makefile.cfg +ifeq ($(SRC),) +SRC=$(shell rpmspec -q --queryformat="%{NAME}\n" *.spec | head -1) +SPECNUM=$(shell ls -1 *.spec | wc -l) +ifneq ($(SPECNUM),1) +$(error Make sure you have either one spec file in the directory or configure it in Makefile.cfg) +endif +endif + +# Variables used for packaging +SPECFILE=$(SRC).spec +BASEARCH:=$(shell uname -i) +DIST:=$(shell rpm --eval '%{dist}') +TARGETVER:=$(shell lsb_release -r |grep -o '[0-9]*') +TARGETDIST:=fc$(TARGETVER) +VERSION:=$(shell rpmspec -q --queryformat="%{VERSION}\n" $(SPECFILE) | head -1) +RELEASE:=$(shell rpmspec -q --queryformat="%{RELEASE}\n" $(SPECFILE) | head -1 | sed 's/$(DIST)/\.$(TARGETDIST)/g') +NVR:=$(SRC)-$(VERSION)-$(RELEASE) +GITBRANCH:=$(shell git rev-parse --abbrev-ref HEAD) +BUILDTARGET:=fedora-$(TARGETVER)-x86_64 +KOJITARGET:=$(shell echo $(TARGETDIST) | sed 's/c//' | sed 's/el/epel-/') + +.PHONY: update-makefile +update-makefile: + curl --fail https://pagure.io/fedora-qa/qa-make/raw/master/f/Makefile -o Makefile.new + if ! cmp Makefile Makefile.new ; then mv Makefile.new Makefile ; fi + +.PHONY: test +.ONESHELL: test +test: $(VENV) + set -e + source $(VENV)/bin/activate; + TEST='true' py.test --cov-report=term-missing --cov $(MODULENAME); + deactivate + +.PHONY: test-ci +.ONESHELL: test-ci +test-ci: $(VENV) + set -e + source $(VENV)/bin/activate + TEST='true' py.test --cov-report=xml --cov $(MODULENAME) + deactivate + +.PHONY: pylint +pylint: + pylint -f parseable $(SRC) | tee pylint.out + +.PHONY: pep8 +pep8: + pep8 $(SRC)/*.py $(SRC)/*/*.py | tee pep8.out + +.PHONY: ci +ci: test-ci pylint pep8 + +.PHONY: docs +docs: + sphinx-build -b html -d docs/_build/doctrees docs/source docs/_build/html + +.PHONY: clean +clean: + rm -rf dist + rm -rf $(SRC).egg-info + rm -rf build + rm -f pep8.out + rm -f pylint.out + +.PHONY: archive +archive: $(SRC)-$(VERSION).tar.gz + +.PHONY: $(SRC)-$(VERSION).tar.gz +$(SRC)-$(VERSION).tar.gz: + git archive $(GITBRANCH) --prefix=$(SRC)-$(VERSION)/ | gzip -c9 > $@ + mkdir -p build/$(VERSION)-$(RELEASE) + mv $(SRC)-$(VERSION).tar.gz build/$(VERSION)-$(RELEASE)/ + +.PHONY: srpm +srpm: archive + mock -r $(BUILDTARGET) --buildsrpm --spec $(SPECFILE) --sources build/$(VERSION)-$(RELEASE)/ + cp /var/lib/mock/$(BUILDTARGET)/result/$(NVR).src.rpm build/$(VERSION)-$(RELEASE)/ + +.PHONY: build +build: srpm + mock -r $(BUILDTARGET) --no-clean --rebuild build/$(VERSION)-$(RELEASE)/$(NVR).src.rpm + cp /var/lib/mock/$(BUILDTARGET)/result/*.rpm build/$(VERSION)-$(RELEASE)/ + +.PHONY: scratch +scratch: srpm + koji build --scratch $(KOJITARGET) build/$(VERSION)-$(RELEASE)/$(NVR).src.rpm + +.PHONY: nvr +nvr: + @echo $(NVR) + +.PHONY: cleanvenv +cleanvenv: + rm -rf $(VENV) + +.PHONY: virtualenv +virtualenv: $(VENV) + +.PHONY: $(VENV) +.ONESHELL: $(VENV) +$(VENV): + virtualenv --system-site-packages $(VENV) + set -e + source $(VENV)/bin/activate + pip install -r requirements.txt + deactivate