Thank you for your interest in contributing to the Open Source Secure Element project! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to abide by our Code of Conduct. Please read it before contributing.
There are many ways to contribute to the OSSE project:
If you find a bug in the project, please create an issue on GitHub with the following information:
- A clear, descriptive title
- A detailed description of the issue
- Steps to reproduce the problem
- Expected behavior
- Actual behavior
- Screenshots or logs (if applicable)
- Environment information (OS, hardware, etc.)
We welcome suggestions for enhancements to the project. To suggest an enhancement:
- Check if the enhancement has already been suggested
- Create a new issue with a clear title and detailed description
- Explain why this enhancement would be useful to most OSSE users
Improvements to documentation are always welcome:
- Fixing typos or clarifying existing documentation
- Adding examples or tutorials
- Translating documentation to other languages
- Adding diagrams or illustrations
We welcome code contributions through pull requests:
- Fork the repository
- Create a new branch for your feature or bugfix
- Make your changes
- Run tests to ensure your changes don't break existing functionality
- Submit a pull request
-
Clone the repository:
git clone https://github.com/etherisc/open-source-secure-element.git cd open-source-secure-element
-
Install dependencies:
# For documentation site gem install bundler bundle install # For firmware development # (See specific instructions in the firmware directory)
-
Run the local development server for documentation:
bundle exec jekyll serve
main
- The main development branchrelease/*
- Release branchesfeature/*
- Feature branchesbugfix/*
- Bug fix branches
Please follow these guidelines for commit messages:
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 72 characters or less
- Reference issues and pull requests after the first line
Example:
Add ECC secp256k1 support
- Implement key generation for secp256k1
- Add signing and verification functions
- Update documentation
Fixes #123
- Update the README.md or documentation with details of changes if appropriate
- Update the CHANGELOG.md with details of changes
- The PR will be merged once it receives approval from maintainers
- Use Markdown for documentation
- Follow the Google Developer Documentation Style Guide
- Use sentence case for headings
- Use American English spelling
- C/C++: Follow the LLVM Coding Standards
- Python: Follow PEP 8
- JavaScript: Follow Airbnb JavaScript Style Guide
- Hardware Design: Follow the OpenTitan Hardware Design Style Guide
By contributing to the OSSE project, you agree that your contributions will be licensed under the project's MIT License.
If you have any questions about contributing, please reach out to us:
- Open an issue with your question
- Join our Discord server
- Email us at [email protected]
Thank you for contributing to the Open Source Secure Element project!