The master Branch Is The Client --- Rules for Autobot Requests:
In this course there is a major change in the protocol for using the autograder.
You will be working on 2 kinds of branches, development and master.
Only the autobot grade on merges to master counts towards your grade. However, when you merge to your master branch, this is the same as, in industry, publishing a release to your clients. And in industry, if you accidentally break functionality, your clients will be very very upset! Another word for stuff breaking when it used to work is a *regression*.
The process of publishing usable (and improvement-only, non-breaking) releases is core SE practice. We will be incorporating that into your project this semester. A regression in the project will be detected if your score on a the acceptance tests goes down. These tests we will label as acceptance tests, and will include only tests in which the returned promise should resolve. These tests focus on functionality of the project as opposed to error handling.
If you were sitting at 80% for the acceptance tests passing, and you push a release, and it takes your score on those tests drops to 70%, that is a 10% regression. If your code or autobot fails (e.g. fails to lint, build, times out, or generic autobot error) we don't count this as a regression (though you really shouldn't be merging code that broken to master)
Any regressions on merges to master will be counted against your deliverable grade. Every percentage point you drop will result in 0.5% addition to your regression penalties. For instance, say your acceptance tests pass percentage goes from 90, to 80, then to 95 as your last push. In that scenario, you will have incurred a 10 point drop, and hence a 5% regression penalty.
Note: autobot will not inform you of your penalties directly -- you will need to keep track of those yourself. We will apply penalties at the end of the semester, and let you know the penalties we detected.
The smoke tests that are run on non-master branches will not affect your regression penalty.
The SE process you should employ is:
1) Develop on your own branch, using your own tests. Call autobot -- it will run a subset of the tests we run on master.
2) Merge into master (you must submit a pull request which must be approved by your partner) when you are confident you're ready to publish, which automatically calls autobot.
TL;DR: You should not merge to master (hence invoking autobot) unless you are confident it will *increase* your pass count of the acceptance tests score on master.