Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
---
name: Bug report
about: Create a report to help us improve
title: "[BUG] "
labels: bug
assignees: ''
---

## Bug Description
A clear and concise description of what the bug is.

## Steps To Reproduce
Steps to reproduce the behavior:
1. Run command '...'
2. Set up environment '...'
3. Execute '...'
4. See error

## Expected Behavior
A clear and concise description of what you expected to happen.

## Actual Behavior
What actually happened instead.

## Environment
- OS: [e.g. macOS 12.3, Ubuntu 22.04]
- Python Version: [e.g. 3.9.10]
- EnvProfile Version: [e.g. 0.1.0]
- Shell: [e.g. bash, zsh, fish]

## Additional Context
Add any other context about the problem here, such as configuration files or error logs.

## Possible Solution
If you have ideas on how to fix the issue, please share them here.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FEATURE] "
labels: enhancement
assignees: ''
---

## Feature Description
A clear and concise description of the feature you'd like to see implemented.

## Use Case
Describe the specific use case or problem this feature would solve.
Example: "When working with multiple environment sets, I need to..."

## Proposed Solution
Describe your suggested solution or implementation approach.

## Alternatives Considered
Describe any alternative solutions or workarounds you've considered.

## Additional Context
Add any other context, screenshots, or examples about the feature request here.
22 changes: 22 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## Description
Please include a summary of the change and which issue is fixed. Include relevant motivation and context.

Fixes # (issue)

## Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
- [ ] Documentation update

## How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce.

## Checklist:
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have made corresponding changes to the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes
50 changes: 50 additions & 0 deletions .github/workflows/python-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Python Tests

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
python-version: ['3.7', '3.8', '3.9', '3.10']

steps:
- uses: actions/checkout@v2

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
python -m pip install -e .

- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 src tests --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings
flake8 src tests --count --exit-zero --max-complexity=10 --max-line-length=100 --statistics

- name: Type check with mypy
run: |
mypy src

- name: Test with pytest
run: |
pytest --cov=envprofile

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
fail_ci_if_error: false
57 changes: 57 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# IDE specific files
.idea/
.vscode/
*.swp
*.swo
.DS_Store

# Project specific
.config/
envprofile.py.old
116 changes: 116 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Contributing to EnvProfile

Thank you for your interest in contributing to EnvProfile! This document provides guidelines and instructions for contributing.

## Code of Conduct

Please be respectful and considerate of others when participating in this project.

## Getting Started

### Setup Development Environment

1. Clone the repository:
```bash
git clone https://github.com/yourusername/envprofile.git
cd envprofile
```

2. Create a virtual environment and install development dependencies:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e ".[dev]"
pip install -r requirements.txt
```

3. Run the tests to verify your setup:
```bash
pytest
```

## Development Workflow

### Branching Strategy

- Use `main` branch for stable releases
- Create feature branches from `main` named with the pattern: `feature/your-feature-name`
- Create bug fix branches with the pattern: `bugfix/issue-description`

### Making Changes

1. Create a new branch for your changes
2. Make your changes with clear, descriptive commit messages
3. Add tests for your changes
4. Run tests and ensure all pass
5. Update documentation if necessary
6. Submit a pull request

### Code Style

We follow PEP 8 guidelines for Python code. Use the following tools to ensure your code conforms to our style:

- **Black**: For code formatting
```bash
black src tests
```

- **Flake8**: For style guide enforcement
```bash
flake8 src tests
```

- **MyPy**: For type checking
```bash
mypy src
```

### Testing

All changes should include tests. Run the test suite with:

```bash
pytest
```

To see test coverage information:

```bash
pytest --cov=envprofile
```

## Pull Request Process

1. Ensure all tests pass and code style checks pass
2. Update the README.md or documentation with details of changes if applicable
3. The PR should work for Python 3.6 and later versions
4. Include a clear and descriptive PR title and description
5. Link any related issues in the PR description

## Release Process

Releases are handled by the project maintainers. The process typically involves:

1. Updating the version in `src/envprofile/__init__.py`
2. Updating the changelog
3. Creating a tagged release

## Documentation

- Update the README.md file for user-focused documentation
- Add docstrings for all public modules, functions, classes, and methods
- Use clear and descriptive variable names and comments

## Bug Reports and Feature Requests

Please use the GitHub issue tracker to report bugs or request features. When reporting bugs:

1. Check if the bug has already been reported
2. Use a clear and descriptive title
3. Provide detailed steps to reproduce the bug
4. Include expected and actual behavior
5. Provide your environment details (OS, Python version, etc.)

## Contact

If you have questions about contributing, please open an issue on GitHub or contact the maintainers directly.
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2023 EnvProfile Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading