Thank you for taking a interest in making Meteor a better project! 💙
To contribute code (features or bug fixes) open up a pull request. In case you want to make a larger change to the code base, open up an issue first before writing any code. That way you don't lose your valuable time in case we might reject the pull request.
Shopware is available under MIT license. Contribute your code under MIT license.
If you've never contributed to a open source project you might find the this guide helpful.
To understand which action we tolerate we expect you to read our code of conduct.
Please take a look at the existing issues before creating a new one. That way keep the number of duplicate issues low. Complete the issue template as much as possible when creating a new issue.
To get your bug fixed faster, add a link to a project with the bug for us to reproduce in the issue's description.
Search trough the list of existing feature requests, before you create a issue. If somebody already requested your feature you can up-vote that issue. This helps us to see what the community wants the most.
If there does not already exist a feature request for your idea, you can request a feature.
For local development we use yalc
to publish packages into a virtual store and use them in other projects.
You can find yalc here on GitHub.
The workflow looks something like this:
- Make changes for the desired package/s
- Publish packages with
yalc publish --private --workspace --pure
from the package root foldere.g <meteorRoot>/packages/admin-sdk
- Link package in the Shopware Administration folder with
yalc link <package-name@package-version>
The first step is to clone your repo. Then, install the dependencies with:
pnpm install
In case you have not installed pnpm execute npm install -g pnpm
.
If you want to install pnpm through another way take a look at their documentation.
To execute scripts defined in the packages.json file of each package you have three options:
- Or you use turbo:
npx turbo run <TASK_NAME>
- You run the script from the root with
pnpm --filter <PACKAGE_NAME> run <SCRIPT_NAME>
- You cd into the package directory and run the script
You can find the available turbo tasks in the turbo.json file
Don't know turborepo? Check out their documentation.
Make sure to follow these steps before you push your branch:
- You linted your code with
pnpm run lint:eslint
- There are no type errors, run
pnpm run lint:types
- Run
pnpm run test:unit
to see if all tests pass - You generated a changeset with
npx changeset
After completing all the tests you can submit your pull request.
We create and manage our changelogs with changesets. Follow these steps to create a changelog:
- Run
npx changeset add
- Select the package you updated
- Define your version bump for this package
- Write a meaningful changelog message
- Repeat the step for other packages you want to change
Feel free to check out the changesets documentation for more information on how to work with it.
When your pull request gets merged a GitHub Action looks at your changes. If it finds a changeset in there it will copy that changeset over to a release branch.
If you decide to release a new version, merge the release branch. Changesets will now take over. It updates the changelog files, bumps up the version numbers and it publishes the packages to npm.
That's it there is nothing more you have to do.