# Features — CodeDeployScripts

Evidence date: 2026-10-18.

`master`: `06626b32e2a09034b7df2b94b9abae5809bc12e6` (2019-06-06, "Test master branch").

`development`: `dc915f471e87e29b745568c2a5aba62fb0e4dfd7` (2019-07-26, "Update Readme file").

`README.md` is the only written guide. It describes setup, not a feature roadmap. Planned features written as a roadmap: **none found**.

No feature is marked removed. History is the commit list below. Secrets are not copied. The PEM body is not copied.

## Current features (`master`)

| Feature | What it does | Evidence | Status |
|---|---|---|---|
| AWS setup checklist | IAM group, user, role, trust policy, S3 bucket, EC2, CodeDeploy app and group, Bitbucket variable names | `README.md` | Documented. Not executed by the pipeline |
| Master pipeline | `python:3.5.7`, install zip and `boto3==1.3.0`, zip `*` to `/tmp/artifact.zip`, run the deploy script | `bitbucket-pipelines.yml` `master` step | Implemented |
| S3 upload | `put_object` of that zip at `{APPLICATION_NAME}/{timestamp}-bitbucket_builds.zip` | `codedeploy_deploy.py` `upload_to_s3` | Implemented |
| CodeDeploy start | `create_deployment` from that S3 object, in-place group and config from env, description `New deployment from BitBucket` | `deploy_new_revision` | Implemented |
| Deploy wait | Poll `get_deployment` until `Succeeded`, `Failed`, or `Stopped` | same function | Implemented. No sleep, no deadline |
| Ignore stop failures | `ignoreApplicationStopFailures=True` | `create_deployment` | Implemented |
| AppSpec copy | `/` to `/var/www/html/` on Linux | `appspec.yml` | Implemented |
| Install hook | `yum install -y httpd` as root, 300s | `scripts/install_dependencies` | Implemented |
| Start hook | `chmod 755` the web root, `service httpd start`, 300s, root | `scripts/start_server` | Implemented |
| Stop hook | Script text tries to stop `httpd` if a variable is non-empty, then `chmod 777` the web root | `scripts/stop_server` | Implemented text. The assignment is not valid shell. See business rules |
| Smoke page | Static "Silicon Deployment Testing" page. Headings "Silicon Overdrive" and "Master HELOOOOOOO Branch / Dev Server" | `index.html` | Implemented |
| FTP checklist | Variable names and the "init then push" sentences | `README.md` | Documented |
| FTP pipeline step on this file | `development` key runs `git ftp init`. `git ftp push` is commented | `bitbucket-pipelines.yml` on `master` | Implemented in the file. Runs only when this file is the pipeline for a `development` build |
| Committed private key | RSA private key file, git blob 1670 bytes | `silcodedeploy_evolvav.pem` | Present since `88a609e`. No feature uses it |
| Upstream script credit | Apache-2.0 header, Amazon 2016, `narshiva@amazon.com`, v1.0.0. README links to the awslabs Bitbucket sample | `codedeploy_deploy.py`, `README.md` | Documented |

## Current features that differ on `development`

These three files differ. Everything else matches `master`.

| Feature | `development` tip | Evidence |
|---|---|---|
| README presentation | Same checklist, restyled as a numbered list with fenced code blocks on 2019-07-26 | `README.md` at `dc915f4` |
| FTP command | `git ftp push` is active. `git ftp init` is commented | `bitbucket-pipelines.yml` at `dc915f4` |
| Smoke page | `h1` "Congratulations". `h2` "Development YEAHHHHH Branch / QA Enviroment : Push" | `index.html` at `dc915f4` |

## Completed features

"Completed" here means committed. It does not mean a fresh clone can deploy without the AWS account, the Bitbucket variables, and the EC2 agent from the README.

| When | Commit | Change |
|---|---|---|
| 2019-05-29 10:01 UTC | `5e8b163` | Initial commit (Bitbucket) |
| 2019-05-29 13:41 +0200 | `e0945c7` | Initial tree: deploy script, pipeline, AppSpec, hooks, first HTML page |
| 2019-05-29 afternoon | `e4ca2f7` through `176c64e` | Pipeline and script error text, AppSpec, agent check. See the retry note below |
| 2019-05-30 | `88a609e` | Adds `silcodedeploy_evolvav.pem` |
| 2019-05-30 | `bc26c5b` | HTML heading change |
| 2019-05-30 | `44d1c13`, `f3eab53` | README updates |
| 2019-05-31 | `093d5ab` | README update. Last shared commit of the two branches |
| 2019-06-02 | `ea061f9` on `master` | FTP section in the README, `development` pipeline step, HTML headings changed to Silicon Overdrive / Dev Server. Commit subject says the FTP example was committed to the development branch; the commit is on `master` |
| 2019-06-02 | `4427a99`, `5bc44cd`, `cae93aa` on `development` | Development banner, FTP step, then push enabled and init commented |
| 2019-06-06 | `06626b3` on `master` | Banner subtitle set to "Master HELOOOOOOO Branch / Dev Server". This is the default-branch tip |
| 2019-06-06 | `bebe1d0` on `development` | Banner subtitle set to "Development YEAHHHHH Branch / QA Enviroment : Push" |
| 2019-07-26 | `773f0b1`, `dc915f4` on `development` | README restyle only |

### Retry block that did not stay

`a502df7` ("up the retries", 2019-05-29) added `retries = dict(max_attempts = 10)` on the boto3 client setup. `f5dbcf4` ("new file check", the next commit the same day) removed that block. The tips do not pass a retries config. Provenance: **Implemented** history. The current clients are the default boto3 client.

`sleep` has been imported since `e0945c7` and is not called on either tip.

## Smoke-page heading history

The page is a banner. These strings were committed, then replaced. Only the last row of each branch is on a tip.

| Commit | Branch side | `h2` after the commit |
|---|---|---|
| `e0945c7` | both (before the split) | This application was deployed using Atlassian BitBucket Pipelines + AWS CodeDeploy. |
| `bc26c5b` | both | Monique is die pragtigste |
| `093d5ab` | both | Master Branch / Production Deployment |
| `ea061f9` | `master` | Development Branch / Dev Server (`h1` becomes Silicon Overdrive) |
| `06626b3` | `master` tip | Master HELOOOOOOO Branch / Dev Server |
| `4427a99` | `development` | Development Branch / QA Enviroment (`h1` stays Congratulations) |
| `cae93aa` | `development` | Development Branch / QA Enviroment : Push |
| `bebe1d0` | `development` tip | Development YEAHHHHH Branch / QA Enviroment : Push |

## In development

`development` is a branch name. Its last commit is 2019-07-26. No TODO or unfinished script marks work in progress. Whether anyone still pushes it is **Unknown / Requires Confirmation**.

## Planned

No planned feature is written in the repository.

## Recently changed

Nothing has changed in git since 2019-07-26. The newest content change on the default branch is the HTML subtitle in `06626b3`. The newest content change on `development` is the README restyle in `dc915f4`, which does not change the checklist facts.

## Deprecated or removed

| Item | What happened |
|---|---|
| boto3 `max_attempts = 10` | Added and removed on 2019-05-29. Not on either tip |
| Earlier HTML headings | Replaced. Still visible in git history, not on the tips |
| `git ftp push` on the `master` copy of the yml | Present as a comment. Active on the `development` copy |
| `git ftp init` on the `development` copy of the yml | Present as a comment. Active on the `master` copy |

No file was deleted after the pem was added. `git ls-files` on `master` is nine paths.

## Not features

| Path named at discovery | In git? |
|---|---|
| `sonar-project.properties` | No |
| `sonarqube_scan.bat` | No |

Provenance: the onboarding issue listed both on 2026-09-28. This clone does not contain them. **Unknown**.
