forked from verilog-to-routing/vtr-verilog-to-routing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcommit_procedures.txt
36 lines (21 loc) · 3.07 KB
/
commit_procedures.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
The purpose of this document is to outline how we commit our source changes to the VTR project.
************************************************************************************************
* For internal developers of VTR (those with commit rights on GitHub): *
************************************************************************************************
The guiding principle in internal development is to submit your work into the repository without breaking other people's work. When you commit, make sure that the repository compiles, that the flow runs, and that you did not clobber someone else's work. In the event that you are responsible for "breaking the build", fix the build at top priority.
We have some guidelines in place to help catch most of these problems. They are as follows:
- Before you commit, your code MUST pass the check-in regression test. The check-in regression test is a quick way to test if any part of the Verilog-to-routing flow is broken. To run the check-in regression test:
1) Go to vtr_flow/tasks/
2) Enter the command "../scripts/run_vtr_task.pl -p2 checkin_reg/"
3) Enter the command "../scripts/parse_vtr_task.pl -check_golden checkin_reg"
4) You may commit if the test returns [PASS]
- The automated BUildBot will do a much more thorough run through of the regressions and mark down which revisions are stable.
- Everyone who is doing development must write a regression test for each major feature that they've created. This is important because if someone (or yourself) breaks some new feature, the regression tests will catch it.
- In the event a regression test is broken, the one responsible for having the test pass is in charge of determining: a) If there is a bug in the source code, in which case the source code needs to be updated to fix the bug or b) If there is a problem with the test (perhaps the quality of the tool did in fact get better or perhaps there is a bug with the test itself), in which case the test needs to be updated to reflect the new changes. If the golden results need to be updated and you are sure that the new golden results are better, use the command "../scripts/parse_vtr_task.pl -create_golden your_regression_test_name_here"
- Update regularly and commit as regularly as you can. The longer code deviates from the trunk, the more painful it is to integrate back into the trunk.
Whatever system that we come up with will not be foolproof so be conscientious about team development.
************************************************************************************************
* For external developers of VTR: *
************************************************************************************************
If you are working on Odin II - Merge with the latest revision of Odin II. Submit patch/source code to [email protected]
If you are working on VPR - Merge with the latest revision of VTR. Run all regression tests found in vtr_flow/tasks except for timing. Submit patch/source code to [email protected]