Skip to content

Commit c50f223

Browse files
committed
Initial clean release of APM CLI v0.4.0
0 parents  commit c50f223

File tree

205 files changed

+40079
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

205 files changed

+40079
-0
lines changed

.apm/instructions/python.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
description: Python development guidelines
3+
applyTo: '**/*.py'
4+
---
5+
6+
Use type hints for all function parameters and return values.
7+
Follow PEP 8 style guidelines.
8+
Write comprehensive docstrings.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Run command '...'
16+
2. With parameters '....'
17+
3. See error
18+
19+
**Expected behavior**
20+
A clear and concise description of what you expected to happen.
21+
22+
**Environment (please complete the following information):**
23+
- OS: [e.g. macOS, Linux, Windows]
24+
- Python Version: [e.g. 3.12.0]
25+
- APM-CLI Version: [e.g. 0.1.0]
26+
- VSCode Version (if relevant): [e.g. 1.80.0]
27+
28+
**Logs**
29+
If applicable, add any error logs or screenshots.
30+
31+
**Additional context**
32+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: '[FEATURE] '
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!--
2+
🐛 BUG FIX TEMPLATE
3+
Please apply the "bug" or "fix" label after creating this PR
4+
-->
5+
6+
# 🐛 Bug Fix
7+
8+
## Problem
9+
Description of the bug that was fixed.
10+
11+
## Solution
12+
How this PR fixes the issue.
13+
14+
## Testing
15+
- [ ] Bug reproduction confirmed
16+
- [ ] Fix verified locally
17+
- [ ] Regression tests added (if applicable)
18+
- [ ] All existing tests pass
19+
20+
## Checklist
21+
- [ ] **LABEL**: Apply `bug` or `fix` label to this PR
22+
- [ ] Root cause identified and addressed
23+
- [ ] Edge cases considered
24+
25+
Fixes # (issue)
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!--
2+
📖 DOCUMENTATION TEMPLATE
3+
Please apply the "documentation" or "docs" label after creating this PR
4+
-->
5+
6+
# 📖 Documentation Update
7+
8+
## Changes
9+
Description of documentation changes made.
10+
11+
## Scope
12+
- [ ] README updates
13+
- [ ] API documentation
14+
- [ ] User guides
15+
- [ ] Code comments
16+
- [ ] Other: ___
17+
18+
## Checklist
19+
- [ ] **LABEL**: Apply `documentation` or `docs` label to this PR
20+
- [ ] Content is accurate and up-to-date
21+
- [ ] Links and references work correctly
22+
- [ ] Formatting is consistent
23+
24+
Fixes # (issue)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<!--
2+
🚀 NEW FEATURE TEMPLATE
3+
Please apply the "enhancement" or "feature" label after creating this PR
4+
-->
5+
6+
# 🚀 New Feature
7+
8+
## Description
9+
Brief description of the new feature and its benefits.
10+
11+
## Changes Made
12+
- [ ] Feature implementation
13+
- [ ] Tests added
14+
- [ ] Documentation updated
15+
16+
## Testing
17+
- [ ] Manual testing completed
18+
- [ ] All existing tests pass
19+
- [ ] New tests added and passing
20+
21+
## Checklist
22+
- [ ] **LABEL**: Apply `enhancement` or `feature` label to this PR
23+
- [ ] Code follows project style guidelines
24+
- [ ] Documentation updated (if needed)
25+
- [ ] CHANGELOG.md updated (for significant features)
26+
27+
Fixes # (issue)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!--
2+
🔧 MAINTENANCE TEMPLATE
3+
Use this for refactoring, dependency updates, CI changes, etc.
4+
-->
5+
6+
# 🔧 Maintenance
7+
8+
## Description
9+
Brief description of the maintenance changes.
10+
11+
## Type
12+
- [ ] Refactoring
13+
- [ ] Dependency updates
14+
- [ ] CI/CD improvements
15+
- [ ] Code cleanup
16+
- [ ] Performance improvements
17+
- [ ] Other: ___
18+
19+
## Testing
20+
- [ ] Changes tested locally
21+
- [ ] All existing tests pass
22+
- [ ] No functional changes to user-facing features
23+
24+
## Checklist
25+
- [ ] **LABEL**: Consider applying `ignore-for-release` if not user-facing
26+
- [ ] Code follows project style guidelines
27+
- [ ] No breaking changes introduced
28+
29+
Fixes # (issue)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
description: 'Software Architect and Engineer specialized in OSS and AI-Native development.'
3+
---
4+
5+
You are an AI Architect and Engineer, specializing in open source software (OSS) and AI-native development. Your expertise lies in designing and implementing AI-driven systems that are portable, reusable, and developer-friendly. You adhere to the [APM Manifesto](../../MANIFESTO.md).
6+
7+
In addition to this, you are a prominent developer tooling startup founder, who managed to quickly bootstrap businesses around simple open source projects with laser focus, simplicity, community-driven approach and extreme pragmatic engineering.
8+
9+
Your opinions are fully independent, you never incur on sycophancy, you are not afraid to challenge the status quo if needed and you are always looking for the best solution for the problem at hand, not the most popular or trendy one - except if that provides an adoption edge that outweighs the downsides.
10+

.github/copilot-instructions.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
- This project uses uv to manage Python environments and dependencies.
2+
- Use `uv sync` to create the virtual environment and install all dependencies automatically.
3+
- Use `uv run <command>` to run commands in the uv-managed environment.
4+
- For development dependencies, use `uv sync --extra dev`.
5+
- Unit tests are run with pytest, but remember you must activate the virtual environment first as described above.
6+
- **Development Workflow**: To run APM from source while working in other directories:
7+
- Install in development mode: `cd /path/to/awd-cli && uv run pip install -e .`
8+
- Use absolute path: `/Users/danielmeppiel/Repos/awd-cli/.venv/bin/apm compile --verbose --dry-run`
9+
- Or create alias: `alias apm-dev='/Users/danielmeppiel/Repos/awd-cli/.venv/bin/apm'`
10+
- Changes to source code are immediately reflected (no reinstall needed)
11+
- The solution must meet the functionality as explained in the [README.md](README.md) file.
12+
- The general high-level basis to the solution is depicted in [APPROACH.md](../../APPROACH.md).
13+
- When developing functionality, we need to respect our own [CONTRIBUTING.md](../../CONTRIBUTING.md) file.
14+
The architectural decisions and basis for the project in that document are only the inspiring foundation. It can and should always be challenged when needed and is not meant as the only truth, but a very useful context and grounding research.
15+
- The project is meant for the Open Source community and should be open to contributions and follow the standards of the community.
16+
- The project is meant to be used by developers and should be easy to use, with a focus on developer experience.
17+
- The philosophy when architecting and implementing the project is to prime speed and simplicity over complexity. Do NOT implement backwards compatibility: ship fast. Do NOT over-engineer, but rather build a solid foundation that can be iterated on.
18+
- We have no users, we do not need backwards compatibility, we do not need migration guides when we ship breaking changes, we do not need to worry.
19+
- The goal is to deliver a solid and scalable architecture but simple starting implementation. Not building something complex from the start and then having to simplify it later. Remember we are delivering a new tool to the developer community and we will need to rapidly adapt to what's really useful, evolving standards, etc.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
---
2+
applyTo: ".github/workflows/build-release.yml"
3+
description: "CI/CD Pipeline configuration for PyInstaller binary packaging and release workflow"
4+
---
5+
6+
# CI/CD Pipeline Instructions
7+
8+
## PyInstaller Binary Packaging
9+
- **CRITICAL**: Uses `--onedir` mode (NOT `--onefile`) for faster CLI startup performance
10+
- **Binary Structure**: Creates `dist/{binary_name}/apm` (nested directory containing executable + dependencies)
11+
- **Platform Naming**: `apm-{platform}-{arch}` (e.g., `apm-darwin-arm64`, `apm-linux-x86_64`)
12+
- **Spec File**: `build/apm.spec` handles data bundling, hidden imports, and UPX compression
13+
14+
## Artifact Flow Quirks
15+
- **Upload**: Artifacts include both binary directory + test scripts for isolation testing
16+
- **Download**: GitHub Actions creates nested structure: `{artifact_name}/dist/{binary_name}/apm`
17+
- **Release Prep**: Extract binary from nested path using `tar -czf "${binary}.tar.gz" -C "${artifact_dir}/dist" "${binary}"`
18+
19+
## Critical Testing Phases
20+
1. **Integration Tests**: Full source code access for comprehensive testing
21+
2. **Release Validation**: ISOLATION testing - no source checkout, validates exact shipped binary experience
22+
3. **Path Resolution**: Use symlinks and PATH manipulation for isolated binary testing
23+
24+
## Release Flow Dependencies
25+
- **Sequential Jobs**: test → build → integration-tests → release-validation → create-release → publish-pypi → update-homebrew
26+
- **Tag Triggers**: Only `v*.*.*` tags trigger full release pipeline
27+
- **Artifact Retention**: 30 days for debugging failed releases
28+
29+
## Key Environment Variables
30+
- `PYTHON_VERSION: '3.12'` - Standardized across all jobs
31+
- `GITHUB_TOKEN` - Fallback token for compatibility (GitHub Actions built-in)
32+
33+
## Performance Considerations
34+
- UPX compression when available (reduces binary size ~50%)
35+
- Python optimization level 2 in PyInstaller
36+
- Aggressive module exclusions (tkinter, matplotlib, etc.)
37+
- Matrix builds across platforms but sequential execution prevents resource conflicts

0 commit comments

Comments
 (0)