Skip to content

Latest commit

 

History

History
180 lines (124 loc) · 9.54 KB

DELETE_ME.md

File metadata and controls

180 lines (124 loc) · 9.54 KB

Guide for lewismc, the owners of the repository 😀

👉 You can delete this file after reading and operating the instructions.

1. Very first steps

1.1. Initialize your code

  1. Initialize git inside your repo:
cd reperio && git init
  1. If you don't have Poetry.

Conda environment is is recommended.

conda create -n reperio python==3.10

Please activate python of current project and install run:

conda activate reperio
pip install poetry
  1. Initialize poetry and pre-commit hooks:
make install

If you obtain a timeout error when installing, you can try to append an image source config in poetry.toml. The following example is tsinghua image source.

[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
priority = "default"
  1. Run the codestyle to polish your code:
make polish-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/lewismc/reperio.git
git push -u origin main

1.2. Set up bots

When you create this repository, you have already set up the following bots, so that you can use it in relevant GitHub repository.

  • Dependabot: will create a pull request to update the dependencies. You can also enable it to automatically merge the pull request after the CI/CD passes. You can configure it in .github/dependabot.yml.
  • Stale bot: Automatically closes abandoned issues after a period of inactivity. You can configure it in .github/.stale.yml.
  • first-interaction: will comment on the first issue or pull request from a new contributor. You can configure it in .github/workflows/greetings.yml.

first-interaction requires pull_requests:write, but by default GITHUB_TOKEN has this value set to read-only. You need to do the following to enable it:

  • Go to the repository settings
  • Open the "Actions" tab
  • Click on "Read and write permissions" and enable "Actions: Read and write permissions" img.png

1.3. Poetry

This project use Poetry to manage dependencies. Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Want to know more about Poetry? Check its documentation.

Details about Poetry

Poetry's commands are very intuitive and easy to learn, like:

  • poetry add numpy@latest add a new dependency.
  • poetry run pytest run tests.
  • poetry publish --build publish your package.

etc

1.4. Building and releasing your package (Optional)

You can build and release your package to PyPI. Building a new version of the application contains steps:

  • Bump the version of your package poetry version <version>. You can pass the new version explicitly, or a rule such as major, minor, or patch. For more details, refer to the Semantic Versions standard.
  • Make a commit to GitHub.
  • Create a GitHub release.
  • And... publish 🙂 poetry publish --build

🎯 2. What's next

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

  • Typer is great for creating CLI applications.
  • Rich makes it easy to add beautiful formatting in the terminal.
  • Pydantic – data validation and settings management using Python type hinting.
  • Loguru makes logging (stupidly) simple.
  • tqdm – fast, extensible progress bar for Python and CLI.
  • IceCream is a little library for sweet and creamy debugging.
  • orjson – ultra fast JSON parsing library.
  • Returns makes you function's output meaningful, typed, and safe!
  • Hydra is a framework for elegantly configuring complex applications.
  • FastAPI is a type-driven asynchronous web framework.

Articles:

🚀 3. Features

3.1. Development features

3.2. Deployment features

3.3. Open source community features

📈 4. 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.

👉 Remember delete this file after reading and operating the instructions.