LondonBiofoundry / SequencePoolGenerator

BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

sequencegenerator

[![Build status](https://github.com/sequencegenerator/sequencegenerator/workflows/build/badge.svg?branch=master&event=push)](https://github.com/sequencegenerator/sequencegenerator/actions?query=workflow%3Abuild) [![Python Version](https://img.shields.io/pypi/pyversions/sequencegenerator.svg)](https://pypi.org/project/sequencegenerator/) [![Dependencies Status](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)](https://github.com/sequencegenerator/sequencegenerator/pulls?utf8=%E2%9C%93&q=is%3Apr%20author%3Aapp%2Fdependabot) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Security: bandit](https://img.shields.io/badge/security-bandit-green.svg)](https://github.com/PyCQA/bandit) [![Pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/sequencegenerator/sequencegenerator/blob/master/.pre-commit-config.yaml) [![Semantic Versions](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--versions-e10079.svg)](https://github.com/sequencegenerator/sequencegenerator/releases) [![License](https://img.shields.io/github/license/sequencegenerator/sequencegenerator)](https://github.com/sequencegenerator/sequencegenerator/blob/master/LICENSE) sequencegenerator

Very first steps

Initialize your code

  1. Initialize git inside your repo:
cd sequencegenerator && git init
  1. If you don't have Poetry installed run:
make poetry-download
  1. Initialize poetry and install pre-commit hooks:
make install
make pre-commit-install
  1. Run the codestyle:
make codestyle
  1. Upload initial code to GitHub:
git add .
git commit -m ":tada: Initial commit"
git branch -M main
git remote add origin https://github.com/sequencegenerator/sequencegenerator.git
git push -u origin main

Set up bots

Poetry

Want to know more about Poetry? Check its documentation.

Details about Poetry

Poetry's [commands](https://python-poetry.org/docs/cli/#commands) are very intuitive and easy to learn, like: - `poetry add numpy@latest` - `poetry run pytest` - `poetry publish --build` etc

Building and releasing your package

Building a new version of the application contains steps:

🎯 What's next

Well, that's up to you πŸ’ͺ🏻. I can only recommend the packages and articles that helped me.

Articles:

πŸš€ Features

Development features

Deployment features

Open source community features

Installation

pip install -U sequencegenerator

or install with Poetry

poetry add sequencegenerator

Then you can run

sequencegenerator --help

or with Poetry:

poetry run sequencegenerator --help

Makefile usage

Makefile contains a lot of functions for faster development.

1. Download and remove Poetry

To download and install Poetry run: ```bash make poetry-download ``` To uninstall ```bash make poetry-remove ```

2. Install all dependencies and pre-commit hooks

Install requirements: ```bash make install ``` Pre-commit hooks coulb be installed after `git init` via ```bash make pre-commit-install ```

3. Codestyle

Automatic formatting uses `pyupgrade`, `isort` and `black`. ```bash make codestyle # or use synonym make formatting ``` Codestyle checks only, without rewriting files: ```bash make check-codestyle ``` > Note: `check-codestyle` uses `isort`, `black` and `darglint` library

4. Code security

```bash make check-safety ``` This command launches `Poetry` integrity checks as well as identifies security issues with `Safety` and `Bandit`. ```bash make check-safety ```

5. Type checks

Run `mypy` static type checker ```bash make mypy ```

6. Tests

Run `pytest` ```bash make test ```

7. All linters

Of course there is a command to ~~rule~~ run all linters in one: ```bash make lint ``` the same as: ```bash make test && make check-codestyle && make mypy && make check-safety ```

8. Docker

```bash make docker-build ``` which is equivalent to: ```bash make docker-build VERSION=latest ``` Remove docker image with ```bash make docker-remove ``` More information [about docker](https://github.com/sequencegenerator/sequencegenerator/tree/master/docker).

9. Cleanup

Delete pycache files ```bash make pycache-remove ``` Remove package build ```bash make build-remove ``` Or to remove pycache, build and docker image run: ```bash make clean-all ```

πŸ“ˆ Releases

You can see the list of available releases on the GitHub Releases page.

We follow Semantic Versions specification.

We use Release Drafter. As pull requests are merged, a draft release is kept up-to-date listing the changes, ready to publish when you’re ready. With the categories option, you can categorize pull requests in release notes using labels.

List of labels and corresponding titles

Label Title in Releases
enhancement, feature πŸš€ Features
bug, refactoring, bugfix, fix πŸ”§ Fixes & Refactoring
build, ci, testing πŸ“¦ Build System & CI/CD
breaking πŸ’₯ Breaking Changes
documentation πŸ“ Documentation
dependencies ⬆️ Dependencies updates

You can update it in release-drafter.yml.

GitHub creates the bug, enhancement, and documentation labels for you. Dependabot creates the dependencies label. Create the remaining labels on the Issues tab of your GitHub repository, when you need them.

πŸ›‘ License

License

This project is licensed under the terms of the BSD-3 license. See LICENSE for more details.

πŸ“ƒ Citation

@misc{sequencegenerator,
  author = {sequencegenerator},
  title = {sequencegenerator},
  year = {2021},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/sequencegenerator/sequencegenerator}}
}

Credits πŸš€ Your next Python package needs a bleeding-edge project structure.

This project was generated with python-package-template