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 +114 -0
- bivvy-1.0.0/README.md +99 -0
- bivvy-1.0.0/bivvy/__init__.py +72 -0
- bivvy-1.0.0/bivvy.egg-info/PKG-INFO +114 -0
- bivvy-1.0.0/bivvy.egg-info/SOURCES.txt +8 -0
- bivvy-1.0.0/bivvy.egg-info/dependency_links.txt +1 -0
- bivvy-1.0.0/bivvy.egg-info/entry_points.txt +2 -0
- bivvy-1.0.0/bivvy.egg-info/top_level.txt +1 -0
- bivvy-1.0.0/pyproject.toml +27 -0
- bivvy-1.0.0/setup.cfg +4 -0
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
|
+
[](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
|
|
19
|
+
[](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
|
+
[](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
|
|
4
|
+
[](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
|
+
[](https://github.com/bivvy-dev/bivvy/actions/workflows/test.yml)
|
|
19
|
+
[](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 @@
|
|
|
1
|
+
|
|
@@ -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