Lethbridge

Latest version: v0.2.3

Safety actively analyzes 681775 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

0.2.3

Documentation

* docs: remove extraneous code tag ([`2855c49`](https://github.com/irtnog/lethbridge/commit/2855c49e1896b23973577bef63efac75fd0e3658))

* docs: re-point the build status shield at the new CI workflow ([`cb1a53a`](https://github.com/irtnog/lethbridge/commit/cb1a53a7368e38240723efaaab831510d9684ab9))

Fix

* fix(packaging): add missing project description ([`362cefc`](https://github.com/irtnog/lethbridge/commit/362cefc4cecb665b1e557c78419442f7bc77f550))

0.2.2

Build

* build: add missing apt-get verb ([`d71ca55`](https://github.com/irtnog/lethbridge/commit/d71ca557ed6c90b7fa27bc820fd7eaad64c5ebc4))

* build: simulate a database DROP when restoring SQLite backups ([`7e3f1c5`](https://github.com/irtnog/lethbridge/commit/7e3f1c5dfe515476b1945a803c553f180198c7fc))

* build: only back up the `lethbridge` database, same as the migration test fixtures ([`42f4952`](https://github.com/irtnog/lethbridge/commit/42f49522f54f83ae5faaf090cad22693c2fd04cc))

* build: run `docker exec` in interactive mode so I/O redirection works ([`fed7808`](https://github.com/irtnog/lethbridge/commit/fed7808c7d833931bb55738dfb4842e910290a37))

* build: fix indentation ([`4de9416`](https://github.com/irtnog/lethbridge/commit/4de9416c9f5219e9dee950a042e9ce94d9fa52ff))

* build: prevent virtual environment updates when running unrelated targets ([`5f872fa`](https://github.com/irtnog/lethbridge/commit/5f872faea5c4f840b8d8e38f4b213f6a90d7d291))

* build: pass arguments to pytest similar to Alembic ([`95c154e`](https://github.com/irtnog/lethbridge/commit/95c154e9e0844309c5bebe9b8c51833d2be6c215))

* build: only run migration test fixture targets if they don&39;t already exist

Migration test fixtures should be write-once since they depend on the
code base at the time they&39;re run. Changes to dependencies shouldn&39;t
regenerate them. ([`6641c80`](https://github.com/irtnog/lethbridge/commit/6641c8032c89fa3dc6de044c3f448167288fe475))

* build: generate migration test fixtures from the mock galaxy data ([`3a91cf5`](https://github.com/irtnog/lethbridge/commit/3a91cf501d257f6b6968c6b142925a4a2c693335))

* build: combine development database management with an Alembic command wrapper ([`55b6e1b`](https://github.com/irtnog/lethbridge/commit/55b6e1b404b90c44fbd16a3262e72ea14e7f61a1))

* build: sort imports in Alembic revision scripts ([`675d29f`](https://github.com/irtnog/lethbridge/commit/675d29f1160e331e47c456ddd16d029b6c9494f7))

* build: shorten/rename dependencies on psycopg2cffi compatibility target ([`ae61612`](https://github.com/irtnog/lethbridge/commit/ae6161256bd06658ff328ec9a8a5bd9758a81e61))

* build: have make manage the complete lifecycle of the development databases ([`0216751`](https://github.com/irtnog/lethbridge/commit/0216751da87deae8f2ae6c07cc9600ab5c2a0882))

* build: add a volume to the migration dev database to facilitate restores ([`2f7d7d2`](https://github.com/irtnog/lethbridge/commit/2f7d7d26fb8eae3577dad894505e447929f3ba5b))

* build: mark phony make targets to avoid inadvertent conflicts with real files/directories ([`efb71a1`](https://github.com/irtnog/lethbridge/commit/efb71a11cb3bd9016373d8728ce27837a17c26af))

* build: add bashbrew and manifest-tool to the development environment ([`e768765`](https://github.com/irtnog/lethbridge/commit/e76876557438c5130c98b25490c87244d1a8fe71))

* build: install or activate the development environment automatically in Emacs

This requires enabling
[`pyvenv-mode`](https://github.com/jorgenschaefer/pyvenv). ([`9b6eeec`](https://github.com/irtnog/lethbridge/commit/9b6eeec374dc8980cde62bf20f7a20f4a4558a6b))

Ci

* ci: merge the ci and lint workflows ([`0dda3a0`](https://github.com/irtnog/lethbridge/commit/0dda3a02e11230131deaadef57c5d70d2cbbe0af))

* ci: re-enable automated releases ([`9201d83`](https://github.com/irtnog/lethbridge/commit/9201d83133c65edbfc67f0f9676c9b87b6da1ba2))

* ci: merge test and release workflows ([`76f5b8d`](https://github.com/irtnog/lethbridge/commit/76f5b8df0d4cbafafafc1f7990335937bf984c1f))

* ci: simplify linting ([`8e22c4d`](https://github.com/irtnog/lethbridge/commit/8e22c4d5b21fa0a311223aa8265e540ac726b0d9))

Documentation

* docs: note isort&39;s behavior ([`398ff66`](https://github.com/irtnog/lethbridge/commit/398ff66f3fa67e7a6bf3a2fb5b582a8e509d9adc))

* docs: emphasize the Alembic command wrapper&39;s dependence on running/existing databases ([`a36f20a`](https://github.com/irtnog/lethbridge/commit/a36f20ab837c6d1e5776ea777fa2047c12570195))

* docs: update description ([`d16b6ec`](https://github.com/irtnog/lethbridge/commit/d16b6ecac2cfe9ef8931dd935c0834c48a84e8a8))

* docs: require tests for all code changes ([`ff76cd0`](https://github.com/irtnog/lethbridge/commit/ff76cd0542ef45aef807959f95ba326bcc7e6664))

* docs: include Docker in the project dependencies ([`5935013`](https://github.com/irtnog/lethbridge/commit/593501307999fea3441692618249ae8883460c17))

* docs: add parenthetical noting the same command also handles updates ([`4b2407f`](https://github.com/irtnog/lethbridge/commit/4b2407f860b7932a028e429ae91dd6d40edcbbd0))

* docs: note that the shorter test suite restricts itself to one database engine ([`a6f1778`](https://github.com/irtnog/lethbridge/commit/a6f177848cf139628d90c6d3da33e11d6d725bd2))

* docs: replace parenthetical with relative clause ([`1919234`](https://github.com/irtnog/lethbridge/commit/191923408f58aa2feb19637176baf709810b77cc))

* docs: show how to activate the virtual environment ([`81aaa35`](https://github.com/irtnog/lethbridge/commit/81aaa35460d9e89e0b09645fdd0f0f762c0cec82))

* docs: mention other make targets sooner ([`fa5989d`](https://github.com/irtnog/lethbridge/commit/fa5989d76d4108c072b5460f9edbea6e6c113a00))

* docs: emphasize changes covering multiple scopes, not just multiple packages ([`f42710f`](https://github.com/irtnog/lethbridge/commit/f42710f16b1e60cabd29ffd11aedb9361bf4642f))

* docs: add Git commit message style guidance missing from Conventional Commits 1.0.0

This is derived in part from the [Angular Commit Message
Format](https://github.com/angular/angular/blob/main/CONTRIBUTING.md#commit)
specification. ([`4ba18d6`](https://github.com/irtnog/lethbridge/commit/4ba18d6a0386df408fd4119a0b63c5594f900c58))

* docs: explain how to use the new Alembic wrapper and migration test fixture generator ([`705c2a2`](https://github.com/irtnog/lethbridge/commit/705c2a22b60a9c413e02936e48d1e28d35738bab))

Fix

* fix(migrations): make ThargoidWar fields optional ([`fa5d008`](https://github.com/irtnog/lethbridge/commit/fa5d008f498b2653ae22af27c87a268a1d882c29))

* fix(migrations): switch to batch migrations

This is required if we want to continue supporting SQLite, which
imposes severe limits on `ALTER` statements. See also [Running
“Batch” Migrations for SQLite and Other
Databases](https://alembic.sqlalchemy.org/en/latest/batch.html). ([`98ebf49`](https://github.com/irtnog/lethbridge/commit/98ebf4943c3f0218a898eb9bd487d3c184cd3448))

* fix(cli): disable Rich

This works around bugs in Typer or Rich, e.g., tiangolo/typer578,
tiangolo/typer622, and tiangolo/typer646. ([`023aa33`](https://github.com/irtnog/lethbridge/commit/023aa332002c749e1adc6be49043501d29475577))

Refactor

* refactor(migrations): shorten revision script names ([`6a75da3`](https://github.com/irtnog/lethbridge/commit/6a75da39b0e44401150bc59af4b143aea8197ac1))

Test

* test(cli): check database migrations against mock galaxy data ([`42943a6`](https://github.com/irtnog/lethbridge/commit/42943a6c51b1a5d6461429d06c8ada6c13dfa1fb))

* test(cli): use the mock galaxy data in Spansh import integration testing

This is the first place where the data model and deserialization
schemas are checked against the Alembic-managed database schema as
opposed to the SQLAlchemy ORM version. ([`fb3a806`](https://github.com/irtnog/lethbridge/commit/fb3a806cf587b81def5a31da6050a666464d7a39))

* test(database): verify that null Thargoid War states work with the built-in schema ([`12bd1e6`](https://github.com/irtnog/lethbridge/commit/12bd1e6fdd061b162ab739e4ac2c06ff4033c0ea))

* test(database): add type hints to enable IDE tab completion ([`42d7f27`](https://github.com/irtnog/lethbridge/commit/42d7f276f722450fc5eaf2da9afa4af2e1558963))

0.2.1

Build

* build: replace aliases in target dependency lists with the actual artifacts in question

Otherwise, make will re-run targets unnecessarily. ([`656ccfd`](https://github.com/irtnog/lethbridge/commit/656ccfd3283ef5f047781d47ddb9573d7871f030))

* build: add alias for venv creation ([`5a91cf2`](https://github.com/irtnog/lethbridge/commit/5a91cf21ddaa6ff00c2c298df8c083395df5b691))

* build: sort imports before saving in Emacs ([`7ebf49a`](https://github.com/irtnog/lethbridge/commit/7ebf49a4763137216a5f3e220a56dc96991002a4))

* build(packaging): force Twine to parse the project README as Markdown, not reStructuredText

All the documentation says the content type gets detected
automatically, yet `twine check` as of Twine 4.0.2 fails with the
error &34;\`long_description\` has syntax errors in markup and would not
be rendered on PyPI&34;. ([`e016186`](https://github.com/irtnog/lethbridge/commit/e01618617d8c2e27ad5468cbc5d02ed88bae65b5))

Ci

* ci: grant python-semantic-release permission to update the GitHub repo ([`00e99bd`](https://github.com/irtnog/lethbridge/commit/00e99bdd9094056847d12ce1f02772cdd7d9b335))

* ci: adjust publishing order to do TestPyPI before PyPI ([`2140c03`](https://github.com/irtnog/lethbridge/commit/2140c03660994ae83faca7816f2224cce276c08c))

* ci: limit test coverage reporting to this package ([`b60692b`](https://github.com/irtnog/lethbridge/commit/b60692b0426ffe98022762a97c16fd8a09982223))

* ci: cache the pytest report log instead of an empty file ([`ef8c160`](https://github.com/irtnog/lethbridge/commit/ef8c160a964224f46122f48996e9bd0bd4601dd2))

* ci: calculate the source hash based on file contents only

The previous version mistakenly included file system metadata in the
hash calculation. ([`6346270`](https://github.com/irtnog/lethbridge/commit/6346270c017b72b23f2821588bc7b52691865ef0))

* ci: reduce workflow execution time by caching dependencies, the working directory, and test results ([`60c1c6c`](https://github.com/irtnog/lethbridge/commit/60c1c6cf561eb5b820578aa9d82eaab20b91671a))

* ci: publish packages to PyPI and GitHub Releases ([`9136a28`](https://github.com/irtnog/lethbridge/commit/9136a28a36d86b35a91a5a4f49c6a75afcf45a3c))

* ci(release): publish package distributions to TestPyPI ([`93f50f4`](https://github.com/irtnog/lethbridge/commit/93f50f42d8ee9f0fab5b2a28bda3c3eb7c24bbb1))

* ci(release): cache the release and build jobs&39; outputs ([`00f4b3e`](https://github.com/irtnog/lethbridge/commit/00f4b3e39cd492c81c15ad1cc24544873027d4be))

* ci(release): build distributions in an isolated, unprivileged environment

This stops privilege escalation attacks that work by injecting
malicious scripts into the build environment. ([`9320a3b`](https://github.com/irtnog/lethbridge/commit/9320a3b4c7639a0ec6c14cd0cdab02e1088737ca))

Documentation

* docs: generalize some of the language used in the developer guidance ([`3c9b71b`](https://github.com/irtnog/lethbridge/commit/3c9b71b77ef04d47aadcc2b9caa2b0521c6b5c76))

* docs: add a build status shield ([`c4ae6e2`](https://github.com/irtnog/lethbridge/commit/c4ae6e27e3c0ff235e6bd0dbdd314b335af36947))

* docs: move developer guidance to a separate document ([`d1dc86e`](https://github.com/irtnog/lethbridge/commit/d1dc86e830f7fd6c293de5dc17fd68d9f91cca85))

* docs: remove preliminary content from the project&39;s long description ([`25b5b04`](https://github.com/irtnog/lethbridge/commit/25b5b04018c5fdf52f4465e47cc82366da909148))

Fix

* fix(lethbridge): migrate from pkg_resources to importlib.metadata

Cf. https://setuptools.pypa.io/en/latest/pkg_resources.html. ([`df6932e`](https://github.com/irtnog/lethbridge/commit/df6932ec7c6e3bd536293edb48b8fb1bcb7fc61c))

0.2.0

Build

* build(dev-infra): avoid removing packages other than the ones installed here ([`cfcf0ae`](https://github.com/irtnog/lethbridge/commit/cfcf0ae53a79025eb0aaf57fead4e53069abee29))

* build(dev-infra): add pre-commit targets plus some convenience aliases ([`7b4b09d`](https://github.com/irtnog/lethbridge/commit/7b4b09d3a4aa8fc60b8e996873e4170c35ce168d))

* build(dev-infra): update pre-commit hooks ([`178c7e6`](https://github.com/irtnog/lethbridge/commit/178c7e62dc0623b23eb13590b77320ee4cd96895))

* build(packaging): install pre-commit in the dev environment ([`8cc0cd2`](https://github.com/irtnog/lethbridge/commit/8cc0cd2a94bd0070fc0542ab089bd32f4b036213))

* build(dev-infra): add a quick smoke test target ([`e505b2b`](https://github.com/irtnog/lethbridge/commit/e505b2b0b9d09f0dff7d6a67ad87ba28b2aea0f1))

* build(packaging): add elpy RPC dependencies to the dev environment ([`cd8512b`](https://github.com/irtnog/lethbridge/commit/cd8512be8996142daf45a00022793e02d37e3182))

* build(dev-infra): add build dependency installation/removal targets ([`368e7a9`](https://github.com/irtnog/lethbridge/commit/368e7a93f044157cc31669e427dfc5f137a151fa))

* build(dev-infra): launch databases for developing Alembic migrations ([`14754e1`](https://github.com/irtnog/lethbridge/commit/14754e1f1191874a0c00a915dc256d4b85fa5f20))

* build(dev-infra): add targets for intermediate container stages, Docker cleanup ([`a36ea7f`](https://github.com/irtnog/lethbridge/commit/a36ea7fb1764dff8daa03079dcbbf73088d26ccc))

* build(dev-infra): simplify Python version check ([`a9ad65d`](https://github.com/irtnog/lethbridge/commit/a9ad65d85fa16329409d0d6dd15656cfa7cdb58b))

* build(dev-infra): consolidate make target aliases into one rule ([`e11b9c8`](https://github.com/irtnog/lethbridge/commit/e11b9c8713a6ae48320a49f60514b9937b25c162))

* build(dev-infra): work around outdated versions of pip, setuptools on older operating systems ([`0ae30ba`](https://github.com/irtnog/lethbridge/commit/0ae30bacbfe950a6a59e6ce6bd2aa7f8b404aff0))

* build(dev-infra): detect the active Python version

This affects some of the target pathnames. ([`77e18e4`](https://github.com/irtnog/lethbridge/commit/77e18e472594bad3fd2544478bae1cbec692da8f))

* build(dev-infra): install psycopg2cffi in the local dev environment

This matches the Docker container image build process. ([`4cc5ef8`](https://github.com/irtnog/lethbridge/commit/4cc5ef8eb1b0a3586e7b6370b04472ddc6e84cc0))

* build(dev-infra): define some useful shortcuts using make ([`faa7f4b`](https://github.com/irtnog/lethbridge/commit/faa7f4bc784d6955b0ac085e849c6af0a3090493))

* build: rename action to better reflect its purpose ([`848ce7a`](https://github.com/irtnog/lethbridge/commit/848ce7a793bb737f7a3306944d2c50445b7bf149))

Ci

* ci(release): adopt semantic versioning and automate releases ([`ea38049`](https://github.com/irtnog/lethbridge/commit/ea380492adc74a9ec44ba42d4baae7625a4cdc1b))

* ci(test): validate the code against supported Python versions after linting ([`2a9be11`](https://github.com/irtnog/lethbridge/commit/2a9be117736b54ba05b413fe5d3621dd497f2dd1))

* ci(lint): simplify further by reusing the pre-commit hook ([`3ea9bdc`](https://github.com/irtnog/lethbridge/commit/3ea9bdc4a5fd6bf67643acb62b1d039e60c31514))

* ci(lint): simplify code style checks by relying on runner defaults ([`3efe833`](https://github.com/irtnog/lethbridge/commit/3efe833e1e7c365b690085cb62849ce33940903d))

* ci(lint): document workflow triggers ([`d54a8a0`](https://github.com/irtnog/lethbridge/commit/d54a8a0629102714e53b7a0d13d9dd5d100505e0))

Documentation

* docs(schemas): explain why &34;Object of type... not in session&34; can be ignored ([`4254226`](https://github.com/irtnog/lethbridge/commit/4254226dad179d3327139bc11034066ffdc88a88))

* docs(schemas): explain the purpose of the stack in the Spansh schema test code ([`c6a6134`](https://github.com/irtnog/lethbridge/commit/c6a6134856ad7ef6349f30022746fb35e97945a0))

* docs(dev-infra): re-arrange comments and add vertical whitespace to improve section separation ([`f171ede`](https://github.com/irtnog/lethbridge/commit/f171edeca3d22799654045735ac2692fed229657))

* docs(packaging): add reference to PyPI classifiers list ([`d231ff6`](https://github.com/irtnog/lethbridge/commit/d231ff623193f922139f2875a67d26f872e15171))

* docs(dev-infra): explain what each set of make targets does ([`6246e4a`](https://github.com/irtnog/lethbridge/commit/6246e4abd4c8027f5e347a974c240de33362dc29))

* docs(docker): explain how the multi-stage build works to newcomers ([`ccce08f`](https://github.com/irtnog/lethbridge/commit/ccce08f672f6d50810ec1d1bf6686b9fd7d6a550))

* docs(docker): unhide example environment variables ([`3369da8`](https://github.com/irtnog/lethbridge/commit/3369da89ff23711acf3fa75947107eea4091ccf9))

* docs: add how to back up Docker volumes to the lessons learned ([`e477cff`](https://github.com/irtnog/lethbridge/commit/e477cff3f87455cdda31dfb748fb989a57cf62ea))

Feature

* feat(packaging): bump to pre-alpha phase ([`7e0ec7d`](https://github.com/irtnog/lethbridge/commit/7e0ec7df13fc11d3284684a856fa1fd98b27c281))

* feat(docker): check the first argument for a subcommand and act accordingly ([`320fc90`](https://github.com/irtnog/lethbridge/commit/320fc908067539ed760ad8b4e0fbd9bf839f092e))

* feat(docker): parameterize the version of Python used in the container image ([`415a070`](https://github.com/irtnog/lethbridge/commit/415a0703c0f08722bea793ff906c715ed01fb0c9))

* feat(docker): initialize or update the database at container start ([`f6de7f2`](https://github.com/irtnog/lethbridge/commit/f6de7f2922c68e05713a00981a9cd19132f73d64))

* feat(cli): implement foreground imports of Spansh data dumps ([`1de48e5`](https://github.com/irtnog/lethbridge/commit/1de48e57481495418f3864b26c94fca7be5a826e))

* feat(migrations): use Alembic to manage database schema changes ([`bf48ba8`](https://github.com/irtnog/lethbridge/commit/bf48ba8cf86981c5451ce141e5270aff6cfb9061))

Fix

* fix: remove unused imports ([`266aeb4`](https://github.com/irtnog/lethbridge/commit/266aeb47591bfbfa8079f0e9abfdc88bdcce0b5c))

* fix(database): prevent updates of all other classes using outdated data ([`37a4ef5`](https://github.com/irtnog/lethbridge/commit/37a4ef58d8c7f7a3d26141ac14de7cafcb706239))

* fix(database): prevent updates to a system from using outdated data ([`8b24f34`](https://github.com/irtnog/lethbridge/commit/8b24f34bba56ccd0fd98096b3baf2bdb76131423))

* fix(dev-infra): remove virtual env dependencies on system packages

This addresses issues with outdated packages conflicting with project
dependencies. ([`ab366e2`](https://github.com/irtnog/lethbridge/commit/ab366e224a1137884a8c5a485a1f24198a539c62))

* fix(docker): exclude Python bytecode from the container image

This improves Docker build cache management by excluding what are in
effect temporary files from the build context. ([`e706f73`](https://github.com/irtnog/lethbridge/commit/e706f7343c88c884670acceb7b60a5df826c5f0e))

* fix(docker): pass Lethbridge options specified in the container command to setup commands ([`5adcad7`](https://github.com/irtnog/lethbridge/commit/5adcad73ed3a75a268bd713c5a1b763fb6bfd03e))

* fix(cli): apply CLI logging level options to each configured logger ([`5ec4365`](https://github.com/irtnog/lethbridge/commit/5ec4365afaf35b705d8a0f42f2dc9c8b59f9f720))

* fix(database): make all Thargoid war state fields optional ([`b39ea43`](https://github.com/irtnog/lethbridge/commit/b39ea4301c49e36835c648f7815e531236682fdc))

* fix(docker): propagate the default database URI to the corresponding container environment variable ([`c1d8171`](https://github.com/irtnog/lethbridge/commit/c1d8171333e93b6cbd9552a33d0b748f40d37b94))

* fix(__main__): remove references to psycopg2cffi

This should be user-controlled. ([`281ac82`](https://github.com/irtnog/lethbridge/commit/281ac8250344032c2350d1c011e5257a0abb97b3))

* fix(cli): configure the actual root logger, not the application root ([`0a11704`](https://github.com/irtnog/lethbridge/commit/0a11704f16f49759727aff3d0d6f6d5f7eb8420d))

Refactor

* refactor: sort imports ([`73597b0`](https://github.com/irtnog/lethbridge/commit/73597b04dfa32243b6eef1cba779930e7aa53048))

* refactor(packaging): re-sort sections alphabetically ([`08e5ac2`](https://github.com/irtnog/lethbridge/commit/08e5ac2d777876904fb444603f4c13a9dbb6257e))

* refactor(database): generalize validation function and move to base class

We can re-use the same code with different decorations in sibling
classes without having to copy/paste. ([`cb51380`](https://github.com/irtnog/lethbridge/commit/cb5138070e6a8ade71a1c54fd9a1c755da331a07))

* refactor(docker): drop planned support for MySQL/MariaDB

Getting [pytest-mysql](https://github.com/ClearcodeHQ/pytest-mysql) to
work has proven too difficult at this time. ([`d7d441a`](https://github.com/irtnog/lethbridge/commit/d7d441a18c174a4937dedb593f3a324b79bdcc7b))

* refactor(database): remove unused imports ([`cb5fe6a`](https://github.com/irtnog/lethbridge/commit/cb5fe6a28a49059cc2ca6c54cf683b600480c390))

* refactor(cli): break apart long string contants ([`344e6e1`](https://github.com/irtnog/lethbridge/commit/344e6e1f54542f10d03a6a3b372e9ae1a31bbc80))

* refactor(cli): simplify submodule loading ([`bae4188`](https://github.com/irtnog/lethbridge/commit/bae4188a05b809838ff36076635d32809b81be10))

* refactor(docker): optimize the build with better cache management ([`9869a96`](https://github.com/irtnog/lethbridge/commit/9869a96a493a4c0e7dd3c5bc2d6d0066938fcba0))

* refactor(docker): switch to composite Compose files

This enables overriding configuration items like port mappings:

https://stackoverflow.com/questions/48851190/docker-compose-override-a-ports-property-instead-of-merging-it

https://mindbyte.nl/2018/04/04/overwrite-ports-in-docker-compose.html ([`c51727e`](https://github.com/irtnog/lethbridge/commit/c51727e31db84b44c4dfaffa6ade026b82d0784f))

* refactor(docker): re-arrange layers in the build environment to cleanly separate test resources ([`72ea6a2`](https://github.com/irtnog/lethbridge/commit/72ea6a25454389ccfb0d2d832755e3d4f395ace5))

* refactor(cli): switch to a declarative logging configuration ([`9522726`](https://github.com/irtnog/lethbridge/commit/9522726be9d424dcbf18839a9021c00d76ad9dc3))

Test

* test(cli): add more data to the Spansh import integration test ([`19a1209`](https://github.com/irtnog/lethbridge/commit/19a1209444310e445db8c357f87e18688da3cb2c))

* test(schema): add a smaller galaxy data fixture to speed up Spansh schema testing ([`f9d6ee2`](https://github.com/irtnog/lethbridge/commit/f9d6ee2429554f054c3ceb3aa93d6ad9dc7f153e))

* test(schema): make sure the System actually deserialized properly when getting and dumping it ([`3ede652`](https://github.com/irtnog/lethbridge/commit/3ede65263c876e7b54ed5e525b5ea2021715015b))

* test(schemas): suppress approximate match warnings ([`0913087`](https://github.com/irtnog/lethbridge/commit/09130876e37e9fa0cc74bf26ec46a07e7071912d))

* test: run CLI tests last since they&39;re more properly integration tests ([`2979650`](https://github.com/irtnog/lethbridge/commit/29796506e40e6daa6fe327aa962b77febc8c78f6))

* test(database): capture &34;approximately equal&34; warnings ([`9286334`](https://github.com/irtnog/lethbridge/commit/92863349795bcf9e8ed3a67a393a6ba8b35bd03d))

* test(database): check the station outfitting model ([`6a02351`](https://github.com/irtnog/lethbridge/commit/6a023519a83b4728f9e7cefa57ffe4ba4e65e261))

* test(database): simplify the test station ([`c296485`](https://github.com/irtnog/lethbridge/commit/c296485aa22414ca15e21223cfbda89c65bdd420))

* test(database): check the station model ([`cffec43`](https://github.com/irtnog/lethbridge/commit/cffec43689493ed63c24376d5744f577f82ee990))

* test(cli): inline function args ([`f27e947`](https://github.com/irtnog/lethbridge/commit/f27e9473cd5fa8982fee9b90b51c089c8f4a46ae))

* test: mark slow tests so they can be skipped if desired ([`a8274d9`](https://github.com/irtnog/lethbridge/commit/a8274d9b533d4b5366049c2afa9931ac6236f51d))

* test: only generate the fixture corresponding to the mock_db_uri param

Previously, this was generating both
[postgresql](https://pypi.org/project/pytest-postgresql/) and
[tmp_path](https://docs.pytest.org/en/7.1.x/how-to/tmp_path.html) for
both fixture params, when really we wanted one or the other. ([`dbc4f36`](https://github.com/irtnog/lethbridge/commit/dbc4f36f86c2b732546db76f4f4690d76fd4f582))

* test: reconfigure smoke tests to use SQLite ([`3ad2637`](https://github.com/irtnog/lethbridge/commit/3ad263705159763c0e5de5e0f036b9853101a126))

* test: run cli tests after config, database tests but before schema tests

The cli tests exercise config, database, and schema functionality, but
since their test parameters are simpler, they function like smoke
tests for the much more complex schema tests. ([`8e65569`](https://github.com/irtnog/lethbridge/commit/8e65569500bf2f98a4593d633b404ba128fe15f8))

* test(cli): verify that Spansh imports work properly ([`a53463f`](https://github.com/irtnog/lethbridge/commit/a53463fe7de882812c1c8299dbc3e13f90480a3e))

* test(cli): verify that database schema migrations work properly ([`480a80c`](https://github.com/irtnog/lethbridge/commit/480a80cfa210723941abfa9084d160c14f450e0a))

* test: make mock_config_file available for integration tests ([`7de80f0`](https://github.com/irtnog/lethbridge/commit/7de80f0d3cc80fbeb632d1c256b0e9d5e186872d))

* test: increase the scope of the mock galaxy data fixture ([`65d263e`](https://github.com/irtnog/lethbridge/commit/65d263e777f0e67e7311c1e3301ab47416d600aa))

* test: convert mock galaxy data back into Spansh format for future integration testing ([`ad7a6f3`](https://github.com/irtnog/lethbridge/commit/ad7a6f3ea6364ef6b4e413d133f2f3a3d89a111f))

* test: switch to new mock database session with the schema already applied ([`49ca0f0`](https://github.com/irtnog/lethbridge/commit/49ca0f0d372de184d728764b5ea24a7e95d0bd74))

* test(cli): move configuration CLI tests to separate file ([`1dce5ec`](https://github.com/irtnog/lethbridge/commit/1dce5ecb805831cbfc57756815e2e46eac223abd))

* test: add Thargoid stronghold system to test data ([`2132e5e`](https://github.com/irtnog/lethbridge/commit/2132e5e5469958f197674082539662431d531e0b))

0.1.2

Build

* build: update flake8 configuration settings per Black&39;s integration docs ([`9b5b22d`](https://github.com/irtnog/lethbridge/commit/9b5b22d6aeef6a444f74e2ed3e27824fc447b684))

Documentation

* docs: record lessons learned ([`bb7354c`](https://github.com/irtnog/lethbridge/commit/bb7354c67504cae158be7a0eaea54987d7f60940))

* docs: outline deployment and development processes ([`51574b9`](https://github.com/irtnog/lethbridge/commit/51574b977f647235ada8c69ab57f74bb2dee9a70))

Feature

* feat(database): model the state of the Second Thargoid War ([`edb43d1`](https://github.com/irtnog/lethbridge/commit/edb43d1952d5eea6f7e1ef9b7f76160831de2101))

* feat(docker): begin defining a deployment using Docker Compose ([`efecac8`](https://github.com/irtnog/lethbridge/commit/efecac80ce35235a192c412235548cb45ab887c5))

* feat(cli): add support for custom run-time initialization

Separate from configuration, this allows users to run arbitrary Python
code as part of the Lethbridge CLI start up process, e.g., to load
[psycopg2cffi](https://github.com/chtd/psycopg2cffi) in place of
psycopg2. ([`0815af9`](https://github.com/irtnog/lethbridge/commit/0815af9879740a07b16794c7b046830539699db0))

Fix

* fix(cli): handle non-existent or defective init files ([`af51279`](https://github.com/irtnog/lethbridge/commit/af51279373afc5954f8c6884ca60710df6cb4a23))

* fix(packaging): pin to Python 3.10 or newer due to use of PEP 604 union types ([`6013582`](https://github.com/irtnog/lethbridge/commit/6013582202e68b464136c7f08c02eb2f19c95e4a))

* fix(schemas): replace deprecated class Meta option ([`d9829b6`](https://github.com/irtnog/lethbridge/commit/d9829b686f1e36a134ef278d2e95b6ef918004a5))

Refactor

* refactor(docker): switch to a multi-stage build, with test resources excluded from the final image

While we&39;re at it, pin to Python 3.10 to lower the risk of
compatibility issues. ([`a5d9f5d`](https://github.com/irtnog/lethbridge/commit/a5d9f5d1f136e1dfc6dfa5d3f670a44e3d596b21))

* refactor(packaging): move optional dependencies into their own section ([`1958120`](https://github.com/irtnog/lethbridge/commit/1958120e6e3eae3b2ec7329ae1b5316dad310393))

* refactor(packaging): remove unused dependency ([`6098f7a`](https://github.com/irtnog/lethbridge/commit/6098f7aac967f94c36cf9ccdc401ea1ce1defa82))

* refactor(docker): set PATH in image definitions ([`b00792c`](https://github.com/irtnog/lethbridge/commit/b00792c2441ea379a74ad4d7121201475a003402))

Test

* test: accept decimals/floats within 5% of each other as being equal ([`917d10d`](https://github.com/irtnog/lethbridge/commit/917d10d98867626e921f11f4ccaae8f6aa747c1f))

* test: add approximate matches (with warnings) in certain cases ([`5eb3cfa`](https://github.com/irtnog/lethbridge/commit/5eb3cfa85dc3599fa67b554926ee9f84a833f2e8))

* test(schemas): re-enable flake8 errors

The marked variables are now intended to be used. ([`f854aa0`](https://github.com/irtnog/lethbridge/commit/f854aa0753c6d779ac3cf3ac540305944cc9b581))

* test: add Thargoid war system to test data ([`28a6b59`](https://github.com/irtnog/lethbridge/commit/28a6b595b618c5028b5a588066f522eb56bc28a9))

* test(schemas): rename test to match submodule ([`6246099`](https://github.com/irtnog/lethbridge/commit/6246099f3d34caf796eb6881ee5708f75a019114))

* test: rename galaxy data to match mock ([`8c1f8eb`](https://github.com/irtnog/lethbridge/commit/8c1f8ebbe41c5693e47fa26a6c5c091e9112f07a))

* test(cli): separate database CLI tests from the rest ([`9df0571`](https://github.com/irtnog/lethbridge/commit/9df05716e03da48710cb760c760bd5b0e342d61c))

Unknown

* release: cut the v0.1.2 release ([`0ab70c2`](https://github.com/irtnog/lethbridge/commit/0ab70c20fb563e99456e75acd40ef96fd1e18be9))

0.1.1

Documentation

* docs(schemas): update note regarding system data processing order of operations ([`e2290df`](https://github.com/irtnog/lethbridge/commit/e2290dfb6a436068abe08063529eb49bdf326c7e))

* docs(schemas): remove extraneous comments/docstrings ([`cfe3f5b`](https://github.com/irtnog/lethbridge/commit/cfe3f5bc278c8c0e000be90101238c9b6ad87448))

Feature

* feat(schemas): configure Marshmallow to use simplejson when parsing Spansh data dumps

Marshmallow needs this to properly support decimal.Decimal fields if
processing JSON data itself. ([`ab8dac5`](https://github.com/irtnog/lethbridge/commit/ab8dac5a4b6e2be45a14fa8e2da5cdda99901824))

* feat(database): include bodies in system comparisons ([`8d7f796`](https://github.com/irtnog/lethbridge/commit/8d7f796af610fe09078ae2ce343a24ab573f4dcf))

Fix

* fix(database): re-order station columns to match class definition order ([`b081205`](https://github.com/irtnog/lethbridge/commit/b08120527659659fb070f19d14cbf605d0c137e3))

* fix(schemas): remove empty lists of signals from ring data dumps ([`d4bbc41`](https://github.com/irtnog/lethbridge/commit/d4bbc41a6ebc514d66503b2b43a68c26e604fec4))

* fix(schemas): remove empty lists of genuses, but this might not be correct in all cases ([`61c9e48`](https://github.com/irtnog/lethbridge/commit/61c9e48bd3e4d337949f2dfffb5bccd3e46c9f3a))

* fix(schemas): remove more table relationship fields from Spansh dumps ([`b277d18`](https://github.com/irtnog/lethbridge/commit/b277d18c708fdad881ef16fb13b90329afa56390))

* fix(schemas): convert 0.0 to 0 in Spansh dumps ([`da72525`](https://github.com/irtnog/lethbridge/commit/da72525333063edb3b4d5dee1bec302b419ff6d5))

* fix(schemas): keep empty station lists in Spansh dumps of body data ([`402c5d1`](https://github.com/irtnog/lethbridge/commit/402c5d1b4346608cd65a14fa5c82a07321218cec))

* fix(schemas): remove table relationship fields from Spansh dumps

These are implementation details, not body data. ([`55ca07b`](https://github.com/irtnog/lethbridge/commit/55ca07be97b545f951b818599335792885d5fbb2))

* fix(schemas): remove optional field from outfitting stock entry in Spansh dumps ([`3379276`](https://github.com/irtnog/lethbridge/commit/3379276ae8bd2b87fd73a87d112a12fdd71b4c2a))

* fix(database): use correct field name ([`1d9e3a3`](https://github.com/irtnog/lethbridge/commit/1d9e3a358831846c22c51e737419b5edd400f2d0))

* fix(schemas): check the context for the factions list explicitly

Otherwise, any other context data will cause faction context
initialization to be skipped. ([`19ade1f`](https://github.com/irtnog/lethbridge/commit/19ade1f99d78aaa0fdcd457bfd1fa10342e35754))

* fix(schemas): skip faction object memoization if the context isn&39;t initialized ([`3a8c0b6`](https://github.com/irtnog/lethbridge/commit/3a8c0b6e7dc854f313c2c18fb8a4f0c6ecf5750f))

Refactor

* refactor(database): switch from floats to decimals

The Python decimal.Decimal class preserves source precision better
than floats and is well supported by Marshmallow, SQLAlchemy, and
PostgreSQL. Unfortunately, it isn&39;t compatible with SQLite, so that&39;s
potentially irreparably broken as of this commit. ([`44b629c`](https://github.com/irtnog/lethbridge/commit/44b629cf11a9ae87afc3f67f6ddc66e0678fe479))

* refactor(database): visually isolate foreign keys when practicable ([`b3beb0f`](https://github.com/irtnog/lethbridge/commit/b3beb0f86970eaef45c7f0b356d2ef29777842bc))

* refactor(schemas): de-serialize the station economies dictionary the same way as others ([`db35812`](https://github.com/irtnog/lethbridge/commit/db3581272d4e84d91dd1f4b96b0357961439095a))

* refactor(schemas): simplify faction state data pre/post-processing ([`6a0ecec`](https://github.com/irtnog/lethbridge/commit/6a0ecec0a75763119803f3b1950fcd382fa9c656))

* refactor(schemas): simplify outfitting stock data pre/post-processing ([`8bf9a0d`](https://github.com/irtnog/lethbridge/commit/8bf9a0d4ccd464620af2d8acf3a1ef50e4f07e39))

* refactor(schemas): simplify station data pre/post-processing ([`76b442f`](https://github.com/irtnog/lethbridge/commit/76b442fa24b4fb0e677de4f23f0e0c40ada44986))

* refactor(schemas): simplify body data pre/post-processing ([`ebe4217`](https://github.com/irtnog/lethbridge/commit/ebe42170ac03c9ff797b5e4a580a993d7421f697))

* refactor(schemas): simplify system coordinate data pre/post-processing ([`82e88d7`](https://github.com/irtnog/lethbridge/commit/82e88d74db85566ea4e5bbd0096768e3b28a6740))

* refactor(schemas): move the Spansh schema to its own module ([`747347f`](https://github.com/irtnog/lethbridge/commit/747347f18c868adfb9717d6cde64d899fde317bc))

Test

* test: reconfigure smoke tests to use PostgreSQL ([`5a531f7`](https://github.com/irtnog/lethbridge/commit/5a531f7fed5ae4d15202306c83bb482528c83723))

* test(schemas): perform a depth-first comparison of the source data and database contents ([`4dd5791`](https://github.com/irtnog/lethbridge/commit/4dd5791064b8071482da8bb0d2686bb3382aaee0))

* test: rename mock galaxy data to better reflect its purpose ([`df955c1`](https://github.com/irtnog/lethbridge/commit/df955c13550726de89276df25147cf2fc04a9b24))

Unknown

* release: cut the v0.1.1 release ([`d72e534`](https://github.com/irtnog/lethbridge/commit/d72e534b3adcfaa3b660daed79bc9ede17255e7a))

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.