11from pathlib import Path
2+ import sys
23from types import SimpleNamespace as sn
34
45import nox
56
7+ paths = sn (root = Path (__file__ ).parent )
8+ paths .pyproject = paths .root / 'pyproject.toml'
9+ sys .path .insert (0 , str (paths .root / 'utils' ))
10+
11+ from lib import toml # type: ignore
12+
613def session (func ) : return nox .session (venv_backend = 'none' )(func )
714
815pkg = sn (dir = Path (__file__ ).parent .name )
916pkg .name = pkg .dir .replace ('-' , '_' )
1017
18+ # SESSIONS
19+
1120@session
1221def test (session ) : session .run ('py' , '-m' , pkg .name , * session .posargs , env = { 'PYTHONPATH' : 'src' })
1322@session
@@ -28,11 +37,20 @@ def build(session) : clean(session) ; session.run('py', '-m', 'build') ; print('
2837def publish (session ) : session .run ('bash' , 'utils/publish.sh' , * session .posargs )
2938
3039@session
31- def deploy_patch (session ) : bump_patch (session ) ; build (session ) ; publish (session )
40+ def deploy_patch (session ) : bump_patch (session ) ; push_bump ( session ) ; build (session ) ; publish (session )
3241@session
33- def deploy_minor (session ) : bump_minor (session ) ; build (session ) ; publish (session )
42+ def deploy_minor (session ) : bump_minor (session ) ; push_bump ( session ) ; build (session ) ; publish (session )
3443@session
35- def deploy_major (session ) : bump_major (session ) ; build (session ) ; publish (session )
44+ def deploy_major (session ) : bump_major (session ) ; push_bump ( session ) ; build (session ) ; publish (session )
3645
3746@session
3847def clean (session ) : session .run ('py' , 'utils/clean.py' )
48+
49+ # HELPERS
50+
51+ def push_bump (session ):
52+ new_ver = toml .read ('pyproject.toml' )['project' ]['version' ]
53+ session .run ('git' , 'pull' )
54+ session .run ('git' , 'add' , '.' )
55+ session .run ('git' , 'commit' , '-m' , f'Bumped { pkg .name } versions to { new_ver } ' )
56+ session .run ('git' , 'push' )
0 commit comments