mirror of
https://github.com/django-components/django-components.git
synced 2025-07-07 17:34:59 +00:00

* feat: add benchmarking dashboard, CI hook on PR, and store lifetime results * refactor: change python env to 3.13 in benchmarks * refactor: add verbosity, use 3.11 for benchmarking * fix: OSError: [Errno 7] Argument list too long * refactor: add debug statements * refactor: remove extraneous -e * refactor: fix tests and linter errors * fix: track main package in coverage * refactor: fix test coverage testing * refactor: fix repo owner name in benchmark on pushing comment * refactor: add asv monkeypatch to docs workflow * refactor: temporarily allow building docs in forks * refactor: use py 3.13 for benchmarking * refactor: run only a single benchmark for PRs to speed them up * refactor: install asv in the docs build workflow * refactor: use hatch docs env to generate benhcmarks in docs CI * refactor: more trying * refactor: move tests * Add benchmark results for 0.137 * Trigger Build * Add benchmark results for 0.138 * refactor: set constant machine name when benchmarking * Add benchmark results for 0.139 * refactor: fix issue with paths too long * Add benchmark results for 0.140 * docs: update comment * refactor: remove test benchmarking data * refactor: fix comment * refactor: allow the benchmark workflow to write to PRs * refactor: use personal access token to set up the PR benchmark bot * refactor: split the benchmark PR flow into two to make it work with PRs from forks * refactor: update deprecated actions/upload-artifact@v3 to v4 * refactor: fix missing directory in benchmarking workflow * refactor: fix triggering of second workflow * refactor: fix workflow finally? * docs: add comments to cut-offs and direct people to benchmarks PR --------- Co-authored-by: github-actions <github-actions@github.com>
210 lines
8.7 KiB
JSON
210 lines
8.7 KiB
JSON
{
|
|
// The version of the config file format. Do not change, unless
|
|
// you know what you are doing
|
|
"version": 1,
|
|
|
|
// The name of the project being benchmarked
|
|
"project": "django-components",
|
|
|
|
// The project's homepage
|
|
// "project_url": "https://django-components.github.io/django-components/",
|
|
"project_url": "/django-components/", // Relative path, since benchmarks are nested under the docs site
|
|
|
|
// The URL or local path of the source code repository for the
|
|
// project being benchmarked
|
|
"repo": ".",
|
|
|
|
// The Python project's subdirectory in your repo. If missing or
|
|
// the empty string, the project is assumed to be located at the root
|
|
// of the repository.
|
|
// "repo_subdir": "",
|
|
|
|
// Customizable commands for building the project.
|
|
// See asv.conf.json documentation.
|
|
// To build the package using pyproject.toml (PEP518), uncomment the following lines
|
|
// "build_command": [
|
|
// "python -m pip install build",
|
|
// "python -m build",
|
|
// "python -mpip wheel -w {build_cache_dir} {build_dir}"
|
|
// ],
|
|
// To build the package using setuptools and a setup.py file, uncomment the following lines
|
|
// "build_command": [
|
|
// "python setup.py build",
|
|
// "python -mpip wheel -w {build_cache_dir} {build_dir}"
|
|
// ],
|
|
|
|
// Customizable commands for installing and uninstalling the project.
|
|
// See asv.conf.json documentation.
|
|
// "install_command": ["in-dir={env_dir} python -mpip install {wheel_file}"],
|
|
// "uninstall_command": ["return-code=any python -mpip uninstall -y {project}"],
|
|
"install_command": ["in-dir={env_dir} python -mpip install ./project"],
|
|
|
|
// List of branches to benchmark. If not provided, defaults to "main"
|
|
// (for git) or "default" (for mercurial).
|
|
// "branches": ["main"], // for git
|
|
// "branches": ["default"], // for mercurial
|
|
"branches": [
|
|
"master"
|
|
],
|
|
|
|
// The DVCS being used. If not set, it will be automatically
|
|
// determined from "repo" by looking at the protocol in the URL
|
|
// (if remote), or by looking for special directories, such as
|
|
// ".git" (if local).
|
|
// "dvcs": "git",
|
|
|
|
// The tool to use to create environments. May be "conda",
|
|
// "virtualenv", "mamba" (above 3.8)
|
|
// or other value depending on the plugins in use.
|
|
// If missing or the empty string, the tool will be automatically
|
|
// determined by looking for tools on the PATH environment
|
|
// variable.
|
|
"environment_type": "virtualenv",
|
|
|
|
// timeout in seconds for installing any dependencies in environment
|
|
// defaults to 10 min
|
|
//"install_timeout": 600,
|
|
|
|
// the base URL to show a commit for the project.
|
|
// "show_commit_url": "http://github.com/owner/project/commit/",
|
|
|
|
// The Pythons you'd like to test against. If not provided, defaults
|
|
// to the current version of Python used to run `asv`.
|
|
"pythons": [
|
|
"3.13"
|
|
],
|
|
|
|
// The list of conda channel names to be searched for benchmark
|
|
// dependency packages in the specified order
|
|
// "conda_channels": ["conda-forge", "defaults"],
|
|
|
|
// A conda environment file that is used for environment creation.
|
|
// "conda_environment_file": "environment.yml",
|
|
|
|
// The matrix of dependencies to test. Each key of the "req"
|
|
// requirements dictionary is the name of a package (in PyPI) and
|
|
// the values are version numbers. An empty list or empty string
|
|
// indicates to just test against the default (latest)
|
|
// version. null indicates that the package is to not be
|
|
// installed. If the package to be tested is only available from
|
|
// PyPi, and the 'environment_type' is conda, then you can preface
|
|
// the package name by 'pip+', and the package will be installed
|
|
// via pip (with all the conda available packages installed first,
|
|
// followed by the pip installed packages).
|
|
//
|
|
// The ``@env`` and ``@env_nobuild`` keys contain the matrix of
|
|
// environment variables to pass to build and benchmark commands.
|
|
// An environment will be created for every combination of the
|
|
// cartesian product of the "@env" variables in this matrix.
|
|
// Variables in "@env_nobuild" will be passed to every environment
|
|
// during the benchmark phase, but will not trigger creation of
|
|
// new environments. A value of ``null`` means that the variable
|
|
// will not be set for the current combination.
|
|
//
|
|
// "matrix": {
|
|
// "req": {
|
|
// "numpy": ["1.6", "1.7"],
|
|
// "six": ["", null], // test with and without six installed
|
|
// "pip+emcee": [""] // emcee is only available for install with pip.
|
|
// },
|
|
// "env": {"ENV_VAR_1": ["val1", "val2"]},
|
|
// "env_nobuild": {"ENV_VAR_2": ["val3", null]},
|
|
// },
|
|
"matrix": {
|
|
"req": {
|
|
"django": [
|
|
"5.1"
|
|
],
|
|
"djc-core-html-parser": [""] // Empty string means the latest version
|
|
}
|
|
},
|
|
|
|
// Combinations of libraries/python versions can be excluded/included
|
|
// from the set to test. Each entry is a dictionary containing additional
|
|
// key-value pairs to include/exclude.
|
|
//
|
|
// An exclude entry excludes entries where all values match. The
|
|
// values are regexps that should match the whole string.
|
|
//
|
|
// An include entry adds an environment. Only the packages listed
|
|
// are installed. The 'python' key is required. The exclude rules
|
|
// do not apply to includes.
|
|
//
|
|
// In addition to package names, the following keys are available:
|
|
//
|
|
// - python
|
|
// Python version, as in the *pythons* variable above.
|
|
// - environment_type
|
|
// Environment type, as above.
|
|
// - sys_platform
|
|
// Platform, as in sys.platform. Possible values for the common
|
|
// cases: 'linux2', 'win32', 'cygwin', 'darwin'.
|
|
// - req
|
|
// Required packages
|
|
// - env
|
|
// Environment variables
|
|
// - env_nobuild
|
|
// Non-build environment variables
|
|
//
|
|
// "exclude": [
|
|
// {"python": "3.2", "sys_platform": "win32"}, // skip py3.2 on windows
|
|
// {"environment_type": "conda", "req": {"six": null}}, // don't run without six on conda
|
|
// {"env": {"ENV_VAR_1": "val2"}}, // skip val2 for ENV_VAR_1
|
|
// ],
|
|
//
|
|
// "include": [
|
|
// // additional env for python3.12
|
|
// {"python": "3.12", "req": {"numpy": "1.26"}, "env_nobuild": {"FOO": "123"}},
|
|
// // additional env if run on windows+conda
|
|
// {"platform": "win32", "environment_type": "conda", "python": "3.12", "req": {"libpython": ""}},
|
|
// ],
|
|
|
|
// The directory (relative to the current directory) that benchmarks are
|
|
// stored in. If not provided, defaults to "benchmarks"
|
|
"benchmark_dir": "benchmarks",
|
|
|
|
// The directory (relative to the current directory) to cache the Python
|
|
// environments in. If not provided, defaults to "env"
|
|
"env_dir": ".asv/env",
|
|
|
|
// The directory (relative to the current directory) that raw benchmark
|
|
// results are stored in. If not provided, defaults to "results".
|
|
"results_dir": ".asv/results",
|
|
|
|
// The directory (relative to the current directory) that the html tree
|
|
// should be written to. If not provided, defaults to "html".
|
|
// "html_dir": ".asv/html",
|
|
"html_dir": "docs/benchmarks", // # TODO
|
|
|
|
// The number of characters to retain in the commit hashes.
|
|
// "hash_length": 8,
|
|
|
|
// `asv` will cache results of the recent builds in each
|
|
// environment, making them faster to install next time. This is
|
|
// the number of builds to keep, per environment.
|
|
// "build_cache_size": 2,
|
|
|
|
// The commits after which the regression search in `asv publish`
|
|
// should start looking for regressions. Dictionary whose keys are
|
|
// regexps matching to benchmark names, and values corresponding to
|
|
// the commit (exclusive) after which to start looking for
|
|
// regressions. The default is to start from the first commit
|
|
// with results. If the commit is `null`, regression detection is
|
|
// skipped for the matching benchmark.
|
|
//
|
|
// "regressions_first_commits": {
|
|
// "some_benchmark": "352cdf", // Consider regressions only after this commit
|
|
// "another_benchmark": null, // Skip regression detection altogether
|
|
// },
|
|
|
|
// The thresholds for relative change in results, after which `asv
|
|
// publish` starts reporting regressions. Dictionary of the same
|
|
// form as in ``regressions_first_commits``, with values
|
|
// indicating the thresholds. If multiple entries match, the
|
|
// maximum is taken. If no entry matches, the default is 5%.
|
|
//
|
|
// "regressions_thresholds": {
|
|
// "some_benchmark": 0.01, // Threshold of 1%
|
|
// "another_benchmark": 0.5, // Threshold of 50%
|
|
// },
|
|
}
|