Thanks for taking the time to contribute! 👍
- Table of Contents
- Certificate of Origin
- Getting Started
- Contributing Code
- Submitting a Pull Request
- Reporting Issues
By contributing to this project you agree to the Developer Certificate of Origin. All contributions to this repository must be signed as described on that page. Your signature certifies that you wrote the patch or have the right to pass it on as an open-source patch.
Looking for places to contribute to the codebase? You can start by looking through the help-wanted issues.
git clone https://github.com/vmware/build-tools-for-vmware-aria.git
- Setting up local environment
- Setting up workstation
- Adding new functionalities - here are few guidelines that could be followed to ease the development process:
- Read the ticket description to understand which is the mvn plugin that needs to be updated. All plugin executions (
mvn package,pullandpush) start from aMojoclass under the plugin's directory/maven/plugins/PLUGIN-XXX/src/main/java/com/vmware/pscoe/maven/plugins/.- Example:
PullMojo.javaunder/maven/plugins/vra-ngwill be executed when you do themvn pullcommand in VMware Aria Automation 8 (vRA 8) context.
- Example:
- The Mojo class will create and work with an instance of one of the Package Store classes located under
/common/artifact-manager/src/main/java/com/vmware/pscoe/iac/artifact/.- Example: The VMware Aria Automation 8 Package Store class is
VraNgPackageStore.java.
- Example: The VMware Aria Automation 8 Package Store class is
- Most of the Package Store classes will use a REST client for communication. REST clients are located in
/common/artifact-manager/src/main/java/com/vmware/pscoe/iac/artifact/rest/.- Example:
VraNgPackageStore.javausesRestClientVraNg.java, which itself usesRestClientVraNgPrimitive.java.
- Example:
- Read the ticket description to understand which is the mvn plugin that needs to be updated. All plugin executions (
- Testing guide - follow the steps bellow to do a local test of a new functionality or a bugfix.
- Create or reuse an existing project with the type of archetype that you need.
- Example: For VMware Aria Automation 8 you will need a
vra-ngproject archetype.
- Example: For VMware Aria Automation 8 you will need a
- Bump the test project's Aria Build Tools version to the latest SNAPSHOT version. The version number is located in the
pom.xmlfile/s between the<parent>tags. Each project can have multiplepom.xmlfiles. If that's the case, change all of them. - Run
mvn clean packagefrom the main test project directory so you can download the latest Aria Build Tools artifacts. - After you make the proper changes under your local Aria Build Tools source, you will need to install the modified artifacts (locally), so you can test them. This is done by running the
mvn clean installcommand from a particular modified Aria Build Tools directory (this will save you time, so you will not need to install all artifacts locally).- Example: If you have modified the
VraNgPackageStore.javaor theRestClientVraNg.javaclass, you can run themvn clean installcommand from the/common/artifact-managerdirectory. - Example: If you have modified a
PullMojo.javaclass, you can run themvn clean installcommand from the/maven/plugins/directory.
- Example: If you have modified the
- Now test the modifications by executing
mvn clean package/pull/pushcommand from the test project.
- Create or reuse an existing project with the type of archetype that you need.
Please navigate to the following page for the latest version of Build Tools for VMware Aria documentation. When contributing, please refer to our How to write documentation guide.
When adding new code make sure to cover the following mandatory points:
- Append information about the implemented functionality to CHANGELOG.md and Release.md.
- Satisfy the checklist in PR template
- If you skip any of the tasks from the checklist, add a comment explaining why that task might be irrelevant to your contribution.
- Unit tests are mandatory.
- If adding unit tests is not viable - other options are to be explored.
- If no unit tests are included justification should be provided.
- Include usage information based on As-Built template.
📜NOTE! When doing a Pull Request review make sure that all points mentioned above are covered before approving the PR.
Please follow the instructions in the PR template.
If you have identified a reproducible problem or have a feature request, please open an Issue.
Before you create a new issue, please do a search in open issues to see if the issue or feature request has already been filed.
If you find your issue already exists, make relevant comments and add your reaction. Use a reaction in place of a "+1" comment (👍 for upvote or 👎 for downvote).
If you cannot find an existing issue that describes your bug or feature, create a new issue using the guidelines below.
- File a single issue per problem and feature request. Do not enumerate multiple bugs or feature requests in the same issue.
- Do not add your issue as a comment to an existing issue unless it's related. Many issues look similar, but have different causes.
- When filing bugs, please follow the bug template and include as much information as possible. The more information you can provide, the more likely someone will be successful at reproducing the issue and finding a fix.