bivvy 1.0.0__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.
bivvy-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.4
2
+ Name: bivvy
3
+ Version: 1.0.0
4
+ Summary: Cross-language development environment setup automation
5
+ Author-email: Brenna Stuart <support@bivvy.dev>
6
+ License: FSL-1.1-Apache-2.0
7
+ Project-URL: Homepage, https://bivvy.dev
8
+ Project-URL: Repository, https://github.com/bivvy-dev/bivvy
9
+ Keywords: cli,setup,devtools,automation
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Console
12
+ Classifier: Programming Language :: Python :: 3
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+
16
+ # Bivvy
17
+
18
+ [![CI](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml/badge.svg)](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
19
+ [![codecov](https://codecov.io/gh/bivvy-dev/bivvy/branch/main/graph/badge.svg)](https://codecov.io/gh/bivvy-dev/bivvy)
20
+
21
+ > Cross-language development environment setup automation, built in Rust.
22
+ >
23
+ > "Set up your bivvy before the mission."
24
+
25
+ Bivvy replaces ad-hoc `bin/setup` scripts with declarative YAML configuration, smart state tracking, and a polished CLI.
26
+
27
+ ## Installation
28
+
29
+ ```bash
30
+ pip install bivvy
31
+ ```
32
+
33
+ ## Quick Start
34
+
35
+ ```bash
36
+ cd my-project
37
+ bivvy init
38
+ ```
39
+
40
+ ```bash
41
+ bivvy run
42
+ ```
43
+
44
+ ```bash
45
+ bivvy status
46
+ ```
47
+
48
+ ## What It Does
49
+
50
+ ```yaml
51
+ # .bivvy/config.yml
52
+ app_name: myapp
53
+
54
+ steps:
55
+ brew:
56
+ template: brew
57
+ ruby:
58
+ template: bundler
59
+ watches: [Gemfile.lock]
60
+ node:
61
+ template: yarn
62
+ watches: [yarn.lock]
63
+ db:
64
+ command: "rails db:prepare"
65
+ depends_on: [ruby]
66
+
67
+ workflows:
68
+ default:
69
+ steps: [brew, ruby, node, db]
70
+ ```
71
+
72
+ - **State tracking** — only re-runs what's needed
73
+ - **Watch files** — detects when dependencies change
74
+ - **Error recovery** — retry, fix, skip, or drop to shell
75
+ - **Template registry** — reusable, shareable step definitions
76
+ - **Remote sources** — central team templates via HTTP or Git
77
+ - **Secret masking** — sensitive values hidden in output
78
+ - **Multiple output formats** — human, JSON, SARIF for lint
79
+
80
+ ## Commands
81
+
82
+ | Command | Description |
83
+ |---------|-------------|
84
+ | `bivvy run` | Run setup workflow |
85
+ | `bivvy init` | Initialize configuration |
86
+ | `bivvy status` | Show current status |
87
+ | `bivvy list` | List steps and workflows |
88
+ | `bivvy lint` | Validate configuration |
89
+ | `bivvy last` | Show last run info |
90
+ | `bivvy history` | Show execution history |
91
+ | `bivvy config` | Show resolved configuration |
92
+ | `bivvy cache` | Manage template cache |
93
+ | `bivvy feedback` | Capture friction points |
94
+ | `bivvy completions` | Generate shell completions |
95
+
96
+ ## Documentation
97
+
98
+ Full documentation available at [bivvy.dev](https://bivvy.dev)
99
+
100
+ - [Configuration](https://github.com/bivvy-dev/bivvy/blob/main/docs/configuration/index.md)
101
+ - [Templates](https://github.com/bivvy-dev/bivvy/blob/main/docs/templates/index.md)
102
+ - [CLI Reference](https://github.com/bivvy-dev/bivvy/blob/main/docs/commands/index.md)
103
+
104
+ ## Supported Platforms
105
+
106
+ | Platform | Architecture |
107
+ |----------|--------------|
108
+ | Linux | x64, arm64 |
109
+ | macOS | x64, arm64 |
110
+ | Windows | x64 |
111
+
112
+ ## License
113
+
114
+ [FSL-1.1-Apache-2.0](https://github.com/bivvy-dev/bivvy/blob/main/LICENSE) - Functional Source License with Apache 2.0 future license (converts to Apache 2.0 after 2 years)
bivvy-1.0.0/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # Bivvy
2
+
3
+ [![CI](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml/badge.svg)](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
4
+ [![codecov](https://codecov.io/gh/bivvy-dev/bivvy/branch/main/graph/badge.svg)](https://codecov.io/gh/bivvy-dev/bivvy)
5
+
6
+ > Cross-language development environment setup automation, built in Rust.
7
+ >
8
+ > "Set up your bivvy before the mission."
9
+
10
+ Bivvy replaces ad-hoc `bin/setup` scripts with declarative YAML configuration, smart state tracking, and a polished CLI.
11
+
12
+ ## Installation
13
+
14
+ ```bash
15
+ pip install bivvy
16
+ ```
17
+
18
+ ## Quick Start
19
+
20
+ ```bash
21
+ cd my-project
22
+ bivvy init
23
+ ```
24
+
25
+ ```bash
26
+ bivvy run
27
+ ```
28
+
29
+ ```bash
30
+ bivvy status
31
+ ```
32
+
33
+ ## What It Does
34
+
35
+ ```yaml
36
+ # .bivvy/config.yml
37
+ app_name: myapp
38
+
39
+ steps:
40
+ brew:
41
+ template: brew
42
+ ruby:
43
+ template: bundler
44
+ watches: [Gemfile.lock]
45
+ node:
46
+ template: yarn
47
+ watches: [yarn.lock]
48
+ db:
49
+ command: "rails db:prepare"
50
+ depends_on: [ruby]
51
+
52
+ workflows:
53
+ default:
54
+ steps: [brew, ruby, node, db]
55
+ ```
56
+
57
+ - **State tracking** — only re-runs what's needed
58
+ - **Watch files** — detects when dependencies change
59
+ - **Error recovery** — retry, fix, skip, or drop to shell
60
+ - **Template registry** — reusable, shareable step definitions
61
+ - **Remote sources** — central team templates via HTTP or Git
62
+ - **Secret masking** — sensitive values hidden in output
63
+ - **Multiple output formats** — human, JSON, SARIF for lint
64
+
65
+ ## Commands
66
+
67
+ | Command | Description |
68
+ |---------|-------------|
69
+ | `bivvy run` | Run setup workflow |
70
+ | `bivvy init` | Initialize configuration |
71
+ | `bivvy status` | Show current status |
72
+ | `bivvy list` | List steps and workflows |
73
+ | `bivvy lint` | Validate configuration |
74
+ | `bivvy last` | Show last run info |
75
+ | `bivvy history` | Show execution history |
76
+ | `bivvy config` | Show resolved configuration |
77
+ | `bivvy cache` | Manage template cache |
78
+ | `bivvy feedback` | Capture friction points |
79
+ | `bivvy completions` | Generate shell completions |
80
+
81
+ ## Documentation
82
+
83
+ Full documentation available at [bivvy.dev](https://bivvy.dev)
84
+
85
+ - [Configuration](https://github.com/bivvy-dev/bivvy/blob/main/docs/configuration/index.md)
86
+ - [Templates](https://github.com/bivvy-dev/bivvy/blob/main/docs/templates/index.md)
87
+ - [CLI Reference](https://github.com/bivvy-dev/bivvy/blob/main/docs/commands/index.md)
88
+
89
+ ## Supported Platforms
90
+
91
+ | Platform | Architecture |
92
+ |----------|--------------|
93
+ | Linux | x64, arm64 |
94
+ | macOS | x64, arm64 |
95
+ | Windows | x64 |
96
+
97
+ ## License
98
+
99
+ [FSL-1.1-Apache-2.0](https://github.com/bivvy-dev/bivvy/blob/main/LICENSE) - Functional Source License with Apache 2.0 future license (converts to Apache 2.0 after 2 years)
@@ -0,0 +1,72 @@
1
+ """Bivvy CLI - Cross-language development environment setup automation."""
2
+
3
+ import platform
4
+ import subprocess
5
+ import sys
6
+ import tarfile
7
+ import urllib.request
8
+ from pathlib import Path
9
+
10
+ __version__ = "1.0.0"
11
+
12
+ BINARY_DIR = Path(__file__).parent / "bin"
13
+ BINARY_NAME = "bivvy.exe" if sys.platform == "win32" else "bivvy"
14
+ BINARY_PATH = BINARY_DIR / BINARY_NAME
15
+ GITHUB_REPO = "bivvy-dev/bivvy"
16
+
17
+
18
+ def get_platform() -> str:
19
+ """Get the platform string for downloads."""
20
+ system = platform.system().lower()
21
+ machine = platform.machine().lower()
22
+
23
+ os_map = {"darwin": "darwin", "linux": "linux", "windows": "windows"}
24
+ arch_map = {"x86_64": "x64", "amd64": "x64", "arm64": "arm64", "aarch64": "arm64"}
25
+
26
+ os_name = os_map.get(system)
27
+ arch_name = arch_map.get(machine)
28
+
29
+ if not os_name or not arch_name:
30
+ raise RuntimeError(f"Unsupported platform: {system}-{machine}")
31
+
32
+ return f"{os_name}-{arch_name}"
33
+
34
+
35
+ def download_binary() -> None:
36
+ """Download the bivvy binary for the current platform."""
37
+ plat = get_platform()
38
+ url = f"https://github.com/{GITHUB_REPO}/releases/download/v{__version__}/bivvy-{plat}.tar.gz"
39
+
40
+ print(f"Downloading bivvy from {url}")
41
+
42
+ BINARY_DIR.mkdir(parents=True, exist_ok=True)
43
+
44
+ with urllib.request.urlopen(url) as response: # noqa: S310
45
+ with tarfile.open(fileobj=response, mode="r:gz") as tar:
46
+ for member in tar.getmembers():
47
+ if member.name == "bivvy":
48
+ member.name = BINARY_NAME
49
+ tar.extract(member, BINARY_DIR)
50
+
51
+ if sys.platform != "win32":
52
+ BINARY_PATH.chmod(0o755)
53
+
54
+ print("bivvy installed successfully")
55
+
56
+
57
+ def ensure_binary() -> Path:
58
+ """Ensure the binary exists, downloading if necessary."""
59
+ if not BINARY_PATH.exists():
60
+ download_binary()
61
+ return BINARY_PATH
62
+
63
+
64
+ def main() -> None:
65
+ """Run the bivvy binary."""
66
+ binary = ensure_binary()
67
+ result = subprocess.run([str(binary), *sys.argv[1:]], check=False)
68
+ sys.exit(result.returncode)
69
+
70
+
71
+ if __name__ == "__main__":
72
+ main()
@@ -0,0 +1,114 @@
1
+ Metadata-Version: 2.4
2
+ Name: bivvy
3
+ Version: 1.0.0
4
+ Summary: Cross-language development environment setup automation
5
+ Author-email: Brenna Stuart <support@bivvy.dev>
6
+ License: FSL-1.1-Apache-2.0
7
+ Project-URL: Homepage, https://bivvy.dev
8
+ Project-URL: Repository, https://github.com/bivvy-dev/bivvy
9
+ Keywords: cli,setup,devtools,automation
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Console
12
+ Classifier: Programming Language :: Python :: 3
13
+ Requires-Python: >=3.8
14
+ Description-Content-Type: text/markdown
15
+
16
+ # Bivvy
17
+
18
+ [![CI](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml/badge.svg)](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
19
+ [![codecov](https://codecov.io/gh/bivvy-dev/bivvy/branch/main/graph/badge.svg)](https://codecov.io/gh/bivvy-dev/bivvy)
20
+
21
+ > Cross-language development environment setup automation, built in Rust.
22
+ >
23
+ > "Set up your bivvy before the mission."
24
+
25
+ Bivvy replaces ad-hoc `bin/setup` scripts with declarative YAML configuration, smart state tracking, and a polished CLI.
26
+
27
+ ## Installation
28
+
29
+ ```bash
30
+ pip install bivvy
31
+ ```
32
+
33
+ ## Quick Start
34
+
35
+ ```bash
36
+ cd my-project
37
+ bivvy init
38
+ ```
39
+
40
+ ```bash
41
+ bivvy run
42
+ ```
43
+
44
+ ```bash
45
+ bivvy status
46
+ ```
47
+
48
+ ## What It Does
49
+
50
+ ```yaml
51
+ # .bivvy/config.yml
52
+ app_name: myapp
53
+
54
+ steps:
55
+ brew:
56
+ template: brew
57
+ ruby:
58
+ template: bundler
59
+ watches: [Gemfile.lock]
60
+ node:
61
+ template: yarn
62
+ watches: [yarn.lock]
63
+ db:
64
+ command: "rails db:prepare"
65
+ depends_on: [ruby]
66
+
67
+ workflows:
68
+ default:
69
+ steps: [brew, ruby, node, db]
70
+ ```
71
+
72
+ - **State tracking** — only re-runs what's needed
73
+ - **Watch files** — detects when dependencies change
74
+ - **Error recovery** — retry, fix, skip, or drop to shell
75
+ - **Template registry** — reusable, shareable step definitions
76
+ - **Remote sources** — central team templates via HTTP or Git
77
+ - **Secret masking** — sensitive values hidden in output
78
+ - **Multiple output formats** — human, JSON, SARIF for lint
79
+
80
+ ## Commands
81
+
82
+ | Command | Description |
83
+ |---------|-------------|
84
+ | `bivvy run` | Run setup workflow |
85
+ | `bivvy init` | Initialize configuration |
86
+ | `bivvy status` | Show current status |
87
+ | `bivvy list` | List steps and workflows |
88
+ | `bivvy lint` | Validate configuration |
89
+ | `bivvy last` | Show last run info |
90
+ | `bivvy history` | Show execution history |
91
+ | `bivvy config` | Show resolved configuration |
92
+ | `bivvy cache` | Manage template cache |
93
+ | `bivvy feedback` | Capture friction points |
94
+ | `bivvy completions` | Generate shell completions |
95
+
96
+ ## Documentation
97
+
98
+ Full documentation available at [bivvy.dev](https://bivvy.dev)
99
+
100
+ - [Configuration](https://github.com/bivvy-dev/bivvy/blob/main/docs/configuration/index.md)
101
+ - [Templates](https://github.com/bivvy-dev/bivvy/blob/main/docs/templates/index.md)
102
+ - [CLI Reference](https://github.com/bivvy-dev/bivvy/blob/main/docs/commands/index.md)
103
+
104
+ ## Supported Platforms
105
+
106
+ | Platform | Architecture |
107
+ |----------|--------------|
108
+ | Linux | x64, arm64 |
109
+ | macOS | x64, arm64 |
110
+ | Windows | x64 |
111
+
112
+ ## License
113
+
114
+ [FSL-1.1-Apache-2.0](https://github.com/bivvy-dev/bivvy/blob/main/LICENSE) - Functional Source License with Apache 2.0 future license (converts to Apache 2.0 after 2 years)
@@ -0,0 +1,8 @@
1
+ README.md
2
+ pyproject.toml
3
+ bivvy/__init__.py
4
+ bivvy.egg-info/PKG-INFO
5
+ bivvy.egg-info/SOURCES.txt
6
+ bivvy.egg-info/dependency_links.txt
7
+ bivvy.egg-info/entry_points.txt
8
+ bivvy.egg-info/top_level.txt
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ bivvy = bivvy_cli:main
@@ -0,0 +1 @@
1
+ bivvy
@@ -0,0 +1,27 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "bivvy"
7
+ version = "1.0.0"
8
+ description = "Cross-language development environment setup automation"
9
+ readme = "README.md"
10
+ license = {text = "FSL-1.1-Apache-2.0"}
11
+ authors = [
12
+ {name = "Brenna Stuart", email = "support@bivvy.dev"}
13
+ ]
14
+ keywords = ["cli", "setup", "devtools", "automation"]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Environment :: Console",
18
+ "Programming Language :: Python :: 3",
19
+ ]
20
+ requires-python = ">=3.8"
21
+
22
+ [project.urls]
23
+ Homepage = "https://bivvy.dev"
24
+ Repository = "https://github.com/bivvy-dev/bivvy"
25
+
26
+ [project.scripts]
27
+ bivvy = "bivvy_cli:main"
bivvy-1.0.0/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+