Condo provides a way to present Trello cards on a timeline and simplify on-going and future task management.
Additionally it integrates with Trello, Slack, Bitbucket and Github for even better experience.
@condo create $branch - create branch and connect it with card
@condo connect $branch - connect trello card with speciffic branch
@condo disconnect $branch - disconnect trello card with speciffic branch
@condo test - merge branches connected with this card to preprod
@condo tested - mark branches connected with this card as tested and prepared to release - create pr
@condo release - create quick release for branches connected with this card - confirm pr
majorVersion.minorVersion.patch
Each version change must reset trailing versions.
Feature releases may increase minor or major version.
Security and bug fix relases may increase patch version.
Breaking changes must increase major version.
Deprecated changes must increase minor or major version on adding.
Deprecated changes must increase major version increase on removal.
Creating branches
Feature branches should be branched from master or develop branch.
Bugfix branch may be branched from master or develop branch.
Security branches may be branched from master only.
Deploying to staging
Staging deploys are always automatic via webhook.
Preparing release
When development branch is stable we can branch it to release-vx.x branch.
Possible dependency updates are applied in release branch.
Release branch is merged into master.
Master branch is tagged.
Master is merged into develop branch.
Preparing security release
When ready, security branch gets branched directly to release branch.
No dependency updates (except related to security fix) are changed.
Release branch is merged into master.
Master branch is tagged.
Master is merged into develop branch.
Deploying to production
Production deploys are always manual.
All tests, except for security fixes, should pass when deploying to production.
Nightly builds
Nightly builds are automatically tagged on develop branch.
We want to build timeline for all Trello tasks. Bitbucket and Github issues should have corresponding Trello tasks.
We do not know which user will work for how long on this task, so we need to collect that. We will measure that in minutes. Also, there can be many users working on each card.
Each card may depend on another card by putting depending card in checkbox list.
Card deadline date may be defined in Trello.
Weights (priority, difficulty and gain) and human resources (people) are defined as YAML at the end of Trello card description after *condo* tag.
*condo*
priority: 3
difficulty: 7
gain: 2
people:
bojan: 120
nemanja: 120
tadej: 120
branch: f-12-bla-foobar-branch
Timeline is split into 2 parts. First part shows work in progress tasks. Second timeline shows coming up tasks.
first task second task third task | first task second task third taskSince there could be tasks running concurrently we additionally split each task by user.
Bojan: first really long task second task third long task | first task task third taskTasks that were linked, but were not started - no branch, pull request or proper label.
Start action will move task to work in progress section.
Any task can be started - dev, planning, maintenance, design or anything else. Tasks are not git dependent.
| Task / Issue | Type | Duration | Status | Rating | |
| Task bla foobar | Feature | 4 days | blocking | 10 * 10 * 10 = 1000 | start |
| Lorem ipsum dolor sit | Bug | 2 hours | blocking | 10 * 8 * 9 = 720 | start |
| Ipsum dolor sit task | Improvement | 12 hours | blocking | 5 * 5 * 5 = 125 | start |
| Ipsum dolor sit task | Task | 2 weeks | blocking | 1 * 1 * 1 = 1 | start |
Tasks that have connected branches, or have labels "in progress", "review" or "done", but are not released.
Creating branch will create branch from Trello card url and item type - f-34-some-card. In which repository? Do we need project?
Creating pull request will create pull request on Bitbucket / Github from linked branch.
| Task / Issue | Project | Branch | Pull request | Status | Collaborators | |
| #1234 - Some task name | Comms | f-12-some-branch |
Pull request name Another request name |
todo | ||
| #1234 - Some task name | Comms Hub | create | create | todo | ||
| #1234 - Some task name | Comms Docs | b-43-anothe-branch | create | in progress | ||
| #1234 - Some task name | Comms Docs | b-43-anothe-branch | [WIP] Update something | under review | ||
| #1234 - Some task name | Comms Status | h-23-change-sth | create | merged | ||
| #1234 - Some task name | Medium | create | create | released |
Completing (sub)task will mark Trello (sub)card (or subtask) as done.
Postponing task will show next task. Postponing subtask will show next subtask.
Releases should be mainly manually scheduled - like plan to release weekly release every tuesday at 12:00, daily release every day at 14:00, security and hotfixes immediately.
Releases are created manually or by selecting merge branch.
Every branch merge to master branch presents a commit.
| Task | Pull request | Branch | Version | Date | Status |
|
Some task name Another task name |
Pull request name Merged request name Another merged request name |
r-some-release | v1.2.0 (minor) | created | |
|
Some task name Foobar name Some task name that is long Task name Another task name |
Pull request name |
r-another-lengthy-release | v1.1.0 (minor) | preparing | |
|
Some task name Another task name |
Pull request name | r-some-release | v1.0.1 (patch) | ready | |
|
Some task name |
Pull request name | r-some-release | v1.0.0 (major) | released |