evo-cli 0.1.1__tar.gz → 0.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. evo_cli-0.1.3/PKG-INFO +55 -0
  2. evo_cli-0.1.3/README.md +42 -0
  3. evo_cli-0.1.3/evo_cli/VERSION +1 -0
  4. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli/cli.py +19 -3
  5. evo_cli-0.1.3/evo_cli/miniconda_setup.py +173 -0
  6. evo_cli-0.1.3/evo_cli.egg-info/PKG-INFO +55 -0
  7. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli.egg-info/SOURCES.txt +1 -0
  8. evo_cli-0.1.1/PKG-INFO +0 -74
  9. evo_cli-0.1.1/README.md +0 -61
  10. evo_cli-0.1.1/evo_cli/VERSION +0 -1
  11. evo_cli-0.1.1/evo_cli.egg-info/PKG-INFO +0 -74
  12. {evo_cli-0.1.1 → evo_cli-0.1.3}/Containerfile +0 -0
  13. {evo_cli-0.1.1 → evo_cli-0.1.3}/HISTORY.md +0 -0
  14. {evo_cli-0.1.1 → evo_cli-0.1.3}/LICENSE +0 -0
  15. {evo_cli-0.1.1 → evo_cli-0.1.3}/MANIFEST.in +0 -0
  16. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli/__init__.py +0 -0
  17. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli/__main__.py +0 -0
  18. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli/base.py +0 -0
  19. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli/ssh_setup.py +0 -0
  20. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli.egg-info/dependency_links.txt +0 -0
  21. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli.egg-info/entry_points.txt +0 -0
  22. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli.egg-info/requires.txt +0 -0
  23. {evo_cli-0.1.1 → evo_cli-0.1.3}/evo_cli.egg-info/top_level.txt +0 -0
  24. {evo_cli-0.1.1 → evo_cli-0.1.3}/setup.cfg +0 -0
  25. {evo_cli-0.1.1 → evo_cli-0.1.3}/setup.py +0 -0
  26. {evo_cli-0.1.1 → evo_cli-0.1.3}/tests/__init__.py +0 -0
  27. {evo_cli-0.1.1 → evo_cli-0.1.3}/tests/conftest.py +0 -0
  28. {evo_cli-0.1.1 → evo_cli-0.1.3}/tests/test_base.py +0 -0
evo_cli-0.1.3/PKG-INFO ADDED
@@ -0,0 +1,55 @@
1
+ Metadata-Version: 2.1
2
+ Name: evo_cli
3
+ Version: 0.1.3
4
+ Summary: Awesome evo_cli created by maycuatroi
5
+ Home-page: https://github.com/maycuatroi/evo-cli/
6
+ Author: maycuatroi
7
+ License: UNKNOWN
8
+ Platform: UNKNOWN
9
+ Description-Content-Type: text/markdown
10
+ Provides-Extra: test
11
+ License-File: LICENSE
12
+
13
+ # Evolution CLI (Develop by Dev And for Dev)
14
+
15
+ [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
16
+ [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
17
+
18
+ Awesome evo_cli created by maycuatroi
19
+
20
+ ## Install it from PyPI
21
+
22
+ ```bash
23
+ pip install evo_cli
24
+ ```
25
+
26
+ ### Available Commands
27
+
28
+ #### SSH Setup
29
+
30
+ Set up SSH with key-based authentication:
31
+
32
+ ```bash
33
+ evo setupssh
34
+ ```
35
+
36
+ Options:
37
+ - `-H, --host` - SSH server hostname or IP address
38
+ - `-u, --user` - SSH username
39
+ - `-p, --password` - SSH password (not recommended, use interactive mode instead)
40
+ - `-i, --identity` - Path to existing identity file to use
41
+ - `--help-examples` - Show usage examples
42
+
43
+ #### Miniconda Installation
44
+
45
+ Install Miniconda with cross-platform support:
46
+
47
+ ```bash
48
+ evo miniconda
49
+ ```
50
+
51
+ Options:
52
+ - `-p, --prefix` - Installation directory (default: ~/miniconda3 or %USERPROFILE%\miniconda3)
53
+ - `-f, --force` - Force reinstallation even if Miniconda is already installed
54
+ - `--help-examples` - Show usage examples
55
+
@@ -0,0 +1,42 @@
1
+ # Evolution CLI (Develop by Dev And for Dev)
2
+
3
+ [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
4
+ [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
5
+
6
+ Awesome evo_cli created by maycuatroi
7
+
8
+ ## Install it from PyPI
9
+
10
+ ```bash
11
+ pip install evo_cli
12
+ ```
13
+
14
+ ### Available Commands
15
+
16
+ #### SSH Setup
17
+
18
+ Set up SSH with key-based authentication:
19
+
20
+ ```bash
21
+ evo setupssh
22
+ ```
23
+
24
+ Options:
25
+ - `-H, --host` - SSH server hostname or IP address
26
+ - `-u, --user` - SSH username
27
+ - `-p, --password` - SSH password (not recommended, use interactive mode instead)
28
+ - `-i, --identity` - Path to existing identity file to use
29
+ - `--help-examples` - Show usage examples
30
+
31
+ #### Miniconda Installation
32
+
33
+ Install Miniconda with cross-platform support:
34
+
35
+ ```bash
36
+ evo miniconda
37
+ ```
38
+
39
+ Options:
40
+ - `-p, --prefix` - Installation directory (default: ~/miniconda3 or %USERPROFILE%\miniconda3)
41
+ - `-f, --force` - Force reinstallation even if Miniconda is already installed
42
+ - `--help-examples` - Show usage examples
@@ -0,0 +1 @@
1
+ 0.1.3
@@ -10,7 +10,8 @@ Be creative! do whatever you want!
10
10
 
11
11
  import argparse
12
12
  import sys
13
- from evo_cli.ssh_setup import setup_ssh, show_usage
13
+ from evo_cli.ssh_setup import setup_ssh, show_usage as show_ssh_usage
14
+ from evo_cli.miniconda_setup import install_miniconda, show_usage as show_miniconda_usage
14
15
 
15
16
  def main(): # pragma: no cover
16
17
  """
@@ -50,12 +51,27 @@ def main(): # pragma: no cover
50
51
  ssh_args = ssh_parser.parse_args(sys.argv[2:])
51
52
 
52
53
  if ssh_args.help_examples:
53
- show_usage()
54
+ show_ssh_usage()
54
55
  return
55
56
 
56
57
  setup_ssh(ssh_args)
58
+ elif args.command == "miniconda":
59
+ # Parse arguments for miniconda installation
60
+ miniconda_parser = argparse.ArgumentParser(description="Install Miniconda with OS-specific settings")
61
+ miniconda_parser.add_argument('-p', '--prefix', help='Installation directory')
62
+ miniconda_parser.add_argument('-f', '--force', action='store_true', help='Force reinstallation')
63
+ miniconda_parser.add_argument('--help-examples', action='store_true', help='Show usage examples')
64
+
65
+ miniconda_args = miniconda_parser.parse_args(sys.argv[2:])
66
+
67
+ if miniconda_args.help_examples:
68
+ show_miniconda_usage()
69
+ return
70
+
71
+ install_miniconda(miniconda_args)
57
72
  else:
58
73
  print(f"Unknown command: {args.command}")
59
74
  print("Available commands:")
60
- print(" setupssh - Set up SSH key-based authentication")
75
+ print(" setupssh - Set up SSH key-based authentication")
76
+ print(" miniconda - Install Miniconda (cross-platform)")
61
77
  parser.print_help()
@@ -0,0 +1,173 @@
1
+ """Miniconda installation functionality for EVO CLI."""
2
+ import os
3
+ import platform
4
+ import subprocess
5
+ import tempfile
6
+ import sys
7
+ from pathlib import Path
8
+
9
+ def show_usage():
10
+ """Show usage examples for Miniconda installation."""
11
+ print("""
12
+ Miniconda Installation Script
13
+ ============================
14
+
15
+ This command installs Miniconda on your system and configures your shell environment.
16
+
17
+ Usage:
18
+ evo miniconda [options]
19
+
20
+ Options:
21
+ -p, --prefix PATH Installation directory (default: ~/miniconda3 or %USERPROFILE%\\miniconda3)
22
+ -f, --force Force installation even if Miniconda is already installed
23
+ --help-examples Show usage examples
24
+
25
+ Examples:
26
+ evo miniconda # Install with default settings
27
+ evo miniconda -p /custom/path # Install to a custom path
28
+ evo miniconda -f # Force reinstallation
29
+ """)
30
+
31
+ def is_windows():
32
+ """Check if the current OS is Windows."""
33
+ return platform.system() == "Windows"
34
+
35
+ def is_conda_installed(prefix):
36
+ """Check if conda is already installed at the specified prefix."""
37
+ conda_executable = os.path.join(prefix, "condabin", "conda.bat" if is_windows() else "conda")
38
+ return os.path.exists(conda_executable)
39
+
40
+ def get_default_install_path():
41
+ """Get the default installation path based on the OS."""
42
+ if is_windows():
43
+ return os.path.join(os.environ.get("USERPROFILE", ""), "miniconda3")
44
+ else:
45
+ return os.path.join(os.path.expanduser("~"), "miniconda3")
46
+
47
+ def install_miniconda_windows(prefix, force=False):
48
+ """Install Miniconda on Windows."""
49
+ if is_conda_installed(prefix) and not force:
50
+ print(f"Miniconda is already installed at {prefix}")
51
+ print("Use --force to reinstall")
52
+ return True
53
+
54
+ try:
55
+ # Create temp directory for the installer
56
+ with tempfile.TemporaryDirectory() as temp_dir:
57
+ installer_path = os.path.join(temp_dir, "miniconda_installer.exe")
58
+
59
+ # Download the installer
60
+ print("Downloading Miniconda installer...")
61
+ download_cmd = [
62
+ "powershell",
63
+ "-Command",
64
+ f"Invoke-WebRequest -Uri https://repo.anaconda.com/miniconda/Miniconda3-latest-Windows-x86_64.exe -OutFile {installer_path}"
65
+ ]
66
+ subprocess.run(download_cmd, check=True)
67
+
68
+ # Run the installer silently
69
+ print(f"Installing Miniconda to {prefix}...")
70
+ install_cmd = [
71
+ installer_path,
72
+ "/InstallationType=JustMe",
73
+ "/RegisterPython=0",
74
+ "/S",
75
+ "/D=" + prefix
76
+ ]
77
+ subprocess.run(install_cmd, check=True)
78
+
79
+ # Add to PATH using setx
80
+ bin_dir = os.path.join(prefix, "Scripts")
81
+ condabin_dir = os.path.join(prefix, "condabin")
82
+
83
+ # Get current PATH
84
+ path_cmd = ["powershell", "-Command", "Write-Output $env:PATH"]
85
+ result = subprocess.run(path_cmd, capture_output=True, text=True, check=True)
86
+ current_path = result.stdout.strip()
87
+
88
+ # Only add to PATH if not already present
89
+ if bin_dir not in current_path and condabin_dir not in current_path:
90
+ print("Adding Miniconda to PATH...")
91
+ subprocess.run(["setx", "PATH", f"{bin_dir};{condabin_dir};{current_path}"], check=True)
92
+
93
+ print("\nMiniconda has been installed successfully!")
94
+ print("\nTo use conda, restart your terminal or run:")
95
+ print(f" {os.path.join(prefix, 'condabin', 'conda.bat')} init")
96
+ return True
97
+
98
+ except Exception as e:
99
+ print(f"Error installing Miniconda: {str(e)}")
100
+ return False
101
+
102
+ def install_miniconda_unix(prefix, force=False):
103
+ """Install Miniconda on Linux/macOS."""
104
+ if is_conda_installed(prefix) and not force:
105
+ print(f"Miniconda is already installed at {prefix}")
106
+ print("Use --force to reinstall")
107
+ return True
108
+
109
+ try:
110
+ # Create temp directory for the installer
111
+ with tempfile.TemporaryDirectory() as temp_dir:
112
+ installer_path = os.path.join(temp_dir, "miniconda.sh")
113
+
114
+ # Determine the correct installer based on platform
115
+ if platform.system() == "Darwin":
116
+ if platform.machine() == "arm64":
117
+ installer_url = "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh"
118
+ else:
119
+ installer_url = "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh"
120
+ else: # Linux
121
+ if platform.machine() == "aarch64":
122
+ installer_url = "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh"
123
+ else:
124
+ installer_url = "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh"
125
+
126
+ # Download the installer
127
+ print("Downloading Miniconda installer...")
128
+ download_cmd = ["wget", installer_url, "-O", installer_path]
129
+ subprocess.run(download_cmd, check=True)
130
+
131
+ # Make the installer executable
132
+ subprocess.run(["chmod", "+x", installer_path], check=True)
133
+
134
+ # Run the installer
135
+ print(f"Installing Miniconda to {prefix}...")
136
+ install_cmd = ["bash", installer_path, "-b", "-p", prefix]
137
+ subprocess.run(install_cmd, check=True)
138
+
139
+ # Add to PATH if needed
140
+ shell_rc_file = os.path.expanduser("~/.bashrc")
141
+ if platform.system() == "Darwin":
142
+ if os.path.exists(os.path.expanduser("~/.zshrc")):
143
+ shell_rc_file = os.path.expanduser("~/.zshrc")
144
+
145
+ # Check if already in PATH
146
+ with open(shell_rc_file, "r") as f:
147
+ content = f.read()
148
+ if prefix not in content:
149
+ print(f"Adding Miniconda to PATH in {shell_rc_file}...")
150
+ with open(shell_rc_file, "a") as f:
151
+ f.write(f'\n# >>> conda initialize >>>\n')
152
+ f.write(f'export PATH="{prefix}/bin:$PATH"\n')
153
+ f.write(f'# <<< conda initialize <<<\n')
154
+
155
+ print("\nMiniconda has been installed successfully!")
156
+ print("\nTo use conda, restart your terminal or run:")
157
+ print(f" source {shell_rc_file}")
158
+ return True
159
+
160
+ except Exception as e:
161
+ print(f"Error installing Miniconda: {str(e)}")
162
+ return False
163
+
164
+ def install_miniconda(args):
165
+ """Main function to install Miniconda based on the current OS."""
166
+ # Get installation prefix
167
+ prefix = args.prefix or get_default_install_path()
168
+
169
+ # Install based on OS
170
+ if is_windows():
171
+ return install_miniconda_windows(prefix, args.force)
172
+ else:
173
+ return install_miniconda_unix(prefix, args.force)
@@ -0,0 +1,55 @@
1
+ Metadata-Version: 2.1
2
+ Name: evo-cli
3
+ Version: 0.1.3
4
+ Summary: Awesome evo_cli created by maycuatroi
5
+ Home-page: https://github.com/maycuatroi/evo-cli/
6
+ Author: maycuatroi
7
+ License: UNKNOWN
8
+ Platform: UNKNOWN
9
+ Description-Content-Type: text/markdown
10
+ Provides-Extra: test
11
+ License-File: LICENSE
12
+
13
+ # Evolution CLI (Develop by Dev And for Dev)
14
+
15
+ [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
16
+ [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
17
+
18
+ Awesome evo_cli created by maycuatroi
19
+
20
+ ## Install it from PyPI
21
+
22
+ ```bash
23
+ pip install evo_cli
24
+ ```
25
+
26
+ ### Available Commands
27
+
28
+ #### SSH Setup
29
+
30
+ Set up SSH with key-based authentication:
31
+
32
+ ```bash
33
+ evo setupssh
34
+ ```
35
+
36
+ Options:
37
+ - `-H, --host` - SSH server hostname or IP address
38
+ - `-u, --user` - SSH username
39
+ - `-p, --password` - SSH password (not recommended, use interactive mode instead)
40
+ - `-i, --identity` - Path to existing identity file to use
41
+ - `--help-examples` - Show usage examples
42
+
43
+ #### Miniconda Installation
44
+
45
+ Install Miniconda with cross-platform support:
46
+
47
+ ```bash
48
+ evo miniconda
49
+ ```
50
+
51
+ Options:
52
+ - `-p, --prefix` - Installation directory (default: ~/miniconda3 or %USERPROFILE%\miniconda3)
53
+ - `-f, --force` - Force reinstallation even if Miniconda is already installed
54
+ - `--help-examples` - Show usage examples
55
+
@@ -9,6 +9,7 @@ evo_cli/__init__.py
9
9
  evo_cli/__main__.py
10
10
  evo_cli/base.py
11
11
  evo_cli/cli.py
12
+ evo_cli/miniconda_setup.py
12
13
  evo_cli/ssh_setup.py
13
14
  evo_cli.egg-info/PKG-INFO
14
15
  evo_cli.egg-info/SOURCES.txt
evo_cli-0.1.1/PKG-INFO DELETED
@@ -1,74 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: evo_cli
3
- Version: 0.1.1
4
- Summary: Awesome evo_cli created by maycuatroi
5
- Home-page: https://github.com/maycuatroi/evo-cli/
6
- Author: maycuatroi
7
- License: UNKNOWN
8
- Platform: UNKNOWN
9
- Description-Content-Type: text/markdown
10
- Provides-Extra: test
11
- License-File: LICENSE
12
-
13
- # Evolution CLI (Develop by Dev And for Dev)
14
-
15
- [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
16
- [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
17
-
18
- Awesome evo_cli created by maycuatroi
19
-
20
- ## Install it from PyPI
21
-
22
- ```bash
23
- pip install evo_cli
24
- ```
25
-
26
- ## Usage
27
-
28
- ```py
29
- from evo_cli import BaseClass
30
- from evo_cli import base_function
31
-
32
- BaseClass().base_method()
33
- base_function()
34
- ```
35
-
36
- ```bash
37
- $ python -m evo_cli
38
- #or
39
- $ evo_cli
40
- ```
41
-
42
- ## Development
43
-
44
- Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
45
-
46
- ## Automatic Release to PyPI
47
-
48
- This project is configured to automatically release to PyPI when changes are pushed to the main branch. The process:
49
-
50
- 1. Automatically bumps the version based on commit messages:
51
- - Commits with "BREAKING CHANGE" trigger a major version bump
52
- - Commits with "feat" trigger a minor version bump
53
- - All other commits trigger a patch version bump
54
-
55
- 2. Builds and publishes the package to PyPI
56
-
57
- 3. Creates a GitHub release with auto-generated release notes
58
-
59
- ### Setup Requirements
60
-
61
- To enable automatic PyPI releases, you need to:
62
-
63
- 1. Create a PyPI API token:
64
- - Go to https://pypi.org/manage/account/token/
65
- - Create a new token with scope "Entire account"
66
- - Copy the token value
67
-
68
- 2. Add the token to your GitHub repository secrets:
69
- - Go to your GitHub repository → Settings → Secrets and variables → Actions
70
- - Create a new repository secret named `PYPI_API_TOKEN`
71
- - Paste your PyPI token as the value
72
-
73
- After these steps, the automated release process will work whenever changes are pushed to the main branch.
74
-
evo_cli-0.1.1/README.md DELETED
@@ -1,61 +0,0 @@
1
- # Evolution CLI (Develop by Dev And for Dev)
2
-
3
- [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
4
- [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
5
-
6
- Awesome evo_cli created by maycuatroi
7
-
8
- ## Install it from PyPI
9
-
10
- ```bash
11
- pip install evo_cli
12
- ```
13
-
14
- ## Usage
15
-
16
- ```py
17
- from evo_cli import BaseClass
18
- from evo_cli import base_function
19
-
20
- BaseClass().base_method()
21
- base_function()
22
- ```
23
-
24
- ```bash
25
- $ python -m evo_cli
26
- #or
27
- $ evo_cli
28
- ```
29
-
30
- ## Development
31
-
32
- Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
33
-
34
- ## Automatic Release to PyPI
35
-
36
- This project is configured to automatically release to PyPI when changes are pushed to the main branch. The process:
37
-
38
- 1. Automatically bumps the version based on commit messages:
39
- - Commits with "BREAKING CHANGE" trigger a major version bump
40
- - Commits with "feat" trigger a minor version bump
41
- - All other commits trigger a patch version bump
42
-
43
- 2. Builds and publishes the package to PyPI
44
-
45
- 3. Creates a GitHub release with auto-generated release notes
46
-
47
- ### Setup Requirements
48
-
49
- To enable automatic PyPI releases, you need to:
50
-
51
- 1. Create a PyPI API token:
52
- - Go to https://pypi.org/manage/account/token/
53
- - Create a new token with scope "Entire account"
54
- - Copy the token value
55
-
56
- 2. Add the token to your GitHub repository secrets:
57
- - Go to your GitHub repository → Settings → Secrets and variables → Actions
58
- - Create a new repository secret named `PYPI_API_TOKEN`
59
- - Paste your PyPI token as the value
60
-
61
- After these steps, the automated release process will work whenever changes are pushed to the main branch.
@@ -1 +0,0 @@
1
- 0.1.1
@@ -1,74 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: evo-cli
3
- Version: 0.1.1
4
- Summary: Awesome evo_cli created by maycuatroi
5
- Home-page: https://github.com/maycuatroi/evo-cli/
6
- Author: maycuatroi
7
- License: UNKNOWN
8
- Platform: UNKNOWN
9
- Description-Content-Type: text/markdown
10
- Provides-Extra: test
11
- License-File: LICENSE
12
-
13
- # Evolution CLI (Develop by Dev And for Dev)
14
-
15
- [![codecov](https://codecov.io/gh/maycuatroi/evo-cli/branch/main/graph/badge.svg?token=evo-cli_token_here)](https://codecov.io/gh/maycuatroi/evo-cli)
16
- [![CI](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml/badge.svg)](https://github.com/maycuatroi/evo-cli/actions/workflows/main.yml)
17
-
18
- Awesome evo_cli created by maycuatroi
19
-
20
- ## Install it from PyPI
21
-
22
- ```bash
23
- pip install evo_cli
24
- ```
25
-
26
- ## Usage
27
-
28
- ```py
29
- from evo_cli import BaseClass
30
- from evo_cli import base_function
31
-
32
- BaseClass().base_method()
33
- base_function()
34
- ```
35
-
36
- ```bash
37
- $ python -m evo_cli
38
- #or
39
- $ evo_cli
40
- ```
41
-
42
- ## Development
43
-
44
- Read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
45
-
46
- ## Automatic Release to PyPI
47
-
48
- This project is configured to automatically release to PyPI when changes are pushed to the main branch. The process:
49
-
50
- 1. Automatically bumps the version based on commit messages:
51
- - Commits with "BREAKING CHANGE" trigger a major version bump
52
- - Commits with "feat" trigger a minor version bump
53
- - All other commits trigger a patch version bump
54
-
55
- 2. Builds and publishes the package to PyPI
56
-
57
- 3. Creates a GitHub release with auto-generated release notes
58
-
59
- ### Setup Requirements
60
-
61
- To enable automatic PyPI releases, you need to:
62
-
63
- 1. Create a PyPI API token:
64
- - Go to https://pypi.org/manage/account/token/
65
- - Create a new token with scope "Entire account"
66
- - Copy the token value
67
-
68
- 2. Add the token to your GitHub repository secrets:
69
- - Go to your GitHub repository → Settings → Secrets and variables → Actions
70
- - Create a new repository secret named `PYPI_API_TOKEN`
71
- - Paste your PyPI token as the value
72
-
73
- After these steps, the automated release process will work whenever changes are pushed to the main branch.
74
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes