1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build system
7 hatchling,
8 hatch-vcs,
9
10 # dependencies
11 click,
12 httpx,
13 pydantic,
14 pydantic-settings,
15 questionary,
16 rich-click,
17 rich,
18 tomlkit,
19 wcmatch,
20
21 # test
22 mercurial,
23 gitMinimal,
24 freezegun,
25 pre-commit,
26 pytest-cov,
27 pytest-localserver,
28 pytest-mock,
29 pytestCheckHook,
30 versionCheckHook,
31}:
32
33buildPythonPackage rec {
34 pname = "bump-my-version";
35 version = "1.1.2";
36 pyproject = true;
37
38 src = fetchFromGitHub {
39 owner = "callowayproject";
40 repo = "bump-my-version";
41 tag = version;
42 hash = "sha256-O7Ihw2AKJyOmBLReNI6TP5K3HgOFDuK1/9lN3d3/SrQ=";
43 };
44
45 build-system = [
46 hatchling
47 hatch-vcs
48 ];
49
50 dependencies = [
51 click
52 httpx
53 pydantic
54 pydantic-settings
55 questionary
56 rich-click
57 rich
58 tomlkit
59 wcmatch
60 ];
61
62 env = {
63 GIT_AUTHOR_NAME = "test";
64 GIT_COMMITTER_NAME = "test";
65 GIT_AUTHOR_EMAIL = "test@example.com";
66 GIT_COMMITTER_EMAIL = "test@example.com";
67 };
68
69 nativeCheckInputs = [
70 mercurial
71 gitMinimal
72 freezegun
73 pre-commit
74 pytest-cov
75 pytest-localserver
76 pytest-mock
77 pytestCheckHook
78 versionCheckHook
79 ];
80
81 versionCheckProgramArg = "--version";
82
83 __darwinAllowLocalNetworking = true;
84
85 pythonImportsCheck = [ "bumpversion" ];
86
87 meta = {
88 description = "Small command line tool to update version";
89 longDescription = ''
90 This is a maintained refactor of the bump2version fork of the
91 excellent bumpversion project. This is a small command line tool to
92 simplify releasing software by updating all version strings in your source code
93 by the correct increment and optionally commit and tag the changes.
94 '';
95 homepage = "https://github.com/callowayproject/bump-my-version";
96 changelog = "https://github.com/callowayproject/bump-my-version/tag/${version}";
97 license = lib.licenses.mit;
98 maintainers = with lib.maintainers; [ daspk04 ];
99 mainProgram = "bump-my-version";
100 };
101}