🎉 First off, thank you for taking the time to contribute to Lixa Gallery – your support means a lot!
Lixa Gallery is an open-source desktop app built with Tauri and SvelteKit to manage and view image galleries. We welcome contributions of all kinds — bug reports, feature requests, code improvements, and documentation help.
git clone https://github.com/santhosh-chinnasamy/lixa-gallery.git
cd lixa-gallery
yarn
yarn tauri dev- How Can I Contribute?
- Setting Up the Development Environment
- Testing
- How to create Migrations
- Creating a Pull Request
- License
If you find a bug, please report it by creating a new issue. Be sure to include:
- A clear description of the bug.
- Steps to reproduce the bug.
- Expected and actual behavior.
- Any relevant screenshots or error messages.
- Your environment (OS, Rust version, etc.).
We’re open to new ideas! To suggest a feature:
- Check if the feature is already being discussed in the issues.
- If not, open a new issue with a clear and detailed description of the feature.
- Discuss how the feature would benefit the project and its users.
Contributions to the documentation are always welcome. If you spot an area for improvement, feel free to:
- Suggest changes by creating an issue.
- Submit a pull request with your changes.
- Check the open issues to see if someone else is already working on a similar fix or feature.
- If not, create a new issue or comment on an existing one to express your interest in working on it.
- Discuss the changes you want to make with the maintainers by opening an issue or commenting on the existing one.
- Keep your code clean and readable.
- Follow Rust and JS/TS best practices and ensure the code compiles without errors.
- Make sure to include tests for your changes, when applicable.
Clone the repository:
git clone https://github.com/santhosh-chinnasamylixa-gallery.git
cd lixa-gallery- Fork the repository.
- Create a new branch:
git checkout -b your-feature-branch
- Make your changes, ensuring that your code is properly tested and formatted.
- Update the README.md with details of changes to the interface, if applicable.
- Update the CHANGELOG.md with notes on your changes.
- Commit your changes:
git commit -m "Add description of the changes" - Push the branch:
git push origin your-feature-branch
- Open a pull request from your fork’s branch to the
mainbranch of the Lixa Gallery repository. - Describe your changes clearly in the pull request and link any related issues.
- The PR will be merged once you have the sign-off of at least one other developer/maintainer.
We use a multi-layered testing strategy to ensure the architectural correctness and reliability of the application.
To run all Rust tests across the entire workspace:
cd src-tauri
cargo test --workspace- Domain Logic:
cargo test -p gallery-core - Application Services:
cargo test -p services - Infrastructure:
cargo test -p infra
gallery-core(Unit Tests): Pure tests for domain models and data structures.services(Mocked Tests): Business logic tests using "fake" implementations of repositories and file systems to avoid side effects.infra(Integration Tests): Real-world validation of SQLite repositories (using in-memory DB) and Local File System operations (using temporary directories).
cd src-tauri && sqlx migrate add <migration file name> && cd -By contributing to Lixa Gallery, you agree that your contributions will be licensed under the MIT License.