# Miscellaneous and Resources

## Misc. Info

* Enoch Bot is hosted on a free tier AWS EC2 instance
  * Rebecca has access to this
* Programming style
  * Use [flake8](https://flake8.pycqa.org/en/latest/) and [black](https://black.readthedocs.io/en/stable/)
  * Make your code readable by others
    * Write comments when appropriate
    * Name variables, classes, and methods appropriately
  * Include docstrings for all classes and methods (if it's not obvious)
    * Exception: Docstrings are required for all commands since the contents of the docstring is used for the command's help text
* Sensitive information (e.g. bot tokens, credentials, secrets, passwords, etc.)
  * Sensitive info should ***never be published publicly**.* For example, bot tokens ***should never be pushed to GitHub***.
  * To share sensitive info, use [One Time Secret ](https://onetimesecret.com/)
* **Branches vs Tags:** Note that on the Enoch Bot GitHub repository, some branches and tags have very similar names (e.g. branch 2.2.0 and tag v2.2.0).
  * Note that **branches** won't contain "v" in front of the version number. The branches are automatically created by GitBook to manage the different variants of the documentation.
  * On the other hand, **tags** do contain "v" in front of the version number. Git commits are manually tagged based on changes made in that version.

## Resources

### Python

* [Python3 Documentation](https://docs.python.org/3/library/index.html)
* Style/Linting/Formatting
  * [flake8 Documentation](https://flake8.pycqa.org/en/latest/)
  * [black Documentation](https://black.readthedocs.io/en/stable/)
* [pip Documentation](https://pip.pypa.io/en/stable/)

### SQL

* [sqlite3 Documentation](https://docs.python.org/3/library/sqlite3.html)
* [SQLite Documentation](https://www.sqlite.org/index.html)
* [W3Schools SQL Tutorial](https://www.w3schools.com/sql/)

### Discord

* [Discord.py API Documentation](https://discordpy.readthedocs.io/en/latest/)
  * See also: [Special Thanks](https://enoch.code4tomorrow.org/readme#special-thanks) tutorials
* [discord\_slash API Documentation](https://discord-py-slash-command.readthedocs.io/en/latest/discord_slash.html)
* [Discord API Documentation](https://discord.com/developers/docs/intro)
* [Discord Developer Portal](https://discord.com/developers)

### Google Sheets

* [Google Sheets API Documentation](https://developers.google.com/sheets/api)

### Git

* [Git Documentation](https://git-scm.com/doc)
* Learn Git
  * [Git - the simple guide](https://rogerdudler.github.io/git-guide/)
  * [Git Explorer](https://gitexplorer.com/)
  * [FTC Omega 9656 Learn Code Unit 7: Git](https://omega9656.github.io/learn-code/learn/unit7/git)
  * [Ultimate Git Resource](https://github.com/GoldinGuy/UltimateGitResource)
* [Version Control](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control)
  * [Manage Your File Versioning Like a Pro with Git](https://www.makeuseof.com/tag/file-versioning-git/)
  * [Semantic Versioning](https://semver.org/)
* [Basic Tagging](https://git-scm.com/book/en/v2/Git-Basics-Tagging)
  * [How to Use Git Tag](https://www.w3docs.com/learn-git/git-tag.html)
  * [Git Tagging - A Brief Guide](https://gitbetter.substack.com/p/git-tagging-a-brief-guide)

### GitHub, Issues, and Pull Requests

* [GitHub Documentation](https://docs.github.com/en)
  * [GitHub Actions Documentation](https://docs.github.com/en/actions)
* Learn GitHub
  * [GitHub Learning Lab](https://lab.github.com/)
  * [FTC Omega 9656 Learn Code Unit 7: Github](https://omega9656.github.io/learn-code/learn/unit7/github)
* Labels
  * [Managing Labels](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels)
  * [Adding Labels to Issues](https://docs.github.com/en/actions/managing-issues-and-pull-requests/adding-labels-to-issues)
  * [Managing Default Labels](https://docs.github.com/en/organizations/managing-organization-settings/managing-default-labels-for-repositories-in-your-organization)
* Reviews
  * [About Pull Request Reviews](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews)
  * [Reviewing Proposed Changes](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request)
  * [Viewing a Pull Request Review](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/viewing-a-pull-request-review)
  * [Approving a Pull Request with Required](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/approving-a-pull-request-with-required-reviews)
  * [Dismissing a Pull Request Review](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/dismissing-a-pull-request-review)
* Pull Requests
  * [About Pull Requests](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests)
  * [Creating a Pull Request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
  * [Creating a Pull Request from a Fork](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
  * [Requesting a Review](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/requesting-a-pull-request-review)
  * [Changing the Base Branch of a Pull Request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-base-branch-of-a-pull-request)
  * [Linking an Issue to a Pull Request](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue)
* Milestones
  * [About Milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones)
  * [Creating and Editing Milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/creating-and-editing-milestones-for-issues-and-pull-requests)
  * [Adding a Milestone](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/associating-milestones-with-issues-and-pull-requests)
  * [Filtering by Milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/filtering-issues-and-pull-requests-by-milestone)
  * [Viewing the Progress of a Milestone](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/viewing-your-milestones-progress)
* Actions
  * [About Custom Actions](https://docs.github.com/en/actions/creating-actions/about-custom-actions)
  * [Docker Container Actions](https://docs.github.com/en/actions/creating-actions/creating-a-docker-container-action)
  * [Javascript Actions](https://docs.github.com/en/actions/creating-actions/creating-a-javascript-action)
  * [Composite Actions](https://docs.github.com/en/actions/creating-actions/creating-a-composite-action)
* Workflows
  * [Running a Workflow](https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow)
  * [Re-running a Workflow](https://docs.github.com/en/actions/managing-workflow-runs/re-running-a-workflow)
  * [Canceling a Workflow](https://docs.github.com/en/actions/managing-workflow-runs/canceling-a-workflow)
  * [Disabling and Enabling a Workflow](https://docs.github.com/en/actions/managing-workflow-runs/disabling-and-enabling-a-workflow)
  * [Deleting a Workflow Run](https://docs.github.com/en/actions/managing-workflow-runs/deleting-a-workflow-run)

### AWS

* [AWS Documentation](https://docs.aws.amazon.com/index.html)
  * [ec2 Documentation](https://docs.aws.amazon.com/ec2/?id=docs_gateway)

### Heroku

* [Heroku Documentation](https://devcenter.heroku.com/categories/reference)
  * [Heroku CLI Documentation](https://devcenter.heroku.com/articles/heroku-cli)
  * [Heroku Dynos Documentation](https://devcenter.heroku.com/categories/dynos)
  * [Heroku Deploying with Git Documentation](https://devcenter.heroku.com/categories/deploying-with-git)
  * [Heroku Python Documentation](https://devcenter.heroku.com/categories/python-support)
* [Getting Started on Heroku with Python](https://devcenter.heroku.com/articles/getting-started-with-python)
* See also: [Special Thanks](https://enoch.code4tomorrow.org/#special-thanks) tutorials

### Documentation

* [GitBook Documentation](https://docs.gitbook.com/)
* [Markdown Guide](https://www.markdownguide.org/)
