File: _release.py

package info (click to toggle)
python-rjsmin 1.2.0%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 2,000 kB
  • sloc: javascript: 8,503; python: 2,847; ansic: 821; sh: 63; makefile: 19
file content (42 lines) | stat: -rw-r--r-- 1,146 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# -*- encoding: ascii -*-
"""
Release code
~~~~~~~~~~~~

"""

import re as _re


def check_committed(ctx):
    """ Check if everything is committed """
    git = ctx.shell.frompath("git")
    lines = ctx.run(ctx.c('%s branch --color=never', git),
                    env=dict(LC_ALL='C'), hide=True).stdout.splitlines()
    for line in lines:
        if line.startswith('*'):
            branch = line.split(None, 1)[1]
            break
    else:
        ctx.fail("Could not determine current branch.")

    if branch != 'master':
        rex = _re.compile(r'^\d+(?:\.\d+)*\.[xX]$').match
        match = rex(branch)
        if not match:
            ctx.fail("Not in master or release branch.")

    lines = ctx.run(ctx.c('%s status --porcelain', git),
                    env=dict(LC_ALL='C'), hide=True).stdout
    if lines:
        ctx.fail("Uncommitted changes!")


def add_tag(ctx):
    """ Add release tag """
    version = ctx.run('python setup.py --version', hide=True).stdout.strip()
    git = ctx.shell.frompath('git')

    ctx.run(ctx.c('''
        %s tag -a -m "Release version %s" -- %s
    ''', git, version, version), echo=True)