forked from robotframework/PythonLibCore
- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtasks.py
More file actions
Latest commit
122 lines (90 loc) · 4.16 KB
/
Copy pathtasks.py
File metadata and controls
122 lines (90 loc) · 4.16 KB
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
importsys
frompathlibimportPath
frominvokeimporttask
fromrelluimportinitialize_labels, ReleaseNotesGenerator, Version
fromrellu.tasksimportclean
assertPath.cwd() ==Path(__file__).parent
REPOSITORY='robotframework/PythonLibCore'
VERSION_PATH=Path('src/robotlibcore.py')
RELEASE_NOTES_PATH=Path('docs/PythonLibCore-{version}.rst')
RELEASE_NOTES_TITLE='Python Library Core {version}'
RELEASE_NOTES_INTRO='''
RELEASE NOTES TEMPLATE TODO
`Python Library Core`_ is a generic component making it easier to create
bigger `Robot Framework`_ test libraries. Python Library Core {version} is
a new release with **UPDATE** enhancements and bug fixes. **MORE intro stuff**
**REMOVE this section with final releases or otherwise if release notes contain
all issues.**
All issues targeted for Python Library Core {version.milestone} can be found
from the `issue tracker`_.
**REMOVE ``--pre`` from the next command with final releases.**
If you have pip_ installed, just run
::
pip install --pre --upgrade robotframework-robotlibcore
to install the latest available release or use
::
pip install robotframework-robotlibcore=={version}
to install exactly this version. Alternatively you can download the source
distribution from PyPI_ and install it manually.
SeleniumLibrary {version} was released on {date}.
.. _PythonLibCore: https://github.com/robotframework/PythonLibCore
.. _Robot Framework: http://robotframework.org
.. _pip: http://pip-installer.org
.. _PyPI: https://pypi.python.org/pypi/robotframework-robotlibcore
.. _issue tracker: https://github.com/robotframework/PythonLibCore/issues?q=milestone%3A{version.milestone}
'''
@task
defset_version(ctx, version):
"""Set project version in ``src/robotlibcore.py`` file.
Args:
version: Project version to set or ``dev`` to set development version.
Following PEP-440 compatible version numbers are supported:
- Final version like 3.0 or 3.1.2.
- Alpha, beta or release candidate with ``a``, ``b`` or ``rc`` postfix,
respectively, and an incremented number like 3.0a1 or 3.0.1rc1.
- Development version with ``.dev`` postix and an incremented number like
3.0.dev1 or 3.1a1.dev2.
When the given version is ``dev``, the existing version number is updated
to the next suitable development version. For example, 3.0 -> 3.0.1.dev1,
3.1.1 -> 3.1.2.dev1, 3.2a1 -> 3.2a2.dev1, 3.2.dev1 -> 3.2.dev2.
"""
version=Version(version, VERSION_PATH)
version.write()
print(version)
@task
defprint_version(ctx):
"""Print the current project version."""
print(Version(path=VERSION_PATH))
@task
defrelease_notes(ctx, version=None, username=None, password=None, write=False):
"""Generates release notes based on issues in the issue tracker.
Args:
version: Generate release notes for this version. If not given,
generated them for the current version.
username: GitHub username.
password: GitHub password.
write: When set to True, write release notes to a file overwriting
possible existing file. Otherwise just print them to the
terminal.
Username and password can also be specified using ``GITHUB_USERNAME`` and
``GITHUB_PASSWORD`` environment variable, respectively. If they aren't
specified at all, communication with GitHub is anonymous and typically
pretty slow.
"""
version=Version(version, VERSION_PATH)
file=RELEASE_NOTES_PATHifwriteelsesys.stdout
generator=ReleaseNotesGenerator(REPOSITORY, RELEASE_NOTES_TITLE,
RELEASE_NOTES_INTRO)
generator.generate(version, username, password, file)
@task
definit_labels(ctx, username=None, password=None):
"""Initialize project by setting labels in the issue tracker.
Args:
username: GitHub username.
password: GitHub password.
Username and password can also be specified using ``GITHUB_USERNAME`` and
``GITHUB_PASSWORD`` environment variable, respectively.
Should only be executed once when taking ``rellu`` tooling to use or
when labels it uses have changed.
"""
initialize_labels(REPOSITORY, username, password)