Skip to content

Commit

Permalink
Process releases in chronological order.
Browse files Browse the repository at this point in the history
  • Loading branch information
domdfcoding committed Jan 24, 2024
1 parent fb75cc7 commit 724be03
Show file tree
Hide file tree
Showing 9 changed files with 1,158 additions and 292 deletions.
8 changes: 4 additions & 4 deletions octocheese/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,17 +228,17 @@ def copy_pypi_2_github(

repo: Repository = g.repository(github_username, repo_name)

for tag in repo.tags(max_tags):
version = tag.name.lstrip('v')
for tag in reversed([tag.name for tag in repo.tags(max_tags)]):
version = tag.lstrip('v')
if version not in pypi_releases:
warning(f"No PyPI release found for tag '{tag.name}'. Skipping.")
warning(f"No PyPI release found for tag '{tag}'. Skipping.")
continue

click.echo(f"Processing release for {version}")

update_github_release(
repo=repo,
tag_name=tag.name,
tag_name=tag,
pypi_name=pypi_name,
changelog=changelog,
self_promotion=self_promotion,
Expand Down
872 changes: 872 additions & 0 deletions tests/sphinx_toolbox_pypi_mock_response.json

Large diffs are not rendered by default.

6 changes: 5 additions & 1 deletion tests/test_operation.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
from io import StringIO

# 3rd party
import pypi_json
import pytest
from coincidence import check_file_regression, with_fixed_datetime
from domdf_python_tools.paths import PathPlus

# this package
from octocheese import copy_pypi_2_github
Expand Down Expand Up @@ -51,7 +53,9 @@ def test_operation_max_tags(cassette, github_client, file_regression, max_tags):
check_file_regression(captured_out.getvalue(), file_regression)


def test_operation_prerelease(cassette, github_client, file_regression):
def test_operation_prerelease(cassette, github_client, file_regression, monkeypatch):
mock_response = PathPlus("tests/sphinx_toolbox_pypi_mock_response.json").load_json()
monkeypatch.setattr(pypi_json.ProjectMetadata, "get_releases_with_digests", lambda self: mock_response)
captured_out = StringIO()

with redirect_stderr(captured_out):
Expand Down
176 changes: 88 additions & 88 deletions tests/test_operation_/test_operation_None_.txt
Original file line number Diff line number Diff line change
@@ -1,91 +1,91 @@
Processing release for 0.1.0
Skipping tag v0.1.0 as it is more than 7 days old.
Processing release for 0.1.1
Skipping tag v0.1.1 as it is more than 7 days old.
Processing release for 0.2.0
Skipping tag v0.2.0 as it is more than 7 days old.
Processing release for 0.2.1
Skipping tag v0.2.1 as it is more than 7 days old.
Processing release for 0.3.0
Skipping tag v0.3.0 as it is more than 7 days old.
Processing release for 0.3.1
Skipping tag v0.3.1 as it is more than 7 days old.
Processing release for 0.3.2
Skipping tag v0.3.2 as it is more than 7 days old.
Processing release for 0.3.3
Skipping tag v0.3.3 as it is more than 7 days old.
Processing release for 0.4.0
Skipping tag v0.4.0 as it is more than 7 days old.
Processing release for 0.5.0
Skipping tag v0.5.0 as it is more than 7 days old.
Processing release for 0.5.1
Skipping tag v0.5.1 as it is more than 7 days old.
Processing release for 0.6.0
Skipping tag v0.6.0 as it is more than 7 days old.
Processing release for 0.7.0
Skipping tag v0.7.0 as it is more than 7 days old.
Processing release for 0.8.0
Skipping tag v0.8.0 as it is more than 7 days old.
Processing release for 0.8.1
Skipping tag v0.8.1 as it is more than 7 days old.
Processing release for 0.9.0
Skipping tag v0.9.0 as it is more than 7 days old.
Processing release for 0.9.1
Skipping tag v0.9.1 as it is more than 7 days old.
Processing release for 0.9.2
Skipping tag v0.9.2 as it is more than 7 days old.
Processing release for 1.0.0
Skipping tag v1.0.0 as it is more than 7 days old.
Processing release for 1.1.0
Skipping tag v1.1.0 as it is more than 7 days old.
Processing release for 1.1.1
Skipping tag v1.1.1 as it is more than 7 days old.
Processing release for 1.1.2
Skipping tag v1.1.2 as it is more than 7 days old.
Processing release for 1.2.0
Skipping tag v1.2.0 as it is more than 7 days old.
Processing release for 1.2.1
Skipping tag v1.2.1 as it is more than 7 days old.
Processing release for 1.2.2
Skipping tag v1.2.2 as it is more than 7 days old.
Processing release for 1.3.0
Skipping tag v1.3.0 as it is more than 7 days old.
Processing release for 1.3.1
Skipping tag v1.3.1 as it is more than 7 days old.
Processing release for 1.4.0
Skipping tag v1.4.0 as it is more than 7 days old.
Processing release for 1.4.1
Skipping tag v1.4.1 as it is more than 7 days old.
Processing release for 1.5.0
Skipping tag v1.5.0 as it is more than 7 days old.
Processing release for 1.5.1
Skipping tag v1.5.1 as it is more than 7 days old.
Processing release for 1.6.0
Skipping tag v1.6.0 as it is more than 7 days old.
Processing release for 1.6.1
Skipping tag v1.6.1 as it is more than 7 days old.
Processing release for 1.6.2
Skipping tag v1.6.2 as it is more than 7 days old.
Processing release for 1.7.0
Skipping tag v1.7.0 as it is more than 7 days old.
Processing release for 1.7.1
Skipping tag v1.7.1 as it is more than 7 days old.
Processing release for 1.7.2
Skipping tag v1.7.2 as it is more than 7 days old.
Processing release for 1.7.3
Skipping tag v1.7.3 as it is more than 7 days old.
Processing release for 1.7.4
Skipping tag v1.7.4 as it is more than 7 days old.
Processing release for 1.7.5
Skipping tag v1.7.5 as it is more than 7 days old.
Processing release for 1.8.0
Skipping tag v1.8.0 as it is more than 7 days old.
Processing release for 1.8.1
Skipping tag v1.8.1 as it is more than 7 days old.
Processing release for 1.8.2
Skipping tag v1.8.2 as it is more than 7 days old.
Processing release for 1.8.3
Skipping tag v1.8.3 as it is more than 7 days old.
Processing release for 1.8.4
Copying sphinx_toolbox-1.8.4-py3-none-any.whl from PyPI to GitHub Releases.
Copying sphinx-toolbox-1.8.4.tar.gz from PyPI to GitHub Releases.
Processing release for 1.8.3
Skipping tag v1.8.3 as it is more than 7 days old.
Processing release for 1.8.2
Skipping tag v1.8.2 as it is more than 7 days old.
Processing release for 1.8.1
Skipping tag v1.8.1 as it is more than 7 days old.
Processing release for 1.8.0
Skipping tag v1.8.0 as it is more than 7 days old.
Processing release for 1.7.5
Skipping tag v1.7.5 as it is more than 7 days old.
Processing release for 1.7.4
Skipping tag v1.7.4 as it is more than 7 days old.
Processing release for 1.7.3
Skipping tag v1.7.3 as it is more than 7 days old.
Processing release for 1.7.2
Skipping tag v1.7.2 as it is more than 7 days old.
Processing release for 1.7.1
Skipping tag v1.7.1 as it is more than 7 days old.
Processing release for 1.7.0
Skipping tag v1.7.0 as it is more than 7 days old.
Processing release for 1.6.2
Skipping tag v1.6.2 as it is more than 7 days old.
Processing release for 1.6.1
Skipping tag v1.6.1 as it is more than 7 days old.
Processing release for 1.6.0
Skipping tag v1.6.0 as it is more than 7 days old.
Processing release for 1.5.1
Skipping tag v1.5.1 as it is more than 7 days old.
Processing release for 1.5.0
Skipping tag v1.5.0 as it is more than 7 days old.
Processing release for 1.4.1
Skipping tag v1.4.1 as it is more than 7 days old.
Processing release for 1.4.0
Skipping tag v1.4.0 as it is more than 7 days old.
Processing release for 1.3.1
Skipping tag v1.3.1 as it is more than 7 days old.
Processing release for 1.3.0
Skipping tag v1.3.0 as it is more than 7 days old.
Processing release for 1.2.2
Skipping tag v1.2.2 as it is more than 7 days old.
Processing release for 1.2.1
Skipping tag v1.2.1 as it is more than 7 days old.
Processing release for 1.2.0
Skipping tag v1.2.0 as it is more than 7 days old.
Processing release for 1.1.2
Skipping tag v1.1.2 as it is more than 7 days old.
Processing release for 1.1.1
Skipping tag v1.1.1 as it is more than 7 days old.
Processing release for 1.1.0
Skipping tag v1.1.0 as it is more than 7 days old.
Processing release for 1.0.0
Skipping tag v1.0.0 as it is more than 7 days old.
Processing release for 0.9.2
Skipping tag v0.9.2 as it is more than 7 days old.
Processing release for 0.9.1
Skipping tag v0.9.1 as it is more than 7 days old.
Processing release for 0.9.0
Skipping tag v0.9.0 as it is more than 7 days old.
Processing release for 0.8.1
Skipping tag v0.8.1 as it is more than 7 days old.
Processing release for 0.8.0
Skipping tag v0.8.0 as it is more than 7 days old.
Processing release for 0.7.0
Skipping tag v0.7.0 as it is more than 7 days old.
Processing release for 0.6.0
Skipping tag v0.6.0 as it is more than 7 days old.
Processing release for 0.5.1
Skipping tag v0.5.1 as it is more than 7 days old.
Processing release for 0.5.0
Skipping tag v0.5.0 as it is more than 7 days old.
Processing release for 0.4.0
Skipping tag v0.4.0 as it is more than 7 days old.
Processing release for 0.3.3
Skipping tag v0.3.3 as it is more than 7 days old.
Processing release for 0.3.2
Skipping tag v0.3.2 as it is more than 7 days old.
Processing release for 0.3.1
Skipping tag v0.3.1 as it is more than 7 days old.
Processing release for 0.3.0
Skipping tag v0.3.0 as it is more than 7 days old.
Processing release for 0.2.1
Skipping tag v0.2.1 as it is more than 7 days old.
Processing release for 0.2.0
Skipping tag v0.2.0 as it is more than 7 days old.
Processing release for 0.1.1
Skipping tag v0.1.1 as it is more than 7 days old.
Processing release for 0.1.0
Skipping tag v0.1.0 as it is more than 7 days old.
54 changes: 27 additions & 27 deletions tests/test_operation_/test_operation_max_tags_10_.txt
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
Processing release for 1.8.4
File 'sphinx_toolbox-1.8.4-py3-none-any.whl' already exists for release 'v1.8.4'. Skipping.
File 'sphinx-toolbox-1.8.4.tar.gz' already exists for release 'v1.8.4'. Skipping.
Processing release for 1.8.3
File 'sphinx_toolbox-1.8.3-py3-none-any.whl' already exists for release 'v1.8.3'. Skipping.
File 'sphinx-toolbox-1.8.3.tar.gz' already exists for release 'v1.8.3'. Skipping.
Processing release for 1.8.2
File 'sphinx_toolbox-1.8.2-py3-none-any.whl' already exists for release 'v1.8.2'. Skipping.
File 'sphinx-toolbox-1.8.2.tar.gz' already exists for release 'v1.8.2'. Skipping.
Processing release for 1.8.1
File 'sphinx_toolbox-1.8.1-py3-none-any.whl' already exists for release 'v1.8.1'. Skipping.
File 'sphinx-toolbox-1.8.1.tar.gz' already exists for release 'v1.8.1'. Skipping.
Processing release for 1.8.0
File 'sphinx_toolbox-1.8.0-py3-none-any.whl' already exists for release 'v1.8.0'. Skipping.
File 'sphinx-toolbox-1.8.0.tar.gz' already exists for release 'v1.8.0'. Skipping.
Processing release for 1.7.5
File 'sphinx_toolbox-1.7.5-py3-none-any.whl' already exists for release 'v1.7.5'. Skipping.
File 'sphinx-toolbox-1.7.5.tar.gz' already exists for release 'v1.7.5'. Skipping.
Processing release for 1.7.4
File 'sphinx_toolbox-1.7.4-py3-none-any.whl' already exists for release 'v1.7.4'. Skipping.
File 'sphinx-toolbox-1.7.4.tar.gz' already exists for release 'v1.7.4'. Skipping.
Processing release for 1.7.3
File 'sphinx_toolbox-1.7.3-py3-none-any.whl' already exists for release 'v1.7.3'. Skipping.
File 'sphinx-toolbox-1.7.3.tar.gz' already exists for release 'v1.7.3'. Skipping.
Processing release for 1.7.2
File 'sphinx_toolbox-1.7.2-py3-none-any.whl' already exists for release 'v1.7.2'. Skipping.
File 'sphinx-toolbox-1.7.2.tar.gz' already exists for release 'v1.7.2'. Skipping.
Processing release for 1.7.1
File 'sphinx_toolbox-1.7.1-py3-none-any.whl' already exists for release 'v1.7.1'. Skipping.
File 'sphinx-toolbox-1.7.1.tar.gz' already exists for release 'v1.7.1'. Skipping.
Processing release for 1.7.2
File 'sphinx_toolbox-1.7.2-py3-none-any.whl' already exists for release 'v1.7.2'. Skipping.
File 'sphinx-toolbox-1.7.2.tar.gz' already exists for release 'v1.7.2'. Skipping.
Processing release for 1.7.3
File 'sphinx_toolbox-1.7.3-py3-none-any.whl' already exists for release 'v1.7.3'. Skipping.
File 'sphinx-toolbox-1.7.3.tar.gz' already exists for release 'v1.7.3'. Skipping.
Processing release for 1.7.4
File 'sphinx_toolbox-1.7.4-py3-none-any.whl' already exists for release 'v1.7.4'. Skipping.
File 'sphinx-toolbox-1.7.4.tar.gz' already exists for release 'v1.7.4'. Skipping.
Processing release for 1.7.5
File 'sphinx_toolbox-1.7.5-py3-none-any.whl' already exists for release 'v1.7.5'. Skipping.
File 'sphinx-toolbox-1.7.5.tar.gz' already exists for release 'v1.7.5'. Skipping.
Processing release for 1.8.0
File 'sphinx_toolbox-1.8.0-py3-none-any.whl' already exists for release 'v1.8.0'. Skipping.
File 'sphinx-toolbox-1.8.0.tar.gz' already exists for release 'v1.8.0'. Skipping.
Processing release for 1.8.1
File 'sphinx_toolbox-1.8.1-py3-none-any.whl' already exists for release 'v1.8.1'. Skipping.
File 'sphinx-toolbox-1.8.1.tar.gz' already exists for release 'v1.8.1'. Skipping.
Processing release for 1.8.2
File 'sphinx_toolbox-1.8.2-py3-none-any.whl' already exists for release 'v1.8.2'. Skipping.
File 'sphinx-toolbox-1.8.2.tar.gz' already exists for release 'v1.8.2'. Skipping.
Processing release for 1.8.3
File 'sphinx_toolbox-1.8.3-py3-none-any.whl' already exists for release 'v1.8.3'. Skipping.
File 'sphinx-toolbox-1.8.3.tar.gz' already exists for release 'v1.8.3'. Skipping.
Processing release for 1.8.4
File 'sphinx_toolbox-1.8.4-py3-none-any.whl' already exists for release 'v1.8.4'. Skipping.
File 'sphinx-toolbox-1.8.4.tar.gz' already exists for release 'v1.8.4'. Skipping.
Loading

0 comments on commit 724be03

Please sign in to comment.