A Python library to study linear algebra
Find a file
Alexander Hess e832333ed9
Initialize the project
- 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
2024-09-10 01:15:36 +02:00
src/lalib Initialize the project 2024-09-10 01:15:36 +02:00
.gitignore Initialize the project 2024-09-10 01:15:36 +02:00
LICENSE.txt Add open-source license 2024-09-10 00:45:24 +02:00
poetry.lock Initialize the project 2024-09-10 01:15:36 +02:00
pyproject.toml Initialize the project 2024-09-10 01:15:36 +02:00
README.md Initialize the project 2024-09-10 01:15:36 +02:00

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.