edx-toggles
=============================
|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|
|license-badge|
Library and utilities for implementing and reporting on feature toggles.
Documentation is on `Read the Docs`_. Code repository is on `GitHub`_.
.. _Read the Docs: https://edx.readthedocs.io/projects/edx-toggles/en/latest/readme.html
.. _GitHub: https://github.com/openedx/edx-toggles
See the `scripts README`_ for more information on the scripts for reporting on the status of
feature toggles.
.. _scripts README: https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst
License
-------
The code in this repository is licensed under the AGPL 3.0 unless
otherwise noted.
Please see ``LICENSE.txt`` for details.
How To Contribute
-----------------
Contributions are very welcome.
Please read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.
PR description template should be automatically applied if you are sending PR from github interface; otherwise you
can find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_
Issue report template should be automatically applied if you are sending it from github UI as well; otherwise you
can find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md>`_
Reporting Security Issues
-------------------------
Please do not report security issues in public. Please email security@openedx.org.
Getting Help
------------
Have a question about this repository, or about Open edX in general? Please
refer to this `list of resources`_ if you need any assistance.
.. _list of resources: https://open.edx.org/getting-help
.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-toggles.svg
:target: https://pypi.python.org/pypi/edx-toggles/
:alt: PyPI
.. |ci-badge| image:: https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master
:target: https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22
:alt: Github CI
.. |codecov-badge| image:: http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master
:target: http://codecov.io/github/edx/edx-toggles?branch=master
:alt: Codecov
.. |doc-badge| image:: https://readthedocs.org/projects/edx-toggles/badge/?version=latest
:target: http://edx-toggles.readthedocs.io/en/latest/
:alt: Documentation
.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-toggles.svg
:target: https://pypi.python.org/pypi/edx-toggles/
:alt: Supported Python versions
.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-toggles.svg
:target: https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt
:alt: License
Change Log
----------
..
All enhancements and patches to edx_toggles will be documented
in this file. It adheres to the structure of https://keepachangelog.com/ ,
but in reStructuredText instead of Markdown (for ease of incorporation into
Sphinx documentation and the PyPI description).
This project adheres to Semantic Versioning (https://semver.org/).
.. There should always be an "Unreleased" section for changes pending release.
Unreleased
~~~~~~~~~~
[5.2.0] - 2024-03-31
--------------------
* Added python3.11 and 3.12 support. Dropped django32 support.
[5.1.1] - 2024-01-31
--------------------
* Fix toggle report to output all settings.
[5.1.0] - 2023-08-02
--------------------
* Added support for Django 4.2
* Rename toggle_warnings to toggle_warning for consistency with setting_warning.
* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is
deprecated
[5.0.0] - 2022-04-22
--------------------
* BREAKING CHANGE: Removed LegacyWaffle* classes. Although this is a breaking change, all known uses have already been fixed.
* Handle the case where certain toggle names come in as ``None`` when generating summary reports.
* Add ADR for updating annotations for toggle life expectancy and use cases.
[4.3.0] - 2022-01-31
--------------------
Removed
~~~~~~~
* Removed Django22, 30, 31
Added
~~~~~~~
* Added Django40 support in CI
[4.2.0] - 2021-07-07
~~~~~~~~~~~~~~~~~~~~
* Added support for django3.0, 3.1 and 3.2
[4.1.0] - 2021-02-10
~~~~~~~~~~~~~~~~~~~~
* Expose toggle state report via a Python API.
[4.0.0] - 2021-01-24
~~~~~~~~~~~~~~~~~~~~
* BREAKING CHANGE: Remove now unnecessary ``edx_toggles.toggles.__future__`` module.
* BREAKING CHANGE: Remove the following methods and properties: ``LegacyWaffleFlagNamespace.set_monitor_value``, ``LegacyWaffleSwitch.switch_name``, ``LegacyWaffleSwitch.namespaced_switch_name``, ``LegacyWaffleFlag.flag_name``, ``LegacyWaffleFlag.namespaced_flag_name``, ``LegacyWaffleFlag.waffle_namespace``.
* BREAKING CHANGE: Remove ``LegacyWaffleFlagNamespace._set_monitor_value`` method
* Monitoring:
* Add the following custom attribute: "deprecated_legacy_waffle_class"
* Remove the following custom attributes: "deprecated_module_not_supplied", "warn_flag_no_request_return_value", "deprecated_waffle_method", "deprecated_waffle_legacy_method", "deprecated_compatible_legacy_waffle_class".
* Rename ``toggles.internal.legacy.Waffle*`` classes to ``toggles.internal.legacy.LegacyWaffle*``.
[3.1.0] - 2021-01-18
~~~~~~~~~~~~~~~~~~~~
* Dropped support for ``Python3.5``.
* Fix ``toggle_type`` column value from the toggle state report for the ``SettingToggle`` and ``SettingDictToggle`` classes: the column is now set to "django_settings".
[2.1.0] - 2021-01-12
~~~~~~~~~~~~~~~~~~~~
* Stop monitoring waffle flag values via ``WaffleFlag.set_monitor_value`` calls. The deprecated method is preserved for backward compatibility.
[2.0.0] - 2020-11-05
~~~~~~~~~~~~~~~~~~~~
* BREAKING CHANGE: The ``WaffleFlagNamespace`` and ``WaffleSwitchNamespace`` classes have been removed. You can either rename to ``LegacyWaffleFlagNamespace`` and ``LegacyWaffleSwitchNamespace``, which are deprecated, or you can move to the newer waffle classes that no longer use these Namespace classes (see below).
* BREAKING CHANGE: The ``WaffleFlag`` and ``WaffleSwitch`` classes exposed in ``toggles`` no longer use the Namespace classes and are now the classes which were previously only available in ``toggles.__future__``.
* If you were importing from ``edx_toggles.toggles.__future__`` before, then you simply need to import from ``edx_toggles.toggles``. Importing from ``__future__`` will continue to work but will trigger a deprecation warning.
* If you were importing from ``edx_toggles.toggles``, then you either need to:
* Migrate your legacy namespaced classes to the new-style classes (see the new behaviour below), or
* Import ``LegacyWaffleFlag`` instead of ``WaffleFlag`` and ``LegacyWaffleSwitch`` instead of ``WaffleSwitch``. Note that these classes will be removed soon, so it's preferable to migrate to the new classes already.
* The new Waffle classes introduce the following changes:
* They no longer use Namespace classes like ``WaffleSwitchNamespace`` or ``WaffleFlagNamespace``.
* The ``WaffleSwitchNamespace._namespaced_name`` and ``WaffleFlagNamespace._namespaced_name`` methods are replaced by the ``WaffleSwitch.name`` and ``WaffleFlag.name`` attributes.
* The ``WaffleSwitchNamespace.is_enabled`` method is replaced by the ``WaffleSwitch.is_enabled`` method.
* The ``WaffleSwitchNamespace.set_request_cache_with_short_name`` method has no replacement because an alternative solution should be found. You could (but really shouldn't) use the ``WaffleSwitch._cached_switches`` property.
* The ``WaffleSwitch.switch_name`` attribute is deprecated: switches should only ever be referred to using their fully namespaced names.
* The ``WaffleSwitch.switch_name`` attribute no longer exists. Switches should only ever be referred to using their fully namespaced names. If you need the non-namespaced name, it must be parsed from the namespaced name.
* The ``WaffleFlagNamespace.is_flag_active`` method is replaced by ``WaffleFlag.is_enabled``.
* The ``WaffleFlagNamespace._monitor_value`` method is replaced by ``WaffleFlag.set_monitor_value``.
* The ``WaffleFlagNamespace._cached_flags`` attribute is replaced by the ``WaffleFlag.cached_flags`` method.
* The ``WaffleFlag`` and ``WaffleSwitch`` ``module_name`` constructor argument is now mandatory.
* The ``WaffleFlag.flag_name`` attribute is deprecated.
* The ``WaffleFlag.flag_name`` attribute no longer exists. Flags should only ever be referred to using their fully namespaced names. If you need the non-namespaced name, it must be parsed from the namespaced name.
* The ``WaffleFlag.waffle_namespace`` attribute no longer exists, since there is no longer a separate namespace object.
[1.2.2] - 2020-12-22
~~~~~~~~~~~~~~~~~~~~
More improvements to monitoring of legacy waffle class imports.
* Add ``deprecated_incompatible_legacy_waffle_class`` custom attribute to any class (including subclasses), using the backward-incompatible imports that will be removed in 2.0.0.
* Add ``deprecated_compatible_legacy_waffle_class`` custom attribute to any class (including subclasses) using the legacy classes compatible with 2.0.0 imports, but which should be removed in 3.0.0 (or some future major version).
* Remove ``deprecated_edx_toggles_waffle`` custom attribute. In two cases, it was replaced by the new ``*_legacy_waffle_class`` custom attributes. In one case, it was replaced with the already existing and more appropriate ``deprecated_waffle_legacy_method`` custom attribute.
[1.2.1] - 2020-12-17
~~~~~~~~~~~~~~~~~~~~
* Improve monitoring of legacy Waffle class imports. We should watch for "edx_toggles.toggles.internal.waffle.legacy.WaffleSwitch" custom attributes.
[1.2.0] - 2020-11-05
~~~~~~~~~~~~~~~~~~~~
* Start the deprecation process of the waffle namespace classes:
* Introduce LegacyWaffleFlag, LegacyWaffleSwitch for use with namespaces.
* Begin deprecation/refactoring of namespacing code, including deprecation monitoring and warnings.
* Note: WaffleFlag and WaffleSwitch still use namespaces as well (for now).
* Introduce the ``toggles.__future__`` module for applications that need to be forward-compatible right away.
[1.1.1] - 2020-10-27
~~~~~~~~~~~~~~~~~~~~
* Fix cache-checking in WaffleSwitchNamespace
[1.1.0] - 2020-10-23
~~~~~~~~~~~~~~~~~~~~
* Backport ``override_waffle_switch`` test utility function from edx-platform
[1.0.0] - 2020-10-13
~~~~~~~~~~~~~~~~~~~~
* Fix missing ``module_name`` argument in ``SettingDictToggle`` constructor.
* Extract waffle classes from edx-platform and move them here following ADR `#2 <docs/decisions/0002-application-toggle-state.rst>`__, `#3 <docs/decisions/0003-django-setting-toggles.rst>`__, `#4 <docs/decisions/0004-toggle-api.rst>`__. This does not introduce backward-incompatible changes, *yet*.
* Fix pinned requirements and incorrect root url that overrode edx-platform's.
[0.3.0] - 2020-09-23
~~~~~~~~~~~~~~~~~~~~
First release to PyPI (2020-10-02)
* Implement ``SettingToggle`` and ``SettingDictToggle``.
[0.2.2] - 2020-09-11
~~~~~~~~~~~~~~~~~~~~
* Document the writing of feature toggles annotations.
[0.2.1] - 2020-08-03
~~~~~~~~~~~~~~~~~~~~
* Add ADR for the purpose of this repository.
* Add ADR for implementing a Toggle State endpoint.
* Add toggles report with CSV output using new CsvRenderer.
* Add CourseWaffleFlag and course override data to toggle report.
* Add output for waffle flag course overrides to data gatherer
* Add additional options to scripts/feature_toggle_report_generator
* filter toggle types and envs, add github_url, and change name of ida in report
* Modified scripts/feature_toggle_report_generator to work based on envs
* Removed confluence integration
* Moved HtmlRenderer to its own file
* Add ADR for new SettingToggle. (see 0003-django-setting-toggles.rst)
[0.2.0] - 2020-05-27
~~~~~~~~~~~~~~~~~~~~
* Removed caniusepython3.
[0.2.0] - 2020-05-05
~~~~~~~~~~~~~~~~~~~~
* Added support for python 3.8 and dropped support Django versions older than 2.2
[0.1.0] - 2019-04-08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Initial version
Raw data
{
"_id": null,
"home_page": "https://github.com/openedx/edx-toggles",
"name": "edx-toggles",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "Django edx",
"author": "edX",
"author_email": "oscm@edx.org",
"download_url": "https://files.pythonhosted.org/packages/eb/60/d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766/edx-toggles-5.2.0.tar.gz",
"platform": null,
"description": "edx-toggles\n=============================\n\n|pypi-badge| |ci-badge| |codecov-badge| |doc-badge| |pyversions-badge|\n|license-badge|\n\nLibrary and utilities for implementing and reporting on feature toggles.\n\nDocumentation is on `Read the Docs`_. Code repository is on `GitHub`_.\n\n.. _Read the Docs: https://edx.readthedocs.io/projects/edx-toggles/en/latest/readme.html\n.. _GitHub: https://github.com/openedx/edx-toggles\n\nSee the `scripts README`_ for more information on the scripts for reporting on the status of\nfeature toggles.\n\n.. _scripts README: https://github.com/openedx/edx-toggles/blob/master/scripts/README.rst\n\nLicense\n-------\n\nThe code in this repository is licensed under the AGPL 3.0 unless\notherwise noted.\n\nPlease see ``LICENSE.txt`` for details.\n\nHow To Contribute\n-----------------\n\nContributions are very welcome.\n\nPlease read `How To Contribute <https://github.com/openedx/.github/blob/master/CONTRIBUTING.md>`_ for details.\n\n\nPR description template should be automatically applied if you are sending PR from github interface; otherwise you\ncan find it it at `PULL_REQUEST_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/PULL_REQUEST_TEMPLATE.md>`_\n\nIssue report template should be automatically applied if you are sending it from github UI as well; otherwise you\ncan find it at `ISSUE_TEMPLATE.md <https://github.com/openedx/edx-toggles/blob/master/.github/ISSUE_TEMPLATE.md>`_\n\nReporting Security Issues\n-------------------------\n\nPlease do not report security issues in public. Please email security@openedx.org.\n\nGetting Help\n------------\n\nHave a question about this repository, or about Open edX in general? Please\nrefer to this `list of resources`_ if you need any assistance.\n\n.. _list of resources: https://open.edx.org/getting-help\n\n\n.. |pypi-badge| image:: https://img.shields.io/pypi/v/edx-toggles.svg\n :target: https://pypi.python.org/pypi/edx-toggles/\n :alt: PyPI\n\n.. |ci-badge| image:: https://github.com/openedx/edx-toggles/workflows/Python%20CI/badge.svg?branch=master\n :target: https://github.com/openedx/edx-toggles/actions?query=workflow%3A%22Python+CI%22\n :alt: Github CI\n\n.. |codecov-badge| image:: http://codecov.io/github/edx/edx-toggles/coverage.svg?branch=master\n :target: http://codecov.io/github/edx/edx-toggles?branch=master\n :alt: Codecov\n\n.. |doc-badge| image:: https://readthedocs.org/projects/edx-toggles/badge/?version=latest\n :target: http://edx-toggles.readthedocs.io/en/latest/\n :alt: Documentation\n\n.. |pyversions-badge| image:: https://img.shields.io/pypi/pyversions/edx-toggles.svg\n :target: https://pypi.python.org/pypi/edx-toggles/\n :alt: Supported Python versions\n\n.. |license-badge| image:: https://img.shields.io/github/license/edx/edx-toggles.svg\n :target: https://github.com/openedx/edx-toggles/blob/master/LICENSE.txt\n :alt: License\n\n\nChange Log\n----------\n\n..\n All enhancements and patches to edx_toggles will be documented\n in this file. It adheres to the structure of https://keepachangelog.com/ ,\n but in reStructuredText instead of Markdown (for ease of incorporation into\n Sphinx documentation and the PyPI description).\n\n This project adheres to Semantic Versioning (https://semver.org/).\n\n.. There should always be an \"Unreleased\" section for changes pending release.\n\nUnreleased\n~~~~~~~~~~\n\n[5.2.0] - 2024-03-31\n--------------------\n\n* Added python3.11 and 3.12 support. Dropped django32 support.\n\n[5.1.1] - 2024-01-31\n--------------------\n\n* Fix toggle report to output all settings.\n\n[5.1.0] - 2023-08-02\n--------------------\n\n* Added support for Django 4.2\n* Rename toggle_warnings to toggle_warning for consistency with setting_warning.\n* Switch from ``edx-sphinx-theme`` to ``sphinx-book-theme`` since the former is\n deprecated\n\n[5.0.0] - 2022-04-22\n--------------------\n\n* BREAKING CHANGE: Removed LegacyWaffle* classes. Although this is a breaking change, all known uses have already been fixed.\n* Handle the case where certain toggle names come in as ``None`` when generating summary reports.\n* Add ADR for updating annotations for toggle life expectancy and use cases.\n\n[4.3.0] - 2022-01-31\n--------------------\n\nRemoved\n~~~~~~~\n\n* Removed Django22, 30, 31\n\nAdded\n~~~~~~~\n* Added Django40 support in CI\n\n[4.2.0] - 2021-07-07\n~~~~~~~~~~~~~~~~~~~~\n\n* Added support for django3.0, 3.1 and 3.2\n\n[4.1.0] - 2021-02-10\n~~~~~~~~~~~~~~~~~~~~\n\n* Expose toggle state report via a Python API.\n\n[4.0.0] - 2021-01-24\n~~~~~~~~~~~~~~~~~~~~\n\n* BREAKING CHANGE: Remove now unnecessary ``edx_toggles.toggles.__future__`` module.\n* BREAKING CHANGE: Remove the following methods and properties: ``LegacyWaffleFlagNamespace.set_monitor_value``, ``LegacyWaffleSwitch.switch_name``, ``LegacyWaffleSwitch.namespaced_switch_name``, ``LegacyWaffleFlag.flag_name``, ``LegacyWaffleFlag.namespaced_flag_name``, ``LegacyWaffleFlag.waffle_namespace``.\n* BREAKING CHANGE: Remove ``LegacyWaffleFlagNamespace._set_monitor_value`` method\n* Monitoring:\n\n * Add the following custom attribute: \"deprecated_legacy_waffle_class\"\n * Remove the following custom attributes: \"deprecated_module_not_supplied\", \"warn_flag_no_request_return_value\", \"deprecated_waffle_method\", \"deprecated_waffle_legacy_method\", \"deprecated_compatible_legacy_waffle_class\".\n* Rename ``toggles.internal.legacy.Waffle*`` classes to ``toggles.internal.legacy.LegacyWaffle*``.\n\n[3.1.0] - 2021-01-18\n~~~~~~~~~~~~~~~~~~~~\n\n* Dropped support for ``Python3.5``.\n* Fix ``toggle_type`` column value from the toggle state report for the ``SettingToggle`` and ``SettingDictToggle`` classes: the column is now set to \"django_settings\".\n\n[2.1.0] - 2021-01-12\n~~~~~~~~~~~~~~~~~~~~\n\n* Stop monitoring waffle flag values via ``WaffleFlag.set_monitor_value`` calls. The deprecated method is preserved for backward compatibility.\n\n\n[2.0.0] - 2020-11-05\n~~~~~~~~~~~~~~~~~~~~\n\n* BREAKING CHANGE: The ``WaffleFlagNamespace`` and ``WaffleSwitchNamespace`` classes have been removed. You can either rename to ``LegacyWaffleFlagNamespace`` and ``LegacyWaffleSwitchNamespace``, which are deprecated, or you can move to the newer waffle classes that no longer use these Namespace classes (see below).\n* BREAKING CHANGE: The ``WaffleFlag`` and ``WaffleSwitch`` classes exposed in ``toggles`` no longer use the Namespace classes and are now the classes which were previously only available in ``toggles.__future__``.\n\n * If you were importing from ``edx_toggles.toggles.__future__`` before, then you simply need to import from ``edx_toggles.toggles``. Importing from ``__future__`` will continue to work but will trigger a deprecation warning.\n * If you were importing from ``edx_toggles.toggles``, then you either need to:\n\n * Migrate your legacy namespaced classes to the new-style classes (see the new behaviour below), or\n * Import ``LegacyWaffleFlag`` instead of ``WaffleFlag`` and ``LegacyWaffleSwitch`` instead of ``WaffleSwitch``. Note that these classes will be removed soon, so it's preferable to migrate to the new classes already.\n\n * The new Waffle classes introduce the following changes:\n\n * They no longer use Namespace classes like ``WaffleSwitchNamespace`` or ``WaffleFlagNamespace``.\n * The ``WaffleSwitchNamespace._namespaced_name`` and ``WaffleFlagNamespace._namespaced_name`` methods are replaced by the ``WaffleSwitch.name`` and ``WaffleFlag.name`` attributes.\n * The ``WaffleSwitchNamespace.is_enabled`` method is replaced by the ``WaffleSwitch.is_enabled`` method.\n * The ``WaffleSwitchNamespace.set_request_cache_with_short_name`` method has no replacement because an alternative solution should be found. You could (but really shouldn't) use the ``WaffleSwitch._cached_switches`` property.\n * The ``WaffleSwitch.switch_name`` attribute is deprecated: switches should only ever be referred to using their fully namespaced names.\n * The ``WaffleSwitch.switch_name`` attribute no longer exists. Switches should only ever be referred to using their fully namespaced names. If you need the non-namespaced name, it must be parsed from the namespaced name.\n * The ``WaffleFlagNamespace.is_flag_active`` method is replaced by ``WaffleFlag.is_enabled``.\n * The ``WaffleFlagNamespace._monitor_value`` method is replaced by ``WaffleFlag.set_monitor_value``.\n * The ``WaffleFlagNamespace._cached_flags`` attribute is replaced by the ``WaffleFlag.cached_flags`` method.\n * The ``WaffleFlag`` and ``WaffleSwitch`` ``module_name`` constructor argument is now mandatory.\n * The ``WaffleFlag.flag_name`` attribute is deprecated.\n * The ``WaffleFlag.flag_name`` attribute no longer exists. Flags should only ever be referred to using their fully namespaced names. If you need the non-namespaced name, it must be parsed from the namespaced name.\n * The ``WaffleFlag.waffle_namespace`` attribute no longer exists, since there is no longer a separate namespace object.\n\n[1.2.2] - 2020-12-22\n~~~~~~~~~~~~~~~~~~~~\n\nMore improvements to monitoring of legacy waffle class imports.\n\n* Add ``deprecated_incompatible_legacy_waffle_class`` custom attribute to any class (including subclasses), using the backward-incompatible imports that will be removed in 2.0.0.\n* Add ``deprecated_compatible_legacy_waffle_class`` custom attribute to any class (including subclasses) using the legacy classes compatible with 2.0.0 imports, but which should be removed in 3.0.0 (or some future major version).\n* Remove ``deprecated_edx_toggles_waffle`` custom attribute. In two cases, it was replaced by the new ``*_legacy_waffle_class`` custom attributes. In one case, it was replaced with the already existing and more appropriate ``deprecated_waffle_legacy_method`` custom attribute.\n\n[1.2.1] - 2020-12-17\n~~~~~~~~~~~~~~~~~~~~\n\n* Improve monitoring of legacy Waffle class imports. We should watch for \"edx_toggles.toggles.internal.waffle.legacy.WaffleSwitch\" custom attributes.\n\n[1.2.0] - 2020-11-05\n~~~~~~~~~~~~~~~~~~~~\n\n* Start the deprecation process of the waffle namespace classes:\n\n * Introduce LegacyWaffleFlag, LegacyWaffleSwitch for use with namespaces.\n * Begin deprecation/refactoring of namespacing code, including deprecation monitoring and warnings.\n * Note: WaffleFlag and WaffleSwitch still use namespaces as well (for now).\n * Introduce the ``toggles.__future__`` module for applications that need to be forward-compatible right away.\n\n[1.1.1] - 2020-10-27\n~~~~~~~~~~~~~~~~~~~~\n\n* Fix cache-checking in WaffleSwitchNamespace\n\n[1.1.0] - 2020-10-23\n~~~~~~~~~~~~~~~~~~~~\n\n* Backport ``override_waffle_switch`` test utility function from edx-platform\n\n[1.0.0] - 2020-10-13\n~~~~~~~~~~~~~~~~~~~~\n\n* Fix missing ``module_name`` argument in ``SettingDictToggle`` constructor.\n* Extract waffle classes from edx-platform and move them here following ADR `#2 <docs/decisions/0002-application-toggle-state.rst>`__, `#3 <docs/decisions/0003-django-setting-toggles.rst>`__, `#4 <docs/decisions/0004-toggle-api.rst>`__. This does not introduce backward-incompatible changes, *yet*.\n* Fix pinned requirements and incorrect root url that overrode edx-platform's.\n\n[0.3.0] - 2020-09-23\n~~~~~~~~~~~~~~~~~~~~\n\nFirst release to PyPI (2020-10-02)\n\n* Implement ``SettingToggle`` and ``SettingDictToggle``.\n\n[0.2.2] - 2020-09-11\n~~~~~~~~~~~~~~~~~~~~\n\n* Document the writing of feature toggles annotations.\n\n[0.2.1] - 2020-08-03\n~~~~~~~~~~~~~~~~~~~~\n\n* Add ADR for the purpose of this repository.\n* Add ADR for implementing a Toggle State endpoint.\n* Add toggles report with CSV output using new CsvRenderer.\n* Add CourseWaffleFlag and course override data to toggle report.\n* Add output for waffle flag course overrides to data gatherer\n* Add additional options to scripts/feature_toggle_report_generator\n\n * filter toggle types and envs, add github_url, and change name of ida in report\n\n* Modified scripts/feature_toggle_report_generator to work based on envs\n* Removed confluence integration\n* Moved HtmlRenderer to its own file\n* Add ADR for new SettingToggle. (see 0003-django-setting-toggles.rst)\n\n[0.2.0] - 2020-05-27\n~~~~~~~~~~~~~~~~~~~~\n\n* Removed caniusepython3.\n\n[0.2.0] - 2020-05-05\n~~~~~~~~~~~~~~~~~~~~\n\n* Added support for python 3.8 and dropped support Django versions older than 2.2\n\n[0.1.0] - 2019-04-08\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Initial version\n",
"bugtrack_url": null,
"license": "AGPL 3.0",
"summary": "Library and utilities for feature toggles",
"version": "5.2.0",
"project_urls": {
"Homepage": "https://github.com/openedx/edx-toggles"
},
"split_keywords": [
"django",
"edx"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "927c77920e23c5710ad999ad71a9ded4b9b15b24889e2b31c69dcecbdad2a422",
"md5": "4c670e0b42fcdbbb1e8fff6f8e9666fb",
"sha256": "5aa4d2a078421125505d455ec1ea40442cb66307884be5aee66a1dbc8bab9e96"
},
"downloads": -1,
"filename": "edx_toggles-5.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4c670e0b42fcdbbb1e8fff6f8e9666fb",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 32447,
"upload_time": "2024-04-03T20:39:44",
"upload_time_iso_8601": "2024-04-03T20:39:44.889885Z",
"url": "https://files.pythonhosted.org/packages/92/7c/77920e23c5710ad999ad71a9ded4b9b15b24889e2b31c69dcecbdad2a422/edx_toggles-5.2.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb60d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766",
"md5": "c179caf38e587647f741b367521f2a7a",
"sha256": "6ffa3e192e062c6df977619efedace7e12dc12ea68c893cb64497844691c6be3"
},
"downloads": -1,
"filename": "edx-toggles-5.2.0.tar.gz",
"has_sig": false,
"md5_digest": "c179caf38e587647f741b367521f2a7a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 35617,
"upload_time": "2024-04-03T20:39:46",
"upload_time_iso_8601": "2024-04-03T20:39:46.426979Z",
"url": "https://files.pythonhosted.org/packages/eb/60/d03b770a85c0ebf3c118075ec4fd622842db859475f1ce795c2eccd38766/edx-toggles-5.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-03 20:39:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "openedx",
"github_project": "edx-toggles",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"tox": true,
"lcname": "edx-toggles"
}