Thank you for considering contributing to Zasper! We appreciate your interest in improving the project. Whether you're fixing a bug, adding a feature, or improving documentation, your contributions help make Zasper better for everyone.
This document will guide you through the process of contributing to the project.
By contributing to Zasper, you agree to abide by the Code of Conduct. Please make sure your interactions are respectful and constructive.
We welcome contributions to Zasper! There are several ways you can contribute:
If you've encountered a bug in Zasper, we appreciate you reporting it. Here's how to do that:
- Search for Existing Issues: Before reporting a new bug, please check the issues to see if it has already been reported.
- Create a New Issue: If your bug has not been reported yet, please create a new issue. Be sure to provide as much detail as possible:
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Any error messages or logs
We are always open to new ideas and features. If you have an idea that you think will improve Zasper, please:
- Search for Existing Feature Requests: Ensure your feature isn't already suggested.
- Create a New Feature Request: If not, open a new issue with a description of the feature and why it would be valuable.
We welcome code contributions! Here’s how you can submit your changes:
- Fork the Repository: Create a fork of the repository on GitHub.
- Clone Your Fork: Clone your fork to your local machine using the following command:
git clone https://github.com/your-username/zasper.git
- Create a Branch: Create a branch for your work:
git checkout -b feature-branch
- Make Changes: Implement your changes in the codebase.
- Commit Changes: Once you're happy with your changes, commit them with a clear and concise message.
git commit -m "Add [feature/bugfix] to [file]"
- Push to Your Fork: Push your changes to your fork:
git push origin feature-branch
- Create a Pull Request: Go to the repository and create a pull request. Provide a detailed description of your changes and why they are needed.
Improving documentation is just as important as improving the code! If you find any documentation that needs to be clarified or updated, feel free to make a pull request with your improvements.
To get started with development, you'll need to set up your local environment.
git clone https://github.com/zasper-io/zasper.git
This command installs all the necessary frontend dependencies (via npm install
).
make init
This command builds both the frontend (via npm run build
in the ui directory) and the backend (via go build
in the root directory).
make build
This command first builds the frontend and then runs the backend (via go run .
). The frontend will be built, and the backend will start running.
make start
This command starts both the frontend and the backend simultaneously in development mode. The frontend runs via npm start and the backend via go run .
make dev
This is especially useful when you are working on the project and want to run both the frontend and backend concurrently.
This command builds the Electron app and packages it using the npm run electron-package
script in the ui
directory. The backend is also compiled with go build
.
make electron-package
This will create a packaged Electron app inside the ui/build/dist
directory.
Please follow these code style guidelines when contributing:
- Follow the existing coding style of the project (indentation, variable naming, etc.)
- Use descriptive variable and function names
- Ensure that your code is readable and maintainable
If there are any specific style guidelines for the project, such as ESLint or PEP8, please refer to the project’s configuration files.
Please ensure that your changes are covered by tests. If the project includes a test suite, you can run it to verify your changes.
- Write Tests: If your contribution involves code changes, write appropriate tests to cover your changes.
- Run Tests: Run the existing test suite to ensure that everything works correctly.
We encourage clear and concise commit messages. Please follow this format for your commit messages:
<type>: <subject>
<body>
Where:
- is one of the following: feat (new feature), fix (bug fix), docs (documentation), style (code style changes), refactor (code refactoring), test (adding or modifying tests), chore (maintenance tasks).
- is a short description of what was done.
- (optional) provides further context, if necessary.
Example:
feat: add notebook kernel switcher
Added kernel switcher ui and backend to allow kernel change on the fly.
Thank you again for your interest in contributing to Zasper! We look forward to working with you.