diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 58fe25e..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,211 +0,0 @@ -# Contributing to py-aps - -Thank you for your interest in contributing to py-aps! This document provides guidelines and instructions for contributing to the project. - -## Getting Started - -1. Fork the repository -2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/pyaps.git` -3. Create a new branch: `git checkout -b your-feature-branch` -4. Make your changes -5. Commit your changes following our commit convention (see below) -6. Push to your fork: `git push origin your-feature-branch` -7. Open a Pull Request - -## Commit Convention - -We follow a structured commit message format to maintain a clear and readable project history. All commit messages should follow this pattern: - -``` -: - -[optional body] - -[optional footer] -``` - -### Commit Types - -- **FEAT**: A new feature - ``` - FEAT: Add OAuth2 authentication flow - ``` - -- **FIX**: A bug fix - ``` - FIX: Resolve token refresh issue in auth module - ``` - -- **DOCS**: Documentation changes - ``` - DOCS: Update authentication examples in README - ``` - -- **BUILD**: Changes to build system or dependencies - ``` - BUILD: Update setuptools version requirement - ``` - -- **CHORE**: Routine tasks, maintenance, or tooling changes - ``` - CHORE: Update .gitignore for Python artifacts - ``` - -- **REFACTOR**: Code changes that neither fix bugs nor add features - ``` - REFACTOR: Simplify data management API client initialization - ``` - -- **TEST**: Adding or updating tests - ``` - TEST: Add unit tests for authentication module - ``` - -### Commit Message Guidelines - -1. **Subject Line** - - Use the imperative mood ("Add feature" not "Added feature") - - Keep it concise (50 characters or less) - - Capitalize the first letter after the type prefix - - Do not end with a period - -2. **Body** (optional) - - Provide additional context about the changes - - Explain the "why" behind the change, not just the "what" - - Wrap lines at 72 characters - -3. **Footer** (optional) - - Reference related issues: `Fixes #123` or `Closes #456` - - Note breaking changes: `BREAKING CHANGE: Description of the breaking change` - -### Examples - -**Simple commit:** -``` -FEAT: Add support for BIM 360 data management -``` - -**Commit with body:** -``` -FIX: Resolve authentication token expiration handling - -The previous implementation did not properly handle token refresh -when the access token expired during long-running operations. -This commit adds automatic token refresh logic. - -Fixes #42 -``` - -**Breaking change:** -``` -REFACTOR: Change authentication initialization parameters - -BREAKING CHANGE: The `auth.Client()` constructor now requires -`client_id` and `client_secret` as separate parameters instead -of a single `credentials` dict. - -Migration guide: -- Before: `Client(credentials={'id': '...', 'secret': '...'})` -- After: `Client(client_id='...', client_secret='...')` -``` - -## Code Style - -- Follow [PEP 8](https://pep8.org/) style guide for Python code -- Use meaningful variable and function names -- Add docstrings to all public functions and classes -- Keep functions focused and single-purpose - -## Testing - -We use `pytest` for testing. All code contributions should include tests. - -### Setting Up Testing Environment - -1. Install development dependencies: - ```bash - pip install -e ".[dev]" - ``` - -2. This will install: - - `pytest` - Testing framework - - `pytest-cov` - Code coverage plugin - - `pytest-asyncio` - Async testing support - -### Running Tests - -Run all tests: -```bash -pytest -``` - -Run tests with coverage report: -```bash -pytest --cov=pyaps --cov-report=term-missing -``` - -Run specific test file: -```bash -pytest tests/test_auth.py -``` - -Run specific test function: -```bash -pytest tests/test_auth.py::test_oauth_flow -``` - -### Writing Tests - -- Place test files in the `tests/` directory -- Name test files with `test_` prefix (e.g., `test_auth.py`) -- Name test functions with `test_` prefix (e.g., `def test_oauth_flow()`) -- Write clear, descriptive test names that explain what is being tested -- Include docstrings for complex tests -- Aim for high test coverage (>80%) - -**Example test:** -```python -def test_authentication_with_valid_credentials(): - """Test that authentication succeeds with valid credentials.""" - client = auth.Client(client_id="valid_id", client_secret="valid_secret") - token = client.authenticate() - assert token is not None - assert token.access_token is not None -``` - -### Test Requirements - -- All new features must include tests -- All bug fixes must include regression tests -- Tests must pass on all supported Python versions (3.9, 3.10, 3.11, 3.12) -- Tests must pass on all platforms (Linux, macOS, Windows) - -### Continuous Integration - -All pull requests automatically run tests via GitHub Actions on: -- Multiple Python versions (3.9, 3.10, 3.11, 3.12) -- Multiple operating systems (Ubuntu, Windows, macOS) - -PRs will only be merged if all tests pass. - -## Pull Request Process - -1. **Update Documentation**: Update the README.md or relevant documentation for any user-facing changes -2. **Add Tests**: Include tests that cover your changes -3. **Follow Commit Convention**: Ensure your commits follow the convention outlined above -4. **Keep PRs Focused**: One PR should address one feature or fix -5. **Write Clear PR Description**: - - Summarize what the PR does - - Reference related issues - - Highlight any breaking changes - - Include testing instructions if applicable - -## Questions? - -If you have questions or need help, please: -- Open an issue on GitHub -- Check existing issues and discussions - -## License - -By contributing to py-aps, you agree that your contributions will be licensed under the Apache-2.0 License. diff --git a/README.md b/README.md index ac158f4..536c7e3 100644 --- a/README.md +++ b/README.md @@ -26,56 +26,19 @@ from pyaps import auth # Coming soon - SDK implementation in progress ``` -## Development - -### Setting Up Development Environment - -1. Clone the repository: - ```bash - git clone https://github.com/voidbox-ai/pyaps.git - cd pyaps - ``` - -2. Install in development mode with test dependencies: - ```bash - pip install -e ".[dev]" - ``` - -### Running Tests - -Run all tests: -```bash -pytest -``` - -Run with coverage report: -```bash -pytest --cov=pyaps --cov-report=term-missing -``` - -### Continuous Integration - -All pull requests are automatically tested via GitHub Actions on: -- Python versions: 3.9, 3.10, 3.11, 3.12 -- Operating systems: Ubuntu, Windows, macOS - -Tests must pass before merging. - ## Project Status -This package is currently in early development (v0.0.1). The package name has been reserved on PyPI, and active development is underway. +This package is currently in early development (v0.0.1). The package name has been reserved on PyPI, and active development is underway by **voidbox**. ## Contributing -Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) before submitting a Pull Request. +We welcome bug reports and feature requests through [GitHub Issues](https://github.com/voidbox-ai/pyaps/issues). -### Quick Links for Contributors -- [Contributing Guidelines](CONTRIBUTING.md) - Full contribution guide -- [Commit Convention](.github/COMMIT_CONVENTION.md) - Quick reference for commit messages +This project is primarily developed by voidbox. External pull requests have limited review capacity. ## License -This project is licensed under the Apache-2.0 License - see the [LICENSE](LICENSE) file for details. +Apache-2.0 License - see the [LICENSE](LICENSE) file for details. ## Links