Contributing to fsspec-utils¶
We welcome contributions to fsspec-utils
! Your help makes this project better. This guide outlines how you can contribute, from reporting issues to submitting pull requests.
How to Contribute¶
Reporting Issues¶
If you encounter any bugs, unexpected behavior, or have suggestions for new features, please open an issue on our GitHub Issues page.
When reporting an issue, please include:
- A clear and concise description of the problem.
- Steps to reproduce the behavior.
- Expected behavior.
- Screenshots or error messages if applicable.
- Your fsspec-utils
version and Python environment details.
Submitting Pull Requests¶
We gladly accept pull requests for bug fixes, new features, and improvements. To submit a pull request:
- Fork the Repository: Start by forking the
fsspec-utils
repository on GitHub. - Clone Your Fork: Clone your forked repository to your local machine.
- Create a New Branch: Create a new branch for your changes.
- Make Your Changes: Implement your bug fix or feature.
- Write Tests: Ensure your changes are covered by appropriate unit tests.
- Run Tests: Verify all tests pass before submitting.
- Format Code: Ensure your code adheres to the project's style guidelines. The project uses
ruff
for linting and formatting. - Commit Your Changes: Write clear and concise commit messages.
- Push to Your Fork: Push your branch to your forked repository.
- Open a Pull Request: Go to the original
fsspec-utils
repository on GitHub and open a pull request from your new branch. Provide a detailed description of your changes.
Development Setup¶
To set up your development environment, follow these steps:
- Clone the repository:
- Install
uv
:fsspec-utils
usesuv
for dependency management and running commands. If you don't haveuv
installed, you can install it viapip
: - Install Development Dependencies:
The project uses
uv
to manage dependencies. Install thedev
dependency group which includes tools for testing, linting, and documentation generation.This command installs the project in editable mode (-e
) and includes all development-related dependencies specified inpyproject.toml
under the[project.optional-dependencies] dev
section.
Best Practices for Contributions¶
- Code Style: Adhere to the existing code style. We use
ruff
for linting and formatting. - Testing: All new features and bug fixes should be accompanied by relevant unit tests.
- Documentation: If your changes introduce new features or modify existing behavior, please update the documentation accordingly.
- Commit Messages: Write descriptive commit messages that explain the purpose of your changes.
- Atomic Commits: Try to keep your commits focused on a single logical change.
- Branch Naming: Use clear and concise branch names (e.g.,
feature/new-feature
,bugfix/fix-issue-123
).