Skip to content

Commit d69cb95

Browse files
docs: add comprehensive contributing guide and project documentation
1 parent 4f9acfa commit d69cb95

File tree

2 files changed

+503
-1
lines changed

2 files changed

+503
-1
lines changed

β€ŽCONTRIBUTING.mdβ€Ž

Lines changed: 339 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,339 @@
1+
# Contributing to ENV Storage Manager
2+
3+
First off, thank you for considering contributing to ENV Storage Manager! πŸŽ‰
4+
5+
It's people like you that make ENV Storage Manager such a great tool for the developer community.
6+
7+
## πŸ“‹ Table of Contents
8+
9+
- [Code of Conduct](#code-of-conduct)
10+
- [How Can I Contribute?](#how-can-i-contribute)
11+
- [Getting Started](#getting-started)
12+
- [Development Setup](#development-setup)
13+
- [Pull Request Process](#pull-request-process)
14+
- [Style Guidelines](#style-guidelines)
15+
- [Commit Message Guidelines](#commit-message-guidelines)
16+
- [Hacktoberfest Guidelines](#hacktoberfest-guidelines)
17+
18+
## πŸ“œ Code of Conduct
19+
20+
This project and everyone participating in it is governed by our [Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to the project maintainers.
21+
22+
## πŸ€” How Can I Contribute?
23+
24+
### Reporting Bugs πŸ›
25+
26+
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
27+
28+
- **Use a clear and descriptive title**
29+
- **Describe the exact steps to reproduce the problem**
30+
- **Provide specific examples**
31+
- **Describe the behavior you observed and what you expected**
32+
- **Include screenshots if relevant**
33+
- **Include your environment details** (OS, Python version, etc.)
34+
35+
### Suggesting Enhancements πŸ’‘
36+
37+
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
38+
39+
- **Use a clear and descriptive title**
40+
- **Provide a detailed description of the suggested enhancement**
41+
- **Explain why this enhancement would be useful**
42+
- **List any similar features in other tools**
43+
44+
### Your First Code Contribution 🌱
45+
46+
Unsure where to begin? Look for issues labeled:
47+
48+
- `good first issue` - Issues suitable for beginners
49+
- `help wanted` - Issues where we need community help
50+
- `documentation` - Help improve our docs
51+
- `bug` - Fix known bugs
52+
53+
### Pull Requests πŸš€
54+
55+
- Fill in the required template
56+
- Follow the style guidelines
57+
- Include appropriate test cases
58+
- Update documentation as needed
59+
- End all files with a newline
60+
61+
## 🏁 Getting Started
62+
63+
1. **Fork the repository** on GitHub
64+
2. **Clone your fork** locally:
65+
```bash
66+
git clone https://github.com/YOUR-USERNAME/ENV_Storage.git
67+
cd ENV_Storage
68+
```
69+
3. **Add the upstream repository**:
70+
```bash
71+
git remote add upstream https://github.com/curiouscoder-cmd/ENV_Storage.git
72+
```
73+
4. **Create a branch** for your changes:
74+
```bash
75+
git checkout -b feature/your-feature-name
76+
```
77+
78+
## πŸ› οΈ Development Setup
79+
80+
### Prerequisites
81+
82+
- Python 3.8 or higher
83+
- pip (Python package manager)
84+
- Git
85+
86+
### Installation
87+
88+
1. **Create a virtual environment**:
89+
```bash
90+
python -m venv venv
91+
source venv/bin/activate # On Windows: venv\Scripts\activate
92+
```
93+
94+
2. **Install dependencies**:
95+
```bash
96+
pip install -r requirements.txt
97+
pip install -r requirements-dev.txt # Development dependencies
98+
```
99+
100+
3. **Install pre-commit hooks**:
101+
```bash
102+
pre-commit install
103+
```
104+
105+
### Running Tests
106+
107+
```bash
108+
# Run all tests
109+
pytest
110+
111+
# Run with coverage
112+
pytest --cov=src --cov-report=html
113+
114+
# Run specific test file
115+
pytest tests/test_crypto.py
116+
117+
# Run tests in watch mode
118+
pytest-watch
119+
```
120+
121+
### Code Quality Checks
122+
123+
```bash
124+
# Run linter
125+
flake8 src/ tests/
126+
127+
# Run type checker
128+
mypy src/
129+
130+
# Format code
131+
black src/ tests/
132+
133+
# Sort imports
134+
isort src/ tests/
135+
136+
# Run all checks (recommended before committing)
137+
pre-commit run --all-files
138+
```
139+
140+
## πŸ”„ Pull Request Process
141+
142+
1. **Update your fork** with the latest upstream changes:
143+
```bash
144+
git fetch upstream
145+
git rebase upstream/main
146+
```
147+
148+
2. **Make your changes** and commit them with clear messages
149+
150+
3. **Push to your fork**:
151+
```bash
152+
git push origin feature/your-feature-name
153+
```
154+
155+
4. **Create a Pull Request** from your fork to the main repository
156+
157+
5. **Wait for review** - maintainers will review your PR and may request changes
158+
159+
6. **Make requested changes** if any, and push them to your branch
160+
161+
7. **Once approved**, your PR will be merged! πŸŽ‰
162+
163+
### PR Checklist
164+
165+
Before submitting your PR, ensure:
166+
167+
- [ ] Code follows the project's style guidelines
168+
- [ ] All tests pass (`pytest`)
169+
- [ ] New tests added for new features
170+
- [ ] Documentation updated (if applicable)
171+
- [ ] Commit messages follow guidelines
172+
- [ ] No merge conflicts with main branch
173+
- [ ] PR description clearly describes the changes
174+
- [ ] Issue number referenced (if applicable)
175+
176+
## 🎨 Style Guidelines
177+
178+
### Python Style Guide
179+
180+
We follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) with some modifications:
181+
182+
- **Line length**: Maximum 100 characters
183+
- **Indentation**: 4 spaces (no tabs)
184+
- **Quotes**: Use double quotes for strings
185+
- **Imports**: Group and sort imports (use `isort`)
186+
- **Type hints**: Use type hints for function signatures
187+
- **Docstrings**: Use Google-style docstrings
188+
189+
### Example Code Style
190+
191+
```python
192+
from typing import Dict, List, Optional
193+
194+
def encrypt_secret(secret: str, key: bytes) -> bytes:
195+
"""Encrypts a secret using the provided key.
196+
197+
Args:
198+
secret: The plaintext secret to encrypt
199+
key: The encryption key
200+
201+
Returns:
202+
The encrypted secret as bytes
203+
204+
Raises:
205+
ValueError: If secret is empty or key is invalid
206+
"""
207+
if not secret:
208+
raise ValueError("Secret cannot be empty")
209+
210+
# Implementation here
211+
pass
212+
```
213+
214+
### Documentation Style
215+
216+
- Use Markdown for all documentation
217+
- Include code examples where appropriate
218+
- Keep language clear and concise
219+
- Use proper headings and formatting
220+
221+
## πŸ“ Commit Message Guidelines
222+
223+
We follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:
224+
225+
### Format
226+
227+
```
228+
<type>(<scope>): <subject>
229+
230+
<body>
231+
232+
<footer>
233+
```
234+
235+
### Types
236+
237+
- **feat**: A new feature
238+
- **fix**: A bug fix
239+
- **docs**: Documentation changes
240+
- **style**: Code style changes (formatting, etc.)
241+
- **refactor**: Code refactoring
242+
- **test**: Adding or updating tests
243+
- **chore**: Maintenance tasks
244+
245+
### Examples
246+
247+
```
248+
feat(cli): add search command for finding environment variables
249+
250+
Implements fuzzy search functionality to quickly find stored secrets
251+
across all projects.
252+
253+
Closes #123
254+
```
255+
256+
```
257+
fix(crypto): resolve decryption error with special characters
258+
259+
Fixed an issue where environment variables containing special
260+
characters would fail to decrypt properly.
261+
262+
Fixes #456
263+
```
264+
265+
```
266+
docs(readme): update installation instructions
267+
268+
Added clarification for Windows users and troubleshooting section.
269+
```
270+
271+
## πŸŽƒ Hacktoberfest Guidelines
272+
273+
### Hacktoberfest Participation
274+
275+
We're excited to participate in Hacktoberfest 2025! Here are some guidelines:
276+
277+
#### Quality Over Quantity
278+
279+
- Focus on meaningful contributions
280+
- Avoid spam PRs (e.g., minor typo fixes, whitespace changes)
281+
- Read the issue description carefully before working on it
282+
283+
#### Valid Contributions
284+
285+
βœ… **Accepted**:
286+
- Bug fixes
287+
- New features
288+
- Documentation improvements
289+
- Test coverage improvements
290+
- Performance optimizations
291+
- UI/UX enhancements
292+
293+
❌ **Not Accepted**:
294+
- Automated/bot PRs
295+
- Duplicate PRs
296+
- PRs with no description
297+
- Minor formatting changes without substance
298+
- PRs that don't follow guidelines
299+
300+
#### Getting Your PR Counted
301+
302+
1. **Label**: PRs must have the `hacktoberfest-accepted` label (added by maintainers)
303+
2. **Review**: PRs must be reviewed and approved
304+
3. **Merge**: PRs must be merged or labeled `hacktoberfest-accepted`
305+
4. **Timeline**: PRs must be created between October 1-31, 2025
306+
307+
#### Tips for Success
308+
309+
- πŸ’¬ **Comment on issues** before starting work to avoid duplicates
310+
- πŸ” **Look for `hacktoberfest` labeled issues** for curated tasks
311+
- πŸ“– **Read the documentation** thoroughly
312+
- βœ… **Test your changes** before submitting
313+
- 🀝 **Be patient and respectful** with maintainers
314+
315+
## πŸ†˜ Getting Help
316+
317+
- πŸ’¬ Join our [Discussions](https://github.com/curiouscoder-cmd/ENV_Storage/discussions)
318+
- πŸ“§ Email the maintainers
319+
- πŸ› Check existing [Issues](https://github.com/curiouscoder-cmd/ENV_Storage/issues)
320+
321+
## πŸ™ Recognition
322+
323+
All contributors will be:
324+
- Listed in our README
325+
- Mentioned in release notes
326+
- Part of our amazing community!
327+
328+
## πŸ“š Additional Resources
329+
330+
- [GitHub Flow Guide](https://guides.github.com/introduction/flow/)
331+
- [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/)
332+
- [Python Best Practices](https://docs.python-guide.org/)
333+
- [Hacktoberfest Official Site](https://hacktoberfest.com/)
334+
335+
---
336+
337+
Thank you for contributing to ENV Storage Manager! πŸš€
338+
339+
Happy coding and Happy Hacktoberfest! πŸŽƒ

0 commit comments

Comments
Β (0)