How to contribute

One of the easiest ways to contribute is to participate in discussions on GitHub issuesarrow-up-right. You can also contribute by submitting pull requests with code changes.

Watch us

To stay informed about the latest news and receive updates from Smartstore, just click on the Watch button at the top of our GitHub repository pagearrow-up-right.

Reporting a security issue

Please report any sensitive, critical, or urgent vulnerabilities by using our contact formarrow-up-right saying you need to communicate an important security issue.

After assessing the issue, we will work out how we will handle the matter and let you know how to proceed. If the vulnerability is neither sensitive, critical, or urgent, please just create a new issuearrow-up-right as per normal.

Create an issue

If you stumble across an error, have an improvement suggestion or a feature request, feel free to write an issue to let us know what's on your mind.

How to write an issue

Before you write an issue, please perform a quick search and have a look if your concern has already been mentioned. If so, you can vote for this issue. Basically, there are two different categories of issues: bugs and feature requests.

A bug should always be reproducible. When reporting it, please list every step you or your customer took leading up to it so that a developer can verify the existence of the problem with just a few clicks. If you've received an error message, you should provide information about that as well, preferably via a screen shoot. Every detail you can provide helps.

A feature request should always be born out of a need. To help us understand the request best, you should start by describing this need. Then, you should bring up one (or more) possible solutions (of course only in words, not in code, as we're talking about issues here ;-)). Don't be afraid to add any supporting photos which could help us understand the solution you're describing.

Participate in discussions

Please keep in mind that issues are only meant to inform us about aspects we need to know. If you have questions or problems and aren't sure where they belong, please start a discussion in our forumarrow-up-right rather than open a new issue. If we consider it to be an issue, we will create an issue or advise you to create one.

Contribute

If you are a developer who wants to keep up to date with the latest source code, we recommend downloading the current develop branch. Smartstore uses GIT for revision control and source code management. You can work with any GIT client, e.g. TortoiseGit, Git for Visual Studio or SourceTree. Personally, we've had excellent experience with SourceTree while working with open source projects, including, of course, Smartstore.

When working with Smartstore as a developer, you will benefit substantially by forking the software before creating some of the adaptations you need. This way, we can, for instance, pull your fork if there's a problem with a feature you're implementing, allowing us to help you. Also, when you have developed a feature or perhaps improvements that you want to contribute to Smartstore, you can very easily make a pull request so we can evaluate your code and determine whether it is relevant to the Smartstore core.

Submitting a pull request

If you don't know what a pull request is read this article: https://help.github.com/articles/using-pull-requestsarrow-up-right. Make sure the repository can build and all tests pass. Familiarize yourself with the project workflow and our coding conventions.

Your pull request will now go through extensive checks by the subject matter experts on our team. Update your pull request according to feedback until it is approved by one of the team members. After that, one of our team members may adjust the branch you merge into based on the expected release schedule.

Branching strategy

The main branch contains the latest source code and represents the current state of active development. It does not reflect a stable or released version.

Each Smartstore release is maintained in its own version-specific branch, named after the compatible Smartstore version (for example, 6.1.0.x). These branches are created at release time and are used to maintain that release, including bug fixes and urgent patches, while remaining compatible with the corresponding Smartstore version.

New features and changes are developed in dedicated feature branches (for example, feature/webapi). Once a feature is complete, it is merged into the appropriate target branch. The main branch is used for ongoing development, while a version-specific branch is used for changes intended for an existing release.

Each branch reflects source code compatible with its respective Smartstore version.

Version number scheme

Smartstore uses the following versioning pattern: MAJOR.MINOR.PATCH.REVISION

  • MAJOR: Indicates major product milestones and may include breaking changes.

  • MINOR: Introduces new features while remaining backward compatible within the same major version.

  • PATCH: Contains bug fixes and small improvements.

  • REVISION: Represents ongoing maintenance updates for a released version branch.

A branch named 6.1.x.x therefore contains all changes compatible with Smartstore version 6.1.

Code of conduct

See Code of Conductarrow-up-right

Last updated

Was this helpful?