> For the complete documentation index, see [llms.txt](https://enoch.code4tomorrow.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enoch.code4tomorrow.org/developer-guide/miscellaneous-and-resources.md).

# 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](/readme.md#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/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://enoch.code4tomorrow.org/developer-guide/miscellaneous-and-resources.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
