# Definition of Done v2
1. Checked if ticket is marked as `Ready`. If `In Definition`, leave a comment tagging the relevant cPacket member to check if it can be taken, if there are no other tickets available in `To Do` column

2. Analyzed ticket in terms of provided description and priorities - checked if ticket is understandable and asked for more details(client/team members) if necessary.
Ticket must contain:
* description of a problem or feature
* For bugs:
* Way to reproduce it
* Screenshots / video of achieving it
* For features
* Link to the design
There might be cases, when problem is easy to fix (ex. change translation text / colour). We don't need additional information in such situations, a proper description and screenshot is enough.
3. Checked if ticket can be taken - there is no one assigned to it, and it does not await for other cases to be resolved (ex. backend updates on the client side / is blocked by another ticket etc.)
4. Assigned ticket to yourself and moved it to `In Progress` column (Jira)
5. If there's a blocker - e.g. backend not available, leave a comment in Jira ticket requesting the relevant cPacket member to provide what's missing
6. Produced solution according to the ticket description and defined code-style.
7. Updated `package.json` and `CHANGELOG.md` for specific library, and updated `library-demo` application with developed feature - applicable for Common UI Library.
8. Created additional tests (if necessary - applicable for Common UI Library)
9. Tested manually and made sure everything is working as intended. ( **Test library-demo in Common UI Library** )
10. Run UnitTests and all have passed. Applicable for:
* cStor
* **Common UI Library**
11. Production build run without errors (every project has a command to do it).
12. Made sure that current branch is up to date with `next` (or other in specific situations)
13. Created pull request to the `next` (or other if said) branch with proper description:
```
What was changed
(link to the issue)
Example:
Add UI support for ZTP
Issue: CCLEAR-12345
```
13. Requested at least 2 people from Monte and cPacket side for code review
* cClear: Alex, Unni, Johnathan
* cStor: Kellen, Cheng, Naathan, Johnathan, Veena(in some situations)
* Common-UI: Kellen, Cheng, Johnathan, Alex(in some situations)
* eWok: Kellen, Cheng, Naathan, Johnathan
15. Moved ticket to the `Code Review` column (Jira)
16. Code review approved:
* cClear: 1 Monte and 1 cPacket approval
* cStor: any 2 approvals **(!)**
* common-ui: any 2 approvals **(!)**
* ewok: 1 Monte and 1 cPacket approval
**(!) - keep in mind that, if there are big/breaking changes, cPacket approval is mandatory (ex. enabling strictTemplates in Common UI Library & cStor)**
16. Every conversation or doubt from any side in pull request is resolved (**look also on "Files" section in PR, because GH does not always move those messages to the Overview page**)
17. TeamCity build passed without errors (is always run after push to a branch - can be seen on pull request page on GitHub)
18. AWS PR build run without errors (applicable only for Common UI Library for now)
19. PR is merged with a proper commit message:
```
Short description of changes
* list of needed changes for completing this task
Issue: CODE-TICKET_NUMBER
Example:
Add UI support for ZTP feature
* change type of X from string to boolean
* add missing properties to Y type
Issue: CCLEAR-12345
```
20. Ticket is moved to the Monterail `QA` column (Jira)
21. Ticket is tested by Monte QA (provide details for QA if necessary) on the prod environment if possible
22. Ticket is moved to Monte `Done` column, and it's status is set to `Staged`
23. Ticket is moved to the client's `QA` column, as it's status is set to `QA`
24. Ticket is tested by client's QA
25. Ticket is marked as **Ready** (Jira) with the comment similar to:
```
Verified on build 1.2.3.4.5
```