Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Principle:MarketSquare Robotframework browser Release Preparation

From Leeroopedia

Overview

Preparing a release of the robotframework-browser library involves coordinating version bumps, documentation generation, and release notes creation across a multi-package project. The version string must be synchronized across six files spanning Python, Node.js, and Docker configurations. Keyword documentation is auto-generated from the library's source code, and release notes are compiled from GitHub issues.

Core Concept

Release preparation is the set of tasks that must be completed before a release can be published. These tasks are distinct from the actual publishing step and produce the artifacts needed for a release:

  • Version synchronization -- Updating the version string consistently across all configuration files
  • Keyword documentation -- Generating HTML documentation for all Robot Framework keywords
  • Release notes -- Compiling a human-readable summary of changes from GitHub issues

Version Synchronization

The version string appears in six files that must all be updated in lockstep:

File Format Example
Browser/version.py __version__ = "X.Y.Z" __version__ = "19.13.0"
package.json "version": "X.Y.Z" "version": "19.13.0"
package-lock.json Two locations: top-level "version" and packages[""]["version"] "version": "19.13.0"
pyproject.toml (Browser) version = "X.Y.Z" version = "19.13.0"
browser_batteries/pyproject.toml version = "X.Y.Z" and dependencies = ["robotframework-browser==X.Y.Z"] Both synchronized
docker/Dockerfile.latest_release robotframework-browser==X.Y.Z robotframework-browser==19.13.0

The version task uses regex-based text replacement to update each file, ensuring the version string is consistent everywhere.

Keyword Documentation

The Browser library's keyword documentation is generated using Robot Framework's built-in libdoc tool:

  • Libdoc introspects the Browser library class and produces an HTML file
  • The generated HTML is post-processed to add Google Analytics tracking scripts
  • If a version is specified, the documentation is saved to a versioned file in docs/versions/
  • The latest documentation is always available as docs/Browser.html

This documentation is published to GitHub Pages as part of the release workflow.

Release Notes

Release notes are auto-generated from GitHub issues using the rellu library:

  • The ReleaseNotesGenerator class queries the GitHub issue tracker for issues associated with the release milestone
  • Issues are categorized and formatted into a markdown document
  • The notes include:
    • Version number and release date
    • Links to the issue tracker
    • Installation instructions (pip, rfbrowser)
    • Playwright version compatibility
  • Notes can be written to a file (docs/releasenotes/Browser-{version}.md) or printed to stdout for review

Release Preparation Workflow

A typical release preparation follows this sequence:

  1. inv version X.Y.Z -- Update version across all 6 files
  2. inv docs -- Generate keyword documentation
  3. inv release-notes --version X.Y.Z --write -- Generate release notes file
  4. Review and edit the release notes
  5. Commit all changes
  6. Create a GitHub release (which triggers the publication workflow)

Domains

  • Release_Management -- Coordinating multi-file version bumps and release artifacts
  • Documentation -- Auto-generating keyword documentation and release notes

Implemented By

Related Topics

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment