Contributions to EToolbox Authoring Insider are welcomed and greatly appreciated. We want to make contributing to this project as easy and transparent as possible, whether it is:
- Reporting a bug;
- Proposing new features;
- Discussing the current state of the code;
- Submitting a fix or solutions;
- Becoming a maintainer.
We use Github to host code, track issues, accumulate feature requests, review and accept pull requests.
All code changes happen through Pull Requests.
Pull requests are the best way to propose changes to the codebase (please follow this guide Github Flow).
We actively welcome your pull requests:
- Fork the repo and create your branch from
develop
. - Do code changes. Whenever you create new files, add the "Licenced under the Apache Licence..." header (use any of the existing files to copy the full header). Whenever you create new public or package-level methods, add Javadoc / JSDoc. Alter existing Javadoc / JSDoc if you change a method's signature.
- If you've added code that should be tested, add unit tests under the test folder of the respective module. Make sure that the tests pass.
- If your code covers the features that cannot be verified without live connectivity to an AEM server or a 3rd party service, add an integration test under the it.tests module. Make sure that the tests pass.
- Make sure your code lints.
- Issue the pull request.
Every pull request is dedicated to a single Github issue. Every issue has a tracking number like EAI-333
.
A branch for the pull request must be named in the format bugfix/EAI-333
or feature/EAI-333
where the part before the slash is the kind of PR (reflecting a bug or a feature request, respectively), and the part after the slash in the tracking number.
A pull request's title must start with the tracking number in square brackets; then comes a brief but detailed description of what is done in this PR like [EAI-333] Fixed NPE when saving file to a removable media
.
A more verbose description in the "description" section is optional but welcomed. You can assign labels from the provided set, such as bug
, enhancement
, documentation
, etc.
Every pull request consists of one or more commits. Commit messages must be presented in the same format as the pull request title. E.g., the following 3 commits: [EAI-333] Implemented the NPE fix... [EAI-333] Altered Javadoc for the affected method... [EAI-333] Added a unit test for the NPE fix
.
Any contributions you make are understood to be under the Apache License, Version 2.0 that covers the whole project. Feel free to contact the maintainers if that's a concern.
After creating your first pull request, you will be asked to sign our Contributor License Agreement by commenting on your PR with a special message.
We use Github's issues to track public bugs. Report a bug by opening a new issue.
This is an template of bug report.
- We place dependencies in the alphabetic order of their
groupId
-s except for theuber-jar
that comes last to allow overlaying bundled dependencies. - Use
dependencyManagement
/pluginManagement
sections of the main POM to specify the common requisites, scope, and config values of dependencies. Override them in a dependent POM file only if necessary.
- In Java code, stick to the Code Conventions for the Java Programming Language and also to the Google Java Style Guide in essential parts.
- In JS code, use the predefined ESLint rules to verify code with an IDE such as IntelliJ.
- When unsure, follow the style of the existing code files.
- Use proper indentation.
- Split long lines into smaller ones by attributes.
- When unsure, follow the style of the existing code files.
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
We expect contributors, reviewers, and participants to express their opinions in a friendly, polite, and clear manner, raise and address issues in most precise, explaining and accurate sentences.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.