Skip to content

Roadmap #1

@sobolevn

Description

@sobolevn

Purpose

The main idea of this project is to lint .env files like this one: https://github.com/wemake-services/wemake-django-template/blob/master/%7B%7Bcookiecutter.project_name%7D%7D/config/.env.template

Architecture

This should be an installable python package. We usually use poetry for that. Here's an example: https://github.com/wemake-services/wemake-python-styleguide/blob/master/pyproject.toml

How does the linting process work?

  1. We specify grammar that will be used for parsing .env files. I guess we will use ply for that. Here's an example of how we can create a simple grammar: https://github.com/ivelum/djangoql/blob/master/djangoql/ast.py

  2. We read files that are specified by user

1.1 I will have an extra look about how LSP protocol works, so this plugin can latter be easily integrated with vscode / sublime / etc

  1. Than we parse these files with our grammar, we get list of tokens / ast nodes as a result

  2. Than we perform checks on these tokens / nodes, like we do in https://github.com/wemake-services/wemake-python-styleguide/blob/master/wemake_python_styleguide/visitors/base.py

Technical decisions

I suggest to target python3.6 and python3.7. Or two latest versions of python in the future.
I suggest to use https://github.com/wemake-services/wemake-python-styleguide and mypy for linting
I suggest to use pytest for tests
I suggest to use sphinx for docs

Team

Currently we have:

Anyone is welcome!

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requestedwontfixThis will not be worked on

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions