Skip to content
  1. Sep 10, 2024
    • Alexander Hess's avatar
      Run `nox -s test` on GitHub actions · 62f7a79a
      Alexander Hess authored
      62f7a79a
    • Alexander Hess's avatar
      Set up pre-commit hooks · 7a524655
      Alexander Hess authored
      - add pre-commit hooks:
        + run `nox -s lint` on staged *.py files
        + run common pre-commit hooks for validations that could not be
          achieved with tools in the develop environment so easily
      - add pre-merge hook:
        + run `nox -s _pre-commit-test-hook` before merges
          * ignores the paths to staged files
            passed in by the pre-commit framework
          * runs all test cases instead
      7a524655
    • Alexander Hess's avatar
      Add `__version__` identifier · 4100a7f3
      Alexander Hess authored
      - `lalib.__version__` is dynamically assigned
      - the format is "x.y.z[.dev0|aN|bN|rcN|.postM]"
        where x, y, z, M, and N are non-negative integers
        + x, y, and z model the "major", "minor", and "patch"
          parts of semantic versioning
          (See: https://semver.org/#semantic-versioning-200)
        + M is a single digit and N either 1 or 2
        => This complies with (a strict subset of) PEP440
      - add unit tests for the `__version__` identifier
      4100a7f3
    • Alexander Hess's avatar
      Set up a test suite · b8ceee39
      Alexander Hess authored
      - use pytest as the test suite and
        measure test coverage with coverage.py
      - add package for the test suite under tests/
      - add nox session "test" to run the test suite
        for all supported Python versions
      - use flake8 to lint pytest for consistent style
      b8ceee39
    • Alexander Hess's avatar
      Set up code linting tools · ecf14207
      Alexander Hess authored
      - use flake8 as the main linting tool with the following plug-ins:
        + flake8-annotations
        + flake8-bandit
        + flake8-black
        + flake8-broken-line
        + flake8-bugbear
        + flake8-commas
        + flake8-comprehensions
        + flake8-debugger
        + flake8-docstrings
        + flake8-eradicate
        + flake8-isort
        + flake8-quotes
        + flake8-string-format
        + flake8-pyproject
        + pep8-naming
        + pydoclint
      - use mypy for static type checking
      - use ruff for linting for future compatibility
      - add nox session "lint" to run these tools
      - add `ruff check --fix ...` in nox session "format"
      - lint all source files => no errors found
      ecf14207
    • Alexander Hess's avatar
      Set up code formatting tools · fb407631
      Alexander Hess authored
      - auto-format code with:
        + autoflake => * remove unused imports and variables
                       * remove duplicate dict keys
                       * expand star imports
        + black => enforce an uncompromising code style
        + isort => enforce a consistent import style
                   compliant with Google's Python style guide
      - add nox session "format" to run these tools
      fb407631
    • Alexander Hess's avatar
      Set up nox as the task runner · ceabb00b
      Alexander Hess authored
      - base configuration for all nox sessions to come
      - add infos about nox in the README file
      - ignore [py]cache folders in git
      ceabb00b
    • Alexander Hess's avatar
      Initialize the project · e832333e
      Alexander Hess authored
      - 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
      e832333e
    • Alexander Hess's avatar
      Add README file · c7d8b7f2
      Alexander Hess authored
      - describe the project's goals
      - contributions are welcome
      - mention the GitFlow branching model
      c7d8b7f2
Loading