Development Process and Tooling
Elastic Path Commerce is provided as source code, and subsequent patches and updates are also provided as source code. Elastic Path Commerce customers modify and extend the source to meet the unique needs of their business, and so an Elastic Path Commerce project is a software development project that includes all portions of a software development lifecycle. You must implement and follow good software development practices throughout the lifetime of your Elastic Path Commerce system.
The implementation team will require software development tools, processes and systems to work effectively together.
Infrastructure Overview
Elastic Path Commerce is developed in the Java programming language and builds are controlled using the Apache Maven build tool. Your project will require tooling to integrate, build, test and deploy the Elastic Path Commerce code changes that the implementation team will develop over time.
The following diagram illustrates an example of typical infrastructure and components that make up an Elastic Path Commerce continuous integration and deployment solution.
For more information of the infrastructure components see Elastic Path Commerce Deployment Solutions.
Deployment Artifacts
The Elastic Path Commerce build and continuous integration (CI) processes generate several deployable artifacts. For more information about those artifacts, see Elastic Path Commerce Deployment Artifacts.
First Steps for Shared Development
The initial steps to help the development team work effectively together are:
- Set up a Maven artifact repository manager so developers can obtain and potentially share Maven software artifacts. See Maven Artifact Repository Manager.
- Host your copy of the Elastic Path Commerce source code, where your developers will commit and share source code updates. See Hosting the Elastic Path Commerce Source Code.
- Update the Maven
settings.xml
file in the source code to refer to your Maven repository manager. See Preparing Elastic Path Source Code. - The Elastic Path Commerce software developers set up their local development environments. See Setting up your Developer Environment.
Continuous Integration and Deployment
Once the development begins, the team will require continuous integration (CI) tools to build and test Elastic Path Commerce code changes. For more information, see Setting up Continuous Integration Server.
Integration and QA Environments
The team will require Elastic Path Commerce integration and QA environments where code changes can be deployed and validated. For more information see, Test Environments.
Other Development Considerations
Service containerization
Elastic Path Commerce is most often run in Docker-style containers. For more information, see Containerization.
Branching and Maven artifact versioning
Some suggestions around artifact versioning are available in Branch and Version Number Convention.