Skip to content

Commit efac1a2

Browse files
committed
docs: add modern development standards section to README
Signed-off-by: longhao <[email protected]>
1 parent 9cb0fed commit efac1a2

File tree

1 file changed

+90
-4
lines changed

1 file changed

+90
-4
lines changed

README.md

Lines changed: 90 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141

4242
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
4343
[![All Contributors](https://img.shields.io/badge/all_contributors-18-orange.svg?style=flat-square)](#contributors-)
44-
<!-- ALL-CONTRIBUTORS-BADGE:END -->
44+
<!-- ALL-CONTRIBUTORS-BADGE:END -->
4545
</p>
4646

4747
<p align="center">Python API for Photoshop.</p>
@@ -72,7 +72,7 @@ pip install photoshop_python_api
7272
```
7373

7474

75-
Since it uses COM (Component Object Model) connect Photoshop, it can be used
75+
Since it uses COM (Component Object Model) connect Photoshop, it can be used
7676
in any DCC software with a python interpreter.
7777

7878

@@ -183,8 +183,8 @@ Contributions of any kind are welcome!
183183
how to get Photoshop program ID
184184
-------------------------------
185185
```PS>
186-
Get-ChildItem "HKLM:\SOFTWARE\Classes" |
187-
?{ ($_.PSChildName -match "^[a-z]+\.[a-z]+(\.\d+)?$") -and ($_.GetSubKeyNames() -contains "CLSID") } |
186+
Get-ChildItem "HKLM:\SOFTWARE\Classes" |
187+
?{ ($_.PSChildName -match "^[a-z]+\.[a-z]+(\.\d+)?$") -and ($_.GetSubKeyNames() -contains "CLSID") } |
188188
?{ $_.PSChildName -match "Photoshop.Application" } | ft PSChildName
189189
```
190190
![get_program_id](https://i.imgur.com/UwPN7qq.png)
@@ -208,3 +208,89 @@ Useful links
208208
- http://www.tonton-pixel.com/scripts/utility-scripts/get-equivalent-id-code/index.html
209209
- https://github.com/Adobe-CEP/Samples/tree/master/PhotoshopEvents
210210
- https://evanmccall.wordpress.com/2015/03/09/how-to-develop-photoshop-tools-in-python
211+
212+
213+
## 🛠️ Development Guide
214+
215+
Welcome to the development guide for the Photoshop Python API project! This section outlines our development practices and standards to ensure code quality and consistency.
216+
217+
### 📋 Quick Start for Contributors
218+
219+
```bash
220+
# Clone the repository
221+
git clone https://github.com/loonghao/photoshop-python-api.git
222+
cd photoshop-python-api
223+
224+
# Install dependencies with Poetry
225+
poetry install
226+
227+
# Install pre-commit hooks
228+
pre-commit install
229+
230+
# Run tests
231+
pytest
232+
```
233+
234+
### 🎨 Code Style & Quality
235+
236+
We maintain high code quality standards through automated tools and consistent style guidelines:
237+
238+
- **Style Guide**: We follow the [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html) with project-specific adjustments:
239+
- Line length: 120 characters max
240+
- Docstrings: Google style format
241+
- Quotes: Double quotes preferred
242+
243+
- **Quality Tools**:
244+
- [Black](https://black.readthedocs.io/) - Code formatting
245+
- [isort](https://pycqa.github.io/isort/) - Import organization
246+
- [flake8](https://flake8.pycqa.org/) - Style enforcement
247+
- [pre-commit](https://pre-commit.com/) - Automated checks before commits
248+
249+
### 🔄 Git Workflow
250+
251+
We use a structured workflow to maintain a clean and organized repository:
252+
253+
- **Commit Messages**: Follow [Conventional Commits](https://www.conventionalcommits.org/) format
254+
255+
```text
256+
<type>(<scope>): <description>
257+
258+
[optional body]
259+
260+
[optional footer(s)]
261+
```
262+
263+
Common types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
264+
265+
- **Branching Strategy**:
266+
- Main branch: `main` - Always stable and deployable
267+
- Feature branches: `feature/<feature-name>`
268+
- Bug fixes: `fix/<bug-description>`
269+
- Documentation: `docs/<doc-description>`
270+
271+
### 🧪 Testing
272+
273+
We value thorough testing to ensure reliability:
274+
275+
- **Framework**: We use `pytest` for all tests
276+
- **Coverage**: Aim for high test coverage on new features
277+
- **Run Tests**: `pytest` or `poetry run pytest`
278+
279+
### 📦 Development Environment
280+
281+
- **Python Versions**: We support Python 3.8+ (see `pyproject.toml` for specifics)
282+
- **Dependency Management**: [Poetry](https://python-poetry.org/) for consistent environments
283+
- **Virtual Environment**: Poetry automatically creates and manages virtual environments
284+
285+
### 🤝 Contributing Process
286+
287+
1. **Fork & Clone**: Fork the repository and clone your fork
288+
2. **Branch**: Create a feature branch with a descriptive name
289+
3. **Develop**: Make your changes following our code style guidelines
290+
4. **Test**: Ensure all tests pass and add new tests for new features
291+
5. **Commit**: Use conventional commit format for clear history
292+
6. **Push & PR**: Push your branch and create a Pull Request
293+
7. **Review**: Address any feedback from code reviews
294+
8. **Merge**: Once approved, your PR will be merged
295+
296+
Thank you for contributing to the Photoshop Python API project! 🎉

0 commit comments

Comments
 (0)