mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-21 02:48:11 +08:00
Fix Makefile whitespace and .PHONY use
This commit is contained in:
@@ -7,10 +7,12 @@ PART ?= patch
|
||||
|
||||
# BUILDING PACKAGE
|
||||
|
||||
build : clean build-server
|
||||
.PHONY: build
|
||||
build: clean build-server
|
||||
@echo "done"
|
||||
|
||||
build-server : build-client
|
||||
.PHONY: build-server
|
||||
build-server: build-client
|
||||
mkdir -p $(SERVERBUILD)
|
||||
cp -r server/* $(SERVERBUILD)
|
||||
cp -r client/build/ $(CLIENTBUILD)
|
||||
@@ -22,12 +24,14 @@ build-server : build-client
|
||||
cp $(CLIENTBUILD)/service-worker.js $(SERVERBUILD)/app/web/static/js/
|
||||
cp MANIFEST.in README.md setup.cfg setup.py $(BUILDDIR)
|
||||
|
||||
build-client :
|
||||
.PHONY: build-client
|
||||
build-client:
|
||||
npm install --prefix client/ client
|
||||
npm run --prefix client build
|
||||
|
||||
# If you are actively developing in the server folder use this, dirties the source tree
|
||||
build-for-server-dev : clean-server build-client
|
||||
.PHONY: build-for-server-dev
|
||||
build-for-server-dev: clean-server build-client
|
||||
mkdir -p server/app/web/static/img
|
||||
mkdir -p server/app/web/static/js
|
||||
mkdir -p server/app/web/templates/
|
||||
@@ -36,124 +40,141 @@ build-for-server-dev : clean-server build-client
|
||||
cp client/build/favicon.png server/app/web/static/img
|
||||
cp client/build/service-worker.js server/app/web/static/js/
|
||||
|
||||
clean : clean-lite clean-server
|
||||
.PHONY: clean
|
||||
clean: clean-lite clean-server
|
||||
rm -rf client/node_modules
|
||||
|
||||
# cleaning node_modules is the longest one, so we avoid that if possible
|
||||
clean-lite :
|
||||
.PHONY: clean-lite
|
||||
clean-lite:
|
||||
rm -rf $(CLEANFILES)
|
||||
|
||||
clean-server :
|
||||
.PHONY: clean-server
|
||||
clean-server:
|
||||
rm -f server/app/web/templates/index.html
|
||||
rm -rf server/app/web/static
|
||||
|
||||
.PHONY : build build-server build-client build-for-server-dev clean clean-lite clean-server
|
||||
|
||||
# CREATING DISTRIBUTION RELEASE
|
||||
|
||||
pydist : build
|
||||
.PHONY: pydist
|
||||
pydist: build
|
||||
cd $(BUILDDIR); python setup.py sdist -d ../dist
|
||||
@echo "done"
|
||||
|
||||
.PHONY : pydist
|
||||
|
||||
# RELEASE HELPERS
|
||||
|
||||
# create new version to commit to master
|
||||
release-stage-1 : dev-env bump clean-lite gen-package-lock
|
||||
.PHONY: release-stage-1
|
||||
release-stage-1: dev-env bump clean-lite gen-package-lock
|
||||
@echo "Version bumped part:$(PART) and client built. Ready to commit and push"
|
||||
|
||||
# build dist and release to dev pypi
|
||||
release-stage-2 : dev-env pydist twine
|
||||
.PHONY: release-stage-2
|
||||
release-stage-2: dev-env pydist twine
|
||||
@echo "Dist built and uploaded to test.pypi.org"
|
||||
@echo "Test the install:"
|
||||
@echo " make install-release-test"
|
||||
@echo "Then upload to Pypi prod:"
|
||||
@echo " make twine-prod"
|
||||
|
||||
.PHONY: release-stage-final
|
||||
release-stage-final: twine-prod
|
||||
@echo "Release uploaded to pypi.org"
|
||||
|
||||
# DANGER: releases directly to prod
|
||||
# use this if you accidently burned a test release version number,
|
||||
release-directly-to-prod : dev-env pydist twine-prod
|
||||
.PHONY: release-directly-to-prod
|
||||
release-directly-to-prod: dev-env pydist twine-prod
|
||||
@echo "Dist built and uploaded to pypi.org"
|
||||
@echo "Test the install:"
|
||||
@echo " make install-release"
|
||||
|
||||
dev-env :
|
||||
.PHONY: dev-env
|
||||
dev-env:
|
||||
pip install -r server/requirements-dev.txt
|
||||
|
||||
gui-env : dev-env
|
||||
.PHONY: gui-env
|
||||
gui-env: dev-env
|
||||
pip install -r server/requirements-gui.txt
|
||||
|
||||
# give PART=[major, minor, part] as param to make bump
|
||||
bump :
|
||||
.PHONY: bump
|
||||
bump:
|
||||
bumpversion --config-file .bumpversion.cfg $(PART)
|
||||
|
||||
twine :
|
||||
.PHONY: twine
|
||||
twine:
|
||||
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
|
||||
|
||||
twine-prod :
|
||||
.PHONY: twine-prod
|
||||
twine-prod:
|
||||
twine upload dist/*
|
||||
|
||||
# quicker than re-building client
|
||||
gen-package-lock :
|
||||
.PHONY: gen-package-lock
|
||||
gen-package-lock:
|
||||
npm install --prefix client/ client
|
||||
|
||||
.PHONY : release-stage-1 release-stage-2 release-stage-final release-burned dev-env bump twine twine-prod gen-package-lock
|
||||
|
||||
# INSTALL
|
||||
|
||||
# setup.py sucks when you have your library in a separate folder, adding these in to help setup envs
|
||||
|
||||
# install from build directory
|
||||
install : uninstall
|
||||
.PHONY: install
|
||||
install: uninstall
|
||||
cd $(BUILDDIR); pip install -e .
|
||||
|
||||
# install from source tree for development
|
||||
install-dev : uninstall
|
||||
.PHONY: install-dev
|
||||
install-dev: uninstall
|
||||
pip install -e .
|
||||
|
||||
# install from test.pypi to test your release
|
||||
install-release-test : uninstall
|
||||
.PHONY: install-release-test
|
||||
install-release-test: uninstall
|
||||
pip install --no-cache-dir --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple cellxgene
|
||||
@echo "Installed cellxgene from test.pypi.org, now run and smoke test"
|
||||
|
||||
# install from pypi to test your release
|
||||
install-release : uninstall
|
||||
.PHONY: install-release
|
||||
install-release: uninstall
|
||||
pip install --no-cache-dir cellxgene
|
||||
@echo "Installed cellxgene from pypi.org"
|
||||
|
||||
# install from dist
|
||||
install-dist : uninstall
|
||||
.PHONY: install-dist
|
||||
install-dist: uninstall
|
||||
pip install dist/cellxgene*.tar.gz
|
||||
|
||||
uninstall :
|
||||
.PHONY: uninstall
|
||||
uninstall:
|
||||
pip uninstall -y cellxgene || :
|
||||
|
||||
.PHONY : install install-dev install-release-test install-release uninstall
|
||||
|
||||
# GUI
|
||||
|
||||
build-assets :
|
||||
.PHONY: build-assets
|
||||
build-assets:
|
||||
pyside2-rcc server/gui/cellxgene.qrc -o server/gui/cellxgene_rc.py
|
||||
|
||||
gui-spec-osx : clean-lite gui-env
|
||||
.PHONY: gui-spec-osx
|
||||
gui-spec-osx: clean-lite gui-env
|
||||
pip install -e .[gui]
|
||||
pyi-makespec -D -w --additional-hooks-dir server/gui/ -n cellxgene --add-binary='/System/Library/Frameworks/Tk.framework/Tk':'tk' --add-binary='/System/Library/Frameworks/Tcl.framework/Tcl':'tcl' --add-data server/app/web/templates/:server/app/web/templates/ --add-data server/app/web/static/:server/app/web/static/ --icon server/gui/images/cxg_icons.icns server/gui/main.py
|
||||
mv cellxgene.spec cellxgene-osx.spec
|
||||
|
||||
gui-spec-windows : clean-lite dev-env
|
||||
.PHONY: gui-spec-windows
|
||||
gui-spec-windows: clean-lite dev-env
|
||||
pip install -e .[gui]
|
||||
pyi-makespec -D -w --additional-hooks-dir server/gui/ -n cellxgene --add-data server/app/web/templates;server/app/web/templates --add-data server/app/web/static;server/app/web/static --icon server/gui/images/icon.ico server/gui/main.py
|
||||
mv cellxgene.spec cellxgene-windows.spec
|
||||
|
||||
gui-build-osx : clean-lite
|
||||
.PHONY: gui-build-osx
|
||||
gui-build-osx: clean-lite
|
||||
pyinstaller --clean cellxgene-osx.spec
|
||||
|
||||
gui-build-windows : clean-lite
|
||||
.PHONY: gui-build-windows
|
||||
gui-build-windows: clean-lite
|
||||
pyinstaller --clean cellxgene-windows.spec
|
||||
|
||||
.PHONY : build-assets gui-spec-osx gui-spec-windows gui-build-osx gui-build-windows
|
||||
|
||||
|
||||
Reference in New Issue
Block a user