check:releases

Table of contents

  1. Introduction
  2. Checking one package
  3. Narrowing the report
  4. Fixing what it reports
  5. Reference

Introduction

check:releases reports where the forge and PyPI disagree, for every releasable package of the workspace. Features, splent_cli, splent_framework and products are all checked. It only reads, and release:resume repairs what it finds.

splent check:releases
  Release channels for 24 package(s)
  ------------------------------------------------------------------
  [OK] splent_feature_shop: 12 version(s) on both channels
  [X] splent_feature_recipes
      1 tag(s) not on PyPI: v0.2.1
  [!] splent_feature_gallery: the forge is rate limiting this token
  [.] splent_feature_notes: never released

  ------------------------------------------------------------------
  1 package(s) tagged but not on PyPI
    splent_feature_recipes  v0.2.1

  Finish the newest one of each without bumping the version with
    splent release:resume splent_feature_recipes

  1 package(s) could NOT be checked, so this report does not cover them
    splent_feature_gallery  the forge is rate limiting this token
  Not knowing is not the same as being in sync. Fix the access and run this again.

It exits 1 when anything diverged or could not be checked, and 0 when the two channels agree.


Checking one package

splent check:releases --feature notes

A bare name becomes splent_feature_<name>. A name that matches nothing exits 1 with No package named <name>.


Narrowing the report

splent check:releases --no-core --no-products --divergent-only

--no-core skips splent_cli and splent_framework. --no-products skips the products. --divergent-only prints only the packages with a problem.


Fixing what it reports

Finding What to do
Tagged but not on PyPI Run the splent release:resume command it prints. It finishes the newest version without bumping it
On PyPI with no tag Tag the commit that version was built from
Tagged with no release on the forge Run splent release:resume for the package
Could not be checked The forge or PyPI did not answer, and that is never read as “nothing there”. Fix the access it names and run it again

Reference

Option Description
--feature NAME Check one package
--no-core Skip splent_cli and splent_framework
--no-products Skip products
--divergent-only Print only the packages with a problem

A package is any top-level folder of the workspace with a pyproject.toml. One with no origin remote has nothing to compare, and one with an unreadable [tool.splent.release] cannot be checked.

Versions compare on the number, so v1.2.3 and 1.2.3 are the same release. Every tag is checked for its forge release, not only the newest.

A package that declares channels = ["forge"] in [tool.splent.release] is compared with the forge only, and shows as forge only by declaration. "github" is read as "forge".

Tags and releases come from the configured forge, git.splent.io by default. A token is optional, read as in check:forge. Without one the forge rate limits you quickly, private repositories stay invisible, and the run ends with Set SPLENT_FORGE_TOKEN to avoid rate limits on this command.


Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es