From b4597e5722090acfa7d8acaf36f5a54f1f5a15c5 Mon Sep 17 00:00:00 2001 From: Noelle Wang <73260931+No767@users.noreply.github.com> Date: Thu, 25 Apr 2024 15:32:47 -0700 Subject: [PATCH] Bump to v0.8.0 #minor --- bot/cogs/__init__.py | 2 +- changelog.md | 21 ++++++++++---- docs/source/_static/trunk.png | Bin 0 -> 29516 bytes docs/source/guides/dev/contributing.rst | 37 ++++-------------------- docs/source/guides/dev/setup.rst | 3 +- pyproject.toml | 4 +-- 6 files changed, 26 insertions(+), 41 deletions(-) create mode 100644 docs/source/_static/trunk.png diff --git a/bot/cogs/__init__.py b/bot/cogs/__init__.py index 1f767e8..6a3ff4e 100644 --- a/bot/cogs/__init__.py +++ b/bot/cogs/__init__.py @@ -13,4 +13,4 @@ def __str__(self) -> str: EXTENSIONS = [module.name for module in iter_modules(__path__, f"{__package__}.")] -VERSION: VersionInfo = VersionInfo(major=0, minor=7, micro=3, releaselevel="final") +VERSION: VersionInfo = VersionInfo(major=0, minor=8, micro=0, releaselevel="final") diff --git a/changelog.md b/changelog.md index 5693cf1..7308124 100644 --- a/changelog.md +++ b/changelog.md @@ -1,17 +1,26 @@ -Addresses one small bug with the dictionary commands not responding. For the release of v0.7.0, please see the [release notes](https://github.com/No767/Catherine-Chan/releases/tag/v0.7.0) +Improved and standarized several components such as +configs, and others. ## ✨ TD;LR -- Addressed improper followups +- Internal codebase changes. No major changes for user features ## 🛠️ Changes -- Updated error responses in `dictionary` commands to properly follow up instead of failing -- Upgrade prod requirements +- Migrated from ENV to YAML configs (https://github.com/No767/Catherine-Chan/pull/165) +- Switched from Nox to Tox toolchains +- Updated documentation to reflect all new changes +- Cleaned up codebase (https://github.com/No767/Catherine-Chan/pull/166) +- Proper pull request templates ## ✨ Additions -- N/A +- New YAML configuration system +- Tox toolchain + ## ➖ Removals -- N/A \ No newline at end of file +- Poetry (https://github.com/No767/Catherine-Chan/pull/157) +- ENV support +- IPC support +- Old libraries diff --git a/docs/source/_static/trunk.png b/docs/source/_static/trunk.png new file mode 100644 index 0000000000000000000000000000000000000000..99f943204aa67774cc78deee6cd734cbe91929c4 GIT binary patch literal 29516 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 literal 0 HcmV?d00001 diff --git a/docs/source/guides/dev/contributing.rst b/docs/source/guides/dev/contributing.rst index 2e9656d..77e8bf8 100644 --- a/docs/source/guides/dev/contributing.rst +++ b/docs/source/guides/dev/contributing.rst @@ -100,30 +100,8 @@ Example Cog: Python Version Support ---------------------- -Catherine-Chan's codebase is written to keep compatibility for Python versions 3.8 - 3.11. -Generally speaking, a Python version is supported until it's EOL (when the security support ends). - -When a new version of Python releases, support for that version cannot be added **until the next patch version of that release** -or until all packages and codebase internally support that new release. -This means support for Python 3.12 for example, will not be included until Python 3.12.1 releases. - -When writing code for this project, you must keep in mind to ensure that your code is compatible for versions 3.8 - 3.11. -If said code is not compatible, then it will not be merged. - -Upgrading Dependencies to the Latest Version -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Generally the protocol is to wait until the latest version rolls out the first -bugfix version. But this may be broken **if and only if** all dependencies -(including sub-dependencies) meet these two requirements: - -1. All dependencies (including sub-dependencies) support the newest version of Python and provide built wheels -2. All dependencies (including sub-dependencies) build successfully on the newest version of Python - -.. NOTE:: - Some libraries built using C require headers to be installed - (for example, ``cysystemd`` requires ``systemd/*.h`` headers, which are located under the ``libsystemd-dev`` package on Debian). - If the second requirement is met, you must denote the package (Debian/Ubuntu) that these headers are bundled in. +Catherine-Chan generally follows `NEP-29 `_. +Catherine-Chan is tested against versions supported by NEP-29. GitHub Contributing Guidelines ----------------------------------- @@ -146,16 +124,13 @@ Git Commit Styleguides Source Control Branching Models ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. image:: /_static/gitflow.svg +.. image:: /_static/trunk.png :align: center :width: 800 -This project uses the standard and quite old Git Flow model. -The development branch is ``main``, and the production branch is ``stable``. -Each commit into stable represents a version release, whether it is a small fix or a major update. -**DO NOT** make PRs off of the ``stable`` branch (you probably can't), as each version update is guaranteed to be completely stable and production ready. - -Instead, you are encouraged to fork only the ``main`` branch, and make PRs off of that. Once merged, then the feature or change will be included within the latest release. +This project uses an **trunk-based** development. The development branch is ``main``. +Each commit into ``main`` represents an known working version of the project. +You are encouraged to make PRs off of the ``main`` branch. Releasing Tags ^^^^^^^^^^^^^^^ diff --git a/docs/source/guides/dev/setup.rst b/docs/source/guides/dev/setup.rst index ec39a3b..995dd8d 100644 --- a/docs/source/guides/dev/setup.rst +++ b/docs/source/guides/dev/setup.rst @@ -82,4 +82,5 @@ Prometheus Metrics Catherine-Chan also includes an Prometheus endpoint for metrics. This can enabled through the ``prometheus.enabled`` key. If -you don't need this feature, feel free to entirely disable it. \ No newline at end of file +you don't need this feature, feel free to entirely disable it. +Disabling this feature does not affect the bot. \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index f3424c5..470e2a1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "catherine-chan" -version = "0.7.3" +version = "0.8.0" description = "An informational LGBTQ based discord bot" readme = "README.md" license = {file = "LICENSE"} @@ -38,4 +38,4 @@ addopts = "-ra" testpaths = [ "tests" ] -pythonpath = ["bot"] \ No newline at end of file +pythonpath = ["bot"]