Informative materials on specific tools and patterns within SweetOps.

Best Practices

Editor Config

The EditorConfig enables developers to define and maintain consistent coding styles between different editors and IDEs. It consists of a simple file format (.editorconfig) for defining coding styles such as tabs vs spaces. Most text editors support the format and adhere to defined styles. The config files are easily readable and they work nicely with version control systems.

Feature Branches

The Feature Branch Workflow is a requirement for CI/CD. It’s a process by which all feature development takes place in a dedicated branch instead of the master branch. This makes it easy for multiple developers to collaborate on a particular feature while at the same time ensuring that the master branch remains stable.

GitHub Best Practices

Use .gitignore Use a .gitignore file in the root of every repo to exclude files that should never be committed. Here’s an example of the .gitignore from our documentation repository. themes/cloudposse/static/css/* themes/cloudposse/static/js/* static/webfonts/* static/css/* static/js/*

Markdown Best Practices

Using Markdown is essential for clear communication on mediums such as GitHub, Slack or just plain text. Here are some of our recommendations on when to use certain conventions.

Password Management

We strongly advise all companies to use “1Password for Teams” as their password management solution. Features Shared MFA - useful for root accounts like AWS MFA Integration with Duo Groups Slack Integration Cloud Storage Cross-platform support (OSX, Windows, Linux, & Web) Alternatives LastPass

Pull Requests

Submitting a Pull Request Prior to submitting your pull request, you might want to do a few things to clean up your branch and make it as simple as possible for the original repo’s maintainer to test, accept, and merge your work. If any commits have been made to the upstream master branch, you should rebase your development branch so that merging it will be a simple fast-forward that won’t require any conflict resolution work.

RACI Matrix

The RACI Responsibility assignment matrix is used to clarify the participation by various roles in completing tasks or deliverables as it relates to projects or teams.

Workstation Best Practices

OSX Enable File Vault Auto-lock Screen Saver Use MacID to Autolock Enable “Find My Mac” AWS Vault Leverage Key Chain for Secrets Use security command on the command line to add/remove secrets. Query keychain to retrieve secrets. Do not export secrets to the environment.