codestrain 0.1.0__tar.gz → 0.1.2__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.
@@ -0,0 +1,80 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ build:
10
+ name: Build distributions
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - name: Checkout
14
+ uses: actions/checkout@v4
15
+
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+
21
+ - name: Install build tooling
22
+ run: python -m pip install --upgrade build
23
+
24
+ - name: Build sdist and wheel
25
+ working-directory: .
26
+ run: python -m build
27
+
28
+ - name: Upload distributions
29
+ uses: actions/upload-artifact@v4
30
+ with:
31
+ name: dist
32
+ path: dist/
33
+
34
+ publish:
35
+ name: Publish to PyPI
36
+ needs: build
37
+ runs-on: ubuntu-latest
38
+ environment: pypi
39
+ permissions:
40
+ id-token: write
41
+ steps:
42
+ - name: Download distributions
43
+ uses: actions/download-artifact@v4
44
+ with:
45
+ name: dist
46
+ path: dist/
47
+
48
+ - name: Publish to PyPI via Trusted Publisher
49
+ uses: pypa/gh-action-pypi-publish@release/v1
50
+
51
+ bump-homebrew:
52
+ name: Bump Homebrew Formula
53
+ needs: publish
54
+ runs-on: ubuntu-latest
55
+ if: ${{ !contains(github.ref_name, 'rc') && !contains(github.ref_name, 'a') && !contains(github.ref_name, 'b') }}
56
+ steps:
57
+ # Wait briefly so the new sdist is queryable on PyPI's CDN.
58
+ - name: Wait for PyPI propagation
59
+ run: sleep 30
60
+
61
+ - name: Open PR against codestrain/homebrew-tap
62
+ uses: mislav/bump-homebrew-formula-action@v3
63
+ with:
64
+ formula-name: codestrain
65
+ formula-path: Formula/codestrain.rb
66
+ homebrew-tap: codestrain/homebrew-tap
67
+ base-branch: main
68
+ # Compute download URL from the just-published PyPI sdist.
69
+ # mislav/bump-homebrew-formula-action auto-strips `v` prefix from
70
+ # github.ref_name, so v0.1.2 → 0.1.2 in the URL.
71
+ download-url: https://files.pythonhosted.org/packages/source/c/codestrain/codestrain-${{ github.ref_name }}.tar.gz
72
+ commit-message: |
73
+ codestrain {{version}}
74
+
75
+ Auto-bumped by mislav/bump-homebrew-formula-action.
76
+ Source: https://github.com/codestrain/codestrain-cli/releases/tag/${{ github.ref_name }}
77
+ env:
78
+ # Fine-grained PAT with `Contents: write` on codestrain/homebrew-tap.
79
+ # Stored as a repo secret in codestrain/codestrain-cli.
80
+ COMMITTER_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
@@ -1,3 +1,28 @@
1
+ Metadata-Version: 2.4
2
+ Name: codestrain
3
+ Version: 0.1.2
4
+ Summary: Your AI coding recovery score, from the terminal.
5
+ Project-URL: Homepage, https://codestrain.dev
6
+ Project-URL: Repository, https://github.com/codestrain/codestrain-cli
7
+ Author: Ivan Kononov
8
+ License-Expression: MIT
9
+ License-File: LICENSE
10
+ Keywords: burnout,claude-code,developer-tools,drs,wellness
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Programming Language :: Python :: 3
15
+ Classifier: Programming Language :: Python :: 3 :: Only
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Topic :: Software Development
22
+ Classifier: Topic :: Utilities
23
+ Requires-Python: >=3.9
24
+ Description-Content-Type: text/markdown
25
+
1
26
  <p align="center"><img src="https://raw.githubusercontent.com/codestrain/codestrain-cli/main/.assets/logo.png" alt="CodeStrain" width="200"/></p>
2
27
 
3
28
  # CodeStrain CLI
@@ -5,10 +30,10 @@
5
30
  *Your AI coding recovery score, from the terminal.*
6
31
 
7
32
  <p align="center">
8
- <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/v/codestrain.svg" alt="PyPI version"/></a>
9
- <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/pyversions/codestrain.svg" alt="Python versions"/></a>
10
- <a href="https://github.com/codestrain/codestrain-cli/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/codestrain.svg" alt="License: MIT"/></a>
11
- <a href="https://github.com/codestrain/codestrain-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/codestrain/codestrain-cli/ci.yml?branch=main" alt="CI status"/></a>
33
+ <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/v/codestrain.svg?v=2" alt="PyPI version"/></a>
34
+ <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/pyversions/codestrain.svg?v=2" alt="Python versions"/></a>
35
+ <a href="https://github.com/codestrain/codestrain-cli/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/codestrain.svg?v=2" alt="License: MIT"/></a>
36
+ <a href="https://github.com/codestrain/codestrain-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/codestrain/codestrain-cli/ci.yml?branch=main&v=2" alt="CI status"/></a>
12
37
  </p>
13
38
 
14
39
  ## What is this
@@ -17,21 +42,56 @@ CodeStrain parses the Claude Code JSONL session logs already on your disk (`~/.c
17
42
 
18
43
  ## Install
19
44
 
45
+ The CLI is a single command. Pick the install path your machine prefers — all three put `codestrain` on your `$PATH`:
46
+
20
47
  ```bash
21
- # one-liner (recommended)
22
- curl -fsSL codestrain.dev/install | sh
48
+ # macOS — recommended (Homebrew)
49
+ brew install codestrain/tap/codestrain
50
+ codestrain --help
23
51
  ```
24
52
 
25
53
  ```bash
26
- # pipx
54
+ # any OS — pipx, isolated venv + symlink on PATH
27
55
  pipx install codestrain
56
+ codestrain --help
28
57
  ```
29
58
 
30
59
  ```bash
31
- # uv
60
+ # any OS — uv tool, fastest
32
61
  uv tool install codestrain
62
+ codestrain --help
33
63
  ```
34
64
 
65
+ ```bash
66
+ # one-liner installer — detects pipx/uv/pip and adds PATH automatically
67
+ curl -fsSL codestrain.dev/install | sh
68
+ ```
69
+
70
+ `pip install codestrain` works too, but leaves the binary off your `$PATH` on macOS (PEP 668 / user-install convention). See troubleshooting below.
71
+
72
+ <details>
73
+ <summary>If <code>codestrain: command not found</code> after <code>pip install codestrain</code></summary>
74
+
75
+ That's the macOS / PEP 668 quirk — pip installed the wheel but didn't put the entry-point on PATH. Three fixes, in order of preference:
76
+
77
+ ```bash
78
+ # (a) run it as a module — works without any PATH change
79
+ python3 -m codestrain_cli --all
80
+
81
+ # (b) switch to pipx (installs in isolated venv, fixes PATH)
82
+ brew install pipx # or: python3 -m pip install --user pipx
83
+ pipx ensurepath # adds ~/.local/bin to PATH
84
+ pipx install codestrain
85
+
86
+ # (c) find where pip put the binary and add that dir to PATH
87
+ pip show -f codestrain | grep -E 'bin/codestrain'
88
+ # typical macOS user-install path:
89
+ echo 'export PATH="$HOME/Library/Python/3.11/bin:$PATH"' >> ~/.zshrc
90
+ source ~/.zshrc
91
+ ```
92
+
93
+ </details>
94
+
35
95
  ## Quick start
36
96
 
37
97
  ```bash
@@ -1,23 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: codestrain
3
- Version: 0.1.0
4
- Summary: Your AI coding recovery score, from the terminal.
5
- Project-URL: Homepage, https://codestrain.dev
6
- Project-URL: Repository, https://github.com/codestrain/codestrain-cli
7
- Author: Ivan Kononov
8
- License-Expression: MIT
9
- License-File: LICENSE
10
- Keywords: burnout,claude-code,developer-tools,drs,wellness
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Environment :: Console
13
- Classifier: Intended Audience :: Developers
14
- Classifier: Programming Language :: Python :: 3
15
- Classifier: Programming Language :: Python :: 3 :: Only
16
- Classifier: Topic :: Software Development
17
- Classifier: Topic :: Utilities
18
- Requires-Python: >=3.9
19
- Description-Content-Type: text/markdown
20
-
21
1
  <p align="center"><img src="https://raw.githubusercontent.com/codestrain/codestrain-cli/main/.assets/logo.png" alt="CodeStrain" width="200"/></p>
22
2
 
23
3
  # CodeStrain CLI
@@ -25,10 +5,10 @@ Description-Content-Type: text/markdown
25
5
  *Your AI coding recovery score, from the terminal.*
26
6
 
27
7
  <p align="center">
28
- <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/v/codestrain.svg" alt="PyPI version"/></a>
29
- <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/pyversions/codestrain.svg" alt="Python versions"/></a>
30
- <a href="https://github.com/codestrain/codestrain-cli/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/codestrain.svg" alt="License: MIT"/></a>
31
- <a href="https://github.com/codestrain/codestrain-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/codestrain/codestrain-cli/ci.yml?branch=main" alt="CI status"/></a>
8
+ <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/v/codestrain.svg?v=2" alt="PyPI version"/></a>
9
+ <a href="https://pypi.org/project/codestrain/"><img src="https://img.shields.io/pypi/pyversions/codestrain.svg?v=2" alt="Python versions"/></a>
10
+ <a href="https://github.com/codestrain/codestrain-cli/blob/main/LICENSE"><img src="https://img.shields.io/pypi/l/codestrain.svg?v=2" alt="License: MIT"/></a>
11
+ <a href="https://github.com/codestrain/codestrain-cli/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/codestrain/codestrain-cli/ci.yml?branch=main&v=2" alt="CI status"/></a>
32
12
  </p>
33
13
 
34
14
  ## What is this
@@ -37,21 +17,56 @@ CodeStrain parses the Claude Code JSONL session logs already on your disk (`~/.c
37
17
 
38
18
  ## Install
39
19
 
20
+ The CLI is a single command. Pick the install path your machine prefers — all three put `codestrain` on your `$PATH`:
21
+
40
22
  ```bash
41
- # one-liner (recommended)
42
- curl -fsSL codestrain.dev/install | sh
23
+ # macOS — recommended (Homebrew)
24
+ brew install codestrain/tap/codestrain
25
+ codestrain --help
43
26
  ```
44
27
 
45
28
  ```bash
46
- # pipx
29
+ # any OS — pipx, isolated venv + symlink on PATH
47
30
  pipx install codestrain
31
+ codestrain --help
48
32
  ```
49
33
 
50
34
  ```bash
51
- # uv
35
+ # any OS — uv tool, fastest
52
36
  uv tool install codestrain
37
+ codestrain --help
53
38
  ```
54
39
 
40
+ ```bash
41
+ # one-liner installer — detects pipx/uv/pip and adds PATH automatically
42
+ curl -fsSL codestrain.dev/install | sh
43
+ ```
44
+
45
+ `pip install codestrain` works too, but leaves the binary off your `$PATH` on macOS (PEP 668 / user-install convention). See troubleshooting below.
46
+
47
+ <details>
48
+ <summary>If <code>codestrain: command not found</code> after <code>pip install codestrain</code></summary>
49
+
50
+ That's the macOS / PEP 668 quirk — pip installed the wheel but didn't put the entry-point on PATH. Three fixes, in order of preference:
51
+
52
+ ```bash
53
+ # (a) run it as a module — works without any PATH change
54
+ python3 -m codestrain_cli --all
55
+
56
+ # (b) switch to pipx (installs in isolated venv, fixes PATH)
57
+ brew install pipx # or: python3 -m pip install --user pipx
58
+ pipx ensurepath # adds ~/.local/bin to PATH
59
+ pipx install codestrain
60
+
61
+ # (c) find where pip put the binary and add that dir to PATH
62
+ pip show -f codestrain | grep -E 'bin/codestrain'
63
+ # typical macOS user-install path:
64
+ echo 'export PATH="$HOME/Library/Python/3.11/bin:$PATH"' >> ~/.zshrc
65
+ source ~/.zshrc
66
+ ```
67
+
68
+ </details>
69
+
55
70
  ## Quick start
56
71
 
57
72
  ```bash
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "codestrain"
3
- version = "0.1.0"
3
+ version = "0.1.2"
4
4
  description = "Your AI coding recovery score, from the terminal."
5
5
  requires-python = ">=3.9"
6
6
  readme = "README.md"
@@ -13,6 +13,11 @@ classifiers = [
13
13
  "Intended Audience :: Developers",
14
14
  "Programming Language :: Python :: 3",
15
15
  "Programming Language :: Python :: 3 :: Only",
16
+ "Programming Language :: Python :: 3.9",
17
+ "Programming Language :: Python :: 3.10",
18
+ "Programming Language :: Python :: 3.11",
19
+ "Programming Language :: Python :: 3.12",
20
+ "Programming Language :: Python :: 3.13",
16
21
  "Topic :: Software Development",
17
22
  "Topic :: Utilities",
18
23
  ]
@@ -1,49 +0,0 @@
1
- name: Release
2
-
3
- on:
4
- push:
5
- tags:
6
- - "v*"
7
-
8
- jobs:
9
- build:
10
- name: Build distributions
11
- runs-on: ubuntu-latest
12
- steps:
13
- - name: Checkout
14
- uses: actions/checkout@v4
15
-
16
- - name: Set up Python
17
- uses: actions/setup-python@v5
18
- with:
19
- python-version: "3.12"
20
-
21
- - name: Install build tooling
22
- run: python -m pip install --upgrade build
23
-
24
- - name: Build sdist and wheel
25
- working-directory: .
26
- run: python -m build
27
-
28
- - name: Upload distributions
29
- uses: actions/upload-artifact@v4
30
- with:
31
- name: dist
32
- path: dist/
33
-
34
- publish:
35
- name: Publish to PyPI
36
- needs: build
37
- runs-on: ubuntu-latest
38
- environment: pypi
39
- permissions:
40
- id-token: write
41
- steps:
42
- - name: Download distributions
43
- uses: actions/download-artifact@v4
44
- with:
45
- name: dist
46
- path: dist/
47
-
48
- - name: Publish to PyPI via Trusted Publisher
49
- uses: pypa/gh-action-pypi-publish@release/v1
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