Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

674 Add possibility to run different TCR variants #792

Merged
merged 44 commits into from
Oct 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
530aeb2
Add flavor config parameter
mengdaming Aug 12, 2024
f4c7057
[#674] Add Flavor string field to TCREngine
philou Aug 13, 2024
b7c96a4
[#674] Displaying the flavor in Terminal info
philou Aug 13, 2024
d9d2249
[#674] Displaying the flavor in Web info
philou Aug 13, 2024
2f0c90e
[#674] Update documentation with new Flavor parameters
philou Aug 13, 2024
aa528d3
[#674] Fix test case on tcr.GetSessionInfo()
mengdaming Aug 13, 2024
b7b31d5
[#674] Improve the wording from flavor to variant
aatwi Aug 13, 2024
4b07dff
[#674] Rename Flavor to Variant
aatwi Aug 13, 2024
333df55
[#674] Transform flavor from string to enum
aatwi Aug 14, 2024
057290f
[#674] Transform flavor from string to enum
aatwi Aug 14, 2024
5f7f35f
[#674] Transform flavor from string to enum
aatwi Aug 14, 2024
c8cd131
[#674] Add tests to assert source files are being reverted
aatwi Sep 11, 2024
42a6521
[#674] Refactor tests
aatwi Sep 11, 2024
c1aac0a
[#674] Implement revert for BTCR variant
mengdaming Sep 11, 2024
750750a
[#674] Create mermaid diagrams for 3 main TCR variants (original, btc…
mengdaming Sep 5, 2024
6d3c39d
[#674] Change mermaid diagrams to state diagrams instead of graphs
mengdaming Sep 6, 2024
cb96436
[#674] Change mermaid diagram extensions to .mmd instead of .mermaid
mengdaming Sep 6, 2024
eb7bf5a
[#674] Add script for generating png files from mmd
mengdaming Sep 6, 2024
0aa4770
[#674] Add generated png files
mengdaming Sep 6, 2024
1025aff
[#674] Add summary page describing available TCR variants
mengdaming Sep 6, 2024
21c0636
[#674] Make mermaid-generated images available to webapp
mengdaming Sep 10, 2024
c717dd7
[#674] Include variant state diagram image in webapp session info page
mengdaming Sep 10, 2024
715f2a1
[#674] Refactor session info page
mengdaming Sep 12, 2024
e007a02
[#674] Add "introspective" variant statechart image
mengdaming Sep 13, 2024
2450018
[#674] Add a section about the introspective variants in doc
philou Sep 13, 2024
f1cbb05
[#674] Add support for introspective Variant in UI and CMD
philou Sep 13, 2024
d652e1f
[#674] Prepare test cases for introspective variant
mengdaming Sep 13, 2024
2c6b572
[#674] Add handling of variant parameter authorized values
mengdaming Sep 16, 2024
9836275
[#674] Fix linter errors
mengdaming Sep 16, 2024
863aec9
[#674] Continue working on test case for introspective variant
mengdaming Sep 17, 2024
121c25f
[#674] Clean up test case for introspective variant
mengdaming Sep 18, 2024
608f699
[#674] Remote commit failure option and all related code
mengdaming Sep 18, 2024
2a06af7
[#674] Rename VCS.Restore to RevertLocal
philou Sep 20, 2024
2fe1061
[#674] Rename VCS.Revert to RollbackLastCommit
philou Sep 20, 2024
195e155
[#674] Remove Stash and Unstash from VCS
philou Sep 20, 2024
426a286
[#674] Implement the introspective variant in tcr.revert()
mengdaming Sep 20, 2024
b513630
[#674] Implement and test the introspective variant
aatwi Sep 23, 2024
8e2d0d2
[#674] Remove the amend parameter from the VCS interface
philou Sep 23, 2024
c7ac587
[#674] Handle VCS errors in introspectiveRevert
philou Sep 23, 2024
64bf95e
[#674] Tune git revert command arguments to prevent auto-commit
mengdaming Sep 27, 2024
6ed2126
[#674] Implement the Variant Checker
aatwi Sep 27, 2024
04af96c
[#674] Add short section about variants in README.md
mengdaming Sep 30, 2024
89fe9b2
[#674] Prepare for p4 implementation of RollbackLastCommit()
mengdaming Oct 1, 2024
1b6ce20
[#674] Add "invariant" to variant CLI parameter short description
mengdaming Oct 1, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .run/go build github.com_murex_tcr.run.xml

This file was deleted.

10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,16 @@ provided as built-in.
| scala | sbt | sbt |
| typescript | yarn | yarn bazel make |

### TCR Variants

TCR tool can run several variants of the TCR workflow, inspired by [this blog post](https://medium.com/@tdeniffel/tcr-variants-test-commit-revert-bf6bd84b17d3)
by Thomas Deniffel.

Some are great as pedagogic tools, some are better for day-to-day use.

The default variant is "The Relaxed". You can refer to [this page](./variants-doc/tcr_variants.md)
for further details on available variants.

### Base directory

In order to know which files and directories to watch, TCR needs to know on which part of the filesystem it should work.
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ tcr [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-h, --help help for tcr
Expand All @@ -28,6 +28,7 @@ tcr [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_check.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ tcr check [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -55,6 +55,7 @@ tcr check [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_config.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr config [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr config [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_config_reset.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr config reset [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr config reset [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_config_save.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr config save [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr config save [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_config_show.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr config show [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr config show [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_info.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr info [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr info [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_log.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ tcr log [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -41,6 +41,7 @@ tcr log [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_mob.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr mob [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr mob [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_one-shot.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ tcr one-shot [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -44,6 +44,7 @@ tcr one-shot [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_solo.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ tcr solo [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -33,6 +33,7 @@ tcr solo [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_stats.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ tcr stats [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -61,6 +61,7 @@ tcr stats [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
3 changes: 2 additions & 1 deletion doc/tcr_web.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ tcr web [flags]
```
-p, --auto-push enable VCS push after every commit
-b, --base-dir string indicate the directory from which TCR is looking for files (default: current directory)
-f, --commit-failures enable committing reverts on tests failure
-F, --commit-failures enable committing reverts on tests failure
-c, --config-dir string indicate the directory where TCR configuration is stored (default: current directory)
-d, --duration duration set the duration for role rotation countdown timer
-l, --language string indicate the programming language to be used by TCR
Expand All @@ -39,6 +39,7 @@ tcr web [flags]
-P, --port-number int indicate port number used by TCR HTTP server in web mode (experimental) (default: 8483)
-t, --toolchain string indicate the toolchain to be used by TCR
-T, --trace string indicate trace options. Recognized values: none (default), vcs or http
-r, --variant string indicate the variant to be used by TCR: nice (default) or original
-V, --vcs string indicate the VCS (version control system) to be used by TCR: git (default) or p4
-w, --work-dir string indicate the directory from which TCR is running (default: current directory)
```
Expand Down
Loading
Loading