Skip to content

robotframework/rellu

Repository files navigation

🛠️ rellu – Utilities to Ease Creating Releases

This project provides tooling and templates to ease the creation of releases on GitHub and their publication on PyPI. It is primarily designed for Robot Framework and the tools and libraries in its ecosystem, but can naturally be used by other projects as well.

To successfully adopt this project, you should be familiar with at least the basics of Python packaging.

✨ Main Features

The core features of rellu are organized into reusable utilities and generic Invoke tasks:

1. Utilities (rellu module)

These utilities can be used by custom Invoke tasks and are directly importable from the rellu module:

  • Setting the project version, including automatically setting it to the next suitable development version.
  • Setting common labels in the issue tracker.
  • Generating release notes based on issues in the tracker. This requires the project to use predefined labels.

2. Generic Invoke Tasks (rellu.tasks module)

  • Cleaning up temporary files and directories.
  • tasks.py: An example file implementing Invoke tasks using the aforementioned utilities. Other projects can use it as an example or template.
  • BUILD.rst: A file containing step-by-step instructions for creating releases using the Invoke tasks defined in tasks.py, Git, and other tools. This file can also be used as a template.
  • setup.py: A file that follows general good practices and can also serve as a template. A very simple MANIFEST.in file is also included, though this project does not require a setup.cfg.

🔗 Dependencies

Rellu is designed to be used together with Invoke, which is also utilized internally. All project dependencies are listed in the requirements.txt and requirements-build.txt files.

System Requirements:

  • Python: Rellu itself works only with Python 3.10 or newer. Projects that use it can, of course, also support older Python releases.
  • Operating System: It is developed and tested on Linux, but ought to work just fine on OSX. Using it on Windows may work, but this is neither tested nor officially supported.

⚙️ Required Project Setup

To be able to automatically generate release notes, the project's issue tracker must be configured using these rules:

  1. Milestones must match project versions and use the format v1.2 or v1.2.1.
  2. Labels must be configured using the provided utility.
  3. Milestones and labels must be used consistently:
    • Valid issues must have their type defined as a label: bug, enhancement, or task. Issues with the task type are not included in the release notes.
    • Issues should have their priority set using the appropriate prio- labels.
    • Issues belonging to a certain milestone should have that milestone set.
    • Issues included in certain preview releases should have a matching label set (e.g., a1, b2, rc3).

About

Tooling to ease creating releases

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages