Compare commits

...

6 Commits

Author SHA1 Message Date
Andrew Cassidy 30947769e1 Readthedocs broke their dang config schema? 1 month ago
Andrew Cassidy 6589a91d7e Update CI workflow some more 1 month ago
Andrew Cassidy 802633b9a7 Update CI workflow 1 month ago
Andrew Cassidy 47d4b595f8 Release Version 1.2.0
### Added

- added the `-s` option to `yaclog release` to increment arbitrary version segments 
- added the `-n` option to `yaclog release` to create a new release instead of releasing a new one
- added the `-y` option to `yaclog release` to answer "yes" to all confirmation dialogs. Use with caution!
1 month ago
Andrew Cassidy fdf30bc14c also make -y apply to git commit confirmations 1 month ago
Andrew Cassidy 72126c8dca Add -s, -n, and -y options to `release` 1 month ago

@ -9,14 +9,14 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: [ "3.8", "3.9", "3.10", "3.11" ] python-version: [ "3.8", "3.9", "3.10", "3.11", "3.12" ]
click-version: [ "click~=7.0", "click~=8.0" ] click-version: [ "click~=7.0", "click~=8.0" ]
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4.4.0 uses: actions/setup-python@v5.1.0
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
@ -45,12 +45,12 @@ jobs:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v4
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4.4.0 uses: actions/setup-python@v5.1.0
with: with:
python-version: '3.x' python-version: '>=3.8'
- name: Install dependencies - name: Install dependencies
run: | run: |
@ -75,7 +75,7 @@ jobs:
password: ${{ secrets.PYPI_API_TOKEN }} password: ${{ secrets.PYPI_API_TOKEN }}
- name: Publish to Github - name: Publish to Github
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v2
with: with:
files: dist/* files: dist/*
name: ${{ env.VERSION_TITLE }} name: ${{ env.VERSION_TITLE }}

@ -5,6 +5,12 @@
# Required # Required
version: 2 version: 2
# Set the OS, Python version and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.12"
# Build documentation in the docs/ directory with Sphinx # Build documentation in the docs/ directory with Sphinx
sphinx: sphinx:
configuration: docs/conf.py configuration: docs/conf.py
@ -16,7 +22,6 @@ formats:
# Optionally set the version of Python and requirements required to build your docs # Optionally set the version of Python and requirements required to build your docs
python: python:
version: 3.8
install: install:
- method: pip - method: pip
path: . path: .

@ -2,6 +2,15 @@
All notable changes to this project will be documented in this file All notable changes to this project will be documented in this file
## Version 1.2.0 - 2024-04-16
### Added
- added the `-s` option to `yaclog release` to increment arbitrary version segments
- added the `-n` option to `yaclog release` to create a new release instead of releasing a new one
- added the `-y` option to `yaclog release` to answer "yes" to all confirmation dialogs. Use with caution!
## Version 1.1.2 - 2022-12-29 ## Version 1.1.2 - 2022-12-29
### Changed ### Changed

@ -153,6 +153,11 @@ class TestRelease(unittest.TestCase):
self.assertEqual(yaclog.read(location).versions[0].name, '1.0.1') self.assertEqual(yaclog.read(location).versions[0].name, '1.0.1')
self.assertIn('1.0.1', result.output) self.assertIn('1.0.1', result.output)
result = runner.invoke(cli, ['release', '-y', '-s', 2])
check_result(self, result)
self.assertEqual(yaclog.read(location).versions[0].name, '1.0.2')
self.assertIn('1.0.2', result.output)
runner.invoke(cli, ['entry', '-b', 'entry number 3']) runner.invoke(cli, ['entry', '-b', 'entry number 3'])
result = runner.invoke(cli, ['release', '-m']) result = runner.invoke(cli, ['release', '-m'])
@ -194,6 +199,12 @@ class TestRelease(unittest.TestCase):
self.assertEqual(yaclog.read(location).versions[0].name, '3.0.0') self.assertEqual(yaclog.read(location).versions[0].name, '3.0.0')
self.assertIn('3.0.0', result.output) self.assertIn('3.0.0', result.output)
result = runner.invoke(cli, ['release', '-p', '-n'])
check_result(self, result)
self.assertEqual(yaclog.read(location).versions[0].name, '3.0.1')
self.assertEqual(yaclog.read(location).versions[1].name, '3.0.0')
self.assertIn('3.0.1', result.output)
def test_commit(self): def test_commit(self):
"""Test committing and tagging releases""" """Test committing and tagging releases"""
runner = CliRunner() runner = CliRunner()

@ -187,6 +187,8 @@ def entry(obj: Changelog, bullets, paragraphs, section_name, version_name):
help='Increment minor version number.') help='Increment minor version number.')
@click.option('-p', '--patch', 'rel_seg', flag_value=2, type=int, @click.option('-p', '--patch', 'rel_seg', flag_value=2, type=int,
help='Increment patch number.') help='Increment patch number.')
@click.option('-s', '--segment', 'rel_seg', type=int,
help='Increment nth segment of the version. For example, `--segment 2` is equivalent to `--patch`')
@click.option('-a', '--alpha', 'pre_seg', flag_value='a', type=str, default=None, @click.option('-a', '--alpha', 'pre_seg', flag_value='a', type=str, default=None,
help='Increment alpha version number.') help='Increment alpha version number.')
@click.option('-b', '--beta', 'pre_seg', flag_value='b', type=str, @click.option('-b', '--beta', 'pre_seg', flag_value='b', type=str,
@ -200,9 +202,13 @@ def entry(obj: Changelog, bullets, paragraphs, section_name, version_name):
'If there are no changes to commit, the current commit will be tagged instead.') 'If there are no changes to commit, the current commit will be tagged instead.')
@click.option('-C', '--cargo', '-🦀', is_flag=True, @click.option('-C', '--cargo', '-🦀', is_flag=True,
help='Update the version in a Rust cargo.toml manifest file.') help='Update the version in a Rust cargo.toml manifest file.')
@click.option('-y', '--yes', is_flag=True,
help='Answer "yes" to all confirmation dialogs')
@click.option('-n', '--new', is_flag=True,
help = 'Create a new version instead of renaming an existing one')
@click.argument('version_name', metavar='VERSION', type=str, default=None, required=False) @click.argument('version_name', metavar='VERSION', type=str, default=None, required=False)
@click.pass_obj @click.pass_obj
def release(obj: Changelog, version_name, rel_seg, pre_seg, commit, cargo): def release(obj: Changelog, version_name, rel_seg, pre_seg, commit, cargo, yes, new):
""" """
Release VERSION, or a version incremented from the last release. Release VERSION, or a version incremented from the last release.
@ -218,7 +224,10 @@ def release(obj: Changelog, version_name, rel_seg, pre_seg, commit, cargo):
click.echo('Nothing to release!') click.echo('Nothing to release!')
raise click.Abort raise click.Abort
cur_version = obj.current_version() if new:
cur_version = obj.add_version()
else:
cur_version = obj.current_version()
old_name = cur_version.name old_name = cur_version.name
if version_name: if version_name:
@ -235,11 +244,11 @@ def release(obj: Changelog, version_name, rel_seg, pre_seg, commit, cargo):
new_name = yaclog.version.increment_version(new_name, rel_seg, pre_seg) new_name = yaclog.version.increment_version(new_name, rel_seg, pre_seg)
if new_name != old_name: if new_name != old_name:
if yaclog.version.is_release(old_name): if yaclog.version.is_release(old_name) and not yes:
click.confirm( click.confirm(
f"Rename release version {click.style(old_name, fg='blue')} " f"Rename release version {click.style(old_name, fg='blue')} "
f"to {click.style(new_name, fg='blue')}?", f"to {click.style(new_name, fg='blue')}?",
abort=True) abort=True)
cur_version.name = new_name cur_version.name = new_name
cur_version.date = datetime.datetime.utcnow().date() cur_version.date = datetime.datetime.utcnow().date()
@ -283,7 +292,8 @@ def release(obj: Changelog, version_name, rel_seg, pre_seg, commit, cargo):
f"You have {untracked} untracked file{'s'[:untracked]} that will not be included!", f"You have {untracked} untracked file{'s'[:untracked]} that will not be included!",
fg='red', bold=True)) fg='red', bold=True))
click.confirm(' '.join(message), abort=True) if not yes:
click.confirm(' '.join(message), abort=True)
if tracked > 0: if tracked > 0:
commit = repo.index.commit(f'Release {cur_version.name}\n\n{cur_version.body()}') commit = repo.index.commit(f'Release {cur_version.name}\n\n{cur_version.body()}')

Loading…
Cancel
Save