about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNguyễn Gia Phong <cnx@loang.net>2025-05-26 23:35:27 +0900
committerNguyễn Gia Phong <cnx@loang.net>2025-05-26 23:35:27 +0900
commit13ae3c598a64086bb548e953878785c84b27cd5a (patch)
tree19ed11df632ea2338070589107a08c4c7606ff17
parent83fc0b5427e1c43ed1f4391ec6cf6da96aac64a9 (diff)
downloadscadere-13ae3c598a64086bb548e953878785c84b27cd5a.tar.gz
Define dev environment
-rw-r--r--README.md13
-rw-r--r--pyproject.toml3
2 files changed, 12 insertions, 4 deletions
diff --git a/README.md b/README.md
index 9fa6de9..b7ff783 100644
--- a/README.md
+++ b/README.md
@@ -38,17 +38,20 @@ Options:
 
 ## Hacking
 
-Unit testing is done with [Hypothesis] and [pytest].  Since scadere
-does not depend on any Python package, testing can be safely done in-tree:
+Unit testing is done with [pytest], [pytest-asyncio] and [Hypothesis].
+Since scadere does not depend on any Python package,
+it is safe to test in-tree:
 
     PYTHONPATH=src pytest
 
 ## Contributing
 
-Please make sure that patches maintain the full branch [coverage]:
+Please make sure that patches maintain the full branch [coverage]
+and the [hobgoblins][flake8] are happy:
 
     PYTHONPATH=src coverage run
     coverage report
+    flake8
 
 Patches should be sent to [chung@loa.loang.net][loang mailing list]
 using [`git send-email`][git send-email], with the following configuration:
@@ -65,9 +68,11 @@ under the terms of the GNU [Affero General Public License][agplv3] as
 published by the Free Software Foundation, either version 3 of the License,
 or (at your option) any later version.
 
-[Hypothesis]: https://hypothesis.rtfd.io
 [pytest]: https://docs.pytest.org
+[pytest-asyncio]: https://pytest-asyncio.rtfd.io
+[Hypothesis]: https://hypothesis.rtfd.io
 [coverage]: https://coverage.rtfd.io
+[flake8]: https://flake8.pycqa.org
 [loang mailing list]: https://loa.loang.net/chung
 [git send-email]: https://git-send-email.io
 [agplv3]: https://www.gnu.org/licenses/agpl-3.0.html
diff --git a/pyproject.toml b/pyproject.toml
index 244eba7..2c839b0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -24,6 +24,9 @@ dynamic = [ 'version' ]
 urls = { Source = 'https://trong.loang.net/scadere' }
 scripts = { scadere = 'scadere.__main__:main' }
 
+[project.optional-dependencies]
+dev = [ 'pytest', 'pytest-asyncio', 'hypothesis', 'coverage', 'flake8' ]
+
 [tool.pytest.ini_options]
 asyncio_mode = 'auto'
 asyncio_default_fixture_loop_scope = 'function'