Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 3.01 KB

Contribution-Guidelines.md

File metadata and controls

61 lines (48 loc) · 3.01 KB

Development and contributing

Internal development process

Development is performed by 2-weeks sprints (We use kind of Scrum framework) We use Git flow for development.

Definition of Ready

The task is ready to be put into a sprint when all following conditions are met:

  • All dependencies are clear and how to work with them are clarified
  • Use-case is defined in the task
  • Acceptance criteria are defined

Definition of Done

The Task could be accepted only when following requirements are met:

  • Code is reviewed (and approved) by another developer
  • API documentation in Swagger UI corresponds to acceptance criteria
  • At least one automated test for every Use-case exists

Contributing

Any person are free to join us by implementing some parts of code or fixing some bugs and making merge requests for them. The conditions listed in the Definition of Done are required to be fulfilled in any case.

Technical conditions for the implementations

Testing API with Postman json collections

For testing API of XS2A Postman tool can be used. Environment jsons with global parameter’s sets and Collections of jsons for imitation of processes flows are stored in /postman-scripts folder. To import Postman collections and environments follow next steps:

  1. Download Postman jsons with collections and environments to your local machine.
    
  2. Open Postman, press button “Import”.
    
  3. Choose “Import file” to import one json or “Import folder” to import all jsons within the folder, then press button “Choose Files” or “Choose Folders” and open necessary files/folders.
    
  4. To change settings of environments - go to “Manage Environments”, press the environment name and change variables.
    

To start testing with Postman collections it is necessary to have all services running.

Code styling

If you are using Intellij IDEs, like we do, please consider importing our code-style settings. General settings are also documented in .editorconfig file. You may find more information and a plugin for your editor/IDE here)

Java

  • Please use Optionals and corresponding streams instead of null-checks where possible
  • We prefer using Mockito over EasyMock for unit-tests.
  • We prefer SpringBoot autoconfiguration over manual Configuration where possible

How to Release

Release is being done using the release scripts ( (C) by Boris Skert ) located under scripts/release-scripts. For detailed info see README for release-scripts.

Steps to make a release

Release is made from local copy! Ensure that you have enough rights to push to master and develop branches

$ git submodule update --init --remote
$ scripts/release-scripts/release.sh <release-version> <next-develop-version>

Example

$ scripts/release-scripts/release.sh 1.0 1.1