Skip to content

Commit 0c8a542

Browse files
author
PyCompiler ARK++
committed
Update documentation: add contributing guide, support matrix, and SDK creation guides; remove obsolete AC plugin guide
1 parent 3ae6b36 commit 0c8a542

6 files changed

Lines changed: 262 additions & 605 deletions

CONTRIBUTING.md

Lines changed: 0 additions & 343 deletions
Original file line numberDiff line numberDiff line change
@@ -1,343 +0,0 @@
1-
# Contributing Guide - PyCompiler ARK++
2-
3-
Thank you for your interest in contributing to PyCompiler ARK++! This guide explains how to contribute effectively to the project.
4-
5-
## Table of Contents
6-
7-
- [Code of Conduct](#code-of-conduct)
8-
- [How to Contribute](#how-to-contribute)
9-
- [Environment Setup](#environment-setup)
10-
- [Development Process](#development-process)
11-
- [Code Standards](#code-standards)
12-
- [Tests](#tests)
13-
- [Documentation](#documentation)
14-
- [Review Process](#review-process)
15-
- [Contribution Types](#contribution-types)
16-
- [Resources](#resources)
17-
- [Communication](#communication)
18-
- [FAQ](#faq)
19-
20-
## Code of Conduct
21-
22-
This project adheres to the [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.md). By participating, you agree to uphold this code. Please report unacceptable behavior to: ague.samuel27@gmail.com.
23-
24-
## How to Contribute
25-
26-
### Report Bugs
27-
28-
Before opening an issue:
29-
- Check that the bug hasn’t already been reported in [Issues](https://github.com/raidos23/PyCompiler-ARK-Professional/issues)
30-
- Ensure you’re using a supported version (see [SUPPORTED_MATRIX.md](SUPPORTED_MATRIX.md))
31-
32-
To report a bug:
33-
1. Use the "Bug Report" issue template
34-
2. Include detailed information about your environment
35-
3. Provide clear reproduction steps
36-
4. Attach logs or screenshots when relevant
37-
38-
### Propose Features
39-
40-
1. Check if it already exists in open issues or the roadmap
41-
2. Create an issue using the "Feature Request" template
42-
3. Clearly describe the problem to solve
43-
4. Propose a solution or alternatives
44-
5. Discuss with the community before starting implementation
45-
46-
### Contribute Code
47-
48-
1. Fork the repository
49-
2. Clone your fork locally
50-
3. Create a feature branch (`git checkout -b feature/my-feature`)
51-
4. Commit your changes (`git commit -am 'feat: add my feature'`)
52-
5. Push the branch (`git push origin feature/my-feature`)
53-
6. Open a Pull Request
54-
55-
## Environment Setup
56-
57-
### Prerequisites
58-
59-
- Python 3.10+ (recommended: 3.11)
60-
- Git
61-
- A code editor (VS Code recommended)
62-
63-
### Installation
64-
65-
```bash
66-
# Clone the repository
67-
git clone https://github.com/raidos23/PyCompiler-ARK-Professional.git
68-
cd PyCompiler-ARK-Professional
69-
70-
# Create a virtual environment
71-
python -m venv .venv
72-
source .venv/bin/activate # Linux/macOS
73-
# or
74-
.venv\Scripts\activate # Windows
75-
76-
# Install dependencies
77-
pip install -r requirements.txt -c constraints.txt
78-
79-
# Install dev tools
80-
pip install pre-commit black ruff mypy pytest
81-
82-
# Configure pre-commit
83-
pre-commit install
84-
```
85-
86-
### Verify Installation
87-
88-
```bash
89-
# Quick checks
90-
python main.py --version
91-
python -m pytest tests/ -v
92-
```
93-
94-
## Development Process
95-
96-
### Git Workflow
97-
98-
1. Main branches:
99-
- `main`: Stable, production-ready code
100-
- `develop`: Active development branch
101-
102-
2. Feature branches:
103-
- Format: `feature/short-description`
104-
- Based on `develop`
105-
- Merged via Pull Request
106-
107-
3. Fix branches:
108-
- Format: `fix/bug-description`
109-
- Based on `main` for critical hotfixes
110-
- Based on `develop` for regular fixes
111-
112-
4. Release branches:
113-
- Format: `release/x.y.z`
114-
- Created from `develop`
115-
- Merged into `main` and `develop`
116-
117-
### Commit Messages
118-
119-
Use [Conventional Commits](https://www.conventionalcommits.org/):
120-
121-
```
122-
type(scope): short description
123-
124-
More detailed description if needed.
125-
126-
Fixes #123
127-
```
128-
129-
Accepted types:
130-
- `feat`: New feature
131-
- `fix`: Bug fix
132-
- `docs`: Documentation only
133-
- `style`: Formatting changes
134-
- `refactor`: Refactoring with no functional change
135-
- `test`: Add or modify tests
136-
- `chore`: Maintenance, tooling, etc.
137-
138-
Examples:
139-
```
140-
fix(bcasl): fix plugin loading on macOS
141-
docs(api): update API SDK documentation
142-
```
143-
144-
## Code Standards
145-
146-
### Formatting
147-
148-
- Black: automatic Python code formatting
149-
- Ruff: linting and style checks
150-
- isort: import sorting (via Ruff)
151-
152-
```bash
153-
# Format code
154-
black .
155-
ruff format .
156-
157-
# Check style
158-
ruff check .
159-
```
160-
161-
### Type Hints
162-
163-
- Use type hints for all public functions
164-
- Validate types with `mypy`
165-
- Prefer modern generic types (`list[str]` instead of `List[str]`)
166-
167-
```python
168-
def process_files(files: list[str]) -> dict[str, bool]:
169-
"""Process a list of files and return success flags."""
170-
return {file: True for file in files}
171-
```
172-
173-
### Documentation
174-
175-
- Docstrings in Google/NumPy style
176-
- Document parameters and return values
177-
- Provide examples for complex functions
178-
179-
```python
180-
def compile_project(source_path: str, output_path: str, options: dict[str, Any]) -> bool:
181-
"""Compile a Python project.
182-
183-
Args:
184-
source_path: Path to the source code
185-
output_path: Output directory for artifacts
186-
options: Compilation options
187-
188-
Returns:
189-
True if the compilation succeeds, False otherwise
190-
191-
Raises:
192-
CompilationError: If compilation fails
193-
194-
Example:
195-
>>> compile_project("/src", "/dist", {"optimize": True})
196-
True
197-
"""
198-
```
199-
200-
### Code Structure
201-
202-
- Follow SOLID principles
203-
- Prefer composition over inheritance
204-
- Use descriptive names
205-
- Keep functions short and focused
206-
- Separate concerns
207-
208-
## Tests
209-
210-
### Types of Tests
211-
212-
1. Unit tests: isolated functions/classes
213-
2. Integration tests: interactions between components
214-
3. Functional tests: end-user flows
215-
216-
### Writing Tests
217-
218-
### Coverage
219-
220-
- Target: ≥ 80%
221-
- Focus on critical branches and error paths
222-
- Exclude test and UI files from coverage
223-
224-
## Documentation
225-
226-
### Types
227-
228-
1. Code: docstrings and inline comments
229-
2. API: public interfaces
230-
3. Guides: tutorials and how-tos
231-
4. Architecture: internal technical docs
232-
233-
### Updates
234-
235-
- Update docs with each API change
236-
- Add examples for new features
237-
- Verify links
238-
- Test code snippets
239-
240-
## Review Process
241-
242-
### Before Submitting
243-
244-
- [ ] Tests pass locally
245-
- [ ] Code formatted (black, ruff)
246-
- [ ] Types validated (mypy)
247-
- [ ] Documentation updated
248-
- [ ] Commits follow conventions
249-
- [ ] Branch is up to date with `develop`
250-
251-
### Review Criteria
252-
253-
Reviewers will check:
254-
- Functionality: Does the code do what it should?
255-
- Tests: Are there appropriate tests?
256-
- Performance: Any performance concerns?
257-
- Security: Any potential vulnerabilities?
258-
- Maintainability: Is the code readable and maintainable?
259-
- Compatibility: Any breaking changes?
260-
261-
### Process
262-
263-
1. Submission: open a PR with a clear description
264-
2. CI/CD: wait for all checks to pass
265-
3. Review: maintainers review the code
266-
4. Feedback: address review comments
267-
5. Approval: at least one maintainer approves
268-
6. Merge: a maintainer merges the PR
269-
270-
## Contribution Types
271-
272-
### Code
273-
274-
- New features
275-
- Bug fixes
276-
- Performance improvements
277-
- Refactoring
278-
279-
### Documentation
280-
281-
- User guides
282-
- API docs
283-
- Code examples
284-
- Translations (for user-facing docs only, not code/commit messages)
285-
286-
### Tests
287-
288-
- Unit tests
289-
- Integration tests
290-
- Performance tests
291-
- Security tests
292-
293-
### Plugins
294-
295-
- BCASL plugins
296-
- Compilation engines
297-
- Core Exetensions
298-
- UI themes
299-
300-
### Infrastructure
301-
302-
- Build scripts
303-
- CI/CD configuration
304-
- Developer tooling
305-
- Automation
306-
307-
## Resources
308-
309-
### Documentation
310-
- [About SDKs](docs/about_sdks.md) - Overview of available SDKs
311-
- [Create a Building Engine](docs/how_to_create_a_building_engine.md) - Engine development guide
312-
- [Create a BCASL Plugin](docs/how_to_create_a_bcasl_plugin.md) - Pre-compile plugin guide
313-
314-
315-
### Tools
316-
- [GitHub Issues](https://github.com/raidos23/PyCompiler-ARK-Professional/issues)
317-
- [Project Board](https://github.com/raidos23/PyCompiler-ARK-Professional/projects)
318-
- [Discussions](https://github.com/raidos23/PyCompiler-ARK-Professional/discussions)
319-
320-
## Communication
321-
322-
- Email: ague.samuel27@gmail.com
323-
324-
325-
## FAQ
326-
327-
### How do I get started?
328-
Look for issues labeled "good first issue" or "help wanted".
329-
330-
### Can I contribute without coding?
331-
Yes! Help with documentation, tests, translations (user docs), or bug reports.
332-
333-
### How long does PR review take?
334-
Typically 2–5 business days, depending on complexity.
335-
336-
### How do I become a maintainer?
337-
Contribute regularly and meaningfully, then contact the team.
338-
339-
---
340-
341-
Thank you for contributing to PyCompiler ARK++! Your help improves the tool for the entire community.
342-
343-
*Last updated: 06 September 2025*

SUPPORTED_MATRIX.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Support Matrix
2+
3+
This document lists officially supported platforms and versions for PyCompiler ARK++.
4+
5+
## Operating Systems
6+
7+
| OS | Versions | Arch | Status |
8+
|----------|---------------------------|------|--------|
9+
| Ubuntu | 20.04, 22.04, 24.04 (LTS) | x64 | ✅ Supported |
10+
| Windows | 10, 11 | x64 | ✅ Supported |
11+
| macOS ||| ❌ Not officially supported |
12+
13+
Notes:
14+
- macOS is not officially supported; some utilities may partially work but no active support is provided.
15+
16+
## Python Versions
17+
18+
| Python | Status |
19+
|--------|----------------|
20+
| 3.10 | ✅ Minimum |
21+
| 3.11 | ✅ Recommended |
22+
| 3.12 | ✅ Stable |
23+
| 3.13 | 🧪 Experimental|
24+
25+
## Compilation Engines
26+
27+
| Engine | Status | Notes |
28+
|-------------|--------|-------|
29+
| PyInstaller || Requires engine to resolve venv-local tool and manage options in tab |
30+
| Nuitka || Requires system toolchain on Linux/Windows; engine manages venv & flags |
31+
| cx_Freeze || Requires Python headers/tools per-platform; engine manages venv & flags |
32+
33+
## UI Libraries
34+
35+
| Binding | Status | Notes |
36+
|----------|--------|----------------------------------|
37+
| PySide6 || Actively tested |
38+
| PyQt6 | ⚠️ | Partial; depends on user project |
39+
40+
## General Notes
41+
- Prefer venv-local tools for reproducibility
42+
- Engines must keep the GUI responsive; avoid blocking calls
43+
- Internationalization support is available via async i18n utilities
44+

0 commit comments

Comments
 (0)