Alexander Hess
e832333ed9
- describe how a local develop environment can be set up - we use poetry to manage the project => add pyproject.toml and poetry.lock files - add a package for the source code => "src" layout structure to ensure that pytest runs the tests against a packaged version installed in a virtual environment and not the *.py files in the project directory (Source: https://hynek.me/articles/testing-packaging/) - ignore poetry's artifacts in git |
||
---|---|---|
src/lalib | ||
.gitignore | ||
LICENSE.txt | ||
poetry.lock | ||
pyproject.toml | ||
README.md |
A Python library to study linear algebra
The goal of the lalib
project is to create
a library written in pure Python
(incl. the standard library)
and thereby learn about
linear algebra
by reading and writing code.
Contributing & Development
This project is open for any kind of contribution, be it by writing code for new features or bugfixes, or by raising issues. All contributions become open-source themselves, under the MIT license.
Local Develop Environment
In order to play with the lalib
codebase,
you need to set up a develop environment on your own computer.
First, get your own copy of this repository:
git clone git@github.com:webartifex/lalib.git
While lalib
comes without any dependencies
except core Python and the standard library for the user,
we assume a couple of packages and tools be installed
to ensure code quality during development.
These can be viewed in the
pyproject.toml file
and are managed with poetry
which needs to be installed as well.
poetry
also creates and manages a
virtual environment
with the develop tools,
and pins their exact installation versions in the
poetry.lock file.
To replicate the project maintainer's develop environment, run:
poetry install
Branching Strategy
The branches in this repository follow the
GitFlow model.
Feature branches are rebased onto
the develop branch
before being merged.
Whereas a rebase makes a simple fast-forward merge possible,
all merges are made with explicit and empty merge commits.
This ensures that past branches remain visible in the logs,
for example, with git log --graph
.