mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-10-16 07:19:13 +08:00
1) Download conformance tests to `test/functional/tools/cwl_tools` where they can be used also by framework and unit tests in the future. 2) Add populators to enable executing CWL conformance tests 3) Generate CWL conformance API tests only when needed for tests
214 lines
8.5 KiB
Makefile
214 lines
8.5 KiB
Makefile
# Location of virtualenv used for development.
|
|
VENV?=.venv
|
|
# Source virtualenv to execute command (flake8, sphinx, twine, etc...)
|
|
IN_VENV=if [ -f "$(VENV)/bin/activate" ]; then . "$(VENV)/bin/activate"; fi;
|
|
RELEASE_CURR:=22.01
|
|
RELEASE_UPSTREAM:=upstream
|
|
CONFIG_MANAGE=$(IN_VENV) python lib/galaxy/config/config_manage.py
|
|
PROJECT_URL?=https://github.com/galaxyproject/galaxy
|
|
DOCS_DIR=doc
|
|
DOC_SOURCE_DIR=$(DOCS_DIR)/source
|
|
SLIDESHOW_DIR=$(DOC_SOURCE_DIR)/slideshow
|
|
OPEN_RESOURCE=bash -c 'open $$0 || xdg-open $$0'
|
|
SLIDESHOW_TO_PDF?=bash -c 'docker run --rm -v `pwd`:/cwd astefanutti/decktape /cwd/$$0 /cwd/`dirname $$0`/`basename -s .html $$0`.pdf'
|
|
YARN := $(shell command -v yarn 2> /dev/null)
|
|
YARN_INSTALL_OPTS=--network-timeout 300000 --check-files
|
|
CWL_TARGETS := test/functional/tools/cwl_tools/v1.0/conformance_tests.yaml \
|
|
test/functional/tools/cwl_tools/v1.1/conformance_tests.yaml \
|
|
test/functional/tools/cwl_tools/v1.2/conformance_tests.yaml \
|
|
lib/galaxy_test/api/cwl/test_cwl_conformance_v1_0.py \
|
|
lib/galaxy_test/api/cwl/test_cwl_conformance_v1_1.py \
|
|
lib/galaxy_test/api/cwl/test_cwl_conformance_v1_2.py
|
|
|
|
all: help
|
|
@echo "This makefile is used for building Galaxy's JS client, documentation, and drive the release process. A sensible all target is not implemented."
|
|
|
|
docs: ## Generate HTML documentation.
|
|
# Run following commands to setup the Python portion of the requirements:
|
|
# $ ./scripts/common_startup.sh
|
|
# $ . .venv/bin/activate
|
|
# $ pip install -r lib/galaxy/dependencies/dev-requirements.txt
|
|
$(IN_VENV) $(MAKE) -C doc clean
|
|
$(IN_VENV) $(MAKE) -C doc html
|
|
|
|
docs-develop: ## Fast doc generation and more warnings (for development)
|
|
$(IN_VENV) GALAXY_DOCS_SKIP_VIEW_CODE=1 SPHINXOPTS='-j 4' $(MAKE) -C doc html
|
|
|
|
setup-venv:
|
|
if [ ! -f $(VENV)/bin/activate ]; then bash scripts/common_startup.sh --dev-wheels; fi
|
|
|
|
list-dependency-updates: setup-venv
|
|
$(IN_VENV) pip list --outdated --format=columns
|
|
|
|
docs-slides-ready:
|
|
test -f plantuml.jar || wget http://jaist.dl.sourceforge.net/project/plantuml/plantuml.jar
|
|
java -jar plantuml.jar -c $(DOC_SOURCE_DIR)/slideshow/architecture/images/plantuml_options.txt -tsvg $(SLIDESHOW_DIR)/architecture/images/ *.plantuml.txt
|
|
$(IN_VENV) python scripts/slideshow/build_slideshow.py 'Galaxy Architecture' $(SLIDESHOW_DIR)/architecture/galaxy_architecture.md
|
|
|
|
docs-slides-export: docs-slides-ready
|
|
$(SLIDESHOW_TO_PDF) $(SLIDESHOW_DIR)/galaxy_architecture/galaxy_architecture.html
|
|
|
|
_open-docs:
|
|
$(OPEN_RESOURCE) $(DOCS_DIR)/_build/html/index.html
|
|
|
|
open-docs: docs _open-docs ## generate Sphinx HTML documentation and open in browser
|
|
|
|
open-project: ## open project on github
|
|
$(OPEN_RESOURCE) $(PROJECT_URL)
|
|
|
|
uwsgi-rebuild-validation: ## rebuild uwsgi_config.yml kwalify schema against latest uwsgi master.
|
|
$(CONFIG_MANAGE) build_uwsgi_yaml
|
|
|
|
tool-shed-config-validate: ## validate tool shed YAML configuration file
|
|
$(CONFIG_MANAGE) validate tool_shed
|
|
|
|
tool-shed-config-lint: ## lint tool shed YAML configuration file
|
|
$(CONFIG_MANAGE) lint tool_shed
|
|
|
|
tool-shed-config-convert-dry-run: ## convert old style tool shed ini to yaml (dry run)
|
|
$(CONFIG_MANAGE) convert tool_shed --dry-run
|
|
|
|
tool-shed-config-convert: ## convert old style tool shed ini to yaml
|
|
$(CONFIG_MANAGE) convert tool_shed
|
|
|
|
reports-config-validate: ## validate reports YAML configuration file
|
|
$(CONFIG_MANAGE) validate reports
|
|
|
|
reports-config-convert-dry-run: ## convert old style reports ini to yaml (dry run)
|
|
$(CONFIG_MANAGE) convert reports --dry-run
|
|
|
|
reports-config-convert: ## convert old style reports ini to yaml
|
|
$(CONFIG_MANAGE) convert reports
|
|
|
|
reports-config-lint: ## lint reports YAML configuration file
|
|
$(CONFIG_MANAGE) lint reports
|
|
|
|
config-validate: ## validate galaxy YAML configuration file
|
|
$(CONFIG_MANAGE) validate galaxy
|
|
|
|
config-convert-dry-run: ## convert old style galaxy ini to yaml (dry run)
|
|
$(CONFIG_MANAGE) convert galaxy --dry-run
|
|
|
|
config-convert: ## convert old style galaxy ini to yaml
|
|
$(CONFIG_MANAGE) convert galaxy
|
|
|
|
config-rebuild: ## Rebuild all sample YAML and RST files from config schema
|
|
$(CONFIG_MANAGE) build_sample_yaml galaxy --add-comments
|
|
$(CONFIG_MANAGE) build_rst galaxy > doc/source/admin/galaxy_options.rst
|
|
$(CONFIG_MANAGE) build_sample_yaml reports --add-comments
|
|
$(CONFIG_MANAGE) build_rst reports > doc/source/admin/reports_options.rst
|
|
$(CONFIG_MANAGE) build_sample_yaml tool_shed --add-comments
|
|
|
|
config-lint: ## lint galaxy YAML configuration file
|
|
$(CONFIG_MANAGE) lint galaxy
|
|
|
|
release-ensure-upstream: ## Ensure upstream branch for release commands setup
|
|
ifeq (shell git remote -v | grep $(RELEASE_UPSTREAM), )
|
|
git remote add $(RELEASE_UPSTREAM) git@github.com:galaxyproject/galaxy.git
|
|
else
|
|
@echo "Remote $(RELEASE_UPSTREAM) already exists."
|
|
endif
|
|
|
|
release-merge-stable-to-next: release-ensure-upstream ## Merge last release into dev
|
|
git fetch $(RELEASE_UPSTREAM) && git checkout dev && git merge --ff-only $(RELEASE_UPSTREAM)/dev && git merge $(RELEASE_UPSTREAM)/$(RELEASE_PREVIOUS)
|
|
|
|
release-push-dev: release-ensure-upstream # Push local dev branch upstream
|
|
git push $(RELEASE_UPSTREAM) dev
|
|
|
|
release-issue: ## Create release issue on github
|
|
$(IN_VENV) python scripts/bootstrap_history.py --create-release-issue $(RELEASE_CURR)
|
|
|
|
release-check-metadata: ## check github PR metadata for target release
|
|
$(IN_VENV) python scripts/bootstrap_history.py --check-release $(RELEASE_CURR)
|
|
|
|
release-check-blocking-issues: ## Check github for release blocking issues
|
|
$(IN_VENV) python scripts/bootstrap_history.py --check-blocking-issues $(RELEASE_CURR)
|
|
|
|
release-check-blocking-prs: ## Check github for release blocking PRs
|
|
$(IN_VENV) python scripts/bootstrap_history.py --check-blocking-prs $(RELEASE_CURR)
|
|
|
|
release-bootstrap-history: ## bootstrap history for a new release
|
|
$(IN_VENV) python scripts/bootstrap_history.py --release $(RELEASE_CURR)
|
|
|
|
update-lint-requirements:
|
|
./lib/galaxy/dependencies/update_lint_requirements.sh
|
|
|
|
update-dependencies: update-lint-requirements ## update pinned and dev dependencies
|
|
$(IN_VENV) ./lib/galaxy/dependencies/update.sh
|
|
|
|
$(CWL_TARGETS):
|
|
./scripts/update_cwl_conformance_tests.sh
|
|
|
|
generate-cwl-conformance-tests: $(CWL_TARGETS) ## Initialise CWL conformance tests
|
|
|
|
clean-cwl-conformance-tests: # Clean CWL conformance tests
|
|
for f in $(CWL_TARGETS); do \
|
|
if [ $$(basename "$$f") = conformance_tests.yaml ]; then \
|
|
rm -rf $$(dirname "$$f"); \
|
|
else \
|
|
rm -f "$$f"; \
|
|
fi \
|
|
done
|
|
|
|
update-cwl-conformance-tests: ## update CWL conformance tests
|
|
$(MAKE) clean-cwl-conformance-tests
|
|
$(MAKE) generate-cwl-conformance-tests
|
|
|
|
node-deps: ## Install NodeJS dependencies.
|
|
ifndef YARN
|
|
@echo "Could not find yarn, which is required to build the Galaxy client.\nTo install yarn, please visit \033[0;34mhttps://yarnpkg.com/en/docs/install\033[0m for instructions, and package information for all platforms.\n"
|
|
false;
|
|
else
|
|
cd client && yarn install $(YARN_INSTALL_OPTS)
|
|
endif
|
|
|
|
|
|
client: node-deps ## Rebuild client-side artifacts for local development.
|
|
cd client && yarn run build
|
|
|
|
client-production: node-deps ## Rebuild client-side artifacts for a production deployment without sourcemaps.
|
|
cd client && yarn run build-production
|
|
|
|
client-production-maps: node-deps ## Rebuild client-side artifacts for a production deployment with sourcemaps.
|
|
cd client && yarn run build-production-maps
|
|
|
|
client-format: node-deps ## Reformat client code
|
|
cd client && yarn run prettier
|
|
|
|
client-watch: node-deps ## A useful target for parallel development building. See also client-dev-server.
|
|
cd client && yarn run watch
|
|
|
|
client-dev-server: node-deps ## Starts a webpack dev server for client development (HMR enabled)
|
|
cd client && yarn run serve
|
|
|
|
client-test: node-deps ## Run JS unit tests
|
|
cd client && yarn run test
|
|
|
|
client-eslint: node-deps # Run client linting
|
|
cd client && yarn run eslint
|
|
|
|
client-format-check: node-deps # Run client formatting check
|
|
cd client && yarn run prettier-check
|
|
|
|
client-lint: client-eslint client-format-check ## ES lint and check format of client
|
|
|
|
client-test-watch: client ## Watch and run all client unit tests on changes
|
|
cd client && yarn run jest-watch
|
|
|
|
serve-selenium-notebooks: ## Serve testing notebooks for Jupyter
|
|
cd lib && export PYTHONPATH=`pwd`; jupyter notebook --notebook-dir=galaxy_test/selenium/jupyter
|
|
|
|
# Release Targets
|
|
release-create-rc: ## Create a release-candidate branch or new release-candidate version
|
|
$(IN_VENV) ./scripts/release.sh -c
|
|
|
|
release-create: ## Create a release branch
|
|
$(IN_VENV) ./scripts/release.sh
|
|
|
|
release-create-point: release-create ## Create a point release
|
|
|
|
.PHONY: help
|
|
|
|
help:
|
|
@egrep '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|